改变世界vs娱乐自己

1983年,乔布斯找到时任百事可乐公司总裁约翰•史考利(John Scully),想请他担任苹果CEO。身为大公司总裁的史考利,自然是看不上刚崭露头角的苹果公司。情急之下,乔布斯问史考利:你是想终此余生卖糖水呢,还是改变世界?史考利深为感动,决定到苹果任职。史考利治下的苹果公司过了四年好日子,随后就江河日下。直至董事会请回乔布斯,这才挽回颓势。苹果有幸东山再起,另一些公司却难逃被收购甚至倒闭的命运。改变世界是每一位技术人员、每一家技术公司的梦想,它是那么宏伟绚丽,却只有少数幸运儿才能企及。

前一段时间,和一位在加拿大做组织行为学的博士生见面。他的专业方向是研究技术在取得市场成功的过程中被哪些因素所影响。这些因素,既与产品本身有关(例如,他的同学就在调研点评网页面上标签对用户的有用程度及反馈到营收上的效果),也与企业组织管理、政策、市场环境、用户心理等等因素有关。谈了一早上,术语满天飞,我就记住一点——技术改变世界,首先要推向世界,而这正是比成功技术本身更难的部分。

6月11、12日,CSDN和Digital River主办的中国软件全球营销论坛,在某种意义上,也是试图组织一次解决将软件技术推向世界的问题的讨论。深圳万兴、珠海斑点猫、超级兔子等等意识超前的公司,早已走出国门赚美元。你可以说他们做了许多同质化产品,但不可否认的是,来自中国大量同类型产品(如音视频转换、系统优化等)形成了一种潮水兵团般的市场力量。并非只有操作系统才能改变世界,当用户使用某个DVD翻录切割软件,对昂贵的DVD光盘开刀并传到网上与他人分享时,世界也在发生着急剧的改变。姑且不论法律上的种种约束,这种破坏力对世界的影响,不可估量。

不过,难道做技术就一定要存心改变世界吗?未必。有些伟大的产品,产生于娱乐自己的初衷。李纳斯在自传中宣称,Just For Fun,谁又能说他没成功呢?退许多步说,技术有时也能做到“纯娱乐”的境界。CSDN商城销售的一款T恤,图样是用Byte Syze语言打印出“Hello World”字样。我查了一下,Byte Syze是一种esoteric programming language(编程奥语),即不以生产软件为目的,纯为试验某个疯狂的想法、故意提高编程难度,甚至只是为讲笑而存在。以其意义论,我更愿意称之为“扯淡型编程语言”。这种类型的语言有大批拥趸,语言数量上百种。它对世界毫无生产力上的贡献,却深刻地揭示了技术人员亲近机器、疏远人类的专业特质,且具有一种对程序员宛若知音的幽默感。新加坡电影《说鸟语(Talking Bird)》描述了当地的语言混杂状况,而Talking Machine正是程序员的精彩写照。

世界就在那儿,你可以去改变它,也可以躺在草地上,喃喃自语一个算法的实现,享受这一刻与编程亲近的美好。改变世界,难道不是为了娱乐自己吗?

(刊登于2009年7月刊《程序员》杂志卷首语栏目)

daf2e93c57bb8ab8

迁移Blog平台

实在受不了Community Server的弱智垃圾评论处理手段,因为它不开源,自己修改也很麻烦,所以决定迁移到Word Press。由于hanlei.name原来用的数据库服务器只对内网开放,故WP提供的直接迁移手段用不了。折腾半天后,终于找到近乎完美的解决方案:

1、用Keyvan Nayyeri编写的Community Server 2.1 BlogML Converter,格式导出CommunityServer的数据(BlogML格式)。过程很简单,按压缩包中的文档指示,把文件传到CS相应目录下,到后台访问SyndicationOptions.aspx(“RSS设置”),在BlogML那个位置点“Export”,就会在新窗口打开导出后的XML文档。

2、用Aaron Lerch编写的WordPress BlogML Import工具在WP后台导入BlogML数据。Wayne John修改了这个工具,修正了一些小问题。Wayne John版本在这里下载

3、实际上Wayne John的版本也有问题,WP 2.7以上的都支持不好,而我的版本是2.8.1。我找到了这篇文章,根据文章指引,终于完成导入。

整个过程中有几点要注意:

1、CS要运行于ASP.NET 2.0平台;

2、第三步所需时间较长,Apache缺省的30秒执行时间不够,我修改了耗时最长的一个模块(plugin.php),使之支持60秒执行时间;

3、貌似对分类的支持还有问题,需要手工调整;

4、导入后页面上会给一个新旧链接对照表,可以据此做URL Rewrite,我的虚拟主机不支持编辑.htaccess,有空的时候在WP基础上写点代码实现跳转吧。

上面提到的BlogML导入工具,及修改后的plugin.php,可以在这里下载