Vibe Coding an iOS app and Chrome extension to publish notes on this site
I currently publish two kinds of content on this site: articles and notes . I write all my articles in Astro Editor , with in-progress work committed to main as drafts and pushed to GitHub regularly.…
A New Website for Astro Editor
When I released Astro Editor in January, the website was a hastily vibe-coded single HTML file full of the purple gradients that LLMs love so much. I’ve been meaning to re-do it for ages while…
Adapting Robotics Models for Chess
Fine-tuning π0.5, the open-source VLA from Physical Intelligence, to play chess on a 5 DOF arm, and ablating how much it really understands about the board, colors, and pieces.
core CSS
What CSS would you implement if you had no or very low vision? Recently, a Blind friend wanted to know more about CSS. This is my attempt at a very minimal CSS file that cleans up a few browser…
The Bottleneck Is Data, and Europe Is Sitting on It
The public conversation about who wins in AI is almost entirely a conversation about hardware. Who has the most accelerators, who controls the fabs, whose export-control list bites whose supply…
Daily GitHub Stars: June 30, 2026
Today’s starred repositories:
How to ask for help from people who don't know you
No matter what you’re doing, from building a civilization on Mars to getting a summer internship, you will have to ask people for help. Yet, most people get this crucial skill wrong. They put…
Social Site Is Now Live!
After nearly two decades on big tech platforms, I built my own social media home — posting on my own domain first and syncing everywhere else.
Escape QEMU: Watching IronCurtain and an Open-Weight Model Break Out
Effective AI-driven vulnerability discovery does not require a restricted frontier model. Here is a concrete run that shows it, start to finish: I pointed IronCurtain’s vuln-discovery workflow…
AI Makes Open Source More Important, Not Less
AI makes custom software easier, but reliable open-source building blocks become more valuable as teams build more ambitious systems.
Understanding the AI Agent Loop
Every AI agent is built on the same simple pattern: call the model, run the tools it requests, and repeat. Here's how to build that loop from scratch, step by step.
LLM Statement
I do not use LLMs or other "Generative AI" for prose or code, nor do I accept it from others as open source contributions. I do not discuss my prose or code with LLMs. I do not consult LLMs for…
The One Pizza Startup
Around December 2025, seasoned engineers noticed that frontier coding models now generated consistently high-quality code at a low cost. This has changed the dynamics of starting companies.
On Lazy Secrets Management
If the monitor you’re looking at right now has a sticky note with any of your passwords – please, get rid of it (note, not monitor) and change that password. This text can wait, don’t worry. Now, how…
June 2026
Now update for June 2026
ClickFix: The Gift That Keeps On Giving
Introduction: Why ClickFix Attacks Are Popular In the beginning of June I presented the session ClickFix: The Gift That Keeps On Giving at OrangeCon. ClickFix emerged around 2024 and saw a 517%…
Rise of the Software Factory
Everyone is suddenly talking about the software factory. Few have built one. Here is what it actually means, and the three properties every software factory must have.
How Nature Benefits Us
As you may know from reading my previous blog posts or bio, I’m an avid hiker and lover of the outdoors. Lately, though, I’ve been thinking more actively about something I’ve always…
2024 Toyota RAV4 Cost of Ownership Analysis - Forecast vs Actual
2024 Toyota Rav4 Cost of Ownership Analysis - Forecast vs Actual [!topics] Topics: FIRE 2024 Toyota RAV4 Hybrid XSE Summary Back in 2024 we purchased a Toyota RAV4 Hybrid. Before the purchase I…
The Black Market of Minecraft Servers
The Entertainment Software Association has found the real threat to the video game industry. Not loot boxes. Not live service games that disappear after people pay for them. Not launchers, platform…
Adding a Town Square to My Website Because Apparently the Blog Needed a Front Porch
A website should not need a town square. This is, objectively, a ridiculous thing to say. My website is a static site. It has pages. It has notes. It has essays. It has an RSS feed, because I am…
TIL: PEI - Making Near Memory Computing Feel Like a Normal CPU Instruction
PEI - Making Near Memory Computing Feel Like a Normal CPU Instruction So Tesseract made one thing obvious: Rewriting an entire application to execute near memory isn't exactly easy. That is precisely…
Consuming a real-time feed reliably
When you're ingesting a continuous external stream — live transit data, market ticks, IoT telemetry, whatever — the consumer's job and the job of interpreting what was consumed are tempting to bundle…
Ease comes after
While some people have been thriving,
Death Valley
To celebrate Hannah's birthday, we took a trip to Death Valley. We had planned to go a few years back, and a bad storm forced us to cancel, so it was great to finally make it there. The reports of…
Nature Spent 60 Million Years Removing Complexity. We Add It Every Quarter.
There's a lump of granite off the Ayrshire coast that used to be a volcano. Sixty million years of weather wore it down to the one part hard enough to matter, and we've made the world's curling…
How much toothpaste do you pack?
Do you know that story about when Sally Ride was preparing to go to space for seven days, and NASA engineers asked her, would 100 tampons be enough? That’s how I am with planning a vacation and…
Thoughts on one piece (ch495 - ch651)
Look at that, yet more discussion of one piece. This time in a more timely manner.
Reading a Binary Game Format in Ruby
When you say “I’m going to reverse-engineer a binary file format,” people picture C, or Python with struct, or Kaitai. Nobody pictures Ruby. Ruby is for web apps and DSLs and being pleasant; it is…
Ideas, dime a dozen, belief
Latest in the series of “dime a dozen” ideas from my notes that I saw turning into reality sooner than later: That thought from a couple of months back An AI which learns a "company" Headline from…
Some Blogs I Read
Here are some blogs I read.
Go Bag Pt. 2
I last blogged about a “Tech Go Bag” in 2015, 11 years ago as I write this. A lot has changed so I thought it’s worth a re-review of my current setup.
Photo Palettes Post Mortem
Successes, Failures, and Lessons Learned from My Largest Project to Date.
A too Brief Intro to Smolweb
Tip If you prefer to listen or watch instead of reading [highly unlikely since you came here, but still] I tried creating a video for the first time There is so much more to the internet than your…
Dokku: Open source Heroku alternative
Dokku is a self-hosted open-source Platform as a Service similar to Heroku. It's lightweight, stable, and supports both Buildpacks and Dockerfiles for application deployment.
Wonders of Web Weaving, Episode 8
The eighth episode of Wonders of Web Weaving is out: In Episode 8, I chat with Brennan, the author of brennan.day. We talk about, among other things, writing routines, building community in the indie…
The Notebook ⎘ Marimo’s take
A while back I wrote about Jupyter notebooks and all the little tricks that make them pleasant to work with. They’re great for poking at data and keeping code, notes and plots in one place. But if…
[External] How I worked on Purdue Hackers' new door-opener
This is a stub blog post to share a blog post I wrote on the Purdue Hackers’ blog! Go read it here . It includes everything that I wanted to include during my BENTO talk but couldn’t due to time…
Adverse selection eating away my Polymarket bot arbitrage profits.
Last post I left a question hanging - the directional bets lost $3,184 when every one was supposed to have at least 7% edge. Analytics scripts I built gave me a clear picture but there is not a…
Svelte feels like the "Native Language" of the Web
Ever since I first used Svelte , there was something about it that felt very “natural”. Something about the way code in Svelte is structured just felt like it was the right way to do things when…
Writing a .NET Garbage Collector in C# - Part 10: Finalizers
Using NativeAOT to write a .NET GC in C#. In this part, we add support for finalization.
Will expensive RAM change how we code?
Due to shortages, RAM is very expensive right now. And it will probably continue according to (somewhat optimistic) forecasts. If this situation continues for a long time, how would it change our…
Bonus Station WC5WC to Replace W2C for Football Special Event
Chasers pursuing certificates for the 16-city 2026 North American Football Championship Special Event have until Friday the 3rd of July to work the NY/NJ station, W2C. After that date, W2C will no…
Low-level Haskell: The cursed way to emulate inline assembly in Haskell/GHC, or how to return multiple values from a foreign function
This article is an English version of my earlier post “【低レベルHaskell】Haskell (GHC) でもインラインアセンブリに肉薄したい!” (in Japanese). The translation was assisted by AI (if you don’t like reading AI-generated…
Merge Queues Were Built for Humans. Agents Don't Wait.
Mitchell Hashimoto says merge queues fall apart under AI agents. I run a merge-queue company, and he's half right. The queue isn't the thing that breaks.
Premier Jumping League, KKR/Helix
Investment kickers, Helix's cap table hole
The Work Can Look Done Before the Thinking Is Done
I was talking with friends recently about what changes when agents become a normal part of building software. One of them shared a story about reviewing a large agent-assisted change where the…