Notebook
Articles and short notes on applied AI, Python, data systems and the work of building useful software.
Subscribe via RSS ↗Featured
How to scope a useful internal tool: one input, one outcome, explicit failures and a short path to feedback.
202614
Useful log events identify the operation, outcome and correlation context without copying the whole request.
Short engineering notes with enough context to be useful after the original problem has been forgotten.
Let the browser decide when a focus indicator is needed, and keep a visible fallback.
A focused way to build a useful map of a repository without reading every file first.
Units, state and domain meaning make names useful; extra syllables alone do not.
The build contract behind this Hugo portfolio: pinned inputs, explicit environments and generated HTML.
Use keys_unsorted for convenient inspection; use an array when the order is part of the data.
Separate unstaging a file from discarding working-tree edits with git restore.
A practical approach to reproductions, hypotheses and boundary checks when stepping through the process is not available.
Cache keys, stale data and invalidation are part of the result contract, not just performance settings.
TypeScript can narrow checked values, but external JSON still needs runtime validation.
Why this site uses generated pages, with small interactive features added where they help.
Questions to ask before adding a package, beyond whether it saves a few lines today.
An expand-and-contract example for schema changes that must work while application versions overlap.