这本相册
Friday, February 29th, 2008在时间的长河里,无论逆流而上还是涣涣随流,都是这漂泊的一部分。失去的是也许是容颜,换来的却是一路岸边的风景。
在时间的长河里,无论逆流而上还是涣涣随流,都是这漂泊的一部分。失去的是也许是容颜,换来的却是一路岸边的风景。
秋天不知道什么时候已经等在了窗外 让门前的那棵屋树霎时间红了半个身子 一片突然掉落的霜叶 让人还以为是二月的花
天气变化的厉害 思绪和身子骨一样都不由地得瑟个不停 终于明白 为什么老毛对待敌人的时候 一定要用一招叫做秋风扫落叶的掌法 才稍微被风吹一下 我就吸着鼻涕 想起家来
之前删了下面的一些话,是因为想到 Seven 曾经评价我是自卑与自信并重,生怕贴出来再有人跳出来给我扣一个自恋的帽子。后来想想,打自己的字,让别人说去吧。
十几年前养过一只很小的小狗,叫多多。我很喜欢跟多多玩。有一次它想爬到沙发上,可是沙发太高,它爬不上来。每次都在快到达上面的时候掉下去。多多很沮丧,不过它还是决定做最后一次尝试。在它马上又要滑下去的时候,我用手推它——朝它滑下去的方向。多多很着急,就更加用力。结果我一松手,它就冲到了沙发上。人也一样,经常都要去攀爬新的高点。我相信,挫折和打击比鼓励可以更加促进一个人的成长。我明白,并不是什么时候都会有鼓励这种东西存在。人生苦短,我们没有时间去感慨去追忆然后前进。只有更快地赶超自我,因为自我才是最大的敌人,其它一切如空气。
遇到新的阻力,有些人兴奋,有些人沮丧。世界其实就是由这两种人组成。属于哪一种人,完全取决于自己。我有一些很有想法的朋友,我看得出来他们是今后的精英。遇到这样的朋友,从某些角度来说我会很害怕,因为我看到的是竞争力。但我很庆幸我能看到这样实力的人群存在,而有这样的朋友确实很让人开心。每天早晨醒来,想到有这样一批未来精英的存在,都会无比兴奋。安排好时间,仔细策划每一步,然后解决每一步遇到的问题,他们步步为赢。起点在哪里并不重要,重要的事速度和质量。有了速度和质量,就可以达到既定的目标。
还有一批人,他们看不到时间的存在。这些人绝大部分属于消费者。这是好事,有这些人存在才会有庞大的市场。他们会很感兴趣什么手机最“In”,什么相机最“Out”,还有最新的软件和其它数码产品。他们趋向于拥有最新产品的那种短暂快乐。而精英的任务,就是赶在他们的兴趣消逝之前推出更好的产品,然后再促进新一轮的消费。当我看到铺天盖地的数码产品的广告,我看到的是一个个工程师、项目管理者、市场策划、销售,还有售后服务的精英们,很让人恐惧,然后转为兴奋。这些市场的主导者们每天都会精神充沛,获得最新的市场情报,发布新的产品,制定新的价格。这是商业的战争,这是战争的艺术;我喜欢这样的战争,我喜欢这样的艺术。
如果你还没有开始准备加入这场战争的话,请开始认真准备一下。如果你不知道如何开始的话,风险投资家盖 川崎(Guy Kawasaki)有一些答案:
软件工程里有一句著名的考核你的代码质量的名句,那就是 “Something bad will never happen. Something good will eventually happen.” 也就是说你写的代码所涉及的状态一定都被你全部想到过,所以不应该到达一个你不能处理的状态;同时,如果你到达了一个不太好的状态,在一定时间之后总会脱离这个状态,回到正轨。这条定律在我大四做乐高导航车毕业设计的时候,给了我极大的帮助。比如,如果小车发现在行驶了五分钟之后身上的感应器一个都没有被触发过的话,那么一定是车体被卡住了。所以只有马达在动,身体却原地不动。这个时候,代码就应该保证 “Something good will eventually happen”。于是小车停止前进,而是随即尝试后退、左转、右转等动作,以达到逃脱的目的。就这样,毕业设计总算是及格了。
之后,我把这句话当成了真理,用它来保证我得人生质量。做任何事情,都要把各种结果想到,来保证 Something bad will never happen;同时,如果发现自己的状态处于低谷,那么就应该尝试新的东西,来保证 Something good will eventually happen。本科毕业后,当我发现我所学到的编程知识并不能很好地和我所学到的软件工程知识所结合,我决定应该是做些改变的时候了。我做了两件事,一件是决定读研究僧;一件是尝试把信仰从一个集市操作系统提升到软件开发和构架上。其实这也是没过多久之前的事情,但是作为一个学习计算机科目的学生来看,这是成长的必经之路。
软件,工具也。这样一个很简单的事实,有些人却不明白。当我们的计算机里面安装了各种各样的应用程序、办公软件,我们却往往人为地在这些产品之间周转。我受到一封电子邮件;我需要根据邮件内容的要求召开一个下星期一的五人会议;我需要打开我的字处理软件,写好我准备开会的内容;同时我需要取出这个文档的一部分大纲做成一个问卷,并找到 30 个人的回复;然后把问卷反馈重新放回这个文档;我需要打开我的演示制作软件,跟我我的大纲把主要内容变成一个个投影。如果这是一个制定产品最新定价的会议,之后我还要把新的定价变成一个个精美的报价表,然后分发到每一个经销商去……一个多么痛苦的不以人为本的过程!其中绝大部分环节完全可以通过软件来自动化。每个环节所浪费的时间可能只有十秒钟,但是滴雨成海。如果这是一个企业的话,这种浪费毫无疑问是奢侈的。
这种以人为本的概念,很多公司都在做。2006年,这四个字在微软被翻译成 People Ready。这个概念很符合我的想法。有些人对这个公司的很多技术不是很了解,比如最受嘲笑的就是 IE 浏览器下的 ActiveX Control。可是恰恰因为有了这样的技术,上级通过浏览器、邮件客户端发布的信息才有可能加以自动化。确实,想符合上面以人为本这种生产模型,我们必须尽最大的可能结合现有的技术,来减少信息流动所带来的延迟。而专门针对减少这种延迟的技术却往往要经过很多安全性上面的考验。所以在技术发展的初期,往往会因为缺少足够的经验以导致漏洞的发生。可是我们一定要因为安全性而像鸵鸟般把头扎在毫无生气但是绝对安全的沙盘里么?安全性和易用性不应该是拔河比赛,并且任何一个极端都是人们不想考虑的。平衡好这个天平,以人为本的想法才可以实现。这两个方面合起来就是软件质量。提高软件的质量并不是不可能的,这就需要程序员们在格式上、协议上、操作模型上不断加以验证和改进。在验证和改进的过程里,只要合理合法,应该是什么平台和概念都可以拿来用的;不一定要求是某种操作系统,不一定要求实某种浏览器。
2006 年愚人节,我拿到了这个公司的一个职位。职衔为测试软件开发工程师,产品为 People Ready 计划的一部分。同年 11 月,这个公司推出由通信、演示、工作流程三大模块组成的 .Net Framework 3。也是在读了一年半硕士研究生之后,我又暂时辍学了,来到了一个叫做 Redmond 的小村庄。(上、中、下)
人总要学会审视自己。我给了自己一个月的时间,完全忘记之前开始写这个的初衷,然后现在重新回来读读一个月前的文字,重新回忆后来的日子。7 说名人都喜欢写回忆录,我还不够那个级别;罗永浩说年轻的时候错把创作的热情当作了创作的才华,我也不想让谁误以为我文化自恋。还是那句话,写点东西给一个月之后的我看。扯远了。上回说改变我一生的计划,其实是出国读书。不敢用“留学”这个词,因为这个词太泛滥,没什么内容。
于是在我高中三年级的时候,也就是 99 年的秋天,我又辍学了。我和哥哥离开了深圳的家,去了一个叫做加拿大的小地方。加拿大离另外一个稍微大一点叫做美国的地方很近,因此生活……真正独立的生活,也更加多彩。读了一年加拿大的高中,很用功。一年间也发生了很多很多事情,但不是我现在要说的。也许那天真正名人了一把,再把那些事情写到回忆录里去吧。
不过,有一件事情要提一下。那段时间大家都是家里面送出来的小格格小阿哥,又是成人的转折阶段,所以很多人都在性格上因为环境的影响发生了一定的改变。特别是我,不知出于什么心理喜欢下载一些没有什么技术含量的后门工具加在别人的电脑上。当时用的是 Sub7 ,再配合一些什么 QQ 端口扫描工具,可以很容易地查找出来同一个宿舍里同学们的 QQ 号码。然后作了几次恶作剧,把女孩子们忽悠的一上一下的。在这里我要真诚地道歉,那时候可能真的事心情太乱了,就用传统的男孩子的方法,通过欺负弱小来逃避自己。千万别把这跟黑客挂上钩,用别人写好的工具来耍人,现在想起来都自耻。
后来报大学,也没有什么心情。可能更没有的是信心吧,于是就报了街口拐角的一间大学。想进科学系,但是托福不够。后来来回跑了很多趟系办公室,才勉强过了门槛。大一的课不难,但是隐隐约约感觉到人生好坏也就是这几年就定性了,所以再没有了之前的那种吊儿郎当。全仰仗自小逃课玩计算机的能耐,计算机课期末的时候竟然拿了一个不错的成绩。虽然现在看来,那种计算机入门课简直小儿,但是也让我头一次作了一回尖子生。另外一个原因,也可能跟我那年迷恋上了 Linux 有关。
2001 年,Linus 发布了2.4 版的内核。那时候用的是 Redhat 7,安装在一台从 Seven 的叔叔那里买来的旧康柏上。(借光感慨一下,IT 业界斗转星移,还有谁记得当年的康柏、贺氏这些曾经的名牌?)不过要说第一次接触 Linux 的时候应该是 97 年上高中的时候在某个杂志后面摸出了一张 Turbo Linux 的碟。当时启动以后进入了一个只有 X 光标的奇怪界面,于是便退出了。从大一开始,对 Linux 的热爱便一发不可收拾。什么时候跟同学谈话,只要谈到这个,基本上都会看到对方很不耐烦地表情,因为我总会滔滔不绝。那时候把这个当成梦想,当成信仰,却不知道自己其实在技术上只是一肤浅水。直到很多年后我才知道,真正的梦想和信仰应该是怎样的。
在科学系读了一年大一,我和一个叫做穗的同学叛逃去了工程系,就读软件工程科。当时的理由很现实:听说读工程系好找工作。实际上一直到毕业,才弄清楚软件工程和计算机科学的区别,不过这是后话。顺便说一下,穗哥是个做事比较认真的人。我得到了很多来自他的帮助,包括参考作业。读书人,没有抄作业一说,大家都是光明正大地互相参考。(孔同学在这个问题上比较有研究,要是有兴趣可以问他。)说实话,大学期间能有几个可以臭味相投的人确实不错,除了穗哥还有 Peter 钱,都经常在我疑惑的时候给与了无数次有质有量的解答。在此谢过。
大二暑假,因为平常自己玩过一些实时 Linux 的东西,所以被一个教授选中在暑假做索尼机器狗 ERS-220 的控制软件。机器狗的硬件是索尼提供的,我的任务只是负责去写一个跟现有商业软件同样功能的可以控制这只机器狗的平台,然后在这个过程中发掘这个机器的教学潜力。当时夏热炎炎,懒得做饭,所以经常以麦当劳的巨无霸;加上大学的缩写又是 MAC,所以我给这条狗起名 Big Mac,中文大麦。反过来读也就是大学的中文简名。后来又得到了新一代的机器狗 ERS-7,负责把写好的代码移植上去(看来我和 7 很有缘分啊)。逐渐地,我感觉到这种平台为本的软件开发模式实在是太浪费人力了。很多组件因为硬件平台不同、语言不同、指令集不同,都要重写。但是基于虚拟机技术的 Java 在语言的选择性上又很单一,所以没有一个暂时的解决方案。那个时候我也注意到了微软的 .Net,但是因为所谓的“信仰”,一直没有正眼看过。
在办公室的时候,又一次在 MSN 上被请教如何去 emerge 某个 ebuild。那个朋友说他每次到最后都会得到一个 Segmentation Fault,应该怎么办?我说,我已不是我。关于这个朋友的问题,我发了几个网页给他,然后就解决了。他对此很感谢,说他现在已经迷上了他所接触的东西。我心里于是不知道有什么东西“碰“了一下。很久以前,我曾经坐在同样的命令行前。眼睛没有离开过屏幕整整 22 个小时,我却根本不辛苦。相反,那是一件很享受的事情。最后要结束的几个小时里,我甚至会异想天开自己就是 Neo,看到的就是一行行滑落的 Matrix。我也曾经陈不住气地向所有的朋友宣布,这就是我的梦想。现在看来,那样的水平也想出来混。呵,幼稚。
很久没有对那时候的爱好再那么歇斯底里了。我并没有忘记,只是更愿意完全抛弃过去的所学、所想。因为那些只是技术,并不是宗教。既然是技术,掌握就好。无谓的说教和争论,和我无关。这各阶段的进化,正式终止。我把过去若干年来对电脑的兴趣规划成三个阶段。我管每各阶段都叫做一次进化。对这个世界来说,每个阶段只是又多了一个 Geek;而对这个 Geek 来说,每次进化就是多了一个世界。虽然没有太大的成绩,但是从最早的兴趣开始到现在,也有一段时间了。有些东西很想记录下来,所以就写在这里,留给未来的我看。
我和计算机的接触开始于 7、8 岁时在母亲所在的单位地上捡起来的很奇怪的纸条。我会在上面画画,或者把纸条撕个粉碎,然后幸灾乐祸地看着母亲去收拾。现在想起来,上面那些密密麻麻的小孔竟然就是我们现在众所周知的 Software。那些打孔机器就像科幻电影那样兹兹地响着,我不知道那是什么。当时的我做梦都不会想到,若干年后我竟要以这些小孔所代表的 1 和 0 赖以为生。那时候的记忆我留存的不多了,但可以算是冥冥之中带我走向之后三次进化的宿命吧。
在我小学五年级的时候,也就是在 93 年的暑假,我辍学了。我和父亲、母亲,还有孪生的哥哥离开了老家,去了一个叫做深圳的小村庄。母亲因此离开了之前的单位,我也以为与那些打孔机器从此无缘。深圳离另外一个稍微大一点叫做香港的村庄很近,因此生活……不,电视也更加多彩。很快,家人就发现这样的多彩并不生活。看着别人家的孩子都参加各种培训班,我也被列入了一个之后让我父亲十分后悔的计划中,那就是把我和哥哥送去一个位于深圳市青少年宫的电脑班。之前还非常担心我们没有求知欲,能不能在里面呆上两天还是跟问题。那时候学的东西很先进,比如 DOS 和 Turbo BASIC。而且是在当时最快的 386 上运行的。也就是那短短的几天,让我进入了一个从来没有体验过的世界。
很快,一个星期过去了,一个月过去了。我把每天的生活都放在了电脑班、旁边图书馆的电脑书籍区里。很幼稚地把某个教材里的代码抄下来,然后写在家里的电脑上运行。然后修修改改,乐在其中。时间因此过得飞快,我也在深圳的一个小学百无聊赖地混完了六年级,然后混到了小学对面的中学。但是每天的生活还是没有变,放学回家就坐在电脑前,一直到睡觉。理所当然地,我的学习成绩一落千丈,因为我不务正业的时间实在太多了。甚至有几次父亲都想把那些电脑都砸了。哥哥也好不到哪里去,跟我为了争坐在电脑前面的时间吵得不可开交是经常的事情。因为理科成绩不理想,高中的时候我就读于文科班。那时候的成绩排名,好几次在全年级竟然是倒数一二。虽然都是成绩单上写的,没有公开,我也会不知廉耻地拿着到处炫耀。那些好学生、奥数尖子、老师的重点培养对象们避之不得。(一直到现在还在炫耀,借光鄙视一下自己。)再那样下去,我可能连大学都考不上。家里面开始重新思考我的出路,在我不知情的情况下,密谋了一个改变我一生的计划……(上、中、下)

In the sky,
There we have Venus.
Depending on the position,
People call it Eosphorus in the morning
And Hesperus in the evening.
And when I look at it,
I always choose the best angle.Just extend the rod into the lake of life,
Whatever it is hooked,
Is mine.
翻 Email,翻出许久前 Seven 传书让我猜《天下第一》结局,之后的回信:
闻启,
数日未系于书信,思慕之心倍增。念态势昌平,权姑娘动止万福。末家感冒稍愈,方如实报来,不情之数,乃恐姑娘忧心于末家。又因末家醉心于《新宋》,拜读数日方怠慢于书信,如此孟浪,还望姑娘心慈而恕之。
人之生死自古有定数,某家不敢妄加断疑。某家蜀黍猜列,不尽愚昧:
凡传记细说,无不为大灭奸恶,次人尽之,善人处之。如数猜列,必先细而分之。大恶者,非小人也。古人云,大恶必大谋。如此指疑,数种种枭迹,神候当之无愧,将死之人以为之。次人者,可小人,可非小人,且同乃得志者。富千万,赵皇,曹太后,云清郡主赵云罗,柔姑娘,于故事之细说,可归于次人,未死以为之。善人者,惩恶锄奸者也,天下第一四士大夫乃为之。于情理,未死以为之。不过英雄大悲之壮举,实乃戏说常用伎俩,某家于一刀,成是非以为之。另又倭国柳生飘絮,因情大恶,善为次之,实属悲情,将死以为之。
人物生死实属戏说,姑且莞尔而忽之。《新宋》中人物其一,汴京名妓楚云儿,亦为石越石学士讪于小人算计,补慌而罪于衙内重板之下,却念石某人府上桑妻姊妹情,未献可怜求之于,终死于郊外陋屋。情戚戚泪以慰,书扉合而叹之。
末家将下周回屯,恐于时日紧凑,忙于裹包。以为与姑娘相见于数日内,心绪大好,念甫而保之。望姑娘心于顾己,不必担心,以怠末家小礼将送之。
末家虎某敬上
文绉绉地,有点傻。
白水溅九尺,无忧无忆踏碎石。乱走万险道,只为仙人峰。层层重重,重重层层。虽有昆仑剑,只身何以在?思途愕然回首,炭暖寒雪,众藤成桥。绿痕皆险事,雀问一笑之。海远遍知己,一切尽相识。