Hi friends,
I’m traveling the next two weeks, drop me a line if you want to grab a coffee!
The other day I asked OpenAI’s Codex agent to write me a lil’ Rust program to use a bluetooth gamepad as a mouse, and I caught the agent reading files outside of the directory I started it in.
I found this quite surprising, since I assumed it’d be contained within the project folder.
(I was using the default settings, not the more permissive --yolo mode.)
I don’t like the idea of an LLM agent rooting around my computer and uploading anything it finds to OpenAI, so I started shopping around for a “sandbox” — something I could let an agent loose inside of while maintaining explicit control of what it sees.
I searched around and was, unfortunately, unable to find any Mac solution that met my requirements:
That’s fine — I’ve been messing with virtual machines for 20 years now, surely I can throw something together in an hour or two!
Well, uh, several busy weekends later, I’d like to present Vibe, an easy way to spin up virtual machines on ARM-based Macs.
I’m quite pleased with how it turned out:
vibe in a folder and in ~10 seconds are inside of a Linux virtual machine.~/.m2, mise-en-place) are also shared so the sandbox VM doesn’t need to re-download stuff.Being able to run LLM agents as root with --yolo mode is a great experience.
It feels much more like managing an IC — you provide the necessary context in a big prompt, tell them to install whatever tools they need, and then let them cook for while you go focus on something else.
While the vibe defaults are geared towards use as an LLM agent sandbox, you can customize everything with scripts and command line flags so you can use it for all sorts of other virtual machine purposes.
Check it out and let me know what you think!
I recently bought a $150 GL-MT6000 router so I could make a separate “offline” network for stuff like my 3D-printer and Windows computer that I want to keep off the Internet.
The router is awesome! It comes with the open source OpenWRT firmware installed, which provides a fast web UI, simple text configs you can backup with rsync, and lots of built-in functionality like AdGuard (blocks ads for every device on the network via DNS) and Wireguard/Tailscale (easy VPN so you can access your home network from anywhere).
Highly recommended.
Last newsletter I mentioned vibecoding a copy from mac photos app since I couldn’t get the functionality I needed from the otherwise great Clop Mac photo resizing utility. Well it turns out the author subscribes to this newsletter, checked out my source code, and immediately added the feature. If that isn’t enough of a coincidence, he also loved my powered air respirator project since he’s a woodworker too and has been developing his own hardwax oils for the turned coffee cups he sells. I love the Internet.
“In this post, we will explain why the “concurrency + floating point” hypothesis misses the mark, unmask the true culprit behind LLM inference nondeterminism, and explain how to defeat nondeterminism and obtain truly reproducible results in LLM inference.”
“In the past, almost everybody travelled on the left side of the road because that was the most sensible option for feudal, violent societies.”
ASCII characters are not pixels: a deep dive into ASCII rendering
It sounds dumb but they really fixed a typo with a human leg
Apple Rankings: The definitive list of good and bad apples.
The Bloomberg Terminal UX team is not messing around: “Making substantial changes, even good ones, will reliably annoy a percentage of customers, so Jeffery’s team plans redesigns with incremental updates that roll out over weeks or months. For example, when they wanted to flatten the gradient of an element, they wouldn’t do so all at once, instead changing it little by little each month.”
TIL that the founder of Reuters started with a carrier-pigeon line between Berlin and Paris before eventually laying their own transatlantic telegraph cable.