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

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

我對昨晚政府資訊科技總監辦公室(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日 – 回應對安心出行開放源碼的誤解

新版 Business Suite 管理 Facebook Page 的入門筆記

近幾星期為教會開始管理 Facebook Page,為同工寫了以下一段新版 Business Suite 管理 Facebook Page 的入門筆記,以便將日常管理工作交給同工幫忙執行。

可用電腦的 web browser (Chrome / Firefox 等) 和手機 Business Suite 來管理 Facebook Page。

首先決定是否即時發佈資訊?還是排程發佈 (Scheduled Post) 來延遲發佈?

如即時發佈:可以直接在 Facebook Page “Create Post”,輸入資訊。

如排程發佈:使用 Facebook Page 內的 “Go to Business Suite” 來 “Create Post”,在 Text 輸入資訊、 Media 上傳圖片。然後在 Publish 右邊的三角向下圖標,用 “Schedule Post” 來設定發佈日期和時間。

延遲發佈可選擇每天分別發出不多於 3 個 posts,可以平均分佈在沒有資訊發佈的日子發出。單日一 post 可考慮在晚上8-11時(每天較多人使用社交網絡的時間)之間發出。

要注意以下幾點:
– 資訊長度是否精簡?
– 資訊有沒有外部連結 (external web link) 讓 Facebook 自動加上預覽圖 (preview graphic)?如有,檢查預覽圖是否來自資訊重心的外部連結。
– 如資訊沒有外部連結,有沒有免費而配合資訊主題的配圖?
– 加上 0-3 個合適 hashtags,例如 #馬太福音

Business Suite:
– 可在 Business Suite 的 Post 中,看有甚麼 Published (已發佈) 和 Schedule (已排程) 的 posts。