Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/samsongli/meirendaddy.com/blog/wp-includes/kses.php on line 947

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/samsongli/meirendaddy.com/blog/wp-includes/kses.php on line 948

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/samsongli/meirendaddy.com/blog/wp-includes/kses.php on line 947

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/samsongli/meirendaddy.com/blog/wp-includes/kses.php on line 948

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/samsongli/meirendaddy.com/blog/wp-includes/kses.php on line 947

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/samsongli/meirendaddy.com/blog/wp-includes/kses.php on line 948

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/samsongli/meirendaddy.com/blog/wp-includes/kses.php on line 947

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/samsongli/meirendaddy.com/blog/wp-includes/kses.php on line 948

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/samsongli/meirendaddy.com/blog/wp-includes/kses.php on line 947

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/samsongli/meirendaddy.com/blog/wp-includes/kses.php on line 948

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/samsongli/meirendaddy.com/blog/wp-includes/kses.php on line 947

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/samsongli/meirendaddy.com/blog/wp-includes/kses.php on line 948

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/samsongli/meirendaddy.com/blog/wp-includes/kses.php on line 947

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/samsongli/meirendaddy.com/blog/wp-includes/kses.php on line 948

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/samsongli/meirendaddy.com/blog/wp-includes/kses.php on line 947

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/samsongli/meirendaddy.com/blog/wp-includes/kses.php on line 948

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/samsongli/meirendaddy.com/blog/wp-includes/kses.php on line 947

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/samsongli/meirendaddy.com/blog/wp-includes/kses.php on line 948

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/samsongli/meirendaddy.com/blog/wp-includes/kses.php on line 947

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/samsongli/meirendaddy.com/blog/wp-includes/kses.php on line 948

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/samsongli/meirendaddy.com/blog/wp-includes/kses.php on line 947

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/samsongli/meirendaddy.com/blog/wp-includes/kses.php on line 948

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/samsongli/meirendaddy.com/blog/wp-includes/kses.php on line 947

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/samsongli/meirendaddy.com/blog/wp-includes/kses.php on line 948

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/samsongli/meirendaddy.com/blog/wp-includes/kses.php on line 947

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/samsongli/meirendaddy.com/blog/wp-includes/kses.php on line 948

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/samsongli/meirendaddy.com/blog/wp-includes/kses.php on line 947

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/samsongli/meirendaddy.com/blog/wp-includes/kses.php on line 948

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/samsongli/meirendaddy.com/blog/wp-includes/kses.php on line 947

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/samsongli/meirendaddy.com/blog/wp-includes/kses.php on line 948

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/samsongli/meirendaddy.com/blog/wp-includes/kses.php on line 947

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/samsongli/meirendaddy.com/blog/wp-includes/kses.php on line 948

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/samsongli/meirendaddy.com/blog/wp-includes/kses.php on line 947

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/samsongli/meirendaddy.com/blog/wp-includes/kses.php on line 948

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/samsongli/meirendaddy.com/blog/wp-includes/kses.php on line 947

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/samsongli/meirendaddy.com/blog/wp-includes/kses.php on line 948

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/samsongli/meirendaddy.com/blog/wp-includes/kses.php on line 947

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/samsongli/meirendaddy.com/blog/wp-includes/kses.php on line 948

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/samsongli/meirendaddy.com/blog/wp-includes/kses.php on line 947

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/samsongli/meirendaddy.com/blog/wp-includes/kses.php on line 948

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/samsongli/meirendaddy.com/blog/wp-includes/kses.php on line 947

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/samsongli/meirendaddy.com/blog/wp-includes/kses.php on line 948

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/samsongli/meirendaddy.com/blog/wp-includes/kses.php on line 947

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/samsongli/meirendaddy.com/blog/wp-includes/kses.php on line 948

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/samsongli/meirendaddy.com/blog/wp-includes/kses.php on line 947

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/samsongli/meirendaddy.com/blog/wp-includes/kses.php on line 948

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/samsongli/meirendaddy.com/blog/wp-includes/kses.php on line 947

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/samsongli/meirendaddy.com/blog/wp-includes/kses.php on line 948

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/samsongli/meirendaddy.com/blog/wp-includes/kses.php on line 947

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/samsongli/meirendaddy.com/blog/wp-includes/kses.php on line 948

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/samsongli/meirendaddy.com/blog/wp-includes/kses.php on line 947

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/samsongli/meirendaddy.com/blog/wp-includes/kses.php on line 948

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/samsongli/meirendaddy.com/blog/wp-includes/kses.php on line 947

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/samsongli/meirendaddy.com/blog/wp-includes/kses.php on line 948

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/samsongli/meirendaddy.com/blog/wp-includes/kses.php on line 947

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/samsongli/meirendaddy.com/blog/wp-includes/kses.php on line 948

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/samsongli/meirendaddy.com/blog/wp-includes/kses.php on line 947

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/samsongli/meirendaddy.com/blog/wp-includes/kses.php on line 948

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/samsongli/meirendaddy.com/blog/wp-includes/kses.php on line 947

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/samsongli/meirendaddy.com/blog/wp-includes/kses.php on line 948

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/samsongli/meirendaddy.com/blog/wp-includes/kses.php on line 947

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/samsongli/meirendaddy.com/blog/wp-includes/kses.php on line 948

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/samsongli/meirendaddy.com/blog/wp-includes/kses.php on line 947

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/samsongli/meirendaddy.com/blog/wp-includes/kses.php on line 948

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/samsongli/meirendaddy.com/blog/wp-includes/kses.php on line 947

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/samsongli/meirendaddy.com/blog/wp-includes/kses.php on line 948

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/samsongli/meirendaddy.com/blog/wp-includes/kses.php on line 947

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/samsongli/meirendaddy.com/blog/wp-includes/kses.php on line 948

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/samsongli/meirendaddy.com/blog/wp-includes/kses.php on line 947

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/samsongli/meirendaddy.com/blog/wp-includes/kses.php on line 948

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/samsongli/meirendaddy.com/blog/wp-includes/kses.php on line 947

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/samsongli/meirendaddy.com/blog/wp-includes/kses.php on line 948

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/samsongli/meirendaddy.com/blog/wp-includes/kses.php on line 947

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/samsongli/meirendaddy.com/blog/wp-includes/kses.php on line 948

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/samsongli/meirendaddy.com/blog/wp-includes/kses.php on line 947

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/samsongli/meirendaddy.com/blog/wp-includes/kses.php on line 948

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/samsongli/meirendaddy.com/blog/wp-includes/kses.php on line 947

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/samsongli/meirendaddy.com/blog/wp-includes/kses.php on line 948

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/samsongli/meirendaddy.com/blog/wp-includes/kses.php on line 947

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/samsongli/meirendaddy.com/blog/wp-includes/kses.php on line 948

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/samsongli/meirendaddy.com/blog/wp-includes/kses.php on line 947

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/samsongli/meirendaddy.com/blog/wp-includes/kses.php on line 948

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/samsongli/meirendaddy.com/blog/wp-includes/kses.php on line 947

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/samsongli/meirendaddy.com/blog/wp-includes/kses.php on line 948
May 20, 2010

昨晚去参加了西雅图2.0的颁奖仪式。网站在这里。这是一个西雅图web类startup的聚会,里面有很多成功人士,还有像我这样正在向成功努力的人。

Picnik的创始人Jonathan作了keynote,讲述了他做startup的几个心得体会。Picnik是他做的第三个成功的startup了,也是他做的第二个被google收购的公司。

这是一个小圈子,我在party上遇到了上次在DEMO的活动里面遇到的好几个人,还遇到了One Bus Away的作者,U. Of Washington 计算机系的博士生Brian.这也是一个快速增长的圈子,按照TechStars的创始人的数据,去年Seattle还只有300多个startups,今年就有500多了,当然还有无数他们不知道的startups在成长。

说实话,能够找到这样一群聪明的,有趣的,疯狂的人,实在是很好玩的一件事情。

这里要感谢我的朋友,skyglue的创始人Eric送我的票。

May 11, 2010

这是以前在旧金山湾区的时候,和一个俄国小子开玩笑的事情。当时我们俩比赛说浆果的名字,我们从草莓开始说,说完了我们知道的所有英文名字里面有berry的东西,然后他说:只要是有藤的,然后上面长果子的就算。于是我们继续,说了西红柿和葡萄,最后他说:西瓜!我承认他赢了。

西瓜变成浆果,主要是我们改了定义:有藤的果子就是浆果。那么西雅图到底是不是硅谷?你可以说:当然不是!西雅图是多雨的,书卷气的,充满了各种自然美景的软件圣地;硅谷是晴朗的,冲动的,两边都是山的硬件天堂。可是如果你改一下定义,把硅谷定义成创新的人才和资金的完美融合之地,那么这里其实也是一个硅谷。微软,Amazon和Expedia在这里,zillow,redfin和Evri在这里,google来办了分部,Michael Arrington搬到西雅图了,虽然他被人叫做混蛋,facebook也要来办分部

这里的投资虽然还不像湾区的阳光那么充沛,但是至少也有西雅图雨季那么连绵。等等,办软件和互联网公司,需要那么多钱吗?你甚至连车库都不需要,你只需要一台上网本,坐在有免费wifi的咖啡馆里就可以了。

说到咖啡馆,星巴克的第一家店在哪里?:)

April 1, 2010

阳萌写的“闲说虚拟经济”,我总结成一句话,就是虚拟经济满足了马斯洛金字塔上面的三层:社交需求,尊重需求和自我实现需求。

按照马斯洛的理论,5个层次里面:生理需求、安全需求、社交需求、尊重需求和自我实现需求,是先要实现了底层的,才会去追求高层的,先要吃饱,才会去想不生病。这个理论是1943年提出的,事实上我对这个理论所论述的需求实现的顺序,一直有疑问。原因很简单,因为这种实现的顺序,特别是上面三层的顺序,在现实中充满了反例。

在我看来,人对需求的追求,不是层次性的,而是以最小代价需求满足感的最大化为目标的。因为除了饥饿,恐惧这些身体因素,会驱动人不停的满足第一和第二层需求以外,其他的需求,都是人去追求的,而不是被迫去满足的。而在追求的过程中,就会有挫折。求之不得而形成的需求空洞,需要用其他的满足感来填补。

我这里的假设是:人是经济动物。对需求的满足,是要消耗金钱和力气的,是有成本的。在不能满足某些需求的时候,会转而寻求对其他需求的满足。如果有更廉价的满足需求的方式,则其他需求也可以提前被满足。

有人把沉醉于网络和游戏斥为逃避现实。但是,什么是现实?能够最终影响到人的,就是现实。在古代一个农家看来,自己的孩子放牛的时候看书,就是逃避现实,因为书不能吃不能喝,然而读书却可以为这个孩子提供另外一条出路。现在,网络构成的虚拟环境,已经能够对人的生活产生足够的影响,那些当年躲到网络这个世外桃源的人,如今有的已经成为了网络世界里面很有影响的人物。

一个东西是虚还是实,其实主要看有多少人去认同它。被众多的人认同,纸片和硬盘上面的数据,都可以是现实的。

March 23, 2010

和Robert还有建硕等几个朋友在email上聊中美差异,自己记录一下自己写的,毕竟,一手抱着熟睡的儿子,一手还要敲这么严肃的话题,我自己都挺佩服自己的。 :)

以下是我在email里敲的字儿:

我这么几年看过来,觉得中美差异最大的几个地方:

  1. 社会结构。美国基本是隔离的几大族群,在族群内部按照经济隔离为几个层次,层次内部是扁平结构,彼此隔离的群体很少交流。中国是一个大的金字塔结构,层次之间的交流机会很多。
  2. 信任关系。美国是基于信任的怀疑。对人首先是信任,并且不断考量这种信任,信任失去以后不容易建立。中国是首先怀疑,在接触中发现信任。
  3. 用户习惯。美国基本上是精英主导话语权,影响用户习惯,不符合精英的标准则被当做异端而忽略,平民希望得到精英认可。中国基本上是平民主导网络上面的声音,精英或者被孤立,或者被攻击,精英希望得到平民的认同。
  4. 政府职能。美国是小政府,政府和精英貌离神合,精英通过有限批判政府来帮助政府传递声音,同时获得自身利益。中国是大政府,政府和精英是貌合神离,精英通过拥护政府来获取利益。

不评价任何一边是否优劣,只想指出,这种巨大的差异,决定了各种决策的不同,无论是社会分工,社会制度还是网络应用,商业活动的方式,都会被这些差异所影响。

事实上,中国很多成功网络应用都平民化,而且比较“乱”,在我看来,是对社会状况很好反映的结果。

说到底,是历史,文化和民族性的积累。

March 17, 2010

见到了几位前几年海龟的成功人士,我本来是去看base在湾区的老朋友的,结果一个没遇到,遇到另外一个,感慨世界真小,人的流动真快。

信息还是很多的,主要是对中国互联网趋势的一个判断,不过到后来讲到具体的职位我就没兴趣了。

拿了两个QQ企鹅回来,塞到孩子们枕头旁边,等着看他们醒来高兴的样子。

February 25, 2010

大学时候,学的最差的大概就是算法了。当时总是喜欢多想一步,问一下这个算法到底是为什么。结果老师也答不出。

同一个学期,学的最高兴的,是操作系统。教课的是当时的系主任,国内的操作系统大牛。听他老人家讲课,总是能深入浅出的理解里面的设计理念。比如进程的调度,以CPU时钟资源的公平分配为原则;比如虚拟内存的大小,是方便和节约的折中;比如缓存的分配,是历史数据向未来的有效预测等等。

那个时候就开始了解,其实算法,无非是人的决策,在计算机上面的表达。

后来到了这边读书,导师发明的算法,是解决路由问题里面对稀缺资源的调控。那个算法的精妙,就是引进了经济学的原理,让各个信号去竞争这些资源,稀缺的资源“价格”提高,使得某些信号转而去使用相对“便宜”的资源,从而达到资源调配的目的。

类似的,当我设计和他的算法相配合的算法的时候,也是把现实生活中的处理方法引进了算法里面,对于一个NP-hard问题,既然不能在多项式时间和空间找到最优解,那么就在处理的过程中,对某些“看似”最有希望的部分结果,进行拓展,最后得到一个相对优化的结果。

在web领域,因为有人的参与,就有了更多算法改良的空间。pagerank是利用了人多年在web上面积累的url数据作为网页权重的投票;相应的协同过滤,也是利用人的行为数据来提取人的兴趣。

但是在算法利用免费的人力进行优化的同时,基于这些算法建立的网络应用,也对人的行为产生了不可忽略的影响。在03年google的CEO Eric Schmidt 去系里讲座的时候,就有学生问他,如果将来大家都依赖google,不在网页上面添加链接了,google怎么办。Eric略一迟疑,说估计不会的。事实上,当google把AdWords引入以后,巨大的流量瞬间转变成了钱,人们不仅没有停止添加链接,反而变本加厉的建立起link farm以求在SRP上面占据首位。Google也不得不针对这些link spam进行算法的修改。

同样的,协同过滤虽然为Amazon带来了无数的新销售,同时也使用户的行为趋同。

February 8, 2010

最近顺手做了个实验:浏览器插件的稳定性。也很简单,就是把机器开好几天,然后看在里面用插件是否有问题。

用了firefox,chrome和IE 7,插件就是Flash Video Player和Acrobat Reader,咦?怎么都是Adobe的?

结果也很简单:Flash Video Player在开机超过一天以后,在firefox和chrome上面播放youtube的视频,都没有声音;在IE 7上面没问题。Acrobat Reader在firefox和chrome上面,也是超过一天就不能打开网站上面的pdf文件,IE 7上面也没问题。

究竟是浏览器的问题,还是插件的问题?

January 27, 2010

上周末去看望多年不见的导师,在导师家吃brunch。席间话题就聊到了最近几年计算机的发展,导师虽然不是专攻互联网这块的,但是计算机科学里面,很多东西都是相通的。其实科学里面的很多分支也是相通的,导师当年那个著名的算法,就是把经济学的模型引入计算机科学的一个例子。

我们先是说到Kindle,amazon给系里的新一届研究生,都送了kindle(我读书的时候,只有微软送软件,实在是杯具),然后让学生们反馈意见。反馈的结果很好玩,除了一般说的,kindle上面看教科书很好(美国的教科书又厚又贵),有人抱怨,说kindle上面看书,不能给书做标记,比如用荧光笔标出关键句子,当然kindle的一大好处,是可以直接搜索关键词,而不必翻到书的最后去找索引。给网页做高亮标记的事情,在互联网泡沫的时候也有公司做过,后来用处不大就消失了,但是这个想法一直流传了下来。

后来话题转到了长尾上面,说起netflix搞的那个推荐引擎的比赛,把用户对电影的评论数据公布出来让大家用。虽然数据里面关于用户的隐私部分都已经被抹去,但是还是有研究人员利用这些数据,加上网络上面其他的公开数据,找出了某些评论的作者姓名。其中一个同性恋母亲(这两个词放在一起有点拗口),只写了8部电影的影评,就被发现了。为此还有一桩官司。

说起这个,我们都感叹每个人是如此的不同。如果给了足够多的选择,我们会分布到各个坐标,连在一起,就是一条长长的尾巴。

January 18, 2010

嗯,在硅谷的童话里面,一般不是以“很久很久以前,有一个王国,国王有一个漂亮的女儿”开头的,而是这么开头的:

在并不久远的过去,有一个车库,里面有两个年轻人…

记得我还在读书的时候,就自己装了一个让计算机和汽车的引擎控制器通信的电路。那个时候我和老婆还住在公寓里面,车就停在外面的露天停车场。每次我给电路的芯片改过程序以后,都要冲到楼下去测试,然后再冲到楼上去改bug。那个时候我多么希望,能有一个车库,把所有的器材都放在里面。

后来这个电路做好以后,我又给车装遥控开门和报警器。其中一个部件需要和车上的电路焊在一起。因为外面太冷,电烙铁不够热,我只好用别的办法代替。直到后来搬到加州,住的公寓有车库,我才最终把那个电路焊上。

现在有了房子,车库是自己的了,里面能做的事情就更多了,比如修车的启动电机继电器,比如修车的水泵和正时皮带,都可以把工具摊一地,几天的工程也不担心。

不过有了车库,我才发现,其实对于软件来说,在车库开发其实是扯淡。最好的软件不是在车库这样四处漏风的地方写出来的,也不是带着耳机听着摇滚在书房里面写出来的。我写过的最好的软件,特别是创意,经常是在不经意间,从脑中象闪电一样划过。至于最后写出来,不过是在书房里面的几个小时体力劳动罢了。

或许车库这个词,象征的意义更大一些。软件时代的车库,其实是在硬盘里面的那一堆虽然简陋,虽然错误百出,但是依然正常运行的代码。这个或许是摩尔定律对车库的作用。

September 25, 2009

昨天得到消息,确认我最近为公司做的一件小事情,打开了搜索引擎通往千万网页的一扇门,让搜索引擎可以更好的理解数据的结构。

由于种种限制,我不便在这里说明是什么改变。我想说的是,看到自己的成果出现在搜索结果里面,知道它能够帮助这个世界上面千千万万的人,还是很有成就感的。

Next Page »