[Mac] macOS 中英文輸入切換 & 設定成跟 Windows 一樣用 Shift 切換教學

不同 OS 平台間本來就很多操作習慣不一樣。像好幾年來我都是在 macOS 環境進行開發,在 macOS 上切換中英文輸入,快捷鍵我習慣用 Caps Lock 鍵 (或稱「中/英」鍵) ;有時切換到 Windows 上打字想切換大小寫時,也容易習慣性按成 Caps Lock 鍵。

之前因為在 Windows 只做少量簡單文書工作,不會頻繁在 macOS 和 Windows 間切換,影響不大,一時按錯就重按就好,幾分鐘後就會適應該 OS 的習慣。

但最近由於一些軟體工具的限制,有些開發只能在 Windows 進行,我變得比較頻繁在 macOS 和 Windows 間切換做不同開發,太常按錯中英切換快捷鍵這件事開始讓我感到困擾,影響到效率。

於是開始研究怎麼讓 macOS 的中英切換快捷鍵能和 Windows 一致,也就是用 Shift 鍵切換,盡量讓我可以在兩邊平台維持同樣的打字習慣。

先說結論:要想 macOS 能用 Shift 單一顆鍵就切換中英文,純內建無法,需要裝別的軟體輔助,不過動作並不難。

閱讀更多[Mac] macOS 中英文輸入切換 & 設定成跟 Windows 一樣用 Shift 切換教學

讓 macOS 的 Terminal 又潮又實用:手把手設定教學 iTerm2 + oh-my-zsh + Powerlevel10k

(圖片來源:romkatv/powerlevel10k)

如果你是 macOS 上的開發者,應該會看過別人的 macOS Terminal 看起來很酷炫,有很多實用的 prompt 資訊和便利操作,你看到的 95% 是 zsh 這個 shell。

用 zsh 打造自己喜歡的酷炫 Terminal 並不難,網路上已經有很多教學。不過有些教學年代久遠,用的是比較舊的套件,仍有一些略嫌繁瑣的設定,例如 zsh theme Powerlevel9k 需要自己手動安裝 Powerline Font 來支援特殊 icon font。

後來新的 Powerlevel10k 將這些設定又更進一步簡化,設定方式變得非常人性化,更容易設定,而且效果更漂亮。

本文使用較新的 Powerlevel10k,整理從零開始的安裝設定步驟,也算是為自己做筆記,未來重置或更換 Mac 時能很快找回慣用的配置。

閱讀更多讓 macOS 的 Terminal 又潮又實用:手把手設定教學 iTerm2 + oh-my-zsh + Powerlevel10k

[Mac] 螢幕錄製 GIF 工具 Kap 安裝使用教學 (支援 macOS Big Sur)

我們很常需要錄製一段短短的螢幕操作,常見做法:

  1. 使用 MacOS 內建的螢幕截圖錄製工具(command + shift + 5 可以叫出工具列)
  2. 使用第三方螢幕錄製工具,例如 LICECap、Kap

此外,通常會將螢幕錄製存成動圖方便分享,也就是 GIF 檔。

MacOS 內建的螢幕截圖錄製工具很方便,但缺點是錄製的影片似乎只支援 .mov 格式,預設無法輸出 GIF 或其他格式,因此會需要第三方軟體。

LICECap 是我很喜歡的工具,號稱「最棒的輕量 GIF 錄製軟體」,輕巧方便,操作直覺,而且支援 macOS 和 Windows。但 macOS 升級到 Big Sur 後 LICECap v1.30 使用卻有問題 ,擷取框會像下圖展示那樣一片灰濛濛,看不到錄製範圍(正常要是透明):

LICECap 支持者不少,國外網友甚至喊話願意抖內作者,求作者修復。但 LICECap 遲遲沒有發布新版,很多人猜測作者可能已經放棄維護這個專案。於是我開始尋找其他工具替代,也就是本文將介紹的 Kap。

閱讀更多[Mac] 螢幕錄製 GIF 工具 Kap 安裝使用教學 (支援 macOS Big Sur)

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優化系統效能