女人和空调

惘思录                                                          

                   --写在新年到来之前

         不知不觉间今天已经是2002年的最后一天了,因为,我看到我的电脑里时间是12:01, Dec. 31, 2002。像往常一样,

我还不会睡去,也像往常一样,同屋的“胡一刀”还奋战在“风云”里,像往常一样,我又刚刚结束了我在加拿大的又一天,也

像往常一样,在另上床之前,我想听一段音乐。只是和往常不一样的是,今天已经是又一个年尾了,年年年尾接年头,新的

一年到来之前,不妨作些反思,我不是什么圣人,无法“吾日三省吾身”,可是,何妨一年回忆一下自己的人生经历呢?

    回想年初在厦门的日子似乎已经很遥远了,只记得天天为了锻炼身体,一大早骑着自行车去软件园的一家软件公司上班,

虽然工资微薄,工作繁忙,那时候却是我一生中最快活的日子,天天和一群单纯的可爱的年轻程序员混在一起,无忧无虑,

每天只是写代码,然后,下班了或在美丽的海边散步,谈论着简单的可笑的话题,或在大排挡里小酌一杯。也正是在那时候,

我似乎才摆脱了那有时让我心里难受得噩梦,一个无梦的夜晚是多么快乐的夜晚,不用依靠酒精的麻醉就能睡去的夜晚是多么

难得的夜晚。

    恍惚间,我匆匆结束了我的短暂的coding生涯,乘上了飞跃太平洋的飞机,当我从舷窗俯瞰冻土地带的冰湖时,我看到了

加拿大。对于我来说,移民仿佛只是像在城市间的迁徙,你心里时常会装着淡淡的兴奋与一丝丝哀愁,那淡淡的兴奋恰似

“雪碧”里掺进的一小杯红酒,在调羹的搅拌下,翻腾似袅袅轻烟,初看似乎是远游归来看到故乡的炊烟,可是不多时,那

淡淡的红色就会慢慢弥漫消失,只会在你细细品尝之际才会不经意地发现一丝酸酸的葡萄酒味。

    接下去就是从温哥华到多伦多,最后来到蒙特里尔,每个城市只在我心里留下一页页不相关的图片。

    温哥华:我看到了加拿大的第一场雪。我曾经无数次在厦门炙烈的海滩上遥想加拿大的雪,然而却在最不经意的时刻来

临了,毫无征兆地,早晨起来看到大地一片银白,中午,太阳一出来,地上的雪迅速地消融的无影无踪,这就是加拿大的第

一场雪,来时匆匆,并非是我所预期的,走时渺渺,也非我所能挽留的。

    多伦多:我住的路叫"four winds drive",诚如所名,使我在短短的时间里能体会冬天的严厉,春风的温存,和夏日的

热烈,在秋季的萧瑟来临之前,我离开了。无一丝遗憾,正如我每次踏上飞机的舷梯,从未想到要回头望一望身后送别的目

光。为什么要回头呢?我前行的脚步从不想因为贪看路边小草在风中的妩媚而放慢一分,自然也不会在意一路上的风霜雨雪。

    蒙特利尔:“皇家山上西风烈,长缨漫卷心幽咽。四万里上下追寻,终能把苍龙来灭。”

    往事不堪回首,来日似乎还可以追寻,只是心境里少了很多的彩色,冥冥之中似乎天地总有默契,有欲所得者,亦终有

所失。求其上者,往往得其中;求其中者得其次;求其次者无所得;无所求者无所不得。

                             我的星期天

    早上一睁眼,第一件事就是看看我的搜索1600万以内的所有质数的小程序运行是否有了结果。我的程序愚蠢的简单,用几乎最笨的办法来找---brute force.不过我是把每次找到的质数存到数组里,以后每一个新的搜索就看能不能整除这些质数,当然,是指搜索到该数字的平方根为止。

    我找这些质数并非无聊,因为,我按照离散里RSA加密法要用很大的质数来作加密的密匙。越大越好,所以,我才想用这个笨办法找几个大质数。不过这个算法实在是太慢了,已经运行了一晚上了还是没有结果。不管它了,还是把我的加密算法的小程序 再加强一下吧!

    这个简单的程序,别看代码简单而且大部分是从书上的伪代码翻过来的,可是很不好理解,非常的深奥。我又想着把离散作业里的小问题用程序来做,这样做作业就省心了。

    改来改去,才发现自己并不真正理解那些高深的算法。哎,这本来就是一种学习方式啊。
    头昏脑胀,否定之否定。吃午饭才告一段落。

    下午,不想再动脑筋了,透过玻璃窗看到明媚的阳光在招手,不想辜负了这春天。那么就进城吧!

    圣凯瑟琳大街。
    加拿大的春天弥漫在空气里,洋溢在笑脸上,漂浮在音乐中,溶化到了我心底里。我虚浮着脚步,仿佛被春光灌醉了,又仿佛被春风轻轻托着足底,全身暖洋洋,懒散散,如温泉沐热汤,似西湖熏暖风。徜徉在人流中,身心却要一直往上升上去。

    教堂前。
    那两个街头艺术家照例在拉着小提琴,弹着吉他。多么优美的音乐啊!有时候,小提琴旋律激越高昂如侠客高岗长啸,有时候,又带着浑厚的男中音娓娓诉说如多情的丈夫安慰妻儿。而吉他不论小提琴多么高昂洪亮却总能让人清楚地听到他的轻声地附和,宛如惊涛骇浪里的一叶小舟,不管浪有多高,多狂,小船总能随着波浪的起伏浮在浪尖上。马路上车流滚滚,大街上人潮如织,人声车声却更衬的音乐的悠扬携雍。正得“蝉噪林愈静,鸟鸣山更幽”的真谛。我花了1。14元买了一支冰激淋坐在教堂门口听着世界名曲,享受着春天的安逸。快要物我两忘了。

    Ailes百货公司。
    我如梦游般在人流中踟蹰,漫无目的地让心灵随着脚步游荡。这个新的shopping mall在Eaton的隔壁,比Eaton更大也更豪华。我只是本能地不由自主地闲逛着,因为,这是我的午睡时间,我都快睡着了。来到一架钢琴前的沙发上舒舒服服地坐下听着悦耳的曲调,看着琴手灵巧的指法,我很快就睡着了。睡着前还不忘了感谢shopping mall为那些陪女士逛商场的男士所准备的皮沙发的周到想法。

    地铁站。
    我心满意足地走进地铁的楼梯,欢快的乐曲扑面而来。一个吉他手,一只脚套着铃鼓,一只脚套着base,嘴上还吹着口琴,一人同时演奏四种乐器,俨如一个小乐队。引得我不由得一步三回头,贪看不止。墙壁上张贴着大剧院的海报,他是一个有着诸葛孔明的羽冠,关云长似的长冉大刀,身穿西式睡衣的京剧人物,天知道是什么。

    晚上,我在反复回味晚饭里美味的炖猪蹄中写着我的离散数学的证明。不时地,瞄一眼我的质数搜索小程序。他还是没有结果。而我的加拿大的一天却要结束了。

   

Computer Scientist 眼中的世界永远是悲观的。。。

        也许是没有选择的选择才是最好的选择,我一向也是这么说的,也强迫自己相信。

        我在Mcgill偷听“数据结构”课时候,老师说的一句话很有意思,大意是计算机科学家眼里的世界总是悲观的因为,在常人看来更多的选择意味着更多的机会,而在计算机科学家眼里,更多的选择意味着更多的错误道路,因为,正确的道路永远只有一条,那就是在每次选择时候做出正确的选择。这个,永远是困难的一件事,所以,计算机科学家理所当然地总是悲观地看问题。所以,数据结构里总是计算big oh,因为那个是最坏的结果,计算机科学家总是在预计最坏的结果,至于在常人眼里所谓“正常的”结果,通常是被当作“意外”了。

                  二零零三年的年终总结

    时间过得不快不慢,马上又要进入新的一年了。这也许是最好的回顾的时机。

    首先,我想把我这一年来做的几件大事摘要回忆一下:

    1。正式进入Concordia计算机本科学习:这个可以认为是我人生的转折点,从这一点开始,我似乎开始看到了我的未来,虽然

现在离登堂入室还有不少距离,但至少勉强达到初窥门径的程度了吧?

    2。还是学到了不少东西:a) C++现在达到了一个新的水平,计算机的基本结构,基本原理,软件运行的内幕有了粗浅的理

解,开始真正认识到算法与结构的巨大威力,并开始自觉学习与应用。b) 离散数学的基础打得比较扎实,以后可以不断在应用中

深化理解。c) 总算没有过多地浪费时间,至少程序写了100个左右,也许写了30-40k的代码吧?杂文体会书信有几个M吧?

    3。花了25块美金买下了这个永久域名,但愿它能激励并记录我如星辰大海般的征尘。

    4。搬了一次家,觉得还是满意的,在物质生活上得到了一定的改善,同时也滋长了一些贪图安逸的坏习惯。

    5。打了两三次工,更深刻地体会到加拿大劳动人民的水深火热的生活,更深切地体会到魁北克社会主义制度的好处。

 

家书抵万金

> 环岛路最后和最大的咽喉工程——纳潮口大桥合龙
> 位于厦门岛东北部钟宅湾环岛路五通至墩上段的环岛路纳潮口大桥合龙了。钟宅湾围
海造地约20000平方米,保留水面约40000平方米(这些数字可能有误 )。纳潮口大桥
是内湖的出海口通道。它总长810米,桥宽31米,按城市一级主干道标准设计。主跨208
米,就象一个大大的提篮抓手,两边的边跨各58米,宛如精美的护手。整个大桥造型优
美,结构精巧,桥式新颖,是我国目前第三座中承式飞翼钢箱提蓝拱桥,按其跨度大
小,排列第二,总造价1.8亿。也是环岛路最后和最大的咽喉工程。去年,主桥150多根
桩基,经检验全部为一类桩。钢箱拱采用满支架与大型吊船相结合的施工,在全国尚熟
首次。全桥主体工程用钢1.3万吨,临时工程用钢9000余吨,混凝土4万余立方米。整座
大桥有望于6月30日完工。
> 纳潮口大桥建成后,环岛路将真的成为环岛路,是厦门海湾型城市主城区中主要交通
枢纽,还将新增多处旅游景点。钟宅湾区将是高档住宅、游览区。
> 2004年3月19日星期五
>
> 清清:
> 好久没有看到你的email了,十分想念。你邮寄来的照片早就收到了,其实,你放在
网上的照片、除了最早的以外,尤其是数码相机拍的照片我们都可以上网看到。你妹妹
将她的彩色打印机拿了过来,我们几乎将它全部打印了出来,效果还真不错。
> 看了你二月份发来的email“中国十位高级学者劣行大批判”,不知是否全是你的观
念。我看了,就想到了“文化大革命”时期的文章。通篇都用尽了最尖刻的词语将对方
完全否定。“文化大革命”和“文化大革命”时期的文章已经葬送了我们一代人美好的
青春时光,每当想到、听到都为当时的宣传感到气愤和痛恨;也为自己的幼稚和无知惋
惜,所以也特别珍惜目前安定、一心一意求发展的局面和政策。想不到你满脑子只有
c++、没有其他的人,对这种东西还会这么感兴趣,难道还想重蹈父辈的覆辙?再浪费
掉你的青春吗?
> 我们不愿看到你满脑子只有c++、没有其他,更不愿看到你重蹈父辈的覆辙、浪费掉
你的青春。目前的台湾人和当时的我们如出一辙,真的太可笑了,象一群神经病。我们
希望你有事业、也有生活;学习紧张、有序,生活丰富多彩;和多方面的人结交,丰富
自己的阅历。希望你过得开心、顺心、有信心!                   2004年3月20日星
期六
>
 

那个大桥在哪里?我是一点概念没有。
其实,那篇文章都是我没事情浏览看到的,对于哪个领域我不熟悉,姑妄听之,姑妄信之,没什么大不了的,不必大惊小怪。
我的生活是我自己的双脚走出来的,走成什么样就是什么样,不需要别人在前面比划着留下印迹让我亦步亦趋地跟,我想我的意思你们是明白的。
人的一生说起来很短,走起来又很长,有时候白驹过隙悠忽擦过,蓦然回首总觉得今是昨非,然而人的一生不留任何遗憾是绝对不可能的,因为我们不可能事事预见,处处都对。其实,很多事情看似曲折又何尝不是必要的磨砺?没有必要时时挂心,处处提防,活得轻松一点也许才是最重要的。因此,我最不忍心见到的就是我的辛苦一辈子的父母总是不知疲倦的为他们的不孝子女操劳操心,何必呢?儿孙自有儿孙福,你们已经尽了足够的义务,凡事不须十分好,做人但求无挂碍。我想你们应该多给自己放放假。
另一件事,我想告诉你们,我昨天受到了加拿大的一个基金会的通知,接受我暑假期间给老师做研究助理,就是邦教授做一个项目,奖励可能会有最多4千加币,正好可以作为我欧洲旅行的费用。这个机会主要是教授申请的项目比较有特色,当然,教授教我的课程的时候,给他的印象也不错就是了。
我最近写程序很忙就先写到这里吧。
我打算7月份去欧洲。
祝好。

                                    羔羊的沉默

    今天可能是个坏日子。早上去学校领贷款才知道夏天不是full-time就没有一分钱,原本知道政策有变,但是不知道居然还要自己交学费,当然,没有钱的日子也许会更好的日子,不是吗?你会更见专心致志。去领事馆问签证,还是没有结果,本想在心里面批评官僚主义,想想在这个多事之秋,欧洲的奥运会肯定是检查很严的,那也是没有办法的。回来的路上碰到一个法国小伙子在大街上编瞎话要钱,却一句一个‘你可以不相信我’,不知道为什么我对这个穿的很体面的,面色健康的无赖产生了同情,给了他一块钱,当然,我知道他所谓的坐出租车的钱肯定是一瓶葡萄酒或者两包烟的价格,这个我给不起,要给他一个quarter,他又讨价还价要一个dollar打长途。我仿佛可以听到自己的心底的叹气声,既然要同情别人又何必需要理由呢?同情是否也是有一个价码可以衡量的呢?我不知道quebec政府的学生补助贷款计划里有多少同情的成分,至少我是觉得我有时候生活的很无奈。

    坐地铁的时候,我在继续想我那个‘知’与‘不知’的问题,究竟什么是知道?事物总是相比较而存在的,如果知道就有真假,可是,最基本的本来只有‘知’与‘不知’,真假是在知以后才建立起来的,可是,没有真假又怎么表明你已经知道了呢?

    正如数据库里的null并不说明有,也不说明没有,可是,对于所有已经join德tuple来说,已经证明了true或者认定相等,这个实际上是已经很高级的认知了。我觉得我自己也不知道我再说什么,因为,我并没有认识到我现在想的任何东西和我的经验有什么可以比对的。

    不过,就算以上都是我在饥肠辘辘下的白日呓语,有一点我总算是正确的:从前我在写逻辑推理程序的时候,竟然能够聪明地意识到淡淡有true,false是不足以进行推理的,这个在database里的null地数理计算中得到的映证,这种转化就是模糊逻辑里的办法把null认定为0.5。当然,这肯定又取巧的成分,因为世界上没有什么不是可以用其他映射来完全或部分的mapping的。再加上规律往往是统一的,用数学计算来模仿逻辑运算又有什么稀奇的呢?这并不能解决“牛顿式的第一推动”的疑惑,认识从什么基础上有认知的呢?或者能够进行比较辨别真假的呢?这个问题或许如同第一次制造工具一般的无解。这总让我联想起《2001太空奥德赛》似的异想天开,既然无解,不妨假设为外星文明进行太乙真人撒仙制造孙悟空般的在地球上播下了认识的种子。

    想到工具,我就恼火地想到php,这个星期的chaoes完全来自这个愚蠢的东西,这种babaytool居然要我去学,要知道我是一个工具制造者,没有理由让我再去和这些羊羔们混在一起。恩格斯早就说过,制造工具是把人和动物区别开来的唯一标志,我早就是。。。

    我饿死了,在下地铁的时候,又听到了那个琴盒子用handy man's secret weapon--duct tape沾起来的吉他手,我觉得我可以同情一个贪婪烟酒的无赖,为什么就不能同情一把这个艺术家呢?钱包里的那些硬币究竟有多少能代表我的品行呢?不如全部给他,我扔掉了所有的硬币,心里仿佛可以暂时让“同情”这只不愿“沉默的羔羊”暂时在我心底沉默一阵子。

    加入null的Cartesian product。

假如在两个entity set中各自加上null,即不可知的成分,然后做Cartesian product这应该是最普遍的一种结果。natural out join是一个寻求认定相同的过程,它不仅在代表了从不知到知的过程,还加入了是与不是地认识过程,比如:A{a1,a2,null} X  B{b1,b2,null}结果是:

a1      null

a2      null

null     b1     

null     b2     

a1      b1

a1      b2

a2      b1

a2      b2

上面四个tuple可以理解成不知,下面四个代表一种尝试过程,我们可爱的猿人在尝试一种比对,假如,依靠某种神奇的力量,不论是化学的,生物的,还是超自然的,我们认定a1==b1这里的“==”并非要理解成相等,对于人类来说最简单的关系认定就是相等的认定,我们可以轻易地忽略细节而宣称各自手中牵着的羊是一样的,只要我们彼此同意,不妨称之为相等。于是,第二步的认知过程就是“无知到有知”:既然a1<--->b1是认定的,a1  null;   null    b1 这种不可知的过程的产物就可以去除了:

a2      null

null     b2     

a1      b1

a1      b2

a2      b1

a2      b2

这就是natural out join也是我所想要说的更普遍的加入null值得Cartesian product的一个子集。很凑巧的是他揭示了一个认知的基本过程。其中的细节包括了,多个认定“过程”,比如,我们两个猿人各自牵着一头羊相遇的时候,我要比较手中羊和你手中的羊,我要借助我的手和你的手来确定是哪一只羊,当然,对于特使情况各自一头羊是小问题,如果各自牵了n只羊呢?或者更变态一些,我们各自牵着n种不知名的动物呢?他们相遇后很快乐的搅和在了一起,我和我的猿人兄弟无助地想要区分开来各自的宠物,我们也许有一个默契的认定公理,如果是相同的就是不可区分的,也不需要区分,(这两者到底哪一个是原因,哪一个是结果,相对于我和我的猿人兄弟来说是一个过分高深的问题,要知道,在五十万年前我们还没有逻辑的概念,唯一的武器就是集合。)这个时候,终于有一天,我们完成了认定相等的过程,我们的猿人脑袋开始有了一个飞跃,我们有了抽象的思维,对于不可区分的一群羊,我们还是要有数来描述,我牵的三只羊是不可区分的,我用一个三字来描述,你的两头牛是不用区分的,可以用一个二字来说明,终于用一天,我和我的猿人兄弟再次相遇的时候,我们创造了概念和语言,我手中签了一头牛,他手中牵了一只羊,我们不用各自把整个羊群和牛群牵来进行交换。我们腾出的一只手的几个手指头鬼使神差地创造了数字的概念。凭着手指头的帮助,我们产生了无声的语言。

五十多万年后,当我坐在montreal明媚阳光的小屋子里,无忧无虑地回忆往事的时候,才记起了这段混沌的日子:

第一天,我和我的猿人兄弟在知与不知的黑暗中挣扎。这时候是加入了null的Cartesian product.

第二天,我和我的猿人兄弟在摸索认知,我们无助地进行着比较与记忆,我们两个不停地从羊群里各自抓出一头羊进行从头到脚的比对,当我们两个透过如同剪影一般重叠的两只羊的时候,我们高兴的鸽子伸出一只手在空中相遇,并各自从喉咙里发出一些声响。我们找到了相同的羊,但是否我们就明白无误地去除了null这一点,因为过去了五十多万年我已经记不清了。

第三天,我们完成了是与不是的讨论,当我的脑袋移到了羊的边缘,看到了一片牛毛却没有看到我的猿人兄弟的时候,我们开始明白了真假与是非。这一天我们应该保证去除了null值,对吧?

第四天,我们两个开始有了类的想法,因为,每每透过剪影般重叠的两只羊,或两只牛互相看到对方并拍手的游戏我们已经玩腻了。我们决定,这些能够实现拍手乐趣的东西,是属于同一个类的,五十万年后,我在北美的一个三流大学里听教授们用英语称之为:entityset。

第五天,我们两个发现游戏的乐趣少了很多,我们不用再拍手就能认识到我牵的动物和他牵的动物不是一个类,这一天里,我们两个学习了集合的交,并,减法,严格的说,我们这时候,并不认定两只羊是一样的,两只羊的相同仅仅在于,当羊和牛重叠的时候我们不能玩拍手的游戏,所有的羊是一个集合,或者一个类,我们一整天都在实验把各自牵着的羊群与牛群混在一起又分开的游戏,有时候,我们手中各自牵着牛羊混合的群体,我们分分合合直到把手拍红了。

第六天,我们明白了类里面的个体时不用区分的,否则,我们每天都要把手拍肿来区分那只羊是各自最先牵来的那只不仅是无意义的,而且是无效的,不如我们发明手指头来记数,这一天里,我们两个得脑袋长大了不少,我们都学会了抽象,因为,我们开始变懒了,去区分相差很小的两只羊,不如把精力放在区分羊和牛,我们还学会了数字,因为,我们不再能区分各自的羊,我们两个把羊群排成一条线,然后,我们同时从最左边向右边爬行,当我们彼此都爬过羊尾巴,看到一对羊粪,并看到对方,我们就板一次手指头。

好了,今天就胡思乱想到这里,去跑跑步了。

            Big Brother Is Watching You!

终于有机会可以安安静静地看我买的《1984》了。这本政治预言小说我在大学里读过,还买过原版珍藏,今天在看电影又有新的感受。语言是思想的工具与载体,因此,书中原来创造过大量的新单词,这一点是让我们这个象形文字文化所羡慕的,因为汉字可以完全用原有的字径行组合赋予新的意义,一般来说,传承的成分远大于创新,比如革命者剪辫子后留下的长尾巴般的不伦不类。而英语完全可以通过斩头掐尾人为地生造一个字典里没有的词,这种文化上的自由当然会对思维的创新与突破有着巨大的影响力,我始终记得中学时候学鲁迅的《故乡》一文,对于他生造的一个动物名字--“左犬右差”而耿耿于怀达数年至久,一个中学生都会把本国大文豪生造一个无关紧要的一个字归于所谓“玷污中华文字纯洁性”,可以想象普通人,乃至于思想早已僵化的老朽会怎样的固步自封,不思进取?中华民族的劣根性也许在文字与语言上早就有着烙印。

不管是社会主义,还是会社主义,其实原本都是寡头政治Oligarchic Collectivism的代名词,书中描述的所有特征都可以在任何一个依靠集权,恐怖手段维系统治的社会里找到。我喜欢其中的一些句子:

Those who control the past, control the future; Those who control the present, control the past.

Under the chestnut tree, you sold me and I sold you.

War is peace; Poverty is rich; Ignorance is strength;

Ingsoc应该是England Socialism的缩写。NewSpeak是戈尔巴乔夫所谓新思维NewThink的绝好对照版。

究竟《1984》是一个什么样的世界呢?Room 101是汪伪时代76号的英国说法;家庭在“党”的概念里是个人私有思想的温床,是对“党”的纯洁性的挑战的源泉;过多的文字是思想出轨的缘由,于是文字委员会的任务就是一版一版地消灭文字;“党”的敌人不断在改变,两个星期前的敌人会突然变成自始至终的盟友;每周一次的hatred教育是inner party成员坚定的保证;思想警察透过双向电视实施24/7的完全监视;所有异议分子不会简单地从肉体上消灭,“党”的最终目标是从灵魂层次上彻底改造他们,直到他们真心实意地悔过,坦白认罪之前;Room101对不同的人有着不同的意义,对Winston来说,它是他真正的噩梦:老鼠。虽然,肉体的折磨可以让Winston承认所有的已犯的,和未犯的思想罪,但是他心底里还可以存着对Julia的最后一丝情感,但是,Room101的真正噩梦却可以让他最后丢弃这一丝的人的感情,因为,他宁可这老鼠的折磨落在Julia身上,这就是终极的思想改造;

我记得小的时候看过所谓揭露四人帮的一部电影《苦恼人的笑》,里面的主人公是一个类似Winston的角色,每天的任务就是替换报纸上不利于宣传的内容,中国式的看图说话式的政治电影只能做到,主人公被迫说5当他看到4个手指头,而西方的小说中不会这般的浅薄,因为,电影中思想警察头子O'Brian对于Winston为减轻电刑痛苦所说的5是不屑一顾的,“党”并不要你违心地编造谎言,因为,从来没有什么谎言,四个手指头可以是3也可以是5,也可能是4,作为集体的一员你不需要自己的意识明白这是3或者4或者5,因为,个人的私有意识都是对“党”的路线方针这政策的曲解的源泉。

 

                快乐的星期六

    皇家山上真是一个世外桃源。你躺在草坪的长椅上,和火辣辣的阳光对视着,白云羞怯地从蓝天鹅绒帷幕般的蓝天后探出头来悄悄地察看大地上的一切,不禁痴痴地看着草地上敞胸露背的人,不意被长风逮个正着,一挥手被拂向了天际,旁边一排排参天大树看不过去,摇头呐喊发出阵阵沙沙的抗议声,连枝头旁观的小鸟也凑趣式地叽喳几句。

    太阳默不作声地看着这一切,继续热辣辣地盯着我的脸,身边的小草被看得不好意思起来,扭捏着身子,垂下了头。大树倒是感到一阵阵地兴奋,片片叶子泛油般地闪闪发亮,又仿佛是头顶渗出的急切的汗滴。哦,出汗的是我自己。清风温柔地抚摸着我的额头,仿佛在替我擦汗,又好似蒸气浴室里的一条冰凉的湿毛巾。

    周围的一切是这么地让人轻松愉悦,闭上眼睛,我一时怎么也想不起我躺在哪里,这就是蒙特利尔的夏天的一个星期六。

    我曾经无数次地向往着“蝉噪林愈静,鸟鸣山更幽”的隔绝人寰的绝情幽谷;我也经常想象着“长夏唯消一局棋”的人间仙境,可那一切都是可遇而不可求的,唯有在皇家山顶上,我才得片刻的享受着难得的自由与自在。

 

                        迟来的总结

                                        ----写在2005年的2004年的年终总结

    一件事情既然有了开始就会有结束的一天。然而,我还不想这么快地把一个刚刚建立才两年不到的惯例打破,也许所谓国际法,国际惯例的建立也都是如此,你开始做过一件事,第二年你感觉那样做还挺好,你就有接着做了一遍,第三年你就算不想再作了,有人会催促你继续作,这里惯例的惯字和习惯的惯一样,更和惯性的惯一样。   

    2004年有什么可说的呢?也许年初的激动人心的编译器的课程是我再Concordia最值得自己骄傲与回忆的,对我自己来说,做自己最喜欢的又有挑战,成功,失败,痛苦的经历,应该是所谓无悔人生的一个基本要素。这也自然能够解释我彻夜调试程序的时候不小心把DVD player放到了repeat项上让王菲的《爱与痛的边缘》唱了一晚上的感受,没有痛怎么会有爱?如果一个人不是深切地感受到了中国社会的黑暗,腐败,落后,愚昧,混乱,人欲横流,道德沦丧,人心不古,男盗女娼,又怎么有资格说它是爱国的?除非她把爱理解成对宠物的爱,那当然也是一种爱了,只不过作为宠物的被爱的对象是有些悲哀的。

    夏天,承教授赏识给我一个NSERC的undergraduate research assistant的工作做,除了挣了几千块钱就是学习了一点点Unix的应用,这应该是对我今年学习comp444 system software design很有帮助的,当然,我自己觉得我可能做得不好,最后的结果并不是很令人满意,不过,原因也许很多吧?

    秋天的课程好像总是不好,也许每次夏天过后我的自信与野心总是膨胀到我能力以外的地方,(这是第二次,按照我的想法,中国的传统文化最擅长的是归纳法,有一有二,就一定有三,而西方从文艺复兴时代就开始超越这种非常intuitive的原始的思维习惯进入到了演绎法,奠定了现代科学的思想基石。同样在中国文化中象形文字也一样是我所深恶痛绝的,因为从语言进化的角度看,拼音文字是象形表意文字的一种在抽象过程,中国文化没有进化到拼音文字注定了中国文化的愚昧与落后。(我想有人读到这里要对我咬牙切齿,我不怕,自我解刨,自我批判才是一个真正的唯物主义,现实主义的态度,否则,林则徐到今天可能还是唯一的一个睁眼看世界的中国人,其余的老大帝国的子民们还是沉醉在天朝大国的梦想里面。中国目前的表面的繁荣并不说明多少中国文化的优势。))思想者东西就是一匹脱缰的野马,心鹜八极,神游万仞之余我已经忘了我要说什么了,总之,我觉得学习这个东西应当是循序渐进,有张有驰,兴趣第一,一个人失去的兴趣,一切便只是机械的应付。虽然,成绩不算理想,算法研究与分析只得了一个B+,不过,我觉得我还是学到了一些东西,尤其是NP-complete的部分是以前comp335自动机原理应该讲而没有讲的部分,对我震动很大,如果说自动机原理涉及到的是什么样的问题可不可以计算的话,那么算法研究实际上是更实际的解释什么样的问题是理论上可以计算,却实际上不可能计算。也许在下一次在人工智能重要解决一些理论上不可能有完美的算法来计算的,但是可能有一些实际的特例或者接近的算法来计算。不过这最后一句是我自己杜撰的,姑妄言之,姑妄听之。(刚才说到成绩,我偷偷去myconcordia又去瞄了一眼成绩,comp465我虽然只是一个B+,但是A就只有一个人,那个A只能使Anthony,就是那个博士生了,他当然是整个班级里面这方面最明白的了,老教授对他也很赏识了,他解决了老头子的那个关于master theorem中第三个case的condition是否必要的问题,我当时连问题的症结在哪里都没有明白,就写了一封email去解释了一通,也难怪老头子对我的email基本上不回答,因为,我现在明白我很多说的都是废话,胡话,不值一驳。唯一一次老头子破例回复我是因为我建议把dynamic programming和纯粹的recursive call加以结合,取两者之长,补两者之短,但是也正如老头子后来在我去请教问题的时候他所说的,他的确想到了应该可以用一个hash table来存储已经查找过的case,但是hash table的worst case总是非常得令人头疼,可能效率还不如直接的dynamic programming来的好。的确,老教授是这方面的泰斗级的人物,我先前对他的种种怀疑其实现在看来都是限于我自己的眼界狭窄的原因。好像全班有20来个人,成绩我数了一下加上C和D的只有8个人,D-就有三个人,这门课实在是太惨了,compiler design那么tough也有一半人有成绩,看来我当初以为我再Concordia本科学习中最challenging的课程是comp442 compiler design现在要修正成为comp465 algorithm design&analysis了。)

    如果说Concordia是一个二流学校那就是无论怎样的教授都未必能够教好一个二流学生居多课程,我不否认我的同学里面有很多非常smart,非常爱学习,比我强得多的同学,但是,当你作为一个教授面对将近一半的学生只是想混毕业的时候,你会那么严格得让一半人不及格吗?前面说的那个老教授他会的,因为他今年才来Concordia,而且他再stanford的经历,canadian research chair的头衔应该是他不用担心学生的complain让他丢饭碗,所以,他敢于出那种考试题目以至于我只会做6道题目的三道题,虽然,我不断地练习写程序,结果,我一看那到dynamic programming的题目我还是放弃了,我知道我曾经试图在我的c++程序练习中给出具体的组合,但是,那非常的复杂。一个问题回答结果仅仅是真假和给出具体的答案还是有很大的区别的,比如我印象深刻的著名的dijska算法寻找图中两点之间的最短距离,和同时给出最短距离的具体路径,还是有很大的区别的,因为,你要选择一个结构去记录你的每次更新的结果,这个问题我是不可能在一两个小时里给出答案的,因为,我不是那种quick-hand programmer。

    另一件事情值得一提的就是我被列在了Dean's list,国内可能就是系里面收到表扬吧,奖励了一支钢笔和一封信,当然是因为我还是排在很靠后的了,是总数4000多学生中的3%里面的50%以后吧,这当然是把来到Concordia混bursary的full-time学生,和边工作边上学的part-time的engineering学生加在一起了,总之,我现在知道在国外大学里面的奖学金确实不容易,当然研究生是另一回事,因为没有奖学金你压根就不太可能去读,至少,对我来说,我没办法。A+和其他什么成绩还是有巨大区别的,我虽然没有刻意去争取但是我也得的不多。(有些基础课是例外,比如数学基础课老师就差把卷子直接发给你了,好的记忆力得到的分数比理解力要多一些,我知道每一道题目老师课堂上都讲过作业都可能作过,以前的考试卷子里面都可能有,甚至数字都没有变过,但是对我来说好像还是全新的证明题。)(我以前最痛恨看老电影因为每一个镜头都在我的记忆里面毫无新意,可是如今一部电影我反复看还每每都有新意,新发现,这真是记忆丧失后的新发现的快乐啊。)(如果,我不应承这把这些写下来,我明天一定会把现在想的所有忘得干干净净。)

    其他还有什么可说的呢?对了,今年我才发现原来我这种在网上自我刨析,自我炫耀的形式是由专业名称的叫做personal blog。我想这会是一种流行的网络文化,因为它满足了很多想要自我炫耀,自我表现的欲望,比如说我。当然,我很大的初衷是一种自己使用的备忘录形式,而且,我曾经想方设法地总结了n条理由,那最后一条理由我是很认真的,为什么不会呢?人工智能迟早有一天要代替生物智能,那时候研究人类智能的演化会成为某些机器人贵族的业余嗜好,我这个标本也许对他们来说是一个挺有趣的史料。

    就到这里,我要睡觉了。往事不可追,来事犹可补,一万年太短,只看今朝。

    今天偶然知道我其实很浅薄的,本科生和研究生的成绩是分开的,我考的考试成绩其实很一般的,看来人的愚蠢就在于总是过高的估计自己,和过低的估计别人,古往今来都是如此。我一定要摒弃这种小农意识放弃任何的侥幸心理,认认真真踏踏实实地学习,首先从认真读书做起,以往的教科书(除了离散数学)从来没有一本好好读过的,每一本都是一百多块加元买得可是连20-30%都没有看到,实在是不像话。

 

            “雨”中游龙潭

    出厦门,过大桥,穿同安城而过,再开车11.5公里就来到了所谓的“北辰山”风景区。山不在高,有游人就名,潭不在深,有山泉注入就清。这里的确是一个自驾车游览的好去处,首先,距离合适,开车大约一个多小时。人也不多,风景不错,门票也不算贵,十块钱一位,我觉得比厦门万石植物园的二十元性价比要高。最后,就是于平淡之处可以让人赏心悦目,不信且听我慢慢道来。

    首先,我说的“雨”中游龙潭的雨字是由引号引起来的,因为,这山中的雨和城里的雨大不相同,甚至我很多时候也不能说我们是在雨中走的,那里的雨来去匆匆,飘忽不定,刚刚停好车,一出车门,突然就下起了瓢泼大雨,那雨势宛如暴雨的架子,不出十分钟,又停了。走到山脚的小亭子,我偶一抬头看到郁郁葱葱的山上仿佛蒙了一层白色的面纱,那不像是大雨编织成的帘子吗?当然是了!说时迟那时快,那雨帘子就来到了眼前,一下子就又是瓢泼大雨,爸爸还在下面的喷水池看金鱼,赶紧向亭子上跑来,还是被淋成了一个落汤鸡。这山里的雨来得快去得更快,一眨眼,边下雨边出太阳,没有两分钟就雨过天晴,阳光灿烂了。整整大半天里面,就只见乌云时而遮日大雨磅礴,时而骄阳烈日,总之我们全家一人一把伞是没有错了,遮完烈日就避雨。

    整座山都是有小溪流贯穿起来的。山脚下引溪水而成小喷泉,墙壁上雕的石头龙嘴里喷的也是溪水,一个小小的金鱼池旁边就是那潺潺的小溪水,清凉澄澈,哗哗的流水声让你在这个盛夏的日子里宛如来到世外桃源。

 

            无可奈何的一年

    当我称去年的总结为“迟来的总结”的时候,我没有想到我把今年的名称也给用掉了,正如同习惯成自然一样,我能够坚持写这类自我粉饰成份居多的所谓总结,自然也会继承其中的某些传统,比如迟来的。

    在过去的一年里似乎是乏善可乘的一年,学到第三年一个人的身心似乎有些疲惫,或许更真实的原因是当您真的开始有些基础站得比以前高了一些的时候,你更容易看到自己过去的浅薄无知,随之而来的多少有些灰心丧气。

    这一年里究竟有多少让人伤心的事情呢?研究生的录取并没有如自己所梦想的,回国已躺在城门洞旁徘徊了一阵子还是回到了加拿大的现实中来,参加那种让人丧失自信的ACM选拔赛实在是一个错误,就如同AI这种课程一样让人伤心,因为同样是你最爱得伤你的心最深,而这一切中最让人难过的是一个人对自己的失信,从此再没有什么诺言是你不会违背的了。

    年初的linux的API的学习也许是这一年里最快乐的日子,而computer architecture是我所经历的concordia最丑陋的一面,回国的路上的欢乐期待其实大于真实世界的生活,去了一趟北京终于见到了伟大领袖的遗容,在他老人家“一定要扫除一切害人虫,全无敌”的诗词前看到了上方无们来到纪念堂喊冤的穷苦的老百姓,去了一趟深圳,亲切会见了老友胡一刀,沐海风,吃海鲜,宿渔村,潮起月升,天风海涛,实在是羡慕国内白领海龟的天堂般日子。的确在厦门的日子是让加拿大劳动人民留恋忘返的,有时候真觉得是有些梦幻,陪美女喝咖啡打牌的生活当然是比研究ring,group来得轻松多了。恍惚之间我又独自一个人满无目的的云游了一圈,张家界是让人震撼的,天心桥黄果树是让人惊叹的,大理丽江是让人感动的,香格里拉梅里雪山是让人难以忘怀的,“不读万卷书,却行万里路”,这种年轻时代自我安慰的说法又一次成了我浑浑噩噩的夏天的自欺欺人的托词。

    一个人做一点事其实很不容易,能够按照自己的信念去坚持就更难了,在遇到一次次的挫折还要继续坚持不懈几乎就是英雄了。

    秋天总是肃杀的季节,我虽然自信在AI这门课里的确学到了不少的东西,可是和同学比起来可能差的是不少吧?虽然我比较自豪地相信我对于Scheme有些心得,几乎每个project都是做了大部分甚至全部的工作,可是就如同认识到programming competition里的失败一样,我知道我不是一个才思敏捷的程序员,只不过比较喜欢做聪明人不屑于做的重复劳动,小有心得而已,甚至现在也开始有些厌倦了,一个人懒起来就是没有边了,就像computer graphic的project里面我居然是第一次有些充当配角的意思,当激情过去的时候,空虚怅惘的感觉是更佳的痛苦。不过,也许坏事也能变好事吧?至少我现在明白了一个道理,研究生的课程中要多读读书,不能只是满足于编编程序,因为那是一种偷懒的想法。

    这一年里发生的事情虽然都不尽如人意,可是并非没有好处,如果这种结果注定要到来,宁可早些发生更好,一个清醒认识自己的窝远比一个对自己有不切合实际期望的我来得更加有希望,至少说明我还是可以学习进步的。

    这一年里,我来到这块白雪红叶的国度里三年了,上个星期也通过了公民考试,以后言必称祖国的中国变得更加遥远了。似乎人生的道路也更加的迷茫了些。

 

                                恍恍惚惚的一年

    如果去年写的千年的年终总结最大的感触是无可奈何的一年的话,今年的写给去年的年终总结也需要成为恍恍惚惚的一年了,因为记忆在我的脑海里迅速的淡忘,我甚至想不起来我这一年都在干什么?我常常说《钢铁是怎样炼成德》的作者要求自己的一生不会因为碌碌无为,虚度年华而认定自己的一生是有意义的一生,那么是不是要求自己有着很好的记忆完全能够回忆起自己都作了些什么?否则我怎么知道我究竟是碌碌无为还是虚度年华?也许我仅仅是记性不好都忘记了,那么就让我画上几分钟时间回忆一下我在去年都作了些什么吧?

    去年也是这个时间我开始上分布式系统,和组合算法两门课,其中分布式系统给我的震撼是巨大的,因为仿佛推开了一扇窗子豁然看到了另一片天空。虽然我很讨厌java这种语言但是在写这种复杂的程序的时候毕竟方便了很多。编程也许在这一年里有了一些质的飞跃吧?我认为一个程序员开始意识到线程同步问题,开始解决fault-tolerance问题,开始研究并行算法问题,开始以效率为考量应该是一个新的阶段了吧?我对于自己当时对于fault-tolerance的理解和自己参与其中的project还是相当满意的,应该算是我再concordia最复杂的一个project了,以前那个compiler-compiler其实在算法上平淡无奇,无非就是按照现成的算法,唯一比较难的就是采用table-driven而不是迪归调用,复杂但是不见得很难。如今的fault-tolerance确实要考虑的东西很多很多。这门课结束以后被教授选作TA&Marker着实让我骄傲了不少,当然我在随后又从改作业里学到了不少。组合算法其实也是很有趣的东东,有很多东西其实我以前或多或少都想过,但是这种东西仿佛围棋一样易学而难精,期中考试不小心考了个满分导致我期末烤得很不理想,最后仅仅是个平淡无奇的A而已,我想我当时应该可以做的更好一些。五月后开始接手RG的程序,对于图形与openGL也有了长足的进步,至少在写MPI程序之后回过头来看一般的程序很少再有恐怖的感觉了。可是,正如我自己意料中的graphic没有三五年根本入不了门,这也是让我至感犹豫的地方,可是计算机的世界里有多少不是这样呢?浅尝而止终归一无所获。这个学期我所选的两门图形相关的课程一定要好好学习啊。

    搬了两次家感觉我越来越追求生活上的享受,很多时候激情在减退,越来越如歌词里说的需要一个guiding star来指引我的明天。身体则比去年又差了不少,前天买了一掌健身卡,等到gym开门就去好好锻炼。这一年出游了几次,在红河上漂流过,在千岛湖上漂浮过,在大瀑布前流连过,在古巴的沙滩上踯躅过,最大的收获是什么呢?也许还是应该重复在古巴听到的同行的加拿大老太太的话,It helps us realize how lucky we are!意识到了这一点,一个人还有什么不满足的?

    还有什么值得回忆的?wesnoth我成功的编译过,但是像要利用它做AI试验的念头如同当年的reverse-compiler一样仅仅是一个梦想。还有什么?利用TA的钱买了一台电脑,自觉使用visualsourcesafe?一切的一切是那样迅速的淡出了我的记忆。。。

 

 

                                      back.gif (341 bytes)     up.gif (335 bytes)    next.gif (337 bytes)