Monthly Archives: April 2010

Beta技术沙龙:Go语言

  大半年折腾,好久没参加啥公共场合的活动了。这期的Beta技术沙龙Googol LeeGo语言,所以一定要去参加。

  Googol Lee讲得很清晰,我就不重复具体内容了,视频和ppt会很快放出来。与并发编程有关的goroutine和channel部分最吸引我,听到兴奋处,不禁抓耳挠腮胡思乱想,居然比较起goroutine和CUDA block的异同来了。

  Q&A环节,我问了个关于多语言粘合的问题。Go语言支持C的粘合,也就意味着支持与大多数语言相互调用。实际想问的是,有没有混合编程的成熟案例,不过Go推出不长。有个外国工程师(普通话真流利)问Go语言自带的Web app framework如何,Googol Lee认为架构和风格上很接近django

  参加沙龙的lvscar用Go语言和HTML5 websocket开发了一个实时web的demo。他拿上来show了一把。果然很酷。以前对HTML5没深入玩过,websocket果然比AJAX顺眼多了。lvscar认为随着HTML5的推广,实时交互的web应用成为主流,Go语言非常适合开发这种维护对话上下文的重负载Http Server端。

  现在看来,相对D语言,Go更有希望继承C/C++的衣钵,成为下一代主流“硬核”(系统级语言)。从设计哲学上来说,D语言很像“更好的C++”,而Go的负责人是Ken Thompson,风格简洁明快,有很多C的痕迹,例如OO with struct。

  搜索了一下,GNU刚宣布允许gccgo增加到gcc主分支,计划在GCC4.5之后的版本中体现。也就是说将来Go语言将是Linux和MinGW的标配。

  八卦1:看到霍炬,嗯,听说在上海呀。ppt听完就走了。朱朱还怪他不主动和大家多交流呢。

  八卦2:Ken Thompson老爷子是少数几个获得图灵奖的软件工程师(而不是计算机科学家)之一,原因是创造了C语言和UNIX。他投奔Google以后,一举一动都是技术社区的八卦话题。例如最初他没通过Google内部的编程考试,所以无权向源码库提交补丁。再如,有粉丝从google code里搜索到了他提交的补丁,给CREAT加了一个E,弥补了几十年前的遗憾(终于知道很多代码写错这个拼写的源头了)。

列书单.20100421

  在光合作用买到了村上春树的《奇鸟行状录》(好厚的一本),还有刘瑜的《民主的细节》

  

  按说最近应该清闲点,却莫名其妙地陷到debug里去了。看到西乔刚刚发表的漫画,说得就是俺呀!zhw说,每种职业都会形成条件反射。我总是推测周围一切自动机器(例如电梯、红绿灯)的编码逻辑,她只要看到带字的(例如电线杆上的小广告)就想寻找法律漏洞。新版的拧螺丝的卓别林

Ru27机器人穿越大西洋

  在回家地铁上浏览3月10日这一期的IEEE Spectrum杂志。目录之后的Back Story名为“They all live for a Yellow Submarine”。翻到相关正文,详细介绍了新泽西州立大学研制的Ru27机器人历时221天穿越大西洋的实验。回来Google到了华盛顿邮报上的新闻维基百科直播实验进展的twitter,翻译共享些好玩的内容。

  Ru27机器人(昵称是Scarlet Knight)外表不起眼,看似带翅膀的鱼雷。但这家伙没有螺旋桨,像鱼一样游动:浮力泵吸入海水,头部下沉,吐出海水,头部上浮,同时“鱼翅”上下摆动。这种独特的仿生学驱动方式非常省电,所以它能在7个多月里仅依靠电池,从美国一直游到西班牙。考虑到Ru27过一段时间,就要浮出水面,通过卫星报告位置,发回海水温度、盐浓度等科研数据,利用GPS校准方向……其能源效率的确很高。

  一些有趣的数字:

  • Ru27的“肺”(浮力泵)总共“呼吸”了22,000次,和“家里”联系了上千次(科学家说,就像等待上大学的女儿周末来电话),传输了16MB数据(数据不多,但是很珍贵,上浮到海面很耗费能源,也比较危险)
  • 每年圣诞节,洛克菲勒大厦都有一棵巨大的圣诞树,2007年前,其彩灯每天耗电大约3,510千瓦时。Ru27穿越大西洋用的能源,大概够这棵圣诞树亮上3分钟。2007年以后,圣诞树开始用节能LED光源,所以能多撑一会儿:8.1分钟。

  这是IEEE Spectrum采访录音和照片:

笨功夫和气场

  这几天都是很晚回家。加班很累。随便敲几句不知所云的。

  推进每日构建(Daily Build)和持续集成(Continuous Integration),每天搞一点:建立Trace机制、替代ACE库、升级GCC、剥离SVN版本分支、实现自动check out/make/make install脚本、调研Unit Test框架、选定集成测试数据集……

  人人都很忙,都有关键的deadline。你再逼大伙儿去执行看似傻乎乎的没有即时回报的软件工程,肯定有压力。只要自己动摇,事情就搞不成。

  《道德经》说“以正治国,以奇用兵,以无事取天下”。所谓不可替代的核心竞争优势,大多是笨功夫积累出来的平台效应。没什么秘笈,较真而已。肯不肯躬身入局挺膺负责,死磕出一个好软件产品?想清楚了,心态放平和慢慢来,自会逐渐形成与众不同的气场。

pFind并行版论文接收了!

  终于收到编辑的邮件:

  It is a pleasure to accept your manuscript entitled “An efficient parallelization of phosphorylated peptide and protein identification” in its current form for publication in Rapid Communications in Mass Spectrometry.

  从08年10月开始编写pFind集群版,到如今论文发表,好长好累的一段路。这是我从最低潮逐渐挣扎出来的一年半。所以,尽管同样是反复修改30稿,同样是RCMS英文期刊,这次比07年那篇论文,份量重了好多。如今扛过来了,自信暴涨。编辑邮件说:“thanks for your patience
as we worked to improve the manuscript”;不太轻易表扬人的BOSS H邮件说:“值得钦佩。我欣赏目标高远之人”。尽管人家是客气,我照单全收,哈。

  乌龟在兔子后面慢慢爬,感谢不离不弃的后援团。头一个就是老娘。向粉丝们报告一下老太太近况:1月1日飞去海南玩,上个月去上海看京剧(上火车当天上午,去UME看了IMAX《阿凡达》),本月在玩WII游戏,去钱柜唱K,参观城市雕塑展,到798看小剧场电影,最近忙着组织朋友去欧洲旅行(本来打算去非洲看动物大迁移,被胆小的儿子苦劝阻止),还刚去了中关村逛,准备买台新电脑(屋子里已经4台了)接到液晶电视上看高清Big Bang……

刺猬的两个偶像

  上一辈经历坎坷,上山下乡折腾,但老妈说,“每个人都有自己的精彩故事”。而我们以及更小的一代,吃全世界小孩都吃的KFC,看全世界小孩都看的Big Bang,玩全世界小孩都玩的星际2试用版,抢全世界小孩都抢的工作职位……这是前N代华人没有的幸福,也是一种致命的压力。对俺们来说,最重大课题就是必须搞清楚“我是谁,和其他人有啥不同”。

  马齿渐长,过了三十岁,同辈的朋友开始变:找到自己使命的,都安静下来不再焦虑了。

  说说俺的两个偶像:

  当初yang姐因某知名外企不准穿牛仔裤上班,愤而鄙视之,转投去了Google。每隔一段时间再联系,她总有成长。最近虽然公司卷在漩涡里,但yang姐嫁了人(恭喜,怨念),还支起了自己的iPod/iPhone软件生意,个人气场持续稳步增强。

  wl在2002年本科一毕业就果断买房,薪水减去房贷只剩几百块吃饭了。那时候班上其他同学根本没这根弦。反而到去年经济危机最厉害的阶段,他却卖掉了房子和汽车,开张了自己的女鞋买卖。现在也是做几十万流水的人了。

  我一向迟钝。yang姐提她的软件和Google AdWords时,Object-C还不像如今这么红得发紫;wl讲解女性消费,俺只能勉强跟得上。嗅觉灵敏的强人永远走在平庸之辈前面,悲剧呀。

  也好。连岳在一次访谈里讲:“我很晚熟,三十岁才差不多成熟”。这话给我不少信心。做不了狐狸,就老老实实做一只好刺猬吧。(也许是鸵鸟?哈)

容错、书单、pFind和pNovo的国际初show

  今天加班有点累。掐着点坐末班地铁回到家。喝水休息。又好一点了。上来随便敲点,放松一下。

  wyj美女正在跑超大规模的实验,我要帮她完成一部分。但最近时间紧张。今天索性抓她一起完成,交叉检查避免疏漏。到晚上22点,384组实验的参数总算全设置完了,我们都接近崩溃。然而,跑起来,集群速度不正常。瓶子帮忙检查了好久。有些灯枯油尽,又要赶地铁,明天再继续。

  感觉是硬件问题。最近某个节点似乎一直在“带病坚持工作”:也不彻底死机,就是超级慢。遇到这种问题Google系统的常规做法是把长时间“不归队”的节点放弃掉,将其任务重新平分给其他各节点。pFind目前对此还没啥特别措施,Mascot、SEQUEST和X!tandem等竞争对手的集群版也没考虑。

  可用性应该是云计算设施的基本要求,也许比速度甚至精度还重要。算算概率,Intel
CPU理论上连续运行10年出现一次浮点计算错误,这就意味着上千核的集群每2小时就错一次(还没考虑其他更容易出问题的部件)。也就是说,在大规模的廉价商业集群上长期运行的软件,必须把硬件错误当作常规事件,考虑对应的鲁棒性设计。Google就强调GFS、MapReduce和BigTable的最牛之处并不是峰值速度或数据吞吐量,而是其在廉价集群硬件上的稳定性和容错能力。

  跑题,列点最近几天新买的书:《Search Engines — Information Retrieval in Practice》《Out of Mao’s Shadow》《一九八四》《伊斯坦布尔——一座城市的记忆》《一个人的电影》。发现前两本英文书居然看得最快。第二本书,是hchi去美国参加RECOMB Satellite Conference on Computational Proteomics 2010给带回来的。走之前他问我要带什么。我随口说:“带本书吧”。结果他就千里迢迢从美国带回来一本华人写中国的英文书。我该早预计到这个结果的。当然,书是好书,还是要感谢。

        

  顺便自豪一下:这次rxsun老大参加iPRG 2010磷酸化数据鉴定评测,pFind引擎在全世界人民面前一鸣惊人了一把。而hchi哥的pNovo更是让de novo算法的主流人物服气了。(伟大的hchi哥进入de novo领域才半年,真快。)

CUDA、婚礼和历史

  三月份很忙,又都是些琐碎应急的事,没太多可记。前几天参加了中科院超级计算中心的《基于GPU的并行计算及CUDA编程》培训。技术上的总结,稍后专门写BLOG。

  没空逛书店。翻出一直束之高阁的《一六四零年英国革命史》《书趣》开始读。有一晚特别疲惫紧张,失眠,到书架上找,发现买回来一直没动过的《书趣》,塑料薄膜还没剥掉呢。翻开第一篇《书的婚事》,陷进去读完,然后轻松地睡着了。下面这段,每次读都要笑出声来:

  乔治终于顺从了,但与其说是思想上接受,不如说是照顾婚姻的和谐。然而,一个要命的时刻来临了:他正在把我的莎士比亚转到另一个书架时,我喊了一声: “别忘了按年代放!”
  他倒吸一口气:“你的意思是要每个作家内部也按年代摆放吗?可没人能肯定莎士比亚写剧本的时间!”
  我吼道: “他写《罗密欧与朱丽叶》比写《暴风雨》的时间早,我要把这些也在书架上表现出来。”
  乔治后来说,他很少郑重考虑离婚,这就是其中的一次。

  一直想买本顾准的《希腊城邦制度》原版收藏,到处找不到。zhw同学说,这种绝版书淘宝上一定有,热心帮我搜索下订单。昨天书到了,果然是社会科学出版社1982年3月的版本,当年定价0.67元,年头久纸张微微发黄,但品相整洁。感谢政府,感谢党,感谢zhw,感谢淘宝,感谢伟大的长尾理论。

  最早读这本书是初中时代。从老妈书架偷出来,提心吊胆地看了一段。当时只是感到内容很清新。现在重读感触更深。在1975年最黑暗的时代,还能做如此冷静、独立而深入的研读和思考,真是我辈的圭臬。有些话现在看还是很讽刺,例如几千年前亚里士多德的《政治学》对僭主的描述:

  少数人统驭全邦所有与之同等或比他更有才德的人民,施政专以私利为尚,对人民的公益毫不顾惜,而且也没有任何人或机构可以限制权力……永不录用有自尊心和独立意志的人。

  顾准难以接受亚里士多德的判断:“东方蛮族比希腊民族更富奴性,所以他们常常忍受专制而不敢起来抗争”。他进行了客观思考:

  春秋战国时代,正当我国历史转变的关头,但是从殷商到西周、东周长期“神授君权”的传统,已经决定了唯有绝对专制主义才能完成中国的统一,才能继承发扬并传布中国文明,虽然这种专制主义使中国长期处于停滞不前,进展有限的状态之中,但这是历史,历史是没有什么可以后悔的。