Posts whose title or text contains one of these words are left out of every view.
Whole words only: ai catches "AI-generated" but not "openai". Add a star for word beginnings: llm* catches llm and llms.
99 words is the limit
https://patrickdesjardins.com/blog
27 posts · 5 Votes
Tech 93% · Culture 4% · Life 4%
Subscribe via RSS
The ended with one open item: while audio played, the window used about one core, mostly drawing the animated connections on the canvas. I wrote that it deserved its own measurement before anyone touched it. This article is that measurement, plus what came out of the long runs I did afterward. Eve…
I built AudioRouter so I could route Windows audio by drawing a graph instead of maintaining a pile of hidden mixer settings. The next useful step was making that graph available to an AI assistant through the Model Context Protocol (MCP). MCP is the part that lets an AI discover tools and call them…
I noticed something odd while was running my streaming route: Task Manager showed the window using between 800 MB and 1 GB of memory. For an app whose job is to move audio from a microphone to Discord, that was high. The Rust backend handling the audio was under 30 megs. Nearly all of that memory w…
The first three AudioRouter posts talked about how the project got built and what it does. This one is about the part I get asked about the most when I show it to other developers: the backend. How a UI, a command line, an AI assistant, and an optional REST adapter all end up calling the exact same…
is not a simple app. It manages real-time audio on Windows, a domain where the operating system itself does not make things easy: shared vs exclusive WASAPI modes, driver boundaries, clock drift between devices, a callback thread that is not allowed to allocate memory or wait on anything. On top of…
I have been using daily for my own streaming and gaming setup for a few weeks now, and I wanted to show what it actually does instead of how it was built. Here is my current workflow and a tour of a few of the audio tools: width="100%" height="500" src="https://www.youtube.com/embed/3--AnDZZXzA" fr…
I recently worked on a background job written in Python. It takes many ordered lists of items and combines them into a single ordering, with a measure of confidence for each item. In the real container, a job with 2 lists of 100 items took 15 minutes. Today, that same job finishes in 50 milliseconds…
Back in September I wrote about , a Windows audio router built mostly in Rust with a React canvas on top. That post was written two days into the project, while the agent was still running. AudioRouter is now on its , and now that it is actually done, I want to go back and give the real numbers on w…
I have the habit of sending quickly message and only noticed the tone a minute later when it was already read. already proved that TypeSafe AI's Jev model is fast enough to sit in a save-triggered loop for code review, so the next question was: could the same model catch a bad message before it goe…
Writing 480 rules for only matters if the rules actually get checked at every point where code changes, not just the one moment I happen to be staring at the editor. So this round wasn't about growing the rule corpus further, it was about making sure the same rules apply everywhere code shows up: w…
I wanted a way to catch coding-rule violations the moment I introduce them, not three days later in a PR review. So one evening I sat down with Claude Code and built a real VS Code/Cursor extension for it. What surprised me most wasn't the idea, is that by using Jev I could run locally by hitting sa…
I previously wrote about [TribeMarkets' self-fixing production loop](/blog/building-tribemarkets-with-ai-architecture-and-self-fixing-production): a scheduled GitHub Actions workflow that reads grouped errors from Bugsink and, under a long list of guardrails, prepares a draft pull request for a repe…
I have been running for a while now, my experimental, local-only coding orchestrator. The idea is simple to state and hard to earn: route a prompt to a small local model that has been specialized for the task instead of always reaching for a large general one, keep everything on my own GPU, and onl…
I have been experimenting with a new project called , and the process behind it says more about where AI-assisted development is heading than the project itself does. AudioRouter is a Windows application that routes, modifies, and configures system audio, in the spirit of tools like and , but with…
This week I worked on **oktopai**, an experiment in local coding specialists. The idea is simple: use a stronger model as a teacher, use compiler-verified examples to train a smaller student, and eventually load the right specialist only when it is needed. The important part is the word *verified*.…
I am experimenting with an idea called **oktopai**: instead of asking one small local model to know every programming language and framework, can I keep several focused specialists and load the right one when it is needed? The first specialist is TypeScript. The goal is not simply to make a model so…
The most interesting local-LLM idea to me is not finding one enormous model that can do everything. It is building an orchestration of models and letting a local orchestrator choose the right one for each task. That is the idea behind **oktopai**: an experimental, privacy-preserving coding orchestra…
I have been building as a small but serious experiment: a private, play-money prediction-market platform where communities create Tribes, open markets, stake internal credits, and resolve outcomes. The interesting part is not only the product. It is the way the product is built. I am using AI throu…
AI has not just entered the workforce. It has begun speaking for it. Over the past two years, the rise of large language models has transformed how we work, far beyond coding. People now turn a few lines into pages of documentation, which others then use AI to summarize, critique, and challenge. The…
In the two previous blog posts and in , I discussed the impact of AI on software development and experimented with a new way of developing software. In this article, I'll discuss my conclusions after three months of using several different approaches. The last three months have been interesting, es…
A few months ago, I and within a few weeks I was taking page after page of notes using . I initially liked it, but I missed taking notes with a pen. Something about scribbling, annotating, and illustrating my thoughts helps me focus and retain better than copy-pasting or typing. When I was doing my…
The web was built for humans using a browser. APIs were built for developers who read documentation. Both scenarios never anticipate autonomous agents that must reason about what to do next. As LLM agents increasingly interact with services, a question emerges that few people are addressing directly…
I will argue that generating documentation with AI is useful, specifically the kind that lives as dedicated documentation files in folders alongside the code, and specifically for business logic and architecture. My thesis is that this documentation is valuable because it serves humans and AI agents…
I wrote in , , , and about TypeScript and private functions. Eleven years later, I still believe that relaxing encapsulation to ease testability has the best return on investment (ROI). In this blog post I will argue that separating classes and interfaces preserves a portion of the encapsulation wh…
I recently visited and noticed a simple idea that I liked: comments do not need to live inside the website database. They can live on the social web, and the website can point to the discussion. For a static website, this is appealing because I do not want to run a comment server, to moderate a loc…
I recently moved this website away from NextJS as the static generation engine. The site was working, but it had become heavier than what I needed. Most pages are static. Most content is markdown. The build was doing a lot of framework work for a problem that had become much smaller than the framewo…
I built an audiobook machine for my daughter in January 2022 using a Raspberry Pi and RFID cards (). In early 2026, I built a second version for my son using an ESP32 and a TFT display (). Over time, I wanted to replace my daughter's original device because the RFID cards became cumbersome whenever…