The Old Blog Archive (Traditional Chinese), 2004-2009

Archive for March, 2007

為Coding Jam 2007的宣傳開個頭

jam |jam| noun. (also jam session) an informal gathering of musicians improvising together, esp. in jazz or blues

–New Oxford American Dictionary

今年在OSDC.tw正式議程開始前兩天,有一場coding jam,我自己暫且譯為「程式隨興創作會」。這個活動的構想來自b6s,他想為今年Wikimania 2007的Hacking Days預先熱身,同時想在台灣辦公開的coding jam活動一直是我們的理想。

這次的Coding jam預定在4月12日、13日兩日舉行,地點快要決定了。活動進行兩個整天,大體上就是大家帶電腦來,針對某幾個事前帶來的材料,一起烹煮出程式,然後公開發布出去。

這一次的創作主題是 “web API” ,這個概念隨著因為(咳,所謂) “web 2.0″ 和 “mash-up” 而流行了起來。在技術上則是有 Flickr, delicious, Google Earth 這一些著名網站服務,打響、也證明了 web API 的價值(註)。

簡單地說,web API 是一套「可程式化的介面」,讓一個網站不再只是單純只能用瀏覽器來開啟、觀看、使用的服務,而變成了「可以拿來寫程式的東西」(”programmable web“)。就拿 Flickr 來說,沒有 web API 的 Flickr 其實只是個單純的相片分享網站(當然,是個頂級的相片分享網站),但是 Flickr 因為有 web API ,因而有了各種 3rd party 的上傳程式、有自動換桌面的程式、有螢幕保護程式、有各種奇怪的圖片或圖表產生網站、以及諸如像Moo一類的名片印製服務…… Flickr 儼然創造了某種「軟體鏈」(software chain, 如同產業鏈),也就是某種軟體的生態系,而這些又直接為 Flickr 的使用者帶來便利、創造價值──同時讓 Flickr 拉大與競爭對手的距離。

今年的 coding jam, b6s和我在想,除了推廣「web API的使用」──除了當人家web API的「消費者」外,我們還更想邀請有興趣的朋友,來提供新的web API──亦即轉變身份,來當web API的「生產者」。我們認為,如果大家身旁有更多能互通的網站(interoperable service),甚至把原來沒有web API的服務也套上一道中間層──例如為「教育部國語辭典」生一套web API,那麼我們說不定能為更多人帶來便利,同時也為網站創造價值。

我自己因為前陣子撰寫了Objective-C用的Flickr API library (ObjectiveFlickr),因而開始對Flickr產生了濃厚的興趣。這一定程度上限制了我的視野,不過說來Flickr真的是個有趣的網站。他們的大工程師Cal Henderson在一份2004的投影片上提到「什麼是Flickr?」時,很直接地說,Flickr是「分享照片」和「公開的API」──而Flickr的frontend本身就是自家API的消費者。同時Flickr對於規劃API的細膩──從身份認證、同時提供桌面軟體/web/手機的應用,到API key管理、流量監控、與開發者的交流,這中間有許多值得我們學來用的地方。

Coding jam圍繞在 “web API” 上,並不代表一定要圍繞在「Flickr的web API上」──我僅僅是就我參與這次活動,所準備的主題,以及我有興趣的方向,來舉例說明web API所可能帶來的好處。

跟這活動有關的消息,b6s和我會陸續更新。在此先起個頭。我今年想在coding jam上做的主題,免不了一定會跟 Flickr 有關。如果有朋友也對 Flickr API 的相關生產/消費/中介有興趣,歡迎到時候參加我這一組的 jam :)

註:當然這絕不是什麼新鮮的概念了。”Web service”的概念存在多時,有許多我並不熟悉的概念或通行的業界作法,諸如SOAP, WSDL, SOA等等。不過以Amazon來說(Flickr似乎也是),據稱2003年時85%的Amazon API消費者都使用REST式的API來存取服務。晚近在資料傳送上,則有以JSON取代XML的趨勢。

白話字 (POJ) 與台羅 (TL) 的互轉規則

台灣閩南語羅馬字(Tâi-ûan Lô-má-jī)簡稱TL,是從POJ修改過來的拼音系統。按照以下幾條規則,就可以將 POJ 轉為 TL:

  1. 將 o͘ (o + U+0358) 轉為 oo
  2. ch 變為 ts
  3. chh 變為 tsh
  4. 所有的 oe 變為 ue
  5. 所有的 oa 變為 ua
  6. 所有結尾的 ek 變成 ik
  7. 所有的 eng 變成 ing
  8. ⁿ 寫成 nn

將以上規則逆過來 apply,就變成了 TL 轉 POJ 的規則。

舉下例說明(下例正好用到上述除了改寫 ⁿ 以外的各規則),以下是 POJ:

Ká-sú góa chiong góa só· ū ê, the̍h chhut-lâi kiù-chè lâng, sīm-chì hi-seng góa ê seng-khu lâi hō· lâng sio, tān-sī nā bô jîn-ài, chiah-ê tāi-chì tùi góa chôan-jiân bô lī-ek.

(假使我將我所有ê,the̍h出來救濟人,甚至犧牲我ê身軀來hō·人燒, 但是若無仁愛,chiah-ê代誌對我全然無利益。)

以下是 TL:

Ká-sú guá tsiong guá sóo ū ê, the̍h tshut-lâi kiù-tsè lâng, sīm-tsì hi-sing guá ê sing-khu lâi hōo lâng sio, tān-sī nā bô jîn-ài, tsiah-ê tāi-tsì tuì guá tsuân-jiân bô lī-ik.