A while ago I was strongly in favor of everything offline. I liked having all of my passwords encrypted in a file on disk that I would only decrypt for a short time to look at a password, and then encrypt the file again. I liked downloading programs and having them on disk, and feeling happy knowing that if my internet ever went out, I would have access to this program forever. I enjoyed knowing that all of my music is stored securely on a hard drive I control so that I can never get locked out of my music collection.
One day, I was traveling with my laptop, and I was looking for a bookmark to some article and couldn't find it. I realized that I had bookmarked this on my desktop back at home, and the bookmark wasn't on my laptop. I spent about 20 minutes searching for the article again, trying to remember the keywords I used the first time I found it.
Another time while traveling I needed to decrypt my password file to get the password to my bank account. I decrypted it using the usual:
gpg --decrypt passwords.txt.gpg > outputfile
However, I absent-mindendly used tab-completion, and accidentally did the following:
gpg --decrypt passwords.txt.gpg > passwords.txt.gpg
Because I guess the redirect gets processed first, this had the effect of setting the passwords.txt.gpg
file to be empty, and then gpg
tried to read from this empty file, which of course caused an error.
After being confused and staring at the error message for a few moments I realized I had deleted my entire encrypted file of passwords.
This was "fine" as my passwords still existed on another file, but back on my desktop. In the meantime, I was locked out of all of my accounts, and I had no way of accessing the backup passwords.txt.gpg
file that was back at home.
After this incident and many other minor inconveniences that added up, I decided to embrace the cloud.
I started using a password manager with cloud sync. I use a managed service to sync my bookmarks across my various devices. I even made a few personal private apps that "live in the cloud" for convenience. For example, I used to manage my blog via git, and some shell scripts. Well after not writing a blog post for almost a year, I forgot how my own blogging system worked, and was frustrated. So I built a webapp that uses monaco (the code editor that powers VS code) and a simple markdown renderer to let me type out a blog post in my browser, and then a button that simply uploads it to my website.
I still like having offline data/programs, but the convenience of accessing data/apps in the cloud from anywhere is too convenient to pass on.