2008年12月23日星期二

2008年12月21日星期日

Performance comparison 性能比较 : Java vs python vs c vs c++

哈哈,标题很大,内容很弱。
今天无聊,做了个小实验。假设我们有个任务,输入是一个文本文件,每行两个整数用空格分开,输出是一个文本文件,每行是输入对应行的和。这个例子虽小,但确是比较经典的场景。我用java, c, c++, python写了好几个程序,每个都在接近日常编码的情况下尽量写的快一点,看看究竟速度有什么差别。

程序的输入都是一样的,一个文本文件,有10,000,000行,每行两个1000以内的随机整数。机器是Macbook Intel Core Duo 2.0G, 2G内存 DDR667, 5400转seagate磁盘 8M缓存,Mac OS X Leopard 10.5.5. 虽然这些不是重要因素,但还是要介绍一下。

时间测试用的是bash的time命令,取的是real时间。

1) java,用split,java version "1.6.0_07" Java(TM) SE Runtime Environment (build 1.6.0_07-b06-153) Java HotSpot(TM) 64-Bit Server VM (build 1.6.0_07-b06-57, mixed mode)

程序如下

TextFileReader r = new TextFileReader("/Users/sixiance/Desktop/test.txt");
TextFileWriter w = new TextFileWriter("/Users/sixiance/Desktop/test.out.txt");
String l = null;
int a, b;
while ((l = r.readLine()) != null) {
String [] cols = l.split(" ");
a = Integer.parseInt(cols[0]);
b = Integer.parseInt(cols[1]);
w.writeLine(Integer.toString(a + b));
}
r.close();
w.close();

说实话split是很消耗时间的,每次都要生成一个正则表达式Pattern对象。这程序运行四次, 时间均值17.46125
标准差0.3162429,单位都是秒。

这里面的TextFileReader/Writer就是简单包装了一下new BufferedReader(new InputStreamReader(new FileInputStream()))

2) java 不用split, VM同上

既然刚才知道split比较费时间,那我就不用split,用如下的代码片段代替

int pos = l.indexOf(" ");
a = Integer.parseInt(l.substring(0, pos));
b = Integer.parseInt(l.substring(pos+1));

结果比split好很多,均值 10.26375标准差0.133784,快了好多。

3) c, gcc -O3, version 4.0.1 (Apple Inc. build 5465)

c程序如下:

#include "stdio.h"

int main(int argc, char** argv) {
FILE* fp = fopen("/Users/sixiance/Desktop/test.txt", "r");
FILE* ofp = fopen("/Users/sixiance/Desktop/test.cout.txt", "w");
int a, b;
while (!feof(fp)) {
fscanf(fp, "%d %d\n", &a, &b);
fprintf(ofp, "%d\n", a + b);
}
fclose(fp);
fclose(ofp);
}

结果自然是无敌快:均值8.09575, 标准差0.1816670

4) python, Python 2.5.1 (r251:54863, Apr 15 2008, 22:57:26) [GCC 4.0.1 (Apple Inc. build 5465)] on darwin

代码如下

f = open("/Users/sixiance/Desktop/test.txt", "r")
of = open("/Users/sixiance/Desktop/test.pyout.txt", "w")
for line in f:
[a,b] = line.strip("\n").split()
of.write(str(int(a) + int(b)) + "\n")
f.close()
of.close()

这个也是用了split,速度是很慢的, 均值48.5335, 标准差0.2030706

5) c++, g++ -O3, gcc version 4.0.1 (Apple Inc. build 5465)

程序如下

#include
#include

using namespace std;

int main(int argc, char** argv) {
ifstream ins("/Users/sixiance/Desktop/test.txt");
ofstream outs("/Users/sixiance/Desktop/test.cppout.txt");
int a, b;
while(!ins.eof()) {
ins >> a >> b;
outs << (a+b) << endl;
}
ins.close();
outs.close();
}

都用c++的方法,不是用c的部分。这个惊人的慢:均值68.3783,标准差0.3763082。c++ stream真不是盖的,敬仰啊... 这个的sys时间花的比user还多,而且都比c和java慢了好多。

6) c++ 不用endl
思考一下,罪魁祸首是endl,每个endl都会导致stream flush(这其实挺sb的)。把endl改成"\n",均值14.734,标准差0.2281447,这次是比较正常了。

总结回顾

让我们回顾一下,把各种情况下的时间都画在一个图里面:



这些数字绝不是要说明那个语言好或是那个语言快(本身意义也不大),因为实际的问题千差万别,很难用这么小的例子来概括。但是这些数字确实可以告诉我们,在抄起家伙随心地写一些小工具和小实验程序时候,大概会有一个什么性能差距。

2008年12月14日星期日

恢复游泳

今天晚上回到久违的学校游泳馆,开始恢复游泳了。

周四按摩的时候,按摩师傅说你们这些每天坐在电脑前面的人脊椎都不太好,得经常锻炼一下。我觉得这个挺重要,好几个兄弟颈椎都已经出状况了,赶紧就问啥锻炼最好。师傅介绍了几种方法,最好的还是游泳,看来经常游游是百利而无一害啊,不错不错。

游泳馆在奥运前半年的时候就封馆支援运动员训练了,上一张游泳卡就白搭了100多在里面。今天重回游泳馆,发现奥运还是有好处的,原来走廊里面剥落的墙皮现在变成瓷砖了,隔不远还有小装饰画,感觉好很多。更衣室里也重新装修,洗澡换成了感应喷头,热水也是哇哇地好,谁说奥运没啥好处,哈哈。

今天先游了1300米热热身,争取这次在游泳卡过期之前都把它用掉~

2008年12月8日星期一

魔方,无敌魔方

办公室有一个魔方,最普通的3x3那种,我搞了半天才搞定两个面,实在是太弱智了。

共享两个视频,第一个是机器人的,第二个是活人的






叹为观止啊

2008年12月7日星期日

美国的神奇之楼,竟然倒在一起




在google maps上偶尔看到的,应该是拼接的结果,但这拼接的也太好了

2008年12月1日星期一

校园风光



发两个校园随拍,安静的冬日午后。

2008年11月26日星期三

Java是混水摸鱼者的最爱?

看到一篇老文,The Perils of Java Schools,作者是Joel,一个知名程序员。大意呢就是java本身难度太低了,只学java不足以区分出优秀的计算机毕业生和混水摸鱼者。Joel对指针、递归和函数式语言比较有爱,觉得这些才能区分出一个脑子是不是适合做好的程序员。文章写的还是比较中肯的,不过总让我有一种感觉,就是某些有了一些知识的人,总是企图把自己脑袋里面的知识神化复杂化,好创造出和其他人的区别。Joel的文章里面也提起以前大学里面要学拉丁文,不是因为拉丁文有用,而是“受过教育的人应该懂拉丁文,以示和平头百姓的区别”。那么受过教育的CS毕业生也应该懂scheme以示和草根程序员的区别么?真是扯淡,有种拉出来练练才是真的。

另:你觉得递归有那么难,可以用来区分talented brain和java library cobbler么?
更新:昨天晚上找我女朋友做实验,我成功地在十几分钟内把递归的概念教给她,她随后自己推导出了快速排序算法。需要说明的是我女朋友是文科生,高中毕业后再没学过数学或是任何理科的东西。

2008年11月20日星期四

iPod touch 二代入手


观察了好久,终于出手啦,哈哈。我的是8G版本,在百度有啊上买的,1699大元,店主竟然亲自送货,还赠送屏幕贴,值得推荐。

言归正传,说说两天体会。
  1. 手感重量很棒,可以用惊人来形容,组装的也很结实,在工业设计上给满分。
  2. 触控感觉不错,虚拟键盘用起来很顺手,输入失误率很低。官方的拼音输入法就很不错了,手写玩了玩,觉得不如虚拟键盘打字方便,就又给关了。
  3. 速度流畅。
  4. 缺点:电池有点痿。我基本上是拿他当浏览器用,而不是当mp3用,所以wifi使用时间很多。如果像我这样整天wifi的话,基本上每天就得充一次电。
  5. 缺点:safari有时候会死掉,直接退回到home界面,不到影响使用的程度,但是也不罕见。
  6. 缺点:不支持flash。据说有人移植成功了?
  7. 缺点:appstore在中国好多东西不能买,音乐和电影就算了,连很多app都不能买,例如知名的enigmo谜之机器,实在是遗憾。中国appstore里面应用少很多,注册美国的帐号需要美国信用卡。据说有办法注册,还没试过。
  8. wifi连接速度挺快的,基本上感觉不到wifi初始化连接的过程,达到了“开机就上网”的标准。
  9. 没有内置麦克风,得用iphone耳机才能录音,很不方便。
总体来说还是很好的,哈哈

2008年11月17日星期一

百度的黑锅谁来背



我写东西非常不喜欢用叹号,始终觉得叹号太哗众取宠,在网络上已经被滥用了。不过今天我不得不用一个叹号,因为百度太棒了!

用百度搜索“谷歌公正性”,第一条结果“谷歌公正性遭质疑,央视曝光竞价排名”。题目看的我一惊,央视不是曝光百度么?怎么变成曝光谷歌了?点进去一看没有语言了,这个网页里面题目明明是“百度公正性遭质疑,央视曝光竞价排名”,到了百度的搜索结果里面,“百度”二字就有如神助地变成了“谷歌”,真是得来全不费功夫。

空口无凭,截图留念。

2008年11月13日星期四

游中关村软件园

软件园景色

软件园景色


今天陪mm去公司领材料,顺便游了游中关村软件园 :) 发两张照片纪念这个美好的阳光下午。(blogger不能发照片了?)

2008年11月5日星期三

找不到的mathbbold.sty ?

最近写一篇论文,用www2009的标准latex模版,在mactex下编译的时候提示找不到mathbbold.sty。虽然编译可以继续,但是心里总是很不爽,遂挖掘了一下相关原因。

原因其实很简单,这个mathbbold.sty就在你的系统上,不过改名叫mathbbol.sty(8.3文件名复活记?)。想兼容mathbbold这种写法,就到/usr/local/texlive/2008/texmf-dist/tex/latex/jknapltx/下,sudo cp mathbbol.sty mathbbold.sty,然后运行sudo mktexlsr重新建立文件名索引。再编译一下你的文档试试?大功告成 :)

2008年10月24日星期五

站立式工作



今天在Engadget上看到一篇帖子,说站着工作要比坐下工作健康好多,还会促进脂肪的代谢,减少一型糖尿病的发病率。看罢我们办公室的几个就立刻动手,把放电脑的桌子抬高到吧台高度(上图照片)。站立工作了一天,感觉还不错,不像是在写程序做实验,倒像是在演奏乐器或是接待客人。不如大家都来试试?

推荐一个编程时可以听的在线音乐电台:GrooveSalad

有没有过这种时候:工作比较累,周围太安静(或太聒噪),想听点音乐,又不想被歌词和演唱者忘我的高潮干扰,也不想操心该听什么?SomaFM提供了一个频道叫GrooveSalad就正好满足了这个要求。

SomaFM是一个免费的在线电台,下面有几个频道,我一直听的就是GrooveSalad。GrooveSalad,顾名思义,就是节奏(groove)拌的沙拉,播放的内容是DJ精选的背景音乐,曲调简单好听,节奏感强,但又不喧宾夺主,实在是编程第一佳品,哈哈。

GrooveSalad是一个pls文件,有realplayer就可以听,mac的itunes和linux下vlc都可以,你还可以把这个pls文件保存在电脑上,下次不用上网连,直接双击打开就可以了。

经过我长期收听,鉴定结果是GrooveSalad很值得推荐 :)

2008年10月22日星期三

恩,又慢慢转回mac,囧

用了一段时间的vista,还是蠢蠢欲动要转回mac。Vista的好处是可以运行一些windows程序,网络银行啊pplive啊啥的。说句实话除了这些就不太好用了,1)启动慢,2)盖上电脑休眠后再启动也慢,3)电脑的快捷键经常不好用,4)任务栏驻留了很多的东西,5)字体渲染和mac差太多,尤其是在看英文PDF论文的时候,6)我装的暴风影音竟然会在播放半路自动退出。

看来还是双系统,留个windows玩游戏看pplive之类,主要的工作系统mac爽一点,呵呵。

2008年10月18日星期六

Gnome Asia Summit

今天去了Gnome Asia Summit,地点很近就在北航。Gnome来了好多人演讲和做教程,加上赞助商Sun、Motorola和Mozilla等等,人气很旺。Gnome现在在linux上市场占有率很高,不过说实话KDE/QT的设计和代码可读性等等感觉都比gnome好,但是大家就是认gnome。这有点像Mac和windows,Mac各个方面都比windows好,大家就是认windows。我发现的一个规律就是在软件市场上,有时是第二名技术和产品都比第一名好,但是第一名还是遥遥领先,除非是第二名好太多,这一般是不现实的。例子很多,如刚才说的win和mac,gnome和kde,还有linux和solaris、hao123和Google导航,IE和firefox。我们下次选软件的时候可以留意一下,在没有兼容问题的前提下,看看有没有优秀的第二名 :)

关于Gnome Asia Summit,更棒的是免费注册+中午管饭。在餐厅排队的时候听组织者介绍一顿要50块/人,还是不错的。有免费午餐就有蹭免费午餐的,排在组织者后面的两位仁兄就连gnome是啥都不知道,搞的组织者很尴尬......

p.s. 没带照相机,所以没图没真相了,请鄙视吧 -_-

2008年10月14日星期二

九型人格测试,应该做一做

前天mm推荐我做了一个人格测试,属于标准的Enneagram九型人格测试,通过一系列的二选一问题来猜测你更属于九种典型人格中的哪些。九型人格测试很准确,而且从儿童成长的角度对人格的形成做了解释。我觉得每个人都应该做一下,认识一下自己 :)

九型人格看起来很像隐含主题模型,每个人格是一个隐含主题,而每个人的性格是多种主题的混合,通过一系列的问题能把人的性格分解到不同的分量上去。如果能拿到很多很多人的问答数据,对其进行概率分解或是SVD分解,不知能不能还原出代表九个性格的隐含主题?哈哈

Windows Vista




今天给macbook装上了一个Windows Vista,正式(重新)进入windows的行列。


我应该是大三那年从windows xp迁移到linux的。当时主要的动因是我把原来的dell笔记本卖了,新买的ibook还没到手,而临时替代的二手电脑只有linux下的mplayer能够真正地流畅播放电影。就这样半推半就地上了linux的船,开始是很不适应的,要啥啥不会,调啥啥没够,连configure/make一套都不熟。过了几个月,我就逐渐熟悉了linux,也可以随便安装网上的tar包,没事吃饱了编编内核啥的。后来有了一些在linux下开发的工作,写server,epoll、socket啥的,胡搞八搞,linux还弄得比较熟。这个阶段是最爽的,linux的优势都熟悉了,windows下能做的linux下也大多能做到,还不用担心病毒,生活乐无边。

除去工作用的linux,其实一直在用的系统应该还是Mac OS X,原来的ibook 现在的macbook都是OS X。OS X这个系统做的像一个艺术品,多数的细节都做的很完美,和OS X相比,windows xp可以用“粗鄙”来形容了,都不好意思跟人打招呼。OS X的速度也很快,几年前就几秒启动,半年不关机,两年不重装,可以说是代表了操作系统的一定水准。后来的mac都是intel平台的,用virtualbox虚拟机也是啥都不耽误,网络银行也能用。

linux代表着操作系统技术的先锋(应该是solaris,不过伊跑太远了,连geek都很少用),mac代表着操作系统艺术的先锋,geek个人用的话是非常不错了。这次装回vista,主要是想体会一下平均计算机用户的环境,geek脱离群众可以,如果真的想关注这个产业,在写字楼里面用macbook pro的肯定没有在网吧用番茄花园的洞察力好,你说呢? :)

2008年10月10日星期五

转载:美妙的生物荧光分子与好奇的生物化学家

转载一篇文章,写得很好,大师兄推荐的,我也来转贴一下


美妙的生物荧光分子与好奇的生物化学家

作者:饶毅;来源:科学网博客

做出应获诺贝尔奖工作的科学家,几十年默默无闻;
被广泛应用的分子,很少人知其发现者;
原始论文鲜为人知,后继论文倒很热门;
曾失明的人,发现了美丽的发光蛋白;
低调的父亲,出了高调的儿子。
这里简介一项生物化学研究,讲一个科学家的故事,还讨论一个问题:是否活着的科学家中还有因好奇而做科学研究?
本文和我2002年一篇文章相同,不是预测诺贝尔奖,而是介绍值得获奖的工作。名单上不包括可以获奖、但其工作不值得获奖者。相反,本文的主人公可能被埋没得不到奖,但他的工作很值得介绍。

生物发光和荧光蛋白
现在研究生物的人,几乎都知道绿色荧光蛋白(GFP),但常常不知或搞错其发现者。毫无争议的发现者是日裔美国科学家下村修(Osamu Shimomura,下村脩)和已故美国科学家约翰森(Frank H. Johnson)。他们1961到1974年发现两种发光的蛋白质:水母素(aequorin)和GFP。
生物发光现象,下村修和约翰森之前就有人研究。萤火虫发荧光,是由荧光酶(luciferase)作为酶催化底物分子荧光素(luciferin),有化学反应如氧化,以后产生荧光。而发现蛋白质本身发光,无需底物,起源于下村修和约翰森的研究。
下村修和约翰森用过几种实验动物,和本故事相关的是学名为Aequorea victoria的水母。1962年,下村修和约翰森等在《细胞和比较生理学杂志》上报道,他们分离纯化了水母中发光蛋白水母素。据说下村修用水母提取发光蛋白时,有天下班要回家了,他把产物倒进水池里,临出门前关灯后,回头看一眼水池,结果见水池闪闪发光。因为养鱼缸的水也流到同一水池,他怀疑是鱼缸排出的成分影响水母素,不久他就确定钙离子增强水母素发光。1963年,他们在《科学》杂志报道钙和水母素发光的关系。1967年Ridgway和Ashley提出检测钙的新方法:用水母素。钙离子是生物体内的重要信号分子,水母素成为第一个有空间分辨能力的钙检测方法,是目前仍用的方法之一。
1955年Davenport和Nicol发现水母可以发绿光,但不知其因。1962年下村修和约翰森那篇纯化水母素的文章中,有个注脚,说还发现了另一种蛋白,它在阳光下呈绿色、钨丝下呈黄色、紫外光下发强烈绿色。其后他们仔细研究了其发光特性。1974年,他们得到了这个蛋白,当时称绿色蛋白、以后称绿色荧光蛋白(GFP)。Morin和Hastings提出水母素和GFP之间可以发生能量转移。水母素在钙刺激下发光,其能量可转移到GFP,刺激GFP发光。这是物理化学中已知的荧光共振能量转移(FRET)在生物中的发现。
下村修本人对GFP的应用前景不敏感,也未意识到应用的重要性。他离开普林斯顿到Woods Hole海洋研究所后,他的同事普瑞舍(Douglas Prasher)非常感兴趣用荧光蛋白做生物示踪分子。1985年普瑞舍和日裔科学家Satoshi Inouye分别根据蛋白质序列拿到了水母素的基因(生物学上准确地说是cDNA)。1992年,普瑞舍又拿到GFP的基因。有了cDNA,一般生物学研究者就很容易应用,比用蛋白质方便多了。
普瑞舍1992年发表GFP基因的文章后,离开科学界。原因是他申请美国国家科学基金时,评审者说没有蛋白质发光的先例,就是他找到了这种蛋白,也没什么价值。一气之下,他离开学术界去麻省空军国民卫队基地,到农业部动植物服务部工作。当时他如果花几美元,就可以做一个一般研究生都能做,但非常漂亮的工作:将来自水母的GFP基因放到其他生物体内(如细菌),看到荧光,可以很强烈地提示GFP本身可以发光,无需其他底物、或者辅助分子,也表明可以广泛用GFP。
将GFP表达到其他生物体这项工作,1994年由两个实验室独立进行:美国哥伦比亚大学做线虫的Marty Chalfie实验室,和加州大学圣迭哥分校、Scripps海洋研究所的两位日裔科学家Inouye和Tsuji。
水母素和GFP都有重要的应用。但水母素仍是荧光酶的一种,它需荧光素。而GFP是蛋白质本身发光,原理上不同。
Chalfie的文章立即引起轰动,很多生物学研究者接着纷纷将GFP引入自己的系统。当时好些《自然》、《科学》文章,证明那里表达GFP,那里就有绿光,这些后续文章不过是跟风,上了《自然》也不证明有原创性。
1994年,华裔美国科学家钱永健(Roger Y Tsien)开始改造GFP,有多项发现。世界上目前使用的荧光蛋白大多是钱永健实验室改造后的变种,有的荧光更强,有的呈黄色、蓝色,有的可激活、可变色。用一些不常用做研究样本的生物找有颜色的蛋白成为一些人的爱好。不过真发现的有用东西并不很多。成功的例子有俄国科学院生物有机化学研究所Sergey A. Lukyanov实验室从珊瑚里发现的其他荧光蛋白(FP),包括红色荧光蛋白。
综观整个过程,从1961年到1974年,下村修和约翰森的研究遥遥领先,但很少人注意。单纯从技术上,其他生化学家也可以得到水母素和GFP,但需要有想法或兴趣。在1974年以后,特别是八十年代后,很多后续工作显而易见,一般研究生可以做。其中例外是钱永健实验室发现变种出现新颜色,这一发现出乎意料。

GFP之美丽和妙用
GFP及其衍生物(各种荧光蛋白),绚丽多彩,非常漂亮。
有些荧光蛋白当浓度足够高时,在日光下可以看到颜色。所以实验室产生了人为可控制颜色的鱼、老鼠。
荧光蛋白广泛应用于生物学研究。可以通过常规的基因操纵手段,将荧光蛋白用来标记其他目标蛋白,这样可以观察、跟踪目标蛋白的时间、空间变化。提供了以前不能达到的时间和空间分辨率,而且可以在活细胞、甚至活体动物中观察到一些分子。荧光蛋白技术也使得人们可以研究某些分子的活性,而不仅仅是其存在与否。
对于有些研究来说,荧光蛋白的作用可以形容为“起死回生”:原来有些方法,需要把生物变成死物才能研究一些现象和过程,而荧光蛋白为主要支柱之一的现代成像技术,使科学家在活的细胞中观察和研究这些过程,使一部分“死物学”变成“生物学”。

为了好奇
下村修1928年生于京都,长于长崎。1945年他16岁时,原子弹在他故乡爆炸,他曾失明数周。1951年,他毕业于长崎医科大学药学专门部,1960年获名古屋大学有机化学博士。1960年他到美国普林斯顿大学约翰森实验室做博士后,63年至65年回日本名古屋大学任副教授,65年回普林斯顿继续在约翰森实验室,直到1980年。估计是约翰森退休后下村修不能待在普林斯顿了,所以1980至2001年他到麻省Woods Hole海洋生物学研究所工作、并有波士顿大学兼职教授之软差。
下村修1961年33岁做出重要发现(1962年发表),到1974年46岁时,全部关键实验完成。但到80岁的今年,他几乎是默默无闻。他多年没有实验室,在约翰森实验室做了近20年博士后,不是为了功。他也没有当选美国科学院院士,不是为了名。GFP后来带来了相当的收益,但下村修没得,也不是为了利。
下村修加入生物发光研究是1955年在日本做研究生时,导师让他到另外一个实验室去开阔眼界,而那个实验室的导师介绍他做荧光素。1959年导师逝于癌症,1960年他到约翰森实验室。约翰森给他看水母发光,要他做,可是第一次演示根本没有发光。但下村修被约翰森感染了,决定做这个课题。1961年约翰森开了七天的车、每天12小时,带下村修横跨美国到西海岸华盛顿州的“星期五港”(Friday Harbor)实验室,那里当时盛产水母,有很多原料,他们在1961年夏做出主要发现。
下村修开始做研究时不知其重要性,只是对生物发光好奇。发光的生物学意义,至今尚不清楚;而发光蛋白应用的重要性,下村修不仅当时不知道,而且以后相当时间不清楚。水母素应用于检测钙,是1967年由Ridgway和Ashley提出。最初下村修和约翰森只为提取水母素,而GFP是副产物。现在,这个副产物的用途比原来的正产物还大。GFP作为示踪蛋白是普瑞舍极力鼓吹。广泛应用在1994年以后。从1974年获得GFP到1994年,下村修并未大力推动GFP的应用。
下村修乐于做这项工作,只需很基本的条件。2001年退休后,他继续做研究,把家里的地下室作为“光蛋白实验室”,今年80岁的他,还用家庭地址发表文章。

科学界并不公平
下村修有非常重要的科学贡献。但是科学界多半不知道他,只知道后续工作,社会的认可就更少。
在普林斯顿,他二十年没有独立实验室,在别人领导下工作。到Woods Hole后,是很小的几人小组。他80岁了,也没有当选哪里的院士。最近几年开始获些不知名的奖。非常热衷于国民获诺贝尔奖的日本,到近年才有少数专家知道下村修。
下村修和遗传学家Barbara McClintock不同。她在81岁因为发现转座子获诺贝尔奖。但慢的主要原因是学术,而对她个人很早就认可(因为在遗传学的多个贡献,1944年她42岁时当选美国科学院院士,是最年轻的院士之一;43岁当选美国遗传学会主席)。1950年代,她提出转座是调控基因表达的重要机理,但转座调控基因并不是普遍规律。她在植物中发现转座现象,不是争议焦点,一旦大家意识到转座是普遍现象(包括动物)后,就接受了其重要性。而下村修的成果人们用了很多年,没有争议,只是大多数人不知道他的个人贡献。
下村修虽然做了非常原创性的工作,很多人用他发现的GFP,有些生物学杂志每期都有文章用GFP,有些生物杂志每期20%的文章用了GFP,但绝大多数人并不知道发现者是下村修。下村修和约翰森1962年发现水母素的文章迄今被377次引用,1974年纯化GFP的文章被引用169次,Chalfie等1994年《科学》文章被引用3349次,Inouye 和Tsuji的1994年文章被引用256次。说明大多数科学工作者并不知道所用的东西怎么来的。所以,简单重视引用率也不能代替对领域的真正了解。
不仅下村修没有被广泛认可,其他一些人也遭忽略。1990年,他的合作者约翰森82岁去世时,《纽约时报》的悼文没有提GFP。普瑞舍拿到GFP基因但缺经费。Chalfie文章引用率高但专利搞砸了没多少收益。
我2002年写的值得获诺贝尔奖名单中,有普瑞舍和钱永健,无下村修。近年我才给学生讲下村修的工作。本文也算是一个更正。
这个领域,最重要的工作显然是下村修和约翰森做的。钱永健在两个方面做出了重要的贡献,如果钱与下村修合得奖也很合理。第三重要的是普瑞舍。他承前启后,有助于推广应用下村修的发现。

钱永健的贡献
钱永健是取得重要成就的科学家。他在成像技术中,有两项重要工作都与下村修有一定关系。
一项是钙染料。1980年钱永健发明检测钙离子浓度的染料分子,1981年改进将染料引入细胞的方法,以后发明更多、更好的染料,被广泛应用。检测钙的方法有三种:选择性电极、水母素、钙染料。在钱永健的钙染料没有出现以前,具有空间检测能力的只有水母素,但当时水母素需要注射到细胞内,应用不方便,而钱永健的染料可以通透到细胞里面去。水母素和钙染料各有优缺点,目前用染料的人多。钱永健还发明了多种染料用于研究其他分子。
钱永健的第二项工作是GFP。1994年起,钱永健开始研究GFP,改进GFP的发光强度,发光颜色(发明变种,多种不同颜色),发明更多应用方法,阐明发光原理。世界上应用的FP,多半是他发明的变种。他的专利有很多人用,有公司销售。
钱永健的工作,从八十年代一开始就引人瞩目。他可能是世界上被邀请给学术报告最多的科学家,因为化学和生物界都爱听他的报告,既有技术应用、也有一些很有趣的现象。他1952年出生,年龄允许他等些年(而下村修没有这个优势)。所以,很多人多年认为钱永健会得诺贝尔奖,可以是化学、也可以是生理奖。值得指出,钱永健非常肯定下村修的工作,钱较早公开介绍下村修的发现。
钱永健是钱学森的堂侄。他家多科学家和工程师。他中学时获得过西屋天才奖第一名,大学在哈佛念化学和物理,20岁毕业,后获英国剑桥大学生理学博士。他哥哥钱永佑(Richard W Tsien)是神经生物学家,曾任Stanford大学生理系主任。两兄弟分别获Rhodes和Marshall学者奖(通常认为是美国大学生竞争性最强的两个奖学金,克林顿总统曾获Rhodes),到英国留学,九十年代双双成为美国科学院院士。钱学森回国后,国内教育体系在他的子女应该上大学时受到极大破坏,使钱的子女钱永刚、钱永真没有得到他们堂兄弟那样的发展环境。钱永刚出生于1948年,文革后才念大学。但愿钱永健在钱学森先生在世的时候获奖,告慰他们全家。
我在华盛顿大学有位同事,在神经生物学和现代成像都用重要发现和发明,他要求很高,批判性很强,公开发表文章批热门的领域、批很多人研究不解决问题。他也看不起一些诺贝尔奖得主。有一年刚宣布得奖名单,我到他办公室去聊天,他没等我开口,就说:“今天是不幸的一天”。他认为那些人没一个值得得奖。这位批判性很强的人,却非常佩服钱永健。

科学界还会有下村修吗?
这个问题可以分几个方面讨论。
当然可以问是否现代科学工作者,比较功利,能否象他那样抱着一个不知道重要性的东西,不追求资源、不追求认可,持之以恒,自得其乐。
然后也可以问,如果碰到这样的人,谁会支持他?下村修和钱永健相差很大。钱永健是人们很快就知道有聪明资质的天才,支持他的人很多,他的工作出来马上为人所知。下村修基本是反例。没人认为他是天才,他不知道自己工作的重要性,别人也不容易在早期判断他的工作。普林斯顿就没有重视他,否则不会在约翰森退休后,让他走。实际上,当时的校长不仅不重视他,也不重视生物,当时一批普林斯顿的生物教授因此跑到旧金山加州大学。斯坦福和哈佛很会靠自己的名声和经费实力招已经做出了可以得奖工作的人,但没有发现下村修。
只有少数人会欣赏下村修,支持他做些事。如果要委员会投票表决是否支持他,大概多数委员会难以让他过关。但在科学界,需要有些人、有些机构、有些时候敢于承担风险,支持少数下村修这样的科学家,做些开始看来稀奇古怪、不着边际的工作。成本其实相当低,主要是支持者不怕其他人的批评。其中多数这种人最后没什么结果,但是只要很少一些支持对了,对科学界的作用可以很大。
对于学生来说,赶热门比较容易,但如果注意力不被大流所驱赶,而在如1970年GFP研究状态时加入这种领域,其实是很安全的重要课题,那时已经知道有绿色蛋白,主要是提纯。当然,能做1961年的工作更好,不过那要求就高很多。

下村的故事完了吗?
这个问题有两个含义。一是下村修。二是他儿子下村务。
年逾80的下村修,无疑应该获诺贝尔奖。但是他是否能得到,却有较大疑问。首先诺贝尔奖委员会出错频率不低,近年也出过好几次。其次,诺贝尔化学奖委员会有时横炮打到生物里,或没搞懂全貌、或只从化学出发,把奖发给一个领域的某个人,而忽略了领域里其他人,甚至更重要的人。一类工作被奖后,其他奖的委员会一般不愿再给同类工作发奖,这样造成一个领域最重要的人没得奖,而其他人得奖。这种现象,在下村修身上发生的可能性不小。过去十年,发过好几个与GFP相关的奖,都没有下村修。只有很少几个不出名的奖近年给下村修。他是否能得诺贝尔奖,反映的不是他的水平,而是诺贝尔奖委员会的水平。化学和生理两个委员会,是否能比平时水平高一点,还得拭目以待。目前化学奖委员会打错横炮的机率并不是0。过去5年,化学奖委员会发生物相关的奖出过三次错(近十年生理奖也出过错,不过没有化学奖频率高)。人的评判无绝对客观,诺贝尔奖委员会也不例外。
下村修既无名也无利。他儿子下村務(Tsutomu Shimomura)却很年青就成了名人。下村務是下村修1964年回日本期间出生于名古屋。后随父母回美国,长于普林斯顿,上普林斯顿高中。在加州理工学院念大学时,跟过诺贝尔物理奖获得者费曼(Richard Feynman)。曾任职于加州大学圣迭戈分校的物理系和圣迭戈超级计算中心。
下村務90年代协助联邦调查局抓住了一个有名的黑客,让那人坐了牢。1995年,他和记者以此为基础合写一本书Takedown(中文“骇客追缉令”),书被改编成电影,很出名。有传说他小时候有逆反心理,后来也可能是黑客,在国会作证时,有联邦调查局探员在身旁,他也黑国会的通讯系统。
所以,下村家的故事怎么落幕,还不清楚。

“研三病”:对科学的幻灭和对科学家的悲观失望
以前,一些崇拜科学的人,常把科学家看得比实际更伟大。而得了诺贝尔奖的科学家,也有隐去实情,在得奖后大谈对科学的热爱, 刻意淡化自己对获奖的重视。
现在,做科学研究的人很多,认识科学工作者的人更多。人们发现科学界很多人并不崇高。原来一些得奖的人不仅热衷于获得认可,而且为了得奖去做很多学术政治,有的不断和评选委员会拉关系,有的到评奖机构蹲点“合作研究”,有的贬低其他人工作。还有些科学工作者做研究纯粹为了利益,对学术不感兴趣,甚至造假。诸如此类,不一而足。
这样导致了我称之为的“研三病”:也就是一些水平相当于研究生三年级的人,对科学研究和科学家群体非常悲观,自认为看破科学界的红尘,愤世嫉俗,走向反面,认定为好奇而做科学的人早已灭绝,断言已经没有纯粹为科学而科学的科学家。
有些科学工作者一辈子都摆脱不了这种病,看不到科学的美,看不到科学家追求美的品味和探索真理的高尚,这不仅影响他们自己的科学研究、动力、动机,而且描黑整个科学界,甚至成为科学界的不良分子。
我近年在一些学校和研究机构讲“科学研究的动力”,总结有三种:好奇、敬业和求胜。为了免疫青年学子,不犯“研三病”、或者较早缓解,我既说明确实很多科学家做科学的动力比较通俗,但也有科学家是好奇驱动。我希望通过下村修的故事,有助于犯“研三病”者明了每十年中生命科学都有几项非常重要的、大家公认的发现和发明,从忧郁症中觉悟过来,潜心寻求好的研究方向,自强不息。

相关文献
Shimomura O, Johnson FH, Saiga Y (1962). Extraction, purification and properties of aequorin, a bioluminescent protein from the luminous hydromedusan, Aequorea. J. Cell. Comp. Physiol.59:223-239.

Shimomura O, Johnson FH, Saiga Y. (1963). Microdetermination of calcium by aequorin luminescence. Science 140:1339-1340.

Morise H, Shimomura O, Johnson FH, Winant J. (1974). Intermolecular energy transfer in the bioluminescent system of Aequorea. Biochemistry 13:2656– 62.

Prasher D, McCann RO, Cormier MJ (1985). Cloning and expression of the cDNA coding for aequorin, a bioluminescent calcium-activated protein. Biochem. Biophys. Res. Commun. 126:1259–1268.

Inouye, S., Noguchi, M., Sakaki, Y., Takagi, Y., Miyata, T., Iwanaga, S., Miyata, T. & Tsuji, F.I. (1985) Cloning and sequence analysis of cDNA for the luminescent protein aequorin. Proc. Natl Acad. Sci. U.S.A. 82, 3154–3158.

Prasher DC, Eckenrode VK, Ward WW, Prendergast FG, Cormier MJ. (1992). Primary structure of the Aequorea victoria green-fluorescent protein. Gene 111:229-33.

Chalfie M, Tu Y, Euskirchen G, Ward WW, Prasher DC. (1994). Green fluorescent protein as a marker for gene expression. Science 263:802-805.

Inouye S, Tsuji FI. (1994). Aequorea green fluorescent protein. Expression of the gene and fluorescence characteristics of the recombinant protein FEBS Lett. 341: 277– 80.

Heim R, Prasher DC, Tsien RY. (1994). Wavelength mutations and posttranslational autoxidation of green fluorescent protein. Proc Natl Acad Sci USA 91:12501-12504.

Matz, M.V., Fradkov, A.F., Labas, Y.A., Savitsky, A.P., Zaraisky, A.G., Markelov, M.L. & Lukyanov, S.A. (1999) Fluorescent proteins from nonbioluminescent anthozoa species. Nature Biotechnol. 17:969–973.

Tsien RY (1980). New calcium indicators and buffers with high selectivity against magnesium and protons: design, synthesis, and properties of prototype structures. Biochemistry 19:2396-2404.

Tsien, R.Y. (1981). A non-disruptive technique for loading calcium buffers and indicators into cells. Nature 290:527–528.

Brooks S (2005). The discovery of aequorin and green fluorescent protein. J. Microscopy 217:1-2.

Shimomura O (2005). The discovery of aequorin and green fluorescent protein. J. Microscopy 217:3-15.

2008年10月4日写
2008年10月5日《科学网》
2008年10月6日《科学时报》发表

2008年9月21日星期日

mm语出惊人


mm最近的口头禅是:拿屎缸酱上!例如“再反抗就拿屎缸把你酱上!”,“拿屎缸把他酱上算了”,“把你剁了搁屎缸里酱上!” ......

附图为一缸,最好不要仔细地形象地想这一幕,听听算了 -_-

一个不错的API参考页面

slashdot上看到的,http://www.gotapi.com 看起来还真是方便,查了一些常用api感觉也不错。支持html, javascript, php, mysql, c/c++/stl, java等等一大脱拉库。

2008年9月15日星期一

梦幻的北京南站,梦幻的北京交通

这是前几周的事情了。某个周末,我和mm受到媒体对京津高铁铺天盖地的宣传,想搭此牛车到天津去看看朋友,吃吃海鲜,梦幻的交通故事就从那个周末的早晨开始。

早晨九点,我们开始向天津出发,先是乘13号线到西直门,再乘环线到前门,除去西直门站如超级玛丽第二关一样的换乘外,其他还算顺利。出了前门地铁站打算找之前网上查好的公交,结果发现方圆一平方公里内散落着无数的“前门”站,想找到某路车的“前门”站是需要相当的运气的。可惜那天运气不佳,我们到底没找到事先找好的车,倒是看到另外一路到“北京南站”,大善,上车走人。此车到了“北京南站”,我们下车一看,大马路边上一个公交站牌孤零零地写着“北京南站”,周围没有任何火车站的迹象... 找到一个大妈问了问路,大妈很热情,说:“南站,啊,过前面的铁桥,到路对面向回走半公里,然后坐xx路公交再坐4站地就到了!” 我X,整个被公交晃点了,走那么远不现实,只好打车到南站。

北京南站像是外星建筑,壮观宏伟那是没得说,进入站内更是机场一般,气派非凡。想这咱就上车走人吧?别介,还得买票呢 :) 到售票处一看,傻眼了,长队和非快线火车站有过之而无不及...

不过新闻和网上时刻表都说了,京津高铁30分钟一班,排队买票就是了。刚排上的时候听到广播里面叽叽咕咕地说了一堆通知,如大妈报站,也听不太清楚。等快排到一半,才听出门道,原来是高铁车票下午三点半之前的已经统统没有,各位去天津的请另谋出路...我再X,被铁路部门晃点了...

这没办法,只好放弃了去天津的想法。这时已近中午,看到边上有一个麦当劳,吃点东西填填肚子吧。走近一看,此麦当劳乃空壳一个,还未装修,又被晃点...

三十六计走为上,我们只好出门准备打车走,结果被保安告知门口不能打车,必须下到地下二层打车专用通道,我又X... 到了地下二层,看到了壮观的排队景象:
排队过程中聊天,好几个人都是没坐上车要走的。我们被北京交通雷到了,打了辆车飞也似的逃回了老窝,白白浪费了半天多的时间。

不知道京津x分钟经济圈的圈民都是怎么搞定的,难不成都有专车接送上级送票?

2008年9月11日星期四

迷信还是科学?

小时候,老师告诉我们,迷信是不好的,科学是好的。

大了一点,发现迷信确实是不好的,看有的人把本来毫无关系的事情用牵强或是巧合的原因联系起来,并深信不疑,觉得完全不可理喻。尤其是那句“宁可信其有,不可信其无”,更觉得是屁话。

不过最近有人指出(链接网页是英文),迷信从某种程度上说是帮助人类生存的。道理也很简单,用他的例子,假设狮子来了会造成草丛刷刷响,而某个原始人错误但固执地认为刷刷响的草会带来厄运(因为草响后同伴不见了...),从此只要草响就躲起来,哪怕是风吹的,这样虽然看起来可笑,但是他可能会因此逃过一些连他也没意识到的灾难,比如被狮子吃了。

引起我最大感慨的是德国进化生物学家Wolfgang Forstmeier对此的评论:“原因和结果之间的联系往往是错误的---科学不过是专制的迷信”,这个说的真是太精彩了。科学家也是迷信者,只不过他们比较谨慎,更确切的说,是在自己所熟悉的狭小领域里面非常谨慎,离开自己的领域,再自称客观科学的人,也会陷入迷信的圈子,甚至由于他们太过自信而迷信的更执着更愚蠢

再扯一个例子,忘了在哪里看到的了。故事说的是一个女化学家去超市买东西,在买厨房清洗剂的时候,她对于那些花哨的名牌清洗剂视而不见,直接拿了最便宜最大桶的,因为她心里比谁都清楚其中起作用的不过是表面活性剂而已,所有的品牌没什么区别。当她买完清洗剂去挑猫粮的时候,却在货架中转了几圈后,还是买了一个名牌的较贵的,因为她这时只能靠价格来保持自己的信心了。

2008年9月10日星期三

分布式LDA, Latent Dirichlet Allocation for Hadoop

这几天偷闲,写了一个基于hadoop分布式计算环境和MapReduce的LDA训练程序,测试基本通过,不过有些地方效率还不好,得仔细调调。

不写不知道,自己写一下,对LDA的体会就多了一些。比如说Dirichlet先验这个事情,反映到训练过程上,就是给隐含主题和词的同现计数加上一个简单的Laplacian平滑(Laplacian平滑就是把所有值都加上一个比较小的数字然后再重新归一化)。而Gibbs Sampling有一个问题,就是每次采样都需要更新全局信息,基本没有机会做真正意义上的并行化,只能做一个Gibbs Sampling的近似。

利用MapReduce进行并行化也有一点问题,MapReduce本身的开销比较大,如果数据量不大到一定的程度,利用MapReduce是不是真得能提高速度还是个未知数。我想再写一个非MapReduce但是支持超过内存大小的Documents的版本,没准在多数情况下都比MapReduce的快。

必须声明的是,思考这个事情的过程中得到了LDA并行化大牛益哥的指导,我只是大实验一般实践一下。非MapReduce版本的LDA如果好用,可能会开源一下,等出来再说吧,哈哈。

我真是一个囧

昨天晚上请红绿总吃饭,大家聊的很开心,吃到最后结账,才发现五道口香猪坊竟然不能刷卡,我囧... 手里现金不足,最后还和红绿借了点钱,请客请到这个份上,也算是极品了吧。

ps: 试着点文章里面的链接了么?红绿的blog竟然是spaces friends only的,真是太棒了。

update: 钱已经还了,哈哈

2008年9月6日星期六

400图强帖:一个东北人镜头下真实的山东半岛

去年在威海的自行车游记竟然被人转帖到论坛上,起了个名字叫“400图强帖:一个东北人镜头下真实的山东半岛” [原地址],我汗。这位转帖的也太猛了,每个图发一个新帖,真是有专业精神,比我当时写的都累。

还是我来加个到“官方”游记的链接吧,放到右侧的连连看里面。

法律体系与机器学习

这是和mm闲扯的时候扯出来的。法律体系大概分为两种,一种叫大陆法系,另外一种叫英美法系。大陆法系重在立规矩,有一个复杂的法典试图覆盖所有情况。如果有人犯事了,就查查法典,看犯了哪一条,依照规定处理。如果找不到一条法律管这个事情,例如安乐死,就下次开会时候补一条。一般欧洲大陆都是这样,例如德国。

英美法系思路相反,不是依照规则而是依照事例。有人犯事了,先找找之前有没有类似的案子,原来怎么判现在就怎么判。如果没有呢?就按照陪审团商量的结果办,办完了以后以此为准。顾名思义,英国和美国及其殖民地一般都用这个。

这和机器学习真是有点像,基于规则的和基于样本的,基于模型的和基于统计的,生成式的和判别式的,哈哈。看来这点思路早就应用到社会中了。

昨天晚上竟然遇到了狗蛋

本来是和mm去某新落成的商场兼饭场吃饭,结果在一个饭店门口看到一有为青年,酷似狗蛋,但是联想到狗蛋还在香港读书,又不敢确认,直到狗蛋本人说xxx你都不认识我了吧才确认无疑。

这小子现在不念了闪回来参加gun和bad的创业公司,真是非常有前途。

2008年9月5日星期五

Firefox小技巧,快速进入常用网站




正在浏览网页,需要看看Gmail,怎么办?按Ctrl+T 输入m回车,完成!如果想在当前页中打开blogger,就Ctrl+L 输入b回车,完成!双手不用离开键盘去摸鼠标,几个字母进入对应网站,这是怎么做到的呢?

秘密在firefox的书签里。以Gmail为例,我先打开书签管理器添加一个书签,然后在关键词(Keywords)一栏里面输入一个m,保存走人。当在地址栏里面输入一串字母的话,它首先看看是不是和某个书签的关键词匹配,如果匹配就直接打开那个书签。当然不一定是一个字母,bib阿dict阿之类的都行。如果你是重度网络应用使用者,这是一个很爽的小技巧,不需要任何插件哦~

2008年9月4日星期四

笔记本触摸板 Touch Pad.



用了一段时间的罗技轨迹球,发现如果能两手操作鼠标,一手负责移动一手负责点击,效率会高很多。笔记本的触摸板也是,原来我都是单手用触摸板,食指移动拇指点击,感觉和鼠标的效率没法比。现在用右手食指负责移动,左手专门负责点击,效率大为提升,基本上超过了鼠标。这样用触摸板还避免了鼠标移动距离过长要拿起来的缺点。

不过话说回来,可能大家都是这么用的,就我独自土鳖了很久,惭愧.... 你是怎么用的?不如留言交流一下?

注:图片是网上搜的,不是我

2008年9月3日星期三

Google Chrome浏览器,新一代操作系统?




Google发布了Chrome浏览器 (http://www.google.com/chrome),在自己的业务链上又补上了一环。Chrome的特色主要是简洁设计、进程隔离和支持 JIT的javascript引擎V8。界面是软件给用户留下最深刻印象的地方,在最终用户面前谈内部机制都有点白扯,简洁的设计是google的特色 了,我一直最喜欢这个,让用户能够忘掉工具,关注要解决的问题本身。不过后面两条就有点意思了,进程隔离啊,JIT引擎啊,再加上Web渲染、Gears 本地数据库,进程、编译、GUI、存储、为应用优化的流程、统一的API.... 大家想起来点啥没有?这活脱脱就是一个操作系统啊,上面运行的就是可以通过网络远程分发的应用程序,我觉得Google不应该叫它Google Chrome浏览器,应该叫Google Web OS,以后大家不用再学什么.net、visual studio、GTK、QT、cocoa啥的了,直接写一个ajax应用(Google Web Toolkit啥的已经铺好路了),就可以到各个平台部署,连自动检查升级之类的全免了,世界多美好~

后面紧跟着的还有什么Canvas 3D之类,准备把硬件加速的三维图形都搞到浏览器中来,配合JIT编译的javascript,无敌了,直接部署三维网游都可以。

这里面谁不爽?微软不爽,Google如果布局推广得当,等大家享用着免费快速的Chrome,在不同的电脑上用着方便的统一帐户和Google Docs, GMail, Gtalk,玩着基于浏览器的3D网游,还有什么力量能把他们牢牢绑在windows系统上呢?

话说微软也不是低幼,下一代操作系统就已经明示是基于singularity的web os,这就看谁手快谁东西好了,哈哈。

涌现语义 emergent semantics

需要补充一下,这里讲的是指semantic web中的emergent semantics,而不是语言学中的,感谢刘贤俊博士给出的语言学方面的介绍。

首先我觉得涌现语义是大众草根现象的又一产物。

什么是涌现语义?

涌现语义和预先定义的本体(ontology)体系的关系可以粗略地类比为大众标签(folksonomy)和精心构造的人工分类之间的关系。传统 的语义互联网(Semantic Web,注意这里是SW大写,小写的话则有时暗指emergent semantics)思路可能是要建立一个统一完备的语义结构,可以标注一切联系一切,这项工作其实是非常困难的,大家愿意不愿意标注且放在其次,对语义 本身的一致认识就成问题。语义和上下文有关系,建立一个在不同的上下文中都适用的语义体系有时是很难的。涌现语义把思路变了一下,就像tagging一 样,“我不管你用什么,觉得好用就行”,这样放在语义标注者身上的枷锁和沉重思想负担就没有了,具体情况具体分析,爱怎么标就怎么标。

涌现语义的三原则

光放开手脚随便标是不行的,不同的体系之间还要交流,就像同一件事情有人叫disambiguity有人叫entity resolution,这在互相交流的时候一定要有一个统一认识,这就是涌现语义的第一个原则:协议(agreements)。不同的语义体系是靠协议来 链接起来的。由于涌现语义缺乏中央集中的调控(这也是优势之一),协议的达成就需要不同体系之间平等地商量一下怎么办,或是先参考一下有没有之前已经达成 的协议可以重新利用,这是涌现语系的第二个原则:协商(negotiation),即体系之间的交流协议来自互相的协商和承认。看到这里不禁要说,那我所 有体系都互相协商成一个大的完备的体系不更好?这是不可能做到的,协商的交流工作量很大,以至于无法达成这个目标,于是本着节约实用的原则,都是和谁打交 道就和谁协商,哪份协商的协议更实用大家就追捧哪份协议。这就是涌现语义的第三个也是关键原则:协商来自局部的交互。再解释一下就是没事不能总开全国代表 大会,开不起。

现实中的涌现语义

涌现语义我觉得基本上是一种社会现象,网络社会现象,而不是一个设计好的要大家参与的活动。一个例子是微格式(microformat),什么是微 格式?比如大家都喜欢把自己的日程安排放在网上,可是格式各异,有的是叙事语言,有的是时间在前描述在后的表格,等等。时间长了大家发现这样很不好,不能 用统一的工具来获得和融合大家的日程,于是有人提出,我们把格式统一一下,用“年月日时分秒 事件时间长度 事件描述”的形式来写日程(具体形式在这个例子中不重要),这样各种软件就可以放心方便地分析不同地方来的日程了。于是在日程规划这个小的局部,就形成了 一种小的语义标注方法体系(局部性)。如果这些人要和飞机订票的人合作,而订票软件有另外一种表示时间的格式,那总会有人出面写一些转换工具来互相转换 (协商和协议)。这些格式也不是一成不变的,比如某天有人提出咱们在每条的最后再加上一个“事件类别”吧,这样方便些等等(持续变化)。这就是涌现语义出 现的一个小例子。

参考文献

[1] Eric Meyer, Emegent Semantics, slideshows presented at SXSWi05, 2005

[2] Aberer, K. and Cudre-Mauroux, P. and Ouksel, A.M. and Catarci, T. and Hacid, M.S. and Illarramendi, A. and Kashyap, V. and Mecella, M. and Mena, E. and Neuhold, E.J. and others, Emergent semantics principles and issues, Proceedings of the 9th International Conference on Database Systems for Advanced Applications (DASFAA 2004)

网络动态性(Network Dynamics)

最近看相关文章的一个小总结

网络动态性研究,是观察网络的各种特征在不同时间上的变化情况,或是利用来自不同时间的数据来获得在单一时间内难以得到的信息。这里“网络”和“图 ”指的是同一个东西,即由节点和连接节点的边组成的结构。这些研究主要来自于物理学和社会学两个研究方向,物理学关注的是抽象网络的各种性质,而社会学更 关注社区发现和演化等与社交网络有关的内容。一些工作是实证性质的,即对来自某个具体网络的数据进行详细的统计和分析;另外一些是建模和算法性质的,提出 一些模型或是方法来解释或解决问题,并且在真实或是模拟的数据上进行检验。

在2005年之前,被关注的特征主要是网络的一些全局统计量,例如平均出入度和平均最短路径。通过考察这些统计量随时间变化的情况,研究者得到了一 些有意义的结论。例如真实世界的网络比较稳定,这得益于其层次性的结构,即大的网络是由很多小的趋于稳定的网络按照层次组织起来的[1]。另外一个和直观 相悖的结论是随着图节点数的增加:1)平均的度在增加而不是常数,2)节点之间的平均距离在减小,而不是缓慢增加[2],这是不是类似于六度空间现象?

2005年之后,一些研究者开始关注网络的结构随时间变化的情况,而不只是看全局的统计量,其中关注最多的是社区的动态性质。一般的思路是先把数据 按照滑动时间窗口组织成时间上连续的多个图,然后用比较成熟的社区发现方法,例如基于edge betweenness的方法,来发现每个图中的社区,最后利用社区之间的相似性度量和时间连续性假设(即社区变化还是需要时间的,不会突然消失掉)来分 析社区的出现、增长、合并、分裂、缩小和消失等现象。其中社区发现、子图相似性的度量等等可能使用各种不同的方法,但是总体上是差不多的。这些分析得到了 比全局统计量更有趣的结论,例如有分析指出大的社区如果组成的单位经常变化,则社区的活力会长一些;小社区则恰恰相反,组成单位的变化会加速其消亡 [3]。做个直观的解释:大社区如解放军,“铁打的营盘流水的兵”,大家不是靠个人关系聚集的,而是靠严格的纪律和共同的目标,这样的社区要比靠脸熟形成 的社区,如梁山泊一百单八将,要稳定的多;小社区如宿舍好友打牌四人组,任何人员上的变动都会让这个组织迅速的消失,因为脸熟是维系这个小社区的关键力 量。另外有人提出来研究的单位可以比单独的节点或是边来得更大,先找到不同时间点上的所有子图,再根据时间上的连续性把不同时间上的相似子图(往往就是相 同的,例如01年的中国足球队和02年的中国足球队,例子是我举的)串起来形成元子图(meta group),转而研究元子图之间的关系[4]。

社区发现,或叫做层次分割,或叫做层次聚类,是探索大规模网络内部结构的必由之路。另外一些研究就关注于如何利用动态性也就是时间信息来辅助社区发 现,或是让社区发现的算法能更好地应对高度动态的数据。来自物理学的研究者善于用物理现象来类比解决社区发现的问题。一个方法是把网络中的每个节点都想像 成相振荡器(phase oscillator,例如单摆就是一个简单的振荡器),把节点之间的边想像为连接振荡器的物体,那么根据我们高中学过的多个不同频率的单摆在连接在一起 的时候会发生同步这一物理规律,我们可以想像网络中相近的节点震荡频率会趋于一致,而没什么关系的节点之间震荡频率会有区别,通过考察稳定后节点震荡频率 的不同,就能把网络划分成不同的社区[5]。这个方法可以看作是用一个动态的模拟来发现网络的结构。另外一个类似思路的方法是把每个节点想像成一个小球, 把节点之间的边想像成弹簧,那么这一团由弹簧连接的小球在稳定不动后就会自然地形成不同社区在一起的结构[6]。之前在用cytoscape这个网络数据 查看软件的时候,就有Spring Layout这种观看模式,和这个思路应该是一样的。这种弹簧模型还有一个好处,就是如果有一个新的节点或是边到来,不用重新计算所有的数据,只要让加入 了新节点的一团弹簧再动动,稳定之后就是新的结果。也就是说这种方法能够应对动态变化的数据,而传统的基于edge betweeness的方法则需要每次都重新计算所有数据,不能适应动态数据分析的要求。

对于在网络上的意见传播,还有一类以Opinion Changing Rate(OCR)模型为代表的模型[7],来模拟在每个节点接受新事物能力有不同的情况下,一个意见能不能在整个网络上达成一致和这个过程需要多长的时间,这很偏向于社会学的研究。

值得一提的是数学家在很早之前就对时间相关的随机现象有了很多的研究,一般被称作时间序列分析,在这个领域内时间序列数据被看作是随机过程的一个实 现,大量随机过程的工具被用于这方面的研究。时间序列分析最初可能主要是由经济学研究驱动的,这方面了解不深。从实际的论文和方法来看,把相关数学工具用 于网络动态性研究的非常少,可能也与对数学知识要求过高有关。

话题转回语言分析,看看网络动态性研究能为语言分析提供怎样的帮助。首先语言中网络无处不在,从字、词的搭配网络,到词语之间的相关性网络,不一而 足。语言的变化虽然不及人际关系的变化快(世态炎凉人心难测),但也是在积极地演进着。例如对从小学到高三的语文课本内容的词搭配进行分析,也许可以看到 不同教育时期语文重点的变化,进而考察出这些重点和这种变化是不是清晰正确地反应了教学的需求。再例如对有准确时间标签的新闻或博客文章中的用词搭配进行 分析,也许能发现不同时期不同事件在话题上影响的变迁,或是新词汇的产生,或是旧词新意的分离或消亡(例如“小姐[年轻女性或妓女]”和“分配[分发或是 安排工作]”)。又例如对不同时代古诗中字的关系进行分析,是不是能看到诗词用语的演化规律?

[1] EA Variano, JH McCoy, H Lipson, networks dynamics and modularity, Physical Review Letters, 2004
[2] J. Leskovec, J. Kleinberg and C. Faloutsos, Graphs over Time: Densification Laws, Shrinking Diameters and Possible Explanations, In Proc. of KDD’05, 2005
[3] G Palla, AL Barabasi, T Vicsek, Quantifying social group evolution, Nature 446, 664 - 667 (05 Apr 2007) Letter
[4] TY Berger-Wolf, J Saia, a framework for analysis of dynamic social networks, in Proceedings of the 12th ACM SIGKDD international conference, 2006
[5] Boccaletti, S. and Ivanchenko, M. and Latora, V. and Pluchino, A. and Rapisarda, A., Detecting complex network modularity by dynamical clustering, PHYSICAL REVIEW E, vol 75, 2007
[6] Yang, B. and Liu, D.Y., Incremental Algorithm for Detecting Community Structure in Dynamic Networks, Proceedings of 2005 International Conference on Machine Learning and Cybernetics, volume 4, 2005
[7] Pluchino, A. and Boccaletti, S. and Latora, V. and Rapisarda, A., Opinion dynamics and synchronization in a network of scientific collaborations, Physica A: Statistical Mechanics and its Applications, volume 372, number 2, pp 316–325, 2006

听报告的体会,如何写博士论文

今天听了热能系主任姚强教授的报告《从学位论文的评审说起:谈如何撰写博士学位论文》,感觉还是有些收获。这个报告是即将毕业正在写论文的博士生必 须参加的活动,我实际是去蹭听的。他讲的很多重点内容孙老师已经反复和我们说过了,例如选题、实验、写作中的问题和学术道德的内容,所以我记得也不全,把 自己的笔记和体会整理一下,供大家参考吧

评审和导师先说的是评审和导师。在写论 文的时候不能把评审者当成是专家,应当首先把他们看作是普通的读者。专家也不是所有领域的专家,尤其是在评审强调创新性的学术论文时,他们是不可能对论文 的所有内容都非常了解的,要是这样论文就没意义了。姚老师描述了很多评审人的行为特点,我用一系列词总结一下:普通读者、大忙人、总是持批判的眼光。评审 人一篇博士论文一般读三十分钟,看的顺序一般是:作者和导师的学术地位、摘要、参考文献的质量、目录的结构、最熟悉的一部分内容、小结和总结、实验的设置 和图表的质量。一个tip是做综述的时候不能只看国外的文章,也要引用国内同行的相应工作,原因很简单:这个同行很可能就是评审你论文的人….

评审人的角度一般是:选题意义,创造性,专业基础知识,写作与总结。这里一个引起我思考的重要观点是博士论文不仅仅是一篇好论文,也要能够反映出 作者在这个领域的广泛了解和扎实的基础知识。如果论文创新点很好,工作很有意义,但是不能反映出作者的专业基础知识情况,可能也是会受到质疑的。其中有一 句话说的不错,自己应该是论文所涉及的这个领域的专家,甚至要比导师和所有评审人对这个具体领域的了解和见解都深才行。

另外一个不好的现象是做的工作都想放在博士论文里面,觉得不放”亏了”。如果把关系不大的工作堆砌在里面的话,反而降低博士论文的质量,或是在答辩的时候受到质疑。

中间插个题外话,姚老师提到研究小组的seminar是个很重要的交流机会,有时候到了工作岗位,可能研究的主要内容都用不到,但是seminar上从其他同学那里得来的知识却经常能派上用场。所以认真参加seminar吧!

思考你的论文:学术价值

先考虑的应该是学术价值。一个有趣的现象是最初选题和最后写论文时相比,有至少一半的人都发现自己的目标和观点有变化,很少有完全一致的(完全一致 说明这很可能是低水平的研究)。博士论文的创新性最重要,如果这个不行,就直接被击毙没有翻身的希望了。两个不好的例子,一是”用了一个创新的方法,但是 性能并不比旧方法好”,二是”写了很多很好,但是和申请的学位学科关系不大”,都很容易被击毙,他还举了真实的例子。

文献综述

文献综述篇幅很大,要注意的是综述要和研究有关,”不必事事从开天辟地说起”,主要目的是引导读者意识到你工作的重要性,要带着改进和批判的态度 写,不能一味说别人方法怎么怎么好,最后又说自己方法怎么怎么好,完全没有关系。不能做的事情包括在介绍引文工作的时候回避冲突,或是蓄意选择性地引述。 不必读所有文献,多读外文期刊,现在论文垃圾很多,要学会判断垃圾。引文的时候要注意引用原创工作,而不是后人的转述或是补充。姚老师给了一个文献综述写 作的方法与步骤:概括,摘要,批判,建议。

另外提到了一下关于研究步骤的两个争论派别。一派认为应该先不看任何文献,自己尽量独立思考,这样有助于摆脱现有研究带来的惯性思维,等思路明确了 再全面地读文章;另外一派认为应该先通读前人工作,才能开始研究。好像这两派争论很多的样子。不过我觉得一个可以借鉴的思路是不必强求”读全”,有想法的 时候立刻开始思考,如果实验简单易行就立刻开始实验,当有进一步思考的时候再仔细地进行文献综述,反思自己思路和前人有什么异同。

方法、实验与模型

主要是讲描述方法的时候要注意科学研究最重要的两点:独立验证和可重复性。可以利用的方法包括显著检验,双盲测试之类。方法描述要有特异性,可操作 性,不能含糊和说一些无信息量的”套话”。姚老师感慨说模型和假设很容易是错的,如果粗心的话很容易落到错误结果中还浑然不知,一定需要严谨的验证,例如 benchmark。

这个我们应该有体会,例如我和yaya重复redgreen的实验,非常容易出错,如果没有大百科数据集合和一个F值作为benchmark来不断 检验,很可能就会做出一个错误的版本却完全不知情。这种有benchmark的还好,如果是创新的没有成熟的检验方法的,那风险就更高了。

结果的表示与分析

不能堆砌实验表格和数据而没有分析,也不能在文中提到任何没有数据支撑的”想当然”结论。

发表论文

Ph.D != paper maker。他提到国内有些论文浮躁的气氛,尽量都想多发,但这样实际是不好的,降低了文章的质量和深度。

最后还有一句话我觉得挺好的:一流大学不是满足社会需求,而是引领社会需求。
就这些了,还有记得的一些参考书,好像都挺不错的,很多观点和句子都引自这几本:
[1] 朱青生,《十九札》
[2] 毕恒达《教授为什么没告诉我——论文写作枕边书》
[3] on being a scientist,这是一篇杂志文章

palmtx和iphone



同组的同学买了一只iphone,可以好好把玩一下了。原来我很想要一个iphone,觉得从反应速度到界面都很赞。不过这次仔细用了一下后,发现 iphone并不像想像中那样吸引人,虽然功能跟赞,但是想代替掌上电脑的话,还是有点距离。掌上设备可以干什么?对我来说,主要是如下几条

  1. 做任务列表和日历,管理工作和行程
  2. 记笔记
  3. 看电子书
  4. 上网收信看新闻
  5. 看pdf论文
  6. 其他词典啊计算器啊看照片啊看电影啊之类的小功能

我的palmtx,图中左边这只,屏幕分辨率和iphone一样,这些功能完成的很出色(除了pdf文件显示每页的时候有点慢)。iphone主要 是中文输入和信息管理功能上比较弱,如做笔记和看电子书这两大重要功能,palmtx可以直接编辑SD卡上的txt文件,所以和电脑交互很方 便,iphone不知道,据我多年用苹果机的经验,应该是不那么容易,得通过itunes之类。

其实主要问题还是iphone的开发不公开。如果允许任何人方便地开发iphone软件并且发布,那么这些功能都是小意思,现在苹果对iphone 软件开发的限制实在是给iphone套上了枷锁。别和我提iphone SDK,用这个写完了是不能直接放iphone上的,得花钱从苹果拿到一个许可才行。

说说开发难度,我觉得palm是谁都可以开发,也不要序号之类,但是开发难度非常大,真的很大,想像一下内存还有分页限制……iphone和 android和windows mobile之类后起的系统开发难度都小很多,不过iphone要钱,winmo慢(真的慢),android还不见实机,现阶段不到两千块的 palmtx还真是一个不错的随身伴侣,哈哈。(附图是palmtx/iphone排排坐)

《美丽与美妙,你们是伙伴》 mm原创的一篇文章,看了很感动

美丽与美妙,你们是伙伴

——张昕姐姐致两位孩子的一封信

美丽、美妙:

辛苦了!

最近发生的一系列事情让你们受委屈了。

当 还沉浸在那历史性的一夜带给我的骄傲与震撼时,听到这个消息,姐姐很震惊、很紧张也很害怕。至今姐姐仍然不相信它是真实的。但不论事件真实与否,不论这是 不是那位陈叔叔的一句梦呓,网络社会也已把你们卷入了这场被哄嚷得满球风雨的事件。你们被无辜的伤害。有些喜爱你们的人也因错误的爱,伤害了你们。你们的 爸爸妈妈、和你们一样正在单纯的成长的孩子、以及我们的国人都一起被伤害了,这中间也包括我。

你们没有错,你们尽自己最大的努力完美的完成了自己的任务,你们的同胞们因你们而感到振奋。你们要记住你们是一对伙伴,你们手牵手代表了祖国的未来。

美丽,你知道吗?在那一刻,你的小小的美丽的身影、甜美的笑容,让所有看到的人都感到有一阵电流从眼里激荡到心里,你的同胞们因你的身影、你的笑容而感到穿越了五千年的长河后扬眉吐气了、感到生活开始朝气蓬勃了。美丽,姐姐和你的同胞都为你骄傲,都因你而为祖国骄傲。

美 妙,你知道吗?在那一刻,美妙的歌声让我们感到传在耳里记在心间,那来自纯真心灵的歌声净化了聆听者的灵魂。无论此事是真是假,无论那声音是否来自于你, 姐姐要告诉你,你的歌声就是如此的撼人心脾,你的歌声会让聆听者感觉置身红尘之外,感觉仿佛看到了一轮新生的太阳。美妙,姐姐和你的同胞们都为你自豪,都 因你而为祖国自豪。

在 人生的路上,你们刚刚迈出第一步,在这个时候发生这件事,看起来对你们确实太不公平了,但是你的同胞、伙伴和亲人会一直支持你们、保护你们,让你们和小朋 友们一样健康的成长。这场风波也是你们人生第一笔宝贵的财富,虽然残酷,但你们从中会收获什么是爱、什么是宽容、什么是真诚。

美丽、美妙,现在的你们一定学会了感动,那掌声与欢呼、那一双双充满希望的眼睛是对你们的认可与喜爱;现在的你们一定学会了宽容,原谅那些无意于伤害你们的叔叔阿姨,重压之下他们也想做到最好;现在的你们一定学会了真诚,懂得了只有真诚才能带来真正的完美。

这场风波也是我们所有国人的一笔宝贵财富,让我们这些成年人思考为什么会有这件事,我们该怎样去化解这些质疑——世界质疑中国的诚信、质疑这无法超越的历史时刻是用虚假完成的完美、质疑举国之力支付不起说明情况的字幕,我们成年人要思考的是怎样让这样的伤害不再发生。

有 些成年人是这样想的,姐姐不妨告诉你们:那夜,美丽站在舞台上全力表演的时候,在按捺着自己的声音,想“难道我的声音真的就不美妙,也许叔叔说的对”,带 给同胞们惊喜的一刻,她的心灵里带着泪水;那夜,美妙的声音响彻中华大地的时候,看到美丽站在舞台上,想“难道我的面庞真的就不美丽,也许叔叔说的对”, 带给同胞们振奋的一刻,她的心灵里带着嘶哑。

但是,你们更要知道,美丽与美妙,你们手牵着手是那么的璀璨,你们表现的那么阳光、那么坚强,完全不像大家的想象。你们是,也应该是,一对最真挚的伙伴,你们共同用心灵的阳光告诉我们什么才是生活的精彩。

美丽、美妙,谢谢你们!

此致,

祝你们健康成长!

张昕姐姐

2008815

神奇的罗技轨迹球 Marble Mouse




前几天在办公室搞来一个轨迹球,话说我还是在小时候听过这东西,从来没用过实物。这个罗技的Marble Mouse像个独眼的外星大蜻蜓头... 用起来手感还不错,用手指摸摸那个红色眼珠就是鼠标了。

不过用了一段时间,感觉最不爽的有两点,一是没有滚轮,极其不便,二是拇指单击的时候手会抖动,影响点击精度。滚轮的事情可能是设计这个轨迹球的时候滚轮 还没推广,罗技号称有一个web surf软件,装上了就能部分达到滚轮效果,但是我机器是linux,没戏了。点击的事情比较要命,我觉得最好的方法应该是左手负责鼠标键,右手完全用于 滚动定位。插了第二只鼠标实践了一下双手操作,确实比单手好很多,定位超准,可惜第二只鼠标本身会移动,点起来还不能不管不顾。

总结,这玩意很好玩,如果有滚轮和外置鼠标键,就无敌了。