七月 29, 2008

Convert video for mobile device with mencoder

在同事的帮助下,学会了两条命令,用mencoder为我的Nokia N800和blackberry 8320转换视频格式。mencoder是mplayer的一个副产品,凡是能用mplayer播放的视频,就能用mencoder转换。

为Nokia N800转换视频的命令:

$ mencoder -sub 1.srt -font /usr/share/fonts/truetype/arphic/gbsn00lp.ttf 1.avi -subcp cp936 -subfont-text-scale 3 -o 2.avi -vf-add scale=400:240 -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=240 -ffourcc DX50 -oac mp3lame -lameopts vol=10

为blackberry 8320转换视频的命令:

$ mencoder 1.avi -o 2.avi -vf-add scale=320:240 -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=600 -oac mp3lame -lameopts vol=10

七月 28, 2008

My blackberry story

上周四收到快递送来的blackberry 8320,开始了我的黑莓时代。

说起黑莓,和我还真有那么一点渊源。最开始还是在Intel的时候,Intel与RIM签了1亿美元的订单,开始使用我们的部件和编译器。当初还想着1亿美元总够我们这些人吃一阵子的,没想到被卖给Marvell,RIM虽说一百个不乐意,也没法子,只好继续使用我们的产品。像新一代的83和88系列,应该就包含我们的硬件,其中的部分程序,就是用我参与开发的编译器编译出来的。

刚开始使用黑莓很不习惯,跟我的Moto E398很不一样,经过几天的高强度试用,现在熟练多了,还发现了一些贴心的小功能。当然,不符合中国人操作习惯的地方也有,只是没有缺点的产品是不存在的,关键还是个人喜好。我选择手机的标准就比较庸俗,要么大屏幕触摸屏,要么全键盘。

我前前后后一共用过一个小灵通和三个手机,8320是唯一超过2千元的,算是赶个时髦,除此之外,我还有一个Nokia N800,这里有几张图,大家可以比较一下大小,反正我拿到8320的时候,感觉比我想象的要小的多。点击下图可以看到更多照片。

数码设备

七月 17, 2008

Tomorrow never dies

仿彿又回到了2006年,流言纷飞,人心思动。

我们组向来十分稳定,居然在今年上半年有2人离职,虽说各有各的原因,但是对其他人的震动还是不可忽视的。自从年初停了前一个产品,兵分两路开始两个新产品以来,工作中一直弥漫着一种不正常的气氛,就好像我在情绪低潮时的那种狂躁的感觉,这一次却是以一种集体的形式爆发出来。

俗话说“人比人得死,货比货得扔”。如今才知道,原来我们前一个产品的代码质量还是相当不错的,即使我们曾对它有这样那样的不满;原来我们前一个产品的客户是如此的专业,尽管他们也提过不少苛刻的需求。说句心里话,我们组接了一个烂摊子,想知道有多烂吗?一位刚刚离职的同事,在离职前花了近两个月时间看代码,居然发现了十多个bug。请注意,他只是坐在那里用眼睛盯着屏幕,甚至都没有编译、更没有测试,这在我们前一个产品上绝对是不可想象的。

更不可想象的是,我们居然被要求放弃在高质量的代码上做开发,转而去收拾一个烂摊子。当然了,不是每个人都觉得它烂,那可是从Intel买来的啊?!想必是个宝贝吧,毕竟是花了不少人力,开发了几年时光啊!

在硬件公司(无论是Intel还是Marvell)里开发软件真得很辛苦,在一个人人都用git的年代,我们还在用ClearCase。管中窥豹,可见一斑。外行指挥内行,拍脑袋做决定的现象屡见不鲜。想当年在Intel的时候不是也有过Zero Bug这样轰轰烈烈的、自上而下的运动嘛!

眼看在Marvell的两年时间就要到了,恐怕那时会有更多的变动吧。山雨欲来风满楼啊!

七月 16, 2008

Skip big attachment

用offlineimap备份gmail邮件时碰到一个问题,我有两个很大的邮件,里面是一些照片,大概在16M左右,offlineimap在下载的时候会崩溃,然后打印一堆backtrace。

我一不懂python二不懂imap,更没读过offlineimap的源代码,但还是仗着胆子改了改,让offlineimap在同步的时候忽略太大(10M)的邮件。有同样需求的可以参见我的offlineimap patch to skip big attachment,点击wiki页面上的链接以下载patch,这个patch是用git format-patch生成的。

七月 09, 2008

The third dell machine

第三次买Dell台式机,一时没想开,选了19吋宽屏显示器,没有升级到22吋的,结果发现既不能调节高度,也没有额外的USB口。上Dell的网站查了一下,多数显示器都不能调节高度,除了Ultra Sharp系列,但是在台式机配置里面基本看不到。

另一个弱项是只有4个USB口,且都在机箱后面,其中3个已经用掉,分别是鼠标、键盘和音箱。

优点是噪声很小,不仔细听根本听不到,比前面买的都要安静。

唯一的遗憾是这台电脑不是买给自己用的。

七月 03, 2008

Are these exceptions same thing?

Exception在C++/Java世界里似乎是个很不受欢迎的东西,没有认真去读这篇Why Exceptions Suck,只是感到很奇怪,在Perl和Lisp里面应用很广泛啊?!难道它们在理念上不是类似的吗?!

七月 02, 2008

machine learning based research compiler

将机器学习引入编译领域是一个很令人兴奋的消息,然而更令人激动的是,你可以这样做,而无需自己写一个编译器。

Milepost是一个基于GCC的研究项目,它利用机器学习可以在短时间内将编译器的优化能力提升到一个新的层次。

Within one month, Milepost was able to improve the performance of a state-of-the-art complier by 10 percent -- something that would normally take several years to accomplish.

如果该研究成果获得实际应用,那么像我这样的编译器程序员很可能将失业,不再是“机器吃人”,而是“程序吃人”。

越来越厌倦开发商业软件,继续下去,注定要被某种程序吃掉。很羡慕做这个项目的那些人,如果他们的研究成功了,那么他们的成果可以被千千万万的程序员利用,而做到这些,(相对来说)只需要很少的编译知识,更不用自己去实现一个编译器;即使他们的研究不能得到实际应用,他们也没有把时间浪费在一些不相关的、或者不感兴趣的事情上面。

要不怎么人常说:“要做大事,必须要学会借助他人的力量”。一个人的力量是非常有限的,七八条枪就想维护两三套SDK,还想做的好,让人家都来用,简直是痴人说梦。不拥抱开源,只有死路一条。

程序员的黄金时光,就像女人的青春,是浪费不起的,不要让他们做垃圾项目的殉葬品。