開放數據及源碼與應用開發

筆者 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

Audacity 可成間諜軟件助執法的問題

兩個月前,新成立的音樂軟件公司 Muse Group 收購知名開源錄音編輯軟件 Audacity。Audacity 在 7 月 2 日更新私隱公告,當中列明 Audacity 會按照任何執法部門要求,協助相關部門收集所需數據作執法和訴訟等。

Audacity 只是一套桌面程式在用家電腦運作,而無需與互聯網通訊。何解開發者希望從用家電腦取得數據,通過互聯網收集到公司伺服器?還列明偶然分享用家個人數據到俄羅斯總公司和美國的法律顧問,亦會分享給第三方、顧問和潛在買家。

同時,私隱公告亦列明程式並不提供給 13 歲以下人士使用,並呼籲他們不要使用程式。這點明顯違反通用公眾特許條款(GPL),該條款列明不能限制任何人使用。

有網民呼籲大家暫停使用並刪除 Audacity,等待其他開發者推出分支軟件。筆者認為可考慮使用較舊版本的 Audacity,但使用時還是小心留意私隱風險。

公共財富 公共程式碼

當現在科技龍頭谷歌、Facebook、蘋果、微軟公司都開發、擁抱開源軟件之時,以公共財富、納稅人的金錢來開發軟件的政府和機構,卻沒有善用金錢,繼續花費開發不同的閉源軟件。我們需要做公眾推廣,介紹開放源碼開發模式對社會的益處。

歐洲自由軟件基金會發起一個 Public Money Public Code 的行動,要求各地透過立法,規定政府開發的公共應用須以開放源碼授權釋出。政府開發多個類似應用程式時,無需由頭再寫,可共用類似程式的程式碼。同時,不同專案亦可分擔開發成本和技術,透過透明開發過程,其他專案和部門不用重造輪子。市民負擔的公共財富和資源得以回饋公眾。目前已有超過 200 個機構組織和超過 31000 個人簽署公開信支持行動。筆者亦思考如何開始在香港推廣這個理念。

今年初安心出行事件,筆者亦寫文要求將以開放源碼授權公開安心出行源始碼,讓大眾安心出行時,多使用這程式。而且政府應該容許業界和公眾使用自行開發的開放源碼出行追蹤程式,政府資訊科技總監辦公室可設定一些要求和公開標準,只需合乎相關要求和標準,就能在官網上一同公布,讓市民自由選擇軟件。