---
title: "開放數據及源碼與應用開發"
url: https://sammy.hk/opendata-opensource-appdev-intro/
author: Sammy Fung
published: 2021-07-07T23:41:27+08:00
modified: 2021-07-14T16:04:52+08:00
description: "筆者 7月6日到中學生創新創意科技節參與開幕禮和擔任首位講者，向老師和同學分享開放數據及源碼與應用開發。筆者先介紹開放數據和一些應用開發例子。筆者認為開發智慧城市和智慧生活應用時，開放數據理應是必需而重要的公共資源。同時，數據是現今應用程式最重要的部份，方便生活之餘亦幫助分析用家行為，從而進一步改善生活。 數據是王 D…"
categories: ["開放源碼"]
source: https://sammy.hk
---
[![](https://sammy.hk/wp-content/uploads/2021/07/開放數據及源碼與應用開發-cover-1024x640.jpg)](https://sammy.hk/wp-content/uploads/2021/07/開放數據及源碼與應用開發-cover.jpg)筆者 7月6日到中學生創新創意科技節參與開幕禮和擔任首位講者，向老師和同學分享開放數據及源碼與應用開發。筆者先介紹開放數據和一些應用開發例子。筆者認為開發智慧城市和智慧生活應用時，開放數據理應是必需而重要的公共資源。同時，數據是現今應用程式最重要的部份，方便生活之餘亦幫助分析用家行為，從而進一步改善生活。

**數據是王 Data is King**

筆者先以 Data is King 來開場，引用美國哈佛大學甘迺迪政府學院公共政策學系講師 David Eaves 教授的政務開放數據的三個定律來介紹開放數據。再介紹萬維網（World Wide Web）發明人 Tim Berners-Lee 爵士設立的五星級開放數據分類，來讓會眾了解開放數據最基本要求：先是開放授權，然後是結構性的數據，到開放數據互連的終極目標。

然後筆者講解數據與程式在系統架構和傳遞的關係，介紹多個台灣和香港應用開放數據的例子。但世事總不是完美，筆者亦會說明沒有開放數據時，除了用不同方式向政府部門提出外，開發者如何準備數據。其中一個做法是 web scraping，筆者介紹 Python 編程語言有多套 web scraping 工具可用，並介紹 XPath 和 Regular Expression 兩種方法。

[![](https://sammy.hk/wp-content/uploads/2021/07/得著自由-cover-1024x444.jpg)](https://sammy.hk/wp-content/uploads/2021/07/得著自由-cover.jpg)**開放源碼 得著自由**

筆者在第二部份介紹開放源碼與應用開發，先以得著自由來開場，開放源碼讓我們開發和使用軟件同樣得著自由。筆者先介紹開放源碼源自自由軟件，講解自由軟件定義四大自由。然後開始說歷史，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>

### 相關文章：

1. [Linux Forum Asia 2005 之後感](https://sammy.hk/linux-forum-asia-2005-%e4%b9%8b%e5%be%8c%e6%84%9f/ "Linux Forum Asia 2005 之後感")
2. [重新安裝 Serendipity](https://sammy.hk/reinstall-serendipity/ "重新安裝 Serendipity")
3. [近期喜歡上搞 Web Application](https://sammy.hk/interests-to-code-webapp/ "近期喜歡上搞 Web Application")
4. [久違在家中電腦上進行編譯](https://sammy.hk/%e4%b9%85%e9%81%95%e5%9c%a8%e5%ae%b6%e4%b8%ad%e9%9b%bb%e8%85%a6%e4%b8%8a%e9%80%b2%e8%a1%8c%e7%b7%a8%e8%ad%af/ "久違在家中電腦上進行編譯")
