為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的趨勢。
lukhnos :: Mar.07.2007 :: tekhnologia 技術或者藝術 :: 4 Comments »