祂使一个灵魂苏醒了
不再遮掩
不再害怕
安静,甜蜜
仿佛伊甸园的日子
随机文章:11月的诗 2009-11-11逼迫会带给我们属灵的喜乐(加尔文) 2010-01-04雍力的礼物 2010-01-01疗伤是痛苦的 2009-12-23争战中有平安 2009-12-20
收藏到:Del.icio.us
博客大巴,你的个人传媒早班车
3508 条 (3508 未读) 共 10 feeds
祂使一个灵魂苏醒了
不再遮掩
不再害怕
安静,甜蜜
仿佛伊甸园的日子
编程新手都有一个同样的问题:“我应该学习哪一种语言?”。
《Unix编程艺术》(Eric Raymond著)第十四章,对各种语言进行了评价,正好可以用来回答这个问题。下面是我的笔记,整理了六种主要计算机语言的优缺点。读完就会知道,对于不同的任务,应该选择哪一种语言了。
原文写于2003年。网上曾经有一个不完整的中译本,我也在这个网志中转贴过,所以今天贴的只能算修订版了。
====================
几种计算机语言的评价
作者:Eric Raymond
摘自《Unix编程艺术(第十四章)》

一、C
C语言的优点是,运行效率高和接近机器语言。它特别适用于以下几种程序:
1. 对运行速度要求很高的程序。
2. 与操作系统内核关系密切的程序。
3. 必须在多个操作系统上移植的程序。
除此之外,学习C语言有一个最大的理由,那就是它能帮助我们学会,在硬件层次上考虑问题。如果你想以编程作为自己的人生事业,C是一定要学习的。
C的最大缺点是,在编程过程中,你不得不花很多时间,考虑与你要解决的问题完全无关、且非常复杂的硬件资源管理问题。
二、C++
C++在80年代中期推出,支持OO(面向对象编程),原意是作为C语言的取代者。
但是它没能做到做一点,原因有以下几个:
1. 它也没有解决“内存管理”问题,虽然比C有所改善。
2. 标准化不成功。各个编译器都只支持自己选择的一个子集,导致跨平台性不如C。
3. 过分的精细和复杂了。C++的复杂度,超过了C和OO的复杂度之和。
4. OO并没有带来多少优势,反而带来了一些副作用,比如厚重的胶合层和庞大的代码体积。
总的来说,C++的优势还是程序效率,以及面向对象编程能力,糟糕之处是它鼓励复杂的设计。
三、Shell
Shell程序写起来很容易,对于简单的任务,开发速度很快。
当程序变大时,它就不太适合了,很难维护,而且将变得非常专用(只能在你自己的机器上使用),因为 Shell必须调用各种外部程序,无法保证每一台机器都同样安装了这些程序。
最常见的Shell是bash,它的一些语法规则很混乱,会产生很难阅读的代码。另外,shell只能在Unix上使用,无法跨平台。
Shell的最佳用途如下:
1. 执行简单的系统管理任务。
2. 编写系统启动时的初始化脚本。
3. 作为其他语言开发的程序的包装器。
四、Perl
Perl发布于1987年,基本上就是一个增强的Shell。
它的最大长处是强劲的文本处理能力,无以伦比的正则表达式支持,而且有全套Unix API的内部支持,显著减少了对C的需求。
Perl的主要缺点是某些部分设计得非常丑陋,且无法补救,某些部分也过于复杂。当程序规模增大时,必须严格遵守约定,才能保证模块化和设计的可控性,难于维护。
五、Python
Python发布于1991年,是一种与C语言紧密集成的脚本语言。
Python的优点是非常干净优雅,鼓励清晰易读的代码,易学易用;提供了面向对象编程的可能,但并不把这个选择强加于设计者;具有出色的模块化特性,同Java一样,适合用来做需要协同开发的大型复杂项目。在很多方面,它都比Java简单。此外,Python标准中包括了对许多网络协议的支持,因此也很适合网络管理任务。
Python的缺点主要是效率低下,速度缓慢。在执行速度上,它不仅无法与C/C++竞争,而且也不如其他主要的脚本语言。但是,这其实并不是一个严重的问题,有时网络或磁盘的延迟,会完全抵消Python本身消耗的时间。而且因为Python特别容易和C结合起来,因此性能关键的 Python模块,可以很方便地转化成C语言来提高速度。
总的来说,对于小型项目和大量依靠正则表达式的项目,Python不如Perl的表达能力强。至于更小的项目,Python则是大材小用,shell也许更适合。
六、Java
Java发布于1995年,设计目标有两个。
一个是“write once, run anywhere”(一次编写,到处运行),即不依赖于特定的平台;另一个是在网页中嵌入交互程序(applet),可以在任何一个浏览器中运行。由于它的所有者Sun公司的一系列失误,第一个目标并没有完全实现,第二个目标则是彻底失败。但是Java依然在系统编程和应用编程方面非常强大,足以挑战C和 C++。
Java的优点是比C++小巧简单,可以自动管理内存,支持类似C的语法和OO编程,与C程序的结合也很好。
Java的缺点是某些部分过于复杂,比如内部类和匿名类的运用会产生很混乱费解的代码;某些部分功能不完善,也无法利用操作系统提供的功能接口,比如在Java中读取和处理文本文件,并不像其他语言那样容易。此外,Java配置环境和版本的混乱,也让人很头疼。
总的来说,除了系统编程和某些对运行速度要求很高的编程之外,Java都是比C++更好的选择。如果和Python相比,Java可能在大型项目上有优势,但是也不是绝对的。
(完)
1.
这几天,我在读《Unix编程艺术》。

书中介绍了Unix的发展历史。我发现,这是一个很好的例子,说明现行版权制度具有阻碍社会发展的负面作用。
2.
Unix诞生于1969年,是贝尔实验室员工Ken Thompson的个人项目。由于贝尔实验室是AT&T(美国电话电报公司)的下属机构,所以Unix的版权归AT&T所有。

AT&T垄断了美国长途电话业务,所以美国司法部在1958年与它签了一个和解协议。AT&T同意不进入计算机业,不销售任何与计算机有关的产品,以避免司法部起诉它违反《反垄断法》。Unix是计算机的操作系统,所以AT&T不能销售它,任何要求得到源码的机构,都能免费得到。
加州大学伯克利分校得到源码后,为Unix添加了许多功能。然后在1979年,推出了一个自家的Unix版本,取名为Berkeley Software Distribution(伯克利软件套件),简称BSD。

3.
正当Unix蓬勃发展之际,发生了一件谁也没有想到的事情。
1974年,美国司法部再次起诉AT&T违反《反垄断法》。1982年,哥伦比亚地区法庭判决AT&T败诉,必须被拆成8家小公司。但是,这个判决也意味着1958年的和解协议失效,AT&T从此可以进入计算机业。
1983年,AT&T发布了Unix最新版system V,这是一个商业化版本,付费才能使用,并且不得传播源码。这个决定对BSD构成了限制,为了减少纠纷,伯克利分校规定,BSD本身依然保持免费,但是只能提供给持有AT&T源码许可的公司。不过,与此同时,伯克利的师生也开始着手另一项工作:将AT&T的专有代码从BSD中逐渐去除。
80年代后期,几个伯克利毕业的学生,成立了一家Berkeley Software Design Inc.公司,简称BSDi,专门销售BSD的一个商业版本。他们在广告中宣称,自己的产品不包含任何AT&T代码。这句话惹恼了AT&T,1990年BSDi被告上法庭,稍后伯克利分校也被追加为被告。AT&T起诉BSD侵犯了Unix的版权。
这场诉讼对BSD打击极大,所有的开发活动都被迫停止,用户人心惶惶,担心自己也遭到AT&T的追究,因此BSD的使用急剧减少。最后在1994年,双方达到和解,BSD才恢复开发。
4.
AT&T与BSD之间的诉讼,是当代版权制度最恶劣的应用之一。
为什么这么说?
首先,起诉者其实与Unix毫无关系。这是AT&T经理层的决定,而不是开发者的决定。事实上,包括Ken Thompson在内的技术人员一直希望,公司能够公开源码。他们完全有理由这么要求,因为Unix从来不是AT&T的业务重点,最初是个人项目,后来也没有占用公司太多资源。销售Unix的利润,在公司全部业务中,几乎可以忽略不计。为了一点点钱,去打击一个使许多人受益的产品,何必这样做呢。
其次,AT&T根本不关心Unix的发展。它真正关心的是金钱和削弱对手。1994年,官司还没有结束,它就把Unix卖给了Novell公司,从此不再与Unix发生关系,官司也因此不了了之。既然你不想要这个产品,为什么要提起诉讼呢?真是不可理解。

最后,所谓的侵权几乎是不存在的。因为Novell从AT&T买下Unix版权后,检查了BSD的源码,在18000个组成文件中删除了3个,并对其他文件做了一些小修改,然后BSD就重新获得了自由发布源码的许可。这意味着,至多只有千分之一的BSD代码有版权问题,但是就因为这千分之一的问题,导致百分之百的产品被迫中断,完全不符合比例原则。
所以,这场版权官司就是一家利益至上的公司,以微不足道的理由,为了一个自己根本不在乎的产品,悍然发动一场损人不利己的战争。
5.
这场战争给Unix和BSD带来毁灭性的打击。
从八十年代中后期开始,AT&T固执地捍卫Unix版权,完全不顾它的创造者和开发者的愿望,导致Unix丧失活力、一蹶不振,大量开发者无法参与,只好离开了这个平台。
而BSD在1992~1994年期间,开发处于停滞,错过了发展的黄金时机。官司结束以后,又不幸发生分裂,变成了FreeBSD、NetBSD和OpenBSD三个版本。这些原因导致BSD直到今天,都还在操作系统的竞争中处在落后地位。
如果换个时间,官司的损失也许还没这么大。偏偏90年代初是计算机工业决定性的年代,错过了那几年,从此你就不要想翻身了。因为从80年代末期开始,Intel的80x86芯片有巨大的发展,性能快速上升,而成本快速下降,个人电脑的年代就要到来了。市场迫切需要能够运行在386芯片上的操作系统,但是Unix和BSD忙于打官司,都没有去做移植操作系统这件事。其他两个这样做的人,改变了人类历史。
一个是比尔·盖茨,他推出了Windows,占领了个人电脑市场,后来赚了几百亿美元。另一个是芬兰大学生Linus Torvalds,他想学习Unix,但是买不起工作站,就自己写了一个能在386上运行的Linux操作系统,现在全世界超过一半的网络服务器都在使用这个系统。Linus Torvalds后来说,如果他早知道BSD没有法律问题,并且可以被移植到386,他就会加入BSD的开发,而不是自己写一个。
我们不禁要问,如果AT&T不打版权官司、不对Unix收费的话,会发生什么事?……人类的历史、市场的格局也许都会被改写。
6.
Novell买到Unix版权后,也没在手里放多久,1995年又转手卖给了别人。从此,Unix原始版本的开发正式结束。
以后的发展集中在两个方向,一个是各个商业公司自己修改的Unix版本,比如Sun的Solaris,HP的HP-UX,IBM的AIX,另一个则是开源项目的开发,比如BSD和Linux。
(完)

克鲁格曼 美国经济学家 诺贝尔经济学家得主(来源:资料图)
上上个礼拜,我粗浅地谈了下中美矛盾的几个常识,最后的落脚点在汇率问题,前几天温总答记者问一开头也被问及这个话题,可见全世界对于人民币汇率都持有很高的关注度。
今天,我想继续这个复杂的话题,可能要分几次谈。
(一)人民币是否被严重低估
今年伊始,美国诺贝尔经济学奖得主克鲁格曼撰文《中国新年》,再次指责中国实行重商主义政策——人为压低本币汇率,让人民币与美元挂钩。他指出,推出这种举措是“损人不利己”,损害了全球经济的增长。
随后,北京大学经济学院金融系副主任吕随启、中信银行国际金融市场专家刘维明、太平洋证券研究所所长向松祚、社会科学院世界经济所研究员何帆等国内专家、学者对克里格曼进行批驳,凤凰卫视的经济评论员朱文辉在一次节目中数落道:“他的水平并不高,若不是预言经济危机的爆发,也不一定能获得诺贝尔经济学奖。”
国内专家们酸溜溜的评点似乎在说,这个一向对中国毫无恶感并对中国经济多有溢美之辞的克鲁格曼是突然错乱了。而我却更倾向于仔细分析下克鲁格曼的指责,进而理解他到底在说些什么。
那么,人民币汇率是否如克鲁格曼所说的“被操纵”和”被严重低估”了么?
我们先看表一,这是1985—2007年中国外汇储备与人民币对美元的汇率变化:
(表一)
从上面的数据不难看出,1984年,人民币兑美元为1.46,到了1994年实行汇率改革时,人民币兑美元一下子从5.47贬到8.70。短短十个年头,人民币兑美元的汇率自主贬值高达499%。
中国的汇率理论认为,决定汇率的长期因素是一个国家的经济状况和财政收入(起决定作用),经济好转,财政收入增加,本币的含金量提高,本币升值。影响汇率短期波动的因素为利率水平、国际收支状况、各国的汇率政策、投机活动及重大国际政治事件等。
其实该理论仅仅是套用的金本位理论。本币含金量如何定义?财政收入增加,与本币含金量是什么关系?与本币发行量什么关系?完全没有定量的分析。但是就是这么一个没有理论的所谓理论,却完全统治了中国的教坛。
中国的汇率理论认为,决定汇率的长期因素是一个国家的经济状况和财政收入,经济好转,财政收入增加,本币的含金量提高,本币升值。影响汇率短期波动的因素为利率水平、国际收支状况、各国的汇率政策、投机活动及重大国际政治事件等。
而从表二的数据看来,事实却不是理论所述。
这里是1984-1994年中国GDP及国家财政收入一览:
(表二)

从表一、表二所列数据显见,中国的GDP一直在增长,财政收入也在持续攀升,而人民币对美元的汇率却在一路贬值。我国的汇率理论到底出了什么问题?
仔细看,我国的汇率理论仅仅是套用了金本位理论。本币含金量如何定义?财政收入增加与本币含金量是什么关系?与本币发行量又是什么关系?完全没有定量的分析。但就是这么一个没有理论的理论,却“统治”着国内教坛——至少现有的教科书上,没有一本不是这么写的。
实际上,只要是学过国际金融的都知道,中国所谓的决定长期汇率的因素(经济状况及财政收入)只是短期波动的影响因素之一,其他还包括国际收支状况、利率水平、通货膨胀等,而决定一国货币长期汇率水平的是购买力平价(PPP)。
购买力平价理论的基础是“一价定律”(Law of one price),即如不考虑运费及关税,同一货物在不同的国家应该以相同的价格出售。可以说,这就是早先的GATT和如今的WTO的“非歧视原则”在物价上的体现。
1994年,中国的GDP为43800亿元,按年末人民币兑美元汇率8.691元/USD折算为5040亿美元,人均GDP 420.53USD(年末人口11.985亿,以上数据见国家统计局统计公报)。但是,世界银行根据PPP理论汇率折算的中国GDP为24720亿美元(人均GDP为2062.58USD),中国的经济规模全球排名第四!(以上数据见Paul Samuelson 《经济学》第16版 汇率部分,但是按照中国官方汇率计算的GDP为5220亿美元)。
2006年,国家统计局初步核算GDP209407亿元,折合26817亿美元(年末人民币兑美元汇率为7.8087),人均GDP为2040USD(年末人口13.1448亿)。同期世界银行按照PPP理论汇率折算中国GDP为11.7万亿美元,已然全球第二!人均8900USD,早已超过发达国家水平。
2007年国际货币组织、世界银行年会上有专家认为对中国的经济实力高估40%,即将2006年GDP调整为83570亿美元,人均6370USD,计算下来,中国还是属于一般发达国家水平,仍居全球第二,是日本经济规模的2倍以上。
购买力平价理论汇率是国际公认的,而中国一直拒不承认,仅在2007年底由央行派员组团参加世界银行的PPP理论研讨会,被世界各国视为中国即将承认这一国际公认理论的前奏。但是在次年春季广交会上,中国商务部一位高官又声称“购买力平价只能说明消费,不能说明财富”!中国如此反感这种国际上普遍采用的理论,看上去匪夷所思,实际上有其深意。不难推测,如果中国老百姓知道中国已然不是发展中国家,人均GDP十分可观,而自己兜里却没什么钱的时候会怎么想?这个国家的贫富差距要大到怎样惊人的程度,生产能力要低效到何种水平才能达到这种“效果”!
世界银行(或经济合作组织)的PPP理论汇率是按照3000多种与国计民生休息相关的商品的国际平均价格来计算的。根据PPP理论汇率,人民币兑美元应在2.50元/USD,即1985年中国的汇率水平。正因为如此,包括大多数发展中国家在内的世界各国普遍认为人民币被中国 Z F 操纵,严重低估。
也许有人会质问,人民币汇率升不升值跟其他国家有什么关系,他们为什么老拿这个说事儿?另外,Z F不是老是强调,希望其他国家不要对人民币汇率问题指手画脚,不要触犯我们国家的主权么?他们怎么这么无聊呢?
等下一次,咱们再一起聊聊被低估的人民币对于世界经济的影响吧。
3月初的时候,Joel发布了一个惊人消息(中文版见下文)。
他将不再写作网志了!就在3月17日,“Joel谈软件”开张十周年的纪念日,他就会停止自己的写作。
全世界排名第一的程序员网志要关门了?我简直不敢相信,不知道3月17日他会怎么告别,只能心神不宁地等着那一天。
结果昨天晚上,Joel出人意料地贴了一篇新文章,做了一些澄清。
首先,关于软件开发的文章,确实不会再写了,因为除了声明中提到的原因,Joel感到他已经有点在重复自己了。其次,讨论技术细节的文章,以后依然会写,比如Mercurial教程。最后,近期还会有一篇关于Twitter的文章,已经写了一半。
我对此感到很可惜,又一个自己喜欢的作者要从网上消失了。而且,Joel的风格太独特,将来恐怕不会再有这样的人了,滔滔不绝地把自己对软件开发的想法写成1000篇文章,免费给大家看,一写就是10年,而且写得那样生动活泼、富有启迪。这样的事情只可能在互联网诞生的初期发生,只有那种时候,才会让人产生异乎寻常的创造力和热情,因为无论你做什么,都是前无古人的,你都是在创造。等到网络模式成熟了,大家也就司空见惯了,没有太高的热情了,一切都是循规蹈矩。另一方面,我也很高兴,幸亏自己翻译了Joel的一本书,否则未来恐怕不会遇到这样的机会。
下面就是Joel告别Blog的声明,像他的其他文章一样,包含着令人深思的观点,非常值得一看。不知道这是不是最后一次我翻译他的文章了,但愿不是吧。
=======================
告别网志的时候到了
作者:Joel Spolsky
译者:阮一峰
发表日期:2010年3月1日
出处:inc.com
你创立了一家公司,做出了一种优秀的产品,现在你需要把消息传播出去。但是,你没有钱买广告,也没有钱雇佣公关公司,你的预算最多只够雇一个销售员。然而优秀的销售员都是聪明人,不会糊涂到愿意为你这样的小公司工作。
所以,你总是会想到网志。
当前,好像每一个初创公司,都有一个自己的网志。但是,其中99%都有问题。什么问题呢?那就是他们在网志中只谈自己,发一些招聘消息,展示一些新产品,秀一下员工一起野餐的照片。这样的文章,看上去当然很可爱。你的亲爱的妈妈,肯定很喜欢读。但是糟糕的是,除了你的妈妈,其他人都不感兴趣。大多数的企业网志,几乎没有任何读者,没有访问量,对销售也毫无影响。长此以往,网志的更新也越来越少,间隔的周期越来越长(如果撰写网志的责任由多个员工承担,情况就更是如此),最终网志就变得荒芜了。
我开始写“Joel谈软件”的时候,几乎没什么人写网志。那是10年前的事,那时我甚至还没有成立自己的公司。我的网志很快就在程序员中变得流行了,上面有各种各样的内容——如何写出漂亮的代码,如何在短得不合理的时间中拿出产品,如何得到更多的薪水等等。访问人数一直在上升,到了后来,一个月的独立访问者超过100万人。它也使得人们对我的公司“Fog Creek”和我们的产品,产生了兴趣。
那么,企业网志的成功秘诀是什么?怎样才能把网志转化为影响力、销售额和利润?其实,我自己都不太清楚应该怎么做。直到去年,我参加了一个软件研讨会,在会上,一个著名的游戏开发者Kathy Sierra做了一个发言,我听了以后茅塞顿开。她讲了一个很简单的观点,完全解释了为什么我的网志能为我带来商业成功,而其他那么多公司的网志都做不到。
根据她的观察,要让企业网志真正有影响力,就必须谈一些比你的公司、你的产品更大的东西。这听起来不难,但是实际上不是,你需要严格的自律,不谈你自己和你的公司。表面上,网志似乎是一种个人化的媒体,很多时候确实如此。但是,Kathy Sierra说,一旦你使用网志来推广企业,你就不能用它谈论自己感兴趣的事情。你必须谈一些你的读者愿意看到、或者希望看到的东西,这样他们才会变成你的客户。你必须让你的读者感到满意。
举例来说,如果你销售的是照相机的闪光灯,你就不要去谈产品的技术细节,也不要去谈旺季的促销计划(优惠10%!)。你要介绍拍出优秀照片的10个窍门。
如果你开餐馆,网志就不要介绍你的菜单,而要介绍一些好吃的食品。你这样才能吸引,对你的餐馆不感兴趣的饕客。
如果你生产高档巧克力,就不要在网志上写你去多米尼加共和国收购可可豆的旅程,因为这只对你个人有意义。你应该写详细的教程,介绍如何自己做出草莓巧克力。以后的十年中,任何一个美食家或面包师,想在Google中找到制作草莓巧克力的方法,他就会发现你的文章。帮助你的读者做出美味食品,很可能会吸引来一些这种食品的购买者,这就是一个成功的企业网志的意义。介绍前往多米尼加的旅程,只能吸引那些想去多米尼加的人。除非你是搞旅游的,否则你不应该写这个内容。
回顾起来,“Joel谈软件”实际上是一本内容高度集中、专门写给程序员看的小型杂志,以介绍一些软件开发的实用主义观点为主。我也利用它,为自己的公司做免费广告,但是那些广告实际上更接近社论,而不像商业目的的广告。我写的最受欢迎的文章,都与我自己和我的公司无关,比如我写过如果软件公司想要重构代码,那么千万不要推倒重来。
一旦大量的程序员成为了我的读者,他们中的许多人就会变成我的公司的顾客。因为读者群实在是太集中了,导致我们公司开发的产品,只有供程序员使用的才会成功,其他的都不成功。那些都是很优秀的产品,但是就是不成功,因为它们不是供程序员使用的,而我们又没有能力将它们推广到非程序员的目标客户中。
当然,网志占用了我大量时间。它是一种劳动密集型的手工推销方式。合计起来,我用来做自己的网站、写作相关书籍、录制视频、参加网志会议等等的时间,大约占到过去十年我创业总的投入时间的三分之一。那也就是整整三到四年的工作量。
这样做是否值得?你也应该这样写网志吗?
这样说吧,我很受用这个方式,但是当我观察其他人越多,就越发现很多成功的初创公司,不把大量早期创业时间用来架设一个受欢迎的网志,结果也能得到客户,并且快速地发展起来。
而且,更麻烦的是,除了我自己之外,我真的找不到其他任何通过写网志而获得成功的企业家。
过去十年的大热门技术公司,往往都没有一个像样的网志。Twitter、Facebook、Google的网志,都充满了喋喋不休、乏味透顶的新闻稿,最多只是略加改写,好让文章看上去不是那么一本正经。Apple公司实际上根本没有网志,哪怕它开发出了好几样优秀的革命性产品。同时,微软公司倒是有相当一大批很不错的网志,但是毫无作用,这家公司还是给人一种笨重迟暮的印象。
所以,我觉得是时候了,应该从网络日志中退休了,能够在狭小美好的程序员世界成为一个互联网名人,已经足够了。3月17日就是“Joel谈软件”开张十周年的纪念日,我将最后发一篇正式的文章。同时,正常情况下,我也将停止录制视频节目和公开演讲。Twitter?“那玩意太可怕了,我不会去玩的。抱歉,我没法只用140个字母,就告诉你原因。”
真正原因是,虽然我一如既往喜欢写Blog,但是我的时间越来越少了,因为Fog Creek正在不断发展壮大。我们现在有32个雇员,以及至少6条正式的产品线。我们的顾客也已经多到令我无法自由写作的地步,我很怕自己漫不经心写出的一句话,会侮辱到某位顾客。我的日常工作占用了大量时间,以至于无法集中精力,写作一点有思想性的东西,哪怕每个月只写一篇到两篇。
大量证据也表明,推广Fog Creek的产品有很多有效的其他方法。过去,我们倚重网志作为营销渠道,忽略了其他方法。我现在意识到,网志使得我和Fog Creek,成为了一个很小的池塘中的大鱼。结果就是,对于那些经常阅读网志的5%~10%的程序员来说,我们是无可争议的头号产品。同时,对于除此之外的每个人,我们完全是默默无名的。
我希望,放弃网志就好像让一个双眼发展不均衡的孩子,戴一付眼镜。是时候让那只好的眼睛休息一会,而让那只比较弱的眼睛有一个成长的机会了。我的公司需要证明一点,就是我们不依赖于单一渠道推广自己的产品,这是任何一家其他公司都已经明白的道理。在目标市场的一个细分领域中,我们已经彻底做到饱和了,现在我们不得不去大得多的其他领域,寻找更多的潜在顾客。
对于我的读者,感谢你们过去10年中对我的关注。没有你们,我不可能做成这个网志。感谢你们高质量的Email、留言、twitter发言、评论文章,所有这一切使得我的过去10年成为一次美好的旅程。我很享受我们在网上形成的这种关系,期待未来在我的公司的某个发展阶段,我能够与你们有面对面的交流。
(完)
And can it be that I should gain
An interest in the Savior’s blood?
Died He for me, who caused His pain—
For me, who Him to death pursued?
Amazing love! How can it be,
That Thou, my God, shouldst die for me?
Amazing love! How can it be,
That Thou, my God, shouldst die for me?
’Tis mystery all: th’Immortal dies:
Who can explore His strange design?
In vain the firstborn seraph tries
To sound the depths of love divine.
’Tis mercy all! Let earth adore,
Let angel minds inquire no more.
’Tis mercy all! Let earth adore;
Let angel minds inquire no more.
He left His Father’s throne above
So free, so infinite His grace—
Emptied Himself of all but love,
And bled for Adam’s helpless race:
’Tis mercy all, immense and free,
For O my God, it found out me!
’Tis mercy all, immense and free,
For O my God, it found out me!
Long my imprisoned spirit lay,
Fast bound in sin and nature’s night;
Thine eye diffused a quickening ray—
I woke, the dungeon flamed with light;
My chains fell off, my heart was free,
I rose, went forth, and followed Thee.
My chains fell off, my heart was free,
I rose, went forth, and followed Thee.
Still the small inward voice I hear,
That whispers all my sins forgiven;
Still the atoning blood is near,
That quenched the wrath of hostile Heaven.
I feel the life His wounds impart;
I feel the Savior in my heart.
I feel the life His wounds impart;
I feel the Savior in my heart.
No condemnation now I dread;
Jesus, and all in Him, is mine;
Alive in Him, my living Head,
And clothed in righteousness divine,
Bold I approach th’eternal throne,
And claim the crown, through Christ my own.
Bold I approach th’eternal throne,
And claim the crown, through Christ my own.
随着浏览器的升级,CSS3已经可以投入实际应用了。
但是,不同的浏览器有不同的CSS3实现,兼容性是一个大问题。上周的YDN介绍了CSS3 Please网站,该网站总结了一些常用功能的写法。
以下就是这些写法的详细介绍。所有代码都经过了Firefox 3.6和IE 8.0的验证,原文的错误之处也已得到改正。
一、圆角(Rounded Corner)

.box_round {
-moz-border-radius: 30px; /* FF1+ */
-webkit-border-radius: 30px; /* Saf3+, Chrome */
border-radius: 30px; /* Opera 10.5, IE 9 */
}
圆角的实现比较简单,只要设好一个半径值就可以了。遗憾的是,目前所有的IE都不支持CSS圆角,要等到IE 9才行。
二、盒状阴影(Box Shadow)

.box_shadow {
-moz-box-shadow: 3px 3px 4px #ffffff; /* FF3.5+ */
-webkit-box-shadow: 3px 3px 4px #ffffff; /* Saf3.0+, Chrome */
box-shadow: 3px 3px 4px #ffffff; /* Opera 10.5, IE 9.0 */
filter: progid:DXImageTransform.Microsoft.dropshadow(OffX=3px, OffY=3px, Color='#ffffff'); /* IE6,IE7 */
-ms-filter: "progid:DXImageTransform.Microsoft.dropshadow(OffX=3px, OffY=3px, Color='#ffffff')"; /* IE8 */
}
-moz-box-shadow、-webkit-box-shadow和box-shadow的设置是一样的,都有4个参数,含义分别为:x轴偏移值、y轴偏移值、阴影的模糊度、以及阴影颜色。
IE 6~8使用其独有的滤镜,需要设置三个参数:offX(X轴偏移值)、offY(Y轴偏移值)、Color(阴影颜色)。
三、线性渐变(Gradient)

.box_gradient {
background-image: -moz-linear-gradient(top, #444444, #999999); /* FF3.6 */
background-image: -webkit-gradient(linear,left top, left bottom, color-stop(0, #444444),color-stop(1, #999999)); /* Saf4+, Chrome */
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#444444', endColorstr='#999999', GradientType='0'); /* IE6,IE7 */
-ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr='#444444', endColorstr='#999999',GradientType='0')"; /* IE8 */
}
先看Firefox。
-moz-linear-gradient(top, #444444, #999999);
-moz-linear-gradient有三个参数。第一个参数表示线性渐变的方向,top是从上到下、left是从左到右,如果定义成left top,那就是从左上角到右下角。第二个和第三个参数分别是起点颜色和终点颜色。你还可以在它们之间插入更多的参数,表示多种颜色的渐变。
-webkit-gradient(linear,left top, left bottom, color-stop(0, #444444),color-stop(1, #999999));
-webkit-gradient是webkit引擎对渐变的实现,一共有五个参数。第一个参数表示渐变类型(type),可以是linear(线性渐变)或者radial(辐射渐变)。第二个参数和第三个参数,都是一对值,分别表示渐变起点和终点。这对值可以用坐标形式表示,也可以用关键值表示,比如left top(左上角)和left bottom(左下角)。第四个和第五个参数,分别是两个color-stop函数。color-stop函数接受两个参数,第一个表示渐变的位置,0为起点,0.5为中点,1为结束点;第二个表示该点的颜色。
DXImageTransform.Microsoft.gradient(startColorstr='#444444', endColorstr='#999999', GradientType='0');
IE依靠滤镜实现渐变。startColorstr表示起点的颜色,endColorstr表示终点颜色。GradientType表示渐变类型,0为缺省值,表示垂直渐变,1表示水平渐变。
四、透明(opacity)
正常情况下,上层的对象会覆盖下层的对象。

但是,如果将上层对象的颜色变为透明,就可以透过它看到下层对象。

.box_rgba {
background-color: #B4B490;
background:transparent;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#99B4B490',endColorstr='#99B4B490'); /* IE6,IE7 */
-ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr='#99B4B490',endColorstr='#99B4B490')"; /* IE8 */
zoom: 1;
background-color: rgba(180, 180, 144, 0.6); /* FF3+, Saf3+, Opera 10.10+, Chrome */
}
先看第一行。
background-color: #B4B490;
这是设置对象的预备色,也就是不透明时的颜色。如果浏览器不支持透明,就将显示这个颜色。
background:transparent;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#99B4B490',endColorstr='#99B4B490'); /* IE6,IE7 */
-ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr='#99B4B490',endColorstr='#99B4B490')"; /* IE8 */
zoom: 1;
这几行是专门为IE写的,其中主要用到 DXImageTransform.Microsoft.gradient滤镜。我们要为它设置起点色(startColorstr)和终点色(endColorstr)。在单色透明的情况下,这两个值是相同的。需要注意的是,它们的取值是一个八位的十六进制值,前两位表示alpha通道值,00表示完全透明,FF表示完全不透明;后六位则是这个颜色的RGB值。
background-color: rgba(180, 180, 144, 0.6);
除了IE,其他浏览器几乎都支持rgba函数。它有四个参数,前三个为一种颜色的RGB值,第四个为透明度,这里设为0.6。
五、旋转(rotation)

.box_rotate {
-moz-transform: rotate(7.5deg); /* FF3.5+ */
-o-transform: rotate(7.5deg); /* Opera 10.5 */
-webkit-transform: rotate(7.5deg); /* Saf3.1+, Chrome */
filter: progid:DXImageTransform.Microsoft.Matrix(M11=0.9914,M12=-0.1305,M21=0.1305,M22=0.9914,SizingMethod='auto expand');
-ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=0.9914,M12=-0.1305,M21=0.1305,M22=0.9914,SizingMethod='auto expand')"; /* IE8 */
}
除了IE以外,其他浏览器都是用rotate函数,实现某个对象的旋转。比如rotate(7.5deg)就表示顺时针旋转7.5度(degree)。
IE则需要用到一个复杂的滤镜DXImageTransform.Microsoft.Matrix。它一共接受五个参数,前四个参数需要自行计算三角函数,然后分别写成M11 = cos(rotation),M12 = -sin(rotation),M21 = sin(rotation),M22 = cos(rotation),其中的rotation表示旋转角度,如果顺时针旋转7.5度,则rotation就为7.5;第五个参数SizingMethod表示重绘方式,'auto expand'代表自动扩展到新的边界。
除了这个滤镜,IE还有一个稍微简单一点的滤镜DXImageTransform.Microsoft.BasicImage(rotation=x)。其中的x只能取值为1,2,3,0,分别表示顺时针选择90度、180度、270度和360度。
六、服务器端字体(font-face)
设计网页的时候,可能会用到某种特殊的字体。如果用户的机器中没有安装,文字只能以普通字体显示。

这时可以让用户的浏览器自行下载服务器端字体,然后就能呈现出设计者想要的效果。

@font-face {
font-family: 'MyFont';
src: url('myfont.eot'); /* IE6+ */
src: local('myfont.ttf'),
url('myfont.woff') format('woff'), /* FF3.6 */
url('myfont.ttf') format('truetype'); /* FF3.5+, Saf3+,Chrome,Opera10+ */
}
第一行代码:
font-family: 'MyFont';
表示为这种字体起一个名称,可以随意设置,我这里用的是MyFont。
src: url('myfont.eot');
这一行表示字体位置,由于ie只支持服务器端的eot字体,所以这一行是ie专用的。
local()表示在本机(客户端)查找该字体,如果本机已经安装了,就不用下载了。url()表示字体在服务器上的位置,format()用来说明字体格式。Firefox 3.5支持TrueType和OpenType字体,Firefox 3.6又增加了WOFF字体。其他基于Webkit引擎的浏览器(sarif,opera、chrome),目前好像只支持truetype。src: local('myfont.ttf'),
url('myfont.woff') format('woff'),
url('myfont.ttf') format('truetype');
然后,使用的时候这样写就可以了。
h2{ font-family: "MyFont"; }
需要注意的是,字体文件必须与网页文件来自同一个域名,符合浏览器的“同源政策”。另外,由于中文字体文件太大,服务器端字体显然只适用于英文字体。
七、其他
利用css3,还可以完成transform(变形),包括skew(扭曲)和scale(缩放),以及css transitions(动态变换)。这些内容待以后再补充。
(完)
这是一年来,我看过的最讽刺的电影。
它极尽所能讽刺了美军。

在电影中,美军为了更有效地击败敌人,找来了一批具有特异功能的人,训练他们用意识杀人。
简单说,就是让他瞪大眼镜。

盯着一只山羊。


然后,山羊就突然倒地,抽搐而死。




===========================
看完这部电影,我突然觉得,自己也能写一个剧本。
剧本的开头是这样的:
(镜头缓缓穿过紧闭的金属门,切入室内。门口有人站岗。)
(那是一间空旷的、大得像篮球场一样的会议室,中间放着一张巨大无比的圆形会议桌。大概有20多人坐在桌旁,正在开会。有人在发表讲话,其他人在做笔记。)
—— 同志们,目前的局势很严重,出现了许多不利因素。社会上有许多不好的风气,正在愈演愈烈。
(随着他的讲话,相应的蒙太奇镜头一一插入。)
—— 有一张床可以睡觉,却还抱怨没有住房;明明知道中国地少人多,却还认为房价昂贵;手机中有淫秽信息,却不愿意电信公司审查短信;有高速的地铁可以乘坐,却嫌入口处的安检太麻烦;有股市和彩票可以赚钱发财,却还要求提高养老金和医疗保险;自己工作不努力,失业下岗,却要求政府负责;为了个人的一点小事,到处大吵大闹,却不知道保持社会稳定是每一个人的责任;每到逢年过节,都会有下基层的领导,却还说意见无法向上反映;每天晚上可以看免费的CCTV,却还想装卫星天线;网上有内容丰富、制作精良的新华网,却还要上Google。
(镜头切回到会场。发言者提高了语调。)
—— 同志们,这些落后的思想,正在侵蚀群众,使得一部分人变得蛮不讲理,到处滋事煽动,成为社会的不安定因素。国际上的敌对势力,正在利用这些人来渗透、攻击、颠覆我们。长此以往,后果将不堪设想。
—— 同志们,新的时代对我们的执政能力,提出了新的挑战。我们亟需采用具有时代特征的新方法,加强对人民的教育,更好地领导人民。
(镜头一一扫过听众。他们还是在不断地做笔记,或者是一付若有所思的样子。)
—— 同志们,为了适应这个高科技的时代,适应复杂多变的形势,适应许多以前没有出现过的情况,我们必须采用一些前所未有的手段。
—— 我们要达到人类灵魂的深处,从内部彻底教育那些思想落后的群众,彻底改造那些不安定分子。
(所有的听众都停了下来,抬起头,看着发言者。)
(发言者一挥手,秘书小姐从门口走进来,向每个听众发了一份报告。)
—— 大家拿到的报告,来自国防部、科技部、安全部、卫生部、宣传部的联合工作小组。他们发现,全国有13个基因突变者,具备心灵震慑能力。简单说,就是当他们与别人双目相对,就能让对方接受他们的想法。
(屏幕上出现了一双睁开的眼睛的特写。眼神极为犀利。)
—— 我们需要这些人,建立与群众心与心交流的渠道,让群众向我们交心,从心灵深处说服群众。
—— 只有这样做,我们的国家才能彻底保持稳定。我们才能挫败国内外敌对势力的进攻。
(片名《心灵战士》切入。背景音乐响起。)
(画面切换,出现一行字。“献给在净化灵魂战线上工作的人们”。)
……
……
这个剧本怎么样?
我在后面还设想了一些情节。后来,哪怕是没有太阳的大冬天,路上所有人都带着墨镜,行迹匆匆,说话不看对方眼睛,因为害怕一看,自己的心就没了。再后来,这个城市中除了瞎子,大家都被人看过了……好像还挺有趣的,编剧看来是一个不错的职业。
对了,差点忘了声明。以上故事,纯属虚构。
(完)
下面这组照片,真是令我赞叹不已。
===============================
碧姬·巴铎(Brigitte Bardot)
时间:1955年
摄影师:Gaston Paris
1.

2.

3.

4.

5.

6.

7.

8.

9.

10.

11.

12.

13.

14.

15.

16.

17.

18.

19.

20.

21.

22.

================================
看完照片,我就干了一件让自己后悔不已的事情:上网搜索“Brigitte Bardot”。结果,……
——警告:如果你想永久保留美好印象,请不要点击下面的链接。
因为你会看到,1968年和2003年的她,然后你就会像我一样后悔。
(完)
经常有读者抱怨,看不到网志中的图片。
确实如此。正常情况下,过去文章中的图片,超过60%都无法在国内正常显示。

但是,事实上,这个网志的所有图片链接都是有效的,没有一个链接是坏的。无法显示只是因为被屏蔽了,只要你不在中国大陆,所有图片都能看到。
最早的时候,我使用Flickr存放图片。但是2007年,Flickr被屏蔽了。

后来,我改用Picasa存放图片。2009年,Picasa也被屏蔽了。

我又改用Photobucket。2010年1月,Photobucket也被屏蔽了。

怎么办?再换一个地方流浪,还是使用国内的图片储存服务?
我觉得,任何可以免费存放图片的国外服务商,都有可能被屏蔽;而国内的图片服务商,我真的信不过。比如,国内某网站的使用协议写明,他们可以随时无条件删除你的图片,并且不允许上传任何有性意味的图片。
所以,我最后决定,自己搭一个图片库,把图片都存在自己的主机上。

我的思路很简单,先搭建一个开源相册程序,然后修改成Flickr那样就行了。
一开始,我装的是Movable Type。毕竟这是每天用的程序,我最熟悉了。但是,我很快发现,它不可能改成相册。MT的长处是生成静态网页,而相册需要的是动态显示,两者根本无法融合。另一方面,MT的开发现在很不景气,第三方插件极少,甚至连ajax上传按钮都没有,必须花20美元购买商业插件,否则文件只能一个个上传。我只好放弃它了。
改用WordPress以后,我又遇到了另一个问题,那就是插件太多了。WP的相册插件足有几十种之多,我不知道该如何选择。有一个NextGEN Gallery插件的下载人数最多,我就选了它。结果发现,这个插件实在是太优秀了,专业图片网站的功能,它几乎都能实现,而且做得非常易用漂亮。如果你也想搭一个自己的相册,我强烈推荐这个插件。
最后,我搭建完成的图片库网址是[image.beekka.com],欢迎查看效果。这篇文章里的图片,都是来自那里。因为相册只供我个人使用,所以做得比较粗糙,但是我想要的功能都做到了。
NextGEN Gallery的详细使用说明,请参见David Potter的长篇介绍。我修改的地方,其实只有2个文件。
1. 在“Options/Gallery”中的“Show ImageBrowser”选项打勾。
2. 修改插件中的gallery.php文件。
3. 修改插件中的imagebrowser.php文件。
所有的图片信息,基本上都包含在$image这个对象变量中。使用<?php var_dump($image) ?>查看变量,使用<?php echo $image->filename ?>输出变量值(比如例子中的图片文件名)。
当然,这个图片库也不一定安全,照样有可能被屏蔽。但是,至少一切都在我的控制之中。万一被屏蔽了,只要对图片储存目录打包压缩,然后换一台主机解开压缩包就行了。
我感到,这个图片存储的解决方案有推广意义,值得其他网志作者考虑。
(完)
上一篇网志《“熔模铸造”图解》发出后,读者emi有一段很长的留言。
那是触目惊心的文字,为了让更多的人看到,我决定以单独一篇文章的形式,重贴一次。
===========================
我所知道的深圳八卦岭小印刷厂
作者:emi

去年,我参观了深圳市福田区八卦岭的一些印刷工厂。
那里就是城市里的工业区。印刷厂就设在许多有十几二十年楼龄的老房子里,租金通常是25-30元/平米。
那些印刷厂,通常属于私人或私人合伙所有,一两台印刷机的生产规模,面积100平米至500平米,大一些的为800平米至1000平米。为了节省成本,几乎没什么工作经验的工人也能上岗,并且上岗后基本没有岗前培训,直接干活。
上周,我又去那里,正好是春节后新开工的时间。在楼道遇到一个小伙子,也就十八九岁的样子,举着一支手,其中一根手指被切掉了一截,血一路滴滴嗒嗒往外滴。听说他是新招的工人,被切纸机斩断了手指。切纸机是一种靠重力切断的设备,几百张纸一次切断,何况血肉之躯呢。我想起,在那些印刷厂的生产间里,见过不止一个手指秃秃的工人。
在这些厂里,不仅新招的工人,就连老工人也是没有劳动合同的。所以,发生生产事故后,厂里最多付点医药费,止血包扎一下而已。而这个新招的工人,他除了恳求厂方不要因此将他除名之外,是不敢提任何要求的,因为否则他连一日三餐和住的地方也没有了。(这些工厂的工资很低,但是包吃包住。吃是一日两餐,就在车间里随便找个地方吃。工作时间是早八点到晚八点,中间休息一两小时吃饭上厕所等。住的地方我没去过,但据说是十几人一间的大通铺。)
据了解,这些工人都有一笔押金在厂方手里,这是他们进厂之前,必须要向厂方交纳的,厂里就是靠这笔钱控制工人流失的。为了不损失这笔钱,工人只好听任厂方摆布,让加班就加班、说推迟发工资就推迟发工资、不可以自已提出辞工,还要小心翼翼不能被厂方辞退……
自已提出辞职,厂方就会扣掉那笔进厂押金。若因自已原因被厂里辞退,也是拿不回那笔押金的。因此,对于每月工资千元左右的工人而言,选择权是非常有限的。说到这里,上面那个被切到手指的工人,他的简单包扎医药费也有可能要从自已的进厂押金当中扣除的。
另外,为了节省成本和招揽更多业务,很多印刷厂把办工区的卡座出租给那些跑业务的个人。每个位子每月800-1000元租金,电话网络费用自理(我想,这一招应该是跟出租汽车公司学来的吧)。这样做的好处,一是印刷厂不用养业务员,二是还会有一笔租金收入。
那些业务员由于自负赢亏,所以什么都敢答应,成交价越高越好。同时,由于他们坐在印刷厂里办公,也会给客户造成一种假象,以为自已找到了厂家,必然便宜又放心,以为不会吃亏挨宰。其实,印刷业报价涉及的因素和计算非常繁复,普通人根本没办法清楚分辨,只能模模糊糊被迫同意对方的报价。那些对业务较熟悉,较能说服客户的业务员,收入状况非常不错。
那些业务员通常会虚报一倍甚至两三倍报价,所以只要一个月接到一个单子,几百块钱的卡座租金便简直不在话下,收入也有了保障。但是,这样一来,整个行业显得乌烟障气,非常混乱。
至于那些开印刷厂、赚了些钱的小老板,他们工作之余做什么呢?无非就是打麻将,赌博。所以,我去不少印刷厂,常能见到麻将桌上散乱的牌张、红着眼睛熬夜后中午才来上班的这些人。
【相关文章】
(完)
转载《明镜周刊》的一篇文章。
===================================
Jacob Holdt 的美国往事
作者:Christoph Gunkel
译者:阮一峰
原载:德国《明镜周刊》,2010年2月16日

1. 回到40年前,Jacob Holdt是一个愤怒的年轻人。他满怀理想主义,反对越南战争,希望改变世界。他的梦想是前往智利,支持萨尔瓦多·阿连德领导的社会主义运动。

2. Jacob Holdt是丹麦人,但是他不喜欢这个国家。因为丹麦表态,支持美国发动越南战争。1970年春天,他动身前往美国,计划从那里过境去智利。那一年,他23岁。

3. 但是光怪陆离的美国社会吸引了他,亲眼目睹的贫穷、绝望和黑暗,令他震惊。他改变了计划,在美国待了下来,打算好好了解这个社会。

4. 他专门去那些其他人不愿意去的地方,访问贫民窟,与黑人、妓女、吸毒者、同性恋、杀人犯住在一起。

5. 他也去访问上流社会,观察富有的银行家和商人家庭。

6. 这样的生活一直持续了5年。1975年,他的两个好朋友在旧金山街头被枪杀,他终于感到了厌倦,决定返回丹麦。这时,他的行李中已经有了15000张照片,这是他用照相机记录下的真实美国。

7. 1977年,他出版了摄影集《美国》(America Pictures),震动了世界,改变了人们心目中的美国形象。

8. 这些照片大多反映底层美国穷人的生活。比如,一个黑人小女孩打开锈迹斑驳的冰箱,寻找食物。

9. 再比如,一个弯着腰的老太太拿着扫帚,打扫自己破旧的小木屋。

10. 它们是贫穷、暴力和绝望的见证。

11. Jacob Holdt并没有钱,他来到美国的时候,兜里只有40美元。他依靠卖血的钱,去买胶卷和食品。他每星期去卖两次血,每次可以换来五美元。在漫游途中,他经常吃猫食。

12. 正是因为过着和他们一样的生活,他才赢得了被摄影的穷人的信任,愿意将真实的情感暴露在他的镜头前。

13. 在这样的环境中待久了,他渐渐地对生活的艰苦和绝望,感到了麻木。1973年,他生活在底特律,那是当时美国谋杀率最高的城市,晚上都能听到窗外有子弹声。当地居民睡觉前,都用冰箱把大门顶住,彻夜开着无线电,告诉窃贼屋里有人。Jacob Holdt虽然很紧张,但还是选择在这里待下去。

14. 五年中,他走过的距离是161265公里,去过美国50个州中的48个,在381个家庭过夜,被捕过6次,被抢劫过4次,有一次子弹擦过耳朵。

15. 他对资本主义社会造成的不平等,感到愤怒。

16. 他写道:“我在这里生活得越久,就越习惯用黑人的眼镜看待白人。”

17. “我无法隐藏自己日益增加的憎恨。”

18. 他觉得,很多南方种植园主的生活,不过是奴隶制生活在当代的翻版。

19. 他相信资本家在有意煽动种族主义,人为制造社会的分裂。

20. 因此,他同情那些瘾君子和杀人犯。

21. 同时,他也记录了美国生活中富裕的一面。

22. 这种反差,令社会的不公正更加显著。

23. 他镜头中的中上阶层白人的生活,与底层黑人的生活一样真实和客观。

24. 但是,他很清楚自己的立场在哪里。他写道:“无论何时,每当我有机会去过那种所谓的‘优越生活’时,我经常感到恶心,快速地逃上高速公路离开了。”

25. Jacob Holdt在1970年来到美国前,觉得那是一个“乏味的白人中产阶级国家”,现在他的看法不一样了。

26. 那是一个贫穷和压迫无处不在的国家。

27. 他用照片记录了人们的挣扎。
(完)
1.
上周,有一条微软公司的新闻。
知名黑客网站Cryptome.org,公布了一份微软公司的内部文件。此举惹怒了微软,在施压删除此文件未果后,微软已经与网络供应商交涉,强行关闭了该网站。
我一看就觉得,这是美国版的“拔网线”,顿时感到很气愤。强行将他人的网站下线,原来不仅中国人干,美国人也干。太野蛮了!
但是随后,我就看到了这个事件背后的法律知识介绍。微软公司是根据美国《数字千禧年版权法》(Digital Millennium Copyright ACT,简称DMCA)采取这个行动的。
仔细研读DMCA这部法律以后,我不由感叹,美国人拔网线比中国人文明多了。
2.
DMCA规定,如果某个网站侵犯了你的版权,你可以向它的主机服务商发出通知,要求撤下侵权内容。“DMCA通知”(示例一,示例二)必须包含下列要素,缺一不可,否则就是无效的,收到者可以不予理睬:
1)物理签名或电子签名;
2)侵权内容的具体位置;
3)侵权内容;
4)本人的联系方式;
5)版权遭到侵犯的声明;
6)以上信息皆为事实的声明。
主机公司收到通知后,确认格式正确,并且包含所有上述要素,就要在72小时内采取行动,停止侵权内容的访问(通常是备份后直接删除),然后通知网站的站长。
站长收到删除通知后,如果感到不服,可以向主机公司发出“反通知”(Counter-Notice),要求恢复被删内容的访问。主机公司收到“反通知”后,必须先通知“DMCA通知”发出人,然后在两星期内恢复被删除内容的访问。除非在这期间,版权所有人向法院提起上诉,或者申请到了法院的禁令(injunction)。
最后,如果“DMCA通知”发错了,发出方必须赔偿全部损失和承担诉讼费用。
可以看到,整个流程很清楚,规定详细严格,侵权方和被侵权方的权利都得到了保障。没有任何一方是高人一等的,一切都按照法律办,绝不会出现申诉无门。要是中国的站长有这种待遇,恐怕早就感动得落泪了。
3.
除了保障站长权益以外,DMCA还极大地免除了第三方公司的连带责任,进一步使得站长们有一个宽松的生存空间。
它规定有四类公司不承担侵权责任:
1)中介服务提供商(Conduit):比如宽带公司。虽然侵权内容通过它的网络传送,但是它可以完全免责,因为其本身不是使用的目的。
2)缓存服务器(Caching Service):为了提高网络访问速度,暂时性保存访问内容的服务器,可以完全免除侵权的责任。
3)主机公司(Web Host):前提是满足某些条件,主机公司才能免责,比如事先不知道存在侵权、对侵权内容没有控制能力、不鼓励侵权行为的发生、不直接从侵权内容中盈利、在得到通知后迅速移除侵权内容等等。
4)信息定位工具(Information Location Tool):主要是指搜索引擎和信息分类网站,与主机公司相似,它们必须符合上一条的条件才能免责。
由于这些免责条款,美国的主机公司才能放心经营,不会出于恐慌,随便就把客户的网线拔掉,美国的Web 2.0网站也才会如此兴盛发达。
4.
在美国做网站,DMCA就是对你影响最大的法律。
一方面,我们知道,在美国境内提供或下载盗版音乐和电影,轻则罚款,重则坐牢,这是DMCA的规定。另一方面,我们也知道,美国网站不会因为一个页面存在违规内容,就导致全站不能访问,这也是DMCA的规定。
5.
就算你不在美国做网站,DMCA依然对你有巨大的影响。
因为我们中很多人,使用的都是美国主机公司的服务,这些公司是必须遵守DMCA的,所以你不能在他们的机器上干违反DMCA的事情。
此外,Google是美国公司,它也要遵守DMCA。这意味着,我们可以向Google发出“DMCA通知”,要求它删除某个搜索结果。Google的中国分公司,就有一个专门的中文页面,告诉中国用户应该怎么做,网址是[www.google.cn]。
为了保护自己的权益,减少损失,我们需要了解DMCA。这就是这篇文章的目的。
(完)
1.
让我从一件新闻讲起。
2009年,计算机业界发生了一件大事:甲骨文公司以74亿美元收购SUN公司。

消息宣布后,有一个人坚决反对这笔交易。他叫Michael Widenius,是数据库软件MySQL的主要创始人。

他为什么要反对呢?因为MySQL现在归SUN公司所有,一旦收购成功,就将属于甲骨文公司所有。但是,后者的主要产品是Oracle数据库,与MySQL是竞争关系。所以,甲骨文公司不可能扶持MySQL的后继开发,甚至有可能杀死MySQL。
Michael Widenius不能接受这个事实,他发起万人签名,提交请愿书,要求欧盟委员会否决这项交易。具体情况可以参见HelpMysql.org。

2.
去年12月28日,他写了一篇很长的文章“Help keep the internet free”,解释为什么反对这项交易。他是这样写的:
"If Oracle were allowed to acquire MySQL, we would be looking at less competition among databases, which will mean higher license and support prices."
“如果甲骨文得到了MySQL,数据库市场的竞争将会减少,最终导致更高的价格和收费。”
你觉得这句话对不对?
我觉得不对。我认为,甲骨文公司杀不死MySQL,数据库市场的竞争不可能减少。这并非由于甲骨文公司不想这样做,而是因为MySQL是无论如何都不可能被杀死的(假定始终存在市场需求的话)。
3.
为什么MySQL是杀不死的?
答案非常简单。因为它的许可证是GPL。
GPL明确规定,任何源码的衍生产品,如果对外发布,都必须保持同样的许可证。这就是说,任何人只要发布MySQL的修改版本,他就必须公开源码,并且同意他人可以自由地复制和分发。
现在让我们假想一下:
第一种情况:甲骨文公司决定中止MySQL的开发,会怎么样?
一定会有其他人接手,继续推出MySQL的后续版本,这是GPL许可证允许的,完全合法。虽然不能再叫MySQL这个名字,但是只要代码完全兼容,名字又有什么关系呢。事实上,Michael Widenius自己的公司,现在的产品MariaDB就是基于MySQL的。
第二种情况:甲骨文公司决定,MySQL的后续版本不再开源,或者整体并入Oracle数据库,会怎么样?
答案更简单,不可能发生这种情况。因为根据GPL许可证,只要发布基于原代码的新产品,就一定必须开源。
4.
所以,我实际上觉得,Michael Widenius没有竭力反对的必要。不管甲骨文干什么,MySQL都不可能灭绝。
相反的,真正感到倒霉的人,应该是甲骨文公司才对,因为它花钱买来自己无法控制的财产。任何的代码,只要置于GPL之下,就不再受作者或所有者控制了,想杀也杀不死了。
5.
如果一个程序员想将自己的代码开源,他有许多种选择,大致可以分成三类:
1. 选择GPL许可证,要求衍生代码必须开源。
2. 将代码放入“公共领域”(public domain),彻底放弃版权。
3. 选择更宽松的许可证,比如BSD和Apache许可证,不要求衍生代码开源。
许多人认为,选择后两种做法比选择GPL更值得赞扬,因为更加大公无私。但是,这样的看法是错误的,实际上GPL要好于后两种选择。
让我们再来假想一下,如果MySQL的源码处于公共领域,或者BSD许可证之下,那会怎样?
那样的话,许多站长恐怕都会感到大难临头了。他们不得不做出选择,将来到底是升级到第三方小公司推出的、质量没有保证、支持力量薄弱、互相不兼容的基于MySQL 5.x版本的各种衍生数据库,还是升级到甲骨文公司推出的、与Oracle兼容的、号称具备各种新功能和最佳性能、并且广告满天飞的MySQL 6.0版本。
在BSD许可证或者公共领域代码的情况下,甲骨文公司可以从容地将MySQL 6.0变为闭源产品,推出你只有花钱才能买到的新特性和后继版本,并且只要你复制给他人使用,就要起诉你。使用开源软件的用户,将因此变为依赖甲骨文公司的用户。只有这种情况发生,才真正有必要,竭力反对甲骨文收购SUN公司。
当程序员放弃代码的版权,或者选择BSD许可证,他可能认为自己做出了世界上最无私的行为。很大程度上,事实确实如此。但是,我们要知道,这个世界是一个商业利益占主导的世界。一旦发生像甲骨文拥有MySQL这一类的事情,你的代码的价值将大大削弱,大公司先是免费利用它们,然后再设法推出取代它们的私有产品。你以为自己奉献了爱心,但是实质上变成了为大公司无偿打工。
从这个角度看,GPL是更好的开源许可证。它保证了自由始终是自由,既无法被剥夺,也不是一种圈套或陷阱。
6.
有的朋友读到这里,可能会提出疑问。如果GPL许可证真的这么好,那么为什么GNU基金会还推出了LGPL许可证?
所谓LGPL许可证,全称是Lesser General Public License,直译就是“限制更少的GPL许可证”,1991年时与GPL(第二版)同时发布。它近似于BSD许可证,允许将代码用于闭源产品。
这就产生了一个很有趣的问题。为什么像Richard Stallman这种坚持自由丝毫不可侵犯的人,会同意将自己的代码用于闭源产品?
说起来,这其实是他的策略,主要与GNU C library有关。1991年的时候,市场上有很多C语言库可以选择。如果GNU的C库是GPL许可证,那么很多私有软件不会选择它,因为一旦选择了它,就意味产品本身一定要开源。所以为了保证开源软件得到使用和推广,并且闭源软件中有开源的成分,总比一点没有好,所以才诞生了LGPL许可证。
Richard Stallman说得很清楚:
"After all, there are plenty of other C libraries; using the GPL for ours would have driven proprietary software developers to use another—no problem for them, only for us."
“毕竟,市场上的C库有的是。GPL许可证将迫使私有软件去使用他人的库,这不会给他们带来困扰,只会给我们带来困扰。”
所以,策略是这样的:整体软件,或者没有替代品的代码库,一定要使用GPL许可证;有替代品的代码库,可以使用限制较少的开源许可证,但是在取到足够市场份额之后,也应该转为GPL许可证。这就是为什么javascript的代码库,大多数都是类似BSD的许可证,而不是GPL许可证的原因,因为可替代自己的竞争者实在太多了。
总之,如果你想把自己的软件开源,只要不属于上面这种例外情况,GPL就是更好的选择。
(完)

我从小接受的教育是,美国不单单是美国,是美帝国主义,是霸权主义,是太平洋的警察。他依仗自己的强大国力四处欺压全世界各族人民;同时,他也是纸老虎,是《别了,司徒司徒雷登》中傲慢的口吻应该对待的糖衣炮弹。
当后来我知道这些印象实在是幼稚又可笑的时候,却发现周围的朋友并不全都有所顿悟。在以上那种中美关系敌对化的长期思维导向下,他们往往会忽视一些基本的事实,从而理所应当地得出一些十分奇怪的论调。
而这些论调,往往是当局想要的那种。
自从金融危机以来,中美贸易摩擦带动其他矛盾日益凸显。最近,媒体报道得最多的是这三个方面:即奥巴马会见达赖、美国对台军售和美国不断对人民币汇率升值施加压力。
如何对这三个事件做政治和经济上的分析,不是浅薄如我能写得清楚的,我想做的,不过是给我那些从不关心时事却很容易草率得出结论的朋友们,提供一点客观的背景资料。
一、 奥巴马会见达赖

关于这件事,很多人说:“真不知美国为什么现在突然要跳出来挑衅中国的底线?!”仿佛美国总统从来没有(或者从来没有如此高调地)会见过达赖一样。
事实上,达赖于1989年获得诺贝尔和平奖(这一点国内基本上没有做过任何报道)。时隔二十年,美国总统奥巴马也获此殊荣,两位诺奖得主于2月18日在白宫的地图室会面。而自1991年老布什第一次会见达赖以来,美国两党总统已经与达赖总共会见了11次。除了美国外,还有法国、波兰、澳大利亚、日本等国的国家领导人曾经会见过他。
所以,我们应该得出一个显而易见的结论:对待达赖事件的态度,美方一直没变,此次有微妙变化的是中国。
二、 美国对台军售
1996年,由于李登辉前往美国康乃尔大学发表公开演讲以及台湾当局第一次直选“总统”,中国大陆所举行的军事演习行动令台海局势骤然紧张,俗称“台海危机”。
下图为大陆军方地对空导弹在台湾海峡的覆盖范围,很明显,导弹一旦发射,其轨迹将划过台湾半岛上空。而这样的发射在1995年至1996年期间,以军演为形式,不断上演。

根据陈水扁在2003年11月30日所公布的数据,解放军在中国东南沿海部署的战术弹道导弹数目为496枚,其中江西乐平、赣县、广东梅州各96枚、福建永安144枚、仙游64枚。至今年为止,这个数量有增无减。
诚如我方所说“不放弃使用武力解决台湾问题”一样,台湾人民也不可能对着随时可能划过他们头顶的导弹与大陆进行和平谈判。
三、 美国对人民币升值施加压力

由于这个问题太过复杂,我准备另开一文来详述,在这里仅仅引出一个疑问,人民币到底该不该升值?
先抄写一条中国所有金融教材所公认的外汇理论给大家看看:
从长期来看,一国的财政经济状况是影响该国货币对比价的基本因素。一国的财政收支或经济状况是影响该国货币对外比价的基本因素。一国的财政收支或经济状况较以前改善,该国货币代表的价值量就提高,该货币对外币就升值;相反,若一国财政经济状况较以前恶化 ,或财政赤字增大,该货币代表的价值量就减少,该货币对外币就贬值。一般来讲,财政状况对本国货币的影响相对较慢。
本Blog曾总结过一份《人民币汇率变动一览表》1,2,3
从中不难看出一个较大幅度的贬值时期,即1985年到2004年间,人民币兑美元的汇率从1985年的2.94,一直贬到8.2,贬值幅度高达100%以上。
但自改革开放以来,我国的GDP却一路飙升,每年增长率都在10%左右,明显违背上述外汇理论。因为,照上述理论所言,人民币怎么会不升反降?
那么,我想提出的疑问是:到底是我国外汇理论出了问题,还是我国的人民币汇率不正常?
下个礼拜,再对这一问题进行一个全面的分析吧。
英国摄影师Alex Hofford访问了一家宁波的乡镇企业。
在那里,他拍摄了“熔模铸造”(investment casting)的全过程,非常有趣。
从古代青铜器算起,这种铸造工艺已经有几千年的历史了,并且直到今天还在广泛使用。看完下面的这组图片,你就会明白它到底是怎么做的。
此外,你还会从中看到,现实中的中国制造业是什么样子的,以及其中反映出来的一些社会问题。我强烈推荐这组作品。
它属于Alex Hofford的“中国工厂”系列照片之一。这个系列还包括游戏机工厂、遥控器工厂、塑料工厂、手机充电器工厂、笔记本电源工厂、变压器工厂和五金工厂。
下面的图片比较多,如果无法显示,多刷新几次即可。
================================

1. 工人在搅拌蜡原料。

2. 融化的蜡注入金属模具。

3. 等到初步凝固后,就可以从模具中取出蜡模型。

4. 蜡模型放入冷水中,进一步冷却固化。

5. 成型的蜡模型移入储藏室。它们是金属零件的原型,那些零件可以用于制造汽车、火车、飞机、机械设备、电站设备等。

6. 蜡模型都放在一个个竹筐里。

7. 下一步是将同样的模型都合并在一起,形成一个模型树。通过加热,把它们黏合。

8. 排列好的模型树,将被送入下一道工序。

9. 这一步是形成陶模(ceramic mold)。简单说,就是反复执行三个步骤:涂料、撒砂和硬化。首先,模型树被浸入硅酸乙酯或者硅酸钠的复合溶液。溶液的气味很像氨水,但是现场没有一个工人戴着呼吸系统保护装置。

10. 完成涂料的模型树,再被手工洒上二氧化硅晶体或者锆石晶体。这个步骤会反复进行多次,然后模型树会被悬挂,等待风干硬化。

11. 工人是新疆来的临时工。

12. 涂料和撒砂需要一直做,直到陶模的厚度达到一厘米左右。

13. 粉尘太大,我的眼睛流泪了。

14. 完成之后,陶模就被放在一边,由夜班工人处理。

15. 夜班的任务是熔铸。之所以要在夜里进行,是因为宁波市规定,晚上11点以后电费半价。

16. 铸造车间的熔炉使用煤炭作为燃料。陶模被推进去,里面的蜡芯开始融化,二氧化硅晶体互相结合,形成了一个坚硬抗热的空心陶瓷部件。这一步叫做烧芯。

17. 工人用推车,将烧制好的陶模取出熔炉。他既没有戴手套,也没有戴护目镜。

18. 烧得通红的陶模,被直接放置在砂石上。

19. 工人用铁杆,将陶模排成一串。他们穿的完全是普通鞋子,没有穿那种厚重的安全靴。每当铁杆碰到陶模,就会有余火飞溅起来。

20. 工人用铁耙子,将砂石围在陶模四周,只露出口上的部分。陶模被牢固地固定了。

21. 同时,其他工人点燃了电熔炉。虽然,将这道工序留到夜晚进行,是为了省电费,但是另一个好处是,拍摄出来的照片很壮观。

22. 废钢加入电熔炉融化。

23. 融化后的钢水被倒入一个可以移动的坩埚。两个工人用长杆子架住坩埚。

24. 这一步非常危险,火花四溅。但是工人们没有戴手套,也没有戴护目镜。

25. 钢水被倒出坩埚,倒入一个个陶模之中。

26. 钢水发着白光,温度达到千度以上。

27. 工人全神贯注,非常小心,防止钢水从陶模上溢出来,或者倒错了地方。

28. 如果钢水倒得不好,没有正好填满陶模,或者在倒的过程中形成气泡,整个零件就成了次品和废品。工厂的利润和成本就要受到影响。

29. 现场的烟雾和气味非常强烈,但是没有人戴呼吸保护装置。

30. 经理告诉我,厂方以前给工人发过护目镜、手套、靴子、面具等劳防设备,但是工人不愿意使用。

31. 赤手空拳地在熔炉旁倒钢水,无疑让现场弥漫着一股英雄好汉气概。

32. 经理说,厂方曾经规定,不使用劳防用品,每次罚款5元。

33. 但是不久以后,因为罚款会减少工人的收入,所以工人纷纷跳槽,到其他没有劳防用品也不罚款的厂里干活。所以,厂方最后只能放弃罚款制度。

34. 这就是奇怪的地方。不仅厂方不重视生产安全,就连工人也不重视对自己的保护。在西方国家,工人的自我保护意识已经强化到有点过分的程度,而在中国,这种意识则是根本不存在。提高生产安全的唯一方法,只能是通过更严厉的法律,以更强有力的力度,迫使厂方去实施。对工厂随时进行抽查,就是一个好方法。但是,执法部门缺乏人手,以及政府中的腐败,都会阻碍这项工作。

35. 中国是一个大国,保护工人和保护环境,都遇到了相似的问题。那就是法律制定出来了,却得不到实施。要想解决这个问题,真是谈何容易。

36. 等到冷却后,浇铸好的陶模就被巨大的火钳移走了。

37. 它们被放在推车上。

38. 这一次,工人戴着手套。

39. 陶模和里面的零件,被拉到楼外。

40. 它们被倒在地上冷却,等着日班工人移去陶瓷外壳。

41. 第二天早上,工厂烟囱冒出了煤烟。具有讽刺意味的是,我是在联合国哥本哈根气候会议闭幕的当天,拍摄这张照片的。

42. 燃煤的锅炉整个白天都要烧着,这是为了保证“烧芯”步骤的进行。温室气体就是这样被排放的。

43. 工人用喷灯除去零件上面蜡模的残片,这一步必须重复执行。

44. 这是一项非常艰苦的工作。

45. 工作条件很恶劣。

46. 虽然看上去,现场一片混乱,但是这项工作本身完全是有条不紊地在进行。

47. 其他工人从零件上去除二氧化硅的残渣。有时会用到榔头。

48. 这个工人的手套上都是洞。工作条件无疑是很差的。

49. 钢铁零件会进一步用机器清洁表面,把浇铸过程的痕迹完全去掉。

50. 工人用强力机器对产品做进一步光滑处理。这个工作场景简直就像中世纪的手工作坊。

51. 午饭时间到了。

52. 饭菜中没有肉食,只是米饭和蔬菜。

53. 午饭后,工人将零件放入喷砂机,做最后的抛光。

54. 拍摄这张照片的时候,喷砂机正好开着,许多小块的碎石从里面高速弹出,像连珠炮一样打在我身上。奇怪的是,这个工人戴着面具,保护的是呼吸系统,他却没有戴护目镜。

55. 喷砂完成后,零件成品就从机器里落在手推车上。

56. 它们会被用于重型工业的机械上。

57. 用“熔模铸造法”制造钢铁零件的整个过程,到此就全部完成了。
(完)
他是资深Linux程序员和评论者。他对Android许可证的评论,是我见到的最准确、最通俗易懂的介绍。当时,我翻译了一些片段,打算在自己的文章中引用,但是后来没用上。我觉得不甘心,于是今天就把全文译出,贴在下面,希望让更多的朋友看到。
如果你对GPL、ASL、BSD这一类的许可证名字,只有一些模模糊糊的概念,搞不清楚它们之间的区别。那么,我强烈推荐你阅读此文,读完后,你就会对开源软件的许可证,有一个基本的认识了。
值得指出的是,此文写于2007年,当时Google刚刚宣布Android项目,代码还没有完成,工程样机更是没有,外界只能凭几句文字叙述,猜测这个系统的样子。但是,Ryan Paul就是有这个本领,只看许可证选择,就判断出Android的开发模式。事实证明,他的判断完全正确,除了一点:他没有料到,Google会修改Linux内核,故意造成两者不兼容。

(图片说明:自由软件基金会的标志)

(图片说明:Apache基金会的标志)

(图片说明:FreeBSD基金会的标志)
=================================
Why Google chose the Apache Software License over GPLv2 for Android
为什么Android不是GPL许可证?
作者:Ryan Paul
译者:阮一峰
发表日期:2007年11月6日
原文网址:[arstechnica.com]
Google finally entered the mobile software market by turning the 2005 acquisition of Android into the Open Handset Alliance.
Google终于进入了手机市场。2005年,它收购了Android。在此基础上,现在,它组建了“开放手机联盟”(Open Handset Alliance)。
Google hopes to promote third-party mobile software development and foster a broad developer community on top of Android's Linux-based mobile platform.
Android是一种Linux内核的手机操作系统。Google希望,这会吸引来第三方软件开发者,建立起一个大规模的开发者社区。
In the wake of Google's announcement, one topic that has been discussed by some members of the open-source software community is the significance of Google's licensing choice.
但是,此事公布后不久,开源软件社区就议论纷纷,大家在讨论Google为Android选择的许可证。
Although the underlying Linux kernel is licensed under version 2 of the Free Software Foundation's General Public License (GPLv2), much of the user-space software infrastructure that will make up the Open Handset Alliance's platform will be distributed under version 2 of the Apache Software License (ASL).
Linux内核的许可证,是自由软件基金会的GPL许可证第二版。但是,“开放手机联盟”的主要代码,却是Apache许可证(ASL)第二版。
This raises certain questions about Google's goals in the mobile space and the nature of the third-party application ecosystem that will emerge around the platform.
这使得有人怀疑Google的动机。它的目标到底是什么?Android平台上,到底会有怎样的第三方软件?
ASL, which is widely used in the open-source software community and has been approved by the Open Source Initiative, is a permissive license that is conducive to commercial development and proprietary redistribution. Code that is distributed under the ASL and other permissive licenses can be integrated into closed-source proprietary products and redistributed under a broad variety of other terms.
ASL许可证被开源软件广泛使用,并且得到了“开放源码促进会”(Open Source Initiative)的认可。它是一种不设限的许可证(permissive license),允许软件的商业性开发和垄断式发布。以ASL发布的代码,可以被合并入闭源的专有软件(proprietary product),并且在各种各样的限制性条件下发布。
Unlike permissive open-source licenses, "copyleft" licenses (such as the GPL) generally impose restrictions on redistribution of code in order to ensure that modifications and derivatives are kept open and distributed under similar terms.
与ASL不同,GPL则是一种Copyleft许可证。它对代码的发布做出了限制,规定所有对源码的修改和衍生,都必须公开,并且以相似的许可证发布。
Permissive licenses like the ASL and BSD license are preferred by many companies because such licenses make it possible to use open-source software code without having to turn proprietary enhancements back over to the open source software community. These licenses encourage commercial adoption of open-source software because they make it possible for companies to profit from investing in enhancements made to existing open-source software solutions. That potential for proprietary investment on top of an open stack is most likely what inspired Google to adopt the Apache Software License for its mobile platform. Availability of Android under the ASL will ensure that a broader number of companies will be able to adopt the platform and build on top of it without having to expose the inner workings of proprietary technologies that give them a competitive advantage.
许多软件公司更愿意采用不设限的许可证(比如ASL和BSD),因为这使得它们既可以使用开源软件,又不用向开源社区公开对软件所做的修改。所以,ASL和BSD鼓励了开源软件的商业性使用,使得软件公司愿意对开源软件投资,因为这些公司可以从中获利。这种在开源基础上吸引商业投资的潜力,很可能是Google为自己的手机平台选择ASL许可证的最大原因。将Android置于ASL之下,可以确保许多商业性公司会接受这个平台,并且在它上面使用自己的专有技术。
Although using a permissive license like ASL is the best way to build support for the Android platform, critics argue that Google has sacrificed an opportunity to encourage greater openness in the broader mobile software space. If Android was distributed under the GPLv2, companies building on top of the platform would have to share their enhancements, which could theoretically lead to widespread sharing of code and a more rapid acceleration of mobile software development.
虽然ASL确实是保证Android获得支持的最好方法,但是批评者认为,Google这样做的代价,是丧失了创造一个更开放的手机软件平台的机会。如果Android的许可证是GPLv2,那么在它上面做开发的那些公司,将不得不公开对系统所做的改进,理论上就会导致代码被更广泛地分享,因而手机软件的开发也会更快速地进步。
The counterargument is that distributing Android under a copyleft license could potentially limit the evolution of the mobile software ecosystem by discouraging commercial development on top of the platform. Proprietary mobile software development companies that integrate Android into their technologies would have to dramatically change their business models if they aren't given the ability to keep their enhancements proprietary.
另一些人不同意这种看法。他们认为如果Android选择copyleft许可证,会使商业性公司不愿意介入开发,从而使系统本身的发展困难重重。如果那些公司没有办法保护自己的专有技术不公开,那么即使它们愿意采用Android平台,也必须急剧地改变经营模式,而这是有风险的。
It is important to note that the ASL is only being applied to the assortment of user-space platform components that make up Android. The kernel itself is still licensed under the GPLv2, and third-party software that runs on top of the platform can be distributed under pretty much any license, including commercial and copyleft licenses.
有一点是不能忽视的,那就是只有Android的userspace部分是ASL许可证。系统的内核依然是GPLv2许可证。而运行在系统上方的第三方软件,可以用任何许可证发布,包括商业性许可证和copyleft许可证。
It is also important to note that, although the ASL was not compatible with previous versions of the GPL, it is entirely compatible with the GPLv3. This means that code distributed under the ASL can be incorporated into GPLv3 software. As a result, developers can choose to distribute Android derivatives under the GPLv3 in order to ensure that further development on top of their own enhancements remains open.
还有一点也很重要,那就是虽然ASL与GPLv2不兼容,但是它与GPLv3完全兼容。这意味着,在ASL下发布的代码,可以被用于GPLv3许可证的软件。因此,程序员可以选择将Android程序在GPLv3下发布,这样就能保证他们作品的进一步开发,将始终是开源的。
Ultimately, the decision to use the ASL is sensible. Although it would be beneficial to all if Google were to use Android licensing to further open the market, that likely would have stifled adoption of the platform by handset makers.
最终来说,Google选择ASL是情有可原的。虽然Android如果在GPL许可下发布,会使所有人得利,但那样也会阻碍这个系统被手机厂商采用。
When it comes right down to it, the handset makers are the developers who are most significantly affected by the Android license, since they are the primary distributors of mobile phone platforms. The ASL will allow individual handset makers to develop proprietary customizations for the platform as needed to accommodate the unique technologies in their individual products.
如果单就手机厂商而言,他们才是受Android许可证影响最大的开发者,因为他们是手机平台主要的发布渠道。ASL允许手机厂商对平台进行改造,使得Android变得好像他们的独家产品一样。
Third-party software developers who are building applications on top of Android will largely be unaffected by Google's licensing decision since the individual applications can be distributed under their own licenses.
而第三方的软件开发者,总体上不受Google许可证选择的影响,因为他们可以为自己的软件选择任何的许可证。
Another point worth noting is that Linux-based mobile platforms created by other mobile technology coalitions like the LiMo Foundation also facilitate mixing proprietary and open software.
还有一个值得注意的地方是,其他Linux核心的手机平台,比如LiMo,也是闭源软件和开源软件的混合。
As more details emerge and more source code becomes available, it's likely that third-party developers and handset makers will eagerly flock to Android in order to benefit from the ecosystem that Google is creating.
随着更多的细节和更多的源码被公布,手机厂商和第三方开发者,很可能会热切地投入Android的怀抱,享受Google创造的这个平台。
(完)
1.
两周前,我写了一篇《Android,开源还是封闭?》。
其中有一些内容,我今天要做修正,还想谈一些别的感想。
2.
在谈具体的修正之前,我先来说说,那篇文章的一些情况。
那天白天,我在外面办事,从手机上读到Linux内核撤下所有Android代码的消息,感到很震惊。晚上回家后,仔细读完了相关报道,就一口气写了一些感想。写完已经将近半夜12点。我改了几个错别字,直接把文章贴上网,然后就上床睡觉了。当时也没多想,不觉得它和我的其他文章有何不同。
但是,第二天起床以后,我发现事情变得复杂了。那篇文章被转贴到许多技术论坛和网络媒体,产生了很多回复和议论。要是早知道它会被那么多专业开发人员读到,我一定会写得更谨慎。
更令我意外的是,超过半数的读者,都在批评那篇文章。尤其是一些认识很久的朋友,也对它持负面看法。这令我反思,到底哪里写错了?
节假日期间,我也在思考这个问题。下面就是一些结果。
3.
首先,我必须老老实实承认,那篇文章确实有重大错误。
别的不说,单单文章的标题就是错的。我用《Android,开源还是封闭?》这样的标题,暗示Android表面是开源系统,实质上是封闭系统。我的这种说法是错的。
理由如下:
* Android使用的是Apache许可证,这是一个开源许可证。
* 它的所有源码都公布在网上,你可以用来干任何事情。
* 对于不喜欢这个许可证的人,可以完全合法地把自己的Android程序,改为GPL许可证。
无论从表面还是从实质上看,Android都是一个开放的系统,不是封闭系统。所以,我指责Android是封闭系统,这是不正确的。
由于我把不正确的论断作为那篇文章的基本论据,直接导致结论不可信。因此,文章遭到批评和鄙视,确实也是理所应当。
4.
不过,我的文章写错了,并不代表Google没有做错。你可以这样想,如果Google的所作所为都是无可指责的话,那么为什么Linux内核开发小组会撤下它的代码呢?
这就是我今天想说的第二件事:Android的许可证选择是有问题的。它的问题不在于系统是不是开放,而在于它造成了Linux的分裂。
为什么Android分裂了Linux?
因为Google修改了Linux内核,使得Android与内核不兼容。所有Android上的开源驱动,不经过修改,都无法用于内核,而Google又不愿意修改。因此,内核开发小组只好把它撤下来,因为留着也没用。
这就是Google最让人不满的地方。为了吸引外部程序员,它故意选择Linux内核,而不是自己开发内核。但是开发出来的东西,只能用于Google的产品,不能用于内核。这种分裂行为的后果,就是把Linux社区削弱了。
为了便于思考,让我来举一个类比。
很久以前,有一帮很穷的程序员,在森林里面打游击、闹革命。由于反革命力量实在太强大了,游击队屡战屡败,士气低落。这时,有一个大佬宣布要加入游击队,大家都很振奋,有了大佬的支持,革命有希望成功了。可是没想到,大佬来了以后,宣称他对革命的定义跟别人不一样,要求别人跟着他闹革命。双方谈判不成,大佬就带走了一部分人,自己单干了。所以,大佬加入革命以后,革命势力反而变得更弱小了,还不如不加入呢。
同样地,Android系统越发达,受益的只是Google和手机厂商,而不是Linux社区。后者因为程序员和厂商的流失,力量还会变得更加积弱。事实上,Android的推出,已经使得Maemo、LiMo、以及其他基于Linux的手机系统,生存处境越发艰难。
可惜我没有早点认识到这些。如果我从这个角度评价Android,那篇文章的错误就会少一些,也不会遭到那么多反对意见了。
5.
在所有的批评中,有些不是针对那篇文章的具体内容,而是针对我个人的。
举几个典型的例子:
* 他开始乱喷了!
* 这个知道分子,又在卖弄自己不懂的东西了。
* 此人大言不惭,就是一个不靠谱的妄人。
虽然我觉得,这些评价对我不太公平,但是我还是要谢谢这些朋友的指教。我愿意虚心汲取教训,以后写文章一定更加严谨,减少错误。
6.
不过,我也想借这个机会澄清一些误解。
我不知道,这些朋友是怎么看待这个网志的。我想问问他们,你们以为我为什么要写这个网志?为了出名?为了赚钱?为了满足虚荣心,显示本人无所不知,很能写?……
不,这些都不是理由。事实上,从任何利益的角度考虑,写网志都是很不值得的事情。一方面,这里的任何一篇文章,写作时间通常都需要2~6小时,而我写了1000多篇,付出的时间和精力难以想像。另一方面,网站唯一的直接收入就是Google广告,但是只能刚好弥补主机和域名的费用,一点都没有多余。如果想出名和赚钱的话,我想一定有比这更轻松的方法吧。至于虚荣心,写了这么久,每天访问量也只有几千IP,我想聪明一点早该知难而退了。
我之所以还在写,是因为我把这个网志当作自己的学习笔记。不断地积累新知识,思考、总结、记录下来,令我感到一种学习的乐趣。所以,我希望大家知道一点,我的网志首先是一个私人空间,不是公共媒体。有些人的网志是为了向公众发言,我的不是。
正是因为我把这里看作一个私人笔记本,所以有时候写作比较随便,经常写一些自己刚刚接触到、没有全面认识的东西。因为笔记里记录的,总是你需要学习的东西,而不是你已经学会的东西,对不对?另一方面,也是因为这是笔记,所以有时候我怕麻烦,没有给出充分的论证和足够的核对,就匆忙写下自己的看法。但是,这不代表我不严谨和粗疏,我只是认为,个人笔记和公开发表的作品不一样。如果是公开发表的论文,每句话都必须有依据,经得起考验,而如果是笔记的话,那就不一定那么严格了。这也是为什么我公开发表的文章,远远少于网志文章的原因之一。
当然,我不为自己的错误辩解,可以告诉大家,我比任何人都更严厉地对待自己的错误。我时刻愿意听取他人的批评,修正自己的错误,因为这是对我有利的。我只是希望大家知道,这个网志的内容本来就不可避免地包含着错误,所以请不要因为文章中有错误,就对我这个人下评判。借用一句张五常的话,“要斩,就斩我的文章,不要斩我的人”。
7.
现在再回到Android的话题,我还有最后一点感想要说。
请先看一些网友对此次Linux内核撤下Android代码事件的评论:
* Google是上市公司,它当然选择对自己最有利的做法。
* Linux内核是Google能找到的最便宜的内核,为什么不用?
* Google又没违反License,还有什么可说的。
* 为什么Android的代码非要回馈给Linux呢?奇怪的想法。
这些意见似乎认为Google的行为符合合约和“自利原则”,因此无可指责。当然,我也同意,从这个角度看,Google没有做错。但是,如果换个角度,让我们从“利他原则”的角度思考,会不会得到不一样的结论呢?比如,Google这样做是不是符合开源运动的理想?有没有伤害到开源社区的利益?……
不过,我不打算在这个问题上深究下去。在一个不正义的第三世界人口大国,讨论到底是“利己”重要,还是“利他”重要,实在是一个太艰难的问题。与其想要找到答案,还不如对自身命运叹息。
令我真正愤怒的,是下面这样的评论:
* GPL这个病毒又作恶了!
* 早觉得Linux像宗教。有时候在想,那个RMS驾崩了怎么办呢?五六十岁的人了,得个病死了很正常。
* 我看RMS没那么容易挂,一般教主都是长命百岁的老妖怪。
我早就感到了,在中国的软件业中,有一种针对自由软件运动的仇恨。不是一般的反感,而是那种咬牙切齿、死而后快的真正仇恨。我想问问这些人,你们的仇恨是从哪里来的?
自由软件运动和它的创始人Richard Stallman,在没有任何索取的前提下,向全世界无偿奉献出了高质量的软件,全人类都受益于他们的代码,难道这样的人应该被仇恨和诅咒吗?你们的良心到哪里去了?
自由软件运动的理想,是让地球上每一个人都能使用高质量的软件,决不让软件成为阻挡人类自由的障碍。难道这样的理想不值得赞美和追随吗?你们自己没有这种理想,难道还想消灭别人的理想?难道你们非要把软件做成他人的监狱,才感到心满意足?
说到底,不过是因为自由软件可以免费获得,阻碍了这些人的发财梦,所以他们才会恨得这样咬牙切齿。是的,地球上就是有这种人类,谁妨碍了他发财,他就想除掉你。只要自身的利益得到保障,他人的死活才无所谓呢。
正是由于这种自私的人的存在,才需要我们更坚定地支持自由软件。许多人觉得Richard Stallman顽固得可笑,任何非GPL许可证的软件一概拒绝,有必要吗?但是你要知道,如果不是因为他这样坚守原则,自由软件运动绝对坚持不到今天。因为这个世界到处都是陷阱和烂泥,还有时刻准备着的阴谋家,所以你不能做一点妥协。你退让了一步,整个阵地就全没了。
8.
回想十年前,Windows 98正是如日中天,Windows XP即将上市,IE的市场份额超过90%,微软公司多么得不可一世,没有人相信它会被击败。大家觉得,只要跟着微软公司走,一定不会错。那时的Linux,还只是很不成熟的黑客玩具,不要说桌面了,就连服务器市场的份额也很小。那时,要是有人说,Linux一定会胜过Windows,大家都会觉得这是痴人说梦。
但是,十年过去了,发生了什么?微软公司依然强大,但已不是不可战胜了;Linux已经跻身主流操作系统,装有它的笔记本电脑在商场里很容易买到;以Firefox为代表的开源浏览器,占据了越来越多的市场份额,超过IE的时刻已经近在眼前了。这就是自由软件的力量,不管你愿意不愿意,就像那副著名油画的名字《自由引导人民》,就是这样。
你敢想像,再过十年会发生什么情况吗?如果一边是封闭软件,另一边是开源软件,你赌哪一边?相信我,跟随自由的东西,绝对不会错。历史已经证明,并将继续证明这一点。
所以,我还是要重复前一篇文章中的话:如果Android继续走这种分裂Linux的道路,它不会成功的,不要说超过iPhone,再过二三年,它自己就会被别的开源手机操作系统取代。
(完)
对于下载爱好者来说,2009年糟糕透顶。
BT下载的两大旗帜网站——海盗湾和Mininova——都在2009年遭受重大挫折。上半年,海盗湾一审败诉,四名管理员被判有罪,需要入狱服刑;下半年,Mininova一审败诉,被迫撤下了所有侵权的Torrent文件,等于实际上的关闭。
此外,版权组织还加大力度,围剿其他的BT下载网站,在法庭上获得了一系列的胜利。文件分享运动陷入了低潮,BT下载受到了前所未有的冲击。

但是,哪里有压迫,哪里就有反抗。新技术的潮流,不是陈旧的法律条文能够阻止的。一片静悄悄之中,文件分享正在发生一些新的变化。下面,我根据TorrentFreak的报道,总结近来的一些值得注意的事件。
1. TorrIndex.com

1月17日,TorrIndex上线。它是世界上第一个只提供磁力链接(Magnet URL)、不提供Torrent文件的BT资源索引网站。
理论上,磁力链接不需要Tracker服务器,是一种去中心化的下载模式,监管难度极高。因此,被认为是未来的发展方向,详细介绍可以参阅我写的《BT下载的未来》。
2. IPREDator.com

1月21日,海盗湾的最新项目IPREDator上线,提供VPN服务。使用该服务的客户可以隐藏自己的IP地址,不会留下可追踪的痕迹。
这个网站的直接目的,是对抗瑞典国会2009年通过的反盗版法IPRED。该法明确规定,ISP有义务向权利人提交侵权用户的IP地址。海盗湾将这个网站定名为IPREDator,直译就是“吃掉IPRED的人”。
虽然在技术上,它与其他的VPN服务没有特殊之处,而且3个月15欧元的收费标准也并不便宜,但是海盗湾表示,绝不生成、更不会保留任何的系统日志文件,以及未来还会对客户端与服务器之间的通信,采取进一步的加密。这意味着,如果你使用了IPREDator,即使是神仙也无法逆向查到你。
3. Demonoid.com

1月23日,Demonoid宣布从封闭式Tracker,变为开放式Tracker。这使它成为仅次于海盗湾的世界第二大BT下载网站。
去年9月,Demonoid宣布暂时关闭。许多人以为,它不会再回来了。但是12月中旬,它重新开张,并且在今年1月完成了升级。目前,它已经完全可以取代原来Mininova的角色了。
4. ReactorFeed.com

1月26日,ReactorFeed上线。它是Torrent精选网站ShareReactor的一个子项目,也属于海盗湾出品。
它的功能就是提供一个Web界面,让你把选中的torrent文件的网址加入其中,然后生成一个Feed。
这有什么用?最简单的用途就是让你不会忘记想要下载哪些文件。但是,更主要的服务对象,是那些在家里一天24小时开着BT下载软件的人。因为有些软件可以定时读取Feed,所以不管你在哪里、在干什么,都能通过ReactorFeed指定下载目标,达到远程向BT下载软件发布下载命令的目的。
5. Falcon

2月1日,Falcon上线,开始测试。它是目前用户越多的BT下载软件uTorrent的子项目。
它的作用就是为uTorrent提供一个web界面。这样说吧,你在家中打开了uTorrent,然后你去上班了,Falcon就能让你在公司里远程操作uTorrent,而你只需要有浏览器就可以了。

6. Flattr.com

2月13日,Flattr上线,开始测试。这个网站与文件分享没有关系,但是由于它是海盗湾成员Peter Sunde的个人作品,所以也顺便在这里介绍一下。
这是一个推广“微支付”的网站。假定你有10美元,想要用来支持那些写出好文章的人,你就可以把它交给这个网站。以后,每当你看到喜欢的文章,就按一下文章旁边的Flattr按钮,通知该网站向此文的作者支付一小笔钱,比如五毛。通过这种方式,你用自己的行动向作者表达了你的支持,而作者也得到了实际的物质鼓励。
(完)
如果看不见下面的播放窗口,请直接点击:优酷,土豆,Youtube。
这支广告取材于真人真事《一個阿嬤的勇敢故事》(需翻墙),由奥美广告制作。我觉得超过了奥美在中国大陆的所有作品。
从它身上,我再一次看到了台湾社会的可爱之处:真正地关心普通民众的生活,宣扬爱和关怀。
(完)
一、问题的由来
URL就是网址,只要上网,就一定会用到。

一般来说,URL只能使用英文字母、阿拉伯数字和某些标点符号,不能使用其他文字和符号。比如,世界上有英文字母的网址“http://www.abc.com”,但是没有希腊字母的网址“http://www.aβγ.com”(读作阿尔法-贝塔-伽玛.com)。这是因为网络标准RFC 1738做了硬性规定:
"...Only alphanumerics [0-9a-zA-Z], the special characters "$-_.+!*'()," [not including the quotes - ed], and reserved characters used for their reserved purposes may be used unencoded within a URL."
“只有字母和数字[0-9a-zA-Z]、一些特殊符号“$-_.+!*'(),”[不包括双引号]、以及某些保留字,才可以不经过编码直接用于URL。”
这意味着,如果URL中有汉字,就必须编码后使用。但是麻烦的是,RFC 1738没有规定具体的编码方法,而是交给应用程序(浏览器)自己决定。这导致“URL编码”成为了一个混乱的领域。
下面就让我们看看,“URL编码”到底有多混乱。我会依次分析四种不同的情况,在每一种情况中,浏览器的URL编码方法都不一样。把它们的差异解释清楚之后,我再说如何用Javascript找到一个统一的编码方法。
二、情况1:网址路径中包含汉字
打开IE(我用的是8.0版),输入网址“http://zh.wikipedia.org/wiki/春节”。注意,“春节”这两个字此时是网址路径的一部分。

查看HTTP请求的头信息,会发现IE实际查询的网址是“http://zh.wikipedia.org/wiki/%E6%98%A5%E8%8A%82”。也就是说,IE自动将“春节”编码成了“%E6%98%A5%E8%8A%82”。

我们知道,“春”和“节”的utf-8编码分别是“E6 98 A5”和“E8 8A 82”,因此,“%E6%98%A5%E8%8A%82”就是按照顺序,在每个字节前加上%而得到的。(具体的转码方法,请参考我写的《字符编码笔记》。)
在Firefox中测试,也得到了同样的结果。所以,结论1就是,网址路径的编码,用的是utf-8编码。
三、情况2:查询字符串包含汉字
在IE中输入网址“http://www.baidu.com/s?wd=春节”。注意,“春节”这两个字此时属于查询字符串,不属于网址路径,不要与情况1混淆。

查看HTTP请求的头信息,会发现IE将“春节”转化成了一个乱码。

切换到十六进制方式,才能清楚地看到,“春节”被转成了“B4 BA BD DA”。

我们知道,“春”和“节”的GB2312编码(我的操作系统“Windows XP”中文版的默认编码)分别是“B4 BA”和“BD DA”。因此,IE实际上就是将查询字符串,以GB2312编码的格式发送出去。
Firefox的处理方法,略有不同。它发送的HTTP Head是“wd=%B4%BA%BD%DA”。也就是说,同样采用GB2312编码,但是在每个字节前加上了%。

所以,结论2就是,查询字符串的编码,用的是操作系统的默认编码。
四、情况3:Get方法生成的URL包含汉字
前面说的是直接输入网址的情况,但是更常见的情况是,在已打开的网页上,直接用Get或Post方法发出HTTP请求。
根据台湾中兴大学吕瑞麟老师的试验,这时的编码方法由网页的编码决定,也就是由HTML源码中字符集的设定决定。
<meta http-equiv="Content-Type" content="text/html;charset=xxxx">
如果上面这一行最后的charset是UTF-8,则URL就以UTF-8编码;如果是GB2312,URL就以GB2312编码。
举例来说,百度是GB2312编码,Google是UTF-8编码。因此,从它们的搜索框中搜索同一个词“春节”,生成的查询字符串是不一样的。
百度生成的是%B4%BA%BD%DA,这是GB2312编码。

Google生成的是%E6%98%A5%E8%8A%82,这是UTF-8编码。

所以,结论3就是,GET和POST方法的编码,用的是网页的编码。
五、情况4:Ajax调用的URL包含汉字
前面三种情况都是由浏览器发出HTTP请求,最后一种情况则是由Javascript生成HTTP请求,也就是Ajax调用。还是根据吕瑞麟老师的文章,在这种情况下,IE和Firefox的处理方式完全不一样。
举例来说,有这样两行代码:
url = url + "?q=" +document.myform.elements[0].value; // 假定用户在表单中提交的值是“春节”这两个字
http_request.open('GET', url, true);
那么,无论网页使用什么字符集,IE传送给服务器的总是“q=%B4%BA%BD%DA”,而Firefox传送给服务器的总是“q=%E6%98%A5%E8%8A%82”。也就是说,在Ajax调用中,IE总是采用GB2312编码(操作系统的默认编码),而Firefox总是采用utf-8编码。这就是我们的结论4。
六、Javascript函数:escape()
好了,到此为止,四种情况都说完了。
假定前面你都看懂了,那么此时你应该会感到很头痛。因为,实在太混乱了。不同的操作系统、不同的浏览器、不同的网页字符集,将导致完全不同的编码结果。如果程序员要把每一种结果都考虑进去,是不是太恐怖了?有没有办法,能够保证客户端只用一种编码方法向服务器发出请求?
回答是有的,就是使用Javascript先对URL编码,然后再向服务器提交,不要给浏览器插手的机会。因为Javascript的输出总是一致的,所以就保证了服务器得到的数据是格式统一的。
Javascript语言用于编码的函数,一共有三个,最古老的一个就是escape()。虽然这个函数现在已经不提倡使用了,但是由于历史原因,很多地方还在使用它,所以有必要先从它讲起。
实际上,escape()不能直接用于URL编码,它的真正作用是返回一个字符的Unicode编码值。比如“春节”的返回结果是%u6625%u8282,也就是说在Unicode字符集中,“春”是第6625个(十六进制)字符,“节”是第8282个(十六进制)字符。

它的具体规则是,除了ASCII字母、数字、标点符号“@ * _ + - . /”以外,对其他所有字符进行编码。在\u0000到\u00ff之间的符号被转成%xx的形式,其余符号被转成%uxxxx的形式。对应的解码函数是unescape()。
所以,“Hello World”的escape()编码就是“Hello%20World”。因为空格的Unicode值是20(十六进制)。

还有两个地方需要注意。
首先,无论网页的原始编码是什么,一旦被Javascript编码,就都变为unicode字符。也就是说,Javascipt函数的输入和输出,默认都是Unicode字符。这一点对下面两个函数也适用。

其次,escape()不对“+”编码。但是我们知道,网页在提交表单的时候,如果有空格,则会被转化为+字符。服务器处理数据的时候,会把+号处理成空格。所以,使用的时候要小心。
七、Javascript函数:encodeURI()
encodeURI()是Javascript中真正用来对URL编码的函数。
它着眼于对整个URL进行编码,因此除了常见的符号以外,对其他一些在网址中有特殊含义的符号“; / ? : @ & = + $ , #”,也不进行编码。编码后,它输出符号的utf-8形式,并且在每个字节前加上%。

它对应的解码函数是decodeURI()。

需要注意的是,它不对单引号'编码。
八、Javascript函数:encodeURIComponent()
最后一个Javascript编码函数是encodeURIComponent()。与encodeURI()的区别是,它用于对URL的组成部分进行个别编码,而不用于对整个URL进行编码。
因此,“; / ? : @ & = + $ , #”,这些在encodeURI()中不被编码的符号,在encodeURIComponent()中统统会被编码。至于具体的编码方法,两者是一样。

它对应的解码函数是decodeURIComponent()。
(完)
新增一个“活在中国”栏目。
专门刊登生活在这个国家的真实经历,欢迎大家赐文。
今天刊登的是,“羊城网”小劳站长的来信。从他的经历可以看到,中国的小站长们,不仅要遭受政策压力,还会受到其他的欺压。
=======================
一峰,
我们又遇到麻烦了。
2月3日,我们接连收到网友报告,称网站被瑞星防火墙屏蔽了。

我们联系瑞星公司,客服建议我们通过该公司的在线工具进行安全检测。结果显示,有两条URL被挂马。

经查看,该两个网页并无任何异常,也无任何连接指向该工具所称的木马网址。其他公司的安全产品(包括诺顿、安全360等)亦无告警。但为了保险起见,我们还是删除了上述两个网页。但删除后,瑞星的防火墙仍然称我们的网站为恶意网站。而通过该工具检测其他一些主流门户网站时,发现新浪、搜狐、网易被“挂马”的URL数量远远高于我们,但瑞星防火墙却并无任何有关恶意网站的提示。
瑞星公司的客服人员建议我们加入“瑞星云安全网站联盟”、挂载该公司提供的监测代码,暗示与其合作,问题就会解决。

至此,我们终于看出了其中的猫腻,瑞星公司的行为实际上是对一些中小网站进行施压,在每个网页挂载它的代码,相当于免费帮它卖广告。至于下一步它会怎样利用这些代码(收集用户信息?),就无从得知了。

另一方面,瑞星公司自己的网站,去年七月份就曾被黑客攻击并挂载木马,并且瑞星杀毒软件上月亦曝出存在高危漏洞,显然不能指望它来保护我们。如果我们挂了该公司的代码,反而有可能造成安全隐患。
此外,最近《北京晚报》的报道《北京网监处长受贿1400余万办假案受审 承认帮瑞星公司抓人》,曝光了瑞星公司行贿原北京市公安局网监处处长,通过假报案、假损失、假鉴定的手法陷害竞争对手。这种公司的商业诚信,是令人质疑的。
因此,我们最后决定,不与其合作,不参与“瑞星云安全网站联盟”,并建议所有瑞星防火墙的用户卸载该产品。但是,单单靠我们一家小网站,确实难以与瑞星这种庞然大物对抗,希望通过您的网志让更多的网友了解此事。
羊城网 小劳
2009年2月4日
(完)
满大街都在谈论Android。
它是当红炸子鸡。许多人觉得,iPhone将受到它的强力挑战。

我也曾经对它充满了期待,但是后来的事态发展,令我改变了看法。前几天,我就在网志上写了自己的担忧:
“首先,Android应用程序只能用java语言开发,莫非所有的应用程序都运行在一个巨大的虚拟机上?(【更正】网友留言指出,2009年6月Android发布NDK工具包,支持C/C++语言编程,不过性能不如SKD工具包中的Java语言。 )
其次,Google对Android采用了一种全面霸权式的管理,完全不是其他开源软件的开发方式,一切都由Google说了算,很多地方是黑箱,外界不得而知。”
没有想到,仅仅过了两天,担忧就变成了现实。Linux Kernel的维护者Greg Kroah-Hartman宣布,将Android 代码从 Linux kernel 代码库中删除。这意味着,Linux Kernel的开发小组不认可Android的贡献,两者产生了冲突。
消息公布以后,外界普遍觉得惊讶和可惜。好不容易,才有了一个这么受欢迎的开源手机系统,应该齐心协力、共同开发才对,为什么要“窝里斗”呢?到底是什么矛盾,使得Linux Kernel小组剔除Android代码呢?
Greg Kroah-Hartman写了一篇详细的文章,解释这个决定。下面就来看看,他是怎么说的,以及Android到底是一个什么样的系统。
在这之前,你最好知道Greg Kroah-Hartman是谁。他是目前Linux Kernel的核心开发人员,负责stable软件包的发布。就是说,每一个新版本的Linux Kernel,都是经过他的手流出来的。此外,他还负责硬件驱动的部署。而他的手机就是HTC G1,每天都在使用。所以,他是绝对有资格谈论这个问题的,他的看法代表了Linux社区对Android的看法。
首先,他指出Android和其他的Linux发行版不一样:
“Google has taken the Linux kernel, and nothing else from a "traditional" Linux system.
Google只用了kernel,别的东西都没用。”
这就是说,与Ubuntu、Debian、Redhat这样的传统Linux发行版相比,只有系统的底层结构是一样的,其他东西在Android里都不一样,尤其是程序员的编程接口是完全不同的。因此,Android应用程序都必须重新写过,现存的Linux程序无法移植上去。所以,从严格意义上说,Android是一种全新的系统,它与Linux的距离,比Mac OS与Linux的距离还要远。

然后,Greg Kroah-Hartman肯定了Android这样做的积极意义:
“Android also solves the problem that the phone manufacturers had been having for many years: a free version of Java and a unified application layer that programmers can write to that will work on all phone platforms that integrate it.
它解决了长期令手机制造商头痛不已的问题:业界缺乏一个开源的Java虚拟机,以及统一的应用程序接口。现在,程序员只要写一次程序,就能在各种手机硬件平台之上使用。”
这段话解释了,为什么Android的应用程序,都必须用Java语言开发。因为不这样做的话,没法让程序做到硬件无关。
且慢,这真的是理由吗?传统的Linux系统,也并不依赖特定的硬件啊!只要把源代码根据不同的平台,分别编译一下,同一个程序不也照样可以在不同的硬件架构、不同的Linux发行版中使用吗?
那么,Android只采用kernel、只允许用java编程的真正原因,到底是什么?
台湾的科技网志MMDays一语道破真相:
“Linux kernel 的版权是 GPL。
这下问题来了:如果你是硬件厂商,希望你的硬件能在 Linux kernel 下运作,那么就必须要有驱动程序。如果驱动程序的程序代码公开,等于硬件规格也公开的差不多了。许多厂商不愿意这么做,所以就提供编好的驱动程序,但不提供原始码。
Android 的重点就是商业应用,Google采用了一些手法来绕过这问题。他们把驱动程序移到 "userspace",也就是说,把驱动程序变成在 Linux kernel 上头跑,而不是一起跑的东西,这样就可以避过GPL。然后,在 kernel 这边开个小门,让本来不能直接控制到硬件的 "userspace" 程序也可以碰得到,这样只要把"开个小门"的程序代码公布就行啦。”
看明白了吗?
这段话的意思是说,Google玩了一个花招,在kernel和应用程序之间,自己做了一个中间层,这样就既不违反GPL许可,又能不让外界看到厂商的硬件驱动和应用程序的源码。
里面的关键在于,Kernel和Android的许可证不一样,前者是GPL许可证,后者是Apache Software License(简称ASL)许可证。GPL许可证规定,对源码的任何修改都必须开源,所以Android开源了,因为它修改了Kernel。而ASL许可证规定,可以随意使用源码,不必开源,所以建筑在Android之上的硬件驱动和应用程序,都可以保持封闭。为了得到更多厂商的支持,Google有意选择了这样做,并且特意修改Kernel,使得原本应该包括在kernel中的某些功能,都被转移到了userspace之中,因此得以避开开源。
这样做或许有利于推广Android,吸引厂商和软件开发商的加入,但是Google也放弃了构建一个真正开源的手机系统的机会,从而也就不能获得由全世界程序员提供智慧、分享代码、推动创新的好处。关于许可证问题的深入讨论,请阅读Ryan Paul的文章《Why Google chose the Apache Software License over GPLv2 for Android》。
Google的这种做法,直接后果就是给Linux Kernel带来了麻烦。Greg Kroah-Hartman清楚地说出了自己的不满。
“...any drivers written for Android hardware platforms, can not get merged into the main kernel tree because they have dependencies on code that only lives in Google's kernel tree, causing it to fail to build in the kernel.org tree.
所有为Android写的硬件驱动,都不能合并入kernel。因为它们只在Google的代码里有效,在kernel里根本没法用。
Because of this, Google has now prevented a large chunk of hardware drivers and platform code from ever getting merged into the main kernel tree. Effectively creating a kernel branch that a number of different vendors are now relying on.
由于这个原因,Google也从不把大量的硬件驱动程序和平台源码向kernel提交。实际上,它创造出了一个kernel的分支,大量的开发者都依赖那个分支。”
这就是Android干的事情:它修改了Kernel,但是又不提供修改的细节,自己搞了一个封闭的系统。说得难听一点,它利用了开源社区,要求开源社区为它做贡献,却又不愿提供回报。
所以,Linux Kernel就把Android踢出去了,真是再正常不过了。
人们有权利质疑,Android这样的哲学是否正确?是否符合Google“不作恶”的口号?如果Android继续这样封闭下去,那么开源社区为什么要为它免费制作软件呢?因为我又不是在为开源社区服务,而是在为Google服务。既然这样的话,那还不如去支持iPhone呢,至少能在软件商店里多卖一点钱,而且乔布斯看上去也更酷一点。

slashdot上有很多关于此事的讨论。有人指出:
“Google自己的网站,与微软的网站一样封闭。它开源出来的东西,都是根据GPL许可证不得不开源的。”
好吧,姑且不谈Google本身,因为它至少不要求外界提供支持。但是Android不一样,你不能假装成开源系统,骗取社区的支持,然后又干着封闭系统的勾当。以你的实力,不用Linux Kernel,自己开发一个Google Kernel,想必也不是难事。要是这样做,任何人都不会有非议。可是,既然你选择了Linux Kernel,并且大张旗鼓地宣传,那么你奉献出什么呢?难道你的奉献就是给Kernel开一个口子吗?
Google必须做出改变。正如Greg Kroah-Hartman最后的呼吁:
“I really don't know. Google shows no sign of working to get their code upstream anymore.
我真的不知道未来。Google看上去没有任何改变代码的迹象。
I do hold out hope that Google does come around and works to fix their codebase to get it merged upstream to stop the huge blockage that they have now caused in a large number of embedded Linux hardware companies.
我确实希望Google做出改变,把它的代码合并进我们的代码,弥补已经出现的代码分裂。
I've privately offered in the past to help this work get done, and am doing again here publicly. But I need the help of the Google developers to make it happen, without them, nothing can change.
我私底下已经说过,我愿意帮助完成这项工作,在这里我再次公开这样说。但是如果没有Google程序员的加入,什么也不会发生。”
Android必须变成一个真正的开源系统。如果像现在这样封闭下去,就会被开源社区抛弃,就一定不会成功,即使有Google的支持。
UPDATE ONE
liufeng针对此文,写了一篇很好的评论,推荐阅读。
我接受他的批评,我确实有点感情用事。主要是因为对Google有太大的期望,所以不能接受它现在的这种做法。
这一次,也许不能说Google做错了什么,毕竟都符合GPL许可证的要求。但是代价也是巨大的——它放弃了创造未来的机会。我坚信,未来主流的手机操作系统一定是开源的,就像我坚信未来Linux一定胜过Windows一样。现在,既然Google放弃了这个选择,那么只能等待其他人来做出开源的手机系统了。这也意味着,我们还要在黑暗中等待更久。
UPDATE TWO
Greg Kroah-Hartman原文中有一些关于技术的部分,由于我不太懂,就没翻译出来。网友黑日白月做了意译和点评。
简单的来讲,Android 的硬件驱动依赖在 Google 代码树里的东西,于是尽管大多数厂商都将它们的驱动反馈给社区了,但是对 Google 代码树的依赖导致它们无法并入主线(merge into mainline)。而 Google 代码树一直没并入主线是由于 Android 平台安全架构模型需要额外的钩子以及完全不同的帧缓存驱动。
这次在 2.6.33 主线中把 Android 部分清理掉是由于厂商贡献的这部分代码在离开 Google 的代码树之后对其他嵌入式 Linux 没有用处,干脆从主线中除掉好了……
这跟前段时间 Linus 指责 Red Hat 把 Nouveau 并入主线的积极性不高一样,最后 Red Hat 也是把 Nouveau 并入 2.6.33 的主线了么……
没有并入主线对于社区和厂商都不利,社区得不到驱动程序的扩展,厂商也得不到内核新特性的改善。但是并不是所有模块在一开始的时候都是并入主线的,总是要发展到某个相对成熟的阶段或者解决了潜在的授权问题后才并入的。总之并入主线对双方都有利,这个问题反应这次 Google 的并入主线积极性不高(不代表不开源),社区打它屁屁了……
(完)
接着来介绍,我的手机上安装的应用程序。
它们都是一些简单的应用,满足最起码的“掌上学习设备”的要求。所有下面提到的软件,网上全部可以找到,而且大多数都是免费的。其中一些似乎是WM系统独有的。
我认为,手机的时代才刚刚开始。一台高运算能力、快速联网、大屏幕的手机,能够干的事情,我们现在根本无法想像。未来,人们提到电脑,想到的不是台式机,而是手机。
七、网络浏览器
Opera Mini和UCWeb都不错,我目前主要使用前者。两者都用代理服务器对网页进行优化,所以比较省流量,而且手机体验也不错。

(图十二 Opera Mini 4.2版)

(图十三 UCWeb 7.0 版)
Firefox的WM系统版本,目前出到Alpha 3。它提供了台式机的浏览体验,非常值得关注。我用它打开了Google Reader,所有功能都能使用,太惊人了。

(图十四 Firefox Mobile可以在手机上打开完整版的Google Reader。)
国产的“3g坛”软件,提供了便捷的论坛和新闻浏览功能,也值得推荐。我现在看新闻,大多数时候都使用它的客户端。

(图十五 用“3g坛”看新闻)
八、电子书阅读
1. txt文件
在文本文件方面,“开卷有益”和“熊猫看书”都相当不错,常用功能全部具备,而且相当好用。

(图十六 开卷有益)

(图十七 熊猫看书)
2. chm文件
wm系统应该比其他系统,更容易打开chm文件。但是奇怪的是,我只发现了一种合适的软件,名字就叫“chm阅读器”。

(图十八 CHM阅读器)
3. PDF文件
Adobe Reader LE,是打开PDF文件的最佳软件。我测试的其他程序都不如它。

(图十九 Adobe Reader LE)
先看打开扫描格式文件的效果。可以无级放大,虽然阅读时必须不停移动窗口,但是可以阅读。

(图二十 打开扫描格式PDF文件。)

(图二十一 横屏后放大阅读)
对于普通的PDF文件,Adobe Reader LE提供了“重排”功能,这意味着可以像文本文件那样重新排版,大大改善了阅读体验。

(图二十二 打开普通的PDF文件。)

(图二十三 选择重排功能。)

(图二十四 重排后的效果)
4. PDB文件
PDB是一种封闭的专有格式,理应被淘汰。但是考虑到网上有很多PDB资源,所以还是需要安装iSilo阅读器。实事求是地说,它的阅读体验还是可以的。

(图二十五 iSilo阅读器)
5. HTML文件
“熊猫看书”可以打开HTML文件,但是不支持样式和图片,与文本文件阅读效果相仿。
6. epub文件
“熊猫看书”的最新版本号称支持epub,但是我打开没有成功。另有一种Freda阅读器支持epub,但是使用体验不佳。
7. 文本朗读
“讯飞语音电子书”可以朗读中文文本文件,效果不错。英语的文本朗读软件大多要收费,我只安装了一种Cepstral SwiftTalker,效果还可以,但是打开稍大一点的文本文件,就会死机。
九、多媒体
1. 视频文件
大多数视频格式,包括avi、rmvb、mp4、flv等等,wm系统都可以打开。就三星 i8000来说,只要不是高清视频,都能播放。rmvb会比较卡,但是常见的700MB的avi文件,我还没有遇到过不能流畅播放的。
至于播放器,只要有Windows Media Player和CorePlayer,就所有格式都支持了。但是如果想配合srt字幕观看,就一定要安装tcpmp。

(图二十六 tcpmp的竖屏添加字幕)

(图二十七 横屏添加字幕)
2. 音频文件
对于音频播放器,我只要求支持lrc歌词同步滚动就行了。我找到了三个符合要求、各有特点的播放器,分别是tcpmp、GSPlayer2和WinVibe。

(图二十八 tcpmp)

(图二十九 GSPlayer)

(图三十 WinVibe)
十、英语学习
1. 电子词典
WM系统有一个宝贝,就是电子词典MDict。我舍不得WM,一大半的原因就是其他系统没有这个程序。
由于MDict的词典格式是开放的,因此网上有数不清的资源。“掌上百科”网站上有一个资源索引帖,足足列出了920个资料库。比如,有一个词库是“朗曼、柯林斯、剑桥、牛津四合一”,将四大学习词典合为一个词库,一次搜索可以同时看到四部词典的解释。

(图三十一 “朗曼、柯林斯、剑桥、牛津四合一”词库)
有网友将《朗文高阶英语学习词典(第五版)》的随书DVD光盘,全部转成了MDict词典,大小超过1GB。里面不仅包含全部字典内容,还包含了全部的例句真人发音。

(图三十二 朗文高阶英语学习词典)
更惊人的是,最权威的20卷本《牛津英语词典》——也就是大名鼎鼎的、所有英语系教授都离不开的OED——也有Mdict格式。有了它,英语这门语言的全部历史,就都在你的口袋里了。

(图三十三 牛津英语词典OED)
此外,MDict还支持屏幕取词,这也是很贴心的功能。

(图三十四 MDict的屏幕取词功能)
2. 背单词
国产的ForceMemo是背单词的好工具。它兼容多种词库格式,支持发音和记忆曲线,而且还可以自己配置界面。我觉得,很值得推荐。

(图三十五 答案四选一模式)

(图三十六 背句子的模式,并且带有整句的朗读。)
3. 生词本
WM系统似乎缺乏优秀的生词本软件,我找了几个都不满意。最后还是决定,采用supermemo的“自建词库”功能,作为我的生词本。

(图三十七 supermemo允许自建词库)
supermemo可以将词库以多种格式输出,以便进一步处理。
十一、个人数据功能
个人数据包括许多种,比如笔记、照片、各种密码、待完成的事项、日程安排、支出数据等等。每一种数据都可以用专门的软件处理。但是,我后来发现,它们都可以用ListPro做到。

(图三十八 ListPro)
本质上,ListPro是一个数据库软件,允许你在手机上建立数据库,并且规定每一个字段的格式,因此你可以用它收集、整理各种信息。诸如记账、通讯录、任务管理,都不在话下。而且由于能够随时增加和修改字段,所以它的灵活性非常高,你完全可以根据自己的需要订制。

(图三十九 上海公共交通数据库)
我在这里想示范一下,如何管理个人的文摘。就是说,如果你读书的时候,读到一段精彩的话,你应该如何输入手机,又如何进行管理。
首先,需要安装“汉王摘抄”软件。它可以对图片进行文字识别。

(图四十 汉王摘抄)
打开这个软件,它会自动打开照相机,你可以把摘录的段落拍下来,然后进行文字识别。软件会自动将其转化为文字。

(图四十一 拍摄摘录的段落)

(图四十二 选择识别区域后,进行文字识别)

(图四十三 文字识别的正确率相当高)
然后,你复制这些文字,将它们粘贴到已经建立好的ListPro文摘数据库中,就行了。

(图四十四 我的文摘数据库主要包含五个字段:关键词、出处、作者、录入时间和内容。)
输入完成后,下一步的搜索、排序、过滤、输出为其他格式都非常方便。
UPDATE
有网友反映看不到图片。请各位测试photobucket.com是否被屏蔽,如果是的话,请留言告诉我。目前我在上海,还可以正常浏览。
(完)
最近,我换手机了。
在购买新手机之前,我花了不少时间,研究各种机型。下面是一些我的想法。
一、对塞班的失望
我的上一个手机是Nokia的N73,购于2006年11月。

(图一 Nokia的N73是一个非常成功的机型。)
虽然直到今天,它都能正常使用,屏幕依然鲜艳亮丽,但是我对诺基亚的塞班(Symbian)系统完全失望了。
已经三年多了,塞班没有任何大的改进。如果不是受到iPhone的威胁,它可能直到现在都不支持触摸屏。三年前,诺基亚就声称要将塞班开源,可是直到今天也没有做到。如今,就连诺基亚自己都对这个系统灰心了,决定未来不再用于高端机型。
更蠢的是,塞班居然推出了“软件签名”政策。如果一个程序没有经过认证签名(signed),它就无法被安装。原因据说是为了防止恶意软件,保证系统安全。

(图二 如果你安装没有签名的程序,就会出现无法安装的提示。)
我完全不能想像,是哪一个被大象踩过的脑袋,才会想出这样自杀式的主意。它打击了软件开发者,提高了软件成本,增加了用户的麻烦。更要命的是,它实际上是无用的,因为用户购买塞班手机后的第一件事,就是制作自己的钥匙文件,避开签名政策的限制,所以系统安全没有得到一丝一毫的改进。

(图三 网上到处都是指导用户获取塞班开发者证书的教程,用于避开签名政策的限制。)
我的第一个决定,就是不再购买任何塞班手机。
二、开源系统 vs. 封闭系统
如今手机市场的明星,当然非iPhone莫属。但是,iPhone真的会成为不可动摇的霸主吗?

(图四 目前最炙手可热的iPhone手机。)
我认为不会。因为iPhone的操作系统是封闭的,而且苹果公司绝对不可能授权给其他公司使用。我无法想像,一种封闭的手机系统在未来会蓬勃发展。PC市场就是最好的证明,IBM的PC架构是开放的,所以PC市场的主流就是IBM兼容机。
我的第二个决定,就是不购买使用封闭系统的手机。
这意味着,iPhone、黑莓和Palm系统的出局。至于windows mobile系统,虽然也是封闭的,但是由于它具有一些别的手机没有的软件(后文会谈到),我暂时不排除它。
三、 Android vs. Maemo
说到手机的开源操作系统,Google主导的Android正是如火如荼。
我曾经觉得,Android将是未来的主流,但是目前的一些迹象令我产生了怀疑。首先,Android应用程序只能用java语言开发,那么莫非它的整个系统是运行在一个巨大的虚拟机上?其次,Google对Android采用了一种全面霸权式的管理,完全不是其他开源软件的开发方式,第三方程序员的patch很难被采用,一切都由Google说了算,很多地方是黑箱,外界不得而知。这两点令我很不爽,所以我现在对这个系统持保留态度。

(图五 Google最新发布的Nexus One手机,外界的评价并非完全正面。)
真正符合开源精神的手机操作系统是Maemo,它在Debian基础上开发,具有完整的Linux内核,大部分Debian程序只要稍作修改,都可以移植到Maemo上面。这才是真正令人砰然心动的系统,但是目前采用这个系统的手机,只有诺基亚的N900一种,而且手机功能非常弱,更像一部MID。据我所知,N900不支持直屏,不支持单手操作,不支持wap协议,没有原生的中文支持,GPS功能等于没有,总之非常不成熟。

(图六 N900是唯一上市的Maemo手机,但是它甚至不能单手使用。)
我的第三个决定,就是继续观望Android和Maemo,看它们下一步的变化,再决定到底倾向谁。
四、Windows Mobile系统
虽然像上面所说,我看好开源系统,但是因为它们目前未必具备某些我非常需要的软件,而这些软件在wm系统上可以拿来就用,十分成熟。所以,有一阵子,我十分矛盾,不知道到底该选择谁。
最后,我的第四个决定,就是购买两台手机。先购买一台wm系统的,作为日常用机;过一段时间,再购买一台开源系统的,作为开发用机。
五、几种WM机型
这一次,我购买手机的主要用途,是上网和阅读文档。所以,我希望买一台“大一点”和“快一点”的手机。所谓“大一点”,指的是800x480分辨率的屏幕;所谓“快一点”就是芯片速度快,RAM不低于256MB。
符合这个要求的WM系统手机,我一共考虑过四种机型。
1. HKC 虎蜥

(图七 国产品牌的HKC虎蜥。)
这台机子是国产山寨机中的高档货,最大优势就是价格便宜,只要15xx元。但是,它不支持3G,而且芯片只有624MHz,所以后来被我放弃。说实话,如果它支持3G,我可能就选它了。
2. Acer s200

(图八 s200属于Acer进入手机市场的探路产品。不知何故,PC公司在手机市场的表现都不好,比如联想和戴尔。)
这台机子的最大亮点,就是性价比。它的CPU是1GHz,在所有wm机器中运行速度最快,而接近全新的二手机价格只有2300元。考虑性价比的朋友,大多数都买了这个机器。但是,它的缺点也很明显,除了速度快以外,没有其他让人满意的地方,通话、外放、照相、电池通通都很平庸。我也没有选择它。
3. 三星 Omnia II i8000

(图九 三星公司在手机领域仅次于诺基亚,i8000是它的高端机型。)
这台机子各方面比较均衡,就是CPU只有800Hz,似乎性价比不够高。
4. HTC HD2 Leo

(图十 HTC的HD2有着无敌的硬件配置。)
这是目前wm手机的机皇,配置十分豪华,4.3英寸的屏幕,1GHz的CPU,576MB的RAM,1GB的ROM,而且是唯一使用电容屏的wm机种。
我在i8000和HD2之间犹豫不决。购机的当天,我对它们进行了当场实物比较。两者的运行速度我都可以接受,但是wm系统似乎不适用HD2的电容屏,令我操作很不习惯,再者HD2比i8000贵了1000元。所以,我就购买了三星i8000。
六、三星i8000的优点和缺点
先说i8000的优点。它使用了省电的AMOLED屏幕,颜色艳丽;摄像头的质量很好,照片品质出色(室内稍差),胜过HTC的所有机型;内置了8G储存卡。
至于i8000的缺点,只有一个令我最无法忍受。那就是被很多人提到的,它会自动关闭后台程序,使你无法同时运行多个任务。这与它的空闲RAM空间过小有关。根据我的观察,当这个指标大于70MB时,系统就不会自动关闭后台程序;当这个指标小于50MB以下时,后台程序几乎肯定被自动关闭,使得你好像在操作一个单任务系统一样。
所以,买来这个机器以后的第一件事,就是刷一个纯净版的ROM(wm 6.1版本更省内存),卸掉三星附加的各种占用内存的小程序。但是即使这样,运行时也不能保证完全不出问题。下图是我自己刷了纯净版wm6.5系统以后的桌面,虽然已经很简洁了,但是开机后的空闲内存也只有78MB。

(图十一 目前我正在使用的手机桌面。)
除此以外,还有两个我不太满意的地方。一个是电池,在3G状态下,我连续上网6个小时就没电了,感觉不够用,当然不排除属于电池本身质量问题的可能。另一个是按键不合理,机器上没有设置实体的方向键,操作起来不方便,令我对Android机种的轨迹球十分眼红。
好了,关于选购手机的部分,就写到这里吧。明天再接着谈,我如何把i8000用作一个强大的“掌上学习设备”,这才是我真正想分享的东西。
(完)
前几天,我突然想知道,人们在twitter上都引用谁的话。
于是,我搜索了#quote标签。

我惊奇地发现,返回的搜索结果质量相当高,堪称我见过的效果最好的引言网站。人们真的在一刻不停地引用妙语警句,每分钟都会新增几十条结果。
如果你想进一步找出最受欢迎的引言,可以搜索“RT #quote”。

如果你想搜索某个主题的引言,可以加入主题词,比如“love #quote”、“war #quote”、“animal #quote”等等。

我自己非常喜欢收集妙语警句,认为这是学习他人智慧、增强表达效果的最好方法之一。将近三年前,我做过一个“引言摘录”系列(一、二、三、四)。今天,我从twitter上又摘录并翻译了一些引言,附在下面,当作这个系列的第五部分。
=============================
51.
你有没有注意到,律师总是比当事人有更多的笑容?
—— Geo Carlin,美国喜剧演员
Have you ever noticed that the lawyer always smiles more than the client?
-- Geo Carlin
52.
愤怒(anger)只比危险(danger)少一个字母。
—— 作者未知
Anger is only one letter short of danger.
-- Unknown
53.
到头来,我们记住的不是敌人的攻击,而是朋友的沉默。
—— 马丁·路德金,美国民权运动领袖
In the end, we will remember not the words of our enemies, but the silence of our friends.
-- Martin Luther King, Jr.
54.
如果你把生活中的每件事,都拖到不得不做的时候才去做,那么你就为自己找来了许多压力。
—— Jack Canfield,美国演说家
When you constantly live your life in Have-To Land, you put yourself in a position of pressure.
-- Jack Canfield
55.
愤怒总是有理由的,但是很少有可取的理由。
—— 富兰克林,美国政治家,独立宣言起草人之一
Anger is never without Reason, but seldom with a good One.
-- Benjamin Franklin
56.
勇气并非因为无畏,而是因为认识到,存在比畏惧更重要的东西。
—— 作者未知
Courage is not the absence of fear, but rather the judgment that something else is more important than fear.
57.
用掉这个下午,你不可能把它带走的。
—— Annie Dillard,美国作家
Spend the afternoon. You can't take it with you.
-- Annie Dillard
58.
声称一种数据库满足ODBC规格,就好比声称电影《泰坦尼克号》可以转录在VHS录像带上。
—— Ken North,美国程序员
Saying a database is ODBC-compliant is like saying Titanic is a VHS-compliant movie.
-- Ken North
59.
良知是身体里的社会舆论。
—— H. L. Mencken,美国记者
Conscience is the inner voice that warns us that someone might be looking.
-- H. L. Mencken
60.
英雄和普通人的区别,只在于前者比后者多勇敢了5分钟。
—— 爱默生,19世纪美国诗人
A hero is no braver than an ordinary man, but he is brave five minutes longer.
-- Ralph Waldo Emerson
61.
基础研究就是,科学家不知道自己的工作有何用时所做的工作。
——冯·布劳恩,火箭科学家,导弹之父
Basic research is what I am doing when I don't know what I am doing.
-- Wernher von Braun
62.
当一个人连续失败三次或四次以后,他的所作所为体现出了他的人格。
—— James A. Michener,20世纪美国作家
Character consists of what you do on the third and fourth tries.
-- James A. Michener
63.
《宪法》只保障公民有追求幸福的权利。实现幸福,还得靠你自己。
—— 富兰克林,美国独立宣言起草人之一
The Constitution only gives people the right to pursue happiness. You have to catch it yourself.
-- Benjamin Franklin
64.
不要跟蠢货辩论。他们会让你的智力下降到同等程度,然后经验十足地痛击你。
—— 作者未知
Never argue with an idiot. They drag you down to their level and beat you with experience.
65.
缺乏忠诚是导致人生失败的主要原因之一。
—— Napoleon Hill,美国畅销书作者
Lack of loyalty is one of the major causes of failure in every walk of life.
-- Napoleon Hill
66.
生活的10%,是发生在你身上的偶然事件,剩下的90%是你对这些事件的反应。
—— John Maxwell,美国宗教演说家
Life is 10% of what happens to me and 90% of how I react to it.
-- John Maxwell
67.
弱者相信运气,强者相信因果。
—— 爱默生,19世纪美国诗人
Shallow men believe in luck and strong men believe in cause and effect
-- Ralph Waldo Emerson
68.
小心你的思想,它们会变成言词。小心你的言词,它们会变成行动。
—— 作者未知
Watch your thoughts; they become words. Watch your words; they become actions.
69.
总是做正确的事,让一些人感激,让其他人震惊。
—— 马克·吐温
Always do right - this will gratify some and astonish the rest.
-- Mark Twain
70.
一切都变了。如今,人们严肃地看待喜剧演员,却把政治家当笑话看。
—— Will Rogers,美国喜剧演员
Everything is changing. People are taking the comedians seriously and the politicians as a joke.
-- Will Rogers
71.
幸福来自于有目标的生活,而不是来自他人或物质。
—— 爱因斯坦
If you want to live a happy life, tie it to a goal. Not to people or things.
-- Albert Einstein
72.
精神萎靡就会一事无成。证明你有力量的唯一方法,就是力量没有用完。
—— 尼采
Nothing suceeds in which high spirits play no part. Only excess of strength is proof of strength.
-- Friedrich Nietzsche
73.
太多的人活着不是为了实现梦想,而是为了减轻恐惧。
—— Les Brown,美国演说家
Too many of us are not living our dreams because we are living our fears.
-- Les Brown
74.
充分倾听,然后开口,否则就是愚蠢和可耻之人。
—— 《圣经》
He who answers before listening - that is his folly and his shame
-- bible Prov 18:13
75.
人生就像骑自行车。只有向前进,才能保持平衡。
—— 爱因斯坦
Life is like riding a bicycle - in order to keep your balance, you must keep moving.
-- Albert Einstein
76.
评价自己的时候,不要用已经取得的成就,而要用力所能及、却没有做到的事情。
—— John Wooden,美国棒球教练
Don't measure yourself by what you have accomplished, but by what you should have accomplished with your ability.
-- John Wooden
77.
英雄气概就像象棋里的卒。它们向前攻,可能会遭到迎头痛击,但也可能开创胜局。
—— 歌德,德国诗人
Daring ideas are like chessmen moved forward. They may be beaten, but they may start a winning game.
-- Johann von Goethe
78.
离家多年,你终于回到故乡,这才发现你想念的不是这个地方,而是你的童年。
—— Sam Ewig,美国棒球运动员
When you finally go back to your old hometown, you find it wasn't the old home you missed but your childhood.
-- Sam Ewig
79.
如果你费心打扮自己,你往往就会以貌取人。难怪衣冠楚楚的家伙都是蠢货。
—— 作者未知
When you try to dress nice it is SO hard not to judge people. No wonder every one nicely dressed is an arse.
80.
人格并非与生俱来,必须自己去争取,不断向上游前进。随波逐流,不可能到达那里。
—— Dale Turner,美国音乐家
Character is not a gift. It is a conquest & its kingdom lives upstream. You never get there by drifting.
-- Dale Turner
81.
如果我们都雇佣比自己矮的人,这里就会变成一家侏儒公司。
—— David Ogilvy,英国广告专家
If each of us hires people who are smaller than we are, we shall become a company of dwarfs.
-- David Ogilvy
82.
冷漠的人不可能推动世界前进。
—— 作者未知
A different world cannot be built by indifferent people.
83.
网球运动最让人沮丧的地方是,不管你打得多好,都比不上一堵墙。
—— Mitch Hedberg,美国喜剧演员
The depressing thing about tennis is that no matter how good I get, I'll never be as good as a wall.
-- Mitch Hedberg
84.
伟大的成就刚开始时,不过是一两人之梦想。
—— James Allen,19世纪英国作家
The greatest achievement was at first and for a time but a dream.
-- James Allen
85.
逻辑带你从A点到达B点,想象力带你去任何地方。
——爱因斯坦
Logic will get you from A to B. Imagination will take you everywhere.
-- Albert Einstein
86.
多想一会,考虑一下别人,世界就会不同。
—— 小熊维尼,动画角色
A little Consideration, a little Thought for Others, makes all the difference.
-- Winnie the Pooh
87.
坏心情就像飞过头顶的鸟群,别让它们在那里筑巢就行了。
—— 作者未知
Bad negative thoughts are like birds flying overhead, just dont let them build a nest there.
88.
最伟大的写作风格,就是让文字彻底消失,只看到写作的内容。
—— 霍桑,美国小说家,《红字》的作者
The greatest possible mint of style is to make the words absolutely disappear into the thought.
-- Nathaniel Hawthorne
89.
如果你有一个好主意,那就径直去做,因为事后道歉比事前得到允许,容易得多。
—— 格蕾丝·霍珀,美国计算机科学家
If it's a good idea, go ahead and do it. It's much easier to apologize than it is to get permission.
-- Grace Murray Hopper
90.
你可以失败很多次,但是当你开始责怪他人时,你才真正开始失败。
—— 约翰·巴勒斯,19世纪美国学者
A man can fail many times, but he isn't a failure until he begins to blame somebody else.
-- John Burroughs
91.
所有明日之花朵,都是今日播种的。
——印度谚语
All the flowers of all the tomorrows are in the seeds of today.
-- Indian Proverb
92.
全部身心投入一项工作,因为太阳光只有聚焦,才能点火。
—— 贝尔,电话发明人
Concentrate all your thoughts upon the work at hand. The sun's rays do not burn until brought to a focus.
-- Alexander Graham
93.
教育的目的,是让空洞的思想变成开明的思想。
——Malcolm Forbes,《福布斯》杂志创始人
Education's purpose is to replace an empty mind with an open one.
-- Malcolm Forbes
94.
全身心投入和善用时间的能力,决定了一切。
—— 艾柯卡,美国企业家
The ability to concentrate and to use time well is everything.
-- Lee Iacocca
95.
有些人渴望永生,但是一遇到下雨的午后,他们就不知道该干什么。
—— Harvey H. Potthoff,美国宗教活动家
Some people who yearn for endless life don't even know what to do with a rainy afternoon.
—— Harvey H. Potthoff
96.
只有写成文字,并且签过名,你才可以说出口。
—— Earl Wilson,美国众议员
If you wouldn't write it and sign it, don't say it.
-- Earl Wilson
97.
罕见的不是天赋,而是甘愿跟随天赋、尝尽人间甘苦的勇气。
-- 艾瑞卡·容,美国当代畅销书作家
Everyone has talent. What is rare is the courage to follow that talent to the dark place it leads.
-- Erica Jong
98.
鸟儿歌唱,并非因为它知道答案,而是因为它有一支歌。
—— 作者未知
A bird doesn't sing because it has an answer, it sings because it has a song
99.
要么你赢,要么你得到了教训。
—— 罗伯特·清崎,美国商人,《富爸爸,穷爸爸》的作者
Sometimes you win and sometimes you learn.
-- Robert Kiyosaki
100.
直到你为那些永远无法回报你的人们做出奉献时,你的生活才开始有意义。
—— 作者未知
You have not lived until you have done something for someone who can never repay you.
-- Anonymous
101.
所谓现代战争,就是你什么也没做,就已经成了一条死狗。
——海明威,20世纪美国作家
In modern war... you will die like a dog for no good reason.
-- Ernest Hemingway
102.
傻瓜才会害怕无法避免的事情。
——普布利柳斯,公元前一世纪罗马作家
Tis foolish to fear what you cannot avoid.
-- Publilius Syrus
(完)
一、
网上有《许倬云谈话录》的书摘。
蒋经国的那一节,有一段话:
“蒋经国问我:美国的社会,工会的力量,民主制度好处在哪里,坏处在哪里;民主的意义,自由的意义。
我解释:一个水坝,拼命往上筑高,坝堤一决,水一冲击,谁也受不了。坝降低,水流缓下来,松弛堤后面的压力,这个是好事情。”
这段话说的,其实就是“大禹治水,改堵为疏”。但是,我以前没有想到,这个道理可以用于解释民主制度的作用。真是非常浅显、直观的一个比喻。
二、
当社会内部产生矛盾的时候,怎么办?有两个办法。第一个办法是高压政策,我把你关起来,不让你说话,看你还闹不闹?第二个办法是疏导政策,我跟你对话,看看能不能解决问题,即使一时无法解决,也让你心里感觉好受一些,避免双方直接对抗。
这两个办法,都可以用来保持局势稳定。但是,从长期来看,第一个办法——高压政策——是无效的。因为它并没有解决矛盾,而只是延缓了矛盾的爆发。你可以试想一下,如果三峡大坝没有泄洪孔,只是一堵实心的墙,那么结果会怎样?你真以为你能堵住长江?
三、
且慢,再想一下,在长期中,高压政策真的是无效的吗?
不,它是有效的,不仅短期有效,而且长期也有效。因为人不是水,水会越积越多,但人不会,人只会变老变死。所以,如果你把矛盾压制下去,等到那些家伙老了死了,抗争不动了,矛盾就自然不存在了!
因此,如果政府采取高压政策解决社会矛盾,它就肯定会一直拖下去,拖到你的矛盾和你的肉体,都化为尘埃。
这也是许多敏感的历史档案,一定要到当事人都死光后,才能公布的道理。
四、
作家张承志在其非常情绪化的小说《心灵史》中,描写了晚清西北回民起义。
当时,回汉两族矛盾剧烈,先是回人杀汉人。根据《心灵史》,回民首领马化龙攻占靖远县后,该县23万汉人不分男女老幼被杀得只剩下五千人;当回民攻占陕西某县城后,杀光包括出生没几天的婴儿在内所有汉族男子。后来,清廷派出左宗棠对回民实行了同样残酷的镇压。我在网上找到了这样的记载:
“除了极少数逃至西安城内和秦岭深山的近千回民外,几乎所有的(陕西)回族都被屠杀或被驱赶,使昔日里清真寺遍布的八百里秦川竟无一清真寺幸存(除西安城内外);陕北一些地方本是回民重要的聚居区,但经过起义之后,回族人口已荡然无存。
甘肃的回民由于有马占鳖的投降,可以说是保存回民最多的省份。而过去丝绸古道上的一片片回回村庄,经过“左屠户”的屠杀也无一幸免,其惨状由此可见一斑。
在镇压回民起义中,清军巢杀之恶毒在人类史上也绝无仅有(仅陕西回族就有“十不存一”之说),改变甚至抹杀了回回民族在西北繁茂的人口分布,其倾族驱赶回族人民,专门把劫后余生之回民由原来的关中平原、银川平原等富庶之地而强制安插在甘肃平凉、静宁、会宁、定西及宁夏西海固和径原、隆德等山区贫瘠之处的安置策略,直接影响到了今天西北回族政治、经济、文化的发展,完全可以说,今天西北回族的贫困就是由于当年清政府民族压迫的安置政策造成的。”
这些事件发生在19世纪70年代,距今不到150年。可是,如今还有多少人耿耿于怀这种回汉矛盾和残酷屠杀呢?在汉族和回族内部,恐怕大多数人都不了解、甚至不知道当年有过这些事件。如此刻骨的仇恨,都能被淡忘和化解,那么还有什么矛盾不能解决呢?
由此可见,时间是最强大的解决矛盾、淡忘痛苦的武器。
五、
历史能够经受得起漫长的拖延,但是我们经受不起。要在高压政策之下生活一辈子,这是何等的痛苦?
前几天,在一家五星级酒店的33层餐厅吃单位的年夜饭。我端着自助餐的盘子,站在幕墙玻璃前,看着不远处黄浦江上黯淡的灯火。冬夜的寒风凛冽,街上没有多少行人,室内厚厚的地毯上,落满了轻柔闪烁的背景音乐。我突然非常的伤心,想到一年就这样过去了,忍受和厮混,未尽的人生也许都是如此,真是情何以堪。
那一夜,未来在夜风中飘荡,风中没有答案。
(完)
来自:香港投诉合唱团
简介:
投诉合唱团的概念是来自芬兰艺术家Tellero Kalleinen及Oliver Kochta-Kalleinen。最初,他们希望将市民抱怨城市的巨大力量转化成另一种强大的力量。芬兰词汇“Valituskuoro”意思是投诉合唱团,用以形容很多人同时投诉的情境,他们便用了这个字面意思成立了真正的“投诉合唱团”。
邵小毛·现象2009
好听。

星期一,中国国务院明确表示将会继续对互联网实行监管。国务院新闻办公室发言人表示:中国依法保护网上言论自由,保护网上知识产权,保护未成年人健康成长,禁止利用互联网颠覆国家政权、破坏国家统一,煽动民族仇恨和民族分裂、宣扬邪教以及散布淫秽、色情、暴力和恐怖等信息。中国依法处置这些有害信息有充分的法律依据,不容置疑,与所谓“限制网络自由”完全是风马牛不相及的两回事。(文/Solidot 来自他们已经不会有羞耻心了部门)
昨天才发现BLOG中的图片全部“叉烧”(不显示)了,还以为是巴巴变相册偶尔抽筋,等到今天才发现巴巴变的首页出现了一行小小的说明,更改了图片外链的政策。
主要意思是,因为要检查是否用户上传了淫秽图像,所以封杀了所有新用户免费在博客上外链的权利,必须升级到VIP,但是VIP用户只要上传了不雅图片,也会被叉烧。老用户只有BLOGBUS,MSN,163还有百度博客可以支持外链,需要提交身份证号码和真实姓名。
经济学和政治学中分别有一个基本假设,那就是人都是自私鬼,政治家都是流氓(大意)。
我们的Zhengfu对待网络的基本假设就是,人人都是色情狂?
其实不然,醉翁之意不在酒。
你想,连相册都是实名制了,跨省追捕之类的工作进展就愈发顺利了。
在这冰冷的夜晚,我坐在热乎乎的被窝里,不禁感叹:“草木皆兵,道路以目的新时代已经来临!”
最近几篇网志中,我对时局发表了一些议论。
结果,就有网友留言了:
“如果这样不负责任的言论再不删除,我想贵网站被关闭的可能性太大了。”
好吧,首先,我要感谢这些网友对我的关心。虽然这种话也可以被理解成威胁,但是比起另一些人直接在我的文章后面张贴《刑法》第一百零五条第二款,我想还是把这叫做关心吧。
我要对这些朋友说,谢谢“忠告”,但是我不打算删除或修改我的那些文章,因为我不觉得自己说错了。
反而,由于你们这样的“建议”,我想起了一本书——奥地利作家茨威格的《异端的权利》。

这本书讲了一个真实的故事,描述了十六世纪时,一个孤立无援的教士如何向宗教独裁者加尔文挑战。那个教士除了道德的正直以外,一无所有,而加尔文掌握了所有资源,并且操纵了整个的国家机器。
书里是这样写的:
“一个人,既手无寸铁又单枪匹马,怎么能指望战胜有成千上万的支持,又有全部国家力量装备着的加尔文呢?
加尔文是一位组织艺术的大师,能够使全城全国转化为严格顺从的机器;能够扑灭独立思想,下令禁止思想自由而有利于他的全部教条。
国家权力在他的至高无上的控制之下,各种权力机关——市行政会议和宗教法庭,大学和法院,金融和道德,教士和学校,巡捕和监狱,文字和言论,甚至最秘密的切切私语,都听任他摆布。
他的教条已成为法律,任何人胆敢怀疑就要立刻受到教训,用压制讨论的辩论,用彻头彻尾精神暴虐的辩论,用监禁、流放或者火刑。
这教训就是在日内瓦只有一条真理是完全正确的:加尔文即先知。”
今天,我重新读了一遍这本书,深感收获重大。现在,我把这本书郑重推荐给你们,希望你们至少能够记住这本书的书名:即使异端也有自己的权利!
======================
在阅读过程中,我一直在思考一个问题:为什么会有人认为,“错误的”或者“不负责任的”言论就应该被删除呢?难道它们真的有那么大的危害吗?难道异教徒就一定要被烧死吗?
为什么我们不能尝试容忍错误的言论呢?即使有些言论可笑之极或大逆不道,我们加以容忍,并且保障人们有说出这些言论的权利,难道不是有利的吗?
——没错,我就是想解释为什么“言论自由原则”是必需的。
模仿德肖微茨教授的观点,我将理由分成三点:
1)错误言论不一定是错的,而很可能是我们的偏见。历史一次又一次地证明,真理最初只掌握在少数人手里,如果我们不让这些少数人说出观点,历史就无法进步,很可能直到今天人类还以为地球是宇宙的中心。另一方面,许多时候,所谓的“错误言论”,其实只是不符合当权者私利的言论,如果完全被禁止,只会对社会公平正义造成损害。
2)必须保证任何人都有提出异议的权利。请试想,如果你和一个人在法庭上辩论,法官发出裁决,只有对手才有资格说话,你却被禁止不得开口,难道你不立即抗议这不公平的对待呢?如果我们的制度是,错误的人、可耻的人、或者至少是那些有权有势者看来是这样的人,都被禁止发表意见,那会是怎样的情景!
3)禁止错误的言论,并不会让正确的言论变得更正确。如果你的观点是正确的,你有什么可怕的呢?狂热的群众运动,或者铺天盖地的吹捧,都不会让一个错误的观点变得更正确。真理总是真理,谬误总是谬误。宣传真理的正确做法,并不是禁止错误言论,而是用正确言论驳倒对方。你根本不用担心真理会败给谬误,因为真理是驳不倒的,任何需要保卫的真理都不是真理。
=========================
说到这里,有人也许会问,既然你那么相信言论自由,我的留言为什么被你删了?
我的回答是,那些广告帖、人身攻击帖、灌水帖、胡言乱语、不知所云的帖子,为什么不删?
言论自由并不意味着,你在他人的网志上可以为所欲为,而是意味着你也有同样的权利开设自己的网志。没有人可以禁止你在自己的园地里说话,你也永远不会生活在思想罪、或者《刑法》第一百零五条第二款的阴影之下,这才是言论自由。
(完)
去年12月,一种NoKo牌牛仔裤在瑞典上市,售价高达1500瑞典克朗(约合217美元)。

(图一 NoKo牛仔裤)
与众不同的是,这种牛仔裤是朝鲜生产的。



(图二 模特展示这种牛仔裤)
这条消息引起了轰动。
你能想像吗,一个与“资产阶级腐朽文化”势不两立的国家,居然生产西方文化象征的牛仔裤!
人们充满了好奇,想知道这些牛仔裤是从哪里来的?为什么选择在瑞典上市呢?它的背后又有怎样的故事?




(图三 NoKo牛仔裤宣传册页)
上周的德国《明镜》周刊独家爆料,揭开了谜底。真是让人大开眼界,这条牛仔裤背后故事的曲折复杂,就像超现实主义小说一样,充满了反讽,比好莱坞电影还要精彩。

(图四 NoKo牛仔裤的三位创始人,从左到右分别为23岁的Jakob Ohlsson,24岁的Tor Rauden Kallstigen,25岁的Jacob Astrom。)
事情的起源,要追溯到2007年7月。当时,斯德哥尔摩一家广告公司的三个青年雇员,下班后聚在一起喝酒。他们都是大学刚毕业不久,想寻找一些好玩的事情。



(图五 NoKo牛仔裤创始人)
出于好奇,他们打开了朝鲜民主主义人民共和国的官方网页korea-dpr.com。在Business部分,他们看到网页上写着,朝鲜出口各种商品,包括化妆品、卡车、大理石、矿泉水、灭火器,还有--牛仔裤!
一时兴起,他们就按照网页上的联系方式,发出了一封电子邮件,声称自己是一家瑞典进出口公司的经理,对朝鲜产品有兴趣,希望与该国合作等等。

(图六 他们发往朝鲜的第一封Email。)
这原本只是一场恶作剧,第二天酒醒之后,三个年轻人就把这事忘了。但是没有想到,他们很快收到了回信,一个自称Sapmak的朝鲜人,用非常友好的语气感谢他们对朝鲜产品的兴趣,并且希望他们与朝鲜驻瑞典大使馆联系。
这些年轻人就真的给朝鲜驻瑞典大使馆打了一个电话。对方在电话里保证,将尽力满足他们的一切要求,并且邀请他们到使馆面谈。这三个瑞典青年心想,到使馆看看也很好玩,就欣然允诺。因为担心自己看上去太年轻,不像进出口公司的经理,他们就请出了其中一人的家长扮演经理。那位家长的正式职业是牙医,他穿上西装,打好领带,带着三个"雇员",就去拜访朝鲜驻瑞典大使。在拜访中,他们还随身携带了两条牛仔裤(其中一条还是穿过的),作为交给朝鲜方面的样品。一切看上去非常可信。

(图七 Noko牛仔裤的整个制作团队,这张照片是后来在平壤的照相馆拍的。)
2008年初,朝鲜向他们发出了正式邀请,希望他们到平壤的服装厂考察签约。三个年轻人提出,想参观朝鲜的计算机中心,以及与普通的朝鲜青年见面,并观看大型团体操表演"阿里郎"。但是,朝鲜方面开出了一份不一样的访问日程,包括参观存放金日成遗体的锦锈山纪念宫、万寿台金日成塑像、存放各国领导人赠送给朝鲜礼品的国际友谊展览馆等等。

(图八 平壤的全景,照片中央就是全世界最大的烂尾楼——柳京饭店。)
2008年7月27日,这三个瑞典青年从北京乘坐火车,抵达了平壤。车站上有专人迎接,并且还有一个专门派来为他们开车的司机。他们被带到了著名的高丽饭店(Koryo Hotel),宾主一起在酒吧里唱卡拉OK联欢。朝鲜陪同总是在唱慷慨激昂的军歌,而他们则是唱甲壳虫乐队的老歌,两种歌曲轮流响起,最后以双方一起合唱"平壤之夜"而结束。为了纪念这个夜晚,后来上市的牛仔裤的两个型号,就被分别定名为Kara型和Oke型。

(图九 高丽饭店是朝鲜最高级的宾馆,号称五星级,但是按照世界通行标准,只相当于三星级。)
接下来的10天,他们参观了一些朝鲜的服装厂,但是合作的事情迟迟没有进展。在这个过程中,他们还去参观了平壤动物园,那里的动物不多,就连鳄鱼看上去都很孤独。

(图十 夕阳中的平壤街头。)
在离开前的最后一天,他们终于见到了负责采矿和纺织部门的一位高级官员,双方握手、合影、干杯之后,协议就算达成了。最后的决定是生产黑色牛仔裤,因为蓝色牛仔裤是美国文化的象征,朝鲜不愿意生产。

(图十一 平壤合影)
又过了一年,牛仔裤终于生产出来了。其中又经过了许多曲折,比如朝鲜的女制衣工人,不熟悉牛仔裤的生产工艺,不得不专门培训缝纫技法,再比如,朝鲜缺乏制作牛仔裤所需的金属纽扣,不得不进口,但是货物在经过巴基斯坦的时候遗失了,费了九牛二虎之力才找回来。这些都不必细说了,总之,"朝鲜制造"的牛仔裤终于问世了。


(图十二 生产牛仔裤的朝鲜工厂。)

(图十三 生产所需的牛仔布来自中国。)
2009年11月11日,第一批1100条牛仔裤运抵斯德哥尔摩。一家百货公司被他们说服,同意从12月4日开始销售。但是瑞典媒体议论纷纷,讨论是否应该与朝鲜发展经贸关系,尤其是考虑到朝鲜半年前刚刚进行过核武器试验。牛仔裤只上架了半天,百货公司就不堪压力,决定退回这批货物,理由是不愿意卷入政治。

(图十四 在平壤服装厂楼外。)
在争议面前,三个瑞典青年发表了一份措辞谨慎的声明,表示没有想到会事情变得这么复杂,他们的最初动机只是好玩而已。

(图十五 在仓库中)
现在,这些牛仔裤不再在商店中销售了,而是索性作为展品,在新成立的NoKo牛仔裤博物馆展览,彻底从一种商品变成了行为艺术。
这个博物馆的网址是nokojeans.com,地址在斯德哥尔摩Vartoftagatan 47号,靠近Medborgarplatsen地铁车站。经过的朋友可以去看看。


(图十六 Noko牛仔裤博物馆)
至此,整个事件看上去就像一出一本正经恶搞的荒诞派戏剧,混杂着黑客文化、嬉皮士精神、摇滚、商业操作、共产主义意识形态等各种元素。在这条牛仔裤上面,你可以演绎出无数的象征意义,没准那一天它真的就会流行起来。
另一方面,联想到海盗湾、宜家家具也都是瑞典人做出来的,不由让人感叹,这个国家的人的创造力怎么会这么丰富,玩得怎么会这么精彩,真是佩服啊!
(完)
上周,我收到了小劳站长的来信(原件见后文)。
他架设的羊城网论坛,已经有10年历史了。在这十年中,多少风风雨雨都平安度过,但是今年不行了,政府管制互联网的力度越来越大,眼看就要被“和谐”了。小劳不禁叹息,不知出路何在。
按照政府的规定,论坛以及其他允许访问者发言的交互式网站,都必须申请BBS专项审批,否则就必须关闭。要拿到这个审批,非常困难,核心条件有三条:
1)必须是法人;
2)注册资金超过100万;
3)必须有专人24小时监控网站,删除不良信息。
就算你满足了这三个条件,也不一定能成功,因为政府实行总量控制,不允许随便开设网上论坛。据说,整个广东省只批了腾讯公司一家,而浙江省索性停止了所有审批。
因为不可能拿到BBS专项审批,论坛迟早会被迫关闭,小劳为此感到很苦恼。他已经着手将服务器搬往境外。但是如果今年“白名单”制度实行,境外的论坛服务器照样会被屏蔽,所以也不能保证长期访问。
怎么办呢?难道论坛真的开不成了吗?我们无非就是讨论哪部电影好看,哪家饭馆好吃,哪个地方好玩,政府为什么就要赶尽杀绝呢?难道因为有一个人发表了“不良”言论,整条街的人都要被禁止说话吗?
我也不知道该怎么办。按照定义,我的这个网志也属于交互式网站,也必须去办BBS专项审批,必须24小时监控网友的留言,因为不可能做到,所以我也属于被清理的对象。自己都活不了,当然也就没办法为别人出主意了。
不过,我还是给小劳出了一个馊主意:设法在境外架设一个邮件列表服务器,所有发言都通过Email完成。Email不太容易被封锁,所以可以活得久一点。……可叹啊,我曾经觉得,邮件列表是过时的技术,现在看起来,很有必要好好研究一下,也许未来会发扬光大。
==========================
附:来信原文
一峰:
我是从去年末开始才留意到您的博客的,您对互联网以及对中国社会的观点与我都很一致,赞誉之词我就不说太多了,我这次冒昧写Mail给您,其实是想谈谈我作为一个个人网站站长,目前所遇到的问题。
今天看到新闻,说Google将考虑撤出中国了。我的个人网站现在也有这个打算——但我的个人网站绝非有什么外资背景,而是一个非常本土的网站。
我的个人网站是在2000年末建立的(算是非常老的一个个人网站了,同期乃至后期出现的一些个人网站都早已淹没),之前我还是网易虚拟社区羊城故事(以讨论广州的文化和时政话题为主)的版主,但我和我的网友们已经厌烦了在网易的言论频频受到限制,特别是对很多公共事件的看法不能直抒己见。所以我们就创办了羊城网(gznf.net)。但随着羊城网的影响力越来越大——特别是在2003年SARS事件之中,羊城网率先披露了SARS爆发一事之后,网站也开始受到各个政府部门的关照,很多时候我们也面临之前和网易所面对的问题一样——被关还是被阉?
不得已,我们多年来为生存只能做了很多妥协。但到了去年年末,严苛的政策使到大量个人网站非正常死亡,尽管我们暂时还未受到影响,但不免产生唇亡齿寒的感觉。而且由于阉割的尺度越来越大,如果单单为了网站的生存,而继续阉割下去,恐怕已经越来越背离我们创办这个网站的初衷了。再者,就算我们愿意继续被阉割下去,人家还愿不愿意你存在也是一个问题,随便一个部门一纸命令都可以让这个网站完蛋。
对于这个网站,我们一直没有考虑商业化,网站的管理团队都是兼职的志愿者,我们本身也有其他的职业,不靠这个网站生活,所以也拒绝了几次收购和合并,只是很纯粹地当一个兴趣去做。但如果我们需要继续维持这个网站,又不尽可能不背离创办的初衷,唯一的选择就只能是实施诺亚方舟计划——迁到外国的服务器上了。而这样的结果,可能就会导致被墙(也不清楚以后究竟会不会有什么白名单政策),而让我们的访问量大大减少,只会成为少数会穿墙网友的小圈子。而且,由于语言以及距离,我们对于外国的服务器管理也没有十足的把握(不过国外的VPS主机倒是很便宜,可以尝试或作为后备)。
对于这件事,我相信对于国内众多的个人网站站长也是很有代表性的,我希望听听您以及您博客读者对此事的看法和建议——作为一个个人网站的站长,我们还有更好的选择吗?
祝:健康
羊城网(gznf.net)小劳
(完)
一、
大约24小时之前,Google在官方网志上,发表了一个震撼性的声明,宣布退出中国市场。
These attacks and the surveillance they have uncovered–combined with the attempts over the past year to further limit free speech on the web–have led us to conclude that we should review the feasibility of our business operations in China.
“(中国)对Gmail的攻击,对电子邮件的监视,以及过去一年来,不断升级的对互联网上自由言论的控制,使得我们最终决定,重新评估在中国开展业务的可能性。
We have decided we are no longer willing to continue censoring our results on Google.cn, and so over the next few weeks we will be discussing with the Chinese government the basis on which we could operate an unfiltered search engine within the law, if at all.
我们决定,不再审查Google.cn的内容。未来几周中,如果可能的话,我们将与中国政府讨论,如何才能合法地在中国运营一个不受审查的搜索引擎。
We recognize that this may well mean having to shut down Google.cn, and potentially our offices in China.
我们明白,这很可能意味着Google.cn将被关闭,以及我们在北京的分公司的消失。”
就算太阳从西边升起,中国政府也不会同意“在中国运营一个不受审查的搜索引擎”,所以Google事实上已经正式放弃了中国业务。
二、
下面是我对这个事件的一些感想。
首先,我要说,这是一个勇敢得难以置信的决定!
1)这样做羞辱了中国政府,所以Google未来肯定会遭到巨大的报复。
2)Google因此放弃了中国市场的巨额利润,很可能潜在高达几十亿美元。
3)一旦这样离开,只要中国政治体制不发生变化,Google就永远别想再回来了。
要做出这样的决定,需要多大的勇气啊!天平的一端是巨大的利益引诱和打击报复的威胁,另一端则仅仅是一个“不做恶”的信念。“坚持信念”(Keep Faith)说起来容易,但是有几个人真正能够做到?对于全世界99%的公司来说,这只不过是一句宣传口号,没人当真,用一句“遵守当地法律”,就可以应付过去了。但是对于Google,“不做恶”简直成了它的传记标题。
它以巨大的勇气,做出这个决定,宁可断其一臂,也不肯同流合污、苟且偷生。这是对全世界理想主义者和热爱自由的人们的巨大鼓舞,这也是对全世界专制独裁政府及其帮凶的一个警告:金钱和暴政并非无所不能,休想征服那些自由和高贵的灵魂。Google用自己的行为,证明了它确实是一家巨人般的公司,必将作为人类的光荣,永载史册。
三、
其次,我要说,这是一个正确的决定。
请想一想,你可以和绑匪做交易吗?你把400万美元的赎金,空投给索马里海盗,你从此就安全了吗?绝不会的。那些匪徒只会变本加厉,进一步加害你,因为他们尝到了甜头。更何况,道义和法律在他们眼里视同草芥,寄希望于他们遵守交易约定,是不是太天真了?
就算Google同意中国政府的要求,对网站内容进行自我约束和审查,过滤所有敏感内容和关键词,中国政府就会放过Google吗?绝不会的。他们会变本加厉,提出更多的要求,比如要求查看访问日志和源代码。只要他们对你不是百分之百的控制,就不会放过你。
面对这样的要求,是不能做出让步的。因为只要让了一步,以后就没完没了,最终损失更大。上个世纪30年代,英国和法国为了避免同德国开战,先是默认了希特勒并吞奥地利,后来又同意希特勒占领捷克斯洛伐克,直到希特勒进攻波兰,才恍然大悟不能和此人做交易,战争是不可避免的。纵容希特勒的结果就是,法国整个沦陷,英国伤亡了100万人。早知如此,何必当初呢。
Google想要在当前的中国开展业务,“不做恶”是不可能的。即使你自己不想干坏事,也会有人找上门来逼着你干。如果Google想要保住自己的名誉,退出中国市场就是唯一的选择。
正是因为这个理由,半年前,国家有关部门以“传播淫秽色情信息”为借口,对Google施压时,我就建议Google退出中国市场了:
“中国有一句古话,叫做“宁为玉碎,不为瓦全”(An honourable death is better than a disgraceful life)。……Google公司如果真的退出中国,毫无疑问会遭受巨大商业利益的损失。但是与魔鬼合作,为了金钱,出卖灵魂,损失更大。”
四、
再次,我要说,Google反正已经退出中国了,请你再为中国人民做几件好事。
请把你在中国受到的待遇、你经历的网络审查、你遭受的网络攻击、中国网监部门的运作方式和组织架构、中国网络关键词列表,通通一五一十地公诸于世。让全世界看看,这个国家正在发生什么事,世界上五分之一的人口生活在怎样的制度之下,有怎样一堵大墙在限制他们的自由。
请你向美国政府提出要求,要求后者出面,向世界贸易组织(WTO)投诉中国的贸易保护主义。中国以清除有害信息为借口,保护国内市场,限制外国公司进入,不许它们向中国居民提供互联网信息服务,干扰了正常的国际服务贸易。美国政府应该请求国际贸易组织对中国进行制裁,要求中国在限期内开放国内的互联网市场。
五、
最后,Google即将退出中国,未来会怎样?
我想是时候了,我们要做好不再能访问Google的准备了,甚至要做好不再能使用互联网的心理准备了。过去半年中,新疆人的生活中就没有互联网。既然新疆人可以被过上这种生活,中国其他部分的人当然也有这种可能。
曾几何时,我觉得Google就是我的水和空气,没有Google,我不知道怎么活。但是,当这一天真的就要来临时,我反而坦然了,不再觉得没有互联网的生活不能接受了。
为什么我觉得互联网可以没有呢?因为我想明白了一件事。这个国家变成了现在这个样子,个人的前途已经谈不上了。不管有没有互联网,个人在这个国家里都是没有前途的。你建设国家的理想,被专制制度挡在门外;你幸福生活的梦想,被高涨的房价和稀薄的社会保障碾得粉碎;你赚钱发家的愿望,被各种罗网束缚,每前进一步,你就要做一次妥协,出卖一点灵魂。等到你快要走到终点的时候,你的灵魂也出卖得差不多了,变成和监视你的人一样的生物了。
一个人没有了前途,你说除了消磨时光,上网还有什么意义呢?
事情已经很清楚了,个人的前途不在于上网,而在于中国的政治制度。中国的政治制度不变化,个人不会有前途。生活在5000年来最严密的政府统治之下,真是个人的极大不幸。我们这一代人的人生,就是被政治糟蹋了。人生最美好的年华和充沛的创造力,完全被约束,在政治制度的束缚中白白消耗殆尽,无可奈何地看着自己的人生变成一片废墟。所以,我们可以不用Google,可以不上网,但是不能放弃要求政治制度改变的抗争。
而且,我要再说一次,中国目前的局势,实际上不是变得更悲观了,而是变得更乐观了。这个国家的国内矛盾正在加速升级,局势正在加速朝着我们希望的方向发展。对政府不满的人越来越多,而政府能够动用的力量越来越小。同时,通货膨胀和金融资产价格暴跌,都是马上就要开始的事情。天怒人怨,且看明朝。
六、
隋朝的时候,隋军讨伐南朝,檄文中说:“毒蛇螫手,壮士断腕,岂不惜其肌骨?所存者大也。”
1927年,王国维先生跳入昆明湖自杀,遗嘱中说:“经此世变,义无再辱。”
如果世界上最大的互联网公司都不堪羞辱,被迫断臂求生,试问还有什么人能忍受这种环境?如果一个人不堪忍受,甚至到了愿意砍手、愿意跳湖的地步,试问还有什么事情做不出来?如果你把别人都逼成了这样,试问你会有什么样的结局?
七、
Google退出中国市场,只是一个大事件的开始,而不是结束。让我们耐心等待,看历史站在谁的一边。
(完)
中国的网络环境,越来越差了。
我不知道还能在这里写多久,现在必须对未来做一些安排了。
下面是一些与我有关的永久网址,万一某天ruanyifeng.com不能访问了,可以查看这些网址。
需要说明的是,这些网址都在境外,本身就已经或者即将被屏蔽。我列出它们,只是因为这都是可靠的第三方服务,能够存在得更长久,更难以被消灭。
1. 备用网志:[ruanyf.blogspot.com]
【说明】 目前那里只做备份,没有开放评论。如果将来我不再维护独立的blog,就打算到那里写了。
2. Feed:[feeds.feedburner.com]
【说明】 订阅Feed是跟踪一个网志的最方便的方法。你可以使用阅读器(比如Google Reader),也可以用Email订阅。
3. 个人主页:[www.google.com]
【说明】 主要用来介绍一点自己的基本情况,重要的消息应该也会在上面发布。
4. Twitter:[twitter.com]
【说明】 我其实将近三年前,就开通twitter了,但是极少更新,现在看上去不用不行了。
5. 邮件列表“转贴公社”:[groups.google.com]
【说明】这是我维护的一个时事讨论区,因为发言都用Email,应该不容易被屏蔽的。
另外,我的电子邮件地址是yifeng.ruan@gmail.com,也是长期有效。
(完)
一、
大约24小时之前,Google在官方网志上,发表了一个震撼性的声明,宣布退出中国市场。
These attacks and the surveillance they have uncovered--combined with the attempts over the past year to further limit free speech on the web--have led us to conclude that we should review the feasibility of our business operations in China.
“(中国)对Gmail的攻击,对电子邮件的监视,以及过去一年来,不断升级的对互联网上自由言论的控制,使得我们最终决定,重新评估在中国开展业务的可能性。
We have decided we are no longer willing to continue censoring our results on Google.cn, and so over the next few weeks we will be discussing with the Chinese government the basis on which we could operate an unfiltered search engine within the law, if at all.
我们决定,不再审查Google.cn的内容。未来几周中,如果可能的话,我们将与中国政府讨论,如何才能合法地在中国运营一个不受审查的搜索引擎。
We recognize that this may well mean having to shut down Google.cn, and potentially our offices in China.
我们明白,这很可能意味着Google.cn将被关闭,以及我们在北京的分公司的消失。”
就算太阳从西边升起,中国政府也不会同意“在中国运营一个不受审查的搜索引擎”,所以Google事实上已经正式放弃了中国业务。
二、
下面是我对这个事件的一些感想。
首先,我要说,这是一个勇敢得难以置信的决定!
1)这样做羞辱了中国政府,所以Google未来肯定会遭到巨大的报复。
2)Google因此放弃了中国市场的巨额利润,很可能潜在高达几十亿美元。
3)一旦这样离开,只要中国政治体制不发生变化,Google就永远别想再回来了。
要做出这样的决定,需要多大的勇气啊!天平的一端是巨大的利益引诱和打击报复的威胁,另一端则仅仅是一个“不做恶”的信念。“坚持信念”(Keep Faith)说起来容易,但是有几个人真正能够做到?对于全世界99%的公司来说,这只不过是一句宣传口号,没人当真,用一句“遵守当地法律”,就可以应付过去了。但是对于Google,“不做恶”简直成了它的传记标题。
它以巨大的勇气,做出这个决定,宁可断其一臂,也不肯同流合污、苟且偷生。这是对全世界理想主义者和热爱自由的人们的巨大鼓舞,这也是对全世界专制独裁政府及其帮凶的一个警告:金钱和暴政并非无所不能,休想征服那些自由和高贵的灵魂。Google用自己的行为,证明了它确实是一家巨人般的公司,必将作为人类的光荣,永载史册。
三、
其次,我要说,这是一个正确的决定。
请想一想,你可以和绑匪做交易吗?你把400万美元的赎金,空投给索马里海盗,你从此就安全了吗?绝不会的。那些匪徒只会变本加厉,进一步加害你,因为他们尝到了甜头。更何况,道义和法律在他们眼里视同草芥,寄希望于他们遵守交易约定,是不是太天真了?
就算Google同意中国政府的要求,对网站内容进行自我约束和审查,过滤所有敏感内容和关键词,中国政府就会放过Google吗?绝不会的。他们会变本加厉,提出更多的要求,比如要求查看访问日志和源代码。只要他们对你不是百分之百的控制,就不会放过你。
面对这样的要求,是不能做出让步的。因为只要让了一步,以后就没完没了,最终损失更大。上个世纪30年代,英国和法国为了避免同德国开战,先是默认了希特勒并吞奥地利,后来又同意希特勒占领捷克斯洛伐克,直到希特勒进攻波兰,才恍然大悟不能和此人做交易,战争是不可避免的。纵容希特勒的结果就是,法国整个沦陷,英国伤亡了100万人。早知如此,何必当初呢。
Google想要在当前的中国开展业务,“不做恶”是不可能的。即使你自己不想干坏事,也会有人找上门来逼着你干。如果Google想要保住自己的名誉,退出中国市场就是唯一的选择。
正是因为这个理由,半年前,国家有关部门以“传播淫秽色情信息”为借口,对Google施压时,我就建议Google退出中国市场了:
“中国有一句古话,叫做“宁为玉碎,不为瓦全”(An honourable death is better than a disgraceful life)。……Google公司如果真的退出中国,毫无疑问会遭受巨大商业利益的损失。但是与魔鬼合作,为了金钱,出卖灵魂,损失更大。”
四、
再次,我要说,Google反正已经退出中国了,请你再为中国人民做几件好事。
请把你在中国受到的待遇、你经历的网络审查、你遭受的网络攻击、中国网监部门的运作方式和组织架构、中国网络关键词列表,通通一五一十地公诸于世。让全世界看看,这个国家正在发生什么事,世界上五分之一的人口生活在怎样的制度之下,有怎样一堵大墙在限制他们的自由。
请你向美国政府提出要求,要求后者出面,向世界贸易组织(WTO)投诉中国的贸易保护主义。中国以清除有害信息为借口,保护国内市场,限制外国公司进入,不许它们向中国居民提供互联网信息服务,干扰了正常的国际服务贸易。美国政府应该请求国际贸易组织对中国进行制裁,要求中国在限期内开放国内的互联网市场。
五、
最后,Google即将退出中国,未来会怎样?
我想是时候了,我们要做好不再能访问Google的准备了,甚至要做好不再能使用互联网的心理准备了。过去半年中,新疆人的生活中就没有互联网。既然新疆人可以被过上这种生活,中国其他部分的人当然也有这种可能。
曾几何时,我觉得Google就是我的水和空气,没有Google,我不知道怎么活。但是,当这一天真的就要来临时,我反而坦然了,不再觉得没有互联网的生活不能接受了。
为什么我觉得互联网可以没有呢?因为我想明白了一件事。这个国家变成了现在这个样子,个人的前途已经谈不上了。不管有没有互联网,个人在这个国家里都是没有前途的。你建设国家的理想,被专制制度挡在门外;你幸福生活的梦想,被高涨的房价和稀薄的社会保障碾得粉碎;你赚钱发家的愿望,被各种罗网束缚,每前进一步,你就要做一次妥协,出卖一点灵魂。等到你快要走到终点的时候,你的灵魂也出卖得差不多了,变成和监视你的人一样的生物了。
一个人没有了前途,你说除了消磨时光,上网还有什么意义呢?
事情已经很清楚了,个人的前途不在于上网,而在于中国的政治制度。中国的政治制度不变化,个人不会有前途。生活在5000年来最严密的政府统治之下,真是个人的极大不幸。我们这一代人的人生,就是被政治糟蹋了。人生最美好的年华和充沛的创造力,完全被约束,在政治制度的束缚中白白消耗殆尽,无可奈何地看着自己的人生变成一片废墟。所以,我们可以不用Google,可以不上网,但是不能放弃要求政治制度改变的抗争。
而且,我要再说一次,中国目前的局势,实际上不是变得更悲观了,而是变得更乐观了。这个国家的国内矛盾正在加速升级,局势正在加速朝着我们希望的方向发展。对政府不满的人越来越多,而政府能够动用的力量越来越小。同时,通货膨胀和金融资产价格暴跌,都是马上就要开始的事情。天怒人怨,且看明朝。
六、
隋朝的时候,隋军讨伐南朝,檄文中说:“毒蛇螫手,壮士断腕,岂不惜其肌骨?所存者大也。”
1927年,王国维先生跳入昆明湖自杀,遗嘱中说:“经此世变,义无再辱。”
如果世界上最大的互联网公司都不堪羞辱,被迫断臂求生,试问还有什么人能忍受这种环境?如果一个人不堪忍受,甚至到了愿意砍手、愿意跳湖的地步,试问还有什么事情做不出来?如果你把别人都逼成了这样,试问你会有什么样的结局?
七、
Google退出中国市场,只是一个大事件的开始,而不是结束。让我们耐心等待,看历史站在谁的一边。
(完)
对于一个有一定外语基础的人来说,语言学习的最难之处就在于突破瓶颈。虽然我平时很注意收集一些学习方法,也不间断地在做一些英文提高的练习,但是收效甚微。我时常埋怨自己“不努力、不坚持”。但如果真要完成每日的听写、阅读和朗读计划,花费的时间又实在太多。工作后的人总会以“忙碌”作为借口推迟这些计划,另外,确实也是因为这些计划实施起来艰难而低效,令人沮丧。
07年的天涯论坛上曾经有过这么一个讨论学习语言方法和误区的帖子,后来被广为转载。楼主“漏屋”几乎每日一贴,历时两个半月时间,不知不觉写了十多万字,详细地阐述了他对于语言学习的深刻理解。
这帖子被我看的时候,却是2010年1月了,然而相见恨晚总比没见过好,它确实解开了很多我在学习语言中遇到的疑问,诸如是否需要做长时间艰苦的听写练习才能真正提高听力?单词量是否是听力不好的主要原因等等。
你也可以对照下,是否陷入过如下学习语言的误区?
1.要有语言环境, 多跟外国人交流,最好是能出国,不久自然就能会说了。
2.学习外语要多记多背,也就是说是用记忆学语言。
3.想纠正发音,一定要专听和模仿纯正的发音,比如BBC或VOA那种。
4.要学习外语语法,如果语法熟练,说句子就正确了。
5.要有一定的词汇量,要大量背单词。但背英语单词很难。
6.以前学的是书面语或过时的英语,和现代口语是不一样的,所以我口语不好。
7.学外语必须非常刻苦,长时间反复练习。
而根据漏屋老师的说法,这些观点“全错!而且不但错,事实正好相反!”
我花费了三天时间对帖子内容进行了整理,包括借鉴了一些网友所总结的目录、修改错别字和笔误。目前正在做第二遍的校订,想一边校订一边实践一下文中所提及的方法。
这份整理好的文档,我也贴在这篇BLOG里也上传到百度的文档里(可直接下载,无需积分),方便希望提高外语的朋友们,一同分享,如仍然发现错别字,也欢迎指正。
我也想谈谈,我对这个问题的看法。错误肤浅之处,希望大家批评指正。
======================

PHP很烂吗?
作为一种计算机语言,它确实有很多缺点,而且是重大缺点。但是这并不是关键所在,哪一种语言没有缺点呢?我认为,PHP目前最大的问题,不是语言本身,而是它的发展方向出现了偏差。
PHP的开发团队,好像正在致力于将它从“个人工具”升级为“企业工具”,导致它的处境很尴尬。说它是个人工具吧,却有很多复杂的高级语言特性;说它是企业工具吧,复杂项目的开发效率和性能,却比不上其他一些语言。结果到头来,不仅“易学易用”的特色丢掉了,而且由于性能问题,依然很难在大型项目中推广。
在我看来,问题出在PHP 4到PHP 5的那一次升级。PHP 4是一种个人工具,很像shell语言的再包装,属于过程式编程,确实易学易用,是个人网站的最合适开发语言。但是,PHP 5就完全不同了,大大增强了面向对象编程(OOP)功能,到了5.3版本,更是添加了名称空间(namespace),甚至连lambda函数都支持了。看上去,PHP的设计者似乎想把这种语言变成下一个Java。
这样做的结果,就是PHP不再是一种容易学习的语言了。初学者必须像学习Java那样,记住那些繁琐的OOP语法,才能用好PHP 5。更糟的是,由于语言变得复杂,带来解释器的性能下降。我记得看过一篇文章,里面说同样配置的硬件,PHP 5.0比PHP 4.3慢30%,要知道作为一种脚本语言,其实PHP 4的速度就已经很慢了。
这就是目前PHP的问题:作为一种个人工具,它的优势正在丧失;作为一种企业工具,它依然不行。
我就不明白了。为什么一定要把PHP变成一种复杂语言呢?支持OOP真的有那么重要吗?脚本语言Bash够简单吧,事实上,很多人因为它太简单了,都不认为它是一种严格意义上的编程语言。但是,就是这样一种简单语言,却是Linux系统的操作基础,每一个Linux程序员都离不开,每天都在大量使用。PHP也一样啊,它的优势就是简单易用,用户只希望在十分钟里写好一个小型的留言板,并不打算用它来建造罗马,你又何必非要让它同Java一样复杂呢?难道非要用户手册超过1000页,才感到心满意足?你看,这么厚的用户手册,不管什么功能,只要你说得出来,我都支持!
另一方面,由于语法越来越复杂,而PHP是一种书写很自由的语言,结果就导致很容易写出混乱得可怕的代码。正如XML格式创造者之一的Tim Bray所说:
“我很肯定,你能够用PHP写出干净、易读、可维护的代码。但是显然,你稍一放松就做不到这一点了。”
我觉得,现在可能是PHP代码分叉(fork)的时候了。未来的PHP最好有两个版本:一个版本面向企业级应用,支持高级的OOP功能,着眼代码的可维护性和可协作性;另一个版本面向个人应用,强调易学易用,着眼快速和高效的网站开发。
(完)
这几天,我又重新开始读布尔斯廷的《美国人》三部曲。
这是一套写得非常好的历史学著作,我强烈推荐。如果你想了解美国历史,有两本书是必读的,首先是这本,然后是威廉·曼切斯特的《光荣与梦想:1932-1972年美国社会实录》。

《美国人:殖民地历程》第一章就讲到了,为什么清教徒要建立北美殖民地?因为他们在英国国内待不下去了,只好逃到北美。
为什么清教徒在英国待不下去呢?因为英国那时的主流宗教,是得到国王支持的“国教会”。凡是“国教会”的批评者、怀疑者、不同教见者,统统都要处罚和流放。
在这种背景下,清教徒开始要求宗教宽容。现代的“信仰自由”和“言论自由”的主张,都是起源于那时候,即起源于宗教斗争。为什么美国从建国起,就坚定地奉行“信仰自由”和“言论自由”?因为这个国家是由清教徒建立的,他们尝过被迫害的滋味,知道宽容的重要性。
《美国人》一书中,引用了当年清教徒的抗辩言论。大家看看,是不是直到今天,都堪称至理名言!
* 企图压制谬误,将不可避免地压制真理。
* 没有自由,就不可能顺利地揭示真理。
* 与其唯一有用的真理遭到阻碍或摧残,不如许多谬误被容忍。
我看了这些话,马上觉得16世纪的英国与21世纪的中国,简直太像了。
(1)都压制异议分子,这就不用说了。
(2)都处于资本主义原始积累时期,财富分化严重,社会矛盾剧烈。
(3)英国当时最赚钱的行业是毛纺。毛纺的原料就是羊毛,贵族和资本家为了获得羊毛,就把农民从土地上赶走,用抢来的土地养羊。而失地的农民没有了生活来源,只能去资本家的工厂,充当制造业的廉价劳动力。这就是著名的“羊吃人”。
(4)中国目前最赚钱的行业是房地产。房地产的原料就是土地,(以下内容请根据上一点自行推导)……
这就是说,中国正在重复英国400年前的发展道路。相隔400年,两者的社会构成和经济运作模式,惊人地相似。
既然走上了同样的道路,英国后来发生的事情,中国也必然会发生。大家一定要有信心,中国一定会出现自己的克伦威尔或光荣革命。(不了解这两个词涵义的朋友,请自行网上搜索。)
最后,再补充一点。当年,国教徒以“不信仰上帝,蛊惑人心”为借口,表面上维护宗教纯洁,实质上消灭清教徒,维护本教派一派独大的垄断利益。而中国目前使用的借口,叫做“清除互联网低俗内容”,表面上是清除低俗,实质上是清除所有政府不喜欢的言论。400年后,所有历史著作都公认,国教徒的宗教迫害是英国历史中最丑陋的一页,那么中国呢?
(完)
文/陈均
一
若是有人问起。我总是这样简介的:
“两层,有个院子,院子里有两颗柿子树和一颗香椿树。”
如果再问得详细一点,譬如多大。
“145平米。”
“哦,上下两层才145,这么小。”这是一种评论。
之前还有开玩笑倡议开冷餐会来着,这下没戏了。
又往往问起院子有多大。
“70多平米吧。院子其实和屋子一层的面积一样大。”
“那还行。”
还有人顺便夸赞说,“住别墅啦!”
我只好谦逊:“哪里哪里。农家院。”或者,“简易别墅。”
这里的村民自称住的是“小洋楼”,村里还有一种两层的类似“板楼”的楼房被称之为“筒子楼”。“筒子楼”没有院子。外边小区的五、六层的板楼被戏称为“蒙古包”。不过,这个叫法,我也仅仅听到过一次,那是在买房时,住在村子里兼做中介的大姐很自豪的指着自己的“小洋楼”,又鄙夷地指着遥遥望见的邻近小区的“蒙古包”。
二
院子其实是关注的重点。因为房子,谁都住过的,而且比此处更大。但是院子,在城里就比较少了。而且,想一想老北京四合院,天棚石榴金鱼缸。
住在附近的朋友刚换了房子住到此地时(他用城里的一套居室换了此处的小洋楼),兴奋得总是对人宣扬:接地气。就是接地气。
他给院子里栽上葡萄、装上藤架,墙上贴上树皮,买了石桌石凳。说是元宵时和人在此喝酒,很有风味。
我家的院子没有怎么弄。而且没有添,一直在“减”。
买了房子后,有一年多没有搬过来,其间二、三个月来一次,每次草都长得很长,有半人高,需要“砍”草。所以每次来,都是劳动日。久而久之,就不愿来了,有一次长达半年都没来。到冬天,草就自己枯灭了。
院子里原来有一颗大香椿树,四颗柿子树,一颗黑枣树,一颗小樱桃树。树下栽着许多月季花。当初看房时,羊羊一眼看中了院子的幽静,那时是秋天,柿子树的叶子变红了,还挂着一个个黄柿子。地上铺着厚厚的柿子叶,月季花也开着各色的花朵……
于是,一周不到,就买下了这个房子。
买了以后,先是移走了两颗柿子树和一颗黑枣树,以一个七十平米的院子来说,这么多树显然是太多太密了。两颗柿子树栽到朋友的院子里,只活了一颗,估计是移植的季节不对,技术又不够的缘故。这颗幸存的柿子树也结柿子,但据朋友说,没有我家院子里两颗柿子树结的柿子甜,因为两颗柿子树可以互相传粉。移走黑枣树是因为据当地人说没有嫁接,其实结不了枣子。黑枣树移到朋友院外的空地上,没有存活,就慢慢被遗忘了。还有一颗长在香椿、柿子树旁的小樱桃树,可能是野生的。站在两颗已然高大的树旁,这颗小樱桃老是长不大,而且特别被毛毛虫亲睐,秋天还没到,好看的叶子就成了网状,继而光秃秃的。有一回冬天,我放弃美好的愿望,狠心将这颗树挖了。
那颗大香椿树周围冒出很多小香椿,也长不高,我留着这些小香椿。想起张充和在美国的院子里栽着很多小香椿。
春天,香椿树冒出很多幼嫩的叶子,可食。住在城里时,看见老太太蹲在街边,摆着小捆的香椿叶,五角钱一捆。我问过朋友应该怎么吃,说是可以“香椿拌豆腐”。不过,我们还没有尝试过吃香椿叶,我们都在南方长大,并没有受到嫩香椿叶的诱惑。因此,香椿叶便毫发无伤的长大长阔,前排房子的老太太有时从后窗看到,是那种恨不得亲手去摘的神情。
住进来一年以后,香椿树实在长得太高了,高出前排房子的楼顶很多,狂风刮时,总是摇摆不停,这使得我们担心它会打碎前排房子的窗户、房顶,带来麻烦。有一次乘请工人修水泥地坪的机会,请他们把树干砍倒。工人说,再过一年,这个树干就不好砍了。树干倒时,我在旁边看着,它呼啸而下,离房檐仅差毫厘。砍掉树干后,这颗香椿树便成了一颗“歪脖子树”,对此我非常歉然,但也无法。余下的一个侧枝搭着破旧的院门,颇有味道。有一个季节,我在砍掉的树干留下的枝桠上挂了一盆小吊兰,也有味道。春天来了,被砍掉的树干底座上又长起好几条高大的枝条,郁郁葱葱。
两颗柿子树,一颗在院子前方,另一颗在院子中间,站在阳台上,中间的柿子树的枝条斜斜伸来,可采摘柿子也。我喜欢秋天的红红的柿子叶,把它当作枫叶。冬天积雪上孤零零悬挂的柿子也很好看,长尾贼鹊那时常来,蹦蹦跳跳的吃,往往留下半个空壳在空中摇摆。
栽种柿子需要打好几次药,但我们没有打农药的经验,也比较懒,一次也没有打过。带来的后果是,柿子一年到头地往下掉。掉在地上的柿子很麻烦,摔碎了以后,蚁虫就会积聚过来,甚至黄蜂乱舞。不去管它,便慢慢成了一个黑色的空壳。有段时间我捡柿子比较勤快,统计出一般每天掉落五个柿子。有时一、两月也不管,咬着牙关去捡时,一拾就是一袋子,干枯的、半枯的、新鲜得龇牙……
就是在刚才,妈妈羡慕地看着后面那家人,蹲在院门上搭的石棉瓦棚上拾柿子和北瓜,那都是新鲜的、黄黄的柿子,从树枝上剪下来,装到塑料袋里。妈妈只能在院子里扫地或散步时,抬手摘下看上去要掉下来的低矮处的柿子,高处的柿子则高不可攀,只能任由掉落或留与贼鹊度冬。
三
院子里的月季花环绕,大概有三种:红的、紫的和粉的。邻家院子里有白的,但岳母认为院子里栽白花不好。月季花的花期长,一年到头,除了春天没长叶子时不开花,其它时候都次第开放,赏心悦目。有好几个冬天,在雪地上看到枝头挂着数朵月季花。月季花有刺,所以在剪枝时要很小心很小心,我虽然戴着手套,但那是劳保手套,拔拔草还行,剪起月季花来却很是危险。记得有一次,被花刺刺伤了手指,中指或是无名指,也不去管它,慢慢地伤口凸起来了,就去很远的朝阳医院看,结果做了一次小手术,肿起来的包被切开,缠上药物和纱布,几个星期才好。去北大开会时,朋友问起,便引用里尔克之例。据说里尔克晚年在花园里摘一朵玫瑰花献给埃及之美人,被玫瑰花刺刺伤了手指,因里尔克有白血病,因此流血不断而死。被花刺刺伤乃风雅之事,但切入手指的手术刀却是瞬间的疼痛。
月季花需要修剪,但之前从未从事园艺的我哪有这般意识。一开始月季花青色的嫩枝长得很长,连那种花蜘蛛也来织网了。后来看到冬天里附近的村民都将月季花剪至花兜,春天时重新长出花枝。于是也剪,但舍不得剪得如此彻底,仅仅剪到齐膝。等花枝长大后,再东一榔头西一棒子的乱剪。剪去枯萎的花朵,剪去过长的枝条,剪去被害虫咬碎的叶片……
有一天,那个修水泥地坪的工头建议挖去月季花,说一般有小孩子的人家院子里都不载月季花和有刺的植物,防止小孩子被刺伤。我闻之有理,于是请他们挖去月季,送给了那位邻近的朋友。不过,末了还是留下了一株月季,移栽到院子中间柿子树下。
孩子长大了,事实证明我所听的建议是错误的,孩子的聪明天生就能辨别哪些是能吃的,哪些是能玩的,怎么可能不能分辨有刺的植物呢?月季花移走后,剩下的那株虽然照常开花,但是也不能维持四时美景之图画,真是憾事。在附近的地面长出一枝小小的月季,估计是残留的花根发出来的,也能偶尔开花。其余空出来的地面冒出荒草。
我还曾经在空地上撒过草籽,长出来的百草简直拔之不尽。后来留下的是一丛蒲公英,开的是嵌边的外黄内红的小花,开得极盛。基本上也是全年开花,开完花后结果,便是蒲公英。记得有个冬天,将近春节的时候,爸爸妈妈来看望出生不久的宝宝,由于室内封闭,不能抽烟,爸爸站在院子里抽烟,弹掉烟灰时看到这丛蒲公英还开着花,还有过将之移植回湖北的念头。
爸爸在湖北的老家的房顶上栽了很多花和树,每天上楼泼水。收获也很观。有很大的梨子,有黄黄的桔子,妈妈每回描述时都会这么说,每次上楼晾衣服就摘一个桔子吃。
去年蒲公英还在这个角落,今年却跑到那个角落里了,我们没有移动,它们就自己动了,大概是风水轮流转吧。
院子里,围住泥地的是用红砖斜放摆起来的“小花墙”,我觉得简单,也别致。修地坪的工头曾建议去掉,改做成一个一尺高的水泥墙,既可以防水,又可以坐。他说,这种“小花墙”砖头的角朝上,万一孩子玩闹,一头磕上去就不得了。但我没有听他的这个建议。那种类似于孩子会磕着的事情还要等好几年吧。实在是我还很中意这种“小花墙”的形状。
院子里的植物,还有一颗小无花果树,是我请爸爸从家里寄来的。家里的无花果,是我在读高一时从附近一家人家的院子里摘得,那时爸爸忙于公务,还未有余暇栽花钓鱼。无花果便由我插枝栽种,结出甘甜的小红果子。收到无花果时,正是秋天,寄来的四根枝条活了两枝。但无花果一直长不好,结的小青果永远不会红的样子。也长不大,移植了一次,也是横向发展。冬天时,岳父在院子中清理残枝,将光干干的无花果树挖出。我在枝条堆里拾到,又挖了个坑栽起来,到春天时居然又活了,长出阔大繁茂的叶子。我想:何必要结果呢,无花果就那么长着,就足以慰藉了。
还有另一种蒲公英,随处即长,羊齿状的叶子,开的是小黄花,然后变成一吹即散的蒲公英。
四
写完树和花草,似乎就无甚可写了。
我们的院子本身就很少打理。偶有朋友来看并指点:某某处可以置个影壁。某某处可以架一架葡萄,等等。但从春天推到秋天,秋天推到春天,实在是我等尚无闲情逸致乎?
还有人听闻,就建议:就让它这么荒着,像个荒园。各么,我就一下子想起《小城之春》来了。那荒园中悲哀的日子和压抑的火。
总体而言,我只是单纯地留着这个院子而已。仅限于草深时花个两小时拔草。然后看看野花开开谢谢。
院子里原有两间小屋,大概是作堆积杂物之用,买屋后羊羊觉得小屋又脏又破,就要拆了。当时也是去找工人而不得,前面屋子倒是正在装修,和装修的两个青壮工人商量,他们要一天200圆,而且不负责运走拆后的瓦砾。这样一来,屋子是没了,取而代之的是瓦砾的废墟,更是难办呀。一日,步出小区门口时,见几个老太太在刮收来的砖头——她们收到砖头,弄干净后再卖给砖厂。于是请她们来拆,拆后的砖头送给她们当报酬。老太太们很高兴,说以后再来。
等再来拆时似乎又过了几月,回想起来,是因为我很长时间都没来此处。老太太说来看过好几次,隔着门缝。直到我又一次来,打电话给她们。虽然是老太太,但手脚很麻利。三个老太太,半天功夫就移走了小屋,变成了两块水泥地坪。
前排房子的老太太一看小屋没了,过来问,然后遗憾:怎么不跟我说呢。她倒是想把这两件小屋平移到她家院子。
前排老太太还看着树,认为要把树统统砍光,她说:你看,院子里有树,就是方框框里有木,这个字不好。我没有理会,只是笑:当时买这儿,就是看中这几颗树呀。同时也想,方框框里孤零零的一个人,岂不是更不好呢?
此后又发现了水流问题。原来院子的设计者太马虎,没有考虑院子里的水流。一下雨,水不是向院子外面的水沟流,而是往院中的各种低处和管道流去。最早,看到前排老太太下雨时总是盯着我家院子的地面,后来她讲,这个水怎么这么奇怪,水朝我家地基直灌。果然,在院子前排,雨水向一个地方聚集、然后消失不见。借修屋后的水泥地坪的时候,那位老太太自己糊上了这个窟窿。
此后,又发现雨水朝屋前的一个坑道流淌,那个坑道是各种管子如热水管、冷水管、暖气管穿行之地,流下去的水自然是沁入了我和邻居家的地基。
邻居家发现后,非常着急。但是找不到工人来干活。有一次,在等公汽时,发现电线杆上贴着个家政公司的小广告,于是叫来家政公司的经理。
经理是附近的村民,他要了个不高的价格,然后和一个工人一起和水泥,涂地面。如此下来,水便朝院外倾斜流出了。
经理用水泥在院墙上涂了半人高,说反正是多的水泥,一是可以防水,二是——羊羊认为,可以让以后小孩子在上面用粉笔画画、写字。
经理还给过一些建议。譬如前面说的挖走月季花。对于拆掉小屋,他非常赞同,说,按照他们农村的观念,这个屋子是两陇的,不好。一般屋子是单陇或三陇,得是单数。那颗似香椿又似臭椿的椿树,他认为确是香椿,不过认为院中不要种香椿,因为香椿是树王,不适宜在院子中。然后,又是规划:某某处可置影壁,某某处可置葡萄架……
目前,院子还是这样的格局吧。我还在期待着寻找可以搭建葡萄架的人。
五
“用矛尖刺几条比目鱼玩玩”。
读怀特书信集,忽然看到此句,忽然齿颊生香。
田园生活,真真是让人艳羡。
目下,我虽无田,也无园,更无“田”与“园”之间的张力。但鸡犬之声相闻,时有炊烟之袭,大致是如此的。
除了邻近军用飞机场的飞机轰鸣声外(尤其是庆典筹备时期),这儿的一切都是安静的。
怀特的童话主人公都是在他的农场里产生的。
他在信中说到夏洛的子孙越来越多……
夏洛是一只什么样的蜘蛛呢?插画师画了个女人面孔的大蜘蛛,怀特告诉他,只要画一只蜘蛛就行了。一只纯纯粹粹的蜘蛛,没有任何象征的面孔。
在通往停车场的月亮门顶端也悬挂着一只硕大的蜘蛛,在我的印象中,似乎年年都看到。
羊羊一日从那里走过,可能是刚刚发现,一惊。
这是蜘蛛精么?
“圆月弯树黑蛛青柿”,一副很纯粹的乡村之夜的场景。
不过,田园生活苦恼处也很多。
打扫房屋:没多久就到处都布上灰尘。请人来打扫,不专业不说,开口600圆。相当于我的工资的几分之一了,还是自己来吧。
拔草:几天不拔,院子就成了凄惨惨的荒原。记得还没搬来时,半年才来了一次,草都有大半个人那么高,回去便说“砍”草了。我家宝宝出生的那个国庆节,从上海回来,发现院子中也进驻一只猫,生了五只小猫。猫一家在草丛中扑腾玩耍。
引水:夏季雨水一多,就直接灌进了地基,村子里的人工很贵,所以一直拖延。最后禁不住邻居的催促,在电线杆上找到一个家政广告,修了可引水的水泥地坪。
水管:室外的水管还埋在土里。请来的工人说要悬空才行,然后让我暑假有空时挖挖。
物业公司:突然断电了,好久没有来电,打电话过去,问有没有偷电。水管坏了,打电话过去,让自己拿着扳手自己修修,还说,小伙子,自己多学学,这点小问题……
拾柿:柿子一个个地往下掉,风景很美,但是掉下来的柿子很快就招惹蚁虫,甚至像一首名曲——黄蜂乱舞,得赶紧捡出去。话说回来,冬天的积雪上,孤零零的残存的柿子很美,跳过来啄柿子的长尾贼鹊很美,在枝条上摇晃的半个空空的柿子别提也多美了。偶尔尝一两个柿子,也很甜。院子里原来有四颗柿子树,送了两颗给附近的朋友,他移植后死了一颗。据他说,一个柿子树单独结的柿子没有两颗柿子树一起结的柿子甜。
树:除了两颗柿子树,还有一颗香椿树。但那颗香椿树长得像臭椿,所以往往有人来,有时断言“臭椿,快砍了!”有时说“香椿,一进来就很香。”春天时,嫩嫩的香椿幼叶可食,但我们都不是北方人,还没有去吃,所以很快香椿叶就长成不能吃的了。前排的邻居老太太从窗户里看见,直叹气。
毛毛虫:有两年似乎毛毛虫特别多。附近朋友家树上的毛毛虫爬在人家的墙上,星星点点。邻居见面就说:“你家的毛毛虫……”,他向我转述并生气,“我家的毛毛虫?你家才全是毛毛虫呢。”
外墙:很多家的外墙都做了泡沫的保温层,我不喜欢泡沫,而且很贵,但是看见外墙有些开始发裂了。
炊烟:很多人家还在烧柴烧炭,所以有炊烟,颇似野炊。我的书房五十米外有一个小烟囱,邻家也有个小烟囱,一闻到味道,赶紧关窗。但炊烟对到访的客人倒很有诱惑力。
小树林:不远处有个小树林,栽满了密密麻麻的小树,春天都开花,成了花海。秋天树叶的颜色很好看。冬天积雪皑皑。只是夏天不好玩,密密麻麻的阴沉。我已经为它写了一首诗。
附诗:“花海中的猫一家”
黄昏时,我和你一起
——当我步入小树林——冬天
那里光秃秃的,只有皑皑雪层
树干们齐刷刷像玩具森林
只有荒冷(六环边被人神共弃的风景!)
如今我重拾——春意将大地的被褥
换成花海。不知名的紫花
铺满了曾经的雪原。喧嚣、光线
柔软的丝绸香气(让花们来一场没顶之灾吧!)
——当我们步入小树林,隔着
花丛,一只花猫凝视着我们
掉头向花海深处跑去(沿着彩虹桥?)
接着又是一只、另一只……
自然地,我们谈起了前年国庆时
院子中诞生又迁移的猫一家
氛围仿佛回到了猫的家庭
自记:昨日傍晚,与内子散步至小树林边。小树林者,千百颗小树皆密栽于此地也。四时风景殊异。冬天白雪覆地,春季草花烂漫。春秋风景皆好,秋已无忆也。惟夏日过于繁茂,反而显得阴森气闷,且蚊虫甚多。某年冬,与内子散步至此时,还谈起我的小说《猫君自白》。昨晚步入小树林,几成花原也。花丛中两只小猫凝视而逃。遂有“花海中的猫一家”之句。己丑春晨记。
090428
小湖:在古运河遗址上有个人工湖,周围修着竹廊。刚住这儿的时候说是露天游泳池,也看见有人游泳。有两年水开始臭起来了,无人打理。奥运时,湖水变清了,一直到如今,但是不让游泳了。水淡风轻,在竹廊里漫步,还是颇可唱昆曲的。妈妈一到此就不愿迈步,哈欠连天。此处太静太安逸。
野桃花:停车场栽了一些野桃树,春天开的花很灿烂,照相时的背景很好。
大槐树:有六百年了,系满了红布条,还有人上供。有一半的树干已枯。树右边的大房子无人敢住,说是除非人丁兴旺,否则风水不利。某风水爱好者来玩时,认为加个影壁隔开就行了。
梧桐树:大槐树不远处,有一颗大梧桐树,很漂亮,那家人家的小院子都笼罩在梧桐树上,他们在梧桐树干上挂了个气罩灯。
邻居:邻居都爱养狗。邻居都说很土很纯正的北京话。
什么时候能用矛尖刺几条比目鱼玩玩呢?
查询了一下,附近有两处可野钓:一处是萧太后河,据说只有很小的鲫鱼。另一处是潮白河,出租车司机说可以钓到巴掌大的鱼。司机是那儿长大的,小时候经常在河里游泳,对面就是河北。
爸爸打电话说来北京时带鱼竿来。
一起。一起。
2009、9、17-19
自记:四年前买屋,两年前搬来居住,前三月,偶记若干文字道其琐事种种,今重见,因而辑之,再回首已无当日之境矣,年华虚度,徒增怅惘而已。己丑小寒日陈均记于通州皇木厂。
亲爱的弟兄啊,有火炼的试验临到你们,不要以为奇怪(似乎是遭遇非常的事),倒要欢喜。因为你们是与基督一同受苦,使你们在他荣耀显现的时候,也可以欢喜快乐。——《彼得前书》4:12-13
在因卫护公义而遭受的一切恶待和不幸中,圣经既然多次安慰我们,那么,我们若不以顺服和愉快的心情,从上帝的手中接受这一切患难,我们便是极端负义;特别是因为这一类的患难和十字架乃是信徒所当有的。
正如彼得所说的,由于我们的受苦,基督的荣耀得以在我们身上表明出来(参彼前四14)。
但因为对于高尚的人格,侮辱是比一百次的死更难忍受,所以保罗警告我们,不但有逼迫,也有谴责正在等候着我们,缘故是因我们信赖永生的上帝(参提前四10)。
在另一处地方,他以身作则,劝我们欣然忍受一切的“美名和恶名”(林后六8)。
我们不必以消除一切苦恼和忧愁来锻炼我们的喜乐之心。
假如圣徒不经历忧患,就不能在背十字架上学会忍耐。
假如在贫困中不感觉忧苦,在疾病中不感觉烦恼,在羞辱中不感觉忧伤,在死亡中不感觉恐怖,对这一切的不幸若都毫不关心,又怎能表示出一个人忍受患难的耐性呢?
但因为每一种不幸都叫我们痛心,此乃自然之事,所以一个信徒要借着抵抗并胜过他们的忧苦,来表显他们的坚忍。
当我们受相当刺激的时候,就当忍耐,并因敬畏上帝而抑制自己的冲动。
当他为忧患所打击,却仍以上帝所赐属灵上的安慰为满足,由此可以见出他的喜悦与兴奋。
本文选自圣城网[www.crca.com.cn]
文/陈均
在蓝旗营的地下书店花10圆阿堵物买了常人春先生的《老北京的穿戴》,同系列里还有一本《老北京的商市》,却没买,弃之于书架。因为,常先生的“老北京”乃是一个稍微可信赖的老北京也。
最早是和一个努力寻求道教知识的有为青年去拜访常先生,他住在团结湖附近的一个小区(如今可能已拆迁了),和徒弟住在一起,徒弟住在一楼,他住在五楼,有个小保姆为他们共同服务。
常先生自小对民俗感兴趣,听他说,小时候看见人家办什么红白喜事,有什么仪式感到不解,就上去问。久而久之,也就懂得多啦。常先生的一生倒是和其它人差不多,大约是50年代,他在郊区中学当老师,一时无事,写了篇关于胡风的报屁股文章,然后就惹事了,发往东北农场改造。不过他自言,没受过太大的苦,给农场里做宣传,编一些唱词,等等。文革后回北京。据说,别人是平反、落实政策,他却是刑满释放。回北京后,由于亲戚们恨他连累了他们,不再来往。他便孤独无依的,先是在东岳庙整理资料,大概是重建东岳庙那段时间。等东岳庙修好,又被排挤,到白云观帮忙打杂。后来又不能容身,只好开始写关于老北京民俗的书,就这样成了民俗作家和专家。
常先生大约出过十几种民俗著作,但往书架上一看,全被奖状遮盖。他说:经常有记者来,看到书便索要,他便想了个办法,将书倒过来,再用奖状一遮,记者要时便推说没有。
“他们又不看,只是当摆设,所以不给他们。”
大约是几年前的中元节,道教青年接上常先生去白云观玩,我们也跟随前往。在去时的车上,我们点唱民国歌曲,常先生是随点随唱。来段流行歌曲吧?不过,且慢,这段怎么这么感觉既熟悉又陌生呀,是周璇的么?常先生点头。可是,唱出来就变形了。
“日伪时期学校的校歌呢?会唱吗?”
“会的。但是不唱,汉奸唱的嘛。”
常先生对白云观自然是极熟悉了,他饶有兴趣的看着道士们做法事,四周亦挤满人群,墙上贴满了黄色的符箓,很多人在那里磕头、焚烧纸钱和符箓。我们退居在道士的房中小憩,主事的道士也在里面,问起来却非知识渊博之高士,说原来在峨眉山,但是那儿太清苦,没有白云观好。道教青年介绍这位道士,说是白云观的主持(或其他领导)。
记得火光中常先生一直眯着眼在看,全无倦意,仪式散后,我们搀扶他出门。他方说,比以前要减少很多仪式了。以前,他也曾充作抄经念经之一员。
道教青年想把常先生在北京电视台讲民俗的录像带拿来数字化,我帮他转过几盘,视频里的常先生穿着西服,但是看来看去很不对劲,仔细一研究,原来戴着假发,眉毛很浓——竟然是画上去的!
画着眉毛的常先生,就这么在电视上侃侃而谈啦。
和一位《南方周末》的朋友一起去采访常先生。常先生一听是《南方周末》记者,分外兴奋,说平时最爱看《南方周末》了,最后甚至认为我代道教青年送的挂历亦是记者所送,一种如见亲人的感觉咯。
那时常先生刚扎了一个很大的纸房子,说全北京估计只有这一份了。留影时还要站在纸房子前。
那天谈了上午、下午,中午吃饭时还在谈,谈的一部分是老北京的春节习俗,详见于《南方周末》的XX期和网上流传的未删节版。
另一部分则是激烈的发表自己的政治观点。
眼前是一个柔弱的老人,可能他的一生都是柔弱、与世无争的,所以落到孑然一身、依徒弟而过活的境地。有知情人告诉我们,当初常先生的几个弟子签过协议,由这个弟子照顾,常先生以后遗留的东西、著作权全归这位弟子。
照顾常先生的保姆亦是要钱的,电台来请常先生讲座,保姆随同,也要付给保姆报酬。说到这里,常先生说:其实来请的不多,所以保姆也拿不到多少钱。
五楼的小屋里,有水墨画《钟馗图》,有各色各样的小玩意,书架里放了些老北京民俗的书,里面有《古都还魂记》。谈起老舍,常先生非常愤然,说那时候的警察哪会是那样的,如果那样的话,就做不了人啦。说老舍为了政治扭曲了人物,所以后来跳湖自杀也是报应。
桌子上放着一个软面抄,娟秀的小字记着每日的简单事项。
我们告辞出来,常先生意犹未尽地起身相送。
可惜的是常先生的耳朵不灵光。不过奇怪的是,我说的话必须写在纸上,他才能“听”见。《南方周末》记者和道教青年与他说话,却是应答自如。大概是我们的频谱不对吧,我想。
如此一来,常到常先生家听民国老北京的故事的美好愿望算是全部落空啦。
在地铁上翻着这本《老北京的穿戴》,一边看常先生说着老北京的“穿文化”,一边想着常先生“戴假发、画眉毛”等等趣事,不禁风光旖旎。
2009-09-11 08:01:02
这几天,我在读《Javascript语言精粹》。
这本书很薄,100多页,正好假日里翻翻。

该书的作者是Douglas Crockford,他是目前世界上最精通Javascript的人之一,也是Json格式的创造者。
他认为Javascript有很多糟粕。因为1995年Brendan Eich设计这种语言的时候,只用了三个月,很多语言特性没有经过深思熟虑,就推向了市场。结果等到人们意识到这些问题的时候,已经有100万程序员在使用它了,不可能再大幅修改语言本身了。所以,Douglas Crockford决定,他要告诉大家,Javascript中哪些部分是精粹,哪些部分是糟粕和鸡肋。
这个想法非常好,但是我不得不说,这本书写得不够好,不适合新手阅读。原因如下:1)Douglas Crockford叙述得不清晰,更像与同行讨论问题,而不是由浅入深地讲解问题。这本书的重点不是解释,所以读完后,我觉得Javascript好像变得更复杂了。2)他固执地使用铁路图(railroad diagram)解释每一条语句。全世界似乎只有他一个人使用这种比Javascript更难看懂的图。3)该书基本上是一本简化的Javascript语法手册,缺乏足够的新内容。4)该书举例过少,而且在最难的函数和对象部分,使用的例子都是环环相套、层层递进的例子,导致阅读起来很吃力。
该书最有价值的内容不是正文,反而是附录。在附录B中,Douglas Crockford列出了12种应该避免使用的Javascript语法,我觉得非常值得推广。
==============================
1. ==
Javascript有两组相等运算符,一组是==和!=,另一组是===和!==。前者只比较值的相等,后者除了值以外,还比较类型是否相同。
请尽量不要使用前一组,永远只使用===和!==。因为==默认会进行类型转换,规则十分难记。如果你不相信的话,请回答下面五个判断式的值是true还是false:
false == 'false'
false == undefined
false == null
null == undefined
0 == ''
前三个是false,后两个是true。
2. with
with的本意是减少键盘输入。比如
obj.a = obj.b;
obj.c = obj.d;
可以简写成
with(obj) {
a = b;
c = d;
}
但是,在实际运行时,解释器会首先判断obj.b和obj.d是否存在,如果不存在的话,再判断全局变量b和d是否存在。这样就导致了低效率,而且可能会导致意外,因此最好不要使用with语句。
3. eval
eval用来直接执行一个字符串。这条语句也是不应该使用的,因为它有性能和安全性的问题,并且使得代码更难阅读。
eval能够做到的事情,不用它也能做到。比如
eval("myValue = myObject." + myKey + ";");
可以直接写成
myValue = myObject[myKey];
至于ajax操作返回的json字符串,可以使用官方网站提供的解析器json_parse.js运行。
4. continue
这条命令的作用是返回到循环的头部,但是循环本来就会返回到头部。所以通过适当的构造,完全可以避免使用这条命令,使得效率得到改善。
5. switch 贯穿
switch结构中的case语句,默认是顺序执行,除非遇到break,return和throw。有的程序员喜欢利用这个特点,比如
switch(n) {
case 1:
case 2:
break;
}
这样写容易出错,而且难以发现。因此建议避免switch贯穿,凡是有case的地方,一律加上break。
switch(n) {
case 1:
break;
case 2:
break;
}
6. 单行的块结构
if、while、do和for,都是块结构语句,但是也可以接受单行命令。比如
if (ok) t = true;
甚至写成
if (ok)
t = true;
这样不利于阅读代码,而且将来添加语句时非常容易出错。建议不管是否只有一行命令,都一律加上大括号。
if (ok){
t = true;
}
7. ++和--
递增运算符++和递减运算符--,直接来自C语言,表面上可以让代码变得很紧凑,但是实际上会让代码看上去更复杂和更晦涩。因此为了代码的整洁性和易读性,不用为好。
8. 位运算符
Javascript完全套用了Java的位运算符,包括按位与&、按位或|、按位异或^、按位非~、左移>和用0补足的右移>>>。
这套运算符针对的是整数,所以对Javascript完全无用,因为Javascript内部,所有数字都保存为双精度浮点数。如果使用它们的话,Javascript不得不将运算数先转为整数,然后再进行运算,这样就降低了速度。而且“按位与运算符”&同“逻辑与运算符”&&,很容易混淆。
9. function语句
在Javascript中定义一个函数,有两种写法:
function foo() { }
和
var foo = function () { }
两种写法完全等价。但是在解析的时候,前一种写法会被解析器自动提升到代码的头部,因此违背了函数应该先定义后使用的要求,所以建议定义函数时,全部采用后一种写法。
10. 基本数据类型的包装对象
Javascript的基本数据类型包括字符串、数字、布尔值,它们都有对应的包装对象String、Number和Boolean。所以,有人会这样定义相关值:
new String("Hello World");
new Number(2000);
new Boolean(false);
这样写完全没有必要,而且非常费解,因此建议不要使用。
另外,new Object和new Array也不建议使用,可以用{}和[]代替。
11. new语句
Javascript是世界上第一个被大量使用的支持Lambda函数的语言,本质上属于与Lisp同类的函数式编程语言。但是当前世界,90%以上的程序员都是使用面向对象编程。为了靠近主流,Javascript做出了妥协,采纳了类的概念,允许根据类生成对象。
类是这样定义的:
var Cat = function (name) {
this.name = name;
this.saying = 'meow' ;
}
然后,再生成一个对象
var myCat = new Cat('mimi');
这种利用函数生成类、利用new生成对象的语法,其实非常奇怪,一点都不符合直觉。而且,使用的时候,很容易忘记加上new,就会变成执行函数,然后莫名其妙多出几个全局变量。所以,建议不要这样创建对象,而采用一种变通方法。
Douglas Crockford给出了一个函数:
Object.beget = function (o) {
var F = function (o) {};
F.prototype = o ;
return new F;
};
创建对象时就利用这个函数,对原型对象进行操作:
var Cat = {
name:'',
saying:'meow'
};
var myCat = Object.beget(Cat);
对象生成后,可以自行对相关属性进行赋值:
myCat.name = 'mimi';
12. void
在大多数语言中,void都是一种类型,表示没有值。但是在Javascript中,void是一个运算符,接受一个运算数,并返回undefined。
void 0; // undefined
这个命令没什么用,而且很令人困惑,建议避免使用。
(完)
09年吃了很多顿饺子,包括自己包的,超市买的。思念和三元的饺子逢周末就“买二送一”,我的冰箱里全是他们的打折货。
上半年六月份组织了一次全国性的考试。下半年就决定放弃这个项目了,因为截至到09年,全市的考场,唯一履行“严肃考风”的,仅剩下我们一个机构。

生活就是五谷杂粮,我却开始偏爱各种调味品。菜场里逛到各种香料,每样凑一点点,十块钱以内打包回家。
公司的小灵通比现在自己用的手机还漂亮一些。如今的电话簿已经装不下太多人名,只能“另存为”,所以名录被“尤为精选”。
八月,火炉武汉,绿豆汤千层饼相伴。
超市买了一只0.7元的乳白色杯子,乐了我一下午。
这是一只常来我家逛的猫,我没给它喂过鱼。
丰盛的晚餐,有时觉得只有吃进肚子里的,才是真正的幸福。
每年都像是传教士一样在各个高校做讲座,一直相信只有一步一个脚印才能走得更远。