The horrors of open source!

Output from my latest effort. Sigh.

I noted earlier today that the Windows partition on my home workstation is now pretty much down to a single application. For mostly historical reasons I still use Photoshop for my photography (you can see samples at http://adv.michaelgat.com). While it would be a major pain to separate myself from all these images and convert them to something else, it’s something that probably makes sense at this point.

Everything else I use is open-source, but open-source is not without its problems. A good example of this came out of my participation in a PGP keysigning party at SCaLE a couple of weeks ago. It was fun, I met about 60 people I might not have met, even if only a for a minute or so each, and I got my PGP key signed by dozens of them.

But the process of signing and uploading my own signatures to other people’s keys has required overcoming some obstacles inherent in the open-source world.

The organizer of the party has written a pretty neat utility called pius to automate the process. At least is is pretty neat for the people who have gotten it to work. I’m not one of them.

For starters, I had some conflicts with my local Python setup. Not all that uncommon for me as I’m a Python developer myself and have a custom Python environment installed in addition to the normal system environment that comes with Ubuntu Linux. Some packages are good at catching this problem, others require me to make some changes. This is one of the ones that required changes. pius in turn depends on the installation of PGP 2.x on your computer. I have it, but Ubuntu has made version 2.1.11 the standard for their long term support release and have not updated it. The author who also put together the keyring for us all to sign has apparently been using version 2.2.x. There are incompatibilities. I tried to install 2.2.5 myself, but it has dependencies that my system doesn’t meet and I’m loathe to install a whole bunch of other things just to make it possible for me to compile a version of something that I will likely only use once before the next long term service release comes from Ubuntu with an upgrade.

After some tweaking, I got it to work by exporting and reimporting the keyring. The organizer was great at helping me get through all this.

And the point

Open source, by its nature will have more version control issues and possible incompatibilities than closed systems which can make some efforts to ensure that everybody’s environments are the same. There’s been a lot of progress on this in many spaces, especially for applications that are specifically consumer-facing. But the systems software world is still far more “wild west” than anything you’ll encounter in the Microsoft, Apple, Oracle or other worlds that are tightly controlled.

This presents an opportunity to improve. It also offers us a huge variety of options and flavors that are not available anywhere else. And as I’m learning with my Raspberry Pi experiment, it offers us the option of running things in ways that nobody really intended but that turn out to be wildly useful.

I’d like to see some better-controlled projects, especially on the consumer side. Ubuntu had made inroads in that direction though I disagree with some of their choices. I’d like to see developers be more mindful of consumer issues and do a lot more testing on “standard” setups. More than anybody, we have a tendency to believe that everybody must have dozens of Python packages installed, know how to mess around in .bashrc to fix things, etc. That’s not a useful attitude in the real world.

But I remember when Microsoft was plagued by the same problems. I spent a year on a task force trying to solve those issues. We didn’t get it done, but eventually it did get done. The wild west was tamed.

It will be harder to do with open source, but slowly it’s happening, at least in the areas where it matters. The nice thing is that it’s possible to simplify the “normal” things for normal users while still providing source code and repositories that allow us strange creatures to continue experimenting, testing, and yes, struggling with inevitable incompatibilities all night long.