Blog Posts, Articles & Notes
2025
2024
2023
2021
2020
2018
2017
2015
Moments
Happy launch day!
Today I soft-launched my latest pet project.
And then I launched these three freaking cherry laurel root balls out of the ground.

I thought coming up with a treesitter-based syntax coloring theme was hard. Turns out creating textmate-based themes is even more finicky.
In other news: Root Loops now supports Visual Studio code theming (UI and syntax). Give it a shot!

I love the concept of tiling window managers but they often encourage a weird obsession to fine-tune and customize every last aspect of the experience. I gave PaperWM a shot this week and it seems to hit a sweet spot: It’s a simple Gnome plugin and integrates well with my regular desktop experience while giving me a convenient way to manage my windows and workflows with the keyboard wherever I go. If you use Gnome but miss the i3/sway experience, give it a try!
Remember, folks 🤓
Cloud infrastructure inevitably evolves through the following stages:
- Terraforming
- Terrastorming
- Terranorming
- Terraperforming
Looks like the folks at syntax.fm discovered Root Loops. Exciting 😊
Feelin’ alive this morning 😇
![]()
Got a new domain.
Got no clue what to do with it.
Why do I keep doing this?
Every single time I consider using #nixos to set up a dev environment for one of my side projects, I give up after about one hour of getting more and more confused.
I really, really want to like nix. I would love to understand and use it for reproducible dev environments. I just haven’t found a way to get started without spending days to understand the fundamentals. In the meantime, an “apt install
Continuous Integration
[kuhn-tin-yoo-uhs]
[in-ti-grey-shuhn]
Noun.
1999: Every developer on the team merges their changes into a shared mainline several times a day.
2024: There’s a YML file somewhere that declares how to build and unit test your stuff, no matter which branch you’re on.
Testing your changes in isolation from everybody else’s changes is not quite what they meant with “integration”, folks 😬
Lukewarm take:
If your generic type declaration ends with something that looks like a git conflict marker, you might have missed the opportunity to find a reasonable abstraction 🙃
