Surprised LLM
I know that LLM or Large Language Models are designed to mimic what people write, but still from time to time it surprises me and make me chuckle. I am working on small tool that runs agents in…
Git for Network Engineers, Part 4: Going Pro
So, your runbook repo is now shared. Three of you commit to it, the playbooks get used in real change windows, and last Tuesday somebody pushed broken YAML straight to main without anyone noticing.…
Who Fills the Sprint? My 45/45/10 Split
Every project has way more things to do than resources allotted. That is a given for pretty much any human endeavor. Figuring out what to work on is the interesting part. When it comes to software…
GitHub tokens for agent fleets — safe automation without paste-a-PAT
How to give coding agents GitHub access without long-lived PATs in chat: short-lived App tokens, a deterministic credential broker, personal vs bot identity, and fail-closed landing.
Top 10 Ways to Reduce .NET Memory Usage in Kubernetes
If your .NET pods are each using 1–2 GB of RAM, you may be leaving a lot of pod density — and money — on the table. Here are the first things I would look at. 1. Set Realistic Kubernetes Memory…
Git Links
Git Links is an unbelievably simple format for permalinks in the code. Imagine a file in your repo refers to mydoc.md:32. You specified the line because files can be large. But an edit to mydoc.md…
The Safeguards Have to Run · Two abandoned notebooks showed me the difference between a research rule and a working control.
This is Part 2 of The Machine in the Lab, a series about using an autonomous research program built from large language models (LLMs) to build SetScope, a live Goose song guesser. In the first…
AI coding tools unlock small software
I can now hand much of the mechanical work to an AI coding tool, then spend my time fixing the interesting parts. This has been my experience with vibe coding too. On the surface, my coding agents…
<![CDATA[Wheels within (mouse) wheels]]>
In the latest installment of why we can’t have nice things, I noticed that my markdown viewer of choice, md-tui didn’t support mouse scroll wheel handling… or did it? Running md-tui inside of Tmux,…
Kate is a better IDE than VS Code
Visual Studio Code was a reluctant adoption ages ago when I first tried it. Microsoft makes terrible software but VS Code was an exception. It seemed like they were warming up to opensource. Since…
When the Agent Ports Too Faithfully
When the Agent Ports Too Faithfully Vibe coding with an agent is great at producing working code quickly. It is also great at producing the wrong kind of fidelity: matching yesterday’s prototype…
More Blender VSE tidbits
Here’s a bunch of random things that happened in Blender Video Sequence Editor (VSE) since the previous blog post. For the full picture check out VSE related release notes of Blender 5.1, 5.2…
Dragoncatcher: Jarvising
You do have to actually make something. Read here.
The brief history of lsp_lines.nvim
Back in 2022, LSP implementations could find errors and other diagnostics in code and send them into the editor, but editors lacked good interfaces to actually present this. The best at the time was…
Graceful shutdown with HTTP and gRPC in Go
A quick example of how to do graceful shutdown of your gRPC and HTTP server in Go, particularly useful on Kubernetes.
GLSL, Shadertoy, Ai, and Zoe... oh my.
I have long been a fan of Shadertoy website, and the vast collection of computational animations made by people far smarter than I therein. This beautiful fractal-like animation is just 40 lines of…
BCC tools in a debug container
BCC - Tools for BPF-based Linux IO analysis, networking, monitoring, and more https://github.com/iovisor/bcc $ kubectl debug node/default-pool-3mrgkk --image debian -it --profile=sysadmin…
How to Set Up Pino Logging in Next.js
Replace console.log with Pino in your Next.js app: structured JSON logs, readable output in dev, child loggers and log levels per environment.
Introducing YeSQL: Practical PostgreSQL, One Concept at a Time
I’m happy to share something new: YeSQL is live, a free set of 24 short PostgreSQL lessons — one concept, one runnable query, real data, no signup. It’s free to use today, and it’s…
Copilot Connectors in Microsoft Search
In this article, I will go through some of the basics of Copilot Connectors in Microsoft Search, and how to get started with them. Background In 2021, Microsoft took the first steps in making…
Apple Foundation Models: Hybrid AI with Dynamic Profiles
Learn how to use Apple's Foundation Models framework with Dynamic Profiles to seamlessly route requests between on-device models and Google Gemini in Firebase AI Logic.
Nail it before you scale it
Nail it before you scale it The design philosophy underneath this entire series. Six posts in this series have described specific pieces of scaffolding: a protocol for challenge, shared evidence, a…
Classis Alpha Testers wanted
I’m gearing up to open Classis to alpha testers. It’s an Agentic Development Environment for macOS. Agent dashboard, terminal tab, git client with PR and issue support across GitHub,…
Agentic Playwright Is Now Open Source
You ask your AI assistant to write a Playwright test. It delivers instantly. The code looks clean, the review passes, you merge it. Two days later it fails in CI. You open the file and there it is: an
Malleable software = solid bases + custom code
In 2019 I bet on the no-code revolution. That bet aged so-so. Here is the new one.
Opening the black box: a year building an open compiler for the RK3588 NPU
A year on the Rockchip RK3588 NPU: from hacking a closed toolchain to run one vision encoder, to an open, extensible compiler and runtime that works from PyTorch, ONNX, and JAX.
OpenNPU v1.0: an open compiler and runtime for the RK3588 NPU
OpenNPU v1.0 is an MIT-licensed compiler and runtime that runs ONNX, PyTorch, and JAX models on the Rockchip RK3588 NPU through raw DRM ioctls, with no closed-source dependency. This report covers…
Enhanced Spell Checking on the Web
Here's some interesting stuff about browsers you might not know, and a new API proposal that might interest you...
Fun with FIFOs (and Minecraft)
Here is a little test you can do to play around with FIFOs (also known as Named Pipes) in bash. For setup, we run mkfifo test which creates a FIFO named test in the current directory. Then run cat -…
R Markdown and the DBA: charting average full database backup durations
DBAs spend time dealing with SQL Server performance, capacity, monitoring, troubleshooting, provisioning, etcetera; I’ve previously mentioned that R is a powerful, open-source language with a great…
Building with Papert at My Elbow
What a chatbot built from Seymour Papert's writings told me about the tool I was making — and what it wouldn't let me get away with.
The Machines Are Getting Cheap. The Toolpaths Are Not.
Desktop 5-axis CNC machines are arriving at sub-$10K prices, but simultaneous multi-axis CAM still costs 20-40% of the machine price per year. Buyers should ask harder questions, and machine vendors…
Reliable Query Prefetching with TanStack Router
Prefetching in route loaders is great, but comes at a cost. We have to keep loaders in-sync with components...
I Didn't Know Where My Keys Had Leaked, So I Started Building GuestSafe
After a compromised Mac and AI agents leaked secrets into session logs, I began building GuestSafe: a local, auditable alternative to .env.local.
Getting nerd-sniped into scraping my train's API
While checking if the train's onboard internet system had improved, I discovered an nice web-based dashboard showing my trip on a map fed with accurate real-time data. One thing led to another, and I…
Modernist Tiles with CSS Grid
A Modernist hydraulic tile floor, one motif rotated across the whole room, is something you'll find everywhere in Barcelona. Let's build our own in CSS Grid. Six real motifs, a whole floor of…
When Obfuscation Becomes the Signature: Static Analysis of a Go-Based Linux RAT
Warp/Wraith Linux RAT static analysis: Go binary with ELF section header mangling, oversized LOAD segment, and SSH credential harvesting. Detected without sandbox or dynamic execution — the…
CSS grid-lanes
Mixed-height cards go into the shortest column. Use columns: as the fallback.
Ninety-Two Posts as a Test Corpus
Auditing the archive produced something more useful than corrections: a labelled corpus of known-false claims. What we are building against it, what works, and what does not.
Everybody Guesses
I’ve watched the same mistake a dozen times over twenty years, and it never looks like a mistake when it happens. It comes in as progress. A team decides to clean something up and draws a diagram…
Modern, Stable APIs for Your Nextcloud Application
Nextcloud provides a large public PHP interface to developers to use for building their application. It is commonly called OCP. Some of big components of OCP are the HTTP stack with IRequest,…
My Day Job Is Unsupervising Agents
I gave my coding agents a Discord activity and accidentally made the scale of their work visible.
Your CI should be disposable
Your CI should have one job: scheduling. It should decide when to do the thing. Your builds itself, should be controlled by you. Use Docker, Nix, a Makefile or what have you. The ideal workflow file…
Extensible Software in the age of LLMs
Solid core + capability-based sandboxes + LLMs = Users with superpowers
Family Dashboard v3.34: Weather Readability and Six Months on the Kitchen Wall
How Family Dashboard v3.34 enlarges the weather summary text and removes the AI-generated commentary line — and what six months of daily use on a wall-mounted iPad teaches about readability, service…
A month ago I decided 'no background music.' Today I overruled that guy
I run a project where I make vertical short-form videos and ship them. Solo. Just me. I write the script, build the on-screen animation in code, lay synthetic narration on top, and burn in sound effe…
Building in the cloud with Codex, safely
A full pass at letting Codex build and ship a backend unattended: instructions, permissions, headless runs, self-verification against traces, and who decides what gets provisioned.
LINQPad, the scratchpad for .NET!
A long time ago (Before AI, before agentic engineering), we created code by hand. As a .NET developer, one of the most time-consuming things was crafting complex LINQ queries for the database. I’d…
Spell Checking for Your Projects
We all make typos from to time, and it is time-consuming to do this manually.