ICOS 2010 - 開放源碼國際研討會 2010 記事
我上週末參加在高雄舉辦的 ICOS 2010 開放源碼國際研討會。原定是五六日三天(9/17 ~ 9/19)的活動,但最後一天碰到凡那比颱風侵台,週六時就宣佈最後一天的議程取消。今年的 ICOS 難得辦一次大規模活動,卻碰到颱風提早結束,十分可惜。
話說颱台登陸那天,高雄也是災情最慘重的區域。我家停了一整天電,完全接收不了外界的消息。第二天恢復電力後,才從電視新聞中得知我所居鄉鎮超過一半區域淹水,我家十分幸運地位在那沒有淹水的一小半區域。現在想來,我也算十分幸運了。
Day 1
著作權知識
第一天開幕的座談會,有一半時間在談著作權與專利的問題。嚴格說來,都是些基本的著作權知識,但是不了解的人還是相當多。 例如古典樂的樂譜和演奏的著作權問題,就顯示一般人還是不清楚著作權的細節。著作權其實是一攬子權利的統稱,其下實際區分了許多可分割的權利,例如著作人格權(靈魂綁定)、複製權、散佈權、表演權等等。古典樂的樂譜固然是屬於作曲家的,但錄音與散佈權利又是另一回事。一方面,隨著作曲家辭世已久,古典樂的樂譜之著作權保護期間已經結束,所以任何人都可以複製與演奏樂譜。但另一方面,演奏之錄音本身也被視為一個獨立著作,故錄音內容本身也受到著作權保護,屬於錄音者所有;只要該錄音的保護期間未結束,我們就不可以任意複製與散佈錄音內容。
在開放源碼普及化的今時今日,著作權不僅得是資訊人的「知識」,更必須是「常識」,否則就很難在這行業混下去。
OpenOffice.org 的 UNO 魔術—那些 MS Office做不到的事
OpenOffice UNO: http://udk.openoffice.org/
很有趣的應用。而且講者的展示平台也顯示了另一件事,那就是在雲端架構下,與其寫一個綁定在特定桌面的 AP ,不如寫一個 Web AP。
講者在自己的筆電上安裝了 OpenOffice ,在筆電上用 JSP 寫了一些 Web AP ,讓 Java 透過 UNO 控制 OpenOffice 的行為,再將結果呈現為網頁形式。然後透過他手上的 iPhone 的瀏覽器開啟 Web AP ,經由 JSP -> UNO 要求 OpenOffice 完成指定的工作項目。例如開啟投影片以及投影片換頁;透過 iPhone 瀏覽器,要求遠端電腦的 OpenOffice 開啟試算表與文件,產生報價單並郵寄到客戶手上。
原本講者是打算用 iPhone 的 SDK 撰寫一個與 UNO 溝通的桌面 AP,但是 Apple 那不自由的 SDK license 不允許他這麼做,於是他最後是用 Web AP 的架構實作。這提示我們:「與其寫一個綁定在特定桌面的 AP ,不如寫一個 Web AP」。
Day 2
Javascript and Desktop
三天的技術議程活動中,有三堂議程與 JavaScript 的桌面開發應用有關,顯示 Web 環境開發經驗延伸到桌面開發環境漸成顯學。
Javascript in Linux Desktop
- Seed - http://live.gnome.org/Seed 與 SeedKit - http://live.gnome.org/SeedKit。 Seed 是以 GObject/GNOME 為 host 環境的 JavaScript 解譯器。程序員可以用 JavaScript 呼叫作業系統的 glib binding libraries ,例如 GTK、gir, DBus (libdbus-glib)等等。 SeedKit 則進一步將 WebKit 核心包含進來,讓程序員可以用 HTML + CSS 設計 UI 。
- Gjs - http://live.gnome.org/Gjs/ 。用途與 Seed 相同,只是它採用的核心引擎是 Mozilla 的 SpiderMonkey 。
-
GNOME Shell - http://live.gnome.org/GnomeShell。
這是新一代的 GNOME Desktop 3.0 所使用的 shell ,而它的 script 語法正是 JavaScript 。若借用 Web 開發經驗來看,可以說 GNOME Shell 把整個 GNOME Desktop 都視為一個瀏覽器視窗。故而我們可以用 JavaScript 控制桌面上的所有元件,一如我們在 Web 頁面上做過的事。
原本 Ubuntu 10.04 有提供 gnome-shell 2.8 的套件,但是在我這兩天嘗試了一下,發現更新後的 libgjs0 套件有依賴版本的衝突狀況。想試用的人,建議取得 Ubuntu 10.04 DVD 光碟,安裝新的環境,並且不要進行網路更新動作。
Javascript for Embedded System
node.js - http://nodejs.org/ 是一個以 Google V8 為核心引擎的 JavaScript 解譯器。它似乎用了 V8 的那一套繫結機制,而非 glib bindings ,所以不能直接使用 glib binding libraries。
xul使用XUL撰寫Desktop
這是排在第三天,因颱風而取消的議程。我前陣子也在部落格上寫了一篇《Hello HTML5 and XULRunner》。由於關連性很高,我原本相當期待,可惜聽不成了。
其他
議程一、OS 設計上的防禦工法。這議程告訴我們軟體的安全性與可用性是一體的,不安全的程式碼也就沒有可用性。你會寫程式,並不表示你的程式能用。今年的 IBM 開發者大會也相當著力於這一點。
議程二、Android-x86 Open Source Project,計劃網址是: android-x86.org ,不要跑錯了。講者簡報所用的電腦與 OS,就是在 EeePC 上安裝 Android x86 版。
議程三、沒有政府補助,照樣寫自己的作業系統-如何善用開放原始碼工具,加速作業系統的開發。基本上,重點並不是在開發作業系統上,而是如何利用 QEMU 模擬器的模擬與除錯功能,提高我們在作業系統底層工作的程式開發速度。我看 Linux driver 的開發人員,就非常需要學會這一套用法。
議程五、The GNU/Linux Desktop (GUI Application) Testing Project (GNU LDTP) - GNU LDTP 。 Linux 桌面應用軟體測試工具。用 Python 測試桌面環境的測試案例。Ubuntu 10.04 的使用者,只要安裝 python-ldtp 套件就可以用了。不過網站上的示範用法在中文環境下水土不服,初學者最好是切換到英文語系環境。
議程六、Parallel and Distributed Computing Infrastructure。
議程七、Drbl/clonezilla。Clonezilla 應該是 Linux 使用者必備的系統備份工具了吧,我的電腦也是用 Clonezilla 製作系統還原碟。
議程八、輕鬆打造自己的叢集式搜尋引擎- Crawlzilla。
Day 3
因颱風取消。明年再見。
雜記
筆電篇
獲得本年度大會最佳筆電的是~~~~ ThinkPad!
哈哈,這只是我開的小玩笑,大會並沒有這個獎項。只是我在會場中舉目望去,帶著筆電的參加者(包括我自己在內),有一半的人帶 ThinkPad。單一品牌,無出其右。我去參加 IBM 開發者大會時,ThinkPad 使用者所佔的比例都沒有這麼高。
我猜想,原因可能在於 Lenovo 旗下的 ThinkPad 是國內唯一長期推出不含作業系統(Windows)之筆電的品牌。要知道,開放源碼的參與者,大多數都對微軟的電腦綁作業系統的銷售策略十分不滿。使用筆電時,也會自己灌 Linux 桌面系統。所以購買筆電時,也就希望能找到不含作業系統的產品,才可以連一毛錢權利金都不用付給微軟。在這種偏好下,長期都有推出不含作業系統的產品的 ThinkPad ,自然就脫穎而出了。
其他品牌的筆電,偶爾才會出現不含作業系統的產品,且硬體規格往往都是最陽春的那一款,連跑 Linux 桌面都會給人跑不快的感覺。真不知這算不算負面廣告,扯 Linux 後腿。
攤位篇
會場有幾個攤位,不是賣小吃的攤位,而是 Linux 相關廠商的攤位。其中一個攤位擺的是教育部推出的 EzGo 7,它是基於 Ubuntu 的再包裝散佈版本。其中預裝的軟體分類整理的不錯,十分符合其教育宗旨。
另一個攤位是平和電腦科技公司推出的「PC救星」。海報上印的是「繁體中文視窗作業系統」,但其實是一套 Linux 桌面環境,但是外觀上偽裝的非常像 Windows XP。它也不是第一套搞這種作法的散佈版本了,也說不上什麼不好。畢竟有許多使用者只是因為外觀就會選 WindowsXP 來用。只要偽裝的好,那些使用者也根本不會知道他們用得其實是 Linux 桌面。