I was wrong. CRDTs are the future

I saw Martin Kleppmann’s talk a few weeks ago about CRDTs, and I felt a deep sense of despair. Maybe all the work I’ve been doing for the past decade won’t be part of the future after all, because Martin’s work on CRDTs will supersede it.…

Home is where the bits flow

We aren’t purely physical beings. Most of our day exists outside our body. Our minds slip out through our eyes, out into our screens. We become a different kind of organism, living in a weird symbiosis with reddit and whatsapp and gmail. When was the last time you noticed…

An API for data that changes over time

What do all these things have in common? RSS feeds Gamepads and MIDI devices An email client Filesystem watching (FSWatch, kqueue, ionotify, etc) Web based monitoring dashboards CPU usage on your local machine Kafka RethinkDB Changefeeds A Google Docs document Contentful's sync protocol Syntax highlighting as I type in my…

War over being nice

Quick question: Bob says something to James. James is upset and goes to have a cry about it. Who is responsible for James being upset? Is it Bob, for being mean? Or is it James, because he obviously has emotional development to do? If there's 100 points of responsibility, how…

A dozen ideas for a better Fortnite

Edit (2020): This was written before Fortnite became the battle royale game it is today. When I wrote this, "Fortnite classic" was the whole game. Epic went a totally different direction than I was thinking about. I've been playing a bunch of fortnite over the last week. Below is a…

3 tribes of programming

There's an old joke that computer science is a lie, because its not really about computers, and its not really a science. Funny joke. Everyone laughs, then someone says "Yeah but it sort of is about computers though, isn't it?". Feet shuffle awkwardly. Someone clears their throat and before you…