回應對安心出行開放源碼的誤解

昨天我提議政府應該以開放源碼方式,開放安心出行的源碼。本意希望大家以正面的方法,讓政府和社會共同解決爭議。

我對昨晚政府資訊科技總監辦公室(OGCIO)透過 facebook 專頁回應筆者和業界要求時,所寫的技術知識感到震驚,同時對政府沒以正面的技術方向回應業界和社會要求感到失望。

就 OGCIO 回應的第一段,指出 Google 和 Apple 的 Exposure Notification(GAEN)的源碼並不開放。筆者認為這回應並不對應業界要求開放安心出行的源碼。一來,業界要求開放安心出行本身的源碼,並非安心出行所使用的第三方程式庫(3rd party library)。二來,開放源碼定義(The Open Source Definition)第九點寫明:授權並不能限制其他軟件(License Must Not Restrict Other Software),意思是連同開放源碼一同發佈的第三方軟件時,不能限制第三方軟件的授權方式。

所以從技術來說,假如日後安心出行開放源碼版使用 GAEN 的 API Calls 時,明顯不需要開放安心出行所呼叫的外部 API 背後第三方程式庫的源始碼。

OGCIO 回應的第二段,指出安心出行使用某大學夥伴研發團隊提供的軟件,亦是 OGCIO 認為不能開源的理由。一來,筆者上述說法亦可套用在這點,就算安心出行必需把大學提供的軟件源碼結合,都只會透過 Function calls 來做,可以無需公開大學提供的軟件源碼。只需在說明文件列明程式需要購買某大學提供的軟件,該大學團隊名稱和聯絡方法。這更可以幫助該團隊宣傳他們的研發產品,增加應用和獲得資金機會,可見開放源碼亦可帶動非開放源碼的創科發展。

至於開放源碼與資訊保安之間的討論,已是一個很古舊的討論。國際業界早在十幾年前已認同開放源碼與否跟資安無關,而且開放源碼與其no vendor lock-in更能幫助產品擁有人(product owners)和用家更快修補臭蟲(bugfixes)。

在 OGCIO 回應前,筆者亦留意到香港01的報導,訪問承接安心出行開發的創奇思(Cherrypicks)創辦人趙先生。當時趙先生透露他知道局方將在短期內提出新建議,並表示由局方宣布新建議更為合適,而未提及更多新建議詳情。筆者不知道 OGCIO 回應前,有否詢問作為業界一份子創奇思的技術意見呢?

筆者呼籲政府機構正確了解開放源碼,並繼續以開放源碼協助社會正面發展。亦希望政府機構繼續並加強宣傳(promote)開放源碼。

筆者提議政府再向業界了解,重新考慮以開放源碼方式,開放安心出行的源碼,希望各方早日以正面的方法共同解決爭議。

開放源碼能安心出行嗎?

近月香港社會關注安心出行(Leave Home Safe)的個人私隱憂慮,筆者認為保障市民個人私隱與防疫同樣重要,不能以防疫為由降低個人私隱要求。從技術角度來說,就算目前程式沒有洩露個人行蹤和私隱,將來更新程式時,社會也會出現同樣擔憂。

既然資科辦發言人講明「無大台」,如果政府機構只希望市民能自行收集和核對,幫助防疫追蹤,政府機構應以全民參與方式,透過開放源碼模式(Open Source model),社會共同開發(crowdsourcing)安心出行應用程式。開放源碼模式(Open Source model)還可讓全球社會共同合作,回饋意見,這是國際都市應做的事。所以開放源碼能讓大眾公開討論技術,就能有機會讓大眾安心出行。

筆者認為安心出行的開放源碼計劃必須包括以下:

  1. 開放源碼(Open Source):安心出行的源碼(source code)以 OSI 認可授權釋出,以開放源碼模式公開繼續研發改進。
  2. 開放API(Open API):公開安心出行手機程式和伺服器之間的完整系統通訊 API,並進一步容許不同的開發者、IT廠商開發各式各樣公開安心應用,刺激香港資訊科技業界發展,亦能幫助香港startup公司多一個機會。
  3. 公開 Build Logs:讓公眾審查(audit)發佈上架的手機程式是否來自安心出行的開放源碼計劃,並了解各版本手機程式能否通過預定的自動測試。

另外,香港過半市民使用的Android 手機操作系統是開放源碼軟件(Open Source Software),在每部 Android 手機的設定功能裡,法律資訊(Legal Information)已提供相關開放源碼授權條文。顯而易見早在世界普及的開放源碼模式,絕對尊重知識產權,不存在薛局長「要求對方將程式原始碼公開就不尊重開發者知識產權」的想法。而香港政府代表香港市民,作為安心出行手機程式及相關伺服器程式的擁有者,絕對有權開放源碼,公開安心出行的程式源碼。

跟進文章:

2月23日 – 回應對安心出行開放源碼的誤解

Hacktoberfest 2020

今年十月 Hacktoberfest 剛開始,遇上香港十月一至四號連續四日假期,以及 COVID-19 疫情想避開鬧市人群,適宜放假宅在家中早點參加 Hacktoberfest。

參加 Hacktoberfest 只需十月份內在活動官網簡單登記,同月在公開的 GitHub repos 成功提交 4 個 pull requests 就完成,最先完成的 70,000 位參加者可以獲得活動禮物。Pull requests 必需包含由自己做的 commits,而 issues 不限是否標籤為 Hacktoberfest,但留意 commits 的質量,不能所有 commits 都是簡單刪除空格。

如果你的 GitHub 有公開的 open source projects,可以開一些 issues 加上 Hacktoberfest 標籤來吸引其他參加者來貢獻給你的 projects。如果寫了貢獻指引在 CONTRIBUTING.md 及加入 Code of Conduct,有機會藉著 Hacktoberfest 找到長期貢獻者協作。

任何人,不論你是新手、開發者、軟件維護者、公司也可以參加 Hacktoberfest