I’ve also been experimenting with agent sandboxes lately. redoubtful is a work-in-progress sandbox that supports: Linux-only sandboxes: I’m focusing on what Linux supports, specifically, rather than trying to support the lowest-common-denominator features that work cross platform. Modular configuration profiles: See below. Isolation using pasta and bwrap . A shadow filesystem that looks like your…
I continue to be interested in late-2024-era edit completion, the “Fill in the Middle” (FIM) models. You know, what Copilot used to do, back before it started generating “mini diffs.” Why? I like and use agentic workflows. But as many people are realizing, it’s super easy to lose track of what’s happening in your code, with terrible consequences . So I want to reinvest in human-in-the-loop tools,…
This blog is ancient, in blog years. The first post was on June 30, 1998, and it featured a randomized emboss for MathMap . Back in those days, it was a mix of neat little snippets like that and interesting links. The site was a single, hand-edited HTML file in reverse chronological order. It ran on a Linux mini-tower built from parts from the MIT Swapfest , and it lived under my desk. Google…
Do you miss the old-style Copilot completions? The ones where it inserted grey text at the cursor? There’s an open version of this called “FIM completion” . And the classic model for doing this is Qwen2.5 Coder 7B . But it turns out that Qwen3.6 35B A3B is can also do autocompletion! The fact that it has 3B active parameters means that it’s fast. And the 35B total parameters means it’s smarter…
The first stable release of Rust was on May 15, 2015, just about 9½ years ago. My first “production” Rust code was a Slack bot, which talked to GoCD to control the rollout of a web app. This was utterly reliable. And so new bits of Rust started popping up. I’m only going to talk about open source stuff here. This will be mostly production projects, with a couple of weekend projects thrown in. Each…
[This was a fun early attempt to get ChatGPT to write software way back in 2022, before coding agents were a thing.] Like many folks, I spent too much of the last couple days playing with the new release of ChatGPT . I’ve been trying discover what it’s good at, and how it breaks. At its best, it’s remarkable—I think it would actually pass many common “hiring screens” for programmers. And it has…
I’ve been using the proposed await! and Future features in nightly Rust , and overall, I really like the design. But I did run into one surprise: await! may never return, and this has consequences I didn’t fully understand. Let’s take a look. We’re going to use Rust nightly-2019-02-08 , and tokio-async-await . This is highly experimental code, and it will require us to convert back and forth…
Lately, I’ve been working on several real-world systems using Rust’s async and tokio . As you can see on the areweasyncyet.rs site, this requires using nightly Rust and the experimental tokio-async-await library. I hope to talk more about these experiences soon! But today, I want to talk about channel APIs in Rust. A question was raised by @matklad on GitHub : I’ve migrated rust-analyzer to…
Want to build your own kernel in Rust? See Bare Metal Rust to get started. We’re almost ready to write a keyboard driver in Rust! But first, we need to deal with two obstacles: setting up the PIC, and handling interrupts without crashing. This is one of the most frustrating steps, as Julia Evans explains in her hilarious and very helpful post After 5 days, my OS doesn’t crash when I press a key :…
Want to build your own kernel in Rust? See the Bare Metal Rust page for more resources and more posts in this series. There’s just a few more posts to go until we have keyboard I/O! Hacking on kernels in Rust is a lot of fun, but it can also result in massive frustration when QEMU starts rebooting continuously because of a triple fault . One good way to minimize frustration is to wander on over to…