我的大学(29):雾失楼台

秦观有一首《踏莎行》的词,它的开头前两句是:“雾失楼台,月迷津渡。”此二句所牵涉的文学技巧,由于本人在一个连汉语言文学二专都没有的学 校待了太久,已经搞不清楚该用哪些专有名词来赏析了,所以请有慧眼者自识之。秦观的这首词据说是在他遭逢贬谪之后所作(为什么在语文课本上出现过的诗词几 乎都能据说是贬谪之后所在 = =),这一背景似乎与我并无可堪共鸣之处,然而其中的迷茫的情绪却依然成功地穿越了时空,与我的脑电波发生了共振。

好吧,上面一段话似乎有装X之嫌。不过我相信比起看一个很久没写博客的家伙,在他新更新的日志中一上来就抱怨最近俗事缠身,不得清闲,或者吐槽自己 的学校跟学院,还是一段类似上面那段话的文字更像话一点(围观群众:你在一开头真的没有吐槽自己的学校吗?)。不过,迷茫之情却并非无病呻吟。因为人生就 好像《三国志12》里的战斗地图,密布了战争迷雾,你只能看到你周围一段距离的情景,而且智力越高看得越远(比比看诸葛亮和兀突骨的视野? = =);远方的楼台则深锁在重重迷雾间,只有当你到达附近的时候,才能看清楚,它上面的标志到底是上海环球金融中心,还是神旺大酒店。

曾经有学长告诉我们,大三下学期是最轻松的一学期,结果呢?我写着写着代码清明的三天假期就过去了。也许是我当初头脑发热选择了数字媒体与艺术这么 一个方向的缘故——这个方向简直是个巨坑啊!以计算机图形学为例,建模也就罢了,还要光照;光照也就罢了,还要材质;材质也就罢了,还要贴图;还要阴影, 还要倒影,还要粒子,还要流体;这也罢了,还有不少人不满足于OpenGL或者DX本身的光照模型,还要自己写shader,还要GPU编程……还有什么 HDR什么乱七八糟的名词。我能说其实这里面一些东西整出来的效果我根本就看不出区别吗?国外那帮搞3D游戏的人都是疯子吗?!

西晋的名将羊祜曾经说过:“软院大作业,恒十居七八。”(后来被误传做“人生不如意,恒十居七八。”)南宋诗人宋岳也曾经题诗,单赞软院大作业之事 说:“大作业事常八九,可以秒杀无二三。”(后来也被误传做“不如意事常八九,可与语人无二三。”)不过说实话,与其大学四年天天坐在电脑前看美剧养老, 我还是更愿意做上那么些大作业,即使它们没让我对这门课多多少理解,至少也让我对代码的理解和掌握深入了许多——尽管几乎所有的大作业检查都不看你的代 码。此外,尽管每个大作业都没有非常深入地探究过什么,至少它们让我把从CLI到Web到GUI,从应用到网络到编译器到操作系统,各式各样的程序都写上 了一遍或者几遍,我认为这也是非常有帮助的(话说,我这么一个经常吐槽软院的人突然写这么一段话会被当做卧底吗?)。只是某天在上科技史课,听钮老师讲开 普勒推算开普勒第一、第二定理的过程的时候,突然发现,自己很久没有像高中时候那样拿起笔来,十分入迷地推算一些公式,研究一些算法了。这让我这个高中时 代的数学课代表(虽然后来被老师撤了)突然间感到一阵失落,与十分遗憾。我希望有一天,能够恢复那些绞尽脑汁,去不断向某个问题发起挑战的岁月。

最近参加了几家公司的笔试和面试。游走在浮躁的上海,有时我会去比较现在的自己,与三年前那个刚刚踏入大学的自己。身高好像没长过,不过肉似乎是掉 过几斤;女朋友是一如既往地没有,倒是基友多了几个(说到这里恰好看到书架上李廌的《师友谈记》,这书要是搁到现代写绝对是叫《基友谈记》……)。当然最 主要的不同还是在对程序的理解上,大学前的我无法想象OI风格以外程序的存在,而今我已经可以侃侃而谈地比较(忽悠)面向对象的编程与函数式编程的区别, 也开始思考自己开发某些特定的工具来帮助自己写程序,我甚至还写过加起来已经有万把来字的文档……这些事实是三年前那个每天和同学一起感慨一遍“前途渺 茫”的我怎样也无法预知的,如今已成了眼前的楼台。

只是未知后事如何,且听下回分解。

我的大学(28):千坑万雨

似乎又是有一阵子没有更新这个博客了。没办法,忙的时候没时间写,闲的时候没东西写,此事古难全。《我的大学》系列的上一篇日志是《写在末日 的边上》,本来是该记述期末那段时间的大学生涯的,不料却成了一篇胡言乱语,这似乎也是我最近写的《我的大学》系列文章的一个共通之处(不过其实有些太胡 扯的文章在发表之前我主动把“我的大学”四个字去掉了……)。即使而今再想补述,怕也是亡羊补牢,记忆不靠谱了。如果一段时间里发生的故事已经不存在于任 何人的记忆中了,那么这段时间是否还有什么意义呢?

古人有诗说是“学逼人来不自由,项目作业势难收”。开学总是一大波忙乱的事情接踵而来,这些事情,写成乐府民歌的话就是,“东市开个会,西市上个 课,南市填个表,北市答个辩”;摊上上海现在这种天气,更是天天“渺万里层云,千坑万雨,只影上学去”。于是吴承恩曰:“一叶浮萍归大海,人生何处不坑 爹!”于是李清照曰:“怎一个惨字了得!”

这学期的大作业又有不少需要组队的。当初刚刚组队开始搞MeeGo那个项目的时候,颇有一番雄心壮志,觉得既然组员都是很厉害的人物,就应该做出来 一件很厉害的东西。结果仅仅思考我们要做什么就讨论了几周,也毫无结果。这件事让我后来想明白一个道理,是先有的创意再有的组员,而不是相反。

软件学院很多大作业都是组队项目,可能是为了锻炼合作开发能力的缘故。这种作业方式我刚开始还觉得挺给力,可是后来渐渐觉得有些不爽。本来大作业就 应该是锻炼学生能力的手段,可是分工合作,每个人就很难获得和自己合作的人所做的那部分的知识和经验(遑论还有很多跟着混的情况),以我为例的话,我至今 GUI以及网页前端编程能力低下,即使有有可能存在的天生不擅长此事的因素影响,几乎未经锻炼想必还是最主要的原因。然而毕竟一个合作的项目的好坏意味着 所有组员的课程成绩,这就导致让擅长的人做擅长的事,比锻炼不擅长的人更加重要。

此外,合作还意味着妥协。对于我相信的东西,我会尽量去说服他人,然而无论结果如何,总有人要做出妥协。如果从“理越辩越明”的角度来看,这也许是 件好事,但牵扯到技术的事情则往往不是那么简单。比如如果我想用某种编程语言来做某次大作业,但是我的组员们并不了解这门语言,那么我也只能随波逐流;再 比如如果我想在某次大作业中尝试某种新的技术,但这种技术是我自己也不熟悉的,我无法保证做出这种尝试以后会有积极的效果,那么为了全体组员的成绩,也只 能放弃这场“华丽的冒险”。也许有人会说,这就是现在的IT行业的普遍现象,但是毕竟作业不是工程啊!“练功”和“比武”必须是两回事。

还记得高三保送以前我每天都要跟几位同学感叹一遍“前途渺茫”,如今的大学三年级也颇有这样的味道。不像雷哥从两岁起就知道自己将来要去的是嵌入式 方向,我在上一学期选方向之前曾踌躇了许久。跟着杨老师、肖老师去北京转悠的时候还觉得自己肯定不会选择数字媒体和艺术这个方向,结果现在我已经成了这个 方向的学生。而今站在本科毕业的十字路口,匆匆的时间又会把我推向何处呢?且听下回分解。

今年为什么没有年三十?

(本文于2012年1月22日首发于果壳网死理性派主题站

话说前几天一位姑娘在经不住一位腼腆少年常年软磨硬泡之后,终于答应了他的约会请求,并把时间定在了今年的年三十。这可把那位腼腆少年激动得三日不知肉味,天天手舞足蹈,直到有一天,他发现了一个有趣却又残酷的事实:今年没有年三十。

如果翻开一份你身边的可以信得过的农历日历,你会发现,腊月二十九日后面紧跟的便是春节,今年竟然没有我们常说的年三十。为什么今年没有年三十?这还是要从历法的规则上将起。

一般历法分为三种:阳历、阴历和阴阳历。其中阳历又被称为太阳历,是指主要按照太阳的运行规律来安排的历法,比如中国,哦对不起,是我们这儿的公历 (即格里历),它的一年的时间约等于太阳直射点的回归运动周期(即一回归年,约365.24天);阴历又被称为月亮历,是指主要按照月亮的月相来安排的历 法,我们平时所说的回历(即伊斯兰历)便是一种阴历,它的一个月的时间约等于月相的更替周期(约29.53天,略长于月球绕地球公转的时间),阴历可以较 好地解释我们为什么会把“月”这个字拿来做时间单位。

Continue reading

Common Lisp学习笔记(1):语法和语义

按:本文是我在阅读Peter Seibel所著的Common Lisp教程Practical Common Lisp(免费在线阅读地址:http://gigamonkeys.com/book/)的学习笔记。本篇主要依据于原书的第四章Syntax and Semantics,主要的内容也如其题目所描述,是Common Lisp的语法和语义。

之前已经在这个博客上发表过《Common Lisp学习笔记(0):从SLIME开始》,不过后来由于课业比较忙,虽然还是能抽出些时间继续阅读这本书,但是一直没来得及写一些后续的笔记。而在这期间,我发现竟然有一位名叫田春的程序员翻译了这本书,并且在今年10月出版,于是我也购买了这本书。既然前面阅读英文原版得到的东西在现在已经记得不太牢靠,我打算凭借这本中译本来帮助我回忆这些内容,形成这些笔记,同时我依然会拿英文原版做对照。

注意虽然Common Lisp是Lisp的一种方言,二者并不相等,不过为了方便起见下文中我不会对Common Lisp和Lisp做太多刻意区分,大多数情况下以Lisp代指Common Lisp。

目录

Continue reading

我的大学(27):写在末日的边上

我们都好引用孔子在川上曰的一句话:“逝者如斯夫,不舍昼夜。”这不,前面我们刚考完编译原理,一转眼这就2012了。话说此时距离孔子发出他 那句著名感叹不知道已经有二千几百年了,那位当年说“未知生,焉知死”的那个“丧家犬”现在早已成了死透了的至圣先师,估计如果教他现在说些什么,如果他 还能说话的话,说的该是“既知死,犹不知生”吧?所以面对这种情境似乎有两种态度,一是既然终究要知道“死”,不如趁现在好好研究“生”;另一种是既然怎 么着都研究不出来“生”,那还不如研究毛线好了。

列位看官!不好意思,前面我扯偏了。这篇日志的本来目的是在这个特殊的时节,谈一谈已然一头扎死到历史的尘埃中去的2011,以及那个久负盛名、如 今终于“犹抱琵琶半遮面”地登场的2012。所以前面的开头的本来目的是从用第二句话同时“花开”这前面所提到的“两朵”,然后用串行的方式“各表一 枝”。可惜一不小心我的键盘就滑了一下,我的膝盖好像也顺便中了一箭。其实我似乎一直不太擅长写一篇条理清晰、逻辑顺利的文章的,这个是我从我这学期n次 做答辩和presentation的经历,以及写某些稍显严肃的文章的时候的体会中得出的。不过写文章做不到“浑然天成”似乎也不是太大的问题,也许我还 有一个努力的方向是“离题万里”,“浑然天成”。

嗯,上面那么一段话看起来似乎有废话和再度偏题的嫌疑,不过仔细掂量下可以发现,这也是我在逝去的2011年所得的诸多体会之一,所以目前还可以说 是按计划进行。昨天(仍是2011年的时候)和前天就看到有不少人在写2011年的总结,当时我就在想,这2011可是还没断气呢!所以我忍到了这个时候 才开始写2011年的总结(真的不是因为当时在预习编译原理吗?)。

前一段校内上流传这么一段话:“一花一世界,一叶一菩提。一天一本书,一周一学期。”我读到这句话的时候真想拍案叫绝,不过桌子实在是太乱了,如果 真的拍了我电脑旁边堆的那一摞才翻过和正要翻的书估计就要塌掉了。这句话真的挺形象的,不过和我们学院的真实情况还是有蛮大的差距,因为我们除了期末考试 还有各种照着你的膝盖上射箭的大作业。我猜想,如果教我现在谈起当初调MINIX调度器,写DSDV算法,还有写编译大作业的三地址代码生成部分和面向对 象大作业的某个usecase的代码时候的情景,会不会有种谈起“哥当年军训的时候”的感觉?

我觉得2011年这一年的软院生涯还是让我学到了不少东西的。但是每当我思考到底是什么让我学会了什么的时候,我却会有点茫然。比如说我似乎是从大 二下学期的软件工程课程大作业中学会了点Struts,还有些JavaScript,但是这些好像都不是那门课所教授的内容。再比如说我在这一年刚刚开始 使用Linux,而我使用的第一个Linux似乎是MeeGo,使用后者是为了参加Intel的一个比赛,可是可以说参加那次比赛的经历教会了我使用 Linux吗?好像不是的,似乎是因为后来我给自己的电脑安装了Fedora然后这么一路折腾出来的。那么从参加那次比赛的经历中我到底学到了什么?我还 真不知道怎么回答。再比如说我通过大三上学期的编译原理课程大作业里学到了什么?词法分析和语法分析部分似乎只学会了怎么使用JavaCC这个工具,而后 来的第二次大作业类型检查和三地址代码的内容我手工实现了三地址代码的生成,不过这部分我似乎没用到什么课本中的知识,就那么自己写着来实现,实现得并不 美观,而实现之后我也不知道美观的写法应该是什么样子,我依然不清楚我从其中学到了什么。

其实我根本没有想明白的还有一个问题,那就是怎样才叫学到了什么。比如我学会了使用JavaCC这种工具,但这又算学到了什么?又比如说,大二下学 期的软件测试课程,可以说我学会了(至少当时学会了)使用WinRunner这个软件对Win7自带的计算器进行一些测试,so what?雷哥常用句式里有一种“不就是XXX吗”,比如说你和他讨论“解析HTML”这么一个话题,他会说:“不就是给你一句话让你生成一些图形吗?” 或者给他看一些很炫的GUI程序,他会说:“不就是一些调用现成库的逻辑吗?”(不是原话,意思应该相差不大)每次碰到这种情况我会发现我还真不知道怎么 回答,而且说实话我还真觉得他说的是那么回事,所以我每次的回答都是“是”。当然雷哥好像并不是达到了那种视红颜如尘土、视算法以外的一切如民工活的境 界,因为我记得当初问他老人家实现shell是不是就是调用各种系统调用的时候他告诉我怎么设计这个程序的逻辑什么的也是挺难的。不过这是题外话了。

我还记得大二下学期的时候,虽然我在软件工程概论课程上做课堂演示的时候是很自信的样子(当然当时我也确实很自信,虽然现在越来越能感觉到当初那次 大作业我们的作品里有很多糟糕的东西,但是我对那个时候我们做出那样的作品依然感觉很自豪),但是其实那一段我一直有种沮丧感的。我记得当时我是这么想 的,一个人比另一个人强分为两种:一种是我比你多看了一些东西;一种是我就是比你厉害。当时的我相信我自己是比某些人(泛指)强的,但这种“强”似乎仅仅 是因为我比他们多看了一些东西罢了。换言之,如果他们也看了这些东西那么我们就没有任何差距了(毕竟在这个现实世界里阿基里斯还是可以追得上乌龟的)。我 现在会使用WinRunner对Win7自带的计算器进行测试,你现在不会,但这又如何?我现在会使用Struts,你现在不会,但这又如何?

我们前面讨论的我没想明白的问题又是一个让我非常沮丧的事情,虽然貌似在过去的2011一年里我学了很多东西,至少我可以列出来一大堆新学了的东 西,但我却很少能说出来我学到了什么东西。戴着这些轻飘飘的名词,就好象表面上看来你坐在帝王的位子上,但你旁边却站着伊尹、霍光或者曹操。不过也许我之 前对一个人比另一个人强的情形划分还是太过简单,毕竟“我比你多看了一些东西”还包含别的情形,比如说“我比你多看了几十年的东西”——换言之,至少你还 是可以比别人多学一些东西,而这些东西他可能要很久才能赶上。这似乎又是一个“术业有专攻”的范畴的问题了,只是在做过对于一个大三学生来说貌似也不算少 的项目以后,我却还没有想清楚我将来到底想在这茫茫代码地,钻到哪个坑里去。

Continue reading

谈《谈革命》

最近韩寒在他的博客上连续发了三篇文章,分别谈了三个名词。虽然我从两三年前开始阅读韩寒的博客以来,一直对他很敬佩,但对他这三篇文章,尤其是第一篇《谈革命》一文中所涉及的观点(其实主要是后两篇文章里我似乎没看到什么内容的),不是不能赞同,而是非常不能赞同。虽然我对“革命”一词也并无好感,这一态度和韩寒比较相似,但我认为韩寒的论据和论证的方法却是完全错误,甚至荒谬的。所以有这篇文章。

首先我们先来看韩寒文中的一段话:

官方只要一掐断互联网和手机讯号,我估计不用政府维稳机器出马,那些无法用QQ聊天或者玩不了网络游戏看不了连续剧的愤怒群众就足以将我们扑灭,你也别指望着能刷微博支援我,你三天上不了微博就该恨我了。

这段话是韩寒用来表明“起义是荒谬的”这样一个观点时的“论据”。这里韩寒用他对“中国人”人性深入的洞察,未卜先知地描述了“起义”后“群众”们 的反应。显然韩寒对他的预测很有信心,所以他没有再多说一句话废话来证明这一观点。这种方式的“论据”在韩寒的这篇文章里出现过很多次,尤其是“我们假设 革命没有遭到镇压,当然这本身就是不可能的。我们幻想一下革命……”这一段,洋洋洒洒几百字,活灵活现的那些情境读来就像是作者亲眼所见,不由得你不信。 而在这段话里还有这么一句:

中国式的领袖,绝对不会是你现在坐在电脑前能想象的那些温厚仁慈者。这样的一个领袖,八成独断专横自私狂妄狠毒又有煽动力,是的,听着有点耳熟。但中国人就吃这一套,也只有这一套才能往上爬,这个社会习惯了恶人当道,好人挨刀。

这里韩诸葛先帮“中国人”把革命中期的领袖给想好了,而且用词还是“绝对”。然后“八成”的断言似乎语气稍微谨慎了一点,不过紧接着又来了一句洞穿 整个社会的断言“中国人就吃这一套,也只有这一套才能往上爬”。这句话其实很厉害,因为只要有这句话,那接下来什么美好前景都别想发生了,因为“中国人” 不吃那一套。这种断言也充斥着韩尔扎克的这篇文章,比如:

大部分国人眼中的自由,与出版,新闻,文艺,言论,选举,政治都没有关系,而是公共道德上的自由,比如说没有什么社会关系的人,能自由的喧哗,自由的过马路,自由的吐痰,稍微有点社会关系的人,我可以自由的违章,自由的钻各种法律法规的漏洞,自由的胡作非为。

又如:

最关键是就大部分中国人一副别人死绝不吭声,只有吃亏到自己头上才会嗷嗷叫的习性,一辈子都团结不起来。

如此等等。当然最后不能忘掉来一句妙语:

当街上的人开车交会时都能关掉远光灯了,就能放心革命了。

到这里我们应该能大概总结下韩少在文章里用到的主要论证方法,但也不知道是因为我语文没学好还是逻辑没学好,如果硬要我给这种论证方法给出一个名 字,我只能想到一个词叫“意淫论证”。先意淫“中国人”,再意淫未来,既然什么样需要的事实都有了,那么证明韩大导演说的是多么对简直是一件水到渠成的 事,就像写一篇讲故事的文章那样轻松。当然韩寒的这篇文章没有我说的那样论据和论证过程“泾渭分明”,而是大多时候都是把论据夹在论证的过程当中(比如那 句“中国人就吃这一套”,再比如“最关键是就大部分中国人一副别人死绝不吭声”),在你不经意间崭露头脚,转眼间便又无迹可求。(其实这里“意淫论证”的 说法也并不全面,比如上面引的最后一句。不过才疏学浅的我实在没看出来“街上的人开车交会时都能关掉远光灯了”和“能放心革命”有什么逻辑关系)

Continue reading

软件工程的一些杂想

学我们这个专业的经常听说,做软件,技术不是最重要的,一些工程上的东西比软件更重要。

做一款软件最重要的不是技术,这点我完全赞同。但是,技术终究是一款软件的支柱。

我们这个专业做软件总是会强调很多工程上的东西。我赞同工程层面的重要性,但是如果连技术都没有学到家就去强调工程,这不是很奇怪的事吗?

我觉得,大学期间做项目的目的应该是这样的,学习和磨炼技术,顺便做出一样能够让他人使用的软件。

如果把上面我说的技术和工程,前者看作水,后者看作渠。有水无渠的话,欠几铲子的功夫(有时甚至可以水到而渠成);有渠无水的话,那可就惨了。

学我们这个专业的还经常听说,最重要的是idea。这个我不敢赞同。

如果你有一个idea,却没法把它实现出来,那么这和你没有这个idea又有什么差别呢?

更何况,大多数时候想要在计算机这个行业上think forward,你需要的是对计算机这个行业已经足够了解。

软件这东西不是闲思空想然后一拍脑袋就能够做出来的,至少现在这个时代不是。

取得美好的事物,总是要付出代价的。

我的大学(26):MINIX,强迫型人格障碍,自由主义,怀疑论和标题党

最近一段时间来我的大脑调度器被多进程折腾得几近崩溃,以至于连liyaos.com域名过期了都没发现(感谢sqybi童 鞋的提醒),一直过期上10天才屁颠屁颠地赶在断网前把银子交给域名商,这才宣告本网站的复活。一个多星期以前,我人生中第一次来到帝都,游历了 MSRA、北京交通大学、天安门以及国家会议中心等地,品尝了北京本地的北京烤鸭,顺便拿了个第四届英特尔杯全国大学生软件创新大赛一等奖。这一部分的经 历我将在预留篇目《我的大学(25)》里记录。

甫从帝都回到魔都,操作系统大作业便率领着编译大作业、编译小作业、计算机网络实验、计算机网络作业等豪华阵容迎接我们,盛情所至,实教我应接不 暇。盛情难却之下,只好睡上一觉就开始搞JavaCC和MINIX。你们知道写MINIX调度器的最大问题是什么吗?那就是你思考的时候要用的是一个弱爆 了的人类大脑调度器。写MINIX调度器的过程大约是这样的,改几行代码,重新编译安装,趁着这点时间去看看JavaCC的知识或者看看网页什么的,然 后……然后你就忘了你之前写MINIX调度器的时候改了什么了。我就是在这种状态下编译了至少有100个版本的MINIX,顺便在编译安装的时候翻完了一 本武侠小说。

且先不说大作业这种煞风景的事情了吧。前一段在考据癖的博客上看到一篇文章《颤抖吧,强迫型人格障碍!》。很久以前听过一个叫做“强迫症”的词语,所以一直以为自己有点强迫症;而考据癖的这篇文章里有这么一段非常形象的陈述:

强迫症和强迫型人格障碍的症状区别有:强迫症患者知道自己这么做是不对的,无意义的(我为什么老想这些恐怖的事啊)。而强迫型人格障碍人群则认为自己的行为是正确的(没按序号排好是件多么天理难容的事情),还可以列举出很多理由来证明自己的理性。强迫症患者会为自己无法控制自身做出无意义的行为而感到困扰(我又想了/做了不该想/做的事),而强迫型人格障碍则以此为乐(啊哈哈哈终于排好顺序了看着顺眼多了)。 强迫症患者只会强迫自己的行为,而强迫型人格障碍会同时以自己的高标准严格要求别人(喂,你这里没对齐),因此会在一定程度上影响到人际交往。

所以读完以后我大概觉得自己不是强迫症,而是有些强迫型人格障碍了。但是这样的判别标准就带来了一个问题,首先是:既然强迫型人格障碍是一种障碍, 那么如何克服这种障碍呢?考据癖的文章里没有提到这一点,于是我就开始思考了。因为我觉得自己就有些强迫型人格障碍,所以很快我就碰到了这样一个问题,我 为什么要让自己改掉这种他们称为“强迫型人格障碍”的人格?我们有个词语叫做“完美主义”,有时候对细节的重视对全局来说也是至关重要的,换言之,这种 “主义”也好,“障碍”也好,不是绝对的对却也不是绝对的恶,那么我为什么要丢弃它?

这就使我开始反思我们最早碰到的问题,这个问题的前半截是“强迫型人格障碍是一种障碍”。但是,为什么它是一种障碍?在上面所引用的考据癖那一段文 章里最后一句提到,“因此会在一定程度上影响到人际交往”,这也许算是一种坏处的判断,但是,难道真有在人际交往中通方咸宜的人格吗?我不这么认为。那 么,是谁、又凭什么有权力去判断一种人格有障碍?

想到这里,其实我还为那些判定这种人格有障碍的人们想到了一种秒杀我这么多辩论的策略,那就是抛出我引的考据癖的那段文字里的最开始几句话:“强迫 症患者知道自己这么做是不对的,无意义的。而强迫型人格障碍人群则认为自己的行为是正确的,还可以列举出很多理由来证明自己的理性。”我不正在做后面所说 的这种事情吗?如此说来我可真是“强迫型人格障碍”了!既然如此,就根本无须与我辩论了,因为我已经不可理喻了!

这不恰似精神病患者的困局吗?一但你被别人认定为精神病了,那么你的一切辩驳,无论理性与否,都变得无用。这个问题的另一个层面是,一但你被别人认定为异端了,那么你的辩驳,无论理性与否,都将是个悲剧。这不是一个正常的社会所应有的现象。

我最近在读一本名叫《自由的所以然》的书(提前说清楚,读这本书是因为作业要求!),这本书是研究严复对John S. Mill的On Liberty一书的翻译《群己权界论》。严复的翻译以及这本《自由的所以然》的作者黄克武先生的研究姑且先不说(因为这些是我的作业要做的 事……),John S. Mill的一些观点倒是深深打动了我。譬如说下面这段:

If all mankind minus one, were of one opinion, mankind would be no more justified in silencing that one person, than he, if he had the power, would be justified in silencing mankind.

容我斗胆简而言之的话,这段话的意思是,全人类打压单独一个唯一的“异端”,相比这个“异端”凭借某些力量或权力打压全人类,前者并不比后者更正当。John Mill这样的观点非常符合我的思想,而黄克武先生有一段对Mill先生观点的总结是这样说的:

对他而言,人类的生活非常复杂,真理不是单一的,也不是先验的,所以他强调,世界上没有所谓的最终的真理;换言之,人类往往只能针对某些特定的课题,得到一些暂时性的解决方案,而以开放的心胸相互沟通,彼此容忍,是获得这些解决方案的较佳方式。

我们经常说,“真理往往掌握在少数人的手中”。这句话本身是十分先验的,没有严格的证明,也不太好从逻辑上推理(我不懂什么哥德尔定理,但是也许死 理性派们可以考虑试试)。然而我们都无法否认这样的情况,这个世界的真理真的掌握在少数人,或者说“异端”手中。传说当神谕宣示所宣告苏格拉底是人类中最 聪明的人的时候,苏格拉底说,他只知道一件事情,便是他一无所知;而我也相信对于全人类而言,如果说他们能够确信地知道什么事情的话,那也只有一件事情, 那就是他们什么都不知道(我们别讨论这句话可能存在递归调用的问题好吗……)。

竟然就这么说到怀疑主义的思想上来了,不过既然已经说到了这里,不妨再引用一段话对它稍作深入。周国平先生的《无用之学》一书里曾谈到另一位Mill以前的英国哲学家David Hume的观点,书中这样说:

他不但否认因果之间有必然联系,而且否认任何因果关系的存在。他的观点可以归结为两点:第一,我们的感官只能感知个别的事 实,并不能感知事实之间有没有因果关系。仅仅由于某些事实经常集合在一起先后或同时被我们感知,我们便推断它们之间有因果关系。所以,所谓因果关系只不过 是我们的习惯性联想,至于实际上是否存在,我们永远也无法知道。第二,所谓因果关系是一事实必然导致另一事实的关系,可是,观察和实验是有限的,不管我们 多少次看到两个事实同时或相继出现,我们也不能据此断定它们永远如此。

这些让我联想起曾听说过的,据说是奥地利的政治学家和经济学家Friedrich Hayek说过的一句话:“自由的精神就是对自己是否正确不是很有把握的精神。”一方面,自由本来就应当是人类的追求(尽管自由不是一个天生的概念,它是 我们造出来的;像“天赋人权、自由平等”这类的概念都只是我们人类自己造出来的罢了,但这丝毫不妨碍我们对它们的追求);另一方面,人类的智识本来就是不 可靠的,在这种情况下,谁又有权力去做裁判呢? “No one’s opinions deserve the name of knowledge.”

当然,Mill在On Liberty中也提到,在日常生活中,我们必须假设我们的观点是正确的(”We may, and must, assume our opinion to be true for the guidance of our own conduct”),另一方面,自由也必须是有界的,以避免践踏他人的自由(然而这个每个人的自由领域则应该尽可能地大)。我提到这些只是为了表明 Mill的On Liberty一书中逻辑是十分完整、严密的,为了避免他人因为我的这些说法而对Mill的观点或者自由主义有所误读我不得不也提及这些情况,但这个概括 明显难以完整,如果想要窥其全象则还应当读一读Mill先生原版的不刊之论。

比较了解我的人可能知道我是一个怀疑论者,有的人可能也感受到我较有自由主义的倾向。以上是我自己支持自己的思想的浅薄思考。话说,你们不会把这篇文章读完还觉得这是一个强迫型人格障碍者的申辩吧……

PS:其实我不大会区分怀疑论和不可知论两个名词的,因为这两个名词的内容看上去我都自觉有点像的,一个人应该可以同时是怀疑论者和不可知论者吧?

我的大学(24):此处无题胜有题

如果把本科生三年级比作三级主基地的话,那么在二本升三本以后要做的第一件事应该是升级科技:大作业狂热。十一假期以前我还很傻很天真地在虾米 上分享音乐Wake Me Up When September Ends,计划着怎么在一个长假里把混乱的作息和生物钟给正常化,结果是昏头昏脑地把各类大作业做得差不多了以后,觉得终于可以放松一下的时候,已经没有 什么国庆假期了。

国庆长假结束以后的周六和周日,这个据说很多学校拿来上周四、周五的课的时间里,我们学校上的却是周一和周二的。你们知道最巧的是什么吗?那就是我 一周里课数最多的日子,排名第一是周一,其次是周二。在正常的日子里,我上完周一和周二的课程就会迎来一个几乎没有课的周三,有些课的周四,和一个真的没 有课的周五,完美的作息曲线;而十一长假的结果是,当我痛苦地熬过一个周一和周二以后,蓦然发现接下来还是周一和周二。

十一长假结束后的一个星期里,终于体会到了上学期JBoss的关于“很多大作业”的言论果然不虚。面向对象分析与设计、编译原理、操作系统、计算机 网络,外加修的一门历史课要求一个月之内读完一本书并写一篇读书报告(这个作业很有趣的,简而言之是一个外国人写了一本书A,一个中国人翻译了这本书B, 又一个中国人研究了A和B写了一本评论B的书C,我们的作业就是研究并评论这本C……),以及什么所谓的Intel杯软件创新大赛,相比这些事,还有些其 他的像什么通识课作业和计算机网络实验这类的我都懒得提了。

说起那什么Intel杯软件创新大赛,这个从今年暑假开始的东西,终于在几轮折腾以后得知我们小组有幸地进入了决赛。可惜进了决赛也才从三等奖算 起,而三等奖只有2000块钱,小组四个人分赃以后怎么想也不够塞牙缝的。不过一件好事是终于有机会去传说中的帝都转一圈了,在这个时空里我可是还没去过 帝都的,不知道有没有机会一睹正宗的烤鸭的风采。

昨天晚上去软院做计算机网络实验,到的时候老师还没到,于是便又在软院里转了一圈。如果说学计算机的和学其他专业的人是在两个不同的世界里,那么在 软院似乎看不出来这一点。上学期院庆时候的展板还在,这些本来最应该能体现软院特色的展板上,每个的标题都是“十年树木,百年树人”——如果说这句话能体 现任何学计算机者的哲学观的话,那恐怕只有“可移植性”这一条。这样的展板用来做任何学院的院庆展板恐怕都可以吧,都是标题谁都知道,内容谁都看不懂。

当然软院老师教育我们做软件最要考虑的是用户需求,这些展板不是给我们看的而是给别的人比如领导之类看的。我在另一篇《我的大学》系列文章里曾经吐 槽过所谓的软院院庆,并意淫了一番如果让我来办院庆会是什么样子,显然那时的我也没想明白所谓的用户需求。我以为计算机相关的专业都应该是产出黑客的地方 (此处黑客的意义请参照Paul Graham的《黑客与画家》里的意义),这里最常见的不应该是开会,而应该是电影《社交网络》里出现的写10行代码喝一杯啤酒类似的竞赛,显然我错了。 这里不在乎你写不写得好代码,你要搞清楚用户需求。

不多扯这些东西了,毕竟我JavaCC还没看明白,MINIX还各种不懂,那本要写读书报告的书才看了不到一半,而过几天又要上京。如果说最近的经历教我学会了什么的话,那就是在面对堆积如九仞之山的各类知识的时候,不要忘记自己弱爆了,但也不要忘了自己正在取得进步。

多情码农无情码注(1)

一个喜欢读小说的人很容易萌生写小说的想法。自小学拿着钢笔在笔记本上胡写,到大学拍打键盘在另一种笔记本上乱侃,期间我曾萌生过写小说冲动的 次数早已难以计数,然而真正动笔下的并不多,写完的几乎没有,而写完了如今自己觉得还能看的则是完全没有。那些故纸堆里的故事大约全是历史或者武侠,而最 近写小说的冲动再度出现以后,却忽然想写一点新鲜的东西。我构思过一个发生在交大的武侠故事,想到过一个关于程序员和2012的科幻故事,但是毕竟少经历 练,下笔总觉得生涩,结果也远无法使自己满意;直到后来忽然想到一个新方法,即借助古龙的小说《多情剑客无情剑》(即“小李飞刀”的故事)。

《多情码农无情码》借用了古龙的小说《多情剑客无情剑》里的人物,在一定程度上参考了他们的性格,但却把他们安插在了一个完全不同的时代——“飞刀 与快剑”变成了“鼠标与键盘”。然而,《多情码农无情码》的故事发生在《多情剑客无情剑》以前——这么说可能会让人困扰,因为明显古龙的故事里计算机还没 有被发明,不过我指的是关于李寻欢、林诗音、龙啸云三个人的情感纠葛发生在古龙的故事以前。选择这个故事是因为一方面它既是古龙讲述过的一个故事,同时又 没有讲得太细,这就意味着它给了我一个故事的框架,同时还留给我许多自由发挥的余地。

写这部小说显然无意出书之类的事情,可能更多的是个人兴趣,也希望能对自己还很拙劣的写作水平(虽然得过不少夸奖,但幸好我有时候很能找回一些自知之明)进行一些探索和锻炼。而这篇注,不妨说是让自娱自乐的high更high一点。

第一章注

这一章的第一段我试图给整个小说奠定一个世界观的基调——用理工科的思维来讲述一个故事。所以采用了维度这样一种世界观来起头。李寻欢、林诗音和林啸云都是程序员——或多或少,我希望在我在描写不同的人物视角时能写出不同的感觉。

第三段花了那么长的句子描述李家庄园里的各种高科技设备也是为了交待时代背景。

虞世南的介绍可以参看这里。我之所以在这篇注里也不怎么介绍他是因为其实我也不了解他,他是我写这一段的时候从书法家中胡乱揪出来的一个。

男性在看到美女后智商会下降的研究不是我编出来的,我原本阅读的那篇文章一时找不到了,但是这里有一篇似乎差不多文章可供参考。

对林诗音的描写花费了很大的篇幅,因为我想要营造出一种龙啸云在见到林诗音以后时间几乎停滞的感觉,就好像电影中在看到一个美女后镜头忽然放慢了一 样。因为如他所说他似乎所有的脑细胞都用来捕捉她的每一个动作每一个细节了。描写林诗音的几个简单动作的篇幅大约相当于前文的篇幅,这一安排其实照应了文 章最开头的龙啸云自己人生的轨迹(前二十多年可以一笔带过,此时此刻忽然具有其意义)。当然这些是我试图取得的效果,如果读者是通过阅读这一段产生的这种 体会(或者阅读完这一段还没产生这种体会),那么显然我并没有成功。另外对于林诗音的描写其实大量抄袭了曹植的《洛神赋》和曹雪芹的《警幻仙子赋》。

JavaScript不止可以用于写网页的一个典型例子便是GNOME3,这款自由软件的很多代码都是使用JavaScript写就的。你可以在这里查看详情。

Continue reading