January 2010


老话说“业精于勤,而荒于嬉”,这是非常对的。许多朋友认为我写正则表达式很有经验,其实不然,我虽然翻译《精通正则表达式》,其实自己写正则表达式的机会并不多,充其量是帮朋友写写一些“够用就好”的表达式,在“精于勤”的朋友面前,是不值一提的。

相反,2010年1月11日晚我在上海龙阳路地铁站附近见到的两位朋友rexcnhacktnt,都是“精于勤”的榜样:因为工作的原因,他们几乎每天都需要用到正则表达式,所以他们几乎是“全方位地”精通正则表达式:对语法的精确把握,对未知情况的处理,对匹配效率的要求……或许平时我们不需要注意这么多的方面,但多了解一点经验以供借鉴,总不是坏事。
举例来说吧:撰写高效率的正则表达式,需要注意哪些方面?更极端一点:正则表达式怎样匹配“0…1…”但‘0’和‘1’出现次数相同的字符串?这样的问题,对正则表达式没有相当研究和经验的人,是无法回答的。而答案和讨论,也让我这种半瓶醋看得眼花缭乱,大呼过瘾。
目前,国内已经有大量专业的开发论坛和社区,但是正则表达式这种“关键时候要命”的匕首式应用,总没有专门的场合讨论,这不能不说是一大遗憾。有鉴于此,rex同学开设了专门的正则表达式论坛 http://www.regex.me,大家有任何关于正则表达式的疑惑,都可以提问讨论,对《精通正则表达式》有什么意见,也可以自由发问,我会尽力解答。

正则表达式论坛

1月17日,给小切做了最后的检查,更换了稍微有点漏的水泵,检查了五油三水(汽油、机油、变速箱油、刹车油、转向助力油;水箱水、电瓶水、玻璃水)都没问题,新换了四条邓禄普数码AT2轮胎,全车电气正常,于是信心满满。

1月18日
5:00 出发就不顺,钥匙孔堵住了,想了想应该是昨天洗车留下的水被冻住导致,从副驾一侧开门,去加油站,油箱盖又被冻住了,加油站也没热水,只能打电话给一路回家的师妹小杏,让她准备开水。
5:30 到小杏那里,看她东西也不少,我便把放在后座的笔记本包拿出来背上,趁她往车上装行李的空档,用开水淋油箱盖,因为嫌弃笔记本包碍事,就摘下来放在路边。油箱盖的冰很快就化了,我见她的行李已经装完,人已经上车,于是上车出发。
6:30 已经进入京珠高速,在第一个服务区把油加满,天很黑,雾气比较重,进京的车很多,出京的车很少,新换的小糸(Koito)H4灯泡远光非常亮,不需要雾灯也完全够用。
8:30 离开北京两百公里,进入服务区休息,我忽然觉得少了什么,仔细一看,自己的笔记本包不见了,找遍了全车都没有,回想了一下,里面有笔记本电脑、相机、所有的银行卡、手机电池和日记本(更糟糕的是现在手机快没电了)。确认包不在车上,我想了想,首先挂失了信用卡(不用密码的),其它的损失无法挽回,只能说背运了。我侥幸地想,如果确认包丢了,明天再挂失其它卡不迟。再仔细回忆回忆,应当是化开油箱盖的冰时把包放在了路边,小杏电话朋友回去找,我没抱多大期望。
9:00 决定继续上路,此时折返北京又要两三个小时,而且多半找不到,只能按下不安的心情继续向南——这真是令人沮丧的事情,无比重要的东西遗失在两百多公里的身后,我却要以一百公里的时速向南开进。
9:20 北京的朋友来电话说,笔记本包找到了——一位不知名的快递员在路边发现了我的包,把它送到了附近的邮局,朋友说出丢失时间、包的颜色和内装物品等等之后,就顺利拿回了包,电话两边比对之后,发现什么也没少。这可真是意外的惊喜,请朋友立即用快递把包送回家。打完电话,虽然小切仍然穿行在雾气弥漫的高速上,我却觉得天气明朗了不少。
21:00 终于抵达武汉,可以打开窗户大口呼吸南方湿润的空气。照GPS的指引,先把小杏送到汉口,我再去武昌找博文视点借宿。在武汉市内小心谨慎行车,还是走了不少弯路,而且发现发动机低速运转的声音有些不对,也不敢多想。到目的地已经是十点多了,我用手机最后剩下的一点电联系上了徐定翔同学,他深夜赶来,我被领到安排好的宿舍,倒头就睡。

1月19日
7:00 我已经习惯了早起,起来之后首先想解决的是发动机的问题。仔细想了想,车况一直很好,不应该出问题,唯一可能的变量就是北京之外的地区都加的乙醇汽油,油气混合比必须调整,于是取出随车工具调整混合比,果然问题减轻了一些,再仔细检查,发现有一根真空管因为长期颠簸已经漏气,重新插好之后,挪用博文视点的固定资产——一个晒衣夹子夹住,于是一切正常。
9:40 徐定翔同学带我参观了博文视点的办公环境,很开放,视野也很好,白板上的任务列表,又清楚地标明这里紧张的工作进度。据说我是作译者里少数有机会来武汉博文参观的幸运者之一,确实很幸运。
10:00 在徐定翔同学和杨小勤同学陪同下参观了武大,上次我到武大只是自己走马观花,这次有人介绍,收获不少,参观了武大的老图书馆,气氛很不错(当然,樱园路的女生宿舍也给人很深印象)。徐定翔同学是武汉博文视点的策划编辑,业务水平很不错,为我的《正则表达式傻瓜书》草稿提的建议非常精当中肯,他自己还在翻译《97 Things Every Software Architect Should Know》;杨小勤同学设计了许多技术书籍的封面,风格各异但都别具匠心,这些年来技艺日趋精进,封面的感觉也越来越好。他们上午陪我参观武大,心里非常感激。
15:50 大概是我运气好,本来没打算看《阿凡达》的,却赶上武汉博文视点的观影活动,于是蹭了张票,在光谷的电影院看了3D版的阿凡达,效果无与伦比,不过最有意思的还是编剧——类似的故事已经有许多电影讲过,我本以为《阿凡达》难免会“类型”,但剧本的设定却巧妙而高明,有几处超过了我的想象。
19:20 在武汉的一家湖南米粉店吃了晚餐。店子是正对马路的,只是高出几个台阶而已,在桌边吃饭,看人行道上路人来往,听不远处车辆穿梭,熟悉的感觉瞬间就穿透了时空的障碍,仿佛找到了自己成长的烙印。
21:30 蹭博文视点周筠老师的卡,在小区的按摩店享受了一把,放松放松我整日驾车的肌肉。按摩师说:除了颈部和腰部的肌肉比较紧张,身上其它部分肌肉的状态都很不错。心里很是宽慰:每天锻炼,虽然时间不长,到底还是有效果的

1月20日
6:30 再次出发,先去汉口,再上武汉三环(似乎全国各个城市都有x环),奔京珠高速,天气很好,很暖和。
10:00 通过湘鄂省界,进入湖南境内,能见度依然不好,路旁密密的樟树,和脚下的红土地,是家乡的标志。
12:05 从株洲北收费站下京珠高速,进入株洲大道,满眼看去都是“湘B”牌照的车,终于到家了。

1月22日
中午,从外面吃饭回来,发现家里多了一个宅急送的大纸箱子,急忙打开,发现笔记本、相机、手机电池、银行卡,全都在里面。谢天谢地,什么也没丢,只是晚到了几天!

后记:
我已经许久不写个人生活了,回忆起这几天的经历,我总是想起胡适先生提过的一句话:人心曲曲弯弯水,世事重重叠叠山。曲曲弯弯、重重叠叠,或许并非不着边际的苦闷,也可能是失而复得的惊喜;这种惊喜的曲曲弯弯的源头,就叫做“善良”。
再次感谢这位不知名的快递员(抱歉,根据取包那位朋友的描述,这位快递员没有留下名字和联系方式)。

有句老话说:读史早知今日事。我觉得应该改改,改成“读史更知今日事”更合适——读史不太可能让人预测将来会发生什么,但是多了解点历史,就可以在一个更广阔的背景下审视当今发生的事情,于是能认清来龙去脉,获得更完整的判断,退一万步说,至少自己说话不会太过丢人现眼。譬如最近热门的所谓“Google要挟中国”的事件,面对“难道公司除了追逐利润还有其他目的?”之类的核心观点,光讲道理,恐怕不如看看历史来得利索。

1977年,南非实行种族隔离制度,大量美国公司因而抵触“当地法规”纷纷撤资,这就是“南非撤资运动(Disinvestment from South Africa)”(中文翻译 http://www.luanxiang.org/blog/archives/919.html)。这场运动的关键因素,形成了日后所谓的“沙利文原则(The Sullivan Principles)”,按照沙利文牧师的论述,该原则的目的是鼓励各个公司无论在何地经营,都要支持“经济上,社会上和政治上的公平”。或者,按照人民网某篇文章的说法:

……今天世界上出现了一种崭新的企业新概念,即企业是必须对整个社会负责的组成部分之一,企业已不再被看作只是为拥有者创造财富的工具,它还必须对整个社会的政治、经济发展负责……

具体的情况这里不多说了,给几个参考链接:
Wiki: Disinvestment from South Africa
Wiki: Sullivan Principles

P.S.
读史更知今日事。了解上面的内容,再看看这类说辞,您是什么感受?

尽可能的设法为百姓提供便捷的信息获取技术服务,提供切实的价值,而不是挂羊头卖狗肉的宣称自己do no evil和政府撕破脸皮搞壮烈,才是一种真切的负责态度。找台阶下可以,但不要拿一个搞管制国家的民众感情来做台阶,这是极其不道德的

我曾写过《稀释》,也一直认为,世上许多事情的道理,就是“不讲道理”:你做了十万分的努力,对方可能“只能”感觉到十分;若觉得这不够公平,而只做九万九千九百九十九分努力,对方就很可能连一分都感觉不到。

所以,我在第一时间发布了《技术领导之路》的勘误。惭愧之余,也希望各位读者,如果发现更多错误,一定来信指正。

《技术领导之路》(中英文对照版)勘误:
http://www.luanxiang.org/blog/batl_errata

另:《精通正则表达式》(第三版)勘误列表也已单独列出,烦请大家移步
http://www.luanxiang.org/blog/mre_errata