OpenAI to Acquire Astral
OpenAI announced today that it will acquire Astral, the company behind uv, Ruff, and ty. The Astral team will join OpenAI’s Codex group after the deal closes, subject to regulatory approval.…
One Year with AI in Production: The Autonomy Myth and What Actually Works
AI agents won't ship features while you sleep (yet), but they will change who can contribute to your codebase
Radix Trees Are Everywhere
I had no clue what a radix tree was until I started digging into SGLang, an inference server everyone claimed was “memory-efficient.” I ran it, read the docs, saw them throwing around “chunks” and…
~acp2ollama~ in Emacs for fun and profit
A hands-on look at using acp2ollama to connect ACP agents to Emacs packages that speak the Ollama API — with results ranging from 'works great' to 'probably don't bother.'
From Commerce to Campus: A New Stack, A New Purpose
After fifteen years of founding companies and scaling commerce platforms, I'm now a software architect at FernUni Hagen, building a Learning Analytics data platform that helps students succeed, with…
Ruby Deserves Beautiful Documentation
The Ruby community doesn't have a great documentation theme. So I made one. Jekyll VitePress Theme brings VitePress's docs UX to Jekyll.
That curious Layout behavior
There’s a fascinating behavior in SwiftUI with the Layout protocol. A Layout is not a View. When you create a Layout, you size and place views, but you don’t declare a body. And yet, it’s perfectly…
The last two years with AI tools: what changed, what didn’t
After a year of AI-assisted development at a real web agency: what genuinely helps, what's overhyped, and why software engineering matters more than ever.
Consensus Board Game
I have an early adulthood trauma from struggling to understand consensus amidst a myriad of poor explanations. I am overcompensating for that by adding my own attempts to the fray. Today, I want to…
my first patch to the linux kernel
How a sign-extension bug in C made me pull my hair out for days but became my first patch to the Linux kernel!
Adding Counters & Traces to Unreal Insights & Stats System
The only sane way to optimize your game is by having good profiling metrics in game code. Unreal Engine comes packed with several good profiling tools and the Stats System (controlled by Stat…
Your --help was the ugliest screen in the app
Kong parsed my arguments for four months. It worked fine. It also didn’t generate shell completions, so micasa had none. And --help was plain monochrome text next to a TUI with a color palette…
The associations people make
A silly story is easier to remember .octo-canvas-wrap { width: 100%; overflow-x: auto; overflow-y: hidden; -webkit-overflow-scrolling: touch; margin: 2rem 0; } .octopus-graph { width: 600px; height:…
The best engineers just get shit done, sometimes with AI
The best engineers I know never talk about their AI setup. The worst engineers I know only talk about their AI setup.
On using spec-driven development and agent swarms
I've been experimenting with specification-driven development (SDD) using GitHub's Spec Kit on some greenfield work as well as for some long-open issues on a couple TypeScript projects I maintain at…
Use your own domain for your code forge hosted Go modules
If you have a domain name, you possess (ok, rent) your very own little corner of the internet. Congrats! When you now publish a Go module as github.com/jo-m/mymodule, you hand over part of that…
PHPUnit 13: Managing return values for parameter sets
Learn how to simplify your testing workflow with PHPUnit 13's latest features. This post covers a key improvement: easily mocking multiple method calls with varying parameters.
Building chef-py: Replacing Chef with Python
Introduction # I’ve been using Chef for server configuration for a while now. It works, but there’s always been friction. I don’t write Ruby anywhere else, so every time I need to…
Transformers as Constrained Optimization
Rewriting a pre-norm decoder-only transformer as a mixed-geometry constrained splitting scheme: RMSNorm as radial gauge fixing, attention as an entropy- or KL-constrained simplex solve, and residual…
Every layer of review makes you 10x slower
The truism in the title tells you all you need to know. I’ve been pondering this question lately (to review or not to review?) and I think this post lands a series of sensible points. Worth a…
I Handed Off Maintenance of My Chrome Extension to AI
About one year ago I wrote about a chrome extension I created called reject-cookies. The basic premise was that it automatically rejects cookie banner pop-ups, saving you a couple tedious clicks. The…
More tools to train your team
Another month, another Shira release. After releasing private quizzes last month, we're expanding on the new feature with two major improvements: more detailed Results and bulk user upload. More…
hledger and AI: Managing Your Finances in Plain Text
I was scrolling through YouTube late one evening when a video on plain text accounting caught my eye. It immediately clicked. I’ve been managing my finances with a patchwork of Excel spreadsheets for…
Apollo v1.0 - The Launch
T-0s, we have lift off.
Write Skills Like Workstations, Not Prompts
Claude Code skills work best when you treat them as workstations, not prompts: folders with scripts, gotchas, templates, and progressive disclosure that manage the agent's attention budget at runtime.
18 March 2026 Artifact Wave
Here is what we got as new Jetpack artifacts this week!
fix "the dependency requires Elixir ~> 1.16 but you are running on v1.14" on Ubuntu
Ubuntu 24.04 ships Elixir 1.14 & OTP 25 but the Phoenix dependency tree requires 1.15+. Here's what to do about it & why Ubuntu 26.04 fixes everything.
CNN Build - Weight Init Rabbit Hole
Context — What I was trying to do mid implementing cnn from scratch , got to weight init, hit the question which to use - He or Xavier, also why to use them in the first place and how ReLU is related…
Why I'm Building an Open Source Alternative to Basecamp
I remember the exact moment I realized the traditional SaaS pricing model was broken. We had just landed a new client at the agency, and we needed to bring three of their stakeholders into our…
Extropians Archive (with OpenAI embeddings)
Claude & I vibecoded an interface for the extropians mailing list. It’s live! Have a look here: extropians.boydkane.com/.
Teaching Your AI to Use Your Component Library
AI coding assistants keep hallucinating EUI props. You paste in documentation, it gets ignored thirty messages later. You end up debugging code where half the props don't exist. The fix is an MCP…
Read Less, Steer More
I was coaching some juniors on effective use of AI coding agents (like, looking over their shoulder as they were prompting the LLMs) and one reoccurring theme was that the AI agents were demanding a…
Getting Ziggy With It
It is possible that the next Factor release will be re-implemented in the Zig programming language and be faster in many cases compared to the current C++ VM. As a reminder, we have had several…
Building My Understanding of AI From The Ground Up
I’ve been circling the AI bonfire for about a year and a half now. Built inference infrastructure, wrangled CUDA kernels, sweet-talked MPS into cooperating on my Mac, deployed LLM serving pipelines…
The DCO Debate: Who Is Responsible for AI-Generated Code?
AI-assisted development is already a reality, and the open source community is coming together to figure out how to manage it. Many major projects and organizations now agree on a few key ideas:…
Two things I did not know
I have a wordpress website and develop bespoke functionality for it on my local PC before uploading the final code as a plugin zip to production. I use VScode remote containers and mount the plugin…
Bamboo Weekly #162: Spotify and car accidents
Get better at: Combining files, dates and times, grouping, joining, correlations, and plotting
Third time's the charm: building a low-latency realtime database
When I set out to build Lark -- a Firebase Realtime Database alternative -- I had one non-negotiable requirement: predictable, low latency. My goal was to keep internal p99 latency at less than 50ms,…
Process Is a Tool, Not a Virtue
Process is one of those topics that reliably creates tension in growing engineering organizations. Too little of it and everything feels chaotic. Too much of it and nothing moves. Most teams I work…
A different way to interact with Claude
We’ve all been using Claude via the prompt, and some have even ventured into running claude --dangerously-skip-permissions in a nice sandbox like avsm/claude-ocaml-devcontainer.
2026-03-18-001
A small #Emacs #OrgMode quality-of-life tweak. I often need to replace an org heading's title while preserving the original text in the body. The problem is that pressing enter on a heading inserts a…
oooo
Skip the read, download the plugin here: oooo.audio. I love the process of creating tape loops for musical performances. It provides an assymetry, it keeps things off “the grid” and…
I Built a Tradier CLI Because AI Agents Deserve Better Tools
I've been trading options through Tradier for years. Great API, solid brokerage, reasonable pricing. But as I've shifted more of my workflow into Claude Code and terminal-based AI agents, I kept…
iOS app launch process: from tap to first frame
Greetings, traveler! There is a moment every iOS engineer has experienced but rarely examined in detail. You tap an app icon, and within a fraction of a second the interface appears, already…
The Claude Certified Architect: What It Means for Forward Deployed Engineers and Enterprise AI
Table of ContentsIntroduction: The First AI Certification That Actually Tests DeploymentWhat the Claude Certified Architect Certification Actually Tests2.1 The Five Domains2.2 Scenario-Based…
Small Models for On-Device Text Classification
LLMs are powerful classifiers, but they require API calls, cost money per request, and can't run offline. This post explores the landscape of small models, from bag-of-words to transformers to…
Blog | Random weighted sampling in a hurry
How to choose a random element using weighted sampling.
Isolated Development Environments for Agentic Development
Branches and worktrees isolate code, but not services. In the age of agentic development, that gap becomes a real problem. Here's how combining Git worktrees with OrbStack VMs gives every agent its…