Introducing Backlit: Lit SSR for Drupal, Hold the Node
In 2024 we server-rendered Lit web components in Drupal using a Node.js sidecar container. Now we can do it with a single Go binary that embeds a WASM module -- no Node.js, no containers, no external…
Use Asciinema and Powersession on Windows
Introduction I recently became aware of Asciinema when I saw that the Aspire docs are using it to document installing their CLI. As someone who creates a lot of content (or used to, anyway) and docs,…
AI coding transcript
Expanding on my short post this morning about AI-assisted coding style, I think the reason I like this iterative approach is that I don’t always know what I want the UI to look like until I…
Ollama Buddy - Seven Lines to Any LLM Provider
Ever found yourself wanting to add a new AI provider to ollama-buddy? (probably not I would guess 🙂), only to realise you’d need to write an entire Elisp module? Or perhaps you’re running…
Don’t be Chicken Licken – The sky is not falling
If you're just starting out in software development, or you're busy studying computer science at school or university and planning a career in IT, all you'll be hearing right now is how your intended…
Gathering Hyrox Race Insights with Python
Using Python to analyse Hyrox race data and gain performance insights.
Simple sort implementations vs production quality ones
One of the most optimized algorithms in any standard library is sorting. It is used everywhere so it must be fast. Thousands upon thousands of developer hours have been sunk into inventing new…
Not All Movement is Forward
If you have never had to endure software development run by MBAs, you probably don’t hate the word movement. Decades ago, when I was contracting at Caremark between two of their bigger Medicare…
Server Rendering Lit Web Components with Drupal
Server-rendered web components require no javascript up front. Declarative Shadow DOM let's you render your components' shadow roots before the page finishes loading. While the Lit framework's…
experiments with claude, part ⅳ: dzilification of MIME-Lite
Is all my 2026 blogging going to be about doing more random stuff with Claude? No, I promise. But I’m still working through my backlog of “and the next thing I tried to put it through its paces”, so…
Mathematical precision in Javascript
In a world where most people don't read anymore, and content is written by or at least run through AI for edits, I still find writing out my own thoughts…
The AI Automation Engineer in 2026: A Comprehensive Technical and Career Guide
Table of Contents1. Introduction2. What Is an AI Automation Engineer? The Role Redefined for 20262.1 From RPA to Agentic AI - The Structural Shift2.2 AI Automation Engineer vs. AI Engineer vs. ML…
Event | When Programmes Disagree About Programmes: Code Poetry and the Problem of Programme–Programme Communication
What happens when programmes interpret programmes? As decision-making becomes increasingly mediated by computational procedures, interactions between programmes themselves come into view as a…
When MultiChildLayoutDelegate is not enough
MultiChildLayoutDelegate is great for custom layouts, but it can't size the parent from its children. SlottedMultiChildRenderObjectWidget gives you that power — here's how to use it.
Why Estimates Fail (And Why You Still Need Them)
Why refusing to estimate doesn't solve your team's coordination problems - and what to do instead. For engineering leaders who are tired of broken planning.
To AI and back - part 1
I wrote my first AI program in high school (around 2009-2010). I found a tutorial for writing a genetic algorithm to find a list of number that sum to a value (I think). It was written in C++, I knew…
Eve 2.3.0
Eve v2.3 was just released on PyPI. It adds optimize_pagination_for_speed, a resource-level setting that allows granular control, overriding the equivalent global option that goes by the same name.…
Demystifying Memory in Claude Code
If you’ve been using Claude Code for a while , you know it’s more than just a terminal chat interface that codes — it’s an beast of an AI agent that devours tokens and still leave you with work…
Code is more expressive than configuration: comparing a sample blog in Web Origami and Eleventy
This post is the third in a series comparing the same sample blog in Web Origami and Eleventy : Eleventy version: Source code and Demo Origami version: Source code and Demo This post looks at another…
Build custom emojis with Stimulus
Recently I had to build something using the canvas element. Today I’ll show you how to build an interactive emoji composer using HTML Canvas and Stimulus. Click emojis to add them to a canvas, drag…
To test, or not to Test? Part 4 – Make it easy to test locally
I wrote code without tests that ran in production without defects, and I wrote buggy code with TDD (Test Driven Development). Time to look back at 35 years of coding and when tests help, and when…
Measuring HTML size and exploring why it might be big.
Extensions Get Chrome version Get Firefox version Intro This is a description for a tool to measure HTML and it’s tag “waste”. Main functionality is to measure how much tags (and…
Tokio Features and Compilation Size
The tokio crate in Rust is one of the most popular available—it enables an async runtime for Rust, which makes the async and await keywords useful. When using tokio, I found that I was using…
No, LLM is not going to replace software engineers, here's why
figure { text-align: center; margin: 0 auto; } figcaption, figcaption p { color: grey; font-size: 0.9em; } figure img { max-width: 100%; } Today, I’d like to share my theory about why LLMs cannot…
Why 128KB works
This is a reflection on what I have learned about the 128KB framework in the last two years, written on […] The post Why 128KB works appeared first on tim rodenbröker creative coding.
Spread calculations
Here is another addition to A QuantLib Guide: a notebook on various spread calculations.
treewide: Spell ASSERT() as assert()
The standard library assert(3), at least with glibc, hits our seccomp filter and dies with SIGSYS before it's able to print a message, making it near useless. Therefore, since 7a8ed9459dfe ("Make…
3 New RuboCop Style Cops: SelectByKind, SelectByRange, PartitionInsteadOfDoubleSelect
While upgrading RuboCop in one project, I noticed three new style cops in v1.85.0. I took a close look at them and my recommendation is to enable them all. Let's start. The 3 Cops The cops are: Style
OpenAI Codex with OpenCode -- My Experience After a Month
I think it is important to explain my perspective. I am not a professional software developer, but I do use OpenCode almost every day. I am not writing massive applications. I rarely hit the limits…
Vibe Coding, QWERTY, and US Healthcare - or: The Future of Software Engineering?
Vibe Coding, QWERTY, and US Healthcare - or: The Future of Software Engineering?Posted on 2026-03-18 20:45 by Timo Bingmann at Permlink with 0 Comments. Tags: #ai #codingSummary (TL;DR)Why is…
Why Focused AI Agents Get Better Coding Results
Learn why focused AI agents outperform generalists. All about why tokens, context windows, progressive disclosure, and splitting planning improves results.
Rob Pike's 5 Rules of Programming
I like the last one: Data structures, not algorithms, are central to programming. or its alternative, as also mentioned there: write stupid code that uses smart objects
Rethinking BitNet STE: The torch.compile-Friendly Design Torchao Uses (And Its Trade-Off)
We replaced a monolithic autograd.Function wrapping all of BitNet's ternary quantization with a minimal _STERound (STE only on round()), mirroring torchao's design — enabling full torch.compile…
Eliminating 3x QAT Overhead with torch.compile and Custom Autograd
We traced a 3x training slowdown in a BitNet b1.58 quantization-aware training layer to ~25 unbatched CUDA kernel launches and autograd graph bloat, then recovered most of the overhead with…
Updates to Australian Cycleway Stats
Australian Cycleway Stats now compares cycleway length per resident and per sq/km - comparing Australian councils with world-leading cities. This tool remains AGPLv3 open-source. The post Updates to…
Guest Lecture at Boston University — Teaching AI Trading from Singapore via Zoom
I'm guest-lecturing via Zoom at Boston University on AI trading with my co-authors — here's what we're covering and why it matters. The post Guest Lecture at Boston University — Teaching AI Trading…
Chromium’s `span`-over-initializer-list success story
Previously: ["`span` should have a converting constructor from `initializer_list`"](/blog/2021/10/03/p2447-span-from-initializer-list/) (2021-10-03). This converting constructor was added by…
Wrappa IoT demo: BMP280 environmental monitor with Node-RED and I²C
The first video covered what the Wrappa system is and how setup works. This one answers the more important question: can you build something useful with it? I connected a BMP280 temperature and…
Now
Professional #I am currently a Product Engineer at incident.io in the AI team, helping build the tool that helps engineers fix production faster.
An agent chat turned into a skill, and then it QA'd itself
I had a simple index.html page, a marketing site for a client in Spanish. They asked an English version too, so I opened the chat to Claude’s Opus 4.5 model and asked it to create a near-identical…
My Gramps genealogy workflow
A few years ago, I was seized by the sudden, irrational, and self-destructive urge to learn more about my family history. The software I've been using since then to construct my family tree is…
Adding Text-to-Speech (TTS) to my writings
I recently wrote a five-part series about rebuilding my personal website — migrating from Jekyll to Hugo, redesigning the layout, translating everything into Spanish, optimizing for mobile, and…
Diary Day 2 to 5: Behind the scenes of building my personal agent from scratch
A build note on designing a very thin, voice-first iOS interface for my personal agent, and why tailored software is becoming more accessible.
Using a Custom Include as Your Homepage
By default, your Pure Blog homepage shows your latest posts. You can also set a regular page as the homepage via Settings, but sometimes you want something more custom — a hand-crafted landing page,…
A great first launch week
It’s been just over a week since we launched Obra shadcn/ui Pro. Thank you to everyone who purchased a license — we’re pumped and ready to make the kit even better. What’s next With the launch behind…
Reboot
I built a browser game called Reboot . You lead a small group of survivors through six eras of rebuilding civilization, from scavenging supermarkets on day one to reinventing the printing press. 36…
How to Stop My Agent from Getting Me Fired
My AI agent has access to my email and Slack. Here are four tactics I use to stop it from sending a career-ending message — from system prompts to deterministic hooks, LLM-as-a-judge steering, and…
Warsaw IT Days - From RAG to AI Agent & LLMs That Think: Demystifying Reasoning Models
Announcement. For "From RAG to AI Agent": recording, Colab Notebook, archive folder. For "LLMs That Think": recording, slides, archive folder. At the Warsaw IT Days I gave two talks. In the first,…
PicoClaw on a Raspberry Pi 3b+
In my first post of this series I installed OpenClaw on a Raspberry Pi 3b+ . It didn’t go too well, but I mentioned that I wanted to see if one of the other less resource-hungry Claws could run on…