Think Aaron

我这个博客是自己用 Python 框架 web.py 写的。右上角有个大图标提供 RSS 订阅。评论以及后台发布新文章都用 Markdown 格式。

这些东西都与一个人有关。最早的时候我开始用 web.py 来改写自己的个人网站,看到这个框架的作者是 Aaron Swartz,没有太在意。后来想给内容发布找一种合适方式,发现了 Markdown,看到 Aaron Swartz 竟然也有参与它的制定,于是开始看他的博客文章。多数文章写得篇幅很长,思维缜密,结构严谨,当时觉得很像一个满腹经纶的中年人写出来的。等到看到 Wikipedia 上 Aaron Swartz 的页面时,我吃了一惊,他竟然是 1986 年出生的,14 岁即已参与过 RSS 标准的制定!

就是这样才华横溢的一个人,刚刚在 2013 年 1 月 11 日结束了自己的生命,让人震惊、叹息。2010 年他在 MIT 下载 JSTOR 上的论文被起诉,我以为没什么,毕竟他有一定影响力,有不少更有影响力的人会帮助他。后来他又恢复了博客的写作以及其它社会活动,我错误地感觉已经没事了。就在 2012 年 11 月 1 日,他还在博客写了最后一篇文章。我本就对世界悲观,当时知道消息后,抑郁了有一个星期。自大学以后,我第一次这么长时间情绪低落。

许多人因以这种方式失去一个天才而悲痛。哈佛法学院的 Lawrence Lessig 教授十几年来和 Aaron 一起共事很多,除了悲痛,他在 Tumbler 个人主页上表达了对相关检举人及制度的强烈愤怒。适逢 Lawrence 被冠以 “Roy L. Furman Professor of Law and Leadership” 荣誉,chair lecture 定于 2 月 19 日。Aaron 死后他先请求重新安排日期,后来又决定不改日期,主题定为 “Aaron’s Law”.

以此为契机,为了限制 CFAA/SOPA 等议案,国会议员 Rep Zoe Lofgren 在 reddit (注:Aaron 也是这个 Alexa 全球排名一百多的网站的 founder 之一,web.py 是这期间的副产品) 上发布了 Aaron’s Law 的草案征集意见。后来又放出根据意见修改过的版本

Lawrence Lessig 教授同样主题的演讲回顾了 Aaron Swartz 年轻短暂的生命中让人钦佩的作为(11 分钟左右开始)——我上面提到的只是一些不值一提的,他有常人所不能及的抱负和理想,为了让所有人平等、简单地获取信息而倾尽心血奋斗、努力。尽管英年早逝,他所做的也已经比普通人一生能做的多太多了。Lawrence Lessig 称 Aaron为 prodigy,并且反称他为 mentor, “He taught me. He pushed me. He led me”. 演讲对事件的某些方面做了深入的分析,直指现有版权法律的荒唐之处。虽然没有整个事件的所有过程和细节,看看也对之有个大致的了解。

我把视频放到了国内网站上:

大概是 2002 年,Aaron Swartz 开玩笑似地发布了一篇文章 – If I get hit by a truck… 谁也没想过竟然有一天他真的突然离世。在 Democracy Now 的一个采访中,Lawrence Lessig 说, “he was impatient with us, and he was disappointed with us, with all of us, as we moved through this fight.” 其中他提到让人惋惜的是就在事发前几天,JSTOR 发邮件给他说将开放数据库中所有的文章给全世界任何人,但是他正在旅途中没有来得及发给 Aaron.

Lawrence Lessig 教授演讲最后说,”Think Aaron.” 我愧于没有能力想 Aaron Swartz 之所想,只能写一篇文章,让更多人知道他之所想。

Remember Aaron Swartz

让摩托罗拉 tn30 导航支持大容量 SD 卡,一机多图

去年买便携导航,鬼使神差买了个摩托罗拉的产品——tn30. 关于它的奇异之处,我当时的一篇日志也有介绍。现在更要命的是,灵图已经一年多不更新这个版本的地图了(直接导致我某次错误地冲上一条新开的高速走了好远),不知道这公司是不是做不下去了。买了个短命的导航,用了个短命的软件,就是这样。直到前阵子,我还对买它这件事后悔不已,并且在网上浏览一番之后,打算等这个导航彻底歇菜之后买个佳明。

不过又起了折腾的心思,尤其是发现这个导航仪的蓝牙功能是大部分低端导航不提供的,即使佳明也只在最贵的那个上面有。试用了一下蓝牙,偶尔开车的时候接个电话还是比较方便的。于是开始尝试安装其它的导航软件,要不然这个灵图迟早有一天把我导到臭水沟里。

尝试安装凯立德导航

凯立德算是国内应用比较广泛的导航了。按照以前折腾灵图的经验,弄一个新的SD卡,把凯立德复制到根目录,文件夹改名 MobileNavigator, 几个主要的程序、DLL文件分别改名为 MobileNavigator.exe, MobileNavigator.dll, MobileNavigatorSCH.dll,插入导航仪重启(长按8秒至指示灯闪烁彻底关机),就可以运行了。我看到灵图的配置文件里写的端口是4,于是尝试给凯立德也设置 “COMMPORT=COM4:”,结果不能搜星。最后看京东论坛里“哈里老爹”说他用的是端口7,最终在 NaviConfig.txt 中使用如下配置成功搜星:

COMMPORT=COM7:
BAUDRATE=4800

试了一下感觉灵图的界面、用户体验还是比凯立德好很多,就是地图老了……所以做产品,不是产品优秀就能站稳脚跟的。

大容量 SD 卡

京东上 tn30 的官方参数里介绍,它支持的最大 SD 卡容量是 4G。目前的导航软件加上数据轻易就超过2G,甚至3到4G,所以4G的 SD 卡也只能放一个导航。给导航数据“瘦身”的事也有不小风险,我懒得那样折腾。

所以我就一个SD卡放灵图,另一个放凯立德。这样很多问题,两个SD卡模样没区别,又不能写字,不好区分。每次想换导航,得关机,换卡,启动,搜星,很麻烦。最基本的,你还得到处找那个小小的SD卡!

看到“哈里老爹”网友说他的8G卡可以使用,所以我才动了“一机多图”的念头。手头有一张 Sandisk Class 4 的8G卡,试了试不能用。同事说是 FAT32 分区簇大小的问题,我看了一下我已经装上导航软件的两个4G的 (Class 6),一个簇大小是4KB,另一个是32KB,看来这并不是原因。正好同事有一张 Sandisk 16G Class 10 的卡,拿来把灵图复制上去,竟然能用!鉴于导航仪可能比较挑SD卡、分区格式,我分享一下,可以在苏宁购买,我没有自行分区,拆开直接用的。用 chkdsk 看了簇大小是32KB。

一机多图

在网上着了一个480 x 272的“一机五图”软件,复制到16G卡上,文件夹改名为 MobileNavigator, 可执行文件改名为 MobileNavigator.exe. 然后将灵图、凯立德的文件夹分别复制上来(它们的文件夹就不能再叫 MobileNavigator了,最好根据导航软件改名)修改 \MobileNavigator\Menu\Navi\Navi.ini 中的配置即可。

慢着!Navi.ini 中的原有配置认为SD卡的路径是 SDMMC,不过在摩托罗拉这款与众不同的导航里,SD卡的路径是 “Storage Card”,带空格。Navi.ini 的配置比较直观明了,不用介绍太多,折腾几次就知道界面上的图标、文字都可以修改,不过我就沿用它自带的图标了,方便。它自带了五种导航的图标,给它们分配了界面中间的位置。上面没有灵图,我就让它占了别的导航的位置。只要路径配置正确,重启后按导航图标即可进入此一机多图软件,然后点相应的图标即可进入刚配置好的导航软件。

这个一机多图程序还带了 ToWinCE.exe 这个进入 WinCE 系统的软件,以及任务管理器等实用小工具,只需调整 Navi.ini 中的路径即可使用。

使用一机多图的最大好处是,如果导航过程中需要换一个导航软件,不需要换卡!这是废话,呵呵。关键是切换导航软件后,不需重新搜星,马上就有GPS信号,很方便。


然后就进入了下一阶段的折腾——把一机五图引擎的五个导航图标填满!

想试一下 Mapbar 导航的,可惜装上后点图标就一直是个漏斗在转,可能版本有问题。后来成功装了个美行导航,模拟了一下能吵死人啊,走环路,过一个出口都要提醒一下靠左走,不知道调成简明模式后会不会好点。

简单比较了一下三个软件,还是觉得灵图的界面最舒服,包括操作方式、按钮的设计。

折腾完这些之后,发现这个破导航还挺好的,省去重新买东西的一笔钱。

最后列一下我成功使用的软硬件的链接:

PostgreSQL truncate 阻塞

使用 PostgreSQL 的某程序在一个临时表里存放验证数据,用过之后即 truncate 该表。可是今天下午突然许多 truncate 的进程都在那儿不动了。怀疑跟正在进行的 pg_dump 有关系,后来同事通过这个网页提供的查询语句,发现果然是 pg_dump 导致的。

pg_dump 似乎会给数据库里所有的表加一个 access share lock. 而 truncate 需要对所操作的表加一个 access exclusive lock,于是它就等啊等。可是对很大的数据库,pg_dump 可是一时半会做不完的。

发现这个问题以后,我临时把哪个程序里的 truncate 语句改成 delete from 让它可以继续进行它的工作。

同事不只一次告诉我,truncate 是 DDL,而 delete 是 DML.

truncate 一般很快,而 delete 可能很慢,即使不加条件。

truncate 完成后,省下的空间立即回收。而 delete 掉的行所占用的空间不会立即被回收,需要等 vacuum 的时候。

好在这些临时表一直数据很少,所以 truncate 和 delete 不会差别太大。

用 RVM 从下载好的 Ruby 源代码安装

今天用 RVM (Ruby Version Manager) 安装 Ruby 1.9.3,到了下载 Ruby 源代码的那一步就卡住了。自己上 Ruby 官方网站看,确实下载不下来,速度几乎是0,从公司换到家里的网络还是一样。

后来跑到 ~/.rvm/archives 里看了一下,发现正在下载的文件是 ruby-1.9.3-p286.tar.bz2. 于是跑到 Google 上找到一个 mirror,自己下载回来覆盖了 RVM 下载了一点点的那个文件,然后重新运行

rvm install 1.9.3

顺利安装完成。看来 RVM 会在 archives 目录里检查文件的 checksum,一致的话就不会重新下载了。我觉得加一个选项让人可以指定源代码文件安装比较好,不过人家国外应该不会出现我们这种情况吧。

最新乞丐版 $69 Kindle

[本文有特效无法在 RSS Reader 里展示,请查看原文]

新的 Kindle 阅读器发布,Paperwhite 版本要十月一日以后才开始 shipping. 而最低端的版本,Amazon 给它做了简单的升级,还降了 $10,就太划算了。尤其是对美国人来说,也就吃一顿好饭的钱。

主要的改变就是外观,基本上,全黑了,除去屏幕。Amazon 说翻页快了 15%,字体也进行了优化。翻页确实能感觉出来,不过字体我看不出来,更别提寒碜的中文字体了。

看起来 Paperwhite 非常受欢迎,刚看它的页面,因为预订量大,如果现在预订,shipping 要等到10月22日了(早些时候是10月1日)。但是正好给我机会理性地思考一下。我不需要在没有光的情况下读书,晚上的话有台灯。虽然至今没有体验过触摸屏的 Kindle,但是对于一个阅读器来说,作用应该也不大(可能查词典方便一点吧)。所以我就买了一个“乞丐版”的 Kindle,比 Paperwhite 省了 $50,快一半了。想我那个 Kindle 3G 花了 $189, 尽管有终身免费的上网,也几乎没有用过,所以嘛,理性思考是很重要的!

更新后的版本连外包装都是全黑色的:

P1000916

包装很简洁,原来 Kindle 3 时代的说明书小册子变成了一张黑纸

P1000917

电源插头也给省掉了,只有一根连接线。屏幕指示接好电源:

P1000920

有了多语言选择,其中没有汉语

P1000922

选择语言后,直接进入配置向导,需要连接无线网络。此时能体会到乞丐版的不足,因为没有键盘也没有触摸屏,靠方向键控制虚拟键盘太痛苦了,于是我就暂时没有联网。没有联网就没有广告,所以现在它跟 Without Special Offers 的版本是完全一样的……

从 Kindle 3 直接跳到这个版本,发现中文不用配置就完全可以显示了,就是字体较差。这下有了两个 Kindle,在家的时候两人不用抢了。

Minuteman Bikeway

本来就计划好今天骑车去玩,但是天气一直不确定。早上起来,偶尔能看到点蓝天,就决定执行计划,沿 Minuteman Bikeway 向北到尽头 Bedford. 这条路的名字,及它路过的 Lexington,都跟美国独立战争关系密切——还记得“莱克星顿的枪声”吧,呵呵。Minuteman 大致就是美国独立时候的“飞虎队”的叫法。

先说路,最早的路段修好快20年了,有的地方有凸起,但是大部分都有人在路面上标记出来了。车道比较宽,并排骑三辆车没问题。路上有人玩轮滑,有不少父母在后面拖个小车带着小孩。但是绝对没有机动车,也没电动自行车。偶尔 Bikeway 会穿过公路,都会有明显的 STOP 标志提醒。繁忙的公路有按钮可以自助请求信号灯,很快。没有信号灯的话,看见骑车的人在路边,一般汽车都会主动停下让路(这边除了闹市区都这样)。路上有好多地方提供直饮水。

这个 Bikeway 其实是铁路改造的,现在美国很少有铁路还在运作了,仅有的一些也主要是以观光为目的,比汽车慢、贵。美国又穷,修不起高铁,人们只好去买汽车。公共交通不发达,一家一个汽车还不够用,只好买一大堆。我住的酒店周围就至少有两条废弃的铁路,枕木、铁轨都在,就是长满了草。有个 Rails-to-Trails Conservancy,专门把全国各地的废弃铁路改造成小道 (trail),让人们去跑步、骑自行车健身。这明显是臃肿的政府机构,放咱中国,不用动员大家就积极主动地把铁轨回收,把枕木烧了,然后一人踩几脚,不就成 trail 了吗,鲁迅就是这么说的。

Minuteman Milestones 这里记载了一些重要的时间点,我回来才看到。最上面的图片就是莱克星顿的火车站(按介绍,美国独立战争就是在那个过道里开始的),现在下面的铁轨已经变成柏油的自行车道了。都怪老美,盖的房子都看不出年代,害我都没看出来这是个历史建筑,没拍个照片。

去 Watertown 一个叫 Farina’s 的店租了一辆自行车,价格是一天 $34,跟租汽车差不多了!这还是我找到的比较便宜的。公路车要 $60 以上吧。当然了,汽车还要付油钱,自行车只要人吃饱就行了。车子是捷安特的……我不知道具体型号,但是肯定比我家里那个好多了。之前的担心有所消除,店员会在交付前调一下自行车。

可惜我就是人都吃不饱的那一类。过了中午,bikeway 一路也看不到吃的。Farina’s 明天不开门,我得在5点之前骑回去还掉。车子又没有带锁,不好放。最终3点骑到 Cambridge 西边有一堆快餐店,我把车停在玻璃窗前吃了点东西。

安全回来,骑了总共50多公里,屁股疼。

下图是我的装备。买了个最便宜的包,$19。淘宝绝对19人民币以下搞定啊。

P1000855

一段路。上午一直晴朗,下午快3点的时候掉了几滴雨,衣服都没湿。

P1000885

最后是路线图。从 Watertown 到 Minuteman Bikeway 的起点比较费劲,看来还是有个能上网的手机比较靠谱。在 Google 地图上把 Bike path 图层打开,看人家到处都是啊。中国是自行车大国,可是没有自行车道!

View Larger Map

Chrome 独立安装文件(完整版)

Firefox 越来越不给力了,我自己很久以前就转到了 Chrome 阵营,但是家里的 Windows 笔记本还是 Firefox 为默认浏览器。

前几天老婆在淘宝上等着抢拍一件衣服,结果预定上架时间之后已经过了一个小时,页面上仍然显示“即将开始”。后来发现是 Firefox 的问题——不知道为什么,有的页面可以正常加载,但是有的页面就显示缓存的版本!我没有深究到底是什么原因造成了这个症状。

每次打开 Firefox,开始在地址栏输入,总是要假死至少半分钟才能恢复。关掉 Firefox,进程仍然一直在后台无法退出,重新打开的时候就会提示,只有在进程管理器里杀掉。

除了开发者,对普通用户而言,Firefox 给人的感觉变得甚至比 IE 还要臃肿、笨拙。该彻底摆脱它了。

不过今天想安装 Chrome 的时候遇到问题了——每次安装的时候,总是卡在“正在等待下载 Chrome”这里,不能再继续。可是 Chrome 主页上并没有提供独立安装文件的下载。

在网上找了一下,发现只需在 Chrome 主页的 URL 上加个参数 standalone=1,Google 就会将安装方式更改为下载完整版本。即此链接:

http://www.google.com/chrome/?standalone=1

天津护照办理流程(攻略)

在我朝,跟ZF打交道就跟探险似的(可是很少能感受到乐趣),大家得多贡献攻略,造福后来人。我今天就说说天津办理护照的流程。

一年多前,写了一篇日志记录在保定乡下老家办理护照的痛苦经历。最近,去天津办一些手续(也是跟ZF纠缠),顺路办护照,省得以后真要出去的时候麻烦。去之前就打电话咨询,问要不要“协查”,警察说户口迁入不满十年都要协查。我问要多久?他说不知道。问他根据经验呢?答曰——没经验,快的一两周就好了,慢的一两年都不行。你说得到这样的答复气人不气人,用血汗钱养着这帮孙子,让他办事的时候就尽给添麻烦!当时做计划就给办护照预留了不少时间。

不过到了天津之后,办理护照出奇地顺利——在遭遇不下五次拒载之后,苦尽甘来,遇上一位性格开朗的老师傅,听说我们要去火车站附近的出入境管理局,就推荐我们去很近的一个地方,说是新开的,人少。开始我们还不信,觉得师傅年纪这么大了会不会弄错。后来师傅提了好几次,说他不确定能不能办护照,但他客人说可以,于是我们就听了师傅的,起步价距离就到了。停车一看,长江道出入境受理处,没错,很开心,零钱不用找了!(第一次在国内给小费……)。

那时已经快十二点了,就怕人民公仆们累了饿了要吃饭休息。进去之后发现人真的很少,直接进去照相,领表,上二楼填表,让一个警察审核,然后在柜台办理,整个过程也就半个小时,大大出乎我的意料!下面详细说一下情况。

地点 – 天津现在应该有四个地方可以办理护照:市公安局出入境管理局、塘沽分局出入境接待大厅、南开区长江道以及河西区利民道出入境受理点。之前只知道那个出入境管理局,在网上看好像是要排老长队,不知道现在是什么情况。但是似乎好多出租车司机一听火车站就不去。

照相 – 电子照片的采集应该是包含在护照办理费用里的。他们照完给表的时候会问你带照片没有,没有的话交60大洋,买他们打印的照片贴在表格上,还有一张存照片的光盘!一般是稀里糊涂就上了套了——这些值60大洋?很明显这是中国特色经济,跟公权的关系造就私人的暴利。某公司可以拿这个出个面试题,问他们一年净利润是多少,偷税多少。不过大部分人也不缺这个钱,在这里花钱买省事,让少数人先富起来吧。

协查 – 没有遇到协查这一说。我在老家办的时候还要派出所证明我清白,天津不需要。

事由 – 我当时在乡下办理说因商务出国,人家还问我要了公司开的证明。反正在天津填的是去韩国旅游(照样本填的),无需“事由证明”。现在表格的名字也已经有原来的“因私出境申请”改成“护照申请”了,算是个小进步吧。

取件 – 选择特快专递,他会给你说两周收到。我们一周多一点就拿到了,效率不错。

总之护照办下来感觉天津还是个大地方,不像我老家那种落后地区。不过其他很多方面真有待改善。交通已经很差,下午三四点就开始堵。大街小巷太多,XX道,XX道,连出租车司机都不知道,地图上信息都不准,12580查到的信息也不对。

末了来个友情提醒,看到这儿的朋友们如果还没护照赶紧去办一个,尤其户口在偏远落后地区的。我一个刚毕业的哥们,老乡,说想去缅甸玩,问他情况,竟然户口刚迁回老家,麻烦大了……这东西,等你想用的时候就后悔没早办了。

骑行大运河森林公园未遂

今天下午骑车往通州去,想看看“大运河森林公园”。沿着京通快速的辅路走,竟然有一段路边还有这么宽阔的水面:

P1000729

后来看辅路比较堵,我就在沿河的小路骑了一段。这段路是防汛路,车比较少,灰尘也少,不过路况比较差,有点越野的感觉。往前走,这小路和京通辅路交汇。后面在八里桥和北苑地铁站中间发生了悲剧,后胎扎了个铆钉!第二次骑远路就出这种事了。其实之前路上我就想了几次,万一轮胎扎了怎么办。用快没电的手机打开地图,搜到附近有个捷安特店,距离3.3公里。推车步行过去,打电话才知道人家搬了,又步行差不多1公里,到了九棵树地铁站,终于换了个新内胎。问了问,大运河森林公园还有点距离,天色不早了,灰溜溜回家。

这就是罪魁祸首,长度差不多有手机那么宽了,不偏不倚从轮胎正中央扎了进去:

P1000731

我本以为带着这钉子还骑了几十米,肯定把内胎划得不成样子了。不过换下来之后发现也就一个眼,可以补补,以后出门带个备胎,哈哈:

P1000730

总起来说京通辅路还是比较好走的,自行车道很宽。偶尔有些车停着,有些车也从自行车道超车,但是情况比市里好多了。比较麻烦的是过五环的那一段,从西向东就绕圈,而且路况复杂,需要小心。从东向西似乎是根本没有正常的自行车道,立交桥下有一条黑咕隆咚的路,几个电三轮车主还在那儿乱停,坐着打牌。再往前,完全没有光让人看路了(汽车是进不来这个路的),只看到前面有亮光,知道方向。冷风吹过来——这是唯一的速度指示,这时就只能放慢速度,希望路上别有坑什么的,希望后面的车不要撞你。很恐怖,所以最好还是从从西向东的那条路逆行回去(路牌是这样指示非机动车的)。我现在也还是稀里糊涂的,有个示意图就好了。

骑车从劲松到香山

前阵子买了个入门级的山地车,捷安特欧野2.0,后来就张罗着和公司的同事们出去玩。最初定的是今天骑车去十三陵,查了一下地图,从国贸出发往返要150公里,对不常锻炼身体的我来说,强度太大了。于是后来改成了去香山。

提前几天就开始关注天气,最初的预报是周六日都下雨,当时估计去不了了。周四的时候天气预报突然改成周六日都是好天气,开始让人兴奋了。到了周五,又变成周六日下雨了,我们商定下雨的话就取消。

早上起来不想吃饭,就吃了一个小烧饼,出发了。带的东西有一个卡片相机,骑行手套,一瓶脉动,眼镜布,一件备用T恤。由于没有经验,车子的轮胎气都不够,虽然不会影响车子,但是阻力比较大,骑起来比较费力。

在大望路地铁附近跟两位住东边的同事汇合,然后沿长安街一路向西,杀向XXX广场。两个同事都经常骑车,骑得比较快,我刚开始还觉得可以追赶,用力蹬,消耗了不少体力。到西三环附近跟另一位同事汇合(这位倒是轻松啊),然后往香山走。

等到了香山脚下,腿已经基本没有力气了,稍微有个上坡,换到慢速档也坚持不了多远。最终有个同事沿防火道连骑带推上了山顶,我和另外两个大约只走了三分之一。

等了很久看见那同事下来了,原来他的碟刹因为长时间使用,温度过高,他碰了一下把指头都烫伤了,恐怖。后来用水擦了一下,跟我们一起下山。我的车是V刹,下山之后摸轮圈也发现烫得厉害,如果是从最高处一次骑下来,估计刹车就冒烟了!下山还是很爽的,累了半天,就为了那一会快乐……

之后骑到了西三环的香格里拉大酒店,附近的新疆餐馆用餐。吃完已经4点半了,我就靠一个烧饼坚持了一天。然后各奔东西。我还是沿长安街回来,一路不时有雨滴落到身上,我下意识地尽力提高速度,还好没有被雨淋。一整天也没心情(也没力气)掏出卡片机拍照。

感觉不锻炼的话,骑平路还可以,稍微有个长一点的上坡,就很消耗体力,更别说香山那样的坡度了。北京的空气是够差的,大部分时间我罩着鼻子,还是吸了一鼻子黑。

下面是今天的路线,除去上山大约往返70公里吧:

查看大图