分类目录归档:沉思录

开始使用markdown写日志

受《像极客一样写博客》这篇文章的影响,我也打算以后在github上写日志了。在wordpress上写日志差不多两年了,一直没有找到linux下好用的客户端。现在写文章一直都是用的Windows Live Writer,用起来不错,可惜只能在Windows下使用,而我因为工作原因,大部分时间都是在Linux上写代码。自从接触了markdown后,觉得是一个不错的选择,至少写博客足够了。使用github pages,写文章就像写代码,也不用担心文章丢失,提交记录随时可查。图片我托管到七牛云存储。

欢迎光临我的新空间:mogoweb.github.io. 同时祈祷github不要被墙。这个空间还会继续保留,两边的文章也会同步。

2012

按照惯例,每年到了年终,都会有一个年终总结。交给公司的年终总结,都有一套模板,写起来也有一定的套路。个人的总结呢,可以随意一点,但是没有上头催,所以一直没有下笔。转眼上班已经两个星期了,还是思考一下2012年该做点什么吧。

去年一年的时间都是做浏览器相关的产品。开始是做一款自主开发引擎的浏览器,其中很多地方借鉴了webkit。想想才几杆枪,就做浏览器引擎,当时的老板决心真够大的。这款浏览器最终做出了,但是只能浏览一些简单的网页。html解析引擎,是按照wml和xhtml的思路做的,先是选择了tinyxml进行html解析。但是现实中网页并没有写得很规范,为了解决这一问题,改用expat进行解析,在其中加入了很多异常处理。但没有超强的容错能力,没有办法从根本上解决问题,最终异常处理越来越多,代码质量也越来越差(补充一点,W3C后来尝试推行xhtml 2.0,但是没有成功,而浏览器的纠错能力越来越强,大家都接受了html的松散语法)。另外排版也是一大问题,我们根据手机的特点,选择了流式布局,对于一般的网页,效果还不错,但碰到网页中有绝对定位就傻眼了。当然最大的软肋是不支持Javascrpit,随着手机性能越来越强,Javascript的重要性越来越高。当时也有想法将Webkit的解析引入,同时加上Javascript支持,终因难度太大,人手不足只得作罢。最后这款浏览器就一直处于半成品状态,主要用途就是用来忽悠客户了。

再后来,离开了这家公司,加入新的公司。新的公司虽然主营业务和浏览器一点关系没有,但设备中需要做浏览器。在新公司里,开始做chromium的定制工作,主要是定制UI,增加遥控器操作的支持等。初次拿到chromium的源码,真是吓坏了,以前看webkit的源码就觉得够恐怖了,而chromium的源码比webkit多得多。不过chromium的代码结构非常好,注释也多。相对于html解析和排版,UI的东东还是简单很多。所以这段时间还是相对轻松很多。不过UI这种东西涉及到用户体验,其实也是相当深奥的一个领域。由于输入设备的限制,最然做了很多工作,最终用户体验还不是很好。进入到测试阶段,在UI上也纠缠了很久,不过最终还是按照设计师的要求改造了很多UI。在这中间,还改造了Android的系统浏览器,没有什么特别之处。也做过一段时间chromium浏览器的clutter移植,后因为有其它的安排,中途停掉了。

总结2011这一年,做了很多事情,但不够专精。不论是浏览器引擎,还是UI,都没有深入。在2012年,希望专注于如下几件事情:

1、掌握一门脚本语言python

在工作中,经常会做一些重复的劳动,总是想着有写一个工具的时间,还不如手工做掉算了。掌握一门脚本语言,编写各种小工具会更快捷一些,就没有借口可找了。

在chromium中,也有大量的python脚本,从系统构建,到自动化测试,用脚本达到出神入化的境界。

2、专注于浏览器的GPU加速

WebKit做得相当好了,V8也一直提速,但自己还没有那个实力去做Javascript提速。只有在GPU加速渲染方面还有潜力可挖,当然也不会那么容易,所以要坚持。

3、掌握chromium架构

chromium真的可以看作软件架构设计的典范,值得学习的东西很多,重点学习chromium的多进程模型,UI框架。

加油,2012。

(BTW,经常会觉得时间不够用,后来在网上看到一张图,明白原来大部分时间用到无意义的上网上了,和大家分享一下,具体出处已经忘记了,见谅)

time_wasted

Android 4.0登场

昨天得到消息,android 4.0源码已经开放下载了。在睡觉之前启动源码下载,悲剧的是,第二天早上一看,下载进程挂住了,什么也没有下载下来。看来想第一时间尝鲜是不可能的了。我比较感兴趣的是android 4.0中的浏览器,之前有传闻4.0将搭载chrome浏览器,从SDK上看怎么看也不像,看看源码就很清楚了。

Android 4.0源码开放下载,设备厂商估计是会欢呼雀跃了,以后产品宣传也多了一个卖点。烦恼的是程序员了,从事设备开发的程序员又要移植新的系统了。而对于应用软件开发人员而言,特别是Native应用软件开发人员,就更痛苦了。本来android的版本就够多的了,现在又需要多支持一个版本了。

话说转来,Android不停的更新,间接的创造了更多的就业机会,君不见现在满大街的android培训广告。

更新:

终于获得了Android 4.0的源码,看到external目录下存在一个chromium的目录,还以为传说中的Chromium for Android已经登场了呢。仔细一看,只编译了chromium中的网络库,再看external下的webkit目录,Makefile中多了一个选项CHROMIUM_HTTP_STACK,也就是说网络这一部分的Porting走的是chromium实现代码,而不是原来通过Java端的http库。更多的实现细节需要研读源码。