一個軟體,微軟通常需要經歷四、五代,才會搞對
這是前幾天在一個 podcast 中聽到美國幾個 IT 前輩的觀點。我當下腦中立刻發出「一針見血」的反射動作,這兩天更是遇上一個活生生的例子,始作俑者的現行犯是 Windows Media Player。
一位同事最近買了 Macbook,故需要將一些 MP3 從 XP 遷移到 Mac OS 10.5 上的 iTune,其中包括一些過去用 Media Player 從原始 Audio CD 剝下來的中文和日文歌。當這些 MP3 被彙入 Mac 上的 iTune 時,他發現裡面出現了大量的亂碼,而大部分都集中在中、日文歌曲。於是找我求助。

我們知道,MP3 等多媒體檔案的元資料(如歌名、演唱者、專輯名等),是存放在 ID3 標籤裡面的。可能是因為我不愛用 Media Player(覺得 UI 很不直覺),自己過去對處理這個問題還真的沒經驗。替他診斷了一下後,發現這些 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 的演講場子上,已開始談 “免費”。這場演說在一個月前被整理成podcast發行。
這篇文章將近幾年在網路經濟和摩爾定律推波助瀾下產生的種種免費現象和經濟模式,做了一個比較完整的整理。因此,個人認為還是蠻值得看的(不過目前在網路上還沒見到中譯版)。至於那場演說,除了基本上把文章中的重點都快速地涵蓋之外,還多談了一個主題 — 為什麼書不能走免費路線?《長尾》大賣後,安德森接下來要出的書,還是要收錢的;深知這個問題一定會被人拿出來 challenge,故決定將此問題,主動提出來探討。很多網友知道,我在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 專刊,因篇幅關係,部分內容無法納入,在此將其以blog形式發表,並將詞彙調整成台灣IT界比較慣用的說法。
SOA 參考架構 (Reference Architecture) 是一個框架,使各個專案都有一個遵循的依據,藉以促進一致性、最佳典範,和標準化。參考架構並不該受限於目前的 IT 現況,而應針對一個經過深思熟慮的願景目標;它可說是 IT 用來指導未來所有的新開發工作,藉以實現該目標的參考依據。一般來說,2-3 年的規劃,是一個比較合適的涵蓋範圍,既能提供足夠的時間來達成服務導向的轉型,又不至於過於長遠而虛幻。因此,參考架構提供了一個溝通目標願景的方法,協助部門和角色各異的 IT 人員,逐漸朝向該目標會合。
高效的 SOA 需要採用新的方法來對待 IT 基礎設施,並且根據個別企業的需求來量身定做,並將服務基礎架構、共享的技術服務、安控服務,以及資訊/資料、和Legacy系統擷取服務等,全部定義在內。
more »
月初的時候完成了一件有意義的事,算是音響組之外,給自己的另一個生日禮物。在秋那桶住的那兩天,聽說小余幼子余安家有病需要儘快動手術,但相關的費用讓余家負擔不起。在公司同事加上自己的共同捐款,余家得到了足夠的手術款。由於捐得款項已夠支付余家所需,我們於是將剩餘的部分捐款,在我的建議下,捐給秋那桶小學的學童。我們在秋那桶時,曾拜訪這所嘎干堂小學,並和校長張老師一聊。巧的是,回來 Google 發現,有愛心團體對這所學校做了很詳細的 profile,而就在這個月初,回應這個「多背一公斤」活動的人,才剛送鞋子給秋那桶的小朋友。在他們的 blog,有段蠻感人的描述。
本打算給他們買一些體育、文具用品的,但小余來電話,說到學校代為詢問的結果是,因為快過冬了,捐衣服更為實際,因為仍有些比較艱苦的家庭需要衣服,看有沒有舊衣服可以寄給他們。我們於是將錢捐給他們買衣服。今天早上還接到其他樓層一位不認識的同事捐的衣服。
圖:邱那桶小學的一個小妹妹
不過還有一件事懸著。粗鋼是一個秋那桶村下轄的「組」(過去叫生產隊)。拜訪學校的當天,聽老師說從學校後面的路再往山裡走不遠,可以到一個教堂。這是一個比較小的教堂,而上篇 blog 中提到的瑪麗亞教堂,則是村中最大的教堂。
more »
自從我們夫婦倆幾年前看了導演田壯壯的紀錄片《茶馬古道,德拉姆》後,便對雲南怒江峽谷非常嚮往。畢竟,聯合國世界遺產的三江並流區中的兩江 — 金沙江和瀾滄江,都已陸續拜訪過,包括流域中幾個主要的景點 — 梅里雪山、中甸(香格里拉縣)周邊,以及三江並流區申請世界遺產成功的關鍵 — 尼汝村。就剩下對外交通最不便的怒江了。附帶一提,三大江中尚未修建水壩工程的,也只剩下怒江了(環保人士成功向溫家寶陳情,目前工程延宕),紐約時報說怒江是亞洲僅存極少數尚未建設水電大壩的大河。九月底請了幾天假,趕在十一長假的前幾天,避開人潮,終於圓了我們一訪怒江的心願。
我們從昆明一路坐車過去,從晚上 8 點到第二天下午 4 點,十幾個小時連臥帶坐共走了六百多公里,大多是在車中度過的,也算是項新紀錄。大部分的路段都是沿著河谷的九灣十八拐山路,途中還不時有二手煙的伴隨,雖不是個愉快的經驗,但搭乘客運班車要比包小車便宜和安全許多(班車司機路況熟,經驗足)。

圖:著名的怒江第一灣,就在進丙中洛主街的入口處不遠
more »