Small Machine Notes
AboutSmall Machine Notes

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

  • Oct 19, 2026

    ffmpeg drawtext breaks on quotes, colons, commas and %: "No option name near", "Stray %", blank or □□□ text — use textfile= with expansion=none

  • Oct 18, 2026

    Python script hangs at 0% CPU on macOS: find where with `sample` (and why spindump says it must be run as root)

  • Oct 17, 2026

    PWA shows a blank page offline after a deploy: the service worker never cached the new hashed bundle

  • Oct 16, 2026

    Text jumps back while typing: the server's change event echoes your own save and the refetch overwrites it (SSE)

  • Oct 14, 2026

    Server returns 413 but the client gets BrokenPipeError / ECONNRESET: drain the body first

  • Oct 12, 2026

    CORS blocked the response but the POST still ran: text/plain skips the preflight (require application/json)

  • Oct 2, 2026

    Python HTTPServer hangs: one idle connection blocks every request (use ThreadingHTTPServer)

  • Oct 1, 2026

    Four launchd traps: Desktop scripts, logged-out agents, keychain-less daemons, and PATH

  • Oct 1, 2026

    A launchd job hung for hours opening ~/Downloads (macOS privacy prompt)

  • Oct 1, 2026

    Atomic file writes on macOS without losing the file's creation date

subscribe via RSS

Small Machine Notes

  • Small Machine Notes

    Fixes and field notes from running automation, AI coding agents and small self-hosted services on one Mac. Every post is a problem I hit and verified on real hardware.