Posts
-
Ruby 和 Python 的 yield 指令
9 min read在學習 Ruby 和 Python 一段時間後,兩門語言終究會讓你碰到一個神秘的關鍵字:yield。曾經這個關鍵字困擾了我一段時間,因為他們的用法這麼的相似,卻同時這麼的不同,乍看之下似乎可以將經驗直接套用,但實際操作時卻往往造成意想不到的錯誤。在經過多方閱讀和整理後,我才想寫一篇文章分享這個...
-
修改 Jekyll minima 主題的三種方式
6 min readJekyll 作為 GitHub 內建的 Static Site Generator (SSG),應該是不少人寫技術型 blog 的入門選擇。另外,Jekyll 的主題 minima 因為簡單、輕量、快速、易上手,又是 Jekyll 預設主題的特性,也使很多人選擇的風格樣式。 minima ...
-
Ruby 的 Symbol 是什麼?
6 min read在 Ruby 中,有兩個長相相似但功能完全不同的物件:Symbol 以及 String(字串)。Ruby 是少數有 Symbol 物件的語言,而它的用法也很有趣。 在 Ruby 中,Symbol 長得像是一個由冒號開頭的變數,例如 :email 或是 :username。跟字串不同,Ruby...
-
從捷運轉乘問題看 SQL SELF JOIN
10 min read在上一篇談論不同 SQL JOINS 的文章中,我們理解了不同 JOIN 的用法,卻沒有談及另一個也很常用的 JOIN 技巧,也就是 SELF JOIN。這系列問題一直是 SQL 中 JOIN 系列的大魔王。不過如果玩轉得當,SELF JOIN 也可以讓我們對資料做出很多很有趣的 query。...
-
SQL 的 INNER/LEFT/RIGHT/FULL JOIN
6 min read最近在複習 SQL 的 JOIN 子句,來來回回寫了 SQL Zoo、SQL Teaching 和 SQL Bolt 的好多題目後,對各種 JOIN Clause 有了更深一層的了解,因此想記錄下來作為未來的參考。另外,關於 SELF JOIN 的討論會放在下一篇文章。 INNER/LEFT...
-
測試驅動開發(TDD)在做什麼?
8 min read測試驅動開發(Test-Driven Development, TDD)是個我一見鍾情的概念,因為他解決了我長期以來寫程式時碰到的麻煩: 需要不停在 kernel 中重複複製、貼上測試的 code 常常看見 error message 卻難以追溯哪個環節出問題 未來修理一個 bu...
-
用 Shell Script 打造 Bitwarden 備份工具
11 min read相信大家都跟我一樣是 Bitwarden 的愛用者(如果你不是,希望你至少有使用任何一種密碼管理員),並且享受它的開源、整合 MFA、雲端同步,以及離線存取等功能。但我想也有許多人與我有同樣的擔憂:將密碼全部交給 Bitwarden 保管在雲端,哪天突然無法離線存取密碼,或無法登入 Bitwa...
-
貝氏統計如何做機率更新?
9 min read上一篇文章中我試著用直覺的方式介紹了貝氏統計的哲學:先驗機率以及機率更新。這篇文章將會深入數學的部分,介紹貝氏統計如何善用機率函數的特性以及鼎鼎大名的貝氏定理,從先驗機率和概似函數的計算中,用簡單的方法推算出後驗機率。 核(kernel)是什麼? 在瞭解貝氏統計如何做機率更新之前,我們需要...
-
用直覺理解貝式統計:一個不用數學的入門指南
8 min read這篇文章中,我會試圖用淺白的語言一步步帶你認識貝氏統計學派的思想世界。我會從一個高中常見的統計問題「球袋問題」出發,並講述貝氏學派的兩大特色:先驗機率以及後驗分佈,最後帶你看看一個貝氏統計學家,可能會從什麼新的角度詮釋這個經典的球袋問題。這是一篇重在概念介紹的文章,因此不會有任何的數學推論和公...
-
理解樣本變異數與自由度(三):變異數校正背後的數學
6 min read上一章:第二章 在這篇文章中,我會用更嚴謹的方法告訴你,為何樣本變異數的分母必須是 n-1,以及這在計算上會有什麼實際影響。我現在會假設看到這裡的你有一點統計底子,所以會跳過一些常見的統計定理和計算過程。 為何樣本變異數的分母必須是 n-1?因為分母是 n-1 的樣本變異數才會是母體變異數...