perfection is finally attained not when there is no longer anything to add, but when there is no longer anything to take away Terre des Hommes (1939) - Antoine de Saint Exupéry How could the world possibly need yet another test framework? Anytime you see a space with a bunch of competing tools, it's a signal that there's a hard problem somewhere under the covers. Of course, I don't…
[!WARNING] This page exists deep within bikeshed territory, proceed at your own risk! Unformatted code is like a dirty car. Yeah, it can take you from point A to point B just as well as a clean one, but no one else wants to get in your car (join your project) unless they have to (forced by a manager). What baffles me is that, unlike cleaning your car, formatting your code takes literally one…
Here's a story that perfectly captures " control is effort ". I was searching for a robot vacuum that would work in "local-only" mode without having to connect to a cloud of any kind. That way I would have full control over the device and wouldn't be relying on the Internet for my floor to get cleaned. It didn't take long before I came across valetudo.cloud . Their subtitle is Free…
When I encounter the term digital estate , it's almost always when someone has died and it's now time to figure out what to do with their Internet remains. Should they be deleted, inherited by next of kin, memorialized, etc..? Technically, digital estate exists long before that point, but it's usually not referred to as such. My simple definition is: Digital estate is the collection…
My story isn't as sad as some. I didn't spend a billion dollars on a pizza or lose millions from an accidental rm -rf of a wallet. Instead, I got involved in Bitcoin mining pretty early on using a NVIDIA GeForce 9500GT when I wasn't gaming. Even back then with a block reward of 25 BTC, it was becoming difficult to mine a block on your own, so I mainly mined with a pool of other…
I initially chose the AGPL license for Fossable's SaaS projects because I wanted to make sure that no one could run their own derivative services without also making them free and open source . AGPL is about the strongest copyleft license you can get; even running a server requires its source code to be made available to users. That all sounds great to me, but a dozen paragraphs of legalese…
mkdir: cannot create directory ‘/tmp/test/123’: No such file or directory It happened again - you forgot to create the damned parent directory first. Of course, mkdir can do it with the addition of a paltry -p flag. Now you commit a three-character change and re-run the failing CI job for the eighth time in a row. I've written quite a few shell scripts in my life. In every…
This is a personal history of all the major operating systems I've used over the decades. Maybe this will be interesting for someone to read, but I'm mainly writing it down in case I forget. Windows 95/ME (2001 - 2003) As a millennial, my first ever computer experience was with a big beige CRT monitor/computer running Windows 95. It belonged to someone at my parents'…
June 7th 2025 marks 7 long years of development on Sandpolis , an attempt to build the ultimate remote administration/management tool for sysadmins like you and me. For 7 years I thought about and/or worked on this project almost daily, and yet it's still nowhere near being finished, not even MVP-level. Am I the worst software developer ever to touch a keyboard? Unlikely :) Quite a…
[!WARNING] This page exists deep within bikeshed territory, proceed at your own risk! What log message do you think is better? Starting the car Started the car successfully Logging after the thing happens (AKA past tense) gives you the opportunity to include additional information like perhaps "how long did the operation take?" or most importantly: "did the operation succeed or fail?". Logging…
A few weeks ago, a nightmare-level situation began to unfold. A routine login attempt to the AWS console for fossable.org suddenly hit me with an email verification challenge: My choice of recovery email for the root account was a bit of a problem. It actually belonged to the fossable.org domain itself, hosted by an email server within the very same AWS account I was trying to login to. A server…
I've been refining the way I do IaaC and immutable infrastructure for years. Before I switched to NixOS, I had enormous Ansible playbooks that configured everything imperatively. My playbooks are much simpler now, with most of the configuration declaratively specified in configuration.nix . Here are the main tools in my current workflow: Packer (for building AMI images) Ansible (for handling…