Monthly Archives: April 2008

pFind新版开发启动

  三月份大部分时间在写材料和开会。甚至出现了一个meeting week,周一到周五全都用来赶场参加各种会,最夸张的一天开了三个会,一直弄到将近23:00才散,差点没赶上5号轻轨末班。

  上周终于着手2.1新版设计。鉴于大伙儿元气大伤,取消了setup会议,单独找每个人面对面交流再汇总Todo List。

  周三下午,把电脑和投影仪搬到会议室里,直接对着代码展开第一个模块的设计。双人编程,正确说,应该是四人编程,推敲所有细节,甚至明 确参数命名。一开始当然有点痛苦,各人都没有特别细致的思路,更别提大家的一致。不过几个回合重构下来,最终一版的空模块(只定义了接口和架构)编译通 过,每个人都很开心,团队的信心和士气提高了不少。这不仅因为完成了第一个里程碑,还因为统一明确了设计原则和质量底线,后续设计工作照方抓药就可以了。 磨刀不误砍柴工,设计阶段精耕细作从来都不会白费。

  上周的另一件事是继续调试2.0老版本。多谢chh支援,困扰两个多月的BUG总算有些眉目:第一组实验中,碰到一个变态的蛋白,修饰 位点组合爆炸,出现九千多万种可能性,把递归程序撑爆了;第二组实验中,为压力测试调大了参数,有个地方的vector容器装不下。把两个地方剪枝条件加 强就解决了。折腾这么久,真算职业生涯的奇耻大辱。搞到最后老板都不好意思问了;反而是老妈每晚的餐桌上都关心进展;去参加文献club,生物学家也问 “你的BUG怎么样了”。

  另一方面,由此看来,老版pFind的潜力也就仅限于此了,稍微上点数据量就开始这里那里到处漏水。这也正是彻底重新设计架构,开发2.1版的主要原因。

  我预计新版的C++代码可以从18万行降到10万行左右,速度提高一倍以上,而海量数据的处理上限,可以有不止一个数量级的提升。当然新版的一个重要变化是实现跨平台,为将接下来的分布式集群版打基础。

零散流水

  上次买了几本古希腊罗马史书,看完了一小半。不是专业人士,观点未必准确。

  对比起来,在古希腊罗马,很多学识很高的贵族拥有担任将军或执政官的经历,由将领本人撰写战争史也是一种传统;而在中国古代,史官很少亲临战场,更别提作为主帅指挥战争了。因此我们的史书,例如同时代的《史记》,对军事行动的描述就往往比较粗略和肤浅;而色诺芬的《长征记》凯撒的《内战记》简直就是经典的兵法教材:由著名统帅亲自带入重大战例现场,描述当时收到的各种战场信息,解释作判断的原因,并给出战争的后续发展作为验证。

  收获?哦,这个,我是拿来散心的。

  因为周围的太多人看过并推荐,包括Boss H和JW。今天和老妈逛第三极,买了冯仑的《野蛮生长》,回来一口气看完,的确很有阅读乐趣。