系列精選
查看全部工程師日誌
寫 Code 之外的生活觀察 — 理財、旅遊、健康、居住、時事評論
Elasticsearch 完整指南
從零開始學 Elasticsearch — 環境建置到生產環境優化
Claude Code 完整教學
從入門到進階 — Hooks、Sub-agents、MCP、Skills 開發全攻略
AZ-305 Azure 架構師認證
Azure 解決方案架構設計師五日課程筆記
Java / Spring 學習筆記
Java 核心語法、Stream API、併發控制、Spring Boot 實戰
AI Agent 架構全解析
從 harness 骨架拆解現代 AI Agent — 以 Claude Code 為例的 7 層架...
Claude Code keybindings 完整教學 — 你綁的那個鍵,可能連終端機都沒放它出來
你在 Claude Code 裡按下 Ctrl+Shift+R,它到底收到了什麼? 這個問題不是修辭。答案可能是「一個明確的 Ctrl+Shift+R 事件」,也可能是「什麼都沒收到」,還可能是「收到了但被別的東西先吃掉了」。而這三種結果決定了你寫在 ~/.claude/keybindings.json 裡的那行設定會不會生效。 所以先別急著決定要綁什麼。把一次按鍵從你的手指走到「Claude Code 執行某個動作」的路徑拆開,中間有四道關卡,每一道都會攔掉一部分組合。搞懂路徑之後,該綁什麼幾乎是自動浮現的。 (本文的機制與表格出自 Claude Code 官方 keybindings 文件,我本機跑的是 2.1.220。文中我沒實測的部分會明講。) 第一關:終端機願不願意載這個組合鍵盤不是直接跟 Claude Code 講話的。你按下的組合會先被終端機轉成一串位元組,Claude Code 讀到的只是那串位元組。這個中間人有它自己的規矩,而規矩比大多數人想的嚴格。 最好懂的例子是 Ctrl+M。在終端機的世界裡,Ctrl+M 送出的位元組跟 Enter 一模一樣(都是 CR)...
AI 與科技新聞摘要 - 2026/08/03
日本九州有一個縣,同時放著全球一大部分的車用晶片、影像感測器和台積電的海外新廠。7 月 28 日下午,那個縣震了規模 7.1。今天是震後第六天,各廠的復工時間表陸續出來了,而時間表本身就是一份脆弱度清單。 一、熊本震後復工時序:最不痛的是台積電熊本縣 7 月 28 日的強震讓菊陽町一帶的半導體廠全面停機。停下來的名單包括台積電子公司 JASM、Sony 的影像感測器廠、瑞薩電子的川尻與錦兩座工廠、三菱電機在合志市與菊池市的功率半導體廠,以及東京威力科創的九州廠。 復工節奏差很多。瑞薩的錦工廠在震後隔天(7 月 29 日)晚間就恢復生產,7 月 31 日上午回到原本產能;熊本市的川尻工廠要等到 8 月 5 日才逐步重啟。Sony 那座 24 小時運轉的影像感測器廠,預計 8 月 4 日起分階段復工,要到 8 月中旬才回得到震前水準。三菱電機兩座廠 7 月 30 日下午重啟設備。台積電 JASM 原本預定上週五決定是否在今天恢復生產。 有意思的是曝險的分布。法人對 JASM 停工一週的營收影響估算約 1,400 萬美元,大約占台積電第三季指引的 0.03%。也就是說,這場地震對名單上...
ScopedValue 沒有 set():Java 25 拿掉這個方法,才是它取代 ThreadLocal 的關鍵
要把一個 traceId 從 Controller 帶到最底層的 DAO,中間不想改十七個方法簽名,你會怎麼做? 十年來標準答案只有一個:塞進 ThreadLocal,set() 完就走,離開前記得 remove()。這招我自己寫過、review 過、也修過別人忘記 remove 的那種 bug。它能用,只是那個 finally 區塊像是隨身攜帶的道歉信。 Java 25 把 ScopedValue 正式轉正了(JEP 506,五輪 preview 之後定案)。網路上多數介紹會說它「離開作用域自動解除,不用 remove」。這句沒錯,但把重點放錯地方了。我用 JDK 25.0.2 把兩邊行為跑了一遍,跑完覺得真正的差別是另一件事:**ScopedValue 沒有 set()**。 下面每個有輸出區塊的段落都是實跑結果(java Probe.java,JBR 25.0.2),沒有輸出的地方是機制說明,我會講明哪些我沒測。 舊做法:那個 finally 到底在防什麼那個 finally 到底在防什麼?開一個大小為 1 的執行緒池,第一個任務 set 完就結束,第二個任務什麼都不做,直...
台灣科技業還缺 19.3 萬人,只是缺的不是你會的那一種
工程師這個職業在台灣,出現了「不一定更吃香」的數據。沒有人被誰取代,稀缺性只是換了個地方站。 這句話聽起來像唱衰,但數字給的其實是好消息與壞消息各一半,而多數人只看到其中一半就開始焦慮或開始嘴硬。 缺口沒有消失,它換了一排隊伍104 人力銀行今年 4 月 28 日發布的《2026 年科技業人才報告書》裡,科技業每月人才缺口是 19.3 萬人。這個數字沒有縮小的跡象,產業還是嚴重缺人。 問題出在缺的位置。同一份報告裡,軟體與工程類每月徵才 2.5 萬人,年減 5%。而操作與技術類年增 30%、製程規劃類年增 29%、品保品管類年增 21%,半導體業整體職缺年增 23%。軟體及網路業的徵才人數,從 2024 下半年高峰的 8 萬人,掉到 2026 年的 6.3 萬人。 104 的人才永續長鍾文雄給的定調是,企業對工程師的需求「從『量』的擴張轉向『質』的盤整」。媒體把這個現象叫位移效應。 我對「位移」這個詞的感覺比「取代」複雜得多。被取代是一件明確的事,你會知道發生了,而且會有人出來討論該怎麼辦。位移不會。位移是你原本站的那個位置慢慢變得沒那麼重要,而旁邊那個你從來沒考慮過的位置變重要...
AI 與科技新聞摘要 - 2026/08/02
這一週有兩件事同時成立:主要 AI 廠商的安全管制很可能真的有用,而且它們沒有讓攻擊變少。它只是改變了攻擊的流向。 一、駭客繞開了 Claude 和 OpenAI,改用 DeepSeek 打了 460 個目標Palo Alto Networks 的 Unit 42 在 7 月 30 日公布一份調查,追蹤一名珠海的行為人(代號 knaithe)。做法是把 DeepSeek 接進開源的 Hermes Agent 框架,再用 Telegram 下指令,讓模型自己去掃描、判斷、選攻擊路徑。對象超過 460 個對外服務,確認的戰果包括 3 個 Citrix 目標的資料外洩,以及 11 個 Marimo 端點的指令執行。 用到的漏洞橫跨 8 個 CVE,從 Langflow、n8n 到 Citrix NetScaler、Apache Tomcat 都有。針對 n8n 的那一輪,是從 25,209 台已識別的中國系統裡抽出約 100 個 IP,實際探測約 40 個。 最值得看的細節在報告的後半段。這名行為人測試過 Claude Code、Codex、Qwen、GLM、Kimi、MiniMax,...
git reset、revert、cherry-pick 差在哪:撤銷一個 commit 之前,先問它出去了沒
那顆你想撤掉的 commit,push 出去了沒? 先回答這個,三選一就結束了。出去了,用 revert。還在自己機器上,reset 比較快。至於 cherry-pick,它根本不在這場討論裡,只是常常被放在同一頁教學所以一起背了。 判準聽起來太簡化,但我把三個指令的行為實跑了一遍(git 2.52.0),跑完反而覺得它還不夠強硬。下面凡是有輸出區塊的段落都是實跑結果,包括我第一輪跑錯的那次;沒有輸出的地方是機制說明或實務建議,我會講清楚哪些是我沒測的。 reset 動的是指標,不是內容git reset 做的事只有一件:把分支的指標往回搬。至於工作目錄跟暫存區要不要跟著搬,才是那三個參數在管的。 拿一個乾淨的 repo 來試,三顆 commit,C3 的內容是「新增 f3.txt」。從 C3 退回 C2,三種模式的結果是這樣: 模式 HEAD 暫存區 f3.txt 的實體檔案 --soft C2 f3.txt 還在暫存區裡 還在硬碟上 --mixed(預設) C2 空的 還在硬碟上,變成「未追蹤」 --hard C2 空的 從硬碟消失 三種模式的 HEA...
什麼時候該把 agent 換成一張流程圖(AI Agent 架構全解析 · 加映)
八篇走完,我們把一個 AI Agent 的 harness 從第 0 層拆到第 7 層,最後停在一台會自己轉的機器上。系列本來就收官了——這篇是加映,因為原書在 2026-07-30 又長出了一個新章節。 Layer 7 原本只有一個 section(21 · Loop engineering,也就是第 8 篇的內容)。作者在 7/30 補上了 22 · Graph engineering,34 個檔案、+2,871 行,隔天 merge 進 main。它開頭第一句話是:「第 21 章在一個 agent 外面堆疊 loop。這一章整理的是 model 呼叫和呼叫之間的流程。」——擺明就是第 8 篇的續集,那就把它補完。 一句話講完這章在幹嘛:別再問 model 下一步跑什麼。把你已經知道的流程寫進程式碼,model 只用在需要判斷的地方。 你早就知道流程長怎樣,卻每次都讓 model 重新猜一遍很多任務的流程,你在還沒呼叫 model 之前就已經知道了:先分類工單再處理、先 review diff 再 commit、先拿到核准才做對外的動作。這些不是「要不要這樣做」的選...
遠端 MCP server 的 OAuth 登入:從手貼 token 走到 claude mcp login
MCP 剛出來的時候,這個問題根本不存在。 那時候一個 server 就是你本機起的一支 process。你在設定檔裡寫 npx some-mcp-server,Claude Code 把它 spawn 起來,兩邊用 stdin 跟 stdout 講話。認證?不需要。那支 process 跑在你的帳號底下,讀你的環境變數,能碰到的東西跟你自己在終端機裡能碰到的完全一樣。 問題是從「有些 server 不可能跑在你電腦上」開始的。 第一階段:遠端來了,認證用貼的Sentry 不會讓你在本機起一份他們的 MCP server,Notion 也不會。這些服務的資料在他們的雲上,server 必須跑在他們那邊,你的 Claude Code 只能透過網路連過去。 於是 transport 多了遠端的選項,最早進來的是 SSE(Server-Sent Events)。連得上之後,下一個問題馬上出現:對方怎麼知道你是誰。 那個階段的標準做法是自己去服務商後台產一組 API token,然後貼進設定: 12claude mcp add --transport http corridor http...
AI 與科技新聞摘要 20260801
一個沒有罰則的截止日,到期之後會發生什麼事? 答案是 8 月 1 日零時整,什麼都沒發生。而這件「什麼都沒發生」,比同一週任何一則產品發表都更值得看。 一、白宮 AI 行政命令的三項交付物,期限到了一份都沒出來行政命令 14409 給了聯邦機關 60 天,期限落在 2026 年 8 月 1 日。三項交付物分別是:一套機密基準測試流程,用來界定什麼叫「covered frontier model」;一套自願的前沿 AI 揭露框架;還有聯邦網路人力擴編計畫。前兩項由財政部、NSA、CISA 這一組機關負責,第三項歸 OPM。 到期日當天,沒有聯邦公報通知,沒有 NIST 或 CISA 的出版品,科技政策辦公室也沒有聲明。報導的原話是 “The silence is the story.” 值得注意的是這件事的不對稱。行政命令的期限跳票,實務上沒有人會被追究,這種期限本來就沒有配套罰則。但那份「自願」框架一旦生效,會決定哪些模型在發布前要交給政府看最多 30 天。對前沿實驗室來說,這是一個沒有罰則卻有實質拘束力的東西——沒人強迫你參加,但不參加的那家會被單獨拿出來講。 真正的風險不在期...
java -jar 關掉終端機就死?決定生死的不是 Java,是你的 shell
週五下午五點半,SSH 進正式機,敲下 nohup java -jar app.jar &,看著 log 開始滾,關掉視窗,下班。 星期一早上收到客服訊息說系統從週末就連不上。SSH 進去 ps -ef | grep java,什麼都沒有。 這件事我踩過,同事也踩過,但我們兩個踩的還不是同一種。他的版本更氣人:他沒加 nohup,只打了 java -jar app.jar &,關掉視窗,服務活得好好的。同一份佈署筆記,兩台一模一樣的機器,兩個相反的結果。 先怪 Java,怪錯了那時候第一個念頭是 JVM 有沒有裝什麼 shutdown hook 在亂關。翻了一輪 Spring Boot 的 graceful shutdown 設定,server.shutdown=graceful 沒開,spring.lifecycle.timeout-per-shutdown-phase 是預設值。程式碼裡也沒有人自己註冊 Runtime.getRuntime().addShutdownHook。 第二個念頭是 OOM Killer。dmesg | grep -i kill 乾乾...









