c nerd blog — ubuntu GUIs

I’ve bought myself a Raspberry Pi startup kit that didn’t ship an operating system installer, the Noobs card. I bought it so because I figured that I had enough spare cards lying around; I should be able to find one I can use and set it up myself.

I looked around at Noobs installation options, and discovered PiNet, which has a central installation server for remote install and modification of Pis. This struck me as being potentially useful, so I grabbed it. It turns out it requires Ubuntu, the flavour of Linux that I’ve often found Tim–ette–esque, i.e. pretty but dim. All the same, I need to use it, so I decided to survey its various flavours again.

First of all, I must say that I’m familiar with the Linux command line. I find it useful, but a bit of a mess. This is pure taste: I mostly use OpenBSD. I’m pretty sure a Linux aficionado would find aspects of the OpenBSD command line problematic. My issue is mostly that I find Linux in–system documentation cranky & incomplete. Linux has enough bizarre nooks that good documentation in necessary, but theirs just doesn’t come up to OpenBSD standards.

Anyway, given this, and given PiNet wanted Ubuntu, specifically version 14.04 (the current version is 15.10), I decided to survey the GUIs, to see if I could find one that allows me to easily configure networking, use the command line, set up a remote desktop, and have the remote desktop always on.

The default Ubuntu user interface, Unity, seems to presume users are either magicians and morons. Magicians know all kinds of magic tricks to do things. However, they hide the information from others, whom they treat as morons. If you use Unity, many necessary things are hidden from display. It blocks people like me, who don’t know Unity, who just want to get things done. I can’t get to the command line. I need things to be quickly accessible, I don’t want to have to spend hours trawling cranky documentation to discover the magic trick. Unity does not trust its ordinary users. That’s how it insults them. I condemn it.

I checked Ubuntu 15.10, to see if this error was a problem with Unity itself, or just an issue with version 14.04. I’m happy to report that the essential problem has been fixed. The command line now lives in the desktop context menu. Unfortunately, PiNet requires 14.04, not 15.10, so Unity is still ruled out.

Ubuntu 14.04 is available with alternative GUIs to Unity. The first alternative I tried is KDE. I want to set up my network. I go to settings, network settings. There is nothing in there, no mechanism to type in the machine’s IP Address. Yup, under KDE, network settings don’t contain network settings.

As it happens, KDE is constantly nagging me about the settings, and popping up buttons to be pressed. This means KDE is deciding that the settings need to be fixed. It is correct. My problem with this is that the settings can be set when KDE realises so, but can’t be set otherwise. This means you can only fix things when KDE realises they’re broken. In effect, KDE’s designers seem to think of themselves as all–seeing, that problems they’ve not considered won’t arise. This is arrogance. They presume what they consider important is more important than whatever the user is trying to do, so interrupt. This is arrogance. KDE, which used to be my preferred Linux GUI under SuSE, is nastily unusable.

The next to test is Gnome 3. Hey, wow: Gnome 3 does have network settings in the section labelled network settings. It is actually usable! Wow! A Ubuntu GUI that accepts users might have intelligence! Unfortunately, I cannot find the settings for more advanced features, such as configuring remote access. I could perhaps do something using port trickery in SSH, but I’d prefer to simply fill in boxes. Gnome 3 is inconvenient.

This lack of access to Remote Settings really does surprise me, because it’s core to X, the underlying API used in the early, and probably the most significant, unix GUI. To make it clear, I’d like to find something like VNC, but will happily use X, or even RDP (although finding that would be a nice surprise). I’ve found no hint of any of them in any Ubuntu GUI. I’ll use SSH if I can’t find a GUI interface, but I really don’t want to have to spend my time configuring SSH trickery when I expect to be able to just tick a couple of boxes.

Clearly, if I’m going to use Ubuntu, I going to have to spend time searching through the more obscure GUIs in the hope of finding one that can meet my requirements. So I’ll keep searching.

Next up is XFCE. I have some hopes for that, given it’s associated with FreeBSD, and I’m more familiar with BSDs. Furthermore, some BSDs have well–designed, if imperfect, user interfaces (such as OS X). I quickly got the network working, so it’s soon ahead of all but Gnome. Unfortunately, although I looked through most of the settings, and couldn’t find the remote desktop settings. So, like Gnome 3, XFCE is usable but inconvenient.

The last Ubuntu GUI to try is Ubuntu Mate. It seems to be like XFCE: I’m able to configure networking, but, again, can find nothing to configure the remote desktop.

I don’t know whether this absence of a usable GUI is a problem underneath the GUIs, with Linux itself. No GUI offers remote desktop configuration, which suggests an underlying problem. But that would be surprising, given X. Has Linux gone so far backwards it’s fallen behind its own origins? Windows and OS X offer easily configurable remote desktop settings, old versions of Linux with old versions of Unity, but not anymore. On the other hand, I’m testing just one version of one flavour of Linux, Ubuntu 14.04, and that has shown itself quite capable of extraordinarily arrogant design errors, namely hiding access to the command line. So, without good reason, I suspect an Ubuntu regression, not a Linux one.

Of course, that presumes the various alternative GUIs have been adapted to Ubuntu by stabbing their hearts out. What if that’s wrong? What if Linux has acquired user interface designers who don’t understand that usability is the essence of user interface design? The worst examples in Ubuntu 14.04, Unity and KDE, hinder the user doing something their designers haven’t expected. Clearly, KDE designers, with their self–important interruption of user activities, and Unity designers, with their deliberate concealment of the necessary, have not understood design is tertiary to task. Have they presumed they know everything the used might really need, & blocked anything else? Have they not grasped the aphorism “the more you know, the less you know”? Those versions of Unity and KDE are declarations of know–it–all ignorance. Ubuntu user interfaces—Linux user interfaces—need a revolution in humility.

There’s no denying that user interface design is difficult; the world is full of examples of bad design. All the same, a core aspect of a good design is that it helps users do things the designer didn’t expect. The designer cannot presume to know what the user needs more than the user does. The design should indeed discourage people from doing things that might have negative consequences, but it shouldn’t prevent them. The route to the dangerous things should be visible & full of warning notices, so a knowledgeable user can do what needs to be done, a cautious user can heed the warnings, a naïve user can break things and learn, and an idiot can break things, not realise they’re the problem, blame the user interface, and go on to become a user interface designer.

Anyway, it’s clear no Ubuntu 14.04 GUIs fulfil my needs. The best is inconvenient and requires command line SSH trickery, and many, including that preferred by Ubuntu, are unusable.

My exercise to give Ubuntu another chance was a waste of time. I’m going to have to find some other means to prepare my Pis; PiNet is unacceptable because it requires the unusable Ubuntu 14.04. This is a pity.

ancient front