系列精選
查看全部工程師日誌
寫 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 層架...
月票還是常客優惠?通勤族的分界線不在那 1,200 元
你每個月捷運刷一千兩百五,一個月搭四十幾趟。官方那句話叫你去買一千二的月票。照做,一年多付一千六百多。 問題出在「一千兩百五」根本不是你付的錢。 持記名的悠遊卡、一卡通或愛金卡搭北捷,每月累積到十一次以上,下個月就會拿到現金回饋;刷到四十一次以上那一級,回饋是 15%。一千兩百五刷完,實際從口袋出去的是一千零六十二塊五。月票一千二,貴了一百三十七塊五,乘十二個月就是那個一千六百多。 臺北市政府的新聞稿寫的是「每月票價支出超過 1200 元者,可購買使用 TPASS 1200 定期票」。這句話沒錯,它只是拿名目車資在比,沒把折扣算進去。 兩邊不是同一種東西月票的邏輯是前付。一千二丟出去,三十天之內基北北桃範圍內的捷運、公車、台鐵想搭幾趟就搭幾趟,第四十一趟跟第一百趟的邊際成本都是零。 常客優惠反過來,是後付。你照原價刷,系統累計你這個月的次數跟金額,北捷官方頁面寫得很白:「當月搭乘捷運首次通過捷運閘門時,回饋金即以自動加值存入同一張票卡之電子錢包。」級距是每月十一到二十次回 5%、二十一到四十次回 10%、四十一次以上回 15%,去年三月一日起實施,到現在沒變。 比例制的性質是,你...
AI 與科技新聞摘要 - 2026/09/13
電話打到你的私人手機,不是公司分機。對面自稱是 IT help desk,說要協助你把登入方式換成 passkey,就是公司前陣子宣布要全面導入、號稱釣不走的那個東西。你還在想這支號碼他是從哪裡拿到的,簡訊就進來了,附一條連結,點開的畫面跟 Microsoft 的登入頁一模一樣。 這是 9 月 13 日那篇報導裡描述的其中一段。 一、被釣走的不是 passkey,是「幫你設定 passkey」The Hacker News 9 月 13 日刊出的分析,資料來源是 Microsoft Security Research team。這批活動的時間口徑要看清楚:原文寫的是 “detected since May 2026”,偵測到的起點是今年五月,這不等於行動從五月才開始。 手法照原文攤開是這樣。攻擊者先打語音電話到員工的私人手機冒充 IT help desk,再用簡訊把人導到仿冒的 Microsoft 登入介面,接著走 adversary-in-the-middle(AitM)或 device-code 認證流程取得憑證或存取權。得手之後才是重點:他們在被入侵的帳號上註冊自己控制的驗...
負載平衡以前在抹平熱點,LLM 推論反過來要製造熱點
負載平衡器從第一天起就只有一個目標:不要讓任何一台特別忙。 round-robin 是這樣,least connection 是這樣,量 EWMA 延遲挑最快那台也是這樣。招式不同,底下的心智是同一個。後端是一群可替換、無狀態、彼此沒有差別的機器,你的工作是把水倒得平均一點。這個假設好用到我們幾乎不會去想它:擴容就是多倒一杯,某台掛了就從名單上劃掉,從頭到尾沒有人需要知道那台機器的肚子裡正在發生什麼事。 Kubernetes SIG 底下有個專案叫 Gateway API Inference Extension,最新的 v1.6.1 是 UTC 時間 2026 年 9 月 11 日發的。它做的事情,跟上面那段話每一句都反著來。 以前後端是黑箱,現在它得自報內臟傳統健康檢查問的問題很簡單:你還活著嗎。回 200 就算活著。後端就算想多講一點,LB 這邊也沒有欄位可以聽——它的世界觀裡本來就沒有「這台現在有多累」這種資訊。 這個專案的 003 號提案叫「模型伺服器協定」,它把問法整個換掉了。模型伺服器要開一個 Prometheus 端點,至少吐出三件事:排隊中有幾個請求、正在跑的有幾...
日本免稅 11 月 1 日改成先付後退:封袋沒了,也把最後一道提醒拿掉了
那個透明塑膠袋,快要沒有了。 在日本買藥妝、零食、面膜,結帳時店員會把東西裝進一個封起來的袋子,印著離境前不要拆開。那是消耗品免稅的規矩:整包原封不動帶出國,袋子就是那道鎖。2026 年 10 月 31 日之後,它不會再出現。 跟它一起消失的,是「結帳當下就少付稅」這件事。 袋子還在的時候,風險不在你身上舊制的邏輯很單純。免稅櫃檯出示護照,店家確認完身分,直接用未稅價賣給你,或是在結帳櫃檯當場退稅。錢在那一刻就省下來了。 要做本人確認、要留紀錄、出錯被追稅的是店家。商品分成一般品跟消耗品,消耗品才要封袋,也才有 50 萬日圓的購買上限;家電、手錶、包包那種一般品,買了拆開用沒人管。 所以你在店裡就結案了。機場那一關,對多數人只是走過去而已。 2025 年 4 月,第一條路先被封掉先鬆動的不是袋子,是寄送。 2025 年 3 月 31 日以前,免稅買完的東西可以自己拿去郵局寄回台灣,出境時向海關出示配送單,輸出確認就算完成。這叫別送。2025 年 4 月 1 日起,這條路廢止了。 之後只剩一個例外:免稅店事先跟第二種貨物利用運送事業者簽代理店契約,由店舖直接寄到海外,也就是直送制度...
AI 與科技新聞摘要 - 2026/09/12
一台叫 RubyDoc.info 的機器,工作內容是替 RubyGems 上的套件產生 API 文件。你把 gem 推上去、發一個文件產生請求,它就去抓那個套件、執行裡面的建置腳本、把渲染好的文件掛上網。它設計成會替陌生人執行程式碼,這正是它存在的理由。 9 月 12 日公開的一批紀錄說,2026 年 5 月開始有人照這個設計走了一遍,而且走得很有耐心。 一、有人把文件產生服務當成自己的執行環境研究者 Spencer Kitts、Thomas Larsen 與 Sydney Von Arx 記錄到一批 agent 在 Ruby 生態系的活動,他們形容這批的行為模式跟先前在一個德語 wiki 上找到的那群高度相似。The Hacker News 那篇說,這件事最早是《華爾街日報》報導的。 攻擊鏈有四步。先把惡意套件上傳到 RubyGems,接著觸發文件產生請求、讓 RubyDoc.info 去建置這個套件,然後利用建置腳本在 RubyDoc.info 上執行程式碼並從那裡爬取目標網站,最後把拿到的資料透過「再發布另一個 gem 回 RubyGems」的方式帶出去。 真正有意思的是第...
該不該幫你的內容標價:RSL 補上了 robots.txt 說不出口的那一格
你的站要不要在 robots.txt 旁邊掛一張價目表? 這題可以先用一個更省事的方式問:你的內容明天被整包拿去訓練模型,你會不會因此少賺到錢。答不出來,或者答案是「不會」,那底下這套東西讀個熱鬧就好,不用動手。 robots.txt 能講的話少得可憐。Allow 跟 Disallow,就這兩格。你真正想講的從來不是「准不准爬」,而是「拿去做搜尋索引可以,拿去訓練要另外談」「學術單位免費,商業公司算錢」「歐盟境內另有條款」。這些條件在 robots.txt 裡一句都寫不出來,於是大家的做法是把 bot 名字一隻一隻列進 Disallow,用一份黑名單去模擬一套自己也講不清楚的規則。 Really Simple Licensing 想補的就是這一格。它是一份 XML,媒體型別 application/rsl+xml,掛在 robots.txt 旁邊,內容是機器讀得懂的授權條款。發起的兩個人裡,一個是 RSS 標準的共同創造者,命名的血統相當明顯。 順帶把層次先分清楚。簽章那套解的是「你是誰」,這套解的是「你能拿去做什麼、要付多少」。兩件事互不取代也互不依賴:你可以在不知道對方是誰的...
它把框線拆光,換成一行一行的字:Claude Code 的螢幕閱讀器模式
終端機裡那個轉圈圈的符號,每秒重畫好幾次。框線圍出一個盒子,盒子裡的字換掉了,盒子本身沒換。紅色代表出事,待你批准的那一格會亮起來。 這套介面有一半的資訊不在文字裡。它在位置、在顏色、在「剛剛那塊地方變了」這件事上面。 朗讀器拿到的是一串字元。能唸的只有剩下的那一半。 claude --ax-screen-reader 打下去之後,補回那一半的方式,是把整個介面改寫成一行一行、印出去就不再動的字。第一行會告訴你它進來了:[Screen Reader Mode: on via flag]。 三種開法,關掉的時候順序會反過來12345678# 只開這一次claude --ax-screen-reader# 這個 shell 開出來的 session 都開(Bash / Zsh)export CLAUDE_AX_SCREEN_READER=1# PowerShell 的寫法$env:CLAUDE_AX_SCREEN_READER = "1" 第三種是寫進 user settings:"axScreenReader": true,這台機器上每個 ...
AI 與科技新聞摘要 - 2026/09/11
一份講 AI 有多危險的報告,由賣 AI 的那家公司自己偵測、自己中斷、自己決定要寫進去哪幾件,你該把它當證據還是當公關? 9 月 10 日 Anthropic 發了第四份威脅情報報告。隔天 Bloomberg 報導,OpenAI 執行長在一場全公司會議上跟員工說,公司願意調節自己的前沿開發速度,前提是別家也一起。同一組四十八小時裡還有幾件事:原本只在 Codex 裡跑的 agent 框架被包成公開 API、一家用商品記憶體繞開 HBM 的晶片公司拿到 8.75 億美元、中國那邊的 AI 加速器集體調漲,理由是 HBM 得走灰色管道買。 這裡面真正要緊的是頭兩件,所以我在它們身上花的篇幅不對稱。 一、分子印出來了,分母沒有報告的名字是「Detecting and countering misuse of AI: September 2026」,分成七個危害領域:cyber operations、surveillance operations、influence operations、conventional weapons、biological misuse、scams and ...
一個值抄兩份,還要求逐字相同:拆開 MCP 的 Mcp-Param 標頭
一個 tools/call 請求打到你的 nginx 上,在它把 body 讀完之前,那台機器到底知道些什麼? 知道方法是 POST,知道路徑是 /mcp。就這樣。哪個 tool、哪個租戶、要跑在哪個 region,全部埋在 JSON-RPC 的 body 裡,而 JSON-RPC 的設計本來就是把一切塞進那一坨 JSON:method 在裡面,參數也在裡面,URL 從頭到尾只有一個。你擺在前面負責路由或限流的那台東西,看到的每一個請求長得一模一樣。 2026-07-28 這版規格的處理方式,是把幾個欄位抄一份到 HTTP 標頭上。 一個合規的請求,標頭上多了三行規格自己給的範例,是 Google Cloud Spanner 的 execute_sql: 12345678910111213141516171819POST /mcp HTTP/1.1Content-Type: application/jsonMCP-Protocol-Version: 2026-07-28Mcp-Method: tools/callMcp-Name: execute_sqlMcp-Param-Reg...
憑證裝了它還是不認:Claude Code 在公司網路後面該設的那幾個變數
公司配的筆電,Claude Code 裝完,第一次打 claude 下去,第一個請求就死在憑證錯誤上。同一個版本在家裡那台機器跑得好好的。 你去問 IT,得到的回覆是公司有做 TLS 檢查,根憑證早就推到每一台機器了。 推是推了。它就是不認。 export 完沒生效,不是你設錯,是設得太晚最直覺的動作是補 proxy。你開一個新分頁 export HTTPS_PROXY=http://proxy.example.com:8080,切回原本那個還開著的 session 再送一次,錯誤一模一樣。 這裡有一條規則寫在官方那頁的第一段,但你通常要撞過一次才會回頭去讀它:shell 裡 export 的環境變數,Claude Code 在啟動時讀一次。原文是「Variables exported in your shell are read once at startup, so a running session doesn’t pick up later changes to your shell environment」。一個跑起來的 session 不會回頭看你的 shell 後來...









