How to build and publish your own GitBook free, unlimitedly, and automatically: using GitHub Pages and GitHub Actions

The new version of GitBook official web service (I called it GitBook V2 for short) has changed its product policy to be profit-oriented and not open source anymore. The important point is GitBook V2 does not offer unlimited books anymore. Since that, I tried to find another solution to publish GitBook.

Mostly I use GitBook to record some notes for sharing and reading. Additional fees or complex operations are not preferred.

In general, I prefer a solution: free, unlimited books, publishing automatically after revising, and easy configuration.

閱讀更多How to build and publish your own GitBook free, unlimitedly, and automatically: using GitHub Pages and GitHub Actions

免費無限建立自己的 GitBook 圖文教學 – 利用 GitHub Pages + GitHub Actions 自動發佈

自從對新版 GitBook 官方平台(GitBook V2)徹底失望,一直在留意能運作 GitBook 的替代方案,因為我很喜歡舊版 GitBook 工具的便利性、運用靈活、自訂性空間大,即使在封閉網路環境也能自架 GitBook。

GitBook 官方平台對書籍數量的限制是讓我徹底捨棄官方平台的最大因素。GitBook V1 允許免費版帳號有無限本公開書籍,V2 卻大幅限制只能有一本,付費版價格也很不親民,雖然後來開放到 10 本,但已經棄坑的心就像飛出去的全壘打回不來了。

我對新版 GitBook 官方平台的 吐槽 感想 可參考另一篇文章:淺談新版 GitBook(GitBook V2) —— 失去交流開放精神的企業導向產品

GitBook 我大部分用途是寫寫筆記,彙整成書籍形式方便查閱或分享,不希望造成額外的費用或時間成本。

簡單來說,我需要有一個平台可以免費放書、沒有書籍數量限制、設定不要太複雜、每次編輯書籍內容都能自動更新。

閱讀更多免費無限建立自己的 GitBook 圖文教學 – 利用 GitHub Pages + GitHub Actions 自動發佈

[Linux] tee 指令:將結果同時輸出到螢幕和檔案

指令使用要點

指令用途

  • 將結果同時輸出到螢幕和檔案
  • 預設只會導 standard output(stdout),沒有導 standard input 與 standard error,但可以用 2>&1 等技巧連 stderr 也導向檔案

常用 option:

Option Description
-a 用 append 的方式導到檔案(預設是取代)

閱讀更多[Linux] tee 指令:將結果同時輸出到螢幕和檔案

BDD/TDD差別是什麼? 手把手用 Cucumber 實作示範BDD

本文同步刊載於 ALPHA Camp Blog

上一篇文章介紹了 TDD (Test-Driven Development) 開發流程,並示範了如何五步驟實戰應用。

TDD 傳送門:TDD五步驟 手把手帶你實戰 Test-Driven Development 範例

TDD 重點回顧:

  1. 先寫測試再開發。
  2. 依循「紅燈/綠燈/重構」循環(Red/Green/Refactor)。
  3. 優點是在初期就確保測試程式的撰寫,而且更容易在初期定義出更貼近使用方的介面。

但 TDD 所撰寫出來的測試案例是一連串程式碼,過於偏重技術人員,不利與其他非技術的專案參與者討論,例如 PM (Product Manager) 或 PO (Product Owner)。此外,也不利產生一份如下圖這樣一目瞭然、容易閱讀的測試報告:

閱讀更多BDD/TDD差別是什麼? 手把手用 Cucumber 實作示範BDD

TDD五步驟 手把手帶你實戰 Test-Driven Development 範例

本文同步刊載於 ALPHA Camp Blog

「撰寫測試」已成為現代軟體開發的顯學。隨著軟體產品的規模越長越大,在不斷增加新功能、重構優化既有程式碼的過程,如何確保軟體既有功能不受影響,又能減少繁瑣的人工作業,靠的就是自動化測試。尤其當系統的業務邏輯龐大繁瑣,平時養成撰寫測試的好習慣更是保障軟體品質的關鍵。

閱讀更多TDD五步驟 手把手帶你實戰 Test-Driven Development 範例

Memcached 實作示範 — 用Memory Cache優化系統效能

本文同步刊載於 ALPHA Camp Blog

「為什麼網頁這麼慢!」

相信每個人都有類似經驗:遇到熱門新聞、限量特價商品、演唱會搶票,當短時間內大量流量湧入,網頁的存取常常因此失敗或異常緩慢,使用者抱怨連連。這不是因為程式功能寫錯,而是因大量運算或大流量導致系統表現不佳所產生的問題,屬於非功能性需求,也就是「效能優化」的範疇。隨著接觸的專案規模越大,除了功能實作,效能也是重要的課題。

閱讀更多Memcached 實作示範 — 用Memory Cache優化系統效能

[Java] BDD 測試框架 Cucumber 入門範例教學

Cucumber 是一個支援 BDD (Behaviour-Driven Development) 行為的自動化測試框架,支援多種常見的實作語言,包含 Java、Node.js、Go、Ruby 等。

關於 Cucumber 的入門介紹和基本術語可以參考以下文章:

本文示範如何在 Java 使用 Cucumber。

閱讀更多[Java] BDD 測試框架 Cucumber 入門範例教學

[Mac / Linux] 讓你的終端介面變潮:個人化修改 Terminal / Bash 的 Prompt

工作後漸漸習慣使用終端指令介面,也就是俗稱的 Terminal Command Line Interface (CLI)。輸入命令前自動會顯示的命令提示字元 (稱為 Prompt),雖然因作業系統不同而略有差異,但提供的資訊通常大同小異,例如使用者名稱、裝置名稱、當前路徑等幾個主要項目。

有天看到別人的 Prompt 非常簡潔,這才意識到可以幫 Prompt 作點個人化的設定。有時若嫌作業系統預設的 Prompt 過於冗長累贅,不一定要接受,可以作一些修改讓 Prompt 變得更賞心悅目。

閱讀更多[Mac / Linux] 讓你的終端介面變潮:個人化修改 Terminal / Bash 的 Prompt

[Markdown] 寫部落格文章、Email 也能用 Markdown - 使用 Markdown Here

越來越多人使用 Markdown 作為寫作的工具,但未必所有部落格或 Email 編輯器都能原生支援 Markdown 語法。本文要介紹的 Markdown Here 就是能幫助在各種編輯器以 Markdown 書寫的工具。

閱讀更多[Markdown] 寫部落格文章、Email 也能用 Markdown - 使用 Markdown Here

[Markdown] 用 Markdown 寫 Blogger 文章的方法:用 Blogger 內部工具擴充套件 (showdown & code-prettify)

最近看到一篇教學,利用 Blogger 內建的 HTML/JavaScript 擴充工具在網誌裡加入第三方套件,就能用 Markdown 語法來寫 Blogger 的文章,在檢視文章時自動進行轉換 Markdown 和 HTML 的轉換。優點是設定步驟非常簡單,純論呈現效果也很理想。

閱讀更多[Markdown] 用 Markdown 寫 Blogger 文章的方法:用 Blogger 內部工具擴充套件 (showdown & code-prettify)