Use what works for good

Tue 26 December 2023

Exactly a month ago, I wrote an article challenging the prevalent pragmatist-argument for choice in the digital world.

I'd like to refine that thought a bit further, based on recent experiences.

A little over a week ago, I started crafting an article covering FOSS keyboards for Android. This is one area where the FOSS alternatives have been woefully behind the likes of Gboard, the Google Keyboard, which is extremely versatile and powerful, but of course, completely proprietary, created by a mass-surveillance company, and has always-on internet connectivity—A most potent and noxious combination.

However, my writing process seemed to run aground. That which used to be relatively effortless (writing) suddenly felt like pulling teeth. I just couldn't get my ideas to flow. I can't be certain, but it could very well have been a minor kind of cognitive dissonance, a sense of brewing discontent was stymieing my writing process.


I was writing excitedly about what felt like a breakthrough in FOSS keyboards for Android — an arena badly in need of greater development. So, I had finally found a FOSS voice recognition/dictation keyboard, and an onscreen keyboard almost as good as Gboard in some (but not all) areas of functionality. I also found that the stock AOSP (Android Open Source Project) keyboard had been greatly improved in a recent OS update, and was almost good enough to be used on its own.

So, with a sense of triumph, I happily deleted the Gboard and Google Voice Services/Dictation apps from my phone, and switched to using only FOSS keyboards, and a FOSS dictation keyboard app.

It was... almost perfect. But that uncanny valley of functionality was quite deep. I was annoyed that the only FOSS keyboard app with gesture (swipe-style) typing was very alpha, and lacked more basic features. More distressingly, this very alpha/beta keyboard hadn't been updated in over a year. Not encouraging. However, the AOSP keyboard was almost perfect, but didn't have an emoji mode. The other very good keyboard app was almost completely perfect, but again, lacked a swipe mode, and also wouldn't recognize the dictation keyboard as a valid dictation service, so I kept having to switch back to the AOSP app for the dictation button to work, and the other one for emoji and couple other (minor) needed features.

Death by a thousand papercuts. Ok, annoyance by a thousand papercuts. It was annoying. Annoying enough to consider going back to the Google-provided apps (which I had been using for a long time, although with network privileges disabled).

Did I go back to the uncomfortably tight embrace of Google for keyboard and dictation? Nope. When in doubt, stick to your guns. It may indeed be better to be stubborn at the risk of being in the wrong, than having an open ear to virtue and justice, but unable to follow anything to completion. I can't say for sure. But I stuck with it.


So now I find myself coming back not only to what I at first attempted to herald as such good news for FOSS Android, but also my former stirring remarks on the pursuit of virtue in the digital realm ("Don't use what works for you").

In weighing the tension between desiring a well-functioning pragmatic solution and walking "the straight and narrow" way of FOSS and privacy, my thoughts alighted on one of my favorite novels in High School: Asmiov's "Robot Trilogy," especially Caves of Steel.

As is well-known, Asimov posited three Laws of Robotics to govern the behavior of robots in his worlds. These were not mere rules, but the lowest level of abstraction in the Robot's mind. It would be no easier to remove one of the Laws from a Robot (either extant or in development) as it would be to take an ARM processor and change its circuit-level logic from binary to ternary. It was simply not possible. (The one example of meddling that I recall from the trilogy was a robot that was reprogrammed such that it would not recognize a being as human unless it spoke with the accent of that world — the Three Laws were untouched, but the Robot's perception was modified — something that operates on a much higher and more vulnerable level in the robot's brain. The three laws (paraphrased from memory) were:

Law 3. A robot must do what it can to preserve its own existence, unless doing so would contradict the First or Second Laws.

Law 2. A robot must do what a human orders it to do, unless doing so would contradict the First Law.

Law 1. A robot must not harm a human, nor allow a human to be harmed through inaction.

The third novel in the trilogy added a theoretical "Zeroeth" Law: "A robot must not harm humanity, nor though inaction allow humanity to be harmed. This supersedes the First Law." This was not added to robots, but something that only the most advanced robot (R. Daneel Olivaw) was able to infer for himself.

I was thinking about how the Three Laws would apply when trying to wrangle the idealistic vs. pragmatic choices in the digital space. I'd like to suggest, as a thought experiment, the "Three" Laws of FOSS:

Law 3. A piece of software or hardware is purchased or procured to either please/entertain or help/assist the user. This is the most surface-level decision-making in this arena: "use what you like, use what works for you." The Aesthetic.

Law 2. A piece of software or hardware is purchased or procured because it is required to perform a task or for a job. This is the level of necessity. This is coding a javascript backend at work, even though you know it's a horrible language for that task. This is running a Windows workstation, even though you know it's a garbage fire of an OS. You're getting the job done, you're doing what must needs be done. This supersedes the choices made on the basis of pleasure/aesthetics or pure function/capability. You may think C++ is a far better choice for backend work (ok, I'll wait for you to catch your breath. Done laughing? ok :), but you use what your employer expects/demands. You think Windows was designed by a committee of brain-damaged vultures, but it's what you have to run at work, and you don't have a lot of choice in the matter. The Pragmatic.

Law 1. A piece of software or hardware is either procured or not procured on the basis of what is beneficent or harmful to the user (not merely what is helpful or a hindrance). This means you may take a little more time to get grandma used to Linux Mint or MX Linux rather than just slapping Windows on their machine, because you know that that choice is safer for them, more respecting of their privacy, and generally in their interest to do so, even if it involves inconvenience on your and their parts. This means that if you have to bring home a work machine chock full of corporate spyware, you put it on its own network segment/DMZ because you won't tolerate your employer snooping around your family's network. This also might mean that you spend some time learning Linux/Unix, not because it's necessarily more capable or pleasant to use from your standpoint, but more beneficial to your life itself. Beyond the Aesthetic, beyond the Pragmatic, you have basic Safety.

Law 0. A piece of software or hardware is procured on the basis of what is good for humanity itself. This means that even if you are an infosec guru, and have tons of security on your network and tons of mitigations on and around your devices, you may choose to go with a less popular or even less functional alternative on the basis that choosing the harmful one would help popularize it and normalize it. You can run facebook dot com in a container in a safe browser on an ephemeral VM so that it's completely "safe," but popularizing that platform is objectively harmful to humanity, so you minimize your use of it. Beyond Aesthetic, beyond Pragmatic, beyond Safety is Virtue.

I do not personally know anyone who operates on Level 0 100% of the time. It may indeed be impossible. But it is important to be aware of, and it is very important that the Virtue level of decision-making is present in a person's life.

Inasmuch as you are able, inasmuch your life circumstances gives you the freedom to do so, please,

Don't just use what works for you
Don't just use what is allowed and normalized
Don't just use what is safe
Use what is virtuous

Note: This article has a Part III !

Category: Ethics Tagged: BSD Computing Ethics FOSS (Free and Open Source Software) FreeBSD Linux Non-religious post UNIX