學思山丘
我把學習和思考筆記整理在這裡,分享給也在路上的你
Technical Lead · Cloud & Backend · AI Agents
這裡放著我一路寫下的學習筆記、實作心得和一些生活觀察,喜歡隨手開發一些有趣的 side projects;後端與雲端的底子穿插其中,偶爾也寫點生活。想多認識我,歡迎到 關於我 逛逛。
一篇篇把想法整理成可以回頭看的路標
把零散筆記收成成套的學習路徑
後端、雲端、AI,都是我常常走進去研究的地方
把每天多懂一點,累積成更遠的風景
技術 147 篇
後端、雲端、AI Agent 的實作與筆記
按下 rollout undo 就沒事了?程式退得回去,資料庫可不會
kubectl rollout undo 只會把 Pod template 換回舊版,資料庫 schema 還停在新版。聊聊舊程式碰上新 schema 會怎麼壞、欄位改名怎麼用 expand/contract 拆成六步,以及 migration 已經不可逆時該怎麼辦。
VS Code 只 commit 當下這個檔案:兩個指令就搞定
用命令面板的 Git: Stage Changes + Git: Commit Staged,不離開檔案就能只 commit 當下這一份。但第一步沒 stage 到時,Commit Staged 一樣會問要不要把全部變更帶走。
把 DMARC 推到強制的那天:三個「看起來成功」的假訊號
SPF、DKIM、DMARC 都設好了,dig 也查得到——但其中兩條寄件管道其實根本沒在簽章。記錄推到 p=reject 那天踩到的三個假訊號,以及一張讓人最安心也最危險的資料表。
HIS、PACS、AE Title 到底是什麼?醫院系統整合的名詞入門
醫院整合的信裡最常出現的三個縮寫:HIS 管文字、PACS 管圖、AE Title 是機器的名字。這篇用寄包裹的比喻,把它們加上 MWL、C-ECHO 一次講清楚。
MySQL 為什麼要設 utf8mb4_unicode_ci?utf8mb4 是必須,unicode_ci 卻會讓壽司等於啤酒
MySQL 的 utf8 每個字最多只存 3 bytes,emoji 和擴充區漢字都塞不進去。用 Docker 實測 MySQL 5.7、8.4 與 MariaDB,從 2002 年一個把 6 改成 3 的 commit 講起:utf8mb4 是必須,但常見的 utf8mb4_unicode_ci 會把所有 emoji 當成同一個字。
OWASP Top 10 2025 白話版:我丟給新人的第一份清單,也是我面試最愛問的題目
OWASP Top 10 睽違四年改版了。這篇用最口語的方式把 2025 版十個分類講一遍:每一項是什麼、真實世界長什麼樣、怎麼防,以及我面試時會怎麼問、想聽到什麼答案。附 2021 到 2025 的搬家對照圖、榜單排名方法論白話解讀,還有給新人的學習順序。
技術系列文章
看所有系列 →誰在冒用你的 Domain 寄信
客戶委託第三方資安評等,我們的 email 認證拿了 F。但這類評等其實是被動 OSINT——只讀公開 DNS。我用 60 行 bash 重現了那個分數,順便聊繼承來的 tech debt 為什麼總是沒人修。
從第一篇開始讀→ 4 篇ECG 心電圖小常識
從設備系統設計的角度,分享心電圖的基礎知識與實務觀念
從第一篇開始讀→ 7 篇Codex 和 Claude Code 雙修
用同一套專案規則、Skills 與 MCP 管理 Claude Code 和 Codex,再讓第二個工具負責獨立檢查。
從第一篇開始讀→ 16 篇Agentic Engineering 實戰手冊
從 Context Engineering 到 Multi-Agent 編排,我這一年使用 coding agent 的實戰紀錄
從第一篇開始讀→ 3 篇AI Coding CLI 觀察筆記
不追逐單次 benchmark,從執行環境、權限、擴充方式與驗證流程觀察 AI Coding 工具。
從第一篇開始讀→ 15 篇Claude API & Agent SDK 完全指南
從 API 呼叫到 Agent 系統:打造你的 AI 應用
從第一篇開始讀→生活 64 篇
職涯回顧、家庭,與工作之外的觀察與隨想
讓牛排變香的梅納反應,也在你的血液裡慢慢發生:看懂糖化血色素 HbA1c
煎牛排的焦香、吐司的金黃,都來自梅納反應。同一個反應在 37°C 的體內也在慢慢進行:血糖黏上紅血球裡的血紅素,就是抽血驗的糖化血色素 HbA1c。從廚房講到抽血報告:反應怎麼發生、為什麼一次抽血能看見三個月、數字怎麼看、什麼時候會不準。
多看閱讀用了十年:我離不開的三個功能,和它在台灣的麻煩
「大家真的都可以這麼早下班接小孩嗎」—— 有後援才可能
一則幼兒園接送的貼文十四萬人看過。留言區其實已經把答案講出來了:那些四點就出現在校門口的,多半不是爸媽。雙薪無後援的人只有四條路,我選了最貴的那條。
安養、養護、護理之家差在哪?一張圖看懂台灣長照機構的類型
2023 年爸中風倒下,我以為「養老院」就是養老院。實際跑一輪才知道,光是收住長輩的機構就分成五種,法源、主管機關、能收的對象、法定人力比全都不一樣,送錯是會被拒收的。這篇用我當年畫的那張心智圖,把台灣長照機構的類型一次講清楚——包含最實用的「插幾管」判斷法,以及我那張圖後來發現畫錯的地方。
高鐵 App 分票:一支手機只能領一張票,小孩沒手機怎麼辦?
訂三張票,爸媽用手機取票,小孩沒手機就領不到。我原本以為這是為了方便列車長查票,查完官方原文才發現不是——卡點在「取票」那個瞬間,而且高鐵車上根本不逐一驗票。最後救我的是櫃檯站務員,但他請我下次不要再這樣:這句話比所有規則原文都值得討論。
約定好「問問題時間」,幫團隊減少 context switch
微軟的潘正磊剛進公司時,天天被同事的問題打斷,後來在老闆支持下設了「回答問題時間」。寫了二十年程式、也當過主管,我讀完最有感的是那位老闆:要減少團隊的 context switching,靠的是主管。
生活系列文章
看所有系列 →不缺席的人生設計
把「不缺席」當成不可妥協的前提,反過來設計工作:為什麼選遠距、怎麼守住邊界,以及三明治世代兩頭都要顧時的時間分配。
從第一篇開始讀→ 5 篇不是那 1%:CityTasker 創業反思
2012–2014,我和朋友做了一個叫 CityTasker 的任務媒合平台,入選 AppWorks 第七屆,然後燒完錢收攤。十年後回看這場沒成功的創業,留下這一系列反思。
從第一篇開始讀→ 7 篇買域名的慘痛教訓:從 bobochen.ai 到 .dev 的真實故事
決定建立個人品牌的第一步,就踩進了 .ai 域名的價格陷阱。
從第一篇開始讀→ 28 篇三明治世代日記
送給我自己不惑之年的禮物,回顧我的原生家庭紀錄。從童年貧困到照顧者歷程。
從第一篇開始讀→ 12 篇我的職涯地圖:一個工程師的 20 年回顧
高一一個學期有快一半時間請假去比賽,在同學之間留下了「神秘消失的同學」的傳說。從網界博覽會第一名到代表學校出國交流,大安高工資訊科的三年,奠定了我接下來二十年的一切。
從第一篇開始讀→山丘下的生活
技術之外,也記一些工作以外的觀察與生活片段。累了的話,就到山丘下走走。
之後也一起讀下去
選你習慣的方式收到更新。RSS 適合安靜閱讀,社群則會多一些即時想法和日常片段。