快轉到主要內容

文章

我也在 dev.to → 發表文章——以黑客松和程式挑戰為主的短篇技術文章。

2026

系統設計中的常見元件

·1131 字·3 分鐘
設計可擴展且可靠的系統,需要理解一組核心的可重用建構模組。本文涵蓋最常見的元件——從負載平衡器、資料庫到快取與 CDN——以及使用這些元件時需要考量的關鍵取捨。

RDBMS, NoSQL, ACID, CAP theorem, and Scaling

·1144 字·3 分鐘
RDBMS # Relational Database Management System 在資料之間有很強的 Relation(關聯性) 的時候使用: 設計不太會去變動的 schema 將 table 互相關聯, 就可以透過 SQL 取得想要的資料。 資料的正確性很重要的時候使用: 通常會提供ACID。 要變動 schema 是一件很浩大的工程: 要把 table 的 schema 更新還要 migrate 資料。 所有用到要被更換 schema 的 table 的程式都要修改。 可以對不同的 table 執行 join 操作。

2025

使用 GitHub CLI 徹底移除 GitHub 上頑固的「幽靈通知」

·1206 字·3 分鐘
GitHub notification 對開發者來說是一向很方便的工具,可以用來追蹤 issue、pull request 和提及 (mention)。但某天我的通知標記忽然就這麼卡住了,即使已讀了所有內容也他還是非常頑固的卡在那裡,在又拖了幾個月之後我才終於花了點時間研究發生了什麼事。

Multiprocessing, Multithreading and Asyncio in Python Part 1 - Basic Concept

·2120 字·5 分鐘
Python 的效能瓶頸在幾年前一直為人詬病, 但在開發者的努力之下,Python 3.4 開始出現了 Asyncio 可以在特定情境下提升效能, 到了 Python 3.13 更出現了可選擇性關閉 GIL 的 Free-threaded (PEP-703) 設計, 結合過去的 Multiprocessing 和 Multithreading, 我整理了一下這三項技術適合的原理、差異和使用情境做了幾篇紀錄。 這一篇先簡單介紹三者的基本概念和適用情境。

Sync Obsidian / Joplin Data Across Multiple Device with Synology WebDAV

··749 字·2 分鐘
原先我使用的筆記軟體是 Notion, 功能豐富且介面美觀, 但幾年前 Notion 出現了隱私權爭議, 被指控偷看某公司放在 Notion 的內容, 甚至進一步提出合作; 就改用了一陣子 Joplin, 但最後還是轉到了擁有大量外掛及社群支援, 而且可以高度客製化的 Obsidian。

Macos Legacy Rsync Hangs

·481 字·1 分鐘
幾個月前用 rsync 從 Macbook 備份資料到 NAS 上的時候出現了點問題, rsync 會看似正常的在螢幕上跑一陣子然後卡死不動, 從螢幕輸出會看到他原本一邊同步一邊在吐正在同步中的檔案,

2021

Docker Notes 1 - Beginner

·1397 字·3 分鐘
Docker 基本概念 # 一言以蔽之, 簡化版的 VM。 因為 docker 不會把整個 operating system 都裝起來, 所以大小比 VM 小很多速度也比 VM 快很多。 Image # 跑在 container 上面的東西, 裡面包了一個輕量級的 runtime environment, 包含一些 library 跟 executable。

Github Pages and Jekyll - sitemap

·343 字·1 分鐘
更新 # 已從 Jekyll migrate 到 Hugo, 這篇方法僅適用 Jekyll。 Sitemap # sitemap 基本上就一個 .xml 檔案, 裡面包含了網站有哪些頁面連結, 讓搜尋引擎去爬, 搜尋引擎爬完以後就可以建立 index, 之後有人在搜尋引擎打關鍵字才搜尋的到。 Jekyll-sitemap # Jekyll 有一個 plugin 叫做 jekyll-stiemap, 可以在每次 build 網站之後自動產生 sitemap。