Below is a collection of my thoughts, organized from most to least recent. Posts that I’m particularly fond of will have a little preview. Happy Reading!
Sketchnoting: a spontaneous but needed reflection
2022-02-11 · About 6 minutes long
Since September of last year, I’ve been chipping away at a long-form post on how to take good notes. This, sadly, is not that post—consider this post a teaser to tide you over until then.
Today I finished my fourth book of sketchnotes. Each book has about 240 blank A5 pages, so I guess I’m fast-approaching the thousand-page mark. In celebration of filling yet another volume, I took a trip down memory lane and dug out Volumes 1-3. Taking the time to read through some of my older notes, it’s easy to see that I’ve improved quite a lot.
While reading through my second notebook, though, I found a short hand-written collection of my thoughts on note-taking. Although it’s been a few years since then, I feel like the core of what I had to say then rings true today.
Below I’ve typed up those few pages of notes, I hope you find them interesting:
Thinking about efficient backing stores for CRDTs
2021-08-02 · About 10 minutes long
A Conflict-Free Replicated Datatype is a bit like a smoothie: the same ingredients will produce the same result, regardless of the order in which they are added. In the context of, say, text editing in a distributed context, merging two documents will always succeed in a deterministic manner. In other words, A CRDT is a bit like a git repository that never has merge conflicts.
There are many different ways to approach the construction of CRDTs, each construction having its own strengths and weaknesses. Today, we’re going to focus on creating out an efficient backing store for a particular family of algorithms known as Replicated Growth Arrays (RGA).
Stellar Quest (Mis)Adventures
2021-05-03 · About 16 minutes long
Good evening fellow Lumenauts!
For those of you who don’t know what Stellar is yet, it’s a cryptocurrency that’s been around since about 2015 by the same guys who made Ripple. I personally find it notable for a couple of reasons:
Instead of using Proof-of-Work or Proof-of-Stake, Stellar uses the Stellar Consensus Protocol, which is a construction of Federated Byzantine Agreement. I’ve written more about (and am working on an implementation of) SCP here, for those interested. Stellar is really fast (e.g. closing times are <5s on average) and environmentally friendly (no mining or farming).
A Tiny Introduction to Parsers
2020-07-08 · About 3 minutes long
The other day, someone asked how parsers worked on The Programmer’s Hangout Discord server. Here’s an an abridged version of my explanation.