awarm.spacenewsletter | fast | slow

Making an ebook and exploring Urbit

One of the my pleasures these past couple weeks have been videos like this one from J Kenji Lopez-Alt. It's incredibly soothing watching someone do something with total fluency and zero pretension and exactly the right amount of production value.

In a similar vein, I was blow away by this blog post from Bob Nystrom, detailing the incredibly intensive process of writing his book Crafting Interpreters.1 He talks about the technical challenges of writing a book about programs, where every chapter needs to result in a fully working program state. And, the challenges of writing a quarter of a million words, while the world was turning upside down.

Inspired, I decided to try my own hand at some digital bookmaking. If you have an ereader and haven't come across, Standard Ebooks, you're in for a lovely treat. They're a volunteer project that produces new, digital editions of public domain works. If you've ever downloaded an ebook from Project Gutenberg you know they're often not the cleanest representation of a work. Standard Ebooks works off their editions as a starting point, but reformats, typesets, and runs them through a thorough style manual, to get beautiful, still public domain works out the other end.

Most excitingly, they've also put together a set of software tools and a step-by-step guide to make the process as easy as possible.

The book I picked was Democracy and Education by John Dewey2, which I started, thoroughly enjoyed, but never made it all the way through. The Gutenberg edition left a lot to be desired with handling footnotes, and chapter breaks, but it didn't have any complicated typesetting or anything so it seemed like a nice doable first project.

The process is fairly achievable, even for someone who has never done any kind digital bookmaking before. One thing I'd modify though, is that you only produce an actual ebook right at the end. I'd love to produce the ebook, start reading it on my ereader, and bounce back and forth to edit it, continually making it better. Of course, the tooling doesn't really exist to do this kind of thing at scale (pushing new versions of texts to people's reading devices) AFAIK, but it seems pretty doable as long as it's just me.

This morning I decided to dip my toes into the world of Urbit prompted by these reflections on designing it's interface. The project is a "a clean-slate OS and network for the 21st century". It's a software project that let's people run things like chat servers or blogs, that function in a complex social network and still maintain individual's rights over their data and interactions.

There were a couple roadblocks in getting the software set up, but I was surprised at how simple the project was to use 3. They've got a functioning chat system that works within a really simple but powerful group permissioning context. And, the chat let's you execute pieces of code right inside the message box, a feature I have always loved the idea of, and constantly fail to come up with concrete uses for. 4

There are really interesting parallels between Urbit and projects like Ethereum, SecureScuttleButt, and radicle. They all intersect with virtual machines, append-only logs, and peer-to-peer networking, but have drastically different stacks and approaches. Something in this vein is going to transform the way people interact with computers. It's way too early to know exactly what.

  1. Writing this newsletter prompted me to read Bob's post about publishing his last book and it is also thrilling.
  2. I used to have my highlights from this up on my website but it got removed in my rewrite. I'll throw it back up this week as a simple commonplace book, with all the annotations on one page!
  3. At least until I took a look at some of the source code. urbit has a very well deserved reputation for being intentionally esoteric and cryptic.
  4. This was one of the centerpieces in Speakeasy, a wierd bit in Fathom's history. It was a programmable permissioned chatroom, that was to the substrate for different learning environments. I should write a retro for it at some point!