Blog
Engineering notes from building things.
Write-ups of problems worth writing up — undocumented platform behavior, hardware that talks back, geometry that looks fine and won't print, and bugs whose real cause was three layers away from the symptom. RSS.
-
Watertight, on the bed, and the wrong shape
A plate printed with 4 mm tongues of material reaching into openings that should have had a 1.4 mm border, and every printability check was green. Offsetting a polygon by moving its vertices spikes at sharp corners and folds through itself at tight curves — and an even-odd fill closes a folded ring as happily as a good one, so the mesh comes out watertight, island-free and slicing clean.
-
VideoToolbox emits keyframes early, and my HLS segments came out twice as long
One segment a minute came out at double length on a real camera, and never once on synthetic test video. The max keyframe interval is a ceiling, not a schedule — encoders spend keyframes early on scene changes — and it counts the timestamps you supply rather than wall clock. Half of that is documented, on a page about a different property.
-
Your tvOS Top Shelf tile is cached, and reinstalling won't clear it
The tile drew a placeholder for hours after the code was correct again. The Home screen caches the rendered tile, dedupes incoming content against it, and that cache survives uninstalling the app — only a reboot cleared it. Plus what actually works for getting logs out of a tvOS extension, and what an extension can and can't do with an App Group.
-
Why your HealthKit widget shows zero every morning
The widget was wrong every morning and right the moment I opened the app — but its timestamp was fresh, so it wasn't stale, it was freshly wrong. HealthKit's store is encrypted while the phone is locked, and a query that fails for that reason is indistinguishable from a day with no data unless you read the error.