Categories
Social

火星了 – 有关方兴东

今天才看到方兴东的这篇博客文章:曲线人生:博客的狂喜和痛楚,博客中国的远见和愚蠢,才知道老方已经被放逐了,搞起了电影中国

我读fxd文章得追溯到95/96年的南方周末(10年后的南方周末,和PCM一样,有些干瘪了),然后是他在”个人电脑”杂志上的专栏;再后来就是他到清华读书,创办互联网实验室、写关于博客的博士论文(现在也没读过这篇大作)、创立博客中国

有些人只能做诸葛亮,可能fxd算一个,诸葛亮就是诸葛亮(这个说法也可能要argue一下),他不是刘备。 几个月前第一财经的“头脑风暴”上,袁岳对fxd说,“每次互联网出现新苗头,你都是排头兵,可每次剩下来数钱的人里总没你”。这次的博客网似乎也没逃脱命运。

这么看来我在几个月前从博客中国搬家还是有先见的:它的服务实在不能算好。

祝愿方兴东的新业务能早日成长壮大,风云人物总得有一次雄起的机会。

PS: 为什么电影中国把“疯狂的石头”归为科幻类电影

Categories
Technology

回顾十年前的中文PC Magazine

上午去邮局缴电话费,出来的时候在路边的报亭上看到两套超值套装:一套是中国国家地理10月份的“中国人的景观大道”,16元;另一套是个人电脑的12周年纪念套装,共四册,10元。于是花了26块钱把两套都抱了回家。

现在的个人电脑(以及从去年底重新从从ZD引进的PC Magzine中文版“电脑时空”)已经沦为和xx之家、xx之友一样的电脑杂志了,买它的原因纯属感情需要。为了证明这个观点,我翻出了1996年第2期的个人电脑杂志,看看当时的PCM到底是个什么水准:

1. 10年间的PC Magazine

2. 微软进军Internet

3. 被纽约现代艺术博物馆收藏的IBM ThinkPad蝴蝶键盘

4. 1996年度Technical Excellence人物

5. NOS评测(Solaris)

6. “PowerPC尚需完善”

7. OLE技术内幕

8. 南开大学刘瑞挺教授专题

9. John Dvorak专题(此栏目一直保留至今)

10. Java进入公众视野(当时的身份是Internet工具,applet)

11. 有关Intel(如果这个标题放在本期发,同样适用)

这样一份内容丰富的杂志,十年之后拿出来一样有分量,而十年后我们看到的是一本已演变成更彻底的大众化硬件期刊。也许这就是这两本杂志针对国内市场的定位,或许只有这样的定位才能获得更好的商业利益。而我,更需要一本像96年那样的一份杂志,硬件、软件、系统、网络、技术专家、深度、评测、分析、全球视角:这样的刊物现在在国内还找不到。

参考(本人博客文章):

1. PC Magazine和PC Professional

2. 走向衰败的PC Magazine中文版

Categories
IBM Technology

跨语言交流的Mastor

报道,美国政府将在伊拉克部署IBM的自动翻译系统Mastor,用来帮助驻伊美军与使用阿拉伯语的当地警察进行交流。

Mastor安装在一台移动计算机上,包括了语音识别、机器翻译、语音合成技术。使用双方分别对着电脑用自己的母语说话,然后计算机在对语音信号进行分析后、翻译、合成后播放出来。

Mastor的主要使用场合包括医疗信息等特殊环境下的辅助翻译(可以想象在这个领域用外语交流的难度) ,借助Mastor,说不同语音的医生和病人可以更好的交流。

我曾经在Yorktown举行的一次技术展示里看到IBM开发的从阿拉伯文到英文的自动翻译和摘要系统。不难想象911对于这个研究工作的带来的影响和推动作用。

IBM Mastor 主页
IBM Mastor演示

Categories
IBM

校园宣讲会

这是我今年第二次来交大参加校园招聘活动。上一次是5月份的IBM Blue Pathway,在交大徐汇校区举行,我是作为实验室代表参加的;今天则是CDL在交大闵行校区举办的2006-2007年度校园宣讲会。

我参加过的几次宣讲会上,在panel discussion期间几乎都有这样的问题:你觉得博士在开发实验室能扮演什么样的角色,工作内容是否与研究方向一直。其实这个问题很难回答,简单点说是it depends;因人而异。离开校园,好多工作,包括软件开发的工作和学历高低没有太直接的联系,学位也许只是证明”俺也曾经奋斗过“。广博的知识、动手能力强、有分析问题解决问题的能力、聪明好学、专业领域业务好,满足这些条件,无论本、硕、博都是好的候选人,都有好的机会。当然,博士的经历应该可以确保上述的要求可以更好更高的满足。

举个例子,今天来参加宣讲的IBM杰出工程师Jane Xu,80年代在美国获得博士学位后加入IBM,直到2004年还在写code。

PS: 晚上请师弟们吃完饭,8点出头在校门口坐5块钱的黑QQ到轻轨5号线。从5号线东川路站坐到莘庄,转1号线坐到人民广场,转2号线坐到科技馆站,1小时15分钟,票价6元。

Categories
Technology

2.0里的1.0

有个常用的Web功能,很难2.0化,它就是文件上传(File upload)。File upload是个标准的1.0样式的功能,由于要访问本地文件系统,什么JavaScript,Flash都很难做处理,做的好点就是hacking一下,效果模仿接近2.0一点,根本上说还是笨拙的。

在不使用无安全级别限制的重量级插件的情况下,全凭现有的W3C规范,突破这个瓶颈着实有点困难,更不要说提供上传进度监视等高级功能了。

我还没有仔细阅读过W3C的这个新的draft spec,不难看出有越来越多的人正在考虑优雅的解决这个问题,尽可能达到比较完美的2.0高度。

Categories
IBM Technology

CACM: IBM’s Pragmatic Embrace of Open Source

IBM’s Pragmatic Embrace of Open Source”发表于2006年10月号的Communication of ACM,作者系UC Berkeley的教授。此文回顾了过去的20年IBM从闭源软件到开放接口、到支持开源软件,并对IBM开源三大动机进行了详细分析,值得一读。去年发表在IBM Systems Journal的”A history of IBM’s open source involvement and strategy“一文是该文的主要参考文献之一。

在谈论到有关工业标准的时候,有几个经典的例子是经常会被提到的:BetamaxVHSMCA和PCI;OS2和Windows。在这篇文章里,作者从另外一个角度谈到了20年前有关OS2的故事。

Categories
Social

The World is Flat 中文版

The World is Flat中文版终于出来了,考证了一下确认湖南技术出版社的版本是这本畅销书的正式中文译本(相比东方出版社的版本)。遗憾的是在网上看到很多有关此中文译本翻译质量的评论,让我犹豫是买这本中文版还是等等影印本(不知道会不会有)。

The World is Flat在IBM内部是本备受推崇的书,就像另外两本广为人知的《蓝海战略》和《高效能人士的七个习惯》一样,成为IBM书架上的另外一部新作。

Categories
Technology

代码搜索

先是Koders,然后是Krugle,现在是Google Code Search,程序员们要越来越开心了。其实借助搜索引擎找sample、写代码,很多人很早就开始用了,代码搜索把涉足的领地从社区论坛、新闻组转移到了CVS/SVN上。代码查询加速了知识传播,促进代码共享,但同时也带来了软件版权License的问题,这对每个商业软件公司都是一个敏感地带:程序员频繁的从网上copy代码到产品中,对商业软件(包括开源软件的clean development)来说是严重的隐患。

应该很快有人制造开发各类主流IDE(Eclipse,VS等)上插件工具,利用Web services集成代码搜索功能,作为“Code Assist”, “auto-complete”等代码辅助工具的高级特性了。

Categories
Social

水深

对一些特定的商品大部分普通老百姓也许永远也搞不清楚其价值与价格的关系,原因很简单,信息不对称。下面就是一些我自己一直没有搞太懂的商品,列举一下:

1. 阳澄湖的大闸蟹。我或许从来没有吃过正宗的阳澄湖蟹,因为事实上几乎没有可靠、定量的物理方法去判断一只蟹是原装蟹还是泡过阳澄湖水的洗澡蟹。吃蟹,成了情感消费;

2. 七浦路(被群众亲切的称为”Cheap Road”)的衣服。前天去了趟七浦路,市中心的位置、城乡接合部的风貌。在血光冲天的七浦路,一刀下去砍在脖子还是脚跟,学问很大:两军交锋,勇者胜;

3. 装修与建材。这是一个公认的水最深的消费领域之一,不是一般深,是相当的深;

4. 旅游景点的小商品。我去年在九寨沟买了一条很漂亮的围裙,结果没过多久就在上海看到了一摸一样的款式。我怀疑全国旅游景点的小商品都是从浙江义乌这样的小商品集散地进的货。几毛钱的东西几块、几十甚至几百的忽悠群众。

还有很多这样的例子,大家来补充:)

Categories
Technology

VM update

本周一刚放出的VMWare Converter Tool又向前迈进了一步:它可以把一台物理机器转换成一个virtual machine,重新部署到其他VM环境中去。我对VMWare下两步的期望包括:

1. 把一个VM转换成一台物理机器,实现测试环境到生产环境的快速转换;

2. 把一个“活”的VM备份下来,从数据角度看,不仅仅是文件系统,还包括内存snapshot、磁盘交换数据、寄存器等等,完完整整的把一个运行中的系统镜像到另外一个系统中去,像休眠和苏醒一样。调试,性能分析、负载均衡等多个应用都可能是受益者。

Virtualization是个越来越热门的话题,当然还有来自IBM的virtualization技术与相关产品(IBM Virtualization)。

Categories
Life

老磁带

利用假日空闲整理老物品,翻出了大学里用过的爱华收录机、磁带、一堆1.44寸软盘和光盘。这两盘带子至少有超过15年的历史了,也是我很喜欢的两张专辑。装了两节电池试听了一下,声音居然还挺清楚的。

Categories
Technology

本地化一例

听说Google Calendar出了本地化版本,出于对ajax localization实现手段的好奇,我读了一下它的JavaScritp代码,发现了蛮有趣的几个本地化语言翻译例子。

获取Google Calendar的JavaScript的方法很简单,”View Source”后定位到.js文件并下载即可(不能用download manager之类下载软件,因为calendar的JS文件与cookie绑定,只有认证后才可获得)。Calendar现在的JS文件从文件名上看像是动态生成的,比如叫“20060927154334doozercompiled__zh_cn.js”(在日历“设置”里切换语言,分别得到多份本地化JavaScript代码)。 这个JavaScript文件不小,所有的本地化消息都保存在里面,用类似Java语言里“\uxxxx”方式对非拉丁字符进行编码,无法直接查看。可以使用JDK自带的native2ascii.exe工具,执行”native2ascii -reverse source.js target.js“把文件中的字符编码转换成可显示的字符串。

下面是在文件里找到的几处翻译:

1. 英文:“e.g., Dinner with Michael 7pm tomorrow

繁中:“例如:明晚 7 時與小李晚餐

简中:“例如,明天晚上 7 点同王平一起吃饭

2. 英文:“e.g., Breakfast at Tiffany’s

繁中:“例如,永和豆漿早餐

简中:“例如,在蒂凡尼早餐

3. 英文:“e.g., 7pm Dinner at Pancho’s

繁中:“例如,晚上 7 時在福華飯店晚宴

简中:“例如,晚上 7 点在必胜客晚餐

大致可以看出Google基本采用传统方式翻译语言包,即首先产生英文包,然后分发到各译员手中分别翻译,各语言的翻译员单独工作,所以就有了对餐厅翻译的繁、简中文差异问题。繁体中文的翻译比较一致,无论早餐、晚餐,地点都换成了台湾民众熟悉的品牌(“福华饭店”我猜是台北比较著名的一个餐厅);简体中文翻译比较有趣,早餐没换地方,估计翻译的人认为蒂凡尼早餐应该是common sense(其实并不是这样),而Pancho对国人太陌生,就换成了“必胜客”,呵呵。为什么不用“全聚德烤鸭”呢,本地化却本地化出了一个洋玩意,合理的解释大概是全球化的强劲已经削弱了本地化的特征,过度的本地化(over localization)反而不入时、不与时俱进。反映出的另外一个问题是国内没有知名的早餐连锁店。上海有“新亚大包”,估计北京人不了解;北京本地的早点品牌上海人不清楚,依我看,还不如也用“永和豆浆”,容易达成共识。

至于“小李”和“王平”的差异应该说是翻译彼此没有直接沟通造成的(虽然是在同一个大文化背景下),比较正常。不过下面这段有关数量级的本地化,繁中和简中却完全一致:

“var tn={“零”:0,”〇”:0,”零”:0,”壹”:1,”一”:1,”弌”:1,”貳”:2,”贰”:2,”二”:2,”弍”:2,”兩”:2,”两”:2,”叄”:3,”叁”:3,”三”:3,”弎”:3,”參”:3,”参”:3,”肆”:4,”四”:4,”伍”:5,”五”:5,”陸”:6,”六”:6,”柒”:7,”七”:7,”捌”:8,”八”:8,”玖”:9,”九”:9,”拾”:10,”十”:10,”什”:10,”念”:20,”貳拾”:20,”廿”:20,”卄”:20,”二十”:20,”叄拾”:30,”卅”:30,”三十”:30,”肆拾”
:40,”卌”:40,”四十”:40,”佰”:100,”百”:100,”仟”:1000,”千”:1000,”萬”:10000,”万”:10000,”百萬”:1000000,”億”:100000000,”京”:1000000000,”吉”:1000000000,”垓”:1000000000000,”太”:1000000000000,”兆”:1000000000000,”拍”:1000000000000000,”艾”:1000000000000000000,”泽”:1.0E21,”皆”:1.0E21,”尧”:1.0E24,”佑”:1.0E24,”分”:0.1,”厘”:0.01,”釐”:0.01,”毫”:0.0010,”毛”:0.0010,”微”:1.0E-6,”塵”:1.0E-9,”奈”
:1.0E-9,”纳”:1.0E-9,”漠”:1.0E-12,”皮”:1.0E-12

说实话,上面的变量定义的确厉害,极有可能是通过辞海查出来的。这又是一个over localization的例子,有多少中国人知道”拍”、”皆”、”尧”呢。从翻译流程上看,这些变量的翻译是简、繁双方通过气以后达成共识双方共用的。

Categories
IBM

IBM专利制度改革

IBM今天正式对外发布新的专利政策,包括通过技术社区开放式审核,提高专利质量;放弃对特定商业方法的专利申请等具体措施。

“…avoid filings that cloak authorship under the name of an individual or dummy company..”

“..will publish its patent filings on the Web for public review..” 

“..so-called business methods alone…without technical specifics…should not be patentable.” 

“..intended as a step toward improving the quality of patents issued in general..” 

全文:Hoping to Be a Model, I.B.M. Will Put Its Patent Filings Online

Categories
Life

吃蟹

又到了每年的吃蟹季节。周末在菜场买了8只大闸蟹(雄),每斤27块钱,虽不是阳澄湖的,味道也还不错。这种普通蟹价格便宜,吃起来没有心理负担,又免去了别人问你今年吃过大闸蟹没有的尴尬,同时满足了物质上和精神上的需求。

Categories
IBM Technology

ICU4More

ICU是实现Unicode标准最好的开源类库(没有“之一”),目前有ICU4C和ICU4J两个主要版本。IBM作为ICU最重要的支持力量,为它多年的发展做了很大贡献。坦白说,在设计新的编程语言的时候,internationalization往往被放在相当次要的位置,被人忽略。即使像Ruby这种由日本人发明的语言,其国际化支持也十分有限(不得不承认,掌握、精通Unicode是很挑战的工作,而且需要相当的耐心与毅力)。

既然有了ICU这么好的实现,在为各类新兴语言打国际化补丁的时候自然成为最重要的参考,由此可以派生出ICU4A-Z来。

我在Krugle里输入”ICU” 查了一下,发现了针对Ruby和Python语言实现的ICU扩展:icu4rPyICU。现在脚本语言这么多、这么热,新的ICU4?扩展随时可能出现。假如,我是说假如,JVM被越来越多的用来运行这些脚本语言,是不是有可能简化这样的扩展,充分利用JVM上可能提供的ICU服务做一层简化的映射层,实现脚本语言的globalization。当需要要添加新的脚本语言支持时,根据contract写一个特定的映射库放到JVM上跑就好了。不过说说简单,该怎么实现,没想过。

好消息是,更多的人开始重视国际化,这是新兴脚本语言的机会,也是ICU的机会。

Categories
Technology

我对code review的几点理解

Code Review就是通过审查代码,发现代码中可能存在的问题并给予纠正,这些问题可能包括设计上的、实现上的或者编程风格等多方面。目前做code review一是靠人读代码,二是借助于一些工具。人工阅读效率慢,但有深度,可以解决设计上的问题;工具利用模式匹配做静态分析找到不合适函数调用,速度快但缺乏context无法进行深层分析。目前Rational的“Code Review”插件提供了上百条规则对Java代码进行分析。

有关人工review和机器review的关系,可以讨论好几天。两者相同之处都是发现问题,不同之处是人工review侧重内在逻辑和实现方法,避免框架性质的错误(宏观+部分微观);机器review关注细节、可重现,对于典型错误的处理很有帮助(微观)。

我喜欢用现实生活的例子来解释技术,尤其是在从去年build了装修的domain knowledge后。基本上可以说,人工review好比房屋设计、机器review好比选材。选材很重要,装修过的人都知道开关选“西蒙”、“梅兰日兰”,水管选“皮尔萨”、龙头选“高仪”,水槽选“皇冠”、“弗兰卡”、水泥选“象”牌、电线选“熊猫“、刷子选“大师”…“没有好材,再好的戏也出不来”。选材容易之处在于从不知道变成知道门槛很低,久而久之就会慢慢熟起来,变得有经验,象我现在这样。设计则不然,就是同一套房子,两次设计也是会有差别,而且没法定量评价 – 人对美与和谐的追求无止境。出好的设计需要时间和经验磨练,与之相关的知识的传递比起checklist形式的静态分析规则更难。同样,没有好的设计(譬如在马桶对面的墙上镶一面镜子会怎么样?这是装修里常见的一个bad practice),再好的材料堆砌在一起也是无用的。

没有经过静态分析的程序可能跑起来不错,而实际上可能像一块奶酪一样,满身是漏洞,问题一出现就很严重而且直接面对问题的是可能是最终用户;没有经过人工review的代码跑起来也可能不错,只是潜在的问题,如性能、扩展性能会在需求变更的时候显现出来,直接面对麻烦的可能是程序员。

上周面试实习生的时候,我问了一个问题,.NET平台上存在多种语言,如果你来设计一个静态分析工具的话,该怎么做,需要考虑哪些因素?(参考:FxCop) 其实现在的Java也开始支持其他脚本语言,为了适应JVM之上的多种语言,未来基于Java平台的代码分析工具也会从源代码转向bytecode的分析,那是JVM唯一能听懂的语言。

Categories
Technology

徒有虚名的iTunes

大家都说苹果的东西好,可我觉得iTunes做的很差,难用程度可以和索尼的SonicStage媲美(SS 4.0比iTunes还好用点)。好多人说IBM的软件难用,我看iTunes易用性比WebSphere、DB2差很多 – 想想看,iTunes可是为最普通的用户设计的。

iTunes的问题在于没有按正常人的思维设计软件。iPod连上后,很自然就是从磁盘里拖文件往iPod图标里放,不灵;然后尝试“曲库”,“导入”,各种模式切换来切换去,不知它想干什么。这类灌歌软件最怕有中间状态:从source转到用户不知道的中间状态,再转到target设备上,加上很多选项、对话框设计的一塌糊涂,简直是场噩梦。

我以前说给电视机频道重新排序需要理工科本科学历,而学会从iTunes上导入音乐到iPod上需要计算机科学硕士以上文凭。我真不知道其他iPod用户花了多少时间才能把CD和硬盘上的mp3成功导进来的。以讹传讹害死人。

苹果和索尼这两家出产最优秀硬件的公司在软件(至少是iTunes和SonicStage)上表现令人失望。

Categories
IBM Technology

Blackberry来了

公司将于年内为国内员工架设Blackberry Enterprise Server,与Lotus Domino连接从而利用移动网络实现在Blackberry设备上处理Notes邮件。IBM美国员工的无线邮件服务终于在BB成功登录中国移动后显身。

可惜我已经有了Dell X51V,没有充足的理由再申请预算购置BB,网络服务费估计我也付不起,以至于将长期游荡在低端客户群里,与动感地带为伍。

Blackberry做了一件事:people integration。当然,下面这个也叫people integration:
ibm people integration

新版的Sametime 7.5 for Blackberry已经在内部放出;for Windows Mobile版也在测试中。 在地铁里用BB sametime,酷。

Categories
Technology

抄表

今天在地铁里取了免费《时代报》的读者一定看到了这样一条新闻:为了便于工作繁忙的白领们及时交付水电煤费,上海准备推出用手机、数码相机对计量表进行拍照,然后通过电子邮件、彩信发给水电煤气公司,实现抄表作业的服务。

不知道其他城市是怎样抄表的,我所在的小区水、电表是在户外的,抄表员在业主不在家的时候也可以抄表,但燃气表是在室内,需要自己每两个月抄一次,贴在门上。如果碰巧忘记,上门的抄表员就会估计一个数字,打入帐单中。

对于自动抄表,我以前听说有用RFID技术的,是不是Honeywell搞的,记不清了。上海的新做法,是用数字的方法实现模拟的抄表:最后一步需人工看数码照片,记录读数。

不考虑该办法的实际成本,假如要设计这样一套系统,把需要考虑的问题和备选方案,稍微列一下:

1. 如果发email的话,单一收件地址肯定不行,要爆掉;或者每个区每个街道一个专用email地址;还得要求邮件标题符合一定规范,帮助自动过滤分类;要考虑客户email客户端的编码,GB2312/UTF-8都得能处理;不少免费邮件会自带广告,不小心会被收件服务器当垃圾邮件过滤掉;一定有很多人不注意,拍好的照片不压缩、不resize,一个几兆的文件丢过去,还有人只发了信忘记带上附件;如果出现错误邮件,收件方是否需要一一回复确认,还是听之任之;

2. 如果使用Web提交方式,上面一些如邮件编码等问题可以避免,可控性明显加强,做的好一点就可以像Wiki page的attachment。另外需要用户注册,每个用户必须有唯一ID与家庭住址门牌号对应,每户每月(或双月)只能上传一次照片,照片在燃气公司处理前可以修改,处理后只读,方式同网上购物的订单管理;

3. Flicker + 市民信箱

4. 短信绑定用户、验证身份;发送附加照片的彩信到指定号码;每条彩信收费2元。

能想出这个办法的人还是很佩服的,一直认为“笨拙的使用高科技”是可爱、可敬的,况且提出这个方案需要头脑和勇气,要赞的。

Categories
Social

Be yourself

自打Google中国搬了家,各类博客、转发邮件里有关Google新办公室的图片层出不穷,加上Keso的推波助澜,好不热闹。我在想,Google中国除了免费食品和毛绒玩具外,还有什么可以和公众交流的呢?对,有黑板报(半数是炫耀贴),然后呢?

我对Google中国全盘西化式风格不太以为然。想想Google新员工原来所在的大学计算机系实验室是个什么样子,眼睛一闭,八九不离十就能猜到了。怎么毕业没几天突然就对毛绒玩具、涂鸦、起名字这些事情感起兴趣来了?没错,是终于可以领工资了,而且应该不低,不过这些刚毕业不到一年的工程师们至少一半以上还在租房,他们周末自己会去宜家吗。

与其每个人发30刀让原本本分的工程师刻意证明自己有创意而去做点什么,不如省下钱建个图书馆,一个人 240人民币大约可以买6本计算机书,200个人就能买1000多本,钱再多也得计划的用。

咱中国老百姓老老实实上学读书、工作过日子,骨子里和老美不太一样。如果每个新员工进入Google的第一件事是挖空心思搞点邪乎的“创意”来,这样的环境能否称为健康,非业务外的“创意”是否有被management team潜在纳入绩效考核范围的可能。

Be yourself,可以献给Google新人,作为IT业同行,我一直认为Google是创新、进取的公司,只是一切应该更自然一些,更中国一些。