《创业36条军规》书摘

抽空读完了多看版的《创业36条军规》,有不少可以借鉴的,在此做一些书摘吧。

1. 暴风影音的冯鑫的创业四原则:(1)凡事只能靠自己。(2)万事皆有解且有唯一正解。(3)凡是你担心的事一定会发生。(4)享受创业过程。

嗯,可能有时候我们会说,放权给我们的队友、相信团队成员的能力、扬长避短之类的,这不是和“凡事只能靠自己”的说法矛盾么?其实在读这本书的时候,有各种观点会充满矛盾,但实际上最核心的也是这些矛盾,我理解的即是在创业过程中不断地自省以及直面自己内心的独立思考的能力,像“凡事只能靠自己”这句话应该是在自己有逃避责任的倾向的时候需要告诉自己的。同样,万事皆有解且有唯一正解,如果脱离提出它的场合,很容易被理解为独断专行的绝对主义,你也可以说万事万物皆有无穷可能、参差多态乃世界美的本源,但实际上我理解孙陶然老师引用这句话的核心观点是:需要相信你手上的问题能够被处理掉,是坚持做下去的动力。“凡是你担心的事情一定会发生”更是一句自省的话了,如果真要学院派的去做一个统计,你可能会说我担心的事情65.74%都没有发生,这句话是错的,但实际上这是一句让你随时清醒与保持冷静的说辞,得这样来理解。最后“享受创业过程”,是帮助人缓压的办法,既然是你自己喜欢的事情,好好享受就行了,得之我幸不得我命。所以下面的书摘也需要考虑实际的上下文来理解,不然扣上“心灵鸡汤”、“打鸡血”的帽子是最简单和没成本的。
Continue reading →

如何在Django模板中注入全局变量

如何在Django模板中注入全局变量

我们在做一些网站项目的时候,可能会遇到需要把某个全局变量注入到所有页面的情况,比如我们做一个在线商城,那么可能需要将用户的资料:比如用户的账号、用户的姓名等注入到每个页面里面。

TeamCola中每个页面右上角都会出现的用户名

TeamCola中每个页面右上角都会出现的用户名

但是如果用常规的方法,也就是在每个views方法中通过render_to_response方法注入用户数据的话,这样就会做非常多的重复工作,就像下面这样:

def views_meth1(request):
    return render_to_response('template_1.html', {'user': request.user})
 
def views_meth2(request):
    return render_to_response('template_2.html', {'user': request.user})
 
def views_meth3(request):
    return render_to_response('template_3.html', {'user': request.user})
 
# ...剩下的N个方法

这在需要传入的变量比较简单、数量较少的时候还行,一旦需要注入的变量多一些,或是需要经过一些额外的计算才能生成的时候,那就麻烦大了。所以如何避免这种repeat yourself的2B模式呢?我们可以选择如下的一种模式:

Continue reading →

通过TeamCola浅谈互联网产品前期设计方法

当下大大小小层出不穷的互联网产品如同一场令人眼花缭乱的星球大战,普通用户会被死星、联盟战舰和绝地武士们手中的光剑所吸引,而设计师们则会去关注这些庞大或精巧的武器如何被制造出来。

是的,随着以用户为中心的设计(UCD)和用户体验设计(UED)概念的深入人心,互联网产品设计的方法和流程已被重新定义而且大同小异,即便是刚入门的麻瓜也能一本正经地告诉你一个正确的产品设计流程需要经过低保真原型、视觉设计、交互设计、高保真设计……等阶段。

Continue reading →

用Python实现一个简单的WebSocket服务器

最近在做的一个项目中需要使用到HTML5中引入的WebSocket技术,本来以为应该很容易就能搞定,谁知道在真正上手开发了以后才发现有很多麻烦的地方,虽然彩程是一个以前端开发和设计见长的团队,而且作为一个二手程序猿又长期不被待见,但是为了让有同样需求的朋友少走些弯路,我还是决定把实现方法贴在这个地方。

关于WebSocket的基本概念,维基百科上解释的很清楚,而且网上也能搜出来一大把,这里就略过不表,直接进入正题。

这次的问题首先有一个前提,就是得用Python来实现这个服务器,如果对具体语言没有限制的话,推荐大家首选Node.js的一个第三方库:Socket.IO,非常好用,10分钟不打针不吃药搞定WebSocket Server,而且用JS来写后端,相信也能对上很多文艺开发者的胃口。

但是如果选择用Python,google搜索的结果几乎都不能用,最要命的问题是,WebSocket协议本身还是一个草案,所以不同浏览器支持的协议版本有所不同,Safari 5.1支持的是老版本协议Hybi-02,Chrome 15以及Firefox 8.0支持的是新版本协议Hybi-10,老版本协议和新版本协议在建立通信的握手方法还有数据传输的格式要求上都有所不同,导致网上大多数实现方式只能适用于Safari浏览器,并且Safari和C&F浏览器之间无法互相通信。

Continue reading →

I wish TeamCola…


Before iWish

“倾听用户的声音!” 几乎成为所有服务行业的口头禅。你几乎可以从任何一本《XXX无师自通》的书中看到这句话, 或者你已经麻痹到直接忽略这句话的存在。

的确,这是一句如此的废话,任何人都会说这句话,但是他们却没有告诉你:“HOW?”

TeamCola 的成长需要感谢很多热心的网友。虽然最开始麻烦了一点,我们通过电子邮件接收用户反馈。我们为了方便我们的热心网友,于是我们增加了意见反馈的功能:

Continue reading →