Small Machine Notes
Practical fixes for macOS automation, launchd, file systems and AI coding agents —
each one reproduced and verified on a real Mac before it was written down.
Posts
-
ffmpeg drawtext breaks on quotes, colons, commas and %: "No option name near", "Stray %", blank or □□□ text — use textfile= with expansion=none
-
Python script hangs at 0% CPU on macOS: find where with `sample` (and why spindump says it must be run as root)
-
PWA shows a blank page offline after a deploy: the service worker never cached the new hashed bundle
-
Text jumps back while typing: the server's change event echoes your own save and the refetch overwrites it (SSE)
-
Server returns 413 but the client gets BrokenPipeError / ECONNRESET: drain the body first
-
CORS blocked the response but the POST still ran: text/plain skips the preflight (require application/json)
-
Python HTTPServer hangs: one idle connection blocks every request (use ThreadingHTTPServer)
-
Four launchd traps: Desktop scripts, logged-out agents, keychain-less daemons, and PATH
-
A launchd job hung for hours opening ~/Downloads (macOS privacy prompt)
-
Atomic file writes on macOS without losing the file's creation date
subscribe via RSS