地震中的微博客

本文关注的是如何通过微博平台(不含twitter)了解地震信息。

最先有地震专题的,是叽歪网。如图:

微博客jiwai.de叽歪网做啥地震专题

其实,即使没有上面的专题,只要在叽歪网首页的搜索框中搜索“地震”或“汶川”,也能找到与地震有关的内容。

饭否的地震专题姗姗来迟,至少迟于叽歪网。见截图:

微博客fanfou.com饭否地震专题

饭否的官方都在忙着搞海内?见饭否上到海内网“为汶川祈祷”群参与讨论的链接。

微博客fanfou.com饭否地震专题

做啥没有推出地震专题,不过仍然有办法筛选到与地震相关的信息:点击首页消息中任意一个tag,都会打开搜索界面,此时只要在编辑框中输入“地震”,即可找到相关信息。

微博客zuosa.com做啥地震专题

与做啥网类似,滔滔虽然没有推出地震专题专题,但是仍能通过搜索功能搜索到关注此事的网友发来的消息,界面如图。

微博客taotao.com滔滔地震专题

关注热点,反应迅速,推出相关服务,不矜报喜,不惮报忧,才是web2.0时代的精神。

为震区同胞祈福

一场里氏7.8级的特大地震于2008年5月12日14时28分在中国的四川省爆发,台湾媒体用“半个亚洲”形容这次地壳晃动的波及面,直接有震感的地区远及泰国的曼谷和越南的河内。截止现在为止,死亡人数接近10000人。

宁可信其有

已经有人说起地震之前的发生的种种异相,借以表明这次灾难是可以避免的。地震云也好,蟾蜍也好,专家的结论也好,都是一种或然,而非必然。目前人类对于地震所做的任何预测都像段誉的六脉神剑一样时灵时不灵,不能以此作依据。但是个人倾向于宁可信其有。

追究责任并不重要

历史不能假设。现在当务之急是拯救灾民,而不是花费同样宝贵时间对某些人作无关痛痒的道德评判(虽然某肉食者的躲闪与推诿确实足够令人寒心)。力所能及地捐衣捐物捐款献血,是对处于水深火热的同胞最大的支持。帮助他们,就是帮助我们自己。

feedsky 公益话题广告,为震区同胞祈福,四川地震

壹玖捌肆

忘记什么时候第一次知道这本书了。只记得在读马伯庸的《寂静之城》时,加深了对《1984》的渴望。买来之后却也没有立即读完,只是一鳞半爪地翻看几页,又放下。

枕上,马上,厕上。这三“上”,据说是读书的好所在。对我而言,枕上往往是电脑的领地,厕上往往是手机的地盘,旅途中才是读书的天堂。

不看电视可以,不看电影可以,不开电脑、不上网,却是无法想像。看看Email中有无新邮件,sns中有无新留言,blog上有无新评论,rss中有无未读文章。一个链接跳到另一个链接,一个页面转到另一个页面,不觉时间的流逝。

从书店出来,雨已渐大。撑开八十四骨紫竹伞,在长途公交车中找个安静的位置,折叠了伞,擦干了手,打开了书,就沉浸到自己的世界中了,感觉不到人上人下、车停车行,乃至感觉不到钱包易主、手机过户。这是我印象中最惬意的读书之旅。

正是在旅途之中,我再一次沉静下来,一字一句地读完了《1984》。

1984描写的不是我“血气方刚”时的渴望读到的行侠仗义、快意恩仇,也不是“及其壮也”之时神往的花前月下、获美得宝。所读到的,是“如今听雨僧庐下,悲欢离合总无情”的心境。压抑、低沉、悲壮、无奈。

死者

如果你不幸生而为无产者,那你可以幸福地无知无识地生存、工作、漫骂、歌唱、反抗、消亡。你没有那个能力,因此也不会被提防;如果你是一个外围的member,那么你就生活在楚门的世界里,到处都是摆脱不掉的监视器,到处都是思想cops。一举一动、一言一行,乃至心底的一念闪,都难逃老大哥的法眼。

你自以为在日记本上放一粒不起眼的灰尘,能鉴别是否被人偷窥过,于是你自以为拥有了二加二等于四的自由而畅言无忌;你自以为那不起眼的糟老头子房东可以信任,于是你把蛇蝎窝当成巴厘岛,红袖香帏鸳鸯梦,雪夜闭门读禁书;你自以为在黑暗中看到了光明、找到了组织,把集智慧和力量为一身的奥勃良当作自己可以依靠的对象,于是你知无不言,言无不尽,积攒了四十年的热情一朝迸射。

或许你知道,你所说的每一句大逆不道的话语都已记录在案,成为对你不利的证词。你想“誓将去女,适彼乐土”?但是你也知道,普天之下,莫非王土。即使到了其它国家,也是天下乌鸦一般黑。因此你坦然地说,我们是死者。

101里有什么

101里没有101网校,没有章光101黑发生发专家,只有世界上最令人恐惧的事物。一名狱友惨呼:让我咬谁也好,把我一直饿死也好,把我的老婆孩子一起拉来在我面前割断喉管也好,都可以;只是别让我去101号房。

读过伏契克《绞刑架下的报告》,里面有对267号牢房的描写:从门口到窗户七步,从窗户到门口还是七步。这表现了号内的长时间生活产生的乏味的感觉:不过如此。

同样是坐牢,为什么差距这样大呢?

奥威尔笔下的英社,其统治的目的,不单是消灭反对者这样简单。它不但善于摧毁人的躯体,还善于改造人的思想。在电影《解放军占领巴黎》(Les Chinois à Paris)里面,被改造好的政治犯不管见谁都喊同志,看上去觉得可笑。可是在1984里,被人改造就不是一件赏心悦目的事情了。在《冒牌天神I》里,连全能的上帝也无法干涉人的free will。可是,老大哥领导的手下,却能”time your time”。

你最怕什么,他们就让你面对什么。是的,你可以在打架时注意不到手上的伤,你在吃饭时注意不到白酒或的辣,但是,每个人总有自己的薄弱环节,有最恐惧的事物。皇上亲赐的鹅羹确是美味佳肴,可却是徐达一喝就命丧黄泉。当你向自己的恐惧屈膝求饶时,你已经开始被改造好了。仿佛千里的长堤一旦裂了一条缝,决堤只是时间的事;仿佛坚贞倔强的花魁娘子被梳弄过了,之后的承欢也是意料中事。跨过了这道坎,你已经没有什么好矜持的了。

精神控制

英社的精神控制手段可谓全方位立体架构。明有电幕,既可发号施令,又可监视、控制;暗有思想警察,潜入内部,明察暗防;上有老大哥,虎视眈眈;下有儿童兵,跃跃欲试。对外宣战,消耗剩余产品,转移国内视线;对内“恐怖”,防止人心异动。

这是我能想到的最具威力、最行之有效的手段比《笑傲江湖》中的“三尸脑神丸”厉害一百倍。后者只是使用药物控制,“盖一岁之犯死者一焉(端午),其余,则熙熙而乐”。而在英社的统治下,从cradle到grave,每一分一秒都紧绷着那根弦。

民不畏死

既然知道摆脱不了沉甸甸的命运,为什么不过得开心一些呢,哪怕是现在,一瞬间?

《寻秦记》通篇意淫,可是里面“一滴蜜”的典故脱颖而出,及时行乐的思想虽无奈,至少活着还有些期待、有些意味。上文提到的《绞刑架下的报告》里,囚犯可以从冒陷摘来的雏菊、落日那里,得到些许安慰。在《笑傲江湖》里,已萌退志的有黄钟公、黑白子、丹青生、秃笔翁,四人异想天开地想在乱世独善其身,于是讨了一个看管黑牢的差遣,在西湖边上琴棋书画,娱乐遣怀。到临终,“玩物丧志”之言是假,“人生于世,忧多乐少”的结论却是赤果果的现实。

死对于温斯特来说,其实是一种解脱。被捕前他一直知道“我们是死者”,被捕后他一直渴望“闪亮的子弹穿过后脑勺”。

电影

顺手下载了美国在1984年排摄的电影《1984》。故事从“两分钟仇恨”开始,到喝下小酒,等待“闪亮的子弹穿过后脑勺”结束。拍摄得中规中矩,不过有些细节还是不如书中细腻。比如101号房带给人的恐惧,电影中一句话就给带过去了,而书中却几次渲染。成功的地方是将抽象的东西具体化,例如“忘怀洞”,“电幕”,“老鼠”刑具等等。然而,如果没看原书,我觉得很难全面领会作者的思想,至少很难理解跳跃的情节之间的关联。

一句话,电影只是原书的补充,不能脱离原书而存在。

28-Apr-2008
30-Apr-2008
1-May-2008
12-May-2008

客至:迎奥运,喜涮涮

点击看大图
图解:奥运将近,北京许多临街房屋被统一粉刷成庄严古朴的城砖灰色

客至

舍南舍北皆春水,那山上,那岛上;超市门前也是春水一片

但见群鸥日日来。嗯,洋鸟要来,“日日”也成问题

花径不曾缘客扫,如图所示,这不正焕然一新了嘛

蓬门今始为君开。北京欢迎您,We are ready!(?)

盘飧市远无兼味,谁说了,咱专门养了一些猪,种了一些菜。

尊酒家贫只旧醅。要把影响形象的乞讨者一网打尽,遣送到昌平筛沙子去

肯与邻翁相对饮,在此期间,某些人的“邻翁”或明或暗地发一些奥运财,也是意料中事

隔篱唤取尽余杯。“尽余杯”谐音“金玉杯”,令人联想到此次使用金镶玉的奖牌

email,google apps,Foxmail,thunderbird,google calendar

深柳堂主按:写三行,删五行。发现实在无法驾驭长句子。也罢,使用简洁明了的饭否体,把事情交待清楚即可。】

这里是我工作以来使用email经验的无偿大放送。

  • Email Server首选gmail。容量:虽然它”仅”有6.6G的容量(16 Apr 2008),但是在孜孜不倦地增长。163或126、yahoo.cn的邮箱,容量无限,但是yahoo的界面不清爽;163/126都是不交钱就无法使用pop服务。
    Email. server 容量 pop3,smtp imap
    gmail 6.6G+(increasing)
    126 unlimited 新用户不
    免费支持
    yahoo.cn unlimited

    鉴于yahoo.cn和126的unlimited space,我也对其物尽其用:把本站的数据库每日自动打包,发到无限量的邮箱中。

    Gmail最不可替代的功能是,当你使用客户端软件发信后,该信件会自动保存到网上邮箱的发件箱。这就避免了客户端、网站内容不统一的缺点。加上gmail强大的搜索、过滤功能,有助于快速定位任何所收、发过的email。

  • Google Apps自从拥有了自己的域名之后,就顺便开通了Google Apps的一系列服务,例如email,calender,等等。虽然ghs.google.com花开花落,封锁、解冻,都不影响使用。只要MX解析正确,只要把mail.YOURDOMAIN.com转发到https://mail.google.com/a/YOURDOMAIN.com即可。顺便赞叹一声,Google 真是中小企业、个人用户的贴心好友。
  • FoxMail VS ThurderBird使用两款软件均已多年,各有所长。列表如下:
    Email 客户端 Foxmail6.5Beta1 ThunderbirdTM2.0
    smtp/pop
    imap
    remote control
    远程管理

    receipt回执

    google calender
    (plugin based)
    template
    (customizable,good)

    (plugin based, fair)
    support of Gmail (native,better)
    spelling check ?没找到
    plugin 封闭式。想想QQ… 多多…
    • smtp/pop:任何邮箱客户端都该支持吧,否则别混了。
    • imap:如果不知道,请点百度解释。简言之,它的作用是让客户端程序同步操作网络邮箱,一举一动都能及时反映到网上。网络邮箱中已有的标签、文件夹,都会在客户端中体现。平时只下载邮件头,点击时才下载整封邮件。速度不是它的强项。
    • Foxmail没有imap,但是它支持远程管理。如果你有1000封邮件,现在开始使用foxmail了,你不必花一天时间把这1000封重新下载一遍,只需下载邮件头,再选定邮件永不接收即可。平时对于超大邮件也可以择优下载。
    • 两者都支持回执,实在方便。
    • google calender:中google毒实在太深,它的google calender也是我的必用工具。稍后细说。
    • Foxmail对于模板的支持实在很好很强大。Thunderbird需要External Template Loader 插件才能支持,想在模板中加入当天日期的话,还得调用另外一个QuickText插件才能搞定,而且每次都要自己点击。这是Thunderbird让我失望的地方。
    • Gmail支持:其实这只是一个小细节,在配置gmail时,Thunderbird主动提供gmail账户选项。相比之下,foxmail内置了@foxmail.com邮箱选项。
  • Google Calendar 好吧,我坦白,自己并非不是懒散之人,需要时刻提醒下一步该做什么。我使用过许多款日历软件、GTD软件,都是尝新而已,没有从一而终,直到我遇到Google Calender。
    • 首先,它是网页版的。和大多数网页程序一样,不论你的操作系统是Windows, *nix, 还是Mac,只要你能上网(IE,FireFox,Opera,Safari),都能使用该服务。
    • Firefox中有很多插件,可以让Google Calender更好地为您服务。
    • Thunderbird也有很好的插件(LightningProvider for google calendar),可以让Google Calender更好地为您服务。具体配置见这里
    • 相让您的智能手机和Google Calendar同步?请参考:GooSync:手机与Google Calendar同步,相当不错。

以上是本人在实际使用中遴选email、calendar工具的心得。如需转载,请注明出处

——————————-计划赶不上变化分割线——————————-

updated 4 Aug, 2008: 原来Foxmail 6.5是支持imap协议收信的,老夫倒是错怪它了。这样一来,两强相较,倒不知胜负如何。贴图:
foxmail, imap,深柳堂

春江晓景

青青翠竹之外
与人面映红的桃花绽放了三两枝
江水绿如蓝啦
门外鸭头不怕乍暖还寒兀自嬉戏
蒌蒿满地都是
嫩黄的芦芽冒出了两三寸
肥美的河豚呀
你要是露头就有人把你吃

中文编程之我见

读了饭友创亿无限的文章《我对中文内核的一些想法》之后,谈一下自己的见解。本文皆为个人观点,必有偏激、先入为主之处。欢迎讨论、争论。

总体说来,我全面提倡英文编程,同时,对中文编程也充满了兴趣。先说一下英文编程的便利条件。

  1. 打字方便。无须安装输入法,26+10个字母数字组合就能胜任99%的输入任务。而且,做成IDE时也方便,可以输入几个字母时由程序自动提示后边的内容,减少工作量,提高准确性。中文编程的话,不是不行,而是工作量更大些。试想,你使用拼音或字形输入法时,不但有输入法的提示,还有随之而来的编程提示。当然你可以选择不提示。

    不过,方便与否是一种主观唯心的感受。你当然可以拥有自己认为方便的设置。

  2. 编码统一。除非涉及到输入输出,否则一般情况下不必考虑是utf8还是gbk,抑或gb18030。全部使用半角字符,也省得来回切换。虽然中文编程中也可以使用全角半角混用(不规范),或者只用全角,总而言之是麻烦事。
  3. 英文的更具有通用性。你可以说,中文是全球第一大语言,也可以说,使用中文的编程人数正在处于上升趋势。但是,英语程序人员的范围广,编程资料也更多用英语写成,这是无可否认的。MSDN是用英语写的,Linux内核使用英文来写备注,印度的程序员大部分使用英语(这个例子有些极端了呵呵,他们的官方语言之一就是英语,因此他们在使用英语的编程资料时更有得天独厚的优势,相对于官方语言并非英语的程序员来说)。
  4. 标准化。标标准化是提高效率的捷径。功能标准化(发布标准API),有利于减少重复劳动,降低前期时间、研发成本,语言标准,有利于更好地沟通。如果我们是为了一切做到大而全、小而全而非得成立和采用自己的标准,则不啻是重复发明车轮。
  5. 便于推广。有人说了,MSDN也有中文版。不错,它是为了把它的技术推广给使用中文的用户罢了。“用户使用什么语言,我们就推广什么语言版本的服务。”这一概念很符合市场营销的思想。推而广之,我们的产品,如果想让老美、老英,或东边那个小岛国,以及其它国家的用户使用的话,也会努力做到使用客户所使用的语言。这一点在OEM中体现得尤为明显。即使你的库是以lib、dll形式发布,其说明文档总得翻译成人家能看得懂的语言吧?即使后台代码可以使用中文编程,前台界面你总得翻译成人家能看得懂的语言吧?当然,如果编程只是自娱自乐,不必与人交流,不必推向市场,或者不必推广到更广大的市场,那就悉请尊便了,使用火星文也没人说NO,使用旧石器语言也无可厚非。
  6. 使用英语不等于不爱国。在泛爱国论抬头的年代,言行稍微偏激就会被扣上“卖国贼”的tag。awflasher有一篇类似的文章,写道:“有些人,说着英语,却在默默地为祖国贡献。”

相比之下,中文编程还有很长的路要走。不是很长,是太长的路。

  1. 敌众我寡。之前所有的语言都是以英语为关键词的,英语已经占据了编程语言的每个角落,每种语言都有数种方言,都有许多IDE,广泛应用于底层、界面、数据库、文本、语音、网络、移动设备,诸如此类。可以说是上至原子弹,下至卖鸡蛋。作为跟进者,中文编程不是向c语言、汇编语言、perl、python、php等等语言中的某一个来挑战,而是要向全部语言来挑战。中文编程语言,能搜索到的有易语言、以前常常活跃在aogosoft.com却经常被冷落的“邱明中文汇编”(邱明的网站已经无法登录)、O汇编语言(OASM)、中蟒(基于python),只是散兵游勇,廖若晨星。首先从敌人数量上来说,绝对是敌众我寡,在横向与无法与之抗衡。
  2. 敌强我弱。从语言历史上来说,以英语为关键词的编程语言,老的有了几十年的历史,中的也有十多年历史。经历了多次改朝换代、性能优化,达到的高度不是中文编程在一两年、三五年内所能赶上的(换句话说,如果指望在三年达到别人三十年才能达到的高度,就需要在三年内做完人家在三十年内所做的努力的基础上,再有所超越)。而中文编程只是在某些领域能够正常运行而已,无法超越过同类英文类编程语言。在纵向上,亦输了一局。

中文编程的出路。但是历史总是给新生事物以机会的,否则世界怎么会发展?只要找准了方向,找准了定位,就总能够崭露头角,立于不败。

  1. 找准方向。数据运算首先不是中文的强项了,就不必再来逞强了,老老实实地使用阿拉伯字母(也是外国字母哟)就得了。其它也类似。中文编程的用武之地在于:

    1. 有迫切需要的(无论来自国内还是国外);
    2. 外国现有的技术还没有达到的;
    3. 中文编程恰能大显身手的。本点是最重要一点。

    英文也不是放之四海而皆准的。举例来说,它就无法完美地处理中文。呵呵。个人比较喜爱的正则表达式在处理英文字母和数字时,展示了令人难以致信的强大。但是,它在处理看似毫无逻辑可言的中文时,却似狮子咬刺猬,无从下嘴。如果能有一种中文语言能够完美地实现中文正则表达式,其功绩将是里程杯似的。(警惕:如果流氓会武术,如果G*F*W会中文正则表达式!)

    这里只是提供一个方向。路子还得自己选,自己走。这个任务交给易语言们了。只要有需要,就会出现满足这种需要的产品。亦即,只要能满足人们的某种需求,就一定能够在市场竞争中生存。

  2. 站对位置。一开始就以改变世界为目标,总是有些唐吉诃德。同理,中文编程大可不必一开始就把以前所有编程语言都走过的路子再走一遍,跟老人抢饭吃。就跟mysql天生就是做数据库的、php从来都是做网络的一样,只有找准了中文编程的位置,才能变得不可或缺。
  3. 提供新特性。虽然程序员喜欢自己最拿手的语言,但这并不意味着固步自封而不学习新事物。如果中文编程在某个领域能够胜出传统语言一筹,则总是会有程序员主动(或被项目经理逼着)学习该种语言的。

我对中文编程很有好感,而且十分期待。不过,鉴于中文的编程远远没有达到英语编程高度和普及度,现在就大力推广和普及易语言,总觉得为时过早。对于用户来说,并不关心所使用的程序是使用易语言还是C语言,只要易用、满足功能上的需要即可;对于程序员来说,易语言尚不能代表先进的生产力的方向,无论是执行效率还是进化阶段,远远没有走在技术前沿。它还有很长的路要走。这条路,应该主要靠自修,而非政府的催熟。政府的作用可以是提供资金上的支持,而非政令上的规范。

考虑到jyf1987所言的二级考试,主要是考思路和算法,使用具体什么语言实现倒在其次,因此,如果仅仅是为了推广中文编程而推广易语言,我觉得有些欠妥。理想的情况是,吸引胜过号召,诱惑胜过强迫。如果采用中文编程的语言(包括易语言)从执行效率、编程便捷度上都胜其它语言一筹的话,桃李虽不言,树下自成蹊。

welcome to the real world

Welcome to the real world! It sucks. You’re gonna love it!

Friends第一季第一集中有这样一句,是Monica说给Rachel的,告诉眼前的生活才是实实在在的。就跟向它致敬的《武林外传》里的片尾曲所唱:“这世界真的也许有太多的你不如意,可你的生活虽然坎坎坷坷仍在继续”。Rachel剪断了信用卡,脱离了可以为之提供锦衣玉食的老爸,靠作咖啡店的侍应来维持生计。在此之前,她连洗衣都不会。可是在其余五人的帮助下,她渐渐融入、熟悉、并最终握了real world里的生活。

在《Matrix I》中,Morpheus对Neo也说了这样一句话: Welcome to the real world. 其实,如果认为它的潜台词是“It sucks. You’re gonna love it! ”,也能说得通。活得太sucky了,每天吃鼻涕一样的共产餐,以致于Cypher有如下的抱怨: All I do is what he tells me to do. If I had to choose between that and the Matrix, I’d choose the Matrix,并最终反水(被Tank给轰死了)。

Neo倒没有公开对这sucky的现实有何报怨,而是被动或主动地适应和掌握,最终认识和找到了自己的力量,最终 love it,而且fight for it,他的牺牲换来了阴阳两界(matrix和zion)一段时期的和平。

Welcome to the real world! 句中的real涵义十足,值得好好玩味,尤其是对于刚刚毕业到了单位开始上班的freshman来说。和菜头有几篇文章,仿佛是对这些freshmen说的Welcome to the real world。观点独到,笔力强劲,着力推荐。

和菜头的文档,推荐阅读:

另,关于suck一词,可参考《小笨霖英语笔记》:

Suck 这个字在美国用的很多, 它就是指很烂, 很差的意思. Suck 是一个动词, 所以在使用上跟烂这个形容词是不太一样的, 例如你可以说, That traffic here really sucks! 就是说这里的交通糟透了的意思.  有时也听得到人家用 suck 的形容词 sucky. 例如有一次我室友的女朋友先是车子抛锚, 然后又下起大雨, 更糟的是她还找不到电话可以求救. 所以她那天一来我们这, 就说了一句, Today is very sucky, everything sucks. 说得很好吧!

Suck 这个字的原意是指用嘴巴吸的意思, 所以有人就设计了这么一个吸果冻的比赛.规则很简单, 就是不能用手, 只能用嘴巴把果冻吸光. 所以比赛一开始, 只听到观众大喊, Hey, you suck! 表面上听来是说, 你快点吸的意思, 事实上则是暗地里骂人烂的意思.

曾有人写了一封信跟我谈到, 关于’suck’这个字该不该用. 大家参考看看. the lottery sucks!

I noticed something that I wanna tell you.. Maybe it’s not a big deal actually.  In your message, I saw a word “sucks” um.. I think that’s not a good word though… you know I think girls souldn’t say that words.. even a guy… I don’t know I can hear that word all over the place but I still can’t get used to it.. in my opinion, that’s worser than say “fuck” or “shit” but that are all bad words anyway.. ok, don’t say those words ok? cause I have very expectation on you and I don’t want to hear those words from you ok? maybe it’s not that big deal though…. don’t know.. 

笔者是觉得在美国说 suck 或许没有 shit 或 fuck 来的这么槽, 但是没把握还是不要乱用这个字比较好. 如果要用, 请用在同辈之间及比较熟的好朋友身上.

玉麒麟与藏头诗

芦花丛里一扁舟,
俊杰俄从此地游.
义士若能知此理,
反躬逃难可无忧.

读了几本古本小说之后,养成这样一种习惯:凡是看到诗就不由自主地检查它是不是藏头诗,或者藏尾诗。在读卢俊义被梁山好汉用藏头诗“赚了”的时候,真是为之扼腕叹息:如果他当时也先扫视一下诗首诗尾,也许会将这场飞来横祸消弥得无影无踪。这首诗在内容上富于警示性的,但在形式上十分拙劣。每个人对于自己的名字都有特殊的敏感性,只要看见名字散落地出现在几行文字中,甚至只是同音,那几个字总能不经意地被高亮显示,跳到眼中。

如果卢俊义平日里积攒一些有关藏头诗的知识,会不会好一些呢?我听过另一个故事,抄录在此:

很久以前,在圣城麦加,有一个富商的仆人上街买菜,结果就在人群中,看见了死神对他露齿而笑。他吓得连菜都不买了,回去向主人请求帮助。好心的主人借了他一匹快马,让他去麦地那城暂避一时。随后,主人自己上街买菜,又在人群中看见了死神。主人上前质问,你为什么要对我家仆人那样险恶地笑,莫非你要不利于他吗?死神的表情非常无辜,他说当时我不过是觉得奇怪,明明今天晚上我要在麦地那城带走他的,他怎么此刻还在麦加逗留呢?

故事表达出宿命的虚无,荒谬,不可逆转。卢俊义顺着命运的启示,不得已抛却了家财万贯,娇妻美妾,落草为寇;富商的仆人试图逆转自己的命运,结果发现自己所要逃离的方向,正好落入死神的口袋。你要逃离宿命,结果总是南辕北辙。

虽然套句话本小说的逻辑,“也是合当有事”,即卢员外的命运早已注定,无论如何他平时如何精明,此时也逃脱不了落草为寇的结局。不过,看他出门之前的安排,已知他一意孤行,众叛亲离。在家中的地位,也只是有名无实、被架空的土财主而已。再看他在去梁山的路上,鲁莽行事,目空一切,也是胜算无多。终于不幸落草,在梁山上的作用,也只是一员武将,一台战争机器而已,属于被使用、被提防、被安抚、被拉拢的对象,上不能担纲带头,下不能拉帮结派。这只玉石雕琢的麒麟当真晶莹璀璨,只可惜跟山石相撞,却只有碎的份儿。虽然他是北京大名府第一等长者,一身好武艺,棍棒天下无对;即使他读过两眼书,识得几个字,纵然识出了藏头诗,又如何抵抗得过这如山倒的命运?

相关阅读:

  1. 第六十一回 吴用智赚玉麒麟 张顺夜闹金沙渡
  2. 汇评忠义水浒传-第六十回 吴用智赚玉麒麟 张顺夜闹金沙渡

15:55 2006-11-17
15:47 2007-01-15
11:19 2008-04-03

正则表达数与合数判定

quhao那里,了解到这样一篇文章:牛B的正则表达式:素数判定与线性方程求解

今天又学到一个牛B东西。你相信吗?正则表达式竟然可以用来判定素数,甚至可以用来解方程!下面这段正则表达式可以用来判断,一个字符串的长度是否为合数(假设这个字符串里全是字符’1′):
^1?$|^(11+?)\1+$

初看上去,这条正则式怪怪的。不过,略为分析一下,它就原形毕露。

中间的备选符竖线把正则式分数两部分,^1?$和^(11+?)\1+$。

先看第1部分。
^1?$匹配的是,行首,1个或者0个’1‘,行尾。
换言之,它匹配的是一个空行或者只含一个’1‘的行。

再看第二部分。
先说一下正则式的基本规则。

  • +:量词,表示前面一个单位的一次或多次重复。
  • ?:量词,表示前面一个单位的出现0次或1次。
  • +?:连用,表示前面一个单位的一次或多次重复,不过倾向于越少越好。正所谓:懒惰模式。
  • ():捕获。这里面的内容重复出现时,可以使用\1,\2之类的代词来表示。

我们切入正题。
^(11+?)\1+$
,它匹配的是,
行首,紧接着是由’1‘和m个1组成的捕获组(m是大于等于1的自然数),紧接着是N个这样的捕获组(n是大于等于1的自然数,n与m不必相等)。

11+?和\1+是理解这条正则表达式的关键。
我们再细分一下。

  • 1,匹配1个’1‘,仅此而已;
  • 1+?不能再分,它匹配的是1次或更多次的’1‘(为了表示方便,该次数我们用m来表示),?表示懒惰式匹配。因此,11+?可以表示为(1+m)个1
  • \1 表示前面所捕获的括号内的内容。后边又一个+,它匹配的是1次或更多次的’\1‘(为了表示方便,该次数我们用n来表示)。

这样,我们澄清了这条正则式试图表达的意思:
^(11+?)\1+$,它匹配的是由(1+m)(1+n)个1组成的字串。其中m和n都是大于等于1的自然数。n和m可以相等,也可以不相等。

全局来看,^1?$|^(11+?)\1+$匹配的是一个空行,或者一个’1‘,或者(1+m)(1+n)个’1‘。

(1+m)(1+n)的集合是什么样的数呢?连编程都不用,我直接在excel里列了一张表格:

考虑到n和m相等的情况会出现对称。我们只考虑其中一半即可:

即,得到的数列为:

4,6,8,9,10,12,14,15,16,18,20,…

从其产生的规则来说,上面的数全是合数(均由乘积构成);但是,上面这些数列是否就等同于合数集,这就不是我能证明的了,给数学系的同学去证明吧。

值得补充的一点是,上面两个图表只是使用的后半部分的正则式,即只有^(11+?)\1+$不包括^1?$。如果按照原正则式补全,此数列就会变成:

0,1,4,6,8,9,10,12,14,15,16,18,20,…

根据合数的定义,0和1是不包括在内的。不知原作者为什么把0和1也要囊括进来。

虽如此,我十分佩服写出这条正则式的大牛。理解其含义之后,我也会心微笑。同理,我们还可以构造许多类似的正则式,只要满足两个条件,一是你知道有某条简洁的公式;二是你知道如何使用正确的正则语法来表达出来。

PS:

原贴中有一条例子是三元一次方程11x + 2y + 5z = 115

^(.*)\1{10}(.*)\2{1}(.*)\3{4}$

解密:此处的.*共出现3次,互不约束,当然是三元一次