筆者 7月6日到中學生創新創意科技節參與開幕禮和擔任首位講者,向老師和同學分享開放數據及源碼與應用開發。筆者先介紹開放數據和一些應用開發例子。筆者認為開發智慧城市和智慧生活應用時,開放數據理應是必需而重要的公共資源。同時,數據是現今應用程式最重要的部份,方便生活之餘亦幫助分析用家行為,從而進一步改善生活。
數據是王 Data is King
筆者先以 Data is King 來開場,引用美國哈佛大學甘迺迪政府學院公共政策學系講師 David Eaves 教授的政務開放數據的三個定律來介紹開放數據。再介紹萬維網(World Wide Web)發明人 Tim Berners-Lee 爵士設立的五星級開放數據分類,來讓會眾了解開放數據最基本要求:先是開放授權,然後是結構性的數據,到開放數據互連的終極目標。
然後筆者講解數據與程式在系統架構和傳遞的關係,介紹多個台灣和香港應用開放數據的例子。但世事總不是完美,筆者亦會說明沒有開放數據時,除了用不同方式向政府部門提出外,開發者如何準備數據。其中一個做法是 web scraping,筆者介紹 Python 編程語言有多套 web scraping 工具可用,並介紹 XPath 和 Regular Expression 兩種方法。
開放源碼 得著自由
筆者在第二部份介紹開放源碼與應用開發,先以得著自由來開場,開放源碼讓我們開發和使用軟件同樣得著自由。筆者先介紹開放源碼源自自由軟件,講解自由軟件定義四大自由。然後開始說歷史,80 年代部份使用 UNIX 的開發者創立自由軟件概念和 GNU 計劃,一步一步用自由軟件取化 UNIX 的程式。直到 Linux 內核出現而成為 GNU/Linux 操作系統,發展出不同 Linux 發行版本。同時 90 年代互聯網和萬維網發展,出現開放源碼的 Apache 網頁伺服器,同時為方便營銷而推出新名詞 Open Source(開放源碼)。然後開放源碼發展到不同領域,例如桌面環境 GNOME、網頁瀏覽器 Firefox,到近年在雲端、區塊鍵、人工智慧、DevOps、手機開發等。GitHub 亦蘊藏很多軟件,就像一個開源短短的金礦。不少開源的編程語言在20年間出現,讓開發者不需購買編程語言就能做不同類型應用開發。筆者亦建議會眾透過貢獻回饋社群,亦介紹香港教育界相關的開源軟件:合乎教育局小學常用字規範的自由香港字型,和學校管理系統 Gibbon。筆者在總結時,希望大家能得著科技和生活的自由。
開放數據及源碼與應用開發演講簡報檔案: https://docs.google.com/presentation/d/1atjRidVZ-QbydFUYaamteG7WAKP-ORoWy4utSTCjrFE/edit?usp=sharing
請成為 Patreon 會員支持森路歷程寫作及筆者的開源工作。 – https://www.patreon.com/sammyfung