2019: A Year
2019 was a way more stable year for me than 2018. I managed to keep living in one country for a whole year, which I haven’t managed the past couple years.
Work
I’ve had a good year working at DigitalOcean. I’m enjoying the lifestyle freedom that remote work gives me, and it’s a bit hard to imagine being forced to go to an office in a certain place because of your work. Being able to pick up my laptop and go somewhere else to work from there for a week is very nice! And I truly believe I can be just as productive. Working in an office you mostly communicate over Slack or email anyways, so why require that people come to the same place? It seems pointless.
Programming
I’ve been thinking more and more that we are not even close to utilizing the capabilities of computer hardware. I watched a talk recently that touches on this—we’ve been free riding on hardware improvements to cover up degradations of software performance, but software engineering has not actually improved much. We’ve built this tower of ‘higher levels of abstraction’ (notably the browser and JavaScript) that don’t actually give us more capabilities, make some things impossible and everything slow.
How do we get out of this? I’m not sure. Rust seems to be a real step forward for many use cases. It allows operating at higher levels while their commitment to zero-overhead abstractions means the performance stays great. Someone whose Rust work I admire is Rik Arends who is creating a code editor in Rust. Following his work is great because time and time again he shows how things we think are slow are only slow because we’ve made them so, not for any fundamental reason.
This year Rust stabilized futures and async/await, which I’ve been waiting for to start porting some of my web services and tools. I ported over a web scraping tool from Go to Rust, and I am a bit disappointed in the insane amount of dependencies needed for this seemingly small program. I ended up with a ~200 line file that compiles 200+ crates into a 10MB binary. The performance is adequate but I quite quickly ran into limitations in the type system meaning I can’t adequately express what I want to do, leading to unnecessary copying and a clunky API. Hopefully these things will improve over time. I think there’s room for having foundational building blocks built in Rust, with a garbage collected scripting language on top of it to implement logic that doesn’t need to be as optimized.
Local-first Software
The last little while I’ve been spending a lot of time thinking about local-first software and I’m quite interested in making a contribution in this area. We have these incredible mobile devices in our pockets that have insane amounts of computational power, but we are still very dependent on The Cloud for doing most things. Something you notice if you travel between the US and Europe is that websites in the US have significantly lower latency. I can’t even imagine how it must be in most of Africa/Central Asia.
I’m also considering participating in Recurse Center in 2020. So perhaps I could combine all my interests in making local-first Rust-powered mobile software.
Books
At the beginning of the year I set a Goodreads goal of completing 52 books, which was less than the year before but ended up being way more than I could do. Last year I wasn’t working for a couple of months so I had way more free time, this year I completed about a book every two weeks. I’m still happy with that! I just need to be realistic with myself how much I can read if I also have other obligations.
My favorite books of the year (I copied over my Goodreads reviews):
Masters of Doom
I flew through this book in just a weekend. Most of this story happened before I was born—yet through this book I lived it all. A total ode to the individual hackers that revolutionized computer games forever, with OG ‘rockstar programmer’ John Carmack and game development visionary John Romero as the protagonists. Just like the book ‘Skunkworks’ this one highlights the innovations small teams under great constraints can achieve. It makes me want to start my own company developing for the current cutting-edge mobile devices, and pushing the status-quo much further than it currently is.
After this book I also read the Game Engine black books, which are a great insight into the technical workings of these games.
Behave
This book is like a manual on how your human biological machine works. Mr. Sapolsky goes through all different kinds of human behavior and does the same thing: explains how the environment/context and hormones together influence the behavior. If there’s one lesson from this book it’s that behavior is always a combination of context + hormones.
It can be a bit of a slog at times because it’s so long and thorough, but his writing style is enjoyable and quite witty at times. I’d recommend this book to anyone who is a human.
Energy and Civilization
This book is very, very thorough. It goes through the whole history of how humans use energy, which is basically the whole history of human technological development. It is also very dense, no words are wasted on anecdotes or prose, but rather every sentence contains interesting information.
It is quite sobering, we need a lot of energy to maintain something close to our current standard of living and to improve the lives of the people currently living in squalor, but there’s no easy way to achieve this. The only viable way seems to be a massive (and politically difficult) scale up of nuclear energy, with wind and solar where it makes sense. And we will still need techniques for synthesizing hydrocarbon fuels for things like aviation and shipping.
It is also sobering because the author doesn’t care about politics, just the poor allocation and use of energy we have in the world. Why are we placing solar panels in Northern Europe instead of Africa? Why are we shipping wood chips across the Atlantic to burn them in European power plants? These things are local maxima but bad for the world as a whole.
Order without Design
Very thorough book about urban planning and economics. It’s quite frustrating to see how cities I’m familiar with (Amsterdam, Berlin) that are going through growth are mismanaging it so poorly that rents are skyrocketing, leading to people getting stuck into their current situations when they would be better off moving.
Some of the insightful effects:
- A lack of enough housing for the growth of a population leads to an increase in rents for all kinds of housing, as people with high incomes will settle in middle quality housing, middle incomes on low quality housing, and low incomes get squeezed out.
- Fast trains and e-bikes are dope. Cities should ensure that there’s adequate train transport between suburbs and to the center, and citizens should have the room and infrastructure to keep (e-)bikes to quickly get to the nearest train station.
- There is no free way to get affordable housing. Zoning laws and regulations that require cheaper housing will lead to randomized lottery winners that get nicer housing, while people who don’t qualify for it pay more for theirs. It can also lead to locking people into housing that isn’t optimal for them (because of location, size or otherwise). Giving tax cuts to build affordable housing end up costing a lot more than just buying the apartments outright would’ve cost the city. If you’re worried poor people can’t afford housing, just give them money. They can better decide for themselves what kind of housing is best for them. This housing subsidy should gradually reduce as their income increases—this is a current problem with ‘huurtoeslag’ in the Netherlands where people can end up with net less money if they get a raise, because they lose their access to the subsidy.
- Cities need to have economists to figure out what the impact is of current regulation, of new ones, and adjust or remove regulations that don’t work/have adverse effects.
Diary
Half way through 2019 I started keeping a daily diary. I’ve tried writing on pen and paper in the past but it’s just a pain in the ass to me, and if I need to take these things with me everywhere to fulfill a daily thing I’m just going to forget and not do it. So I ended up using Siri Shortcuts with iA Writer to notify me at 18:00 every day, and with one tap I just start writing. I don’t really have any structure, usually I write one or two paragraphs of random thoughts. It’s been pretty nice so far though! I mostly write about what happened that day and what’s on my mind. I wouldn’t say it’s a huge revelation but it’s nice to take a moment every evening to collect my thoughts.
2020
I’m not quite sure what 2020 has in store for me! I won’t be living in the same place any more, but I feel a bit less restless after doing so for a year. It’s been very good to have a slightly more chill year and spending a lot of time with family. I don’t really think having New Years resolutions is very productive but I’ll just try to stay into a good routine of eating healthily and exercising well.
Dec 2019