Tag: programming
-
A peep behind the curtain: here's an animation illustrating how I had to learn to dissect/think about origami in order to make origami.danq.dev for my Weird Web October contribution today:
-
Thanking is an action applying to one visible thing
"Thanking is an action applying to one visible thing." is a literal line in the source code of one of my favourite video games, blackle mori observes.
-
AI Software Development β What Does The Data Say?
Jason Gorman's summarised the state of the art in research into the efficacy of LLM-assisted software engineering, and I was reassured to see that it closely mirrors my own personal experience of these technologies, with which I've now experimented for several years.
-
British Columbia, Time Zones, and Postgres
In March 8, 2026, British Columbia moved their clocks to a year-round Pacific Daylight Savings Time, and doubtless broke a lot of software. Every time I work on better timezone support for Three Rings, this is the kind of story that terrifies me!
-
What Was Matt Thinking?
Ernie Smith from Tedium wrote about Matt's Script Archive, which back in the 1990s was a big part of how and why I learned to code in Perl. Let's take a trip down memory lane...
-
Working with an old codebase today, I moved a method from one file to another. CI was happy.
Then I realised the method didn't have any automated tests, so I wrote one. It turns out its entire (new) file didn't have any, so my change would improve test coverage. Nice.
But it didn't. CI complained that test coverage had dropped. Wait, what? All I did was move some code and add a unit test.
Then I realised that the coverage analysis tool was only counting files that actually contained any tested code. By adding a test to part of a previously-untested file, that file became part of the scored codebase. Uh-oh.
Looked deeper. Turns out the code coverage tool was also counting the test files themselves as being part of the code-under-test.
Fixed all of the above. Code coverage score dropped by about 40%. π±
Now I've got more work to do.
Happy Friday. Check what your coverage tool is inspecting, folks.
-
Bloomscrolling & Agentic Intelligence
Aquarion's written about using agentic intelligence and the role of LLMs in various tasks. The conclusion's pretty solid, and I agree with it 90%+.
-
Rubberdogging
Rubberdogging, verb: attempting to invent a solution to a technical problem by explaining it out loud to a pet. From "rubberducking", the practice of doing so to an inanimate object, and "dog walking".
-
CSS or BS
Keith Cirkel's made a game where you have to identify if something is a CSS property or a convincing fake. How's your CSS knowledge?
-
Coding Is When Weβre Least Productive
Jason Gorman shares a wonderful anecdote about a workday in which he wrote only three lines of code, but that he considers productive because he took the time to understand the underlying problem he was working on.
-
Once You're Asking the Right Question, You Don't Need To Ask!
The other week, a coding LLM helped me... without me ever submitting a single prompt to it. I just typed into it all the component parts of my problem, and in doing so the solution revealed itself to me. It's rubberducking... silent AI edition!
-
What breaks when one of your developers leaves?
On Friday, I said goodbye to a colleague as she left us after most of a decade with the company. Then this morning, all hell broke loose on some production servers.
Alt
DataDog graph marked to show a co-worker's departure on Friday evening being immediately followed by a flurry of errors which then stopped for the weekend before coming back in force on Monday morning.
It turns out that the API key that connected our application to our feature flag management platform was associated with her account, and hadn't shown up in the exit audit.
Let this be your reminder to go check where, if anywhere, your applications are using person-specific keys where they should be using generic ones!
-
FlipFlop Solitaire's Deck-Generation Secret
I enjoy a mobile game called FlipFlop Solitaire, which provides a few thousand pre-seeded decks that are guaranteed "winnable". This blew my mind for a little while - how can you be sure that these shuffles are all winnable? But then I worked out a way to achieve exactly that result... by thinking in reverse!
-
The machines are fine. I'm worried about us.
Minas Karamanis has produced a fantastic article about his experience of the use of LLMs for research in physics, and the concerns that he has about its use by less-experienced researchers just beginning to find their way in the field. I echo his thoughts, from my own field of software engineering, and wonder... how will we allow junior developers to gain experience in a world that may encourage them to use LLMs rather than trying and failing for themselves?
-
Some days, developing Three Rings is about being hunched over a keyboard alone in the middle of the night, swearing at Rubygem incompatibilities.
But just ocassionally it's about getting together in beautiful places with some of the most dedicated geeks I know... to swear about Rubygem incompatibilities.
Either way, a walk in the garden can lead to the insight that gets you to the solution.
Alt
A beautiful country house with a huge garden.





