It's a new year. 1 January 2022. Though by the time this is live, it'll be 2 January — I had a hell of a time getting TLS working.
I took the last week off work, and decided to rebuild this website. It's served using the excellent warp library. That took under an hour to set up. The majority of the time was spent building a custom templating engine, markdown-ish parser, HTML formatter, etc. The existing Rust ecosystem here is not really as mature as I'd like, and I enjoy getting my hands dirty sometimes. I've always enjoyed parser combinators, and the nom library makes this pretty pleasant. I'm using a CSS style that borrows heavily from Tailwind CSS, but I am not using that tool itself. I'll see about making a followup post about the pipeline I've set up.
What I'm planning to do with this site
I want to make this website inhabit some fuzzy space between personal journal, solipsistic twitter, blog, and digital garden.
I'll probably write some essays ranging between urban planning, software engineering, and economics. But I won't limit myself to high-effort essays. I want to make posting tweet-like things as frictionless as possible, too. Some of these may not be as high-brow as the essays, and that's fine. This website is intended to contain the sorts of things I would discuss with a friend in public. I'm not seeking a platform with a megaphone, but I also don't mind if a stranger listens in.
Refactoring the world
A key observation from software engineering is that replacing large systems outright is rarely successful. Often, it seems that the existing system is just a dumpster-fire that needs to be thrown out entirely. Then, as you build the replacement system, you gain a deeper understanding for the design choices the legacy system made, and you may be forced to make the same tradeoffs. In the end, it's not uncommon to wind up with a slightly tidier, more modern version of the original system.
While it's a lot less fun than writing a greenfield project, it's typically much more successful to "refactor" the legacy system. Refactoring here refers to making incremental improvements where the system continues to function normally at each intermediate step. A physical analogy would be remodeling a home instead of doing a teardown and new construction.
The main skill at play in a successful refactoring is seeing into the underlying dynamics of the system. In my line of work, these typically revolve around various hardware entitlements such as aggregate bytes in and out of a server. In the non-digital world, the underlying dynamics can typically be seen through the lenses of physics and sociology.
My main thematic interest in recent years has been to better understand the underlying dynamics of society in order to learn how best to refactor it.
I don't hold too many delusions of grandeur here. I'm a random guy on the internet. This project would best be described as guerilla refactoring. I want to explore what kinds of positive social contagions can be instantiated without a massive platform.