中国人习惯上将春节作为一年的开始,参加完公司的年会,看着办公室越来越冷清,发现2013年已经悄然过去一个月了。2012年和往年一样的平淡,虽然传说中的世界末日让大家喧闹了一阵子,最终还是证明再神奇的预言一样不靠谱,就如同中国的“有关”专家一样。静下来回顾我的2012,有收获、有失望,也有一点希望。
工作篇
2012年主要做了两件事情,上半年将WebKit移植到COS,在此基础上做了一款浏览器,下半年的主要工作是将chromium移植到COS,并基于Content API开发浏览器产品。
COS是China OS的简称,是一种高仿Android系统,自然的,在做WebKit移植时,主要参考了WebKit Android移植,将Java代码重新用C++实现。因为有成熟的参考实现,所以做WebKit COS移植并没有很大的挑战。让人大跌眼镜的是,Android 4.0.3的WebKit竟然存在很多BUG,到了项目的CC/FC阶段,为了修复这些BUG,大费了一番精力,到最后仍然遗留了几个BUG。有时在心里嘀咕,难道我们产品的发布标准比google的还高?
从六、七月开始,就开始规划浏览器2.0的开发,考虑到我们还要做Web Runtime,当时的备选方案有B2G(现改名为firefox OS)和chromium。B2G天然的就是Web Runtime,如果综合考虑浏览器和Web Runtime的开发要求,B2G应该是最优选择。但考虑到chromium得到google这棵大树的支持,chromium不论从活跃程度(这一点在后面的开发过程中深有体会),还是性能方面,都更胜一筹。最终我们还是选择了chromium。
老实说,启动chromium移植工作,当时心里并没有底,虽然说当时chrome for android已经发布,但并没有开源。而chromium开始有android的移植代码,但非常不完整,开始只有一些单元测试程序,后来逐步加入了ContentShell和chromium testshell。当时也经过分析,google会逐步放出android的移植代码,其次,chromium linux版本代码非常完整,最坏的情况我们可以参照linux的移植做COS的移植。就这样,Browser 2.0项目启动了。在移植过程中,升级过三次chromium code base,随着加入的COS移植代码越来越多,升级就越来越困难。因为chromium的代码更新速度太快,代码经常有很大的变化,而COS的移植代码又无法upstream到chromium代码库,最后我们将代码定格在24.0.1312.0。
非常高兴的是,经过团队的努力,Browser 2.0终于进入了beta阶段,浏览器的功能均已实现,还加入了夜间模式/阅读模式/prerender/safe browsing等特性,各项性能指标超过Browser 1.0,就是稳定性稍差,这也是2013年需要继续努力的方向。
翻了一下2012年的计划,惭愧的是,两个目标没有达到:掌握一门脚本语言python和专注于浏览器的GPU加速。
关于python语言,找了本书籍学习了一下,掌握了一些基础知识。chromium中有很多的python脚本,可以看懂,也知道如何修改,但对python语言仍然只懂些皮毛,依葫芦画瓢还可以,单独写一个程序就不行了,算不上掌握了python语言。
chromium研究方面,本想专注于GPU加速这块的技术,但精力主要花在带团队上了,研究也主要集中于平台移植方面了。好在团队中的能人也不少,把一些关键的渲染问题都解决了。
生活篇
仍然保留着每年出门旅行的传统,今年选择的目的地是三亚,这也是第二次去三亚了。这次没有去玩什么景点,一直呆在酒店,充分享受了一回阳光/沙滩/海浪。这也是我此生第一次住五星级宾馆,体会了一回趟在床上看海的感觉。在这里身心得到了彻底的放松,不用再考虑schedule、bug。但快乐总是短暂的,几天之后,一切又回到现实中了。
短途的旅行也有两次,一次去天柱山,一次去洪湖。印象比较深刻的是去洪湖,顶着炎炎烈日去采莲蓬,却发现那里的莲蓬已经被一波又一波的人扫荡的一干二净,最后只得在市场上买了几斤聊以自慰。
因为买了年票,东湖风景区去的比较多,樱花节、荷花节等都去凑了一下热闹。各种农家乐,比如摘草莓、摘桔子等活动,也偶有参与。
打着研究的旗号,今年入手了iphone5、ipad4、JBL ipod音箱、lenovo notebook、lenovo手机、华硕上网本等数码产品,加上年会上抽到的HTC Flyer,算的上是丰收之年。其实更眼谗的是nexus 7、nexus 4,但我本人非常抵触水货。为了在旅游中能拍出好些的照片,入手了入门级单反nikon D3100,也没有研究操作,每次都是玩自动档。
平时锻炼机会比较少,除了公司组织羽毛球活动,基本上就没有锻炼了,考虑到身体是革命的本钱,入手了新坐骑:Ouyama M300,每天就踩着它上下班(当然无法风雨无阻)。令人烦恼的是武汉的空气,每天不知道要吸入多少灰尘,也不知道带上口罩有没有一点效果。
业余篇
在开展chromium for COS的移植工作,参考的比较多的是chromium for android代码,因此萌生了开发一款基于chromium的android浏览器的想法。开始考虑以开源的形式,但考虑到我的业余时间并不多,不知道能坚持到何时,也不希望像大多数开源项目那样做一个半拉子工程。二来考虑到保密等问题,一般来说做硬件的企业对于保密都是非常重视的,我无法确定这样做是否合法,也没有钱去请一位专业人士为我分析其中的风险。最后将代码以私有项目的形式托管在bitbucket上。现在mogo浏览器仅实现了基本的浏览功能,后期考虑加入chrome extensions/WebGL的支持。
展望2013
要做的工作
1. 让Browser 2.0更加稳定
2. Browser 2.0性能优化
要去的地方
今年的目的地是西藏,希望感受不一样的风土人情。
武汉今年弄了个旅游年票,所以武汉周边的风景区,比如木兰山、木兰湖等少不了要去玩一玩了。
要读的书
技术类:《深入理解Android》、《项目管理修炼之道》、《软件调试的艺术》
文史类:《中国古代哲学史》(胡适)、《平凡的世界》、《少年派的奇幻漂流》、《鲁宾孙历险记》、《福尔摩斯探案集》
摄影类:《DSLR数码单反摄影圣经》(I、II)、《Photoshop CS5数码照片专业处理技法》
其它类:《高效能人士的七个习惯》、《我编程,我快乐:程序员职业规划之道》、《30年后,你拿什么养活自己》
要研究的技术
1. chromium extensions
2. chromium GPU rendering