programming

5000x faster CRDTs: An adventure in optimization

A few years ago I was really bothered by an academic paper. Some researchers in France put together a comparison showing lots of ways you could implement concurrent editing, using various CRDT and OT algorithms. And they benchmarked all of them. (Wow, yess!) Some algorithms worked reasonably well. But others…

ShareJS and ShareDB

This was posted on the sharejs & derby mailing lists and there's a great discussion there. I first wrote ShareJS hoping for a simple library on top of which people could build their own collaborative applications. I showed off the first working version in April 2012, running on NodeJS 0.…

Maps and Sets

One of the super useful new features of ES6 is Map, Set and its friends WeakMap and WeakSet. We've always had objects in javascript, but the reason why this is a big deal is that maps map based on an object reference, not just a string. Here's a few ways…