2003年10月8日,国庆节后的第一个工作日,我来Sun中国工程研究院的北京国际化中心报到。我至今仍然十分感激当时的老板Scott,记得当初他面试我的时候,问我如果加入Sun有什么职业上的规划,我回答说“听闻Sun公司内部有transfer制度,员工可以在工作一定时间之后选择其他方向发展,如果有机会,我希望一两年后能transfer到浏览器组去做开发”。很感谢Scott,在听到我这么“二”的回答之后,还是给了我机会。
到Sun之后,第一个项目是接手Evolution的本地化和国际化,作为Evolution l10n/i18n项目的central engineer,要参与各种的项目会议,这对我来说的确是一个很大的挑战。我当初英文很差(当然现在也不好),很不习惯在电话里听别人说英文,口语的表达能力也很差。着实适应了一段时间。l10n/i18n的bug fixes有的可以很简单,有的则需要深入到程序内部,特别是有很多和输入、输出、DnD相关的问题,通常都很棘手。后来工作范围也扩展到了gnome上的l10n/i18n。为了管理测试用例和记录测试结果,学用Struts写了套很简陋的测试用例管理系统,不过因为其他site已经有同事写了一套类似的系统,而遭废弃。
04年6月份,有机会和同事(Gavin)到美国rotation两个月。我第一次坐飞机就是10多个小时的长途飞行,结果到了旧金山后发现无人接机。后来发现是同事把时差搞错了,告诉美国同事的接机时间,是当地的第二天。我们只好自己准备摸到公司租的公寓去。一路上先是坐Bart,然后坐Caltrain,好像当天Caltrain还因为是什么节日而免费,然后坐light-rail,最后坐bus,终于到了公寓附近。然后给国内的同事打电话,争取联系到接机的同事,恰好这位同事周末在单位加班,否则我们只有去办公室睡沙发了。我和Gavin都是穷苦孩子,过的很节省,都是自己做饭。一天两顿饭,晚上做好的菜,拨出一半留着明天中午带饭吃。两个月1000美元的补助(房租是公司付的),我买了100多美元的书,100多美元的化妆品(给老婆的),还老人家带了若干维生素,最后回国的时候,还剩了80美元的现金。美国的同事打趣说,500美元一个月的补助还是多了…
那段时间,我的同事张磊博士在独立开发一个基于统计语言模型的输入法,也就是今天的SunPinyin。我一下子就着了迷,找了很多NLP相关的论文和书来看。憧憬着有一天能够投入到这个输入法的开发中。后来,因为要弄一些自动测试的东西,又学了些shell脚本,还学了些python,以及pyrex,给python写扩展。业余时间,也翻译(或合译)了一些书,包括《Struts KickStart》,《Mastering JavaServer Faces》,《Agile Java》,《Programming Ruby》等一些技术书籍,对基于Web的企业应用开发也很有兴趣。我的一个最大的缺点就是兴趣太广,泛而不精。有时我很苦恼,有时又乐在其中,没办法了…
后来,Sun逐步削减了在JDS-Linux上的投入,将JDS上的一些开发都转移到Solaris上。我们和日本的一些同事,要负责将IIIMF的新版本(R12),从linux移植回solaris上。我还负责了简体中文、繁体中文、以及欧洲compose输入法的维护工作。这期间还代表公司参与了亚洲输入法标准的讨论和制定工作,结识了CJK许多输入法的开发者,例如James Su、Huang Peng、Wu Peng等等。我为日系和中系两路人马的沟通和交流做了一点点贡献。因为日本方面的主要负责人,Hideki Hiura,曾经是我们国际化部门的资深架构师,他是XIM协议的提出者之一,openi18n.org社区的奠基者。不幸的是,前不久得到他的噩耗,因病逝世了:( 同志们都要注意身体啊…
这个标准工作组最后同意开发一个全新的输入法平台,即imbus。但是由于种种原因,始终停滞不前。后来,我和Huang Peng一起提出了用python+dbus实现输入法平台的初步构想,也就是今天的iBus。很遗憾,我只是提了一个构想,贡献过一些很high-level的design,并没有贡献过什么代码。
后来,张磊同学去我们的宿敌M$做Bing去了
便将SunPinyin的开发和维护工作转交给了我。随着OpenSolaris的开源计划,SunPinyin也一并以CDDL协议开放给了社区。为了吸引更多的开发者加入我们,我写了一系列的blog,介绍SunPinyin内部的实现细节。我的blog也因而经常出现在blogs.sun.com访问量的前60名(尾部)。也因为在博客上的交流,结识了tchaik0v同学。他很热心的帮助我们将SunPinyin从IIIMF移植到了SCIM平台上,现在仍然是SunPinyin社区中最主力的开发人员之一。为了让Linux各发行版能更好的接纳SunPinyin,我又建议和推动了将SunPinyin改为CDDL+LGPLv2的双授权协议(这一协议也沿用至今)。
后来迷上了Apple,买了台MBP。MacOS自带的拼音输入法着实很难用。QIM是收费软件,FIT虽然免费,但也不是很满意,就想能不能把SunPinyin移植到Mac上。随着Leopard的发布,基于IMKit框架开发输入法变得比较轻便和容易了。我花了四天三晚,照着苹果官方的例子,对着obj-c/cocoa的简明教程,将SunPinyin初步移植到了Leopard上。很感谢我的老板,允许我干这么一件看起来和Sun的业务毫无关系的事情。实际上,我们的这个移植还是非常划算的。Mac的用户都是一群完美主义者,给我们提了大量的意见和建议,极大地鞭策和促进了SunPinyin的继续发展。我也因此结识了jjgod、Lin Zheming、chumsdock等许多好朋友。
因为SunPinyin-1.0架构上的一些局限,要实现一些新特性很困难,因此我就开始了2.0版本的开发。在开发过程中,也把同事Xue Wei给involve进来,帮助我实现了双拼切分和用户词典的功能。直到这时,我仍然时不时地需要去fix一些IIIMF的bug;有时还要做很多RE(Releasing Engineer)的工作;还有其他一些小的项目。这些琐碎的工作有时真得让我感到很沮丧。后来同事帮我做了一个统计,我在Sun的这近6年时间里,周均要fix 1.5个bug,大概是我们北京国际化中心这边入职时间相当的工程师里,最多的一个。
08年的金融危机,成了压在Sun身上的最后一根稻草。Sun被Oracle以74亿美金收购了。一轮又一轮的裁员,部门里的人事和结构的不断变更,HR的一些“作为”,以及对并购后工作方向上的不确定性,让我渐渐有了离开的念头。后来,汤森路透这边有一个机会,是用C++开发高并发的金融应用。我对并发编程一直很有兴趣,虽然很犹豫,最后还是接受了offer。我的老板和二线老板都希望我能留下来,至少等收购完成看一看再说。我的老板们对我都很nice,一直很支持我,如果还没有签offer,我想我真的会选择留下来…
无论从哪方面讲,Sun都是一家伟大的公司,公司的文化非常宽松和开放,给员工的自由度非常大,也非常鼓励员工的创新。我们部门可以全周在家办公,只需要周四到单位碰个面;不定期的有knowledge sharing的session,这个session可以讲任何大家有兴趣的topic,甚至包括摄影、装修、理财等和工作毫无关系的内容。这些都让我们部门成为一个充满家庭般温暖的、紧密团结的大家庭。如果不是因为收购的问题,我真的希望自己能在Sun做到退休…
2009年8月20日,在美国政府批准Oracle收购案的前一天,我从公司离职了。而到今天为止,Sun中国工程研究院还没有合并到Oracle中国研发部门。我所在的那个组,曾经10来个人的team,走得只剩下两个人了…
在Sun的近6年岁月里,我获益良多,这是我从业以来最开心的日子,我将永远铭记在心…
Recent Comments