Building a Mac app with Claude code
How I built Context—a native macOS SwiftUI app for debugging MCP servers—almost entirely with Claude Code, and what I learned about building with AI coding agents.
How I built Context—a native macOS SwiftUI app for debugging MCP servers—almost entirely with Claude Code, and what I learned about building with AI coding agents.
Several days ago, DeepSeek released a new OCR paper. OCR, or “optical character recognition”, is the process of converting an image of text — say, a scanned…
Hi, welcome to my website! This is where I share my thoughts on things that interest me, mostly tech, philosophy, history, and math.
I’ve been programming for long enough to be righteously cantankerous about a lot of things. The list of languages, frameworks and libraries I’ve worked with professionally or on personal projects is too long to list – but it includes everything from C and assembly languages through C++, Pascal and Delphi, through Java…
Some time ago, I played around with decompiling Java class files in a more efficient manner than traditional solutions like Vineflower allow. Eventually, I wrote an article on my approach to decompiling control flow, which was a great performance boost for my prototype. At the time, I believed that this method can be…
You're probably reading this page because you've attempted to access some part of my blog (Wandering Thoughts) or CSpace , the wiki thing it's part of. Unfortunately you're using a browser version that my anti-crawler precautions consider suspicious, most often because it's too old (most often this applies to versions…
Blog about programming stuff.
I love C. I could give you rational reasons for that. Like the fact that it works everywhere and how it goes fast. But mostly I love C because when I write C I feel an intimate connection with my computer. To me, C has soul. In fact all my personal project are written in C, like the graphics rendering engines that I'm…
We have all been there. Your software keeps growing and you feel the need to make it customizable. It is too soon for a full-blown UI with all the bells and whistles, so your pragmatic instinct suggests a text-based configuration file. Yes, that’s exactly it! You rejoice knowing the software’s configuration will be…
A long time ago, I spent a few years working on garbage collection in the J9 Java VM. 1 And even though I’ve since done mostly done higher-level stuff, having a deeper knowledge of GC has continued to come in useful.
the psql client version 18 comes with pipelining, which can speed up client-server communication. In this post, let's see how it works and how much can be g...
The neuroscience of why we make million dollar decisions based on identity, not data.
For one of my network storage PC builds, I was looking for an alternative to Flatcar Container Linux and tried out NixOS again (after an almost 10 year break). There are many ways to install NixOS, and in this article I will outline how I like to install NixOS on physical hardware or virtual machines: over the network…
Building a Tamagotchi-style language learning iOS app with SwiftUI character animation - on drill design, motivation loops, and where Duolingo gets it wrong.
DevOps Engineer and Full-Stack Developer with 4+ years of experience in cloud infrastructure, CI/CD, and scalable web applications.
I wrote a small LSP client, it was kinda neat so I’m sharing it
Years ago, I maintained a big C++ codebase at my day job. This product was the bread winner for the company and offered a public HTTP API for online payments. We are talking billions of euros of processed payments a year.
Missing the Forest for the Sequence Trees.
You can use CSS to add some simple functionality to HTML <dialog> elements!
The Great Pyramids took decades to build. It was a monumental feat of human ingenuity and collaboration. Today, we software developers erect our own pyramids each day - not from stone, but from code. Yet despite far more advanced tools, these systems don’t always make the experience better. So why, when KISS (Keep It…
libexpat is a fast streaming XML parser. Alongside libxml2, Expat is one of the most widely used software libre XML parsers written in C, specifically C99. It is cross-platform and licensed under the MIT license .
OOXML is less an act of sabotage than the continuation of a flawed, inelegant lineage.
About the fatal perils and traps of many modern tools that handle "shell commands" as passed through `system(3)` or `sh -c`. Or, how by the end of 2020, we still haven't given up on shell's equivalent "SQL building", or how shell's equivalent "SQL injection" still thrives in our engineering world... Plus a `glibc`…
Learn about rate limiting algorithms with interactive apps, including Token Bucket, Leaky Bucket, Fixed Window, and Sliding Window methods
I first ran into Forth about 20 years ago when reading a book about designing embedded hardware . The reason I got the book back then was to actually learn more about the HW aspects, so having skimmed the Forth chapter I just registered an "oh, this is neat" mental note and moved on with my life. Over the last two…
Implementing the famous donut.c animation in actual silicon using CORDIC and ray marching
first – previous
Logic vs language: how a Turkish alphabet bug played a years-long game of hide-and-seek inside the Kotlin compiler
TLDR: I wanted to generate an up-to-date disk image for a Rock Pi 4 using Yocto that included CUPS and Docker to both get a better understanding of Yocto …
Realtime features make apps feel modern, collaborative, and up-to-date. The features predominantly require sharing changes triggered by one user to other …