Recent
Recently published, across every category
Latest posts

09/13/2026
Every Check Passed but One
A free browser tool that draws this site's own post covers, and the single quoting bug that got through a build, a gate and a screenshot before anyone actually opened the file it produced.
09/10/2026
Grep Exits Zero When It Finds the Word FAILED
A CI gate piped test output through grep for readability, and a red build passed anyway -- because grep succeeds when it finds a match, even the word FAILED.

09/02/2026
Lighthouse now grades your site for AI agents
Lighthouse has a fifth category, Agentic Browsing, and one of its audits reads your llms.txt. Three sites failed it for the same undocumented reason, and the API will not give you the category unless you ask for it by a name that is not in the docs.

09/02/2026
Four ways an AI agent was confidently wrong on a migration
Each of these looked right. A filename match that paired the wrong screenshot with the wrong article, a dev server that made correct code look broken, and a test that wrote down facts it did not own.

09/02/2026
What the build caught that nobody was looking for
Automated gates on a 150-page migration found a dropped screenshot, thirty redirects pointing at nothing, and an orphan hidden by a regex wildcard. None of it would have been found by reading pages.

09/02/2026
Measure it in a real browser
A simulated 2,061ms render delay that did not exist, an image library silently ignoring the font it was given, and a contrast failure that was a misread value. Three cases for checking directly.

09/02/2026
An Angular auth interceptor, the functional way
Attach a token to every outgoing request and handle a 401 in one place, using the functional HttpInterceptorFn rather than the class-based interceptor most search results still show.

09/02/2026
Grouping and summarizing a list in modern Java
Collectors.groupingBy with a downstream collector replaces most of the loop-and-map code people still write - plus records, which remove the class that loop needed.

09/02/2026
Reading a huge file line by line in Node, without loading it
readFileSync on a 2GB log is how a Node process dies. Streaming it line by line uses a constant few kilobytes instead, and is barely more code.

09/02/2026
Reading a huge CSV in PHP without exhausting memory
file() and str_getcsv on a large export will hit the memory limit. Streaming it with fgetcsv uses a few kilobytes regardless of file size, and handles quoted newlines correctly.

09/02/2026
Retrying an HTTP request in Python, properly
A retry with exponential backoff and jitter that only retries what is worth retrying - and does not hammer a service that is already struggling.

09/02/2026
is_granted in Twig: roles and IS_AUTHENTICATED
is_granted takes more than roles, and picking the wrong one gives you a check that quietly passes when it should not. What each attribute tests, why role hierarchy makes ROLE_USER true for your admins, and where the check belongs.

09/02/2026
Leaving FOSUserBundle: what replaces each piece
The bundle is maintained only enough for existing projects to migrate off it. Every piece it provided now has a replacement in Symfony itself or in two small bundles - and the migration is mostly deletion.

09/02/2026
Rendering a Symfony form field by field in Twig
One call renders the whole form and gives you no say in the markup. Splitting it up is four functions, and the one that matters most is form_rest - the safety net that stops a forgotten field from silently disappearing.

09/02/2026
Twig autoescaping and the raw filter
Autoescaping makes Twig safe by default and makes |raw the fastest way to undo that. The catch is that HTML escaping is only correct in HTML - inside a script tag or an unquoted attribute, the default is the wrong answer.

09/02/2026
The N+1 you wrote in a Twig loop, and its fix
The query looks fine and the template looks fine. Together they issue one query per row, because a lazy association is loaded the moment a template touches it - and templates touch things the controller never did.

08/23/2025
Angular 19 CLI commands worth memorizing
Here are the top Angular 19 CLI commands every developer should know since you will likely use them every day. Click here to get your free Angular 19 Cheat Sheet & Study Guide!

08/23/2025
Convert PNG and JPEG to WebP with a PHP script
A short GD script that converts a folder to WebP, preserves PNG transparency, and - the part usually missing - keeps the original whenever the WebP comes out larger, which happens more than you would think.

08/17/2025
Tech careers for students, with AI in the room
So many young adults and high-schoolers seem to be disheartened with the rise of AI in tech. Those young minds who LOVE to write code are being dissuaded to even bother studying the art of software development and…

08/17/2025
Why is school car-line pickup still typed in by hand?
Here’s a practical application that can help schools with parent pickup and reduce unpleasant tasks and time burdening school staff.