Autonomy #1 - Intro and Backups
Douglas Adams once made this amusing observation about how we view technology:
- Anything that is in the world when you’re born is normal and ordinary and is just a natural part of the way the world works.
- Anything that’s invented between when you’re fifteen and thirty-five is new and exciting and revolutionary and you can probably get a career in it.
- Anything invented after you’re thirty-five is against the natural order of things.
I happen to be thirty-five now so if I’ve developed a nagging feeling that computing took a wrong turn maybe fifteen years ago then it shouldn’t come as a huge surprise. So yes I fit the stereotype but I’m gonna go for it anyway, over a series of blog posts.
What is it, then, that changed since the noughties? Is it all nostalgia or is there something interesting there?
Modern computing lets many of us down in various ways. There’s the developer who can’t work when GitHub is down, the customer whose data is leaked in an open S3 bucket, the libertarian who worries about mass surveillance of their cloud data, the user who is baffled whenever Slack revamps its UI, the business owner who can’t accept payments when the internet goes down, the supply chain attack delivered via crates.io, and others like these.
In a nutshell this is what I think: the problem is that computer users are losing their autonomy, and the root cause is the increasing use of internet servers. Most of what I consider to be the problems with modern computing stem from the use of servers where they’re not absolutely necessary, and we can improve autonomy by reducing the number of servers or our reliance on them where possible.
In debates about internet servers today, a lot of emphasis is placed on who is running the servers, how they handle data, and what the business model is that enables those servers to be operating. I would claim that for computing autonomy more generally, these factors make only a limited difference. Replacing proprietary servers with open source ones or locked-in servers with interoperable ones is laudable but doesn’t get to the heart of the problem and maybe even perpetuates it. Why? As soon as you bring an internet server into the mix, a computer-literate layperson is unable to responsibly maintain it; not without granting complete trust to somebody else.
“Autonomy” means different things in different situations. I use this flexible word intentionally because it is the common link between a lot of unpleasant scenarios. Rather than try to explain everything all at once, what I intend to do is write about some modest changes I’ve been making as an individual to improve my computing autonomy and use those changes to explain what I mean. By framing the problem as internet servers I expect to find a common thread through many modern ills like those I mentioned above.
More about that later. Suffice to say, we can all do our bit as individuals and organisations to reduce our dependence on servers. Where do we start?
We must start by acknowledging one benefit of the cloud, as a constellation of internet servers—it serves as a backup of our data, and often the tech companies do a better job of not losing our data than we do as individuals. Phones get smashed, laptops get lost, but datacentres with RAID storage and 24/7 technicians go on. All computers are fallible so we need backups. If you use the cloud for backups, you need the cloud. Let’s do something about that.
What I have done, and what I recommend, is to choose one computer that is responsible for my data. I use my desktop PC where I invested in 4 TB of storage. My goal is to store all my data on this computer, then back up that computer thoroughly. Make no mistake—performing a thorough independent backup requires a little bit of ongoing work—but it is a very useful baseline. Since I have a backup regime that I understand and trust, any other server-bound data that I “liberate” onto my own hard drive will be automatically captured and protected.
It’s easy to over-think this kind of thing. I don’t strictly follow the 3-2-1 of backups. I have two backup USB hard drives, one on-site and one off-site, and I rotate them occasionally in case the building burns down. Because I’m a computer nerd I choose to create incremental snapshots on LUKS-encrypted volumes using rdiff-backup
. Did your eyes glaze over reading the last sentence? Don’t stress. If you have a Mac, you’ll do just as well alternating between two Time Machine drives. When I was using Windows a while back I did something much simpler. I had around 200 GB of data and a 3 TB external. That external drive looks like this:
Each time I did a backup I created a new folder named after the current date and did a copy-paste of the relevant folders from my computer. For bonus points the drive was Bitlocker-encrypted, though even that was probably overkill. Each backup would take a couple of hours to complete but it didn’t matter—it was quick to kick off, and importantly it was extremely simple. Virtually everybody understands copying files on and off drives. You simply don’t need fancy backup software to do backups if you’re prepared to take a couple of minutes every week to make it happen.
Having two backup drives is good. If your computer fails you have two opportunities to get your data back. You can have three or more if you really want to. At no point have you granted a cloud provider the opportunity to show your files to intelligence agencies, scan it for copyrighted content, train AI models on it, or mess up their own backups. You have direct access to your own backup no matter what. This backup forms the bedrock of your autonomous computing experience. If your photos are in the cloud and you wish they weren’t—well, download them into a folder on your hard drive. Now they will be picked up in your backup strategy and you can be confident about it. If you want to sync your notes with your laptop—fine, just make sure they sync back to your computer where the backups happen and they will be safe.
Putting in place a good backup system is the most onerous and most important part of autonomous computing. Think of it as another small physical chore that we have to do regularly, like taking out the rubbish or watering the plants. Get it right, and we will not hesitate to bring other data under our own control.
You might wonder how this works if the data you’re trying to back up doesn’t take the form of neat files on disk, because it’s wrapped up in the internal format of some application. I work around this by backing up my entire home directory but it’s also helpful to change the way we operate so that data is stored in easily-accessible self-contained directories where possible. We’ll explore this further later.