让摩托罗拉 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公里吧:

查看大图

警惕 Chrome 的查看源代码 (View Page Source) 功能

前阵子解决一个问题的时候,差点以为是我们自己在 HTML 代码中输出的一段信息有问题,结果发现,Chrome 的 View Source Code 竟然会重新发送一个请求!

有史以来,所有的浏览器从来没有过这样天才的设计。大家都是老老实实,既然你让我显示源代码,那我就直接给你把正在看的这个页面的源代码显示出来。没有人想过竟然可以重新发起一个请求,去拿“纯洁的”源代码。这是革命性的!Chrome 你做到了!

早在2008年,就已经有人提出这个 bug – View source forces page reload. 中间有人将之标记过 Fixed,但是世界末日快来了,Chrome 的稳定版本已经飚到18了,市场份额已经远超 Firefox 了,实际上这个 bug 仍然存在。我的天啊,究竟是什么样的设计,导致解决这样一个问题这么难?

甚至还曾有开发者认为 View Source 就应该是这样的行为 (链接):

Yes, when you “view source”, you’re really opening a new tab that opens the page
again and displays the source rather than renders the page. Many web pages are
dynamic and modify their HTML content (eg. using JavaScript/XMLHttpRequest) so we
cannot display the current HTML – this is why a new request is made.

If you want to view the current state of a dynamic page, you should use the
inspector. “File icon -> Developer -> JavaScript console”

I don’t see how this is a security bug or a bug at all – the behavior is by design
closing as such.

注意里面加粗倾斜的那段话——因为很多网页是动态的,所以无法显示当前的 HTML,所以发送一个新的请求。这逻辑真够奇怪的!你是想“显示当前的 HTML”吗?你发送一个新的请求解决了这个问题吗?没有解决,那你何必要发一个新的请求?这就相当于脱了裤子,屁还是没有放出来。