How Much Did My One-Letter Aliases Actually Save Me?
I have three shell aliases (j, s, z) for just, stree ., and zed . I dug through 7 months of shell history to find out how many characters they've saved.
Aging body, minor symptoms
As I get older, I have to recognize that some pains are inevitable . I worry a lot about my health and I get anxious about small symptoms. I know that I am kind of a hypochondriac. My pattern is as…
Home Depot sightings (and a bonus)
tag(s): #random-thoughts #pic This weekend I had to head to Home Depot to get supplies for some house repairs.[1] And of course I took some time to wander the aisles and look at tools and supplies…
Building Research
A desktop research workspace in Laravel and NativePHP. Streaming SSE into a queued job, distilling reports with a local model, and why cosine similarity cannot tell a paraphrase from a contradiction.
Every Feature Touches Ten Files
Ten files open for a one line change is either layering working correctly or one idea smeared across a codebase. The count does not tell you which, and git history does.
The Bill That Ended the Pilot
Uber burned its entire annual AI coding budget in four months — the full allocation gone by spring, no controlled overrun flagged in planning. Three-quarters of enterprises watched AI costs blow past…
Clankers
The Catharsis of Robot Gore... Keep reading
Trivializing the SSH escape sequence
Imagine you're enjoying a really premium SSH session when the remote host's network drops out long enough to cause your client connection to hang, and things are past the point of recovery. And,…
Does the Journalism Recession Make Economic News More Negative?
Since 1975, U.S. newspaper publishing employment rose from 376,000 to a peak of 474,000 in 1988-89, then collapsed to 82,000 by 2025 — an 83% decline from peak, even as total U.S. private employment…
Choosing the Right Caching Strategy on AWS
Caching can make an AWS application faster and cheaper, but the wrong cache can serve stale or private data. Learn where each AWS caching option fits and what it costs you in complexity.
I want to play, not work or study
When games start feeling more like work than fun - complexity, grinding, multiplayer, and just messing around.
Simsalabim — giving the iOS Simulator hardware powers
The iOS Simulator is a wonderfully fast place to build an app — right up to the moment the app needs something that belongs to the physical world. Bluetooth discovery returns nothing. There is no…
OpenSpec for Humans
Why spec-driven development is useful to product managers, designers, and engineers, especially when AI can write the code.
The Receipt Inside the Word
Listen to the audio version A foggy coast is a machine for making us overconfident. A pale flash appears beyond the water. We look once and say, “Lighthouse.” It is a wonderfully useful word. It…
You Can Rebuild a Factory. You Cannot Re-run an Extinction.
Late at the bench, I put a question to ATLAS: What's the best use of our planet's resources? Here's what came back. Big question, and an honest one. Let me answer it straight rather than dodge into…
New tests around local LLMs
Qwen 3.8 27B This week was interesting for local models with the open-weights release of Qwen 3.8 27B. It was highly anticipated, because Qwen 3.6 held the crown for a long time in open models of a…
I had some free time, so I tried to pwn V8
TLDR I am not working full time right now, which means I have free time which is dangerous. You start by reading one V8 blog post and somehow end up trying to make Google’s Chrome open…
Web Wandering 2
Web Wandering 2 Spidah. It’s been rather sticky of late. The plants are suffering and my sun screen budget has spiralled out of control. Luckily it seems we’re through the worst of it for this year…
Separation of Base System and Userland
I had a need to deploy a small VPS recently and I wanted it to be reliable and secure so I gave FreeBSD a try. This was also a great excuse to play around with something I've been curious about for a…
From Failure to Success (Sort Of)
My fair(s) experience.
Making my Terraform AI friendly
Which mostly meant having less of it.
Intelligence and behavior
There has been constant fighting with the latest crop of AI models.
Cochran's Q test in R, or the extension of McNemar's test for more than two groups
Introduction In previous articles, we showed how to test whether two qualitative variables are related thanks to the Chi-square test of independence in R (and how to compute it by hand). Both…
A scooter is cheating, a cargo bike is rude, the car is fine
The Scooter I still remember using an electric scooter for the first time and feeling a strong sense of guilt and physical laziness as I effortlessly glided over the concrete. With a few hours of…
Tests and product market fit
I watched a team write a careful test suite for a feature, then kill the feature two weeks later because nobody wanted it. The tests were wasted effort, and worse: they made the feature harder to…
Hidden Tech Debt Is Still Tech Debt: A Production Lesson
A production system ran reliably for years until bot traffic exposed hidden technical debt, exhausted its SNAT ports, and brought API calls down. Let's dive into what happened and explore how it…
How to bypass Hcaptcha
You can bypass/automatically solve Hcaptcha on any website
To raise VC, think like a VC first
A lot of people have the wrong idea about fundraising. They make fundraising a really complex thing, making it seem that you have to change your entire personality, or lie, or somehow try to fool…
Open Source in the age of AI
If I go through the halls of X, I would probably come back with a very confused opinion on the state of open source today. On the one hand there are examples like opencode with tons and tons of open…
Same App, Ten Years Apart
In 2017 I wrote a post called Modernizing Pedalwrencher: Whatever That Means, about dockerizing a two-year-old Flask app and moving it from Heroku to AWS ECS. Reading it now is like finding a letter…
Making a Small Language Model Actually Useful in Movie Search
Mofy is a personal, offline-first movie app with no cloud API calls. Making search understand human-like queries meant ruling out generative models after four failed attempts, and fine-tuning a…
In Praise of Libraries
My latest library haul Quiet places for soothing your soul. Unassuming spaces where you can wander for hours, lose yourself browsing the shelves, discovering hidden gems or just enjoying the peace. A…
Introducing Double
A new PHP test-double library built for developer experience.
Introducing the cli.dev Ecosystem
cli.dev is a shared home for the tools, products, and experiments I build and maintain.
WIP Wednesday: Happy with my progress
I don't have much to write in regards to my work in progress today because, well, it's the same sweater I've been knitting all month! I'm very happy with the progress I've made on the Lillesol…
Self-hosting mail without opening a single port
A home mail server with no open ports, reachable from my phone over WireGuard, without any subscription fee.
Nifty Django Feature: Third-Party Packages
Part of the Nifty Django features series: The documentation now includes mentions of third-party packages and community maintained solutions, go check them out!
Getting into 3D printing
Over the last months I have purchased and become interested in 3D printing. ...
Compose & kotlinx.html
Let's render a simple page with Ktor server and kotlinx.html : get ( "/users.html" ) { call . respondHtml { myLayout ( title = "Users" ) { userList ( users = db . users . value , ) } } } A reusable…
GreenOps tools on Kubernetes
Kubernetes is a container orchestrator, which requires a compute. To power a compute unit, you need electricity. Creating electricity can result in carbon emissions, which is bad for the climate.…
Standing
My baby boy isn’t really a baby any more, at the ripe old age of 13 months.
W is for walrus operator - Python A to Z
Python A-Z is a blog series about Python. Each day, I share insights, ideas and examples for different parts of Python development that match with the letter of the day. Blaugust is an annual…
The Depths of JavaScript: Minesweeper in 247 Bytes
247 characters. b=e=>document.body.innerHTML=m(73,e||[~9,..."1172711",~9].map(j=>m[i-=j]?++e:i).map(j=>b(b[i=j]^1|e),b[i]=!m[O--,i]*~e));b(m=t=>t--?`<a…
Lossless JSON round-tripping in C# with JsonExtensionData
Learn how to guard against losing data when deserializing JSON to limited properties and the serializing the object again.
Where is Nāgasena?
No part is the chariot. Yet "chariot" is a useful name for parts assembled in a certain way. Nāgasena says it is the same with him.
The Glory of Bottomless Cex Tat or; On <i>Road Trip Adventure</i> (2002)
Earlier this week Michael made a request on their blog to post about some kind of obscure game, and of course I wanted to participate. I considered talking about Mirrors , a fascinating PC-88…
Oktopai: A Local Fleet of Specialized Coding Knowledge
The most interesting local-LLM idea to me is not finding one enormous model that can do everything. It is building an orchestration of models and letting a local orchestrator choose the right one for…