Monthly Archives: March 2008

何必乱翻书

  喜欢集中性买很多本书,再并行处理,东一本西一本放着,随手拿起一本翻到某一页就看起来。这个月买的大都是古希腊罗马历史。包括修昔底德的《伯罗奔尼撒战争史》色诺芬的《长征记》凯撒的《内战记》、《亚历山大里亚战记》、《阿非利加战记》、《西班牙战记》(凯撒战记五部曲现在只剩下《高卢战记》哪里都买不到,悬赏收购,大伙帮我留心)、塔西佗的《历史》。再加上与古罗马历史有很多联系的马基雅维里的《佛罗伦萨史》

  “清风不识字,何必乱翻书”。据说蒋介石读书很严谨,必须正襟危坐,从第一页开始顺序慎读。这么老老实实当然很好,但真的很闷。如果你像我一样,每次都从某个随机位置开始读,除了期待接下来内容,也必须猜测之前的情节,这是一件很好玩的事。据说床上桌子上到处乱放书的坏毛病毛老爷子晚年也有。

  “随机乱翻法”也是区分质量的有效招数,好书的前因后果总是比较难猜,即使是历史或传记。金庸和古龙的武侠,我都是从半路读到结尾,再回头去看前半截,仍然津津有味;而梁羽生的小说,就算最精彩的《七剑下天山》,从一半开始看,过几页就能把前面的情节猜个八九不离十。(另一方面,武侠小说的骨架大多是有借鉴的,金庸的《连城诀》来源于《基督山伯爵》,古龙的《流星·蝴蝶·剑》来源于《教父》,梁羽生的《七剑下天山》脱胎于《牛虻》,我读武侠小说时年龄小,还没接触到《基督山伯爵》和《教父》,只看过《牛虻》,也许导致评价不公平)。

  本想上来写读书杂感的,没想到乱写了一堆别的。晚了,下次再写。

关于C++的ABI

  如果要给最头疼的C++特性投 票,我会选ABI兼容:C++标准没有明确跨编译器的二进制兼容,于是各个编译器的实现都不同。用VC在Extension Dll里实现一个类,到了gcc代码里就不能直接调用。这带来了很多麻烦,尤其在有移植和平台兼容需求的大项目里。最近我的项目进行下一步规划,就为培训新手挠头。

  更糟的是,这还导致其他编程语言不能简明地“胶合”C++:大多数编程语言的编译器或解析器都是以C/C++实现的。按理说来,在这些语言中调用C++的类应该是很容易实现的天然属性。但是正由于ABI不兼容,这些语言要支持C++二进制调用就必须先选择编译器:到底是支持VC还是 gcc?因此很多语言避开C++,以纯C形式的动态链接库(Windows下就是Regular Dll)作为对外胶合的二进制接口。这进一步影响到不少混合语言项目选用C而非C++与动态语言进行高低搭配。

  作为实现“底层硬核”的系统级语言,C++的调用接口这种基础机制不理想,负面影响有些大。

  当然也有不少对应的解决方案。最有名的是COM,它利用类似虚函数表的方法,建立语言无关的接口兼容模型,微软把Windows系统的几乎所有的模块接口都变成了COM,比如ActiveX和DirectX。还有其他一些常用方案,像SWIG。普通一点的方法是用C语言接口做桥接。

  前几天刘未鹏征求中国程序员给B.S.的问题,俺问ABI标准啥时候有指望。据说问题的关键不是技术,而是C++标准委员会各大厂商间的政治原因。

  BTW:最近玩D语言,本来就是一帮C++高手另立山头搞出来的,自然是针对后者的软肋作改进,目前看起来的确很美好。不过二十年前C++刚从C里面蜕变出来时,看起来也很美。路漫漫其修远兮。

2008.3.20列书单

  先写点别的。

  前天,组里刚写完基金申请书,马上又着手准备软件的演示视频,搞到很晚。wwp把最后一段发给我时已经半夜1点了,我又准备到大约3点钟才睡。昨天一整天八九个讲座交流下来,晕,到家吃完晚饭就睡。但半夜2点突然醒过来。上厕所、看小说、吃苹果、喝开水……虽然还是疲惫,却再也睡不着了,脑子里莫名其妙全是郁闷和压力。直到翻出一本蔡志忠的《宋词说——花间的细诉》才慢慢放松下来。早上醒来,书页正翻到陆游的“红酥手,黄藤酒,满城春色宫墙柳”

  老妈要读村上春树的《挪威的森林》,今天路过五道口的光合作用,就进去买书;因为前一阵看了萨冈的《无心应战》,所以又挑了一本《萨冈:一个迷人的小魔鬼》;最后跑到商务印书馆的书架,本想看凯撒的《高卢战记》,没找到,就拿了一本《内战记》

      

说说《开卷八分钟》

  凤凰台的《开卷八分钟》是个意外。

  按照梁文道自己的说法,有八分钟的垃圾时间,哪个栏目都塞不进去,收视率和广告费没指望,只好交给学者搞冷门的书评节目。正因为不指望收视率,所以该节目一创办,视频就在凤凰宽频上完全免费公开。

  山不在高,梁老师搞得很精心,充分向观众分享了他精深的阅读经验。时间短反而促成了优势:为了在短短480秒里说清一本书的前世今生,再发表一些书以外的想法,就不得不挤出啰嗦修饰的水分,直指核心,用脱口秀的方式飞快推进。这个节目和老罗的新东方段子一样,虽然不是播客,实际上已经符合最出色播客频道的特点了。

  凤凰台的节目和人能看到不少起伏轨迹,比如某小伙儿原本操办几乎没人看的《新闻下午茶》,也没什么支持资源,用了几年逐渐进入黄金时段,现在成了一号新闻主播。

  BTW:刚看到,老白恰好也提到这个节目🙂

2008.3.12列书单

  下班后去光合作用买了屠格涅夫的《猎人笔记》安东尼·德·圣艾修伯里的《小王子》,还有马基雅维里的《佛罗伦萨史》。轻轨上看完了《猎人笔记》的第一篇《霍尔和卡里内奇》。

佛罗伦萨史  猎人笔记  小王子

  在豆瓣上加书,《小王子》的作者介绍里有这么一段:

  ……1943年,在他的强烈要求下,他回到法国在北非的抗战基地阿尔及尔。他的上级考虑到他的身体和年龄状况,只同意他执行五次飞行任务,他却要求增加到八次。1944年7月31日上午,他出航执行第八次任务,从此再也没有回来,失踪时,年仅44岁。

《毕业生》和《阿甘正传》

  最近重温了不少电影,比如《毕业生》《阿甘正传》,看这种美国主旋律样板戏被批为衰老的征兆。《毕业生》插曲的确首首经典,比如Scarborough Fair

  不少上年纪的人都说,鲁迅的《伤逝》恰恰描写了《毕业生》的后续和结局。这是智慧还是无奈?《毕业生》结尾处,两人摆脱纠缠从教堂里逃出来,坐到公汽最后一排,脸上的兴奋和笑容逐渐敛去,代之以迷茫。

  生活总要继续,人必须长大,连《七龙珠》这样的童话世界里这都不可避免。豆瓣上有人写:“最后一次武道会时,悟空对贝吉塔说:少年组比赛开始了,你不去看看咱们的孩子?”

  看了不少动画片,比如迪斯尼的《木兰》,还有《银英传》。

面试和激情

  昨天去合作伙伴,一个刚“海龟”的生物学家那里,帮忙进行面试。她正在组建自己的团队,希望搞出类似国外Yates实验室那样的环境:医学家、生物学家、化学家、质谱专家、软件工程师和数学家都坐在一起,有任何领域的迷惑,一转头就可以拍拍身后的那个牛人解释清楚。所以除了购买各种仪器、访问国内有关的机构以外,就是打招人的广告。昨天面试者申请的是计算机方面的岗位。

  晚上,她写了封感谢邮件给老板:“I am jealous of you. I definitely want to talk to you about how to concentrate the best people in own lab”。BOSS H转发给我,附带一句:“为你骄傲!”。人人都有虚荣心,所谓成就感,就是这种东西吧

  说回面试,很遗憾这位面试者最终没有得到offer,他是请了假从南京赶过来,得到这种回答再赶回去,那种沮丧我们都能感到。真心希望 他以后能有好的发展。不知道这位面试者能不能看到这篇BLOG,不管怎么样,我还是想从尽量客观的角度,写写我的看法,希望对别人有用。

  这位老兄的问题肯定不是基础素质,他的教育经历相当值得自豪:小学两次跳级,只上了4年,中学在少材班,也只上了4年,14岁考上全国 最知名大学计算机专业,因为学业出色,大三就保送了研究生,不到18岁。我想这经历会让大多数招聘者从一大堆简历里把自己挑出来。由于进入社会的年龄小, 所以工作经历和项目简介就比同龄人厚好多。

  那么为什么参与招聘的人,无论是生物还是计算机领域的,都投反对票呢? 答案在于细节,我提到过这个问题。细节能表现出passion,或所谓的“能量”。

  整个上午的ppt和交流,研究生时代开始经历过的众多项目,却没有一个能让他表现出兴趣、热情、激动和成就感。在反复提示和要求下,他 勉强讲了几个自认为最漂亮的工作,仍然轻飘飘不接触细节,不得不多次打断他,“你只要讲一个具体项目就够了,一个让自己骄傲的工作:项目总体的需求是什 么?你和谁合作?系统分成多少模块或层次?你负责哪里?你的前后左右,上下游是谁?你们之间怎么确定接口?你遇到最大麻烦是什么?最初怎么考虑解决方案? 实际尝试了哪些办法?最终怎么把它干掉的?”

  搞技术的,尤其是研发领域,和搞艺术创作有类似之处,归根到底就是我和作品之间的问题。我们不得不孤独地面对古怪的系统,只有全力以赴 投入进去,用激情驱动自己面对那些枯燥的细节,绞尽脑汁,才有可能把问题pk掉,让机器正常运行起来。这是痛苦的修炼,也是让人激动的过程。如果一个技术 人员真正经历过这些,不管他有多内向,多不善表达,谈到自己的工程时,都会两眼放光,如果别人表露出轻视,他会热情地保卫自己的工作,因为这倾注了他的心 血。很多人会表现得非常激烈,甚至暂时忘掉自己在面试,忘掉礼貌和场合,例如会试图夺下你的笔,竭力利用纸或白板解释细节。

  曾国藩说躬身入局才能成事。对繁琐的工作细节有激情,这是到目前为止我见到过的所有出色技术人员的共同特点。(其实不只是工程师和科学家,我认识的出色的销售人员,也会表现出同样的狂热)。捕捉激情,是Joel on software提到的招聘秘诀,也正是《最后期限》里强调的招聘者所必须的“鼻子和胃口”。这也是曾国藩的“带兵之法”:找到愿意干事,有热情干事,有能力干事的人,他们会在关键时刻拯救你

  另一方面,曾参与的项目有多少历史意义多大规模,其实并不重要。我才不管您做的东西是关乎国计民生,或仅仅源于业余时间的自学探索:这 都和技术本身无关,只能说明你以前的老板有多伟大,不能说明你的能力。被面试者需要证明的是,自己面对新问题有没有学习和解决的能力,这当然也包括态度。

  再回来说面试的事,正式程序结束后,这哥们在闲聊中提到,想转入纯粹的生物研究,不想再碰计算机问题。这就间接验证了我的印象:将近 10年的职业生涯里,尽管物质条件上混得不错,但他不太喜爱所从事的专业和工作。这不是能力问题,而在于是否适合,这种情况下,的确需要仔细考虑以后路怎么走。