Notes on choosing a Linux distro (for Linux geeks only)

I've ditched Windows on my desktop machine. Similarly, I can't keep using macOS on my laptop. I decided to put Linux on it (and dual-boot). I thought it would be a good idea to use a different distro. But which?

I thought I would do my deliberations publicly. So here goes.

If I haven't exactly mastered Ubuntu with Gnome, why not keep working on it? But flavors of Linux are so similar that if you use one, it's not hard to figure out another. So I think it's a good idea for learning purposes to install a different one.

After a fair bit of hunting about, the following caught my eye enough to do some research and take some notes—your mileage may vary, obviously, as our needs and ability levels vary widely. I'll put these in order of how quickly I rejected them (from fastest rejection to slowest).

  • Arch. Nah, that's for advanced users, and I'm not an advanced Linux user (yet).
  • Kali. More privacy-oriented, but not beginner-friendly because it is actually aimed at security experts. I'll have to pass on that.
  • Pop!. The thing that has me considering the new Pop! distro is that it is specially adapted from Ubuntu by System76 (which sells Linux computers) for developers. Its landing page is very persuasive, but after I looked at some videos about it, it just has too much Ubuntu to be a suitably different system. I guess I'll pass on the Ubuntu-based systems; I want to try something different.
  • Debian. One source bills this as especially good for programming; but it is also not really for beginners, and besides, Ubuntu is based on Debian. So...
  • Mint and Deepin. If I'm rejecting Ubuntu-based distros out of hand, these must go; they're Ubuntu-based.
  • Manjaro and Antergos. These Arch-based distros are supposedly easier to install, and might be a good introduction to a more powerful Linux experience.
  • openSUSE Leap. This is a very old distro, and is very polished, well-documented, and stable (at least the Leap distro; Tumbleweed follows a rolling release model and so should be expected to be less stable). One source says it is targeted at developers and has "stringent" security protocols, whatever that means exactly. It's praised for its customizability, and I like the idea that one can pick and choose packages to include on installation.

So, I'm down to Manjaro, Antergos, and openSUSE Leap. I still haven't made up my mind. So maybe you can help me decide, given my basic requirements:

  • Sufficiently different from Ubuntu with Gnome to give me a usefully different Linux experience.
  • Especially excellent for programmers.
  • Stable, established, well-documented.
  • Not advanced. Needn't be very easy-to-use.
  • I place a premium on security.
  • Looks nice. I don't actually enjoy ugly, clunky stuff.
  • Likes: keyboard shortcuts, snapping windows, reasonably easy customizability, cool, well-designed workspace functionality, etc.
  • I don't really want a rolling release distro, assuming that they're rather more open to disruptive problems. I'm too busy to squash trivial bugs others will eventually squash for me.
  • Works on MacBook Pro machine without too much trouble (it's OK if I have to install a driver, I guess).


A plea for protocols

The antidote to the abuses of big tech is the very thing that gave birth to the Internet itself: decentralized, neutral technical protocols.

  1. The thought that inspires
    my work.
    Ever since I started
    work on Nupedia and then Wikipedia, a thought has always
    inspired me: just imagine the stunning possibilities when people
    come together as individuals to share their knowledge, to create
    something much greater than any of them could achieve individually.

  2. The sharing economy. There
    is a general phrase describing this sort of laudable activity: the
    “sharing economy.” The motivations and rewards are different
    when we work to benefit everyone indiscriminately. It worked well
    when Linux and OSS were first developed; then it worked just as well
    with Wikipedia.

  3. The Internet itself is an
    instance of the sharing economy.
    The Internet—its ease of
    communication and publishing together with its decentralized
    nature—is precisely what has made this possible. The Internet is a
    decentralized network of people working together freely, for mutual
    benefit.

  4. The Internet giants have
    abused the sharing economy.
    About ten years ago, this all
    started to change. More and more our sharing behavior has been
    diverted into massive private networks, like Facebook, Twitter, and
    YouTube, that have exerted control and treated contributors as the
    product.

  5. Facebook’s contempt for
    our privacy.
    All you want to do is easily share a picture with
    your family. At first, we thought Facebook’s handling of our
    private data would just be the price we had pay for a really
    powerful and useful service. But over and over, Facebook has shown
    utter contempt for our privacy, and it has recently started
    censoring more and more groups based on their viewpoints. We don’t
    know where this will end.

  6. This aggression will not
    stand, man
    . We need to learn from the success of
    decentralized projects like Linux, open source software, Wikipedia,
    and the neutral technical protocols that define the Internet itself,
    that we don’t have to subject
    ourselves to the tender mercies of the Internet giants.

  7. How.
    How? Just
    think. The Internet is made up of a network of computers that work
    according to communication rules that they have all agreed on. These
    communication rules are called protocols and
    standards.

  8. Protocols
    and standards...
    There
    are protocols and standards
    for transferring
    and displaying
    web pages, for email, for transferring files, and for all the many
    different technologies
    involved.

  9. ...which
    are
    neutral.These
    different standards are neutral. They explicitly don’t care what
    sort of content they carry, and they don’t benefit any person or
    group over another.

  10. We need more
    knowledge-sharing protocols.
    So here’s the thought I want to
    leave you with. You evidently support knowledge sharing, since
    you’re giving people awards for it. Knowledge sharing is so easy
    online precisely because of those neutral technical protocols.
    So—why don’t we invent many, many more neutral Internet
    protocols for the sharing of knowledge?

  11. Blockchain is awesome
    because it creates new technical protocols.
    Probably the biggest
    reason people are excited about blockchain is that it is a
    technology and a movement that gets rid of the need of the Internet
    giants. Blockchain is basically a technology that enables us to
    invent lots and lots of different protocols, for pretty much
    everything.

  12. Why
    not Twitter- and Facebook-like protocols?
    There
    can, and should, be a protocol for
    tweeting without Twitter.
    Why should we have to rely on one company and one website when we
    want to broadcast short messages to the world? That should be
    possible without
    Twitter. Similarly, when we want to share various other tidbits of
    personal information, we should be able to agree on a protocol to
    share
    that ourselves, under our
    own terms—without
    Facebook.

  13. Wikipedia centralizes,
    too.
    Although Wikipedia is an example of decentralized editing,
    it is still centralized in an important way. If you want to
    contribute to the world’s biggest collection of encyclopedia
    articles, you have no choice but to collaborate with, and negotiate
    with, Wikipedians. What if you can single-handedly write a better
    article than Wikipedia’s? Wikipedia offers you no way to get your
    work in front of its readers.

  14. Everipedia,
    an encyclopedia protocol.
    Again,
    there should be a neutral encyclopedia protocol,
    one that allows us to add
    encyclopedia articles
    to a shared database that its creators own and develop, just like
    the Internet itself. That’s why I’m working on Everipedia, which
    is building a blockchain encyclopedia.

This is a little speech I gave to the Rotary Club of Pasadena, in the beautiful Pasadena University Club, January 31, 2019.


Further, alarming evidence of Larry's creeping geekhood

Isn't she beautiful

Yes, I'm another one who has plunked down unnecessary amounts of money just to get a keyboard with keys that bump, click, and have precise activation points, and with switches that people care a lot about, changeable keys, etc. So far, I don't regret the purchase one bit and I'm rather happy with it. And proud, since here I am bragging about it.

Not only did I get one of these contraptions, called a mechanical keyboard, I totally geeked out and got a 61-key (so called "60%") keyboard. This cut out the function keys, the arrow keys, the number pad, etc. How do I type all that stuff? What about when I want to do a screen capture? Well, for that there is the function layer. In fact, there is the default function layer, which has things like the arrow keys (on my keyboard, they're the green keys, I, J, K, L), as well as three more programming function layers. I don't have to use the Fn key to activate the function layer, either; I can use the Caps Lock key, which I reassigned to Fn with a simple dip switch. So if I want to print the screen, I simply type Fn (or Caps Lock) + p.

I bought the above keyboard from WASD Keyboards. They allow you to choose your keys and choose what is printed on your keys (see what I have on my space bar?). Mine is fitted with the both-bumpy-and-clicky Cherry MX Blue switches, and I can confirm that the bumpyclickiness is "satisfying," whatever that means, in this context, exactly. I do feel approximately 5% geekier, which puts my geekiness ratio might higher than it was not that long ago, what with having installed Linux and starting to really pay attention to privacy. (Speaking of privacy, as some have observed, I need to make larrysanger.org https: . I will soonish, honest.)

So why spend this money (OK, it was $160) on a keyboard? The usual reasons are mine, too: the keys are rather more pleasurable to type on (it's true! The sense of precision is great!). The colors on the self-designed keys make me happy. The high quality also makes me happy. And as for the reasons for a 60% keyboard: I think it will make me a faster writer and coder, as I don't have to leave the center of the keyboard (I'm already seeing this to be the case). It also means I don't have to reach over the extra keys to get to the mouse, so my fingers can be directly in front of me, with the keyboard centered in front of my monitors. I couldn't do this with my old keyboard, which hogged the desk. My workspace is simpler now and that's actually a bigger deal than I thought it would be.

Normally, I would have put the above paragraphs on Facebook and/or Twitter. Instead, as part of my movement away from social media, I decided to put it on my blog and let people find it their own damn selves, and if not many people do find it, and if it has zero chance of "going viral," ask me if I care.


How to delete Ruby and Rails (and other gems) from Ubuntu 18.04

In order to install Ruby and Rails on Ubuntu 18.04, first I had to completely wipe my first, abortive attempt. That proved to be harder than expected. So, in order to save others the effort I had to go through, here's what I did. This worked for me...who knows if it'll work for you, though? I compiled some of the rm -f commands from other sources, but others I figured out myself. If it works, this should completely wipe Ruby and Rails (and other associated command line things, including rvm but not rbenv) from your system, so you can start over with a clean slate. Don't complain to me if anything goes wrong, but if you want to suggest helpful edits, please do. Some of these commands require sudo; if you save this as a .sh file, though (as I did), you can sudo the whole thing.

# HOW TO DELETE RUBY AND RAILS (AND OTHER GEMS)
apt-get purge ruby2.5
aptitude purge ruby
rm -rf /usr/local/lib/ruby
rm -rf /usr/lib/ruby
rm -f /usr/local/bin/ruby
rm -f /usr/bin/ruby
rm -f /usr/local/bin/irb
rm -f /usr/bin/irb
rm -f /usr/local/bin/gem
rm -f /usr/bin/gem

rm -rf /home/globewalldesk/.gem/ruby
rm -rf /home/globewalldesk/.codeintel/db/ruby
rm -rf /usr/local/bin/rails
rm -rf /var/lib/gems/
rm -rf /home/globewalldesk/.bundle/
rvm implode
rm -rf ~/.rvm
unset rvm_path

# THEN DO THIS TO MAKE SURE YOU'RE CLEAN:
# sudo find / -name 'rvm' -name 'rbenv' -name 'ruby' -name 'rails' -name 'gem'
# sudo find / -name 'rbenv'
# sudo find / -name 'ruby'
# sudo find / -name 'rails'
# sudo find / -name 'gem'
# sudo find / -name 'railties'
# cat ~/.bash_profile ~/.bashrc ~/.profile ~/.zshrc ~/.mkshrc ~/.zlogin | grep 'rvm\|rbenv\|ruby\|rails\|gem\|railties' # search for keywords in your bash profiles--they might need to be deleted
# env | grep rvm_path # ensure it's unset


How and why I transitioned to Linux—how you can, too

Let me briefly tell my Linux story. If you're thinking about moving to Linux, and wondering how you'd do so, it might give you some pointers and inspiration.

The back story

My first introduction to the command line was in the 80s when I first started learning about computers and, like many geeky kids of the time, wrote my first BASIC computer programs. But it wasn't until my job starting Nupedia (and then Wikipedia) that I spent much time on the Bash command line.

(Let me explain. "Bash" means "Bourne-again shell," a rewrite of the class Unix shell "sh." A "shell" is a program for interacting with the computer by processing terse commands to do basic stuff like find and manipulate files; a terminal, or terminal emulator, is a program that runs a shell. The terminal is what shows you that command line, where you type your commands like "move this file there" and "download that file from this web address" and "inject this virus into that database". The default terminal used by Linux Ubuntu, for example, is called Gnome Terminal--which runs Bash, the standard Linux shell.)

Even then (and in the following years when I got into programming again), I didn't learn much beyond things like cd (switch directory) and ls (list directory contents).

It was then, around 2002, that I first decided to install Linux. Back then, maybe the biggest "distro" (flavor of Linux) was Red Hat Linux, so that's what I installed. I remember making a partition (dividing the hard disk into parts, basically) and dual-booting (installing and making it possible to use both) Linux and Windows. It was OK, but it was also rather clunky and much rougher and much less user-friendly than the Windows of the day. So I didn't use it much.

Linux on a virtual machine

When I decided in mid-2016 that I wanted to start learning to program, really really, more seriously this time, I knew I'd have to transition soon to Linux, especially if I was going to learn Ruby on Rails (which I was and am). There's less pressure to do this if you're a Mac user, since modern Macs make a Bash console easily available; OSX is based on Unix and so is a sibling of Linux. Anyway, if you don't want to plunge headfirst into Linux-only or dual-booting, then the Thing To Do, beginners are rightly told, is to install Linux on a virtual machine.

A "virtual machine" (VM) is a program that, generally, runs in Windows or Mac and allows you to run a completely distinct operating system within a window (or in my case, a couple windows, one for each monitor). When I turned on my computer (i.e., the physical machine with the on switch), I booted into Windows as usual. But when I wanted to start programming, I started the VM and, inside the windows that popped up, it looks like a separate Linux computer is running. It's easy to switch back and forth; you can do so with the click of a mouse.

One of the first things I had to decide was which distro (flavor of Linux) to use. Leading distros include Ubuntu, Mint, Debian, Fedora, and CentOS. I chose Ubuntu because it was (and is) popular, relatively stable, well-supported, and relatively easy for newbies to get into. I find Ubuntu running the Gnome desktop environment—I'm not going to bother explaining what that means, but different distros can run different desktop environments—to be a pleasure, as I'll explain later.

My precocious son H., then age 10, had already set up a VirtualBox VM, so I had his help installing Linux in one myself. Installing Ubuntu to a VirtualBox VM is not terribly easy if you've never done it before, but there are plenty of tutorials and free help to be found online. If you're moderately technical, you can do it. It's not that bad.

Why I decided to install Linux on a partition

I used Ubuntu in VirtualBox for a couple years. It was a great way to transition from Windows to Linux; I ran Linux on a VM when studying programming, and I ran Windows for everything else.

Then came 2018, with its stunning revelations and outrages by Facebook, Apple, Google, and others. With privacy and free speech—in short, digital autonomy—deeply under threat, I decided to lock down my cyber-life. (I encourage you to do the same.)

I'd wanted to run Linux on a partition for a long time (doing so is quite a bit faster and more seamless than a VM). But when all these giant, centralized corporations showed such contempt for our privacy (and thus our security) and free speech, I decided that I was going to do all I could to take my data out of their hands. Microsoft is and always has been terrible when it comes to security, but with Windows 10—though admittedly an improvement in UX—they jumped on the privacy-violating bandwagon. Windows 10 bothered me ever since it came out. Now finally I decided I'd have to do something about it.

See, I've always thought information privacy was important, but like many of us, I rationalized the increasingly jaw-dropping privacy violations and security failures by corporations (and government, for that matter) in the last ten years or so as the price we pay for awesome new technology. You know—awesome new tech like Facebook, Twitter, Google Search, Google Chrome, cloud storage, and a free but better-designed operating system like Windows 10 was (at launch). At first, all this seemed indeed worth the price. (Or enough to keep me from taking the privacy issues seriously.) But when these corporations (and government) over and over brazenly demonstrated just how much contempt they have for our information privacy and security, not to mention free speech rights, the bloom was off the rose. Something snapped, and I'm never going back to them.

Privacy matters. A lot. Facebook? Don't need it. I'll be switching back to good old-fashioned email groups soon. Twitter? OK, I might keep it around strictly for advertising purposes, but don't expect much in the way of personal sharing. Google Search? Meh, DuckDuckGo has come a long way and is as good as Google for most (still not all) purposes. Google Chrome is simply not better than privacy-respecting browsers like Brave (my preference) and Firefox. I'll be moving my data to a more secure solution than traditional cloud storage soon.

A few days ago, as I worked through my to do list, I finally decided it was time to ditch Windows and switch to Linux. I still have Windows available for things like Camtasia Studio (video production), but I really don't need it for most purposes.

The switch

There are five basic steps to the process of adding Linux to your Windows or Mac machine:

  1. Pick a distro.
  2. Put the distro on a thumb drive or DVD so you can boot to it from there.
  3. Create a partition big enough for the Linux distro.
  4. Install the Linux distro in the partition.
  5. Configure Linux so you can use it on a daily basis.

I won't explain how to do these things (there are lots of tutorials already available, like this), but here are a few notes. And for the non-techies out there who have bravely read this far, let me tell you: the hardest part of using Linux is installing it. Don't feel bad if you need to get help. Heck, I've installed it myself before my 12-year-old son was born, and I wasn't too proud to get a lot of help from him the second time around! If you don't have a family or friend who can help, and you have to pay a rent-a-geek, it'll be money well spent.

I discussed #1 above. Notes on #2 and #3: Creating a partition is a pretty simple process. But if you're going to use a Linux boot loader (i.e., the thing that tells your computer which operating system to load; I use Grub) then you'll first want to put Linux on a thumb drive, since it's typically quite small and easily fits, and boot to that. Then you'll probably use GParted (the Linux partition software) to actually do the partitioning. You'll want to make sure you actually know what you're doing (so, read up about potential pitfalls) before making any changes. It's also very important to make sure your must-have data is well backed up, because you might lose it. If you do it right, there's little chance you will; but there's always a chance. Also, make sure you allocate reasonable amounts of space to your respective partitions. You don't want to run out of space on either one.

As to #4, actually installing Linux, once the partition is ready, is the easy part. It takes a little while (i.e., waiting), then you set your time zone and a login (very important, as you'll use it a lot), then you're done!

The easiest part is #5, but you're not totally out of the woods yet. The Ubuntu Software app is like a free app store (it's not the only one, of course), and they've made it quite easy to install a lot of software. Especially if you're programming, though, you'll have to use the command line at least sometimes. The most important thing to remember here (and maybe for the whole process) is to do intelligent web searches for help whenever you need it.

There's nothing magical or particularly deep and difficult about any step of this process. It just requires a little bravery, lots of Internet searching, time, and patience, and you can definitely get it done.

So...how is it?

So far, I love using Linux (OS), Ubuntu (distro), Gnome (desktop environment) as my main workstation. I actually hate it when I have to boot up Windows. Not only does it feel clunkier (really) and more unnecessarily bloated, I can't stop thinking about how I don't know what data is being sent to Microsoft.

If you haven't tried Linux for a long time, let me tell you: it has changed a lot from the early days. It is not just more usable than it was, in some ways it is more usable than Windows or Mac, in my opinion, for day-to-day work. I mean, of course this applies if you can deal with a few technical challenges. But if you can, Linux is more usable not just because of the nicer UX available, but also because of how configurable Linux is. You can change almost anything on the system you want. You want a different look and feel? There are apps for that. You want a different sort of app store? There are alternatives. You want something simpler and leaner? Available. Something that looks and feels like Windows or Mac? Available, of course.

One big exception is in installing some technical software that, if you aren't a programmer, you probably won't need to install. If for whatever reason you want or need to start using the command line (for example, running Bash on a terminal like Gnome, as I said above), try this beautifully written tutorial. The command line isn't that difficult to learn, actually. The basics are rather simple once you get the hang of them.

Another big exception lies in the sometimes non-standard and quirky ways the software sometimes behaves. Again, this is much better than it was in days gone by, but quirkiness is still definitely a Linux thing. I guess I don't mind.

A final difficulty is that it has some occasional, and almost always very minor, operating system issues that simply would never crop up for Windows or Mac. This is probably one of the bigger problems and obstacles to wider adoption. I can give you an example from Ubuntu 18.04, which I installed: it has a "memory leak" problem that very slowly and progressively eats up your memory (over the course of days) until you have to reboot. This will be fixed in an update soon if it hasn't been already.

But enough of the negatives. One enormous positive that neither Windows or Mac is likely ever to be able to boast is that it's an operating system that respects your autonomy. You own your system, not Microsoft or Apple. You don't have to ask a giant corporation for permission to do anything. You don't have to worry about them invading your privacy, putting your data at risk of hacking, or censoring you. And you have all the tools you'll need to make the system just the way you like it. That might not sound like a big deal (and maybe it wouldn't be to you), but if you try it, you might find yourself delighted with all the options. I was.

In summary, here are the similarities and difference to a typical desktop (Windows and Mac--I have both) experience:

  • Browsing is exactly the same as in Windows (I use Brave).
  • My mail program is exactly the same (MailSpring).
  • Other apps, like Telegram, Slack, and more, are exactly the same.
  • My password manager is almost exactly the same (Enpass).
  • For the long tail of specialist software, most of it is free, and you don't have to worry nearly as much about downloading viruses. Linux is much harder to hack and hackers rarely try.
  • Finding and loading software is different. It's better in that most of the software is free and quite easy to find, and there's a lot more of it. It's worse, however, in that more technical software (at least, the stuff I use) requires comfort with the command line. This is a deal-breaker for some non-techies, I know. But I think most of the software non-techies use will be pretty easy to install. Ubuntu developers put a great deal of work into usability, and it shows.
  • A lot of the free/open source software for office work is "fine" but will strike experienced MS Office users as a little quirky and clunky in places. Office 360 doesn't run in some flavors of Linux except using Wine, which doesn't always work (my son uses Wine for some purposes). This is one reason I still have a Windows partition going.
  • Linux is generally lean and fast. Unless you install a particularly bloated distro, it's much faster than Windows or Mac on the same machine. This is a very nice benefit.
  • If you're a serious gamer, Linux won't satisfy you (yet).
  • It can be subject to weird but non-serious crashes and problems solved with updates.

Back in 2002 when I was using Linux the first time around, it wasn't really ready for prime time. But it is now. You kind of have to be able to search the Internet and read some technical help pages in order to learn how to use the thing, or get help from someone who can do this. It is, after all, another whole operating system. So, yes, there's still a learning curve. It's not a huge learning curve, though, and not nearly as big as it used to be.

Linux: it's not for just uber-geeks anymore. Admittedly, there is probably a minimum intelligence requirement. But in the not-too-distant future, we might well see a completely foolproof distro.


How I locked down my passwords

If you’re one of those people who uses the same password for everything, especially if it’s a simple password, you’re a fool and you need to stop. But if you’re going to maintain a zillion different passwords for a zillion different sites, how? Password management software. I’ve been using the free, open source KeePass, which is secure and it works, but it doesn’t integrate well with browsers, or let me save my password date securely in the cloud (or maybe better, on the blockchain). So I’m going to get a better password manager and set it up on all my devices. This is an essential to locking down my cyber-life. One of the ways Facebook, LinkedIn, et al. insinuate themselves in our cyber-lives is by giving us an easy way to log in to other sites. But that makes it easier for them to track us everywhere. Well, if you install a decent password manager, then you don’t have to depend on social login services. Just skip them and use the omnipresent “log in with email” option every time. Your password manager will make it even easier than social login systems did.

You need a password manager

Password management software securely holds your passwords and brings them out, also securely, when you're logging in to websites in your desktop and handheld browsers. Decent browsers (like Brave) make your passwords available for the same purposes, if you let them, but there are strong reasons you shouldn't rely on your browser to act as a password manager.

Instead, for many years I've been using KeyPass, a free (open source) password manager that's been around for quite a while. The problem with KeyPass, as with a lot of open source software, is that it's a bit clunky. I never did get it to play nicely with browsers, and your passwords are saved in a file on your computer and/or in the cloud. If you lose the file, you lose your passwords.

Password managers do, of course, automatically generate passwords and save them securely. They can also (but not all do) store your password database securely in the cloud, so you don't have to worry about losing it (you can export a copy if you like). You can use it on all your devices with equal ease. They'll let you log in with a fingerprint on your phone.

A very nice feature is that they'll securely store payment information, so your browser, websites, and operating system don't have to hold that information. That means you don't have to trust them to manage this information properly. You only need to trust the password manager...

But can you trust password managers?

"Ah," you say, "but can you trust password managers?" That's not a bad or naive question at all; it's an excellent question. Consumer Reports, of all things, weighs in:

By default, LastPass, 1Password, and Dashlane store your password vault on their servers, allowing you to easily sync your data across devices. As a second benefit, if your computer crashes you won’t lose your vault.

But some people just really hate the idea of storing all their passwords on one site in the cloud—no matter what the company promises about its security measures, there's probably a bulls-eye painted on its encrypted back. If that sounds like you, it's possible to store your passwords locally.

Dashlane lets you do this by disabling the “Sync” feature in Preferences. This will delete your vault and its contents from the company’s servers. Of course, any further changes you make to your vault on your computer won’t show up on your other devices.

So what's my take? There are layers upon layers of security protecting your password repository, not least of which is the (hopefully well-chosen) master password to your password database. While you do have to choose the professionalism and honesty of a cloud-based password manager, I think that's their business, so I'm inclined to trust them. But, but!

I ask myself: what is more likely, that they become compromised (for whatever reason—let your imagination run wild) or instead that I lose my master password or all copies of my password database or somehow allow myself to be hacked? I think both are fairly unlikely, first of all. I am certainly inclined to distrust myself, especially over the long haul. And frankly, the idea that a security business is compromised seems unlikely, since security is their business. But could a password manager server be hacked? That is, again, a really good question, and you wouldn't be the first to ask it. Password manager company OneLogin was actually hacked, and the hackers could actually "decrypt encrypted data," the company said. Holy crap!

Also, which is most disastrous? Losing my password file would not be a disaster; I can easily generate new passwords; that's just a pain, not a disaster. But a hacker getting hold of my passwords in the cloud (no matter how unlikely)? That could be pretty damn bad.

After all, especially as password manager companies grow in size (as successful companies are wont to do), they naturally can be expected to become a honeypot for hackers. Another example of a hacked password management company was LastPass, which was hacked in 2015, although without exposing their users' passwords.

If you're like me, you have libertarian concerns about having to trust external entities (and especially, giant corporations) with your entire digital lives. You might also not want to trust (future?) dangerous governments with the power to force those corporations to give access to your entire digital life, then we're no longer talking about anti-crime cybersecurity. Then it looks like you shouldn'tsensibly put your password files in a corporate-managed cloud. Then you're having to trust people a little too much for my comfort. So you should manage their location yourself.

Then there are two further problems. First, can you be sure that it is impossible for anyone at the password management software company to crack your password database, even if you host it yourself? (Do they have a copy? Can they get access to a copy? If they have access, are there any back doors?)

Second, there's the practical issue: Without the cloud, how do you sync your passwords between all your devices? That feature is the main advantage of hosting your passwords in the cloud. So how can you do it automatically, quickly, and easily?

What self-hosted password manager is really secure?

Several password managers use the cloud, but what is stored in the cloud is only the encrypted data. All the login and decryption happens on your local device. This is called zero-knowledge security, and it might be a suitable compromise for many. I have one main issue with this: Especially if the software is proprietary, we must simply trust the company that that is, in fact, how it works. But that's a lot to ask. So I'll pass on these. I'll manage the hosting of my own passwords, thanks very much.

Here are my notes on various password managers:

  1. These all feature zero-knowledge security but seem not to allow the user to turn off cloud sync (maybe they do, I just couldn't find evidence that they do): 1Password, Keeper Password Manager, LastPass, LogMeOnce, Password Boss, Zoho Vault.
  2. Sticky Password Premium: Allows home wifi sync of passwords, which is just fine. Fills out forms, works on all your devices...except Linux devices. Linux does not seem to be supported. Next!
  3. RoboForm: Doesn't have a sync feature without using their cloud service, but hey! It has a Linux version! Might work on Brave, since Brave is built on Chromium and there is a Chrome extension. This was enough for me to install it (and it worked!), but it seems to be rather clunky and there were a few different things that didn't inspire confidence.
  4. Dashlane: This has zero-knowledge security, which isn't a bad thing, but in addition, it allows you disable sync. Whenever you turn it off, the password data is wiped from their servers (so they say). You can turn it on again and sync your devices, then turn it off again. This is within my tolerance. Also, Dashlane has a Linux version. In other respects, Dashlane seems very good. I installed it and input a password. The UX is very inviting—even the Linux version. It's expensive, though: it's a subscription, and it's $40 for the first year (if you use an affiliate link, I guess), and $60 if you buy it direct, which I'm guessing will be the yearly price going forward. That's pretty steep for a password manager.
  5. EnPass: Here's something unusual—a password manager that goes out of its way to support all platforms, including Linux and even Chromebook (not that I'd ever own one of those). Rather than an expensive subscription, like Dashlane, EnPass's desktop app is free, while the mobile version costs $10, and that's a one-time fee. They don't store passwords in the cloud; passwords are stored locally, but EnPass has some built-in ways to sync the passwords (including by wi-fi, like Sticky Password). The autofill apparently doesn't work too well, while more expensive options like Dashlane do this well, and lacks two-factor authentication, which would be nice, and other "luxury" features.

Installation and next steps

Dear reader, I went with EnPass.

So how did I get started? Well, the to do list was fairly substantial. I...

  1. Made a new master password. I read up on the strategy for making a password that is both strong, easy to remember, and easy to type. I ended up inventing my own strategy. (Do that! Be creative!) So my master password ended up being a bit of a compromise. While it's very strong, it's a bit of a pain to type; but it's pretty easy to remember. Whatever master password you chose, just make sure you don't forget it, or you'll lose access to your password database.
  2. Installed EnPass on Windows and Linux and tested it to see if it worked well in both. It does (so far).
  3. Used EnPass to sync the two installations using a cloud service. (I'll be replacing this with Resilio Sync soon enough, so it'll be 100% cloudless.) I confirmed that if I change a password in one, it is synced in the other.
  4. Imported all my Keepass passwords, then tested a bit more on both platforms to make sure nothing surprising is happening. So far, so good. My only misgiving about EnPass so far is that there doesn't seem to be a keyboard shortcut to automatically choose the login info. I actually have to double-click on the item I want, apparently.
  5. Deleted all passwords from all browsers, and ensure that the browser doesn't offer to save new passwords. Let the password manager handle that from now on. (No need for the redundancy; that's a bit of extra and unnecessary risk.)
  6. Installed on my cell phone, synced (without issue), and tested. (Annoyingly, the Enpass iOS app doesn't do autofill, but I gather that's in the plans.)
  7. Installed app and browser plugin on my (Mac) laptop. No issues there either.
  8. Deleted Keepass data in all locations. That's now redundant and a needless risk as well.

I'm now enjoying the new, secure, and easy access to my passwords on all my devices. I'm also happy to be free of browser password managers.

This was installment four in my series on how I'm locking down my cyber-life.


How I set up private email hosting for my family

Here's how I actually set up my own private email hosting—sanger.io! I already finished choosing a private email hosting provider. So what was the next step?

I still had to choose a plan with my chosen provider (InMotion Hosting, which didn't pay me anything for this) and pay for it. The details are uninteresting; anybody could do this.

Now the hard work (such as it was) began. I...

(1) Read over the domain host's getting-started guide for email. InMotion's is here, and if you have a different host, they're bound to have some instructions as well. If you get confused, their excellent customer service department can hold your hand a lot.

(2) Created a sanger.io email address, since that's what they said to do first. In case you want to email me, my username is 'larry'. (Noice and simple, ey?) InMotion let me create an email address, and I was rather confused about how this could possibly work since I hadn't pointed any DNS, hosted by NameCheap, to InMotion.

(3) Chose one of the domain hosts's web app options. For a webmail app (InMotion gave me a choice of three), I went with Horde, which is, not surprisingly, a little bit clunky compared to Gmail, but so far not worse than ZohoMail; we'll see. Unsurprisingly, when I tried to send an email from my old gmail account to my new @sanger.io account, the latter didn't receive it. Definitely need to do some DNS work first...

(4) Pointed my domain name to the right mail server. In technical jargon, I created an MX record on my DNS host. This was surprisingly simple. I just created an MXE Record on NameCheap, my DNS host for sanger.io, and pointed it to an IP address I found on InMotion. So basically, I just found the right place to paste in the IP address, and it was done. Now I can send and receive email via sanger.io (at least via webmail).

(5) Created email addresses for my other family members. Very easy.

(6) Installed a desktop email client. Why? I wasn't using one before because I just used Gmail in a browser and Apple's mail app on my phone. I could keep using webmail (on InMotion) but a desktop client is apt to be nicer. I'd tell you which one I used, but I'm not confident it's particularly good.

(7) Installed a new email client for my phone. As I no longer trust or want to support Apple if I can at all help it, I wanted to stop using their email client. I paid $10 for a privacy-touting mail client which is quite good so far: Canary Mail.

(8) Change the mail address registered with the big, consequential apps and services. This is the most labor-intensive step, and the step I most dreaded. Sure, it was a pain. But it turns out it was tremendously satisfying to be able to tell them to stop using my wretched Gmail address and instead to start using my slick new permanent and personalized address. Was that fun? Heck yeah it was! Anyway, such apps and services include (click on the links for useful privacy tips):

  • The massive Internet and tech services: Google, Microsoft, Apple.
  • The big social media/community accounts: Facebook, Twitter, YouTube, Quora, Medium, LinkedIn.
  • Companies I pay money to: Amazon, Netflix, PayPal, Patreon, InMotion, GoDaddy, NameCheap, Heroku, LifeLock, The Great Courses, any other bills.
  • Important stuff: my employer, the bank, medical info systems/apps, dentist, Coinbase.
  • Family, friends, and work and business people. Send them the message three times spread over a month or two, because if they're like me, they ignore such emails or don't act on them right away, and some old aunt of mine will keep sending mail to my gmail address for years and years. (I haven't actually done this one yet, but will soon. Gmail makes exporting of all your relevant contact info surprisingly difficult.)

(9) Create a Gmail forwarder! Buh-bye, Google! No need even to visit your crappy, biased, would-be totalitarian service for email any longer.

(10) Clean up and consolidation. There are a zillion little consequences when you change your email on all these big services, and I expect I'll be dealing with the consequences (nothing major!) for a few days or weeks to come. Among the things I know I'll have to do: (a) Install and configure mail clients on my laptop and iPad, and in other ways get those other devices working as expected again. (b) Update various email clients with address book information, as needed. (c) Actually collect my contacts from Google and Apple (harder than it sounds). (d) Change entries in my password manager from @gmail.com to @sanger.io. (e) Actually, get a new password manager...but that's a whole nuther thang. (f) Get Microsoft and Google and whatever else to forget my contacts...ditto.

This was installment three in my series on how I'm locking down my cyber-life.


How I chose an email hosting service to replace Gmail

I want to lock down my cyber-life. One basic constraint is that I want to replace Gmail, and when I do so, I never want to change my email address again. My biggest concern is that I never again want to be beholden to any major Internet corporation that has shown its contempt for privacy and censorship concerns. But if I can get "the last email address I'll ever need" while I'm at it, all the better.

The natural solution is to own my own domain name and seek out email hosting. This is not as difficult as it might sound, but it isn’t as easy as registering a new Google account. But then, that is exactly what Google is counting on: your laziness.

My new address will live at the newly-registered sanger.io domain. I and my family members can have unique and easy to remember email addresses for all the rest of our lives. After purchasing sanger.io (from NameCheap), I listed a number of features I knew I wanted: reasonable price, unlimited (or more than I could reasonably need) email storage space, IMAP support, a webmail app built in to the hosting provider (or else software that they make it easy for me to install on my new domain), and finally, enough email addresses for my purposes.

I ended up weeding out a fair few on grounds that they were too expensive (e.g., ProtonMail) or didn't offer enough storage space or accounts (e.g., NameCheap). I also weeded many out because their Alexa ranking was above 10,000, and while that isn't a make-or-break deal, I didn't want to have to deal with a fly-by-night operation and maybe have to move operations again.


Private email hosting comparison (Jan. 2019)

 PriceSpace limitIMAP supportWebmail app# of addressesWeb Hosting Geeks.com ratingIncludes web hosting
BlueHost Plus$5.95/moUnlimitedYesYesUnlimited2.5Yes
InMotion Hosting$6.39/moUnlimitedYesYesUnlimited4.5Yes
Rackspace Email$2/user/mo (so for me, $6/mo)25GB/ accountYesYes1/$2 accountnot reviewedNo
Zoho$3/user/mo (so for me, $9/mo)30GB/ accountYesYes1/$3 accountnot reviewedNo

I also discovered that some competitive email hosting (in the case of BlueHost and InMotionHosting) comes packaged with shared web hosting, which would be handy. I mean, then I could finally ditch GoDaddy, which I've used since time immemorial. (I dislike their upselling and bait-and-switch tactics, and detest their clunky user interface.)

I use Zoho Mail for work, and it's quite decent, but it costs half again as much and doesn't bundle shared web hosting. RackSpace email hosting seems high-quality, but it fails by comparison with BlueHost and InMotionHosting, in that those two offer unlimited email addresses and unlimited email storage space. And between the latter two, InMotionHosting seems to be the better reviewed by WebHostingGeeks.com and in other reviews. Besides, it supports Ruby; I could host my Rails projects there.

I looked at a number of other reviews of InMotionHosting, and it does indeed look good. It also has spam protection (which I didn't think to check on at first), lots of PostgreSQL databases if I want them, and free website data migration from GoDaddy.

I understand that this is not a route that most people will take. Paying for email seems unnecessary, many people would say. And certainly most people don't need their own domain name for email, they think. But just think: you can have the same, perfectly appropriate email address for the rest of your life. And you no longer have to feel beholden to the privacy practices of an Internet giant like Google.

Look, you don't have to be an uber-geek to do this. If you can't do it yourself, and you can get a geeky friend to set this up for you—it's not that expensive, and then you'd have your own address forever.

And you'd no longer have to support the growing monster that is Google. Gmail is admittedly a pretty awesome web app, but frankly I find I haven't missed it much when using ZohoMail for work, and I don't even use the Google email client on my phone. So the slightly slicker quality of the Gmail web app really doesn't make that much difference after all.

Next: how I set up my new private email hosting.

This was the second installment in my report about how I'm locking down my cyber-life.


How I'm locking down my cyber-life

Updated Feb. 1, 2019

Two problems of computer technology

My 2019 New Year's resolution (along with getting into shape, of course) is to lock down my cyber-life. This is for two reasons.

First, threats to Internet security of all sorts have evolved beyond the reckoning of most of us, and if you have been paying attention, you wonder what you should really be doing in response. My phone was recently hacked and my Google ID reset. The threats can come from criminals, ideological foes and people with a vendetta or a mission (of whatever sort), foreign powers, and—of special concern for some of us—the ubiquitous, massively intrusive ministrations of the tech giants.

Second, the Silicon Valley behemoths have decided to move beyond mere moderation for objectively abusive behavior and shutting down (really obvious) terrorist organizations, to start engaging in viewpoint censorship of conservatives and libertarians. As a free speech libertarian who has lived online for much of my life since 1994, these developments are deeply concerning. The culprits include the so-called FAANG companies (Facebook, Apple, Amazon, Netflix, Google), but to that list we must add YouTube, Twitter, and Microsoft. Many of us have been saying that we must take ourselves out of the hands of these networks—but exactly how to do so is evidently difficult. Still, I'm motivated to try.

At the root of both problems is simply that the fantastic efficiency and simplicity of computer technology is secured via our participation in networks and EULAs offered by massively rich and powerful corporations. Naturally, because what they offer is so valuable and because it is offered at reasonable prices (often, free), they can demand a great deal of information and control in exchange. This dynamic has led to us (most of us) shipping them boatloads of our data. That's a honeypot for criminals, authoritarians, and marketers.

There is nothing we can do about it—except to stop participating. That's why I want to kick the tech giants out of my life.

The threat to our privacy undermines some basic principles of the decentralized Internet that blossomed in the 90s and boomed in the 00s. The Establishment has taken over what was once a centerless, mostly privacy-respecting phenomenon of civil society, transforming it into something centralized, invasive, risky, and controlling. What was once the technology of personal autonomy has enabled—as never before—cybercrime, collectivization, mob rule, and censorship.

A plan

I don't propose to try to lead a political fight. I just want to know what can do personally to mitigate my own risks.

I'm not sure of the complete list of things that I ought to do. I will examine some of these in more depth (in other blog posts, perhaps) before I take action, but others I have already implemented.

  1. Stop using Chrome. (Done.) Google collects massive amounts of information from us via their browser. The good news is that you don't have to use it, if you're one of the 62% of the people who do. I've been using Firefox; but I haven't been happy about that. The Mozilla organization, which manages the browser, is evidently dominated by the Silicon Valley left; they forced out Brendan Eich, one of the creators of Firefox and the JavaScript programming language, for his political views. Frankly, I don't trust them. I've switched to Eich's newer browser, Brave. I've had a much better experience using it lately than I had when I first tried it a year or two ago and when it was still on the bleeding edge. Brave automatically blocks ads, trackers, third-party cookies, encrypts your connections—and, unlike Google, they don't have a profile about you. It's quite good and a pleasure to use. There might be a few rare issues (maybe connected with JavaScript), but when I suspect there's a problem with the browser, I try whatever I'm trying to do in Firefox, which is now my fallback. There's absolutely no need to use Chrome for anything but testing, and that's only if you're in Web development. By the way, the Brave iOS app is really nice, too.
  2. Stop using Google Search (when possible). (Done.) I understand that sometimes, getting the right answer requires that you use Google, because it does, generally, give the best search results. But I get surprisingly good results from DuckDuckGo, which I've been using for quite a while now. Like Brave and unlike Google, DuckDuckGo doesn't track you and respects your privacy. You're not the product. It is easy to go to your browser's Settings page and switch.
  3. Stop using gmail. (Done.) This was harder, and figuring out and executing the logistics of it was a chore—it involved changing all the accounts, especially the important accounts, that use my gmail address—but I'm totally committed to taking this step. I had wanted to do this for a while, but the sheer number of hours it was going to take (and did take) to make the necessary changes was daunting. Besides, I was tired of switching email addresses. I want to have one email address for the rest of my life. My new email address resides at sanger.io, a domain that my family will be able to use. Here's how I chose an email hosting service to replace Gmail. And here's how I set up private email hosting for my family.
  4. Start using (better) password management software. And never use another social login again. (Done.) If you're one of those people who uses the same password for everything, especially if it's a simple password, you're a fool and you need to stop. But if you're going to maintain a zillion different passwords for a zillion different sites, how? Password management software. I've been using the free, open source KeePass, which is secure and it works, but it doesn't integrate well with browsers, or let me save my password date securely in the cloud (or maybe better, on the blockchain). So I'm going to get a better password manager and set it up on all my devices. This is an essential to locking down my cyber-life. One of the ways Facebook, LinkedIn, et al. insinuate themselves in our cyber-lives is by giving us an easy way to log in to other sites. But that makes it easier for them to track us everywhere. Well, if you install a decent password manager, then you don't have to depend on social login services. Just skip them and use the omnipresent "log in with email" option every time. Your password manager will make it even easier than social login systems did. UPDATE: I switched to EnPass and told browsers to stop tracking my passwords. Read more.
  5. Stop using iCloud to sync your iPhone data with your desktop and laptop data; replace it with wi-fi sync. (Done.) If you must use a smartphone, and if (like mine) it's an iPhone, then at least stop putting all your precious data on Apple servers, i.e., on iCloud. It's very easy to do. After you do that, you can go tell iTunes to sync your contacts, calendars, and other information via wi-fi; here's how.
  6. Take control of my contact and friend lists. I've been giving Google, Apple, and Microsoft too much authority to manage my contacts for me, and I've shared my Facebook and other friends lists too much. I'm not sure I want these contacts knowing my contacts and friends, period. I don't know what they're doing with the information, or who they're sharing it with, really. Besides, if my friends play fast and loose with privacy settings, my privacy can suffer—and vice-versa. So I'm going to start maintaining my own contacts, thanks very much, and delete the lists I've given to Google and Microsoft. I'm glad I've already stopped putting this information on iCloud.
  7. Stop using gcal. I just don't trust Google with this information, and frankly, gcal isn't all that. I mean, it's OK. The only inconvenience is that I'm going to have to tell my workmates I don't use it, but that they should put my name in without my email address, and I'll add the appointment to my own calendar. This will involve installing a calendar app on my phone (I don't want to keep using Apple's) and figuring out how to sync my calendar data without the cloud, so I still have up-to-date copies of on all my devices.
  8. Switch to Linux. (Done with desktop; still need to do laptop.) I used a Linux (Ubuntu) virtual machine for programming for a while. Linux is stable and usable for most purposes. It still has very minor usability issues for beginners. If you're up to speed, in which case, it's simply better than Windows or Mac, period, in almost every way. On balance the "beginner" issues aren't nearly as severe as those associated with using products by Microsoft and Apple. When necessary, I can use my Mac laptop and will continue to maintain a Windows partition, e.g., for when I need to use Camtasia. But I've put Ubuntu on a partition on my workstation and switching to that as my main work environment. Linux is generally more secure, gives the user more control, and most importantly does not have a giant multinational corporation behind it that wants to take and share your information. Read more about how I switched to Ubuntu on my desktop.
  9. Nail down a backup plan. (In progress.) If you're going to avoid using so much centralized and cloud software, you've got to think not just about security but about backing up your data. I've got a monster of a backup drive, as well as backup software and knowledge of how to use it, but what I don't have are excellent habits to use this stuff regularly. I don't even have regularly-scheduled backups, which I really should do. But really getting my old files organized, especially if I want to keep copies of my old emails instead of relying on frickin' Google to do it—and doubly so if I want to download my old gmail stuff, or even (gasp) not use a cloud storage service at all.
  10. Stop using cloud storage. "Now," you're going to tell me, "you're getting unreasonable. This is out of hand. Not back up to iCloud, Google Drive, DropBox, Box, or OneDrive? Not have the convenience of having the same files on all my machines equally available? Are you crazy?" I'm not crazy. You might not realize what is now possible without the cloud. If you're serious about this privacy stuff and you really don't trust big tech anymore—I sure don't—then yeah. This is necessary too. One option is Resilio Sync, moving files between your devices via deeply encrypted networks (via a modified version of the BitTorrent protocol), with the files never landing anywhere but on your devices. Another option is to use a NAS (network attached storage device), which is basically your very own cloud server that only you can access, but you can access it from anywhere via an encrypted Internet connection.
  11. Nail down a social media use policy. Maybe quit some for good, really this time. (In progress.) I'm extremely ambivalent about my ongoing use of social media. I took a break for over a month (which was nice), but I decided that it is too important for my career to be plugged in to the most common networks. If I'm going to use them, I feel like I need to create a set of rules for myself to follow—so I don't get sucked back in. I also want to reconsider how I might use alternative social networks, like Gab (which has problems), and social media tools that make it easy both to post and to keep an easily-accessible archive of my posts. One of my biggest problems with all social media networks is that they make it extremely difficult to download and control your own friggin' data—how dare they. Well, there are tools to take care of that...
  12. Study and make use of website/service/device privacy options. (In progress.) Google, Apple, Facebook, Twitter, YouTube, etc., all have privacy policies and options available to the user. It is time that I studied and regularly reviewed them (as I have done only with Facebook and a bit with Google), and put shields up to maximum.
  13. Also study the privacy of other categories of data. Banking data, health data, travel data (via Google, Apple, Uber, Yelp, etc.), shopping data (Amazon, etc.)—it all has unique vulnerabilities that is important to be aware of. I'm not sure I've done all I can to lock it down. So I want to do that.
  14. Subscribe to a VPN? Websites can still get quite a bit of info about you from your IP address and by listening in on any data that happens to be unencrypted via your web connection. VPNs solve those problems by making your connection to the Internet anonymous. The big problem with VPNs, and the reason I probably won't do this, is that they slow down your Internet connection. They also add new complexity to your life (e.g., if you get the wrong VPN, you might not be able to connect to some services, like Netflix, through the VPN). But it's a great step to take if you're serious about privacy, if you can get around or handle the slowness problem. A nice fallback is the built-in private windows in Brave that are run on the Tor network, which operates on a similar principle to VPNs.
  15. Figure out how to change my passwords regularly, maybe. I might want to make a list of all my important passwords and change them quarterly everywhere, as a sort of cyber-hygiene. Why don't we make a practice of this? Because it's a pain in the ass and most people don't know how to use password management software, that's why. Besides, security experts actually discourage regular password changing, but that's mainly because most people are bad at making and tracking secure passwords. Well, if you use password managers, that part isn't so hard. But it's also because we really don't have a realistic plan to do it. Well, I'm going to think hard about making one and, maybe, try to follow it, making use of whatever automated tools are available (such as this).
  16. Get identity theft protection. (Done.) After my phone was hacked, I finally did something I've been meaning to do for a long time—subscribe to an identity theft protection service. The one I use is LifeLock, and so far it seems to be quite good. If you don't know or care about identity theft, that's probably because you've never seen weird charges pop up on your card, or had your card frozen by your bank, or whatever. LifeLock doesn't prevent these issues by itself, but it does make it a lot easier to deal with them if they happen.
  17. Moar privacy thangs. Look into various other things one can do to lock down privacy. Consider the new Purism Librem 5 phone. Look into a physical security key for laptop and desktop.

What have I left out?

Are you going to join me in this push toward greater privacy and autonomy? Let me know—or, of course, you can keep it to yourself.