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人民币以下搞定啊。 一段路。上午一直晴朗,下午快3点的时候掉了几滴雨,衣服都没湿。 最后是路线图。从 Watertown 到 Minuteman Bikeway 的起点比较费劲,看来还是有个能上网的手机比较靠谱。在 Google 地图上把 Bike path 图层打开,看人家到处都是啊。中国是自行车大国,可是没有自行车道! View Larger Map

September 9, 2012 · 1 min · qingbo

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

July 28, 2012 · 1 min · qingbo

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

在我朝,跟ZF打交道就跟探险似的(可是很少能感受到乐趣),大家得多贡献攻略,造福后来人。我今天就说说天津办理护照的流程。 一年多前,写了一篇日志记录在保定乡下老家办理护照的痛苦经历。最近,去天津办一些手续(也是跟ZF纠缠),顺路办护照,省得以后真要出去的时候麻烦。去之前就打电话咨询,问要不要“协查”,警察说户口迁入不满十年都要协查。我问要多久?他说不知道。问他根据经验呢?答曰——没经验,快的一两周就好了,慢的一两年都不行。你说得到这样的答复气人不气人,用血汗钱养着这帮孙子,让他办事的时候就尽给添麻烦!当时做计划就给办护照预留了不少时间。 不过到了天津之后,办理护照出奇地顺利——在遭遇不下五次拒载之后,苦尽甘来,遇上一位性格开朗的老师傅,听说我们要去火车站附近的出入境管理局,就推荐我们去很近的一个地方,说是新开的,人少。开始我们还不信,觉得师傅年纪这么大了会不会弄错。后来师傅提了好几次,说他不确定能不能办护照,但他客人说可以,于是我们就听了师傅的,起步价距离就到了。停车一看,长江道出入境受理处,没错,很开心,零钱不用找了!(第一次在国内给小费……)。 那时已经快十二点了,就怕人民公仆们累了饿了要吃饭休息。进去之后发现人真的很少,直接进去照相,领表,上二楼填表,让一个警察审核,然后在柜台办理,整个过程也就半个小时,大大出乎我的意料!下面详细说一下情况。 地点 – 天津现在应该有四个地方可以办理护照:市公安局出入境管理局、塘沽分局出入境接待大厅、南开区长江道以及河西区利民道出入境受理点。之前只知道那个出入境管理局,在网上看好像是要排老长队,不知道现在是什么情况。但是似乎好多出租车司机一听火车站就不去。 照相 – 电子照片的采集应该是包含在护照办理费用里的。他们照完给表的时候会问你带照片没有,没有的话交60大洋,买他们打印的照片贴在表格上,还有一张存照片的光盘!一般是稀里糊涂就上了套了——这些值60大洋?很明显这是中国特色经济,跟公权的关系造就私人的暴利。某公司可以拿这个出个面试题,问他们一年净利润是多少,偷税多少。不过大部分人也不缺这个钱,在这里花钱买省事,让少数人先富起来吧。 协查 – 没有遇到协查这一说。我在老家办的时候还要派出所证明我清白,天津不需要。 事由 – 我当时在乡下办理说因商务出国,人家还问我要了公司开的证明。反正在天津填的是去韩国旅游(照样本填的),无需“事由证明”。现在表格的名字也已经有原来的“因私出境申请”改成“护照申请”了,算是个小进步吧。 取件 – 选择特快专递,他会给你说两周收到。我们一周多一点就拿到了,效率不错。 总之护照办下来感觉天津还是个大地方,不像我老家那种落后地区。不过其他很多方面真有待改善。交通已经很差,下午三四点就开始堵。大街小巷太多,XX道,XX道,连出租车司机都不知道,地图上信息都不准,12580查到的信息也不对。 末了来个友情提醒,看到这儿的朋友们如果还没护照赶紧去办一个,尤其户口在偏远落后地区的。我一个刚毕业的哥们,老乡,说想去缅甸玩,问他情况,竟然户口刚迁回老家,麻烦大了……这东西,等你想用的时候就后悔没早办了。

July 4, 2012 · 1 min · qingbo

骑行大运河森林公园未遂

今天下午骑车往通州去,想看看“大运河森林公园”。沿着京通快速的辅路走,竟然有一段路边还有这么宽阔的水面: 后来看辅路比较堵,我就在沿河的小路骑了一段。这段路是防汛路,车比较少,灰尘也少,不过路况比较差,有点越野的感觉。往前走,这小路和京通辅路交汇。后面在八里桥和北苑地铁站中间发生了悲剧,后胎扎了个铆钉!第二次骑远路就出这种事了。其实之前路上我就想了几次,万一轮胎扎了怎么办。用快没电的手机打开地图,搜到附近有个捷安特店,距离3.3公里。推车步行过去,打电话才知道人家搬了,又步行差不多1公里,到了九棵树地铁站,终于换了个新内胎。问了问,大运河森林公园还有点距离,天色不早了,灰溜溜回家。 这就是罪魁祸首,长度差不多有手机那么宽了,不偏不倚从轮胎正中央扎了进去: 我本以为带着这钉子还骑了几十米,肯定把内胎划得不成样子了。不过换下来之后发现也就一个眼,可以补补,以后出门带个备胎,哈哈: 总起来说京通辅路还是比较好走的,自行车道很宽。偶尔有些车停着,有些车也从自行车道超车,但是情况比市里好多了。比较麻烦的是过五环的那一段,从西向东就绕圈,而且路况复杂,需要小心。从东向西似乎是根本没有正常的自行车道,立交桥下有一条黑咕隆咚的路,几个电三轮车主还在那儿乱停,坐着打牌。再往前,完全没有光让人看路了(汽车是进不来这个路的),只看到前面有亮光,知道方向。冷风吹过来——这是唯一的速度指示,这时就只能放慢速度,希望路上别有坑什么的,希望后面的车不要撞你。很恐怖,所以最好还是从从西向东的那条路逆行回去(路牌是这样指示非机动车的)。我现在也还是稀里糊涂的,有个示意图就好了。

May 27, 2012 · 1 min · qingbo

骑车从劲松到香山

前阵子买了个入门级的山地车,捷安特欧野2.0,后来就张罗着和公司的同事们出去玩。最初定的是今天骑车去十三陵,查了一下地图,从国贸出发往返要150公里,对不常锻炼身体的我来说,强度太大了。于是后来改成了去香山。 提前几天就开始关注天气,最初的预报是周六日都下雨,当时估计去不了了。周四的时候天气预报突然改成周六日都是好天气,开始让人兴奋了。到了周五,又变成周六日下雨了,我们商定下雨的话就取消。 早上起来不想吃饭,就吃了一个小烧饼,出发了。带的东西有一个卡片相机,骑行手套,一瓶脉动,眼镜布,一件备用T恤。由于没有经验,车子的轮胎气都不够,虽然不会影响车子,但是阻力比较大,骑起来比较费力。 在大望路地铁附近跟两位住东边的同事汇合,然后沿长安街一路向西,杀向XXX广场。两个同事都经常骑车,骑得比较快,我刚开始还觉得可以追赶,用力蹬,消耗了不少体力。到西三环附近跟另一位同事汇合(这位倒是轻松啊),然后往香山走。 等到了香山脚下,腿已经基本没有力气了,稍微有个上坡,换到慢速档也坚持不了多远。最终有个同事沿防火道连骑带推上了山顶,我和另外两个大约只走了三分之一。 等了很久看见那同事下来了,原来他的碟刹因为长时间使用,温度过高,他碰了一下把指头都烫伤了,恐怖。后来用水擦了一下,跟我们一起下山。我的车是V刹,下山之后摸轮圈也发现烫得厉害,如果是从最高处一次骑下来,估计刹车就冒烟了!下山还是很爽的,累了半天,就为了那一会快乐…… 之后骑到了西三环的香格里拉大酒店,附近的新疆餐馆用餐。吃完已经4点半了,我就靠一个烧饼坚持了一天。然后各奔东西。我还是沿长安街回来,一路不时有雨滴落到身上,我下意识地尽力提高速度,还好没有被雨淋。一整天也没心情(也没力气)掏出卡片机拍照。 感觉不锻炼的话,骑平路还可以,稍微有个长一点的上坡,就很消耗体力,更别说香山那样的坡度了。北京的空气是够差的,大部分时间我罩着鼻子,还是吸了一鼻子黑。 下面是今天的路线,除去上山大约往返70公里吧: 查看大图

May 19, 2012 · 1 min · qingbo

警惕 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. ...

April 21, 2012 · 1 min · qingbo

Nothing to Envy

Winner of the 2010 BBC Samuel Johnson prize What if the nightmare imagined by George Orwell in 1984 were real? 这本书真是太棒了,我读英文还不是很快,不过书中的真实故事越来越抓住人的心理,前几天晚上都看到很晚才睡。此书中有些许关联的不同人物穿插叙事的方式也没有觉得太乱,比较自然、有条理。与1984的绝望不同,这本书除了让人看到外人很难知道的一些真相,悲哀,但同时也给人一些希望,让人珍惜亲情。此处摘录一些印象深刻的段落(数字是 Kindle 的 location)。 103 没有污染 The night sky in North Korea is a sight to behold. It might be the most brilliant in Northeast Asia, the only place spared the coal dust, Gobi Desert and carbon monoxide choking the rest of the continent. 209 They learned that China’s diluted brand of c0mmun1sm was less successful than that brought by Kim Il-sung and that millions of Chinese were going hungry. ...

April 17, 2012 · 10 min · qingbo

《史蒂夫·乔布斯传》精彩摘录

37页 它(迷幻药)让我更清楚什么是重要的——创造伟大的发明,而不是赚钱。应该尽我所能,将此生放回历史和人类思想的长河。 168页 “这个道理很简单,团队扩张时,如果吸收了几名二流队员,他们就会招来更多二流队员,很快,你的团队里甚至还会出现三流队员,”他回忆道,“麦金塔的经验告诉我,一流队员只喜欢同一流队员合作,这就意味着你不能容忍二流队员。” 181页 但他对产品的关注又是斯卡利永远达不到的,而且乔布斯会侮辱任何一个算不上一流队员的人,以避免苹果出现太多的笨蛋。 205页 Paul Rand – “我解决你的问题,你付钱给我。我设计出来的东西你用也行,不用也罢,都得付钱给我,但是我不做备选。” 332页 人们总是说他们和别人合不来,他们不喜欢团队合作。但是我发现,一流选手喜欢和一流选手共事,他们只是不喜欢和三流选手在一起罢了。 392页 艺术的作用就是驱赶丑陋。 399页(这是“风水”真正有意义的地方) Steve 坚信,设计对路的建筑物会对文化起到积极的作用。 519页(书末乔布斯的原话太精彩了,大段摘录) 像IBM或微软这样的公司为什么会衰落,我有我自己的见解。这样的公司干得很好,它们进行创新,成为或接近成为某个领域的垄断者,然后产品的质量就变得不那么重要了。这些公司开始重视优秀的销售人员,因为是他们在推动销售、改写了收入数字,而不是产品的工程师和设计师。因此销售人员最后成为公司的经营者。IBM的约翰·埃克斯是聪明、善辩、非常棒的销售人员,但是对产品一无所知。同样的事情也发生在施乐。做销售的人经营公司,做产品的人就不再那么重要,其中很多人就失去了创造的激情。斯卡利加入后,苹果就发生了这样的事情,那是我的失误;鲍尔默接管微软后也是这样。苹果很幸运,能够东山再起,但我认为只要鲍尔默还在掌舵,微软就不会有什么起色。 521页 我的动力是什么?我觉得,大多数创造者都想为我们能够得益于前人取得的成就而表达感激。我并没有发明我用的语言或数学。我的食物基本都不是我自己做的,衣服更是一件都没做过。我所做的每一件事都有赖于我们人类的其他成员,以及他们的贡献和成就。我们很多人都想回馈社会,在历史的长河中再添上一笔。我们只能用这种大多数人都掌握的方式去表达——因为我们不会写鲍勃· 迪伦的歌或汤姆· 斯托帕德(Tom Stoppard)的戏剧。我们试图用我们仅有的天分去表达我们深层的感受,去表达我们对前人所有贡献的感激,去为历史长河加上一点儿什么。那就是推动我的力量。

March 28, 2012 · 1 min · qingbo

运算符优先级

一段计时的代码,把时间长度用“2小时37分钟28秒”这样的形式输出,但是偶然注意到结果很有问题。盯着代码看了半天,觉得逻辑判断都是正确的,后来用一个数字 debug 才找到真相。 比如 4000 秒,程序先判断如果大于一小时,就输出小时数,然后算余数。就是算余数这一步除了问题,代码写成 secs % 60*60。写代码的人为了清晰,还故意在乘号两边去掉了空格,可是这更加容易地造成了错觉,让人觉得 60*60 是先计算的。可是 “%” 的优先级和乘除是同等的! 运算符优先级是挺难记的。我觉得,迷惑的时候,加括号就行了,可读性也绝对好。 不过这次通过 Oracle 这个文档我是记住了,”%” 和乘除都是 multiplicative operators, 所以是同等优先级。想想处理器原理,确实是这样,除法的结果不就顺便出来余数了吗。

March 6, 2012 · 1 min · qingbo

Java SimpleDateFormat 与 locale (以及 Mac OS X 更改语言)

遇到一个非常怪异的问题,Tomcat 里面有个 servlet 用 SimpleDateFormat 解析日期的,类似这样: DateFormat formatter = new SimpleDateFormat("dd-MMM-yyyy"); formatter.parse("05-Jan-2012") 但是会抛出 ParseException – Unparseable date “05-Jan-2012”. 我仔细看了看,似乎一切都是对的,不应该出错。于是写一个最简单的测试类,main 函数就这么两行,同一台机器上运行完全正常。更纳闷了。 最后在 servlet 代码里打出 formatter.format(new Date()) 的结果,发现是 “29-二月-2012”! 这才想起我最早拿到这台 MacBook Pro 时系统是中文,我改成英文但是登录界面等少数地方还是中文。不知道 Tomcat 是怎么设置的 locale,不过这里有人在 Windows 上遇到同样的问题,可以通过指定 java 参数解决。 但是苹果恰好有一个文档:Mac OS X: How to change the language displayed in the login window!看起来,我在 System Preferences 里修改的只是我当前用户的 locale,而我启动 tomcat 的时候,使用了 sudo——root 的 locale 仍然是中文? 不管怎么样,既然有了这么专业的文档,照做就是了。不过苹果给的第一种解决办法太让人无语了: Reinstall Mac OS X and select the desired language during installation ...

March 4, 2012 · 1 min · qingbo