Note: It’s weird to publish this article now. The world is going through some terrifying times.
Weirdly, those terrible things unfold slowly, and mostly distantly from our family. So in the present, life goes on. Kids go to school, work gets done, lessons are learned. A little different, but a lot the same.
I am not oblivious to how tone-deaf the following might sound: to be in a position to think about the relative luxury of either houseboats or yachts is massively privileged.
Still it’s an important realization for me, that I wanted to write down and share.
In 2013, I discovered Camlistore and began feverishly hacking on it. I really loved the vision: a personal, automatically-organized archive of all your data, forever. But as I was working on Camlistore, I kept thinking that the project really needed a different kind of database — one with versioning, deduplication, and synchronization built right into the core.
I started tinkering with these ideas in my spare time and was quickly consumed by them. I had been really inspired by the elegance and power of Git for years, and also by the functional programming style of tools like ReactJS. It seemed…
I often hear people ask this. Sometimes the question also takes the form of an accusation: “If (cars|houses|bridges) were like computers…”
Joking aside, I think it’s important to remember that software is complicated by design. The entire purpose of software is to be complicated.
In the beginning, there was hardware. Hardware was hard: hard to build, hard to change, hard to distribute, and hard to update. As the complexity of the systems engineers wanted to build grew, the hardness of hardware quickly became a problem. Every time you found a bug, you had to do a new factory run. …
In March 2011, I drafted an article explaining how the team responsible for Google Chrome ships software. Then I promptly forgot about it.
I stumbled across the draft a few days ago. Though it is now somewhat outdated (e.g., Chrome forked WebKit into Blink in 2013, and I don’t even work for Google anymore), I still think the underlying ideas are very valid.
I didn’t want to go to Maui.
I pictured hotel packages, annoying tourists, condoplexes, and Hard Rock Cafes. I tried to get my wife to consider alternatives like Croatia, Greece, Central America, or New Zealand. But they were all too far away, too hot, too dirty, or had other downsides. Especially considering that it was our first vacation with a new companion:
When traveling, it’s easy to fall into a trap of trying to force a place to be what you want it to be, rather than letting it be what it is. For example, one might go to New…