Keep passwords, emails, IDs and card numbers out of your logs. Tag Go struct fields with mask:"..." and get a masked copy or a log-ready string, with custom maskers when the built-ins are not enough.
White's Tech Notes
RSS FeedNotes from a backend engineer: real problems hit in production and side projects, their root causes, and the fixes. Go, Java, Lua, DevOps, databases and AI-assisted development.
後端工程師的 TIL 筆記:每篇記錄一個踩過的坑、根因與解法。 About me
Recent Posts
Google News RSS 連結要解碼,不是轉址
stock-analyzer 從 2026-06 起再也沒抓到任何新聞內文。failed=0,看起來像「這些來源本來就該跳過」,五個月沒人發現。計數器全部落在「跳過」那一格,要當成失敗看。
Browser agent: upload a local file when file_upload fails and CSP blocks localhost
先 curl -sI 看目標站的 content-security-policy 和 cross-origin-opener-policy,就知道 fetch 會不會被擋、popup relay 能不能用。
配額有限的批次:便宜必要的工作要排在昂貴輪詢前面
stock-analyzer 的 fetch-financials 每小時排程都印「完成 84/294 檔,請於下個整點重跑」,看起來正常。有配額的批次工作,便宜且必要的資料要排在昂貴且多半空手的輪詢前面;混在同一個逐項迴圈裡,昂貴的那一半會把清單尾端餓死。
Claude Code mod:用「最近畫過才 tick」省重畫,會讓 pane 永久凍結
jarvis mod 的 pane 在有 subagent 跑時每 150ms 重畫一次,長 session 裡 terminal 很吃 CPU。用「上次畫的時間」當閘門,閘門本身又只能靠重畫打開,就是一個沒有外力就重啟不了的死結。
zsh 變數後接冒號會被當成 modifier
21 條分支全部回 0,看起來像「沒有命中」,其實每條都有 2~3 個。「全部回 0」比「部分回 0」更可疑:先拿一條手動驗證,對照組不一致就是工具鏈的問題。
Claude Desktop 畫 Claude Code mod 的坑
mod 的 TSX 裡 JSX factory 叫 h:任何含 JSX 的作用域都不能有叫 h 的參數或變數,否則執行期丟 h is not a function(型別檢查抓不到)。
Featured Projects
All projectsAI coding agents forget everything when a session ends. memory-mcp gives them durable, searchable memory in one Go binary and one SQLite file — usable from the CLI, as an MCP server, or via Claude Code hooks, with CJK-ready full-text search.
A Claude Code mod that opens a live HUD beside the chat: what your subagents are doing, what they cost, which files changed, and every other session on the machine. It also turns repeated bad dispatch outcomes into rules — only the ones you approve.
4x
ArchivedA CLI that runs AI coding agents as separate Design, Code, Review and Test roles, with guardrails (state machine, scope lock, evidence-based test gate) enforced in Go rather than by prompting.