可以让回忆放肆一些。

中秋的晚上公司餐厅放电影,《邻家特工》和《越光宝盒》,本来打算看完《越光》就走,结果先放的是《特工》。也好,复习一下,好在这片子不错,再看也挺有意思。《越光》纯属烂片,但是如今看看这种不费脑子的东西也变得无可无不可。免费的零食很烘托气氛,唯一的惊喜是居然还有罐装啤酒。

回到住处的当夜就发布了Dumperor。其实这个东西很早就开始做了,起初的目的是为了判断数据库脚本从SQL Server迁移到Oracle和MySQL是否成功。单纯的迁移只能保证修改后的脚本在这两个数据库中执行不会报错,但究竟是不是该执行的东西都成功执行了,一般很难判断,尤其是那帮家伙总是在发版前一两天才告诉我要迁移脚本,那么多不规范的语句,能保证不报错就已经不错了,遑论没有遗漏。所以就著手做一个数据库表结构和数据的导出工具,这样只需用diff工具比较标准数据库和测试数据库导出的脚本就可以了。

从一开始我就决定不使用公司产品的一行代码。其实做这个东西最大的麻烦不是来自来自于如何查询不同的数据库的表结构,而是数据库抽象层。如果要白手起家搞个抽象层的话,我想可能代码量比Dumperor本身都大,于是选择了Yii框架。后来在Dumperor基本成型时又觉得为了仅仅使用最基本的数据库查询功能就捆绑这么大一个框架,有点搞笑,谢天谢地,我终于花时间学了PDO。

中秋节放假的第二天,开始读Google Code上关于Chrome扩展开发的官方文档。这事源于本尊被另一个Chrome扩展作者无视了。

一直强迫自己喜欢上Firefox,但都败了。本来对Opera充满希望,但是从10.0起它带给我的除了失望就是更多的失望,这个东西的发展就像它的国家的位置一样怪异,你永远不能以常人的思维去臆测Opera的开发者,他们就像一群母系氏族社会的娘们儿一样整天跟著感觉走。

于是不知道什么时候我就开始经常用Chrome了,前段时间开始用一个扩展辅助MLDonkey下载。这个东西会在工具栏里添加一个图标,唯一的作用就是打开选项设置页面设置那个也许这辈子都只需要设置一次的MLDonkey的URL地址。于是我给那个扩展的作者写了封邮件,那家伙居然到现在都没有回复。

所以本尊决定无视他了。太祖武皇帝的那句丰衣足食的圣谕真是至理名言,读完文档我就发现这个扩展完全应该用Chrome的Page Action取代Browser Action,简单地说就是当且仅当本页面中包含有可下载的资源时才在地址栏中显示一个图标,而不应该总是在工具栏占用一个图标的位置。

随后要做的就是用AJAX请求取代弹出新窗口的方式添加下载任务,我嫌每次添加一个下载任务后都要关闭一个弹出窗口太麻烦。我的目标是用AJAX请求将要下载的任务在后台传递给MLDonkey,并用Chrome的Desktop Notification功能弹出桌面提示对话框显示结果状态。这样很优雅。

但是实际去做的时候问题来了,虽然Chrome本身允许扩展使用跨域的AJAX,但是至少在和MLDonkey进行通讯时,无论成功与否,得到的返回信息都是空的,状态码也都是0。这个问题浪费了我几乎一整天的时间,最终我决定用AJAX的请求响应时间来判断失败或成功,因为一次AJAX请求响应过程在MLDonkey没启动的时候耗费的时间一般会比正在运行时要长。这就要求每个用户都要根据自己的情况设定合适的超时时间。为了避免麻烦,最后还是实现了通过弹窗添加下载任务的模式,毕竟这个东西总是可靠的。

要发布的时候发现如今在Chrome Extension Gallery中发布扩展居然要收费了,虽然只是一次性的。最后花了八两银子注册了Google Checkout账户,又付了五刀美帝币,才把DonkeyBuddy传上去。发布个免费扩展还得倒贴,本尊也太背了吧。

节后收到了Dell sk8115键盘、HP百灵无线鼠标和Nokia BH-105蓝牙耳机,sk8115是用来让我的纤纤玉手撒野的,百灵鼠是用来接替即将退役的雷柏7100的,而BH-105和我的小七搭配得天衣无缝。

很久没有安静地整理一下头绪了,感谢我那价值四十两银子的Dell sk8115,它让我显得如此的语无伦次。