Write-ups of problems I actually had to solve, with the code and the numbers. Also on RSS.
TMPlayer 1.27.0 casts MKV to a Chromecast as HLS cut at its cues, connects through proxies where Telegram is blocked, and moves the TV to a top bar.
TMPlayer 1.26.0 streams a film bigger than the free space through a rolling download window, adds Android TV home rows and posters, and a Mac build from CI.
A tiling Wayland desktop without GNOME doing it for you: power without TLP, battery limits at 50 and 80 percent, idle timeouts, clipboard history and recording.
Moving a Next.js app from Vercel to Cloudflare Workers with OpenNext: the R2, D1 and Durable Object caches, Wrangler bindings, images and static headers.
How TapTL draws live English over a Chinese game menu: a brightness diff decides when to read, ML Kit translates on the phone, and every tap passes through.
Eleven TMPlayer releases in three weeks: one streaming core for Media3 and libmpv, a Windows file lock, a crash only TVs had, and a download cut in half.
How TMPlayer plays a Telegram video on Android TV while it downloads: a custom Media3 DataSource over TDLib, partial downloads, and seeking ahead of them.
Why an image cropper ships as a shadcn registry entry instead of an npm package, what its three props do, and why the states took longer than the crop.
A free resume builder that keeps one JSON object as the source of truth, reads an existing PDF back into it, and stores nothing on a server.
Bulk job outreach without a marketing tool: one send per person instead of BCC, a Gmail app password that stays in the browser, and what matters at 200 emails.
LangSync parses ICU messages into a tree before translating, batches fragments to cut API overhead by up to 98 percent, and only translates what changed.
Tell me what you are building. You get a fixed scope and a fixed figure back, from the person who writes the code.