
我的征尘是星辰大海。。。
-------当记忆的篇章变得零碎,当追忆的图片变得模糊,我们只能求助于数字存储的永恒的回忆,
作者:黄教授
感谢女侠给我指出的错误,看来我有一次把两个演员弄混了,的确我辨认人的眼光有些问题,不论男女。《woman in red》里面的女主角和《魔戒》里面的精灵毫无关系,根本是不同时代的,不同类型的演员,我的pattern-recognition系统看来有问题,不过关于红裙子和玛丽莲梦露我是对的,这一点已经得到了权威的确认,这个当然是因为我再metro的招贴广告上看到后听人说的,所以比较有印象,为防止贻笑大方特此更正。顺祝所有的朋友新年快乐。
一月四日 晴间小雪
一月五日 回来的时候突然开始下雪了
一月七日 阳光明媚,照得人心里暖洋洋的
今天去Loyola上统计课,自从学了离散数学之后,对于所有其他数学犹如一种了然于胸的感觉,好像练武之人练好了基本的内家功底之后,学习别门别派的武功有触类旁通的感觉。上完课后,在图书馆花了45分钟时间认真阅读英文版《毛泽东选集》第一卷,觉得有豁然开朗的体会,仔细捉摸主席的十大军事原则,与当前伊拉克前线的斗争加以对比,感觉冲突很多,看来这种恐怖主义成不了大气候。然则,十大原则与分析问题的方法对于当前执导《英雄无敌4》的斗争策略却有着非常现实的意义,应当继续在战争实践中学习战争规律。
今天终于决定放弃对于clique问题的继续摸索,这种注定失败的尝试是每一个computer science学生所必须经历的,否则,它应该没有资格拥有这个头衔。比如,全世界每一个学计算机的人都知道travel salesman's problem是没有polynomial的算法的,可是,我敢说几乎每一个真正学计算机的人都会尝试着画上几个小时,或者几天甚至更长时间来捉摸,否则,你永远不明白为什么这一类问题会有这样的难度,至少你会有一点点体会。有头脑的人并不会去尝试解决不可能解决的问题,但是这样的尝试会让你了解你不一定知道的问题。至少我的这个bitmatrix作为一个简单的工具达到了我当初的目标。在我没有明白matrix的本质的时候,我以为它是从数学家那里借来的宠物,因此,我把每个entry用long int来表达,当我真正明白了matrix是二元关系的表达之后,我开始抗议数学家把matrix改造的面目全非,因此,为还原其本来面目,我用bit来表达。当然,代码本身没有多少东西,无非是用stl里面的我心爱bitset加上一个整数模板参数来实现一个matrix。但从此以后我会有一个趁手的工具来表达图论等等的问题了。因此,虽然简单得不能再简单,委员会最终决定不再等新的内容就将其存档吧。
统计学一向是我所鄙视的一门经验主义为主,系统理论框架为辅的实用主义气息最浓的所谓科学,是仅次于我所深恶痛绝的最缺乏创造力的所谓科学的化学,生物学,医学。 stat250 开篇讲的就是statistical inference,说了一大通就只有一句话就可以概括,用我们所能够研究的模式来套现实的pattern意图有一个所谓的科学地解释,如同国内骗钱的金融分析家用一大队似是而非的图表骗一些无知的愚夫愚妇的钱的伎俩。说得更难听的就是主席所说的“削足适履”似的教条主义本本主义。碰巧这学期我要学习这两样比较愚昧的科学。
对于人类所能研究的问题,我常常想起中学物理课本对伽率略对匀加速运动的思考过程,首先,他想做的是研究最简单的变速运动--匀加速运动。但是这个“匀”字是相对于时间还是相对于距离要做第一部的取舍,他很快地否定了距离,因为,当时的数学工具部允许他做这样的研究,现在假如我们重新来做一次基本的观察,靠着一点点高等数学我们就知道这是一个比较容易的微分方程问题:suppose s=f(t):, distance s is some function of time t; v=g(s): velocity v is some function of distance s; a=h(v): acceleration a is some function of velocity v.
Since we assume the simplest model, then "a" is a constant, i.e. h(v) = k for some constant k. Then a=h(v)=v'(t)= g'(s)= g'(f(t))*f'(t)=k means derivative for t by chain rule. I haven't studied differential function, but the common knowledge tells me the simplest solution by guessing f(t) = e^t, plug in this e to the power to t and we get:
g'(e^t) = 1/e^t changing variable of e^t to s, we get g'(s)=1/s which implies that if we assume the changing of velocity is constant with respect to its distance, then the acceleration with respect to time would be a function of distance s of reciprocal of s. Is it beautiful? But I highly suspect Galileo can solve this question at his times. The acceleration with respect to time would be much easier one. Does that remind you change of basis in linear algebra if we want to translate between different measuring system. (It is nonsense.)
文学城上有个别人对于毛泽东在解放战争期间的战略决策有三大失策,我对此进行了驳斥,指出正如围棋中的大局与官子关系一样,很多人永远不可能成为战略家因为他们永远在局部计较一分一毫的得失,却看不到全局的胜负手。
今天重看《The Matrix》顺便查了一下字典,原来英语里面是有这个字的,deja vu,大约学英语的人可以用这个词来检验自己英语学到了什么水平,我觉得我学了这个词英语水平又进了一大步,哈哈,大言不惭,大耻不羞。顺便说一下,这个词意思是“似曾相识”,这样使用英语大约相当于汉语中的成语典故一类的妙用。
一月九日 天晴
昨晚看了一部Jane Fonda的老片子<Klute>这应该是男主人公的名字,一个私家侦探。这部片子比较有意思的是风格上很有希屈柯克的悬念片的意思,我直到结尾才明白这是一部侦探篇,因为从一开始的一个与纽约相隔遥远的美国内陆的一个生活刻板的研究员的神秘失踪为引子,揭示了大都市夜晚的另一面(The other side of night)---call girl的生活,Jane Fonda在影片里面更像一个线索,侦探Klute循着他的生活轨迹向人们展示了平常你不一定能看到的生活层面,人性中的弱点,黑暗,变异,其中的大量的反复的Jane Fonda的录音的重放,既是影片中影子人的内心阴暗面的揭示,又是call girl工作的如同示范手册般的文雅的表现。另一个比较有意思的的是气氛营造,相比起来悬念偏不等同于恐怖片,你不能刻意得让观众产生恐怖心理,但是你又要让观众有好奇心与不安定的感觉,夜半歌声通常产生恐怖与惊悸,但是电影处理的效果却让人产生的是好奇甚至美的感受,的确这种感受很难体会除非你看过电影。总的来说,我对Jane Fonda得好感多了一点点,因为,我以前只随便看过一部她扮演一个职业杀手的片子,非常的拙劣以至于让我认为她只是靠身体演戏的,并经这部片子里面还是有一点点演技的成分,尤其最后那个影子人给他放另一个call girl被虐待的录音时候她眼泪鼻涕具下场竟还是有一定感染力的,可以想象她应该回忆起同行的悲惨命运就是自己的未来,同时眼前这个貌似温文尔雅的上等人下一步要做的就是这样。
VC里面为了和unix兼容作了很多令人费解的东西,stat既是函数,又是结构,让我很困惑。
一月十日 阳光灿烂
昨天去听一个化学系的入门讲座,实际上是教育本科生不要抄袭作弊的道德课。国外的大学对这方面非常的重视,plagiarism(就是抄袭)实际上是一个学术界的大问题,任何社会,任何时代都是阻碍科学文化进步的大问题,这种道德教育的预防针在刚进大学的时候就注射是最合时宜,这里的确是这样。我对这个问题不想多说,对于演讲所用得很多警句很有兴趣,(其实这个本身就由plagiarism的难以解决的矛盾,即怎样划定的问题,和是否能够自觉遵守的问题,和怎样监督的问题。)比如,
“抄袭一个人的东西叫抄袭,抄袭很多人的东西就叫做研究了。”
又比如,“亚当的优势就在于他所想到的好的句子一定都不用担心是别人先想到的了。”
“你的东西里面原创的部分不好,好的部分不是原创的”。(英语里面original既是原创的意思又是有创造的意思,因此,其中的双关语非常的奥妙。)
其实,这些有意思的警句我应该去引用英文原文才能让人体会其中的奥妙,但如果能够让不懂英文的人也能体会西方人思想的精妙也许是一个更有意义的事情。正如另一句,大意是糟糕的记忆力让一个人让一个人成为了思想家,因为,一个人有超强的记忆力自然能够完整地记住他所读过的东西,自然不会认为他错误地认为他所用的东西是自己在那里读过的,至少他可以加上注释,因此他是不用担心plagiarism的问题的;而一个人有着非常糟糕的记忆力也不用担心plagiarism,因为他从来都记不住自己读过得别人的东西自然也不用担心他所想到的是别人的成果了;只有记忆力不好也不坏的凡人才要处处小心翼翼担心会掉入plagiarism的泥坑,因为,凡人能够靠自己的头脑想出来的问题应该不多,大多数是看过别人的成果头脑中剩余的一点印象。
一月十三日 临辰爬起来下载Norton
我的Norton antivirus到期了,不小心删除了,又要重新下载,阴差阳错地下载的时候被恶意地3721这个混账王八蛋钻到了我的浏览器里面。没办法卸载,我一怒之下把ie也卸载了,但还是无法删除3721的一大堆dll,在process manager里面也找不到无法关闭,搏斗了近一个小时才在注册表里把所有的3721的项目删除才最后重启删除。
一月十五日 今天是什么天气?(昨天?)晴朗的天空下着雪。。。
其实我实在想昨天是什么天气,因为已经过了12点了。练习unix下的编程。
computer architecture《计算机结构》里面有一个经典的论断:平均起来说一个程序中只有20%部分的代码在80%的时间里在运行。这个论断对于人类也同样适用:对社会中80%的人来说,他们的头脑只在20%的时间里运行他们全部知识与能力的20%。我时时刻刻都害怕自己沦为那80%中的一员。
有多少人能自觉地意识到操作系统里面根本没有copy这么一个系统函数?这是一个非常令人难以相信的论断,以至于我当初自己也在反复之间当我被别人反驳的时候,但是现在我在unix系统命令(准确地说是system call,决不是什么命令行的小孩子玩意。)里面就是找不到,只好自己写一个,因为很简单的,我的实现唯一不同的是我不允许目标函数存在,这当然不是很妥当当我完成之后才意识到,不过,这不过就是open里面的一个flag的差别,很容易改变的。
晴朗的天空下着雪。。。这好像是一首很古老的歌,恰好这就是蒙特利尔。
一月十七日 天空飘着似有似无的小雪花
今天买了5月1日经上海回厦门的机票,预计将在5月2日当地时间下午到达上海,如果各界同胞希望劫机或者宴请的请提前预约,不过鄙人不打算在机场发表任何书面讲话。此次访问中国的目的有以下几点:1。进一步加深中加两国人民的友谊。2。访问时间正值来加拿大整整三年,准备在申请入籍前最后看一下中国。3。学了两年多感觉比较累准备回国调整身心。4。现在中国经济技术发展很快,希望回国感受一下发展的潮流,为今后的学习提供一些实践的指导方向。5。经过两年的学习感觉内功有小成,希望闯荡一下江湖以武会友切磋一下武功。6。想有一个良好的环境尝试一个project,当然现在还不成熟,不便透露。 7。希望游历一下中国的名山大川,读万卷书不成希望能走万里路。8。去年Quebec政策改变了,夏天读书太少领不到钱,为了不给加拿大政府太难过,决定回国四个月节约费用。
今天感觉像刘玄德一样脾肉复生,因此马上去学校健身房登记了一个25块钱的锻炼计划,再回来的地铁里给了一个一只胳膊的自由职业者一块钱的硬币。
一月十八日 可能是今年最冷的一天了
早上七点半去上课,晚上十点半回来,因为Albert大虾肯上传Diablo2,因此特别给他的小题目安排在puzzle里面,好久没有出题目了,这个题目的水平是友情赞助。
写了一个简单的二进制表示法,结果在unsigned int这里被unix困扰了半天,才想明白atoi本身返回的signed int,因此,我无论如何没有办法从命令行参数传入最大的unsigned int,即0xffffffff。
一月二十一日 晴朗
I cannot observe the strange behaviour of "readlink" again.
一月二十三日 阳光普照
很久没有接受过这样的编程挑战了,comp444的第一个作业出来了,据说还是比较简单的,因为每一个小的功能都是简单的系统命令的应用,但是把他们集合起来就是一个小工程了,我为了系统地解决问题,尝试着模拟实现c-library里面高级的带buffer的文件读写函数,否则,全部在系统命令上执行代码太长乐,对于搜索关键字,我又想像写scanner那样定义一个DFA。不过昨天起床起得太早了,最后再debug的时候经常睡着了。没办法只好去理发,下午去健身房,晚上炖了一锅牛肉汤,本来买的是做酱牛肉的牛肉,结果又不自觉地改成了炖牛肉,实际上我还是不知道怎么做酱牛肉。
一月二十四日 老天爷不经意间就又开始下雪了
在Linux下调试指针错误实在是一种痛苦的经历。我不知道是否会有人像我这样为了五分钟的减少去另外划一个小时的工作。当然,这种五分钟的提高时以后每一次都会减少的,这就是系统程序员的习惯吧?我居然已经自封为系统程序员了,不过本人专业的方向就是系统软件。(还是软件系统?这个问题我两年也没有搞清楚。)花了一个多上午写了一个简单的动态数组,这种东西我已经写了不下三四次了,没有什么难度的东西了。
一月三十日 赶快做个备份,我差一点把自己的源文件给改掉了
comp444的作业还是有一点的难度了。还有一个有趣的化简DFA的算法。
二月三日 晴朗
这两天太忙了,好几个作业要赶着交,同时有两个期中考试。不破不立难道不对吗?
二月七日 阴天
学习不忙的结果就是看了不少的电影。《亚历山大大帝》看完后再回过头来看《discovery》的版本,你会觉得这个电影导演实在是不怎么样,基本就是以纪录片左脚本来拍摄的,剧情散乱主体模糊,似乎为一想告诉你的就是亚历山大之所以建立了不世的功勋完全是因为他的杀父嫌疑让他不敢返回马其顿,因此成就了他闯荡天涯的成就,和《Troy》一样又是一个双性恋英雄的征服历史,这似乎是当前北美社会的有一种思想潮流,就是同性恋被社会的正式承认,打开电视,翻开报纸,铺天盖地的是关于同性恋结婚的争论,这一点有一点点甚嚣尘上,的确,我们这个社会发展到这个阶段自然繁殖已经不再是家庭的主要职能,这一点当然应该在社会结构上得到反映,这不奇怪。另外几部老片子可以说是比中国电影还要幼稚一些,比如通灵术披上计算机的科学外衣,让我觉得这是对机器的亵渎。温室效应被归咎于外星人的阴谋,让我想起了《Dr.Strangle Love》里面那个臆想狂将军的经典自述:How can I sit back and allow communist's subversion, communist's conversion and international communism conspiracy to contaminate our precious bodily fluid? So, 这位将军决定反击,派出了他麾下的整个北约组织的所有战略轰炸机去消灭commies,结果当然就是突然间,“这个世界清静了”,借用一下我一向认为很naive的中国新生代所崇拜的经典语句。这种冷战情节在众多的科幻电影里或多或少的有所反映,在《I married an alien monster》里面我已经说过,地球成为外星人与其土著居民,就是我们地球人了,争夺的目标,通过地球人的领袖种族,即美丽坚,得卓越斗争我们地球人获得了又一次的解放,这正是布什在他的战争檄文中的思想一样:让民主自由与基督之光传遍异教徒的世界。外星人入侵的方式有一点大同小异,不外是披上我们人类的画皮混杂在我们中间并且窃取重要的职位,比如想象力丰富的可能会怀疑全球首富是不是外星人?“它”们左右我们社会的发展,垄断我们的资源等等。另一类科幻片似乎总是在担忧我们的未来,比如我们这个如蝗虫般贪婪的种族在短短的一两个世纪内就用尽了地球几千万年积攒的化石能源,有一部电影用类似于George Orwell的《1984》似的阴暗色调描绘了人类在未来与饥饿作斗争的悲惨生活,那时候,我们连代用食品都耗尽了只好开始使用直接从尸体进行简单转化的食品,虽然我觉得我们每天吃的动物尸体和我们自身的尸体在组织细胞这一层没有本质的区别,可是,电影中的主人公和大多数的观众一样认为这是一场悲剧,至少难以下咽。我想列举的这些的目的是,大多数国人只看到少数好莱坞创造了票房纪录的电影,然后对比国产电影从而得出国产电影一无是处的结论,实际上好莱坞每年拍的片子不计其数(对我来说就是看不过来,当然我看的都是几十年前的老片子,我没有钱去装新电影的cable),不乏刚从电影学院毕业的小儿科。
关于miss sunny的问题,我想了很久还是只开了个头,昨天承蒙胡大虾盛情邀请我去YMCA去健身,去的路上想到了一个dynamic context的问题,就是我们在讨论的集合是一个动态增长的过程,比如我们不断发现原有状态的组合成的新的状态,这样我们原有的状态的集合运算可能就要修正,比如,union, intersection, minus。可是怎么解决呢,用类似动态数组的方式更新context必须有一个参数就是当前的context的范围,这仅仅是一个编程的想法还是一个更general的思想?YMCA的设备实在是太好了,相比之下Concordia得可怜的gym好像caveman活动身体的石头墩子。
二月八日 今天据说是农历新年
过不过年对我们加拿大的劳动人民来说有什么区别呢?在地铁上,汽车上想啊想,突然明白我昨天想得不对,根本不用什么动态的context。实际上,用一个bitset来表达组合就可以了,这个可以看作是每个状态的ID,并不一定要把bitset和它恰好能够表达的二进制数字联系起来。不过,我还是不太愿意动手去写,一则越来越懒,二则还是有些问题觉得不妥,是什么也说不清。
How to convince myself that the parent and child process are sharing the same file status table?
二月九日 今天已经是新年了?
二月十日 又下大雪了
有一部老片子我推荐你看,英文名字《Ben-hur》我不知道中文怎么翻译,这也是主人公的名字,它是公元一世纪,(应该是公元前一世纪吧?因为其中也穿插着基督受难,总之是和基督同时代的故事。)以色列的一个贵族,因为布满罗马帝国的统治,和与自己从小亲如手足的罗马执政官发生了种种恩恩怨怨,类似于《基督山伯爵》的风格,颇有传奇的色彩,其中罗马帝国的辉煌表现得淋漓尽致,虽然是五十年代拍的老片子不可能如今天的好莱坞用电脑作出宏伟的战争场景,可是对于人物性格的刻画,尤其是种种细微的细节描写可以说是登峰造极。这是一个信念与信仰的故事,同时也是一个仇恨与宽恕的史诗,是一个奇迹与传奇的画卷,也是一个描绘着希望与绝望的走马灯。我觉得比我最近看的《troy》与《亚历山大》强多了,不愧是11项奥斯卡奖的获奖者。
二月十二日 雪停了窗外一片银白,今天计划包饺子
关于Linux里面的signal,老师在上课演示的时候出现了一个奇怪的现象,当我再次重新做的时候怎么也没有了,不知道是不是因为solaris和Linux不同的原因,实际上我也不知道orchid到底是什么系统,也许是solaris吧?反正sunset.cs大家都知道是unix,alamanni.encs
是linux同样的代码编译运行都不一样,甚至不能编译,这就是unix及其变种的最大优点和缺点,优点是各自不兼容软硬件厂商可以多赚一份钱,市场互不干涉。缺点就是各自不兼容软硬件厂商可以多赚一份钱,市场互不干涉!我没有打错字,现在也没有睡觉,我说的意思就是一件事对某些人是优点,对另一些人就是缺点,比如消费者和生产者。在声明函数指针的时候,要特别小心,尤其是他的返回值也是一个函数的话。又花了两个多小时才成功声明了一个函数指针类型,这个函数指针的返回类型是一个函数,同时他的参数里面也有一个函数指针。我承认我对C的语法,(就是编译器用的语法)感到很困惑,当你声明的函数指针类型的返回类型是一个函数的时候,这个返回类型你要写在哪里?比如能够这样写吗?typedef
void(*)(int) (*MyType)();当然不行,因为写高级语言的时候习惯了类型在前,可是遇到函数就不行了,他只认得嵌套的格式,可是即使是你写了嵌套的格式,在类型声明的时候,编译器认为你在声明函数指针变量而不是类型声明:typedef
void((*MyType)(int))(int); 编译器总是报错说 error: `MyType' declared as function
returning a function,我对于此百思不得其解,也许这是编译器的一个极限,最后我只能分步骤进行typedef,结果就是typedef
void (*HandleType)(int);
typedef HandleType (*FuncPtr1)(int, HandleType);这个问题实在是难以理解,或许我哪里错了?有那位大虾可以指教我一下?另一个很有意思的小的结果就是,我这个简单的对于signal函数的想象试验让我看到了数组插入的另一种代码的表示,这个实在是小冬冬了。
哈哈,我终于算是明白了一点,看,typedef void (*((*MyType)(int, void(*)(int)) ) )(int);
这样就可以了,因为再C里面括号不像在C++里面那么随意,也就是说C里面的类型检查也许非常的强,从另一个角度讲就是不那么灵活,对于程序员来说要困难一些,我想应该是这样的首先,你要告诉编译器返回类型void(*)(int),注意(*)对编译器来说就是函数指针的意思,然后你要把你的整个定义用括号包起来,同时里面也是有函数指针的,第一个就是你的类型MyType,所以,你也要用挂号(*MyType)让编译器知道这是一个函数指针类型,其次是参数这个就比较简单了,在C里面括号的应用一定要小心小心再小心!!!我想这两个是完全不同的东西:typedef
void*(MyType)(int); typedef void (*MyType)(int);
看下面的例子:typedef void* (myType1)(int); typedef void (*myType2)(int);
请注意,这两个声明紧紧差别在括号的位置,意义是天差地别。一个是声明了一个函数(注意不是函数指针类型)返回类型是void*,另一个是声明了函数指针没有返回值。
怎么用呢?比如我们在声明两个函数:void handler3(int num);
void* test(int num);
myType1* p1;
myType2 p2;
p2=handler3;
p2(4);
p1=&test;
*p1(5);
这里是两个函数的实现和运行结果:
void* test(int num)
{
printf("test return void* and num=%d\n", num);
return NULL;
}
void handler3(int num)
{
printf("This is handler 3 and handling %d\n", num);
}
[qingz_hu@alamanni ~/mywork] % ./funcptr.exe
This is handler 3 and handling 4
test return void* and num=5
这个例子说明了括号的重要,我要牢记在心。
二月十四日 无雪
我把comp444的问题简单整理了一下,这门课非常的好。关于library的地址空间我和老师有不同的意见。
二月十五日 阴晴?
今天我累死了,从早上七点半上学回到家都十点半多了,最后Hina给我单独辅导了将近两个小时,我都快饿晕了,两眼看着汇编都在冒金星。非常感谢这个曾经教过我的老师,我对他的看法也彻底改变了,他确实是一个不错的老师,他就像他自己说得他痛恨让学生fail,或者drop。如果不是他这样一步一步把一个高级语言的loop拆解成汇编然后再重组,我是不可能理解并行处理是这样依靠loop unrolling来实现的,其中的data dependence依靠冲命名寄存器被去除了,依靠重组指令,我们把相互依赖的指令分到不同的组里面,依靠加长循环体我们减少了跳转的指令个数,最后我终于学到了一点基本的依靠软件实现pipelining的概念。下午在实验室泡了一个下午,明白了几个问题,sigsuspense实际上是把block和sleep结合成一个atomic的syscall。SIGKILL,SIGSTOP是两个不可以BLOCK也不可以重新设定signal handler的信号。passwd是一个程序可以访问passwd文件和shadow文件去改变和查询密码,正因为如此,他的setuid bit必须设定否则别的用户没有办法执行它,因为passwd,shadow文件时root用户创建的,游人可以在一个root级别的shell script执行的时候把她中断,从而取得root的用户权限。login是直接从init process fork出来的子进程,用户登陆成功以后,由login process用fork, exec创建一个用户默认的shell,这个信息当然是从passwd文件独到的。
二月十八日 风雪交加
今天是春假前的最后一天,下午做完化学实验和同组的欧亚同学去吃越南河粉。回来后玩了一会儿Grogono教授的3D动画库demo。真是好神奇啊,夏天我一定要好好玩一玩动画。闲下来就看看《Noting Hill》,我想一个人的思想实在是难以捉摸的一个东西,我现在很难想象我当时为什么会去买这部电影,当然,这种浪漫轻松的东西始终是让人快乐的。早上玩了一下signal,我认为在signal的handler里面如果睡着了的话,i.e. pause(),你永远不会再醒过来。不熟悉linux/unix的读者一定会以为我有再打什么诳语,其实,很简单的。看DVD时候想起了我在TAV里面从那对夫妇身上学到的一点点东西,丈夫教了我一句法语:C'est la vie,妻子教了我一句英语:everyone can contribute one word。
二月二十三日 挺冷的,有零下二十几度吧?
据说今天是元宵节,晚上去春明家吃火锅,吃到了黑芝麻馅的元宵,真好吃。席间发现春明同学理论水平就是比我高,比如听到他说要批判妄自菲薄自我的“历史虚无主义”倾向,以及所谓成王败寇的“社会达尔文主义”,这些名词我都是第一次听说,很有意思,看来读书与不读书还是有区别的。今天,在去吃饭的路上想明白了一个简单的道理:Linux的信号最好适用于两两之间的简单通讯,而且最好是用于单向,想明白这么个简单的道理,就知道我当初的设想有些是不妥的,我打算明天再改。signal里面的问题其实挺多的,这个程序远比我想得复杂,虽然我在第一天就写完了框架,实际上能做到完全的bullet-proof时的安全的同步并不容易。比如这个简单的小问题我就没有完全明白。
whatevergoes.htm#signalCount
二月二十六日 应该不算冷吧?只有零下十几度不到
临辰起来把我的signal程序简单整理总结了一下,这种程序一点也来不得马虎,因为单进程的程序里面如果不准确有时候至多不过是效率低一些,对于初学者来说算不得大错,可是这种多进程,夹杂着信号处理的程序就很不一样了。比如这就是典型的错误:
while (!gameOver)
pause();
这种随手写出来的code经不起一两百个进程的检验,很快你就会发现程序跑起来有时候队,有时候不对。computer science最大的好处与最大的坏处就是没有多少偶然性可言,这里的偶然性指的是侥幸,比如远古时代巫师祈雨,有时候祈祷了很多天还不下雨,作为巫师你可以蒙骗渔夫渔妇说龙王不在家,这在英语里面叫做bullshit。你应该明白我所说得好处与坏处是应人而异的。Computer science另一个好处与坏处在于编译器面前人人平等,不论你是多高的权威,多年的经验,你还是要接受编译器的检验,而编译器从某种意义上来说是一个大家公认的标准,你如果实在不愿意遵循,那么你可以选择别的编译器(或者解释器)或者干脆自己写一个,否则你就必须要遵循这种游戏规则。在计算机的世界里很少有所谓的权威经济学家的预言之类天大的笑话,0就是0,1就是1,来不得侥幸。而软件领域里又更是平民化的一个天地,因为,玩硬件的人还可以借助大型设备的堡垒躲过大众的雪亮的眼光而高高在上,软件的威力就在于没有什么真正意义上的垄断,只要你有能力,linux的源代码都在那里,你可以去读啊,当然有多少人去看,我实在不敢说,至少我是懒得看,一则是还没有逼到那个份上,二则功力未到读起来事倍功半。这些应该是我当初尝试看delphi source code得到的唯一的收获,在没有对windows编程甚至于对计算机的基本常识有基本的了解的时候,一个人的信心是最强的,这一点在众多的BBS上你随手就可以看得到。人类对于一无所知的领域要么不屑一顾,要么奉若神明。我也是一样。
二月二十八日 晴天
三月三日 阳光无比灿烂以至于有吹面不寒杨柳风的感觉
有时候知觉最不可靠,有时候知觉比感觉来的正确。英文里面的intuition我不知道是否能够对应成中文的直觉,但是,总的来说贬义的成分多些吧,今天上可笑的化学课,我突然明白了以前中学读的课外书里面的关于相对论的解释,的确“尺缩钟慢”这些世俗的对于相对论的理解并不能说明大多数人真正能够认识到其中的本质,我想我是明白了其中的本来意义,当时看书所有的道理都似乎看明白了,可是最后还是不理解,不过当时的记忆力很好,我现在还能记得大概。其实说白了很简单,其中的道理甚至和三棱透镜能够析出彩虹一样的简单,只不过我并没有再多想一层。在回答光为什么会弯曲之前如果你能够像明白什么是直线,人是怎样认定直线的,你也许就明白了多半。在回答时间是否会真的变慢之前,现自己问自己我们怎么知道时间的,也许你又可以明白大半了,我现在非常深的体会到人是多么的先入为主,多么的想当然,而这种能力既是人在大脑运算速度远不及计算机的情况下显得比电脑聪明的主要原因,又是丧失大量发现与认识世界本来面目的机会的最大祸根。客观世界从来不懂什么叫直线,人看到根据经验自己认定的最短路径便成了直线。客观世界本无时间,人认定看到的就是即时发生的,便以此认定了什么叫同时。还要在解释吗?
三月四日 天还没亮
昨天关于相对论的胡言乱语你可以忽略不计,我想这就是科学,不管你头脑中的信念有多么令人信服,一旦落到纸上,经不起一步步的推导就只能是错的。我并不是说我想得全都是错的,只是有些细节不让我相信,好像我的直觉是多普勒效应吧。其实我更想说的是中国文化的糟粕就在于不求甚解,或者说无法求甚解,翻开中国古书从来讲的都是空泛的理论概念,个人想法,最好的贴近实际的也不过是记录宗师言行,或者游记,至少我接触的就是这些,在中国纸上的符号推理一直没有诞生过,这或许和中国使用象形文字有关,如果是真的,中华文化的糟粕看来就是象形文字了,过于费事费时的文字书写抑制了人们符号计算(symbol
computation)的欲望,以至于中国人思维从来做不到严密与精细。关于象形文字与拼音文字的优劣的讨论,我想应该是由一个定论的,从语言发展史上看,拼音文字是发展的较高阶段,因为他更抽象,象形文字时期发展的一个早期阶段,根据这一点,中华文化始终没有走出进一步抽象的文字发展阶段,同时由于周围都是发展更为落后的文化,以至于无从引进更先进的文字,结果导致近代科学的萌芽至今都很难在中国落叶生根。
三月五日 阳光很好的
SIGPIPE is only available for
good-habited programmer.
Dr. Probst确实可以是一个很好的哲学家,我读了他的一点讲义,觉得他看问题很有高屋建瓴的味道,我以前对他抬不尊敬了,好的教授一般是不屑于编程的,我真是很后悔,在毕业前我一定要写信去向他道歉。实际上当我重新读我当时写得email问的问题,当阅读速度是60words/min的正常浏览速度下,我根本不可能明白我自己的问题,而我现在一点也不对教授当时的一般性概念性的解释有什么不满的:人不可能如编译器那样的速度理解这种多进程的问题,这太难了!更何况假如我初在他的位置每天不知道有多少学生写来错误百出的愚蠢问题,我会非常仔细地理解每一个错误吗?我当时太肤浅了。因此,我花了一些时间把字里行间不尊敬的字眼删去了。
三月六日 阴天
昨天晚上去看了一场电影《blade--trinity》花了一个dollar。总的来说还算值得吧?不过,marvel这个公司拍的电影过于追求所谓的cool以便迎合年龄层在10-30岁的观众,这个阶层的观众主要看你的画面是否绚丽,动作服饰是否流行个性,杀人是否动作优美并且有所谓的语言幽默的特点,当然对他们来说的幽默我常常不知所云,这个年龄的语言哪怕是中文我都会费解别说是英文了,我相信他们也不大喜欢我所欣赏的幽默吧?在去的路上,我和小温侯讨论了gdb的问题,其中一个想法就是gdb能够跟踪是因为源代码放在可知性文件里面了,试验了一下果然是的,这样无论原码是汇编码还是c代码,理论上gdb都可以去跟踪,即便你不使用gdb编译的,这就解释了为什么DDD是汇编器也是调用gdb来跟踪的原因。
昨晚和早上一直在学习怎样使用cvs,第一,在.cshrc文件里面加入路径参数setenv CVSROOT yourcvsrootdir。第二,转到你要import的代码目录cvs
import dir-in-cvs myname releasename。第三,使用的时候cvs
checkout myname。目前就学到这里。
三月七日 纷纷扬扬的下起了雪
今天看了一段老江当初在香港答记者问的录像,我简直无地自容,一个飞扬跋扈的小人,一个窜上跳下的小丑,真是难以想象一个大国之君竟如此的没有气度修养,不知不觉我们大家也都学会了他的口头禅,“你们太young了,too
simple,sometimes
naive。”让我总是想起来围城里面的张买办说的夹杂着英语的汉语,这每句话里面的英文字仿佛牙缝里面的肉屑,并非必要只是说明吃过肉向人们展示而已。春秋战国时期赵国国君在于强秦会面的时候受不了秦王的淫威被迫给秦王弹琴(就是鼓瑟了),蔺相如都会认为是奇耻大辱不惜血溅三尺逼秦王为赵王击缶以给赵国找回尊严,可是,当今我们这位皇上居然在出访的时候主动又唱又跳,为人弹钢琴,搔首弄姿,让十几亿人民羞愧难当。就冲着一点,我决定在回国前申请放弃中国国籍加入加拿大公民,当然我知道这是个借口了。哈哈。。。
晚上又重新看了一遍在国内的禁片《活着》,原来我一向不喜欢巩俐,但这部片子冲这葛优的面子,就对她肯定一次吧。我很难想象这样的片子居然会被禁止发行,共产党看来是有亡国之兆了,从头到尾我没有看到一个坏人,也没有听到一句主人公抱怨社会,诅咒共产党的话,我甚至可以深深感受到主人公发自内心深处感谢新社会的深沉的声音:“一个普通小老百姓唯一的要求仅仅是要活着。”也许审查的官员认为这种要求对于普通老百姓来说在解放三十年间是一种过于奢侈的要求?
三月八日 阴天
在命令行里可以调用bash shell:sh -c "ls -l"。不过我想不出来有什么好处。
我总是犯同样的错误!经过dup2使得pipe的一个write端指向STDOUT_FILENO之后理论上说不论我调用write或者使file
library德fputs之类应该得到同样的结果,对吧?可是我总是看不到预期的书橱,因此我开始怀疑这怀疑那,还写帖子去问老师,结果最后发现又是老毛病:忘了fflush(stdout)。这个问题我在看书上的例子的时候就注意到了,可是结果还是又让我花了大半天跟踪怀疑!!!要记住了!!!
今天终于大致明白怎样用cvs了,总之我总是出错的原因很有可能是程序本身的问题,我应当另换一个目录否则会有冲突。1。CVSROOT下的每一个目录都被当作使MODULE,
2。export主要是为了取得一个干净的版本,否则应该要用update。3。commit和diff都可以带一个文件名参数,其中版本号参数是-r1.2,4。如果要取得某一个版本用update
-r1.2。这就够用了吧?加一个文件的时候仅要add还要commit。困死了要察看的话就用log命令。
三月九日 天晴
Concordia的学生会打算相应其他大学的行动来罢课,有那么几十个学生聚集在教学楼每口示威,大街的两头部署了警察和救护车,真是好笑。我买了不到三个月的皮鞋就被大街上的盐水腐蚀的鞋底破了,Wal-mart的中国造的鞋以后是坚决不买了,一定要想办法支撑到五月回国。
三月十三日 雪又停了
昨天我们又一次包了水饺,我们大家深深地感受到包饺子是一项费时费力的重体力活,包饺子累,吃的时候也累,最后大家都吃得累趴下了。虽然回国没有多少可以期待的,可是就如同一个人的期望一样,本来无所谓有,无所谓无,想得多了一些,慢慢地自己就认为这是一种期望了。常常地想我来加拿大究竟有什么收获,呆在这个北方的冰雪之地有三年了,究竟意义是什么?思想上的变化也许是最大的,生活上的改变何尝不是很大,人生的价值取向应该也是有所改变吧?现在在经济上可以说是一贫如洗,不过,心灵的深处也需得到了从未有过的安宁。明白了很多很多,这个收获应该是远远大于任何的金钱所能代表的。语言是思想的外壳,我想我现在也和从前的我使用两种不同的语言了吧?那么,我从前所交往的人群应该是使用和我当时一样的或者兼容的语言,那么我现在使用另一种语言的话,和从前的人群是否会有交流的困难?应该吧?有时候想到《围城》里的方鸿渐
,他号称游学数年,“兴趣颇广,全无心得”,我虽然至今连一个最低的穴位也还没有完成,但自认为自己“兴趣颇广,小有心得”,算是对得起自己的了。唯一美中不足的是,方鸿渐回国的路上有鲍小姐和苏小姐的艳遇,我想我唯一可以预见到的就是在十二个小时的飞行里的一本《编译器设计》的陪伴。
Michael看人入木三分,我还不如他了解我自己。我是否应该患不己知?
三月十六日 阳光灿烂,大雪纷飞,别以为我生病了说胡话,这就是蒙特利尔
对于艺术确实是一个仁者见仁,智者见智的主题,我想起了我的favourite TV
三月十七日 有小雪
今天被同学逼着学了六个小时的统计因为明天要考试了,晚饭就吃了《围城》里所说的“本位文化三明治”,即面包夹酱牛肉。晚上借了一篇《天下无贼》来看,感觉是冯小刚在艺术的领域越走越低,在娱乐的道路上越走越宽。早上在地铁里面一直在捉摸3CNF的一个intuitive的算法,我现在经常幻想一些明知不可能的事情,不过正如Dr.Optrany说的,NP-Complete的问题虽然不可能有polynomial的解法,却可以有近似的算法。听化学科将原子结构非常得无聊因为我总是觉得化学家再desperately试图用初等数学解释一个概率论的问题,比如我总是认为电子云是不同的distribution的体现,而不是什么能量轨道的概念,用这个方法来叫中学生当然可以,不过实在是一种错误。系统软件老师讲到的一个conditional
variable来实现的同步问题,我认为错了,一直想做试验,只好明天了。
三月十八日 阳光灿烂
I really don't want to treat
this synchronization-revisit as some new work for me.
三月二十三日
阳光躲在薄薄的白云后面好像隔着毛玻璃
朱春明同学号称又要搬家了,这样他可以创造在半年内搬家三次的纪录,正好成为现代版的孟母三迁,原因也是很类似的,因为学习的环境不好,看来该同学很有好古之风,希望他在加拿大这里继续发扬古人好学的“凿壁映雪”刻苦学习精神,这里冬天雪都化不了,因此不用专门等到大雪纷飞的夜晚才读书,每天晚上都可以搬一张小板凳到院子里去“应学”,同时加拿大电费便宜,邻居家的灯大都彻夜开着,如果没有随便去街上那家商店去凿个懂就可以“凿壁偷光”了。哈哈这当然都是开玩笑了,实际上我发现我其实是在模仿一个人,这个人就是《围城》里的方鸿渐的老爹,此人写日记纯粹是文字狂,总是借现实的事件来映衬想象中的自我。
三月二十四日 阳光挺好
昨天,我和朱春明同学去足球场边上跑步,这是整个冬天里来我第一次在户外跑步,制钱只能在健身房的跑步机或者自行车上偶尔锻炼一下,春明同学还像以往一样跑了没有多远就停下来说,“你先撤,我殿后掩护。”我只好说,“你要挺住,我带着党的重要文件去找党组织,回头再来营救你。”
看了一部反映美国二战中在德军战俘营里的斗争故事,这和国内的类似题材有着强烈的反差。首先,德军的战俘营比当时中国的普通军营的生活也许都要好一些,其中战俘得到的人道主义待遇远远好过国民党军队或共产党军队,至于说日本人简直就是野蛮人都不如了。在德军的战俘营里面,美军飞行员建立了形形色色的娱乐设施,如酒吧(食用土豆皮酿造蒸馏而来。),赛马会(用捉到的老鼠替代),风光浏览设施(自制的望远镜观看邻近的俄军女战俘排队洗澡&
show<Red Green Show>里面主人公Uncle Red的名言,大意就是如果艺术作品是连uncle
Red自己都可以做得出来的话,那绝对不是什么艺术。同样,这一领域之所以能有大师
的作品就在于你能作出不是任何人都能做出来的冬冬。
我没有看过那部片子,并且对那一类题材不是很有兴趣。你上一次问我读些什么东西,
我只能记得当时读得比较多的是<times><news week>,对于当时教学专用的外语片里
面,我只喜欢动作片,台词太多了我就要睡觉,比如《out of Africa》,《thorn
bird》我觉得索然无味的只想睡觉,而系里面的那帮女生看的都是津津有味。其实,读
什么都是增加修养,但是如果要速成提高口语听说能力的话,有一个捷径就是读电影脚
本,然后在观摩,再读,一些经典片子可以这样反复。不过,最主要的是要有兴趣。