Frontier labs are subsidizing AI usage, and we’d be fools not to use it to improve the state of open source while that holds out. 
 How are whales like frontier labs? 



 
 
 
 
 Aside 
 
 
 Arguably, whales are more like the institutional investors in frontier labs, but that’s neither here nor there.
 
 
 
 
 A whale…
One of my colleagues through the Recurse Center community posted their thoughts on using AI to contribute to open source , and it got me thinking a bit and goaded me into writing this post. 
 It feels like open-source projects are losing the plot–for both good and bad reasons–on AI contributions, and it really sucks to see it. 
 Some examples from the wild 
 In January of…
Introduction 
 AI agents with large tool catalogs need better tool routing that factors in observed usefulness under real conditions. 
 I introduce Millwright as an approach that presents fewer and more relevant tools during planning, learns from agent experience, and uncovers new tooling opportunities. 
 Millwright helps your agent choose better tools over time based on experience.…
I met my friend Ellem a few years ago. 
 She was friendly–irritatingly so, at times–and always eager to please. She was well-read, though she didn’t always seem to understand the nuances of what she’d read and often just parroted what the CliffsNotes version might say. She was a mediocre developer, but she always came up with something I could muddle through and even…
As discussed previously , for gremlins there are three important thought-like functions: 
 
 Cogitation : the act of planning. 
 State : the act of storing a plan and the information adjacent to it. 
 Actuation : the act of executing a plan. 
 
 The same basic runtime architecture can accomplish all three things. 
 The most basic gremlin 
 
 Start 
 Run…

 

 
 

 
 
 
 
 
 
 
 
 
 
 
 
 

 
 
 
 Don't say that he's 'hypocritical', say rather that he's...'apolitical'. 
 

 
 Many technical spaces have become extremely partisan, and this has lowered their utility for all parties. This is not a new phenomenon–in recent times you can look…
Things are getting weird. Really really weird. 
 In the past few weeks we’ve had: 
 
 The creation of Reddit for agents (which I slopped a full client for in less than ten hours! ) 
 The creation of a human rental service (a tremendously bad idea if you’ve ever read Daniel Suarez’s Daemon ). 
 An agent getting into a shitfit on Github over a closed PR 
…
The craftsmanship and engineering behind software development have never been in greater danger–nor seen a greater chance at a renaissance–than they do now. 
 genAI use, whether in the form of discussion with ChatGPT’s web interface on SQL or in the purest yolo form of near AI-psychosis we see with Gas Town , has spurred our industry to look at itself in ways that we really…
Once upon a time I got a 5-bay QNAP, and all was well until it got sulky and one of its SATA connectors decided to give up on life. Drafted in its stead, I’ve had a ZFS NAS setup for ages–going back to Fall of 2019. 8 x 4TB drives, Norco ITX-S8, 32GB ram, Ryzen 2400G, nothing too fancy. NixOS, ZFS with raidz2, great. 
 I ran a handy little tool I slopped up and lo-and-behold all…
I’ve got a small handful of packages on Nixpkgs that I maintain. When I was starting out, I didn’t really know how to do any of that, and was fortunate enough to have some friends onboard me. In the spirit of giving back, I’ll walk through how I do an update pass today on a simple package, and give some background information on how to make it easy. 
 Workflow of updating a…
Every community has some amount of bozo behavior. 
 Past a certain point, the number of bozos in a community exceed a healthy carrying capacity, and will crowd out or drive away sane and healthy members. No community is without some amount of bozos but it’s easy to find yourself at a circus without realizing it until the clown car pulls up. 
 Here are some questions to help score…
Introduction 
 
 apologia , n. – a defense or justification of one’s beliefs, attitudes, or actions.
– Webster’s College Dictionary 
 I’m getting a bit tired of reading (what I consider to be) increasingly reflexive, dismissive, and (frankly) lazy objections or dismissals of what is broadly now termed generative AI–often abbreviated to just AI (a…
Bit of a shower-thought today, a continuation of something that’s been rattling around in my brain for a minute. 
 I think there’s a helpful way of thinking about what I consider to be a core belief spectrum in engineering (and indeed, other fields, but let’s set that to the side for the moment), and that by naming and describing it we can come up with a lens that helps us…
I think there’s a much better way of thinking about and referring to what we call “vibe coding”–which quite unfortunately is not at all what it sounds like (warning, sorta NSFW)! 
 I also see an opportunity to be more open-minded about other applications of generative AI when done in concert with an artist. 
 In this post, I’ll suggest a better terminology and…
Moving over 
 One of my goals for my sabbatical since last November has been upgrading my blogging infra.
This is now done. 
 I went from an old (read: Ubuntu 19 or so?) VPS running Nginx hosting static files generated by my Zamrazac static site generator to a NixOS 24.11 VPS running Nginx hosting static files generated by Hugo with a slightly-modified Poison theme (as well as…
Embattled. 
 One word, neatly conveying my experiences of world and of self for near two years. What follows are pieces, images, moments, reflections–some absurd, some short, some glib, some pretty awful–on a truly bizarre time in my life. 
 The timeline is, to my recollection, monotonic. I cannot be certain of all, most, or perhaps any of the dates. 
 
 1. 
…
Introduction 
 I’m working on a bookmark manager, and one of the minor features I want is to import all my old Firefox bookmarks. 
 This adventure has been…an adventure. 
 At least one other person has tackled this problem over in Node, but I’m taking stabs at it in Elixir because that’s kind of my schtick. 
 On Mozilla exports 
 From Firefox you can…
Introduction 
 Finished Cory Doctorow’s 2017 Walkaway: A Novel today. I probably still need to get my review up of Mussolini’s biography, but I kinda just want some escapism, so I read this. 
 The author 
 Doctorow isn’t a new author for me–I’ve enjoyed his Makers and really enjoyed his short story “When Sysadmins Ruled the Earth”, as well as…
While I was fiddling around with my weird hack project (more on that someday), I had an idea for how to use maps in Elixir. 
 I hadn’t noticed, but you can use more than just strings and atoms as keys…and so, I give you a quick and dirty grid implementation. 
 defmodule SvgWorld.Simulation.Grid do 
 require Record 
 Record . defrecord( :grid , map : %{})
 
 def…
(Disclaimer: I am not now nor have I ever been a sailor. I hope my meaning survives my nautical ignorance–if not, please email me and I’ll see what I can do. I’ve probably also made some errors in the ecology as well.) 
 I. 
 You wake up in your cabin, stretching up from your berth and groggily gathering your morning routine–the tea, the water, fresh clothes,…
Introduction 
 I’ve worked at several companies that had some remote component for collaboration. Sometimes that meant Slack, sometimes Google Chat, sometimes something else, but the experience has given me some thoughts on what works and what doesn’t work. I’ll focus here on Slack (or similar product) practices. 
 Some of this stuff is aimed at anybody who uses Slack,…
Introduction 
 A thread on Lobsters got me thinking…what would I want out of an ideal emplyoment situation? 
 Since I am cheerfully funemployed as of August, I figure I have the time to delve into this a bit. This is all dreaming big; I am under no illusion that any place like this actually exists. It’s naive, but after a decade in industry I think it might be nice to take a…
Introduction 
 I’ve been looking more and more at the ideas behind building comfynets–small self-hosted collections of tools and pages for communities. I’ll probably do a writeup on the sort of stuff I’d like to see in one. 
 Anyways, one of the bits of fallout from a backchannel I sysadmin involves the custody of data. We’ve got a chat instance setup which…
Introduction 
 Today I finished reading George Orwell’s Homage to Catalonia , which is a first-person recounting of his experiences fighting Fascism during the Spanish civil war . Scattered thoughts follow. 
 
 The author 
 I want to point out that George Orwell was a true mensch–and that his wife was amazingly competent and patient, both for putting up with his…
Little under the weather yesterday and today, so just gonna list some things I’ll try to write about soon: 
 
 Multisystem deployment with KVM and Nixops 
 NAS Appliance with Nix 
 Fermi estimations and how web development is an embarassment 
 Assorted things standard libraries Should Just Do (tm) 
 Adventures in home smart lighting 
 Thoughts smart city data…
Every year I do a huge gumbo cookout (8 gallons) with friends for NYE. I figured I’d record the recipe for posterity: 
 Gumbo ingredients 
 
 Pack of turkey necks (3 or so) 
 whole bunch of Andouille sausage (pack or two) 
 whole bunch of mild italian sausage (pack or two) 
 a duck (dead, cleaned, boneless if possible) 
 5-10 lbs chicken boneless chicken breasts…
This post was originally going to be about how I provisioned a 20TB NAS using ZFS and NixOS. At lunch today I got word that my old boss and friend Michael (Mike) had passed a bit over a week ago, so instead I’m going to write about a few good memories of him by way of celebrating his life and my privilege of having been part of it for a few years.
Once upon a time I worked on a web-hosted research platform for human-robot interaction. My colleague and I partnered to make a nice series of games which could phone home, log results, and show data. 
 It was built on JS, jQuery, Rails on the backend, and hosted on Heroku. I’d later rewrite the backend to be a much smaller node-based one. I think we may have been the first group to get…
Introduction 
 This is a quick little ramble about the scope of minimum viable products (MVPs), their schedule for creation and delivery, and finally the interplay of those things on developers. 
 What’s in an MVP 
 The entire purpose of an MVP is to create the simplest, cheapest expression of a business idea possible to test if the market wants the thing you’re making.…
Introduction 
 I’ve been assembling furniture and rearranging my office into a semblance of a standing-desk, so I’m gonna be pick a quick topic for today. 
 This morning around 0930 I was awakened by a text from a friend who was distressed that a community I sysadmin seemed to have no server active. I immediately sat up in bed, stretched a little, and sprung shuffled, yawning,…
Introduction 
 Software testing philosophy is softball subject for blog posts, and after a month of fighting with a NAS build I’m in the mood for an easy write-up. 
 This is an adaptation of a work thread where I reflected a bit on testing practices, why we test things, and mostly importantly which things we as professional developers should emphasize and put in the extra effort for.…
Introduction 
 I used to dabble in amateur game development, and one of the most interesting bits to me was trying to figure out how to make believable, interesting, and alive worlds. 
 There’re a whole bunch of interesting resources on trying to render large virtual worlds and procedurally generate them–but while the environments are increasingly high-fidelity and cool, the…
Introduction 
 A relatively quick little ramble today, inspired by some pre-game chat while eating early dinner and getting ready for the second half of our Delta Green game from last week. One of my friends had been considering asking a person out in spite of their professed interest in chakras, energies, and that sort of thing. Another friend was in favor of bailing on the idea, I was in…
Introduction 
 Yay! 
 Last afternoon/night I ran my first Delta Green campaign. I was the Handler (DG equivalent of a Dungeon Master ) and three of my buddies were new DG recruits. 
 I spent a couple of days prepping mostly from the Need to Know starter booklet and the Agent’s Handbook . I think the former was more condensed and useful for the first game, but I have no doubt that…
Disclaimer 
 This is all very much a rough idea. There is no spec here, this is the fuzziest of straw-men. As you read this, please keep that in mind. 
 I want to next publish a spec and reference implementation for both a client and server, just to give people a taste of what’s possible. 
 This document is not quite enough to do that, but should be enough to make reading that…
So, it looks like I’ll be heading out to D.C. tomorrow for a bit on company business. Sort of a quarterly/semi-yearly team get together and retreat. I’m usually a fan of retreats, though travel itself I don’t really enjoy much anymore. After RC and some miscellaneous adventures last year I suppose I should change my outlook on that, but I can’t quite bring myself to. 
…
Introduction 
 I’ve been doing a bit of work lately setting up a new machine for my job, and in the process making some scripts that can ease the process for later developers. The whole thing is written in Bash. Why might you find yourself wanting such a thing? 
 
 Bash (or some other shell, probably Bash-compatible) is available nearly everywhere, so your tooling won’t…
Introduction 
 One of my hobbies and fun things in life is to play tabletop role-playing games. I thought it might be fun to play with that a bit. 
 The system I’ve probably spent the most time in is Pathfinder 1st ed. , though in college we used to play a whole bunch of Dungeons and Dragons 3 and 3.5 editions. These systems are all basically related, and there are some handy online…
Introduction 
 Going back to Active Worlds , I’ve always been really fascinated by online virtual worlds. When WoW was just being released and Everquest and Asheron’s Call were the big Western MMORPGs, some friends and I had kicked around the idea of a post-apocalyptic FPSMMORPG. We burned a lot of cycles on it, learning a good deal of programming and art and game design and so…
Introduction 
 I keep a list of little neat projects that I think some programmers might find fun to write for themselves, if not actually use all the time. I figure I’ll list out what they are and give maybe quick blurbs about why I think they’re neat projects and some ideas for how to tackle them. I’ll do a few more write-ups with more stuff from that list from time to…
I’ve spent the last several months in the Summer 1 2019 batch at the Recurse Center . The whole trip has been a really interesting and occasionally intense experience, but I don’t regret a moment of it. 
 What I worked on 
 My main project, spanning about ten of the twelve weeks of the time at RC, was a 3D rigid physics engine written in Elixir. I got as far as collision…
Introduction 
 One of the weird rabbitholes I fell into while working on the GJK implementation was figuring out how to find the nearest point on a tetrahedron to a query point. This also relates tightly to the idea of finding which Voronoi region a given point corresponds to–in fact, I elected to update my projection routine to also report which region a given point fell into. 
 The…
Current State of the Elixir Rigid Physics Library 
 
 Create stub physics engine server in Elixir as a GenServer( done ) 
 Create visualizer for engine state using Three.js and Phoenix Channels ( done ) 
 Add first body type to physics engine: boxes! ( done ) 
 Add framework for doing dynamics sans collisions in engine ( done ) 
 Add collision detection framework for…
Introduction 
 Yesterday, my colleague Anna here at RC got to talking about her game, and being a bit stuck on how to get Javascript to do what she wanted. 
 The game itself sounds to me like it is a sort of visual novel, which can be summarized as: 
 
 There is a current game state, being a current node in the story and an inventory. 
 The current game state is projected into…
Current State of the Elixir Rigid Physics Library 
 
 Create stub physics engine server in Elixir as a GenServer( done ) 
 Create visualizer for engine state using Three.js and Phoenix Channels ( done ) 
 Add first body type to physics engine: boxes! ( done ) 
 Add framework for doing dynamics sans collisions in engine ( done ) 
 Add collision detection framework for…
A sketch of the problems 
 The current situation harms workers, it harms consumers and society, and somewhat unintuitively it hurts most employers themselves. 
 Problems for the worker 
 Developers unlock or maintain vast economies of scale for companies, allowing profits at scales almost unseen in the history of mankind. At the same time, it seems that developers are increasingly cut…
This is a local image! 



















 
 
 
 
 
 

 
 

Current State of the Elixir Rigid Physics Library 
 
 Create stub physics engine server in Elixir as a GenServer( done ) 
 Create visualizer for engine state using Three.js and Phoenix Channels ( done ) 
 Add first body type to physics engine: boxes! ( done ) 
 Add framework for doing dynamics sans collisions in engine ( done ) 
 Add collision detection framework for…
Current state of the Elixir Rigid Physics library 
 After a few weeks of on-and-off work (maybe 2 weeks actual work punctuated by coder’s block and wonderful socializing here at RC), my timeline looks like this: 
 
 Create stub physics engine server in Elixir as a GenServer( done ) 
 Create visualizer for engine state using Three.js and Phoenix Channels ( done ) 
 Add…