Change The World!

作者: Vgod 
原文链接:http://blog.vgod.tw/2010/01/25/change-the-world/

(作者简介:Vgod目前是MIT在读博士,他刚刚发布了自己的图形化编程研究项目Sikuli,引起了业界广泛的关注。更多详情,请移步Sikuli的项目主页,主页上有精彩的Sikuli演示视频。Vgod正在与博文视点合作,准备出版他的第一本书。)

之前一直没机会跟大家分享我在MIT到底在做什么研究,但拜登上MIT首页的一篇报导“Picture-driven computing”所赐,我这两年的项目Sikuli像原子弹爆炸一般通过slashdot和twitter以不可思议的速度扩散开来。而这几天,刚好 碰上学校每年都会举办的滑雪三天三夜旅行,我照着计划坐上游览车到四小时车程外的缅因州滑雪。第一天晚上到旅馆发现没网络可用,只好早早上床睡觉养足隔天 的精神。到了隔天中午,在雪场的餐厅吃午饭时,我想说该来试试有没有网络用,于是拿出ipod touch连上网后,没想到迎面而来的是近百封关心sikuli的邮件。在震惊之余,我还没意会过来到底发生什么事了,直到我看到一封来自跟我同实验室的 学长Michael发给实验室所有人的信,标题写着:“Sikuli on Slashdot!”,接着我才意识到:啊!原来是遭到slashdot effect攻击了!(slashdot是全世界关心科技、网络、电脑技术的人几乎必看的网站,只要某个网站一登上slashdot,马上就会遭到来自世 界各地数以千计的阅览攻击,其效果等同于分布式阻断服务(DDoS)攻击,而这现象就被称为slashdot effect。我以前都以为只有网站会有突然出现的巨大流量,没想到连我的信箱也会…)

在这件事情之前,我从没体验过媒体和网络的力量可以有多么惊人。从MIT News发出的一篇报导,隔天被转载到一小部分科技、技术网站,并且在twitter上开始有人口耳相传这个新玩意。再过一天,有人把这消息推上了 Slashdot: MIT Offers Picture-Centric Programming To the Masses With Sikuli,很快的sikuli这名字开始传遍世界。我在twitter上搜寻了sikuli,想看看人们都说些什么,结果看到由各种不同语言写的 tweet不断涌出,就在我还没看完一页时又冒出 “xx more tweets since you started searching”的信息。搜寻出来的tweets除了绝对多数的英文外,也看到很多俄文、法文、日文,反倒是中文的消息最少,实在让我有点哭笑不 得。(关于信息的传播,我也通过这次的事件观察到不同国家对同一事件反应的一些有趣现象,以后再另写新文跟大家分享。)

人在偏僻的山中滑雪,突然看到这么多人们在讨论着我的project,还有信箱里塞满各种关于sikuli的问题,让我兴奋得不得了。当时我的心情其实完 全顾不得滑雪了,但难得的旅行还抱着电脑一直坐在餐厅里实在也有点可惜,只好趁着有网络时把每封信大略浏览一下,下午就趁着坐缆车上山的空档想想怎么回复 这些邮件。

太阳下山后,我终于按奈不住卸下装备就拿着电脑回到餐厅里继续连上网,结果又是更多的邮件涌入、更多的tweets、更多的冲击。而当初把sikuli开 源的决定,也让我接到来自世界各地开发人员的意见和回馈,有人在一天内帮我把Linux上还没实作的几个功能写完并送了patch给我,也有人为了在它的 64-bit Windows上执行而直接hack了没有原始码的二进位EXE wrapper。除了写程序的人外,有专业的用户体验设计师愿意加入,也有人志愿帮忙移植到Linux的工作。看着这些不知道什么时候才能回完的信,我突 然发现,我似乎真的做了一件不得了的事…。

在MIT里其实常常能看到许多很惊人的点子,但可惜的是即使在MIT,大部分的东西也都停留在为研究而做的雏形阶段,研究人员虽然产出了论文,但如果没有对的人读到那些文章,很多好点子也不过是停留在纸上变成可回收的资源而已。

Sikuli的论文其实在去年九月就在ACM关于user interface中最顶尖的会议UIST上发表了,在当时还拿了Best Student Paper Award,但为什么一直到今天才突然爆发开来变成人们口中“革命性的新发明”呢?

说起来这还是得感谢MIT有自己的News office,一个记者刚好问了我导师最近有没有什么有趣的研究,于是sikuli这个字就从这篇报导散播开来。但除此之外,我也蛮庆幸之前自己决定要把 sikuli发布出去,而且导师也很支持我这么做,整学期都没问我“研究”上的进度。(发布程序跟研究本身没什么关系,有些教授对这些研究结果的实作是否 能实用也不太关心,甚至觉得做这些事是浪费时间。)

其实一般人可能很难想像,要把一个研究用的雏型打磨到能够公开让任何人用的程度,所花费的力气可是远超过写出最重要的核心功能。我花了几个星期研究怎么把 Java程序包成Mac上的.app,研究怎么把sikuli变成能够点两下就打开的document package,怎么把sikuli会用到的一大包dynamic libs包进.app中让使用者不用安装其他的相关函数库…。搞定Mac后,我又花了一阵子把Sikuli移植到Windows上,虽然上层是Java写 的很好解决,但有部分程序码是通过JNI连结到C++呼叫OS提供的API才能完成的。因为我一直都用Mac开发,所以这些东西本来都只有写Mac版的, 但为了要真正让多数人能用这个软件,只好跟导师要了一台PC装上Windows来完成这些相依平台的程序码。Windows并不是我熟悉的平台,除了国中 时玩过VB外,之后就几乎没在Windows上写过什么程序了。所以为了搞定Windows的移植,除了得速成学会一些Windows API外,还得搞定DLL+EXE的包装,最后再包成installer让人能一路按“下一步”就装完整个软件。虽然这些事情我都是第一次做,但还好没遇 到太多困难,即使每个礼拜都要花两三天写分布式算法的作业,剩下的时间也刚好够我处理完这些琐碎的工作。

完成Mac和Windows初步的包装后,我也一边开始做网站、API文件,也请跟我合作的Tom一起写了一些教学文章,顺便让实验室的同学们当一下测试的白老鼠。因为周围没什么人用Linux系统(真是有点出乎意料?),所以Linux版就暂时被我搁着没动。
后来大家都去放圣诞假期时,我趁着空闲做了一个demo影片放到youtube上,但因为我也还不急着释出public beta,所以也没跟其他人说我做了这个影片。

就在MIT News来採访的前几天,0xlab刚好有几个人突然写信问我有没有Linux版的sikuli。虽然不知道他们怎么发现的,但看到有人想用我也就有了劲 想把Linux版赶快完成。花了一天在我新要来的PC上装好ubuntu后(还包含一个小时在搞定这台电脑的无线网卡driver…。没想到到了2010 年我竟然还在做这种事情…),再修一修 Makefile后就包了一个功能不全的Linux版放到网站上。

有句话说“机会是留给准备好的人”。当sikuli被公诸于世的时候,之前做好的事情就突然就派上了用场。MIT News促成了这个好机会让sikuli这个很酷的想法脱离UI研究会议的小圈圈,进入世界上有网络的每个角落,这时我之前凭着一股热血就自顾自的作了这 么多的杂事,突然都有了它的意义。于是,在机会到来时,demo的影片加上能下载试用的软件让人们亲眼看到并且能把玩这个革命性的点子,结果就让 twitter上充满了一大片的“holy crap this is awesome(真TM绝了)!”(http://sikuli.csail.mit.edu)。

我一直梦想着要做些不一样的事情来改变世界,彻底发挥我的长处做出能够对世界产生巨大影响力的东西。还记得三年前我在申请MIT时,在SOP上大胆的写了 我的目标“I believe that programming environments should be smarter and more intuitive, and it is my goal to reinvent one that allows beginners to learn easily and adepts to be more productive.”,而三年后的今天,我非常兴奋我踏出了改变世界的第一步。


本文遵守Creative Commons协议,转载请注明原作者,并提供原文链接。
posted @ 2010-01-27 15:52  博文视点  阅读(440)  评论(0编辑  收藏  举报