Keep it simple, stupid — less is more, or as Albert Einstein didn’t actually say:
Make everything as simple as possible, but not simpler.
What he actually said, according to Quote Investigator:
It can scarcely be denied that the supreme goal of all theory is to make the irreducible basic elements as simple and as few as possible without having to surrender the adequate representation of a single datum of experience.
But I digress… It’s not lost on me that I sometimes end up making things more complex than they have to be. Often without it adding any value. Like entropy — slowly increasing the state of disorder.
Introduction
I’ve become increasingly aware of this as I am the one who has to maintain the potential chaos:
- Creating the complex solution? Fun and challenging!
- Maintaining the complex solution? Definitely less fun.
- Depending on the complex solution? Not fun…
I’m more and more favoring simple solutions. It should do the thing it needs to do, with as few moving pieces as possible.
This website
Over the years I’ve started multiple projects on this very website that I’ve just scrapped afterwards:
- Static comments using the Github API
- Comments — again
- Trying Netbox for my homelab and home network
- Microblogging in Hugo — using Todoist tasks
The last year I have taken steps to simplify and remove what didn’t provide any value on this site:
- Simplified several pages, like computers, homelab and uses. They had a complex data structure making them harder to maintain.
- Removed a books page, that I never actually bothered to keep up to date.
- A custom video.js implementation was simply replaced with Bunny Stream.
- Removed an unused photo carousel and inline gallery implementation.
- Removed lots of clutter from the post meta header.
- Replaced Algolia with PageFind.
- Moved from S3 to VPS hosting.
My homelab
The same is true for my homelab; like the Z440 server I was building, with 4×NVMe drives, 2×25 Gbit networking. Fun for a while, but it passed. An additional 75 W of power consumption for a ZFS NVMe pool that I never used lost its appeal after a while.
When setting up my Proxmox cluster my intention was to get Ceph up and running. But I ended up just using local ZFS with replication enabled — good enough, simple and easy to maintain.
For monitoring I set up Checkmk; an impressive piece of software, which was quite resource intensive and gave me a constant stream of meaningless alerts. Yes I could probably have spent time adjusting it, but instead I threw it out and replaced it with Bezel.
I’m not saying all complexity is bad — it just needs to be worth the technical debt it incurs. For me — setting up Immich to replace Google Photos was worth it. Immich is mature enough now that it just works. And getting all our family photos off Google was important to me. I had to make some custom solution to keep the digital picture frame feature on the Dakboard screen in our kitchen, but it wasn’t too bad. More on that in a future blog post.
Wrapping it up
My area of interest is very seasonal; in the winter I like to work on my homelab, and in the summer I like to do other things. Like making planter boxes and going camping.
The challenge arises when winter-Thomas makes some complicated solution, held together by shoestrings and scotch tape, that summer-Thomas has to depend on.
I guess I wrote all this to say: winter-Thomas needs to stop writing checks that summer-Thomas has to cash — especially when summer-Thomas would rather be outside than rebuilding a broken Ceph cluster in the basement.