一个软件,微软通常需要经历四、五代,才会搞对
这是前几天在一个 podcast 中听到美国几个 IT 前辈的观点。我当下脑中立刻发出“一针见血”的反射动作,这两天更是遇上一个活生生的例子,始作俑者的现行犯是 Windows Media Player。
一位同事最近买了 Macbook,故需要将一些 MP3 从 XP 迁移到 Mac OS 10.5 上的 iTune,其中包括一些过去用 Media Player 从原始 Audio CD 剥下来的中文和日文歌。当这些 MP3 被导入 Mac 上的 iTune 时,他发现里面出现了大量的乱码,而大部分都集中在中、日文歌曲。于是找我求助。

我们知道,MP3 等多媒体文档的元数据(如歌名、演唱者、专辑名等),是存放在 ID3 标签里面的。可能是因为我不爱用 Media Player(觉得界面很不直觉),自己过去对处理这个问题还真的没经验。替他诊断了一下后,发现这些 MP3 的 ID3 标签中的文字,都是以简体中文 CP936, GB2312 的编码形式存在,而未采用多语言支持更好的 Unicode (UTF-8)。这就有趣了。在 ID3 文字编码的处理上,Windows Media Player 的做法,不同于其他 MP3 音乐播放器,如 iTune 或 Linux 上的各播放器。人家都是选择用 Unicode,但微软则独排众议地选择用本地的语言,所以在不同语言的 OS 下做,会出来不同的结果 — 简体中文会是 CP936,繁体中文则 CP937…。微软早在 NT 和 Office 2000 时代便已支持 Unicode,为何 Media Player 不采用真是匪夷所思。
more »
去年写过选择目前这支 Nokia E70 的心路历程,当时正值 Apple 刚宣布 iPhone,世人赞叹声 ooo…、ah… 不绝于耳之际。当时也和几位网友交换了在 Nokia 上使用 SIP VoIP 的心得。
自从 iPhone “越狱版”出现之后,至少已有不下两打的同事成为爱用者。我也开始评估是否/何时改用 iPhone。Nokia E 和 某些 N 系列手机内带的 Wi-Fi 加 SIP 支持,是我当初选择 E70 的主因之一。从一年前搬到北京以来,光是这个功能,已经替我们省下了大量的国际电话费,不管是打台湾、香港,还是美国、讲多久,都完全免费 — 一个叫 Truphone 的英国 SIP-VoIP 供应商(在那篇 blog 中提过),因为做促销,所以提供 40 多个国家免费的活动;这个活动虽然已在二月底正式结束,但 Truphone 私下发 email 通知我,说因为我是很早就加入的老用户,所以这个免费活动特别再延三个月,呵呵(附带一提,Truphone 一旦收费就划不来了,因为他的费率比 Skype Out 和某些其他 VoIP 供应商贵)。除了 Truphone 这种针对 Nokia 用户的服务外,Nokia E 系列上还能安装 Fring 这个软件,可同时支持 SIP、Skype Out,和多种 IM。
随着 Apple 正式释出 iPhone SDK,第三方开发人员百花齐放,SIP 和其它各式各样应用的出现,只是迟早的事。果然,Fring 的 iPhone 版已经出现,还有其他 SIP-VoIP 的免费软体。iPod Touch 的接头几个月前更已被人破解成功,麦克风都已经在量产了。现在有了 SIP 应用,iPod Touch 也能通话了。
more »
Web 2.0 早已不是什么新话题。过去的几年内,知名度高如 Google、Yahoo、MySpace、PayPal 等大站,也都无法完全免疫,而陆续爆发过各种攻击事件(钓鱼、虫…)。Web 2.0 网站不管是选择用 AJAX 、Flash,还有逐渐风行的离线解决方案,如 Dojo Offline、Google Gears 、Adobe AIR 等,来提供互动性更高的 UI,只要一不小心,这些 Web 应用出现安全漏洞、被坏人占便宜的机率,其实是很高的。有时候不仅是自己的 code,而问题也可能出现在第三方提供的现成工具箱、API。
要如何防范?对网站开发人员而言,在过去,对这个主题的探讨,往往比较零散,要不就偏学术,要求较高的门槛(例如 OWASP 发表的文献),一直缺乏系统化,全面性,且深入浅出的探讨。不久前终于出了一本好书 — AJAX Security,作者为 Billy Hoffman 和 Bryan Sullivan 这两位 Web 2.0 安全的专家(过去在零星的安全相关报道中,也常出现他们两位的影子)。在此强烈推荐这本书,给所有从事与 Web 2.0 开发相关的网友。尽管书名选择叫 "AJAX" Security,但事实上,除了 AJAX 之外,Flash 安全,甚至于如何将 CSS 这种看似无害、展现层的东西,拿来攻击的方法,在书中都有深入探讨(第十二章)。尽管这样的书,早该出现,但出版时间晚,反而也做出一些额外的贡献 — 比较新的科技,如上述的 Google Gears 和 Dojo 离线工具箱的安全弱点,在书中都涵盖了。希望它尽快能被翻译成中文,以造福更多大众。
more »
无巧不成 blog。
大约在半年前写过关于 PaaS (Platform as a Service) 和亚马逊的 AWS (可谓 PaaS 鼻祖)。上周有位记者朋友向我询问相关信息,打算做个深入报道。同样在上周,看到有篇 blog,谈到一个马路消息,说 Google 很快就要开始“抢亚马逊” 的午餐了。当时看了以后,只觉得这个可能性的确存在,但不知何时才会发生。没想到来得这么快 – 几个小时前,华尔街日报报道,Google 也将开始做基础设施租赁的生意。
亚马逊最早开发 AWS 的念头来自于 — 既然我自己能把基础设施玩得这么好,为什么不干脆把它松耦合化,当成一门生意 outsource 出去?Google 玩基础设施、计算机中心这方面的效率是出了名的(之前也写过),这是他们的核心竞争实力,对公司财务报表的 bottom-line,带来很大的贡献,放眼 Web 的世界,可说无人能敌。所以本着同样的论点,Google 可说非常有资格做 PaaS 这门生意。
more »
REST 是好东西,但受到两个问题的拖累。
之前已经写过一些对 REST 的简介和看法。不久前恰好又在中文版的 infoQ 网站上看到一篇刚翻译成中文的文章,发现一些问题,于是又把整个 REST vs. SOAP 的论战再仔细看过一遍,刀光剑影,娱乐性十足。好消息是,最近这几个月,比较耸动或炒作性的 REST 话题似乎开始从网站、杂志头版消失。就来回顾和总结一下,事情其实很简单,REST 是被两个问题给害了。
more »
过去两年因著书《长尾》而巨红的作者克里斯安德森,最近开始推销他的下一本书《免费》(英文书名目前定为:“Free: the Economics of Giving Stuff Away”),预计明年出版。一如过去对《长尾》的行销,这次要阐述 “免费经济” 的现象和模式,安德森的首选渠道,自然是充分利用他任职总编的《Wired》杂志。前两天他在 Wired 网站发表了这篇专文。除此之外,还配合三月号“订杂志、免费附赠别册” 的行销活动(老掉牙的把戏了,但好歹还是得营造出一点气势来)。而他在稍早,半年前的一个 O’Reilly 的演讲场子上,已开始谈 “免费”。这场演说在一个月前被整理成播客发行。
这篇文章将近几年在互联网经济和摩尔定律推波助澜下产生的种种免费现象和经济模式,做了一个比较完整的整理。因此,个人认为还是蛮值得看的(不过目前在网上还没见到中译版)。至于那场演说,除了基本上把文章中的重点都快速地涵盖之外,还多谈了一个主题 — 为什么书不能走免费路线?《长尾》大卖后,安德森接下来要出的书,还是要收钱的;深知这个问题一定会被人拿出来检讨,故决定将此问题,主动提出来探讨。很多网友知道,我在8年前便实验过免费电子书的模式,故对此一课题,特别感兴趣。在针对安德森在那场演讲中,就他在免费书议题的表述上,讲一些我个人的观点前,我想先来对他在专文中整理出来的六种免费经济的模式,和大家做个扼要的分享。《Wired》杂志另外还整理了一页 “How-to Wiki”,将提供免费商品/服务的手法,做了一个罗列(推荐)。
more »
昨天从 Digg 得知 Google Talk 刚增加一个翻译功能,用法很有创意(大概又是哪位 Google 员工利用每周 20% 的自由时间想出来的),配置方式是必须先将恰当的语言,以联络人的方式加入,格式为 xx2yy@bot.talk.google.com,其中 xx 和 yy 是根据 IANA 制定的双字母语言码,中间加 2,例如英翻中为:en2zh@bot.talk.google.com,其他语言可如法炮制(Google 目前支持二十多种语言间的互转),@后一律相同。如果要利用这个 bot 充当语言不通的 IM 用户间的及时翻译的话,可以用 group chat 的方式,把翻译 bot 同时加入。
用几个口语的句子测了一下它的中英文翻译能力,和对简繁体字的处理,发现它和 Google 的搜索引擎一样,繁体和简体中文同时支持,Google 会自动判别,这点做得不错,至于翻译的准确性,就有点爆笑了 — 相同意思的三句话,分别用英文和中文版本测了一下(如下图),翻译出来的结果,其中甚至连语法都有问题(不过最搞笑的,还是将中文的语助词 “啊” 硬生生地翻成 "ah",让我想起在和香港的朋友 chat,英文句尾夹带 "ma"、"la" 的感觉)。(BTW, ”You never cease to amaze me" 是英文常用的说法,有时候用来讽刺,但这里我们看到 GTalk 的 bot 把意思完全搞反了)。
不过我主要想谈的,不是它的翻译水平,而是其背后的运作机制。这个翻译机器人 (bot) 的运作方式,仰赖的正是 Cloud Computing(云计算) — 无独有偶地,恰好是前几天纽约时报和美国商业周刊封面故事分别报道的主题(尽管二者的侧重点不同)。更巧的是,最早触发商业周刊对 Google 云计算做报道的,正是这个翻译 bot 。在商业周刊幕后故事 podcast中,记者谈到他在两年前,从卡内基梅隆大学那儿听到,曾经有一场自然语言电脑翻译大赛。参赛者中,IBM 自然不能缺席,此外还有来自亚洲、欧洲的团队,当然还有 Google。Google 团队的玩法与众不同,他们不用传统 AI 那套,从分析语句结构、语义模型等入手,而是利用一组超强的分布式计算 cluster(也就是那朵“云”),然后喂给它海量的联合国翻译稿件,让它根据字的关联性,做出统计分析,作为翻译的基础。结果 Google 队赢了。自此之后,美国许多大学的研究机构,都渴望能有一套像 Google 一样的计算怪兽,用来加速对海量信息的科学分析。两年后,他们终于如愿以偿。这篇报道讲的正是背后的故事 — 一名 Google 员工如何将公司核心竞争力平台的缩小版,带入校园,教导大学生如何善用并行计算资源。这项利用 20% 自由时间的项目,稍后还带动了和 IBM 的研发合作。同样巧合的是,纽约时报这周也对并行计算和它对编程带来的新挑战,做了一个报道(中译)。
纽约时报对 Cloud Computing 的报道,则着重于和微软的竞争,和潮流的变迁。简单的讲,Google 玩的是改变游戏规则的玩法,顺着时势潮流,用云来遮蔽桌面。
这几篇报道的相关链接:
回到 Google Talk 翻译机器人的翻译水平问题,由于听了上述翻译大赛的故事,还有之前对 Google 超级电脑的粗浅了解,我的猜测是 1) Google 的翻译引擎的翻译能力是可以调整的,而他们大概没有分给 Gtalk 翻译 bot 太多的脑细胞/计算能力(使用比较简化的计算过程),目前的目的只在实验这个新的应用模式,以致翻译品质仍处在搞笑阶段;2) 我用来考它的生活口语太难了,它比较擅长的,应该还是正经八百的官样文章,这或许是为什么喂食海量联合国资料和网页的 Google 云能够赢得冠军的原因吧!
注:这阵子参与编写一本专为下个月在上海的 BEAWorld 大会所准备的 SOA 专刊,因篇幅关系,部分内容无法纳入,在此将其以博客形式发表。
SOA 参考架构 (Reference Architecture) 是一个框架,使各个项目都有一个遵从的依据,借以促进一致性、最佳实践典范,和标准化。参考架构并不受限于目前的 IT 现况,而应该针对一个经过深思熟虑的愿景目标,可以说是 IT 指导未来所有的新开发工作,借以实现该目标的参考依据。一般来说,2-3 年的规划,是一个比较合适的涵盖范围,既能提供足够的时间来达成面向服务的转型,而又不至于过于长远而虚幻。因此,参考架构提供了一个沟通目标愿景的方法,协助部门和角色各异的 IT 人员,逐渐朝向该目标会合。
高效的 SOA 需要采用新的方法来对待 IT 基础设施,并且根据个别企业的需求来量身定做,并将服务基础架构、共享的技术服务、安全服务,以及信息/数据、和遗留系统访问服务等,全部定义在内。
more »
月初的时候完成了一件有意义的事,算是音响组之外,给自己的另一个生日礼物。在秋那桶住的那两天,听说小余幼子余安家有病需要尽快动手术,但相关的费用让余家负担不起。在公司同事加上自己的共同捐款,余家得到了足够的手术款。由于捐得款项已够支付余家所需,我们于是将剩余的部分捐款,在我的建议下,捐给秋那桶小学的学童。我们在秋那桶时,曾拜访这所嘎干堂小学,并和校长张老师一聊。巧的是,回来 Google 发现,有爱心团体对这所学校做了很详细的 profile,而就在这个月初,响应这个“多背一公斤”活动的人,才刚送鞋子给秋那桶的小朋友。在他们的 blog,有段蛮感人的描述。
本打算给他们买一些体育、文具用品的,但小余来电话,说到学校代为询问的结果是,因为快过冬了,捐衣服更为实际,因为仍有些比较艰苦的家庭需要衣服,看有没有舊衣服可以寄给他们。我们于是将钱捐给他们买衣服。今天早上还接到其他楼层一位不认识的同事捐的衣服。
图:邱那桶小学的一个小妹妹
不过还有一件事悬着。粗钢是一个秋那桶村下辖的“组”(过去叫生产队)。拜访学校的当天,听老师说从学校后面的路再往山里走不远,可以到一个教堂。这是一个比较小的教堂,而上篇 blog 中提到的玛丽亚教堂,则是村中最大的教堂。
more »
自从我们夫妇俩几年前看了导演田壮壮的纪录片《茶马古道,德拉姆》后,便对云南怒江峡谷非常向往。毕竟,联合国世界遗产的三江并流区中的两江 — 金沙江和澜沧江,都已陆续拜访过,包括流域中几个主要的景点 — 梅里雪山、中甸(香格里拉县)周边,以及三江并流区申请世界遗产成功的关键 — 尼汝村。就剩下对外交通最不便的怒江了。附带一提,三大江中尚未修建水坝工程的,也只剩下怒江了(环保人士成功向温家宝陈情,目前工程延宕),纽约时报说怒江是亚洲仅存极少数尚未建设水电大坝的大河。九月底请了几天假,赶在十一长假的前几天,避开人潮,终于圆了我们一访怒江的心愿。
我们从昆明一路坐车过去,從晚上 8 點到第二天下午 4 點,十几个小时连臥带坐共走了六百多公里,大多是在車中度過的,也算是項新紀錄。大部分的路段都是沿着河谷的九湾十八拐山路,途中还不时有二手烟的伴随,虽不是个愉快的经验,但搭乘客运班车要比包小车便宜和安全许多(班车司机路况熟,经验足)。

图:著名的怒江第一湾,就在进丙中洛主街的入口处不远
more »