2016-02-10

gnu/linux and frustration-free computing

I've been thinking about the way I use GNU/Linux: currently I run openSUSE Tumbleweed, before that I ran Debian Testing. Over the years this has distorted my views on using the computer: instead of working with it, using the computer means giving it maintenance and then getting to work with it. Is there another, simpler, way?



On GNU/Linux

My first exposure to Linux was in the early 2000s, my dad was experimenting with different distributions on his desktop and was running Mandrake Linux. I played a bit with it, then returned to my Windows machine to play whatever game was popular at the time. The impression of a free OS was a deep one, though, and as a result a few years later I would be installing Feisty Fawn (Ubuntu 7.04) on some old hardware I had at the time. I wanted to accomplish two things: a) revive old hardware, because life as a student is rough and I couldn't afford anything; and b) having a "work only" computer where I could sit down and have no distractions. It worked like a charm. I rode the Ubuntu wave for a year, until Hardy Heron (8.04), learning about the inner workings of Linux along the way. I was happy doing so, but then something happened that changed all of it.

I bought a new sound card.

I could never get it to work properly, I installed a million packages, I modified a million settings, I tweaked a million conf files. Nothing. Then, suddenly, the solution: install a newer kernel. Everything worked again, but with the new kernel things were suddenly not feeling right anymore. Things would break every now and then, xorg would crash every now and then. Still, I was amused with this idea of being able to use new hardware and cutting edge features, so I did something drastic: I changed from semi-conservative Ubuntu to Debian Testing. This thing was changing constantly, stuff was always breaking, stuff was always getting fixed. I got hooked on using it, on fixing what broke. I was told this was the "Linux way".

I was tweaking everything I could, and when Gnome proved too stiff for me, I switched to KDE: GUI tweaking galore. I was running KDE4 over Debian Testing, it ran semi-smoothly, but little things would tell you that they were not meant to be together. Debian was (is) focused on Gnome. Another switch, this time to openSUSE, which defaults to KDE. I started using release 12.3 and it was like using Feisty Fawn again: my hardware was old enough to have proper support out of the box, things got done, nothing broke. For a few years everything would be calm. Then came catastrophe.

The new laptop.

A newish laptop and Linux usually don't mix very well—its the newer hardware that does it. This translates into either a) running a rolling distribution on it and getting your hands dirty configuring it, b) installing a stable distribution and "backporting" a newer kernel, or c) accepting that some features of that new laptop will not work until a few years have gone by. This laptop was meant as a no-nonsense work laptop, thus it was obviously meant to run Linux. I decided to go for openSUSE 13.1, adding the Kernel:stable repository that was maintained at the time.

It was a struggle to get things to work properly, USB3 wouldn't work properly, microphone mute button and other hotkeys wouldn't function, the clunkpad (touchpad) was a nightmare. After a while, everything got configured and it worked great. As newer kernels rolled out and my laptop updated, some of my previous fixes broke. Since the newer kernels fixed almost everything that was not working out of the box, I had to undo my hacks to get things to work properly. Still, things worked well enough and I followed the upgrade path to 13.2, again adding the Kernel:stable repo. The 4.x kernel has had ups and downs, 4.3 for example had a lot of graphical glitches.

With the new upgrade path for openSUSE—Leap or Tumbleweed—I was left wondering which one I should pick, or if I should switch distribution entirely. At the moment I am running Tumbleweed, and it is a true rolling distribution. New stuff continually comes in, breaks, and is fixed. I love the excitement of a rolling distribution, but it is not what I am looking for in a work laptop. A work laptop has to be reliable and stable, do exactly what I want, when I want it—not when I have been able to fix it to work.



On frustration-free computing

What constitutes computing happiness? It changes from person to person, and from computer to computer. As a Linux user who is not afraid of compiling or shell scripting, but isn't a developer; whose daily usage of the computer is mainly getting info from the web, writing and compiling \(\mathrm{\LaTeX}\), listening to music, and watching movies; I can only tell what makes me happy:
  • It makes me happy when all of my laptop's hardware and features work flawlessly out of the box (hotkeys, anyone?);
  • it makes me happy when after a sleep/resume cycle all of my laptop's hardware and features continue to work flawlessly (wifi, anyone?);
  • it makes me happy when the desktop environment I use is functional and good looking;
  • it makes me happy when there is a majority of software already packaged and available for download, from reliable sources;
  • it makes me happy when proprietary software I use is released for my distro and integrates seamlessly with the desktop environment;
  • it makes me happy when I don't need to reconfigure/fix things that broke because of an update;
  • it makes me oh so happy when my laptop works the way its supposed to and I can forget about it.
All of these make me happy, and all of these translate into a frustration-free computing experience for me.



Regarding choice

The above points are my way of saying I'm tired of the "Linux way". I'm not a developer and I don't want to deal with bugs and crashes all the time. I don't need the newest packages, as soon as they come out, every day. I just need tried and tested software that works with my computer and lets me do what I need to do. I want frustration-free computing with Linux, how do I get this?

For starters, I fully realize that my choice of running Tumbleweed has much to do with my trouble. The constraint of running a rolling distribution—a newish laptop—has already been lifted a while ago from my T440s. There is no reason I cannot pick openSUSE Leap instead of Tumbleweed; there is even no reason for me not choosing Debian 8.3 and stay with it until Debian's next stable release.

To be honest, I've been toying with the idea of returning to Debian, set up what I need, and be happy with the old software that's packaged there—its even old at the time of release! Also, I've always wanted to tag a laptop with Toy Story stickers—one sticker for each release of Debian the laptop has ran. A little sticker of Jessie on the bottom of my T440s would look badass; in a totally geek way, I accept. Looking up Debian Jessie, it runs the 3.16 kernel, which will make my computer run properly. I would like to get something 4.x going on though, especially because of all the improvements added to the intel GPU drivers. Maybe I could "backport" a newer kernel?

I've also toyed with the idea of returning to Ubuntu, this time to an LTS, setup everything and rock it until support wanes or a new LTS comes out. With 16.04 LTS coming up soon, this is a real option that I must consider. Ubuntu looks sleek and modern (or at least not ugly when compared to OSX and W10), has a lot of packages ready to download, and these are relatively new versions of the software. Also, 16.04 will use kernel 4.4, which is what I wanted. As a plus, it seems to be a favorite among proprietary software developers: they service a selection of the most popular distros, but Ubuntu is always in this selection.

And what about openSUSE Leap? To be honest, I am not considering sticking with openSUSE. While it is a great distribution and I love many of the things it has—yast and zypper for example—, the idea of running Plasma5 right now scares me. KDE transition periods are usually buggy, I survived going from 3.x to Plasma 4, and based on experience I'd rather sit this one out. I could still run Leap with another DE, but again, experience has shown that more effort goes into the default DE of any distribution and I don't want a second class experience.

At the moment I lean towards returning to my roots and try Ubuntu, so I will install the 16.04 alpha2 image that is already out and let it update to its final release, at which point I will decide if I keep it or not.

Here are some rules that may translate into frustration-free computing, at least regarding Linux on laptops:
  • Stick to slightly older hardware: salivating for that newer Thinkpad? Your T440s will do just fine and is better suited to run Linux.
  • Stick to a stable branch: true and tried software that is being maintained for security and won't break. Personal favorites of mine are Debian, Ubuntu and openSUSE, which means stable, LTS or Evergreen releases respectively.
  • Prioritize stability over Desktop Environment: the truth is you can find equivalent tools in every DE, and adapting to them is better than suffering through crashes. Looking pretty is a plus, though.
  • Stick to your distribution's default Desktop Environment: this rule is a continuation of the previous one. Things will run smoother and look nicer because of the extra effort put into a distribution's default DE. It doesn't matter if its Gnome, KDE, or Unity—if there is a terminal then you can get work done, right?
These will save you some money—no new laptop investment, buy refurbished/used—and hopefully give you the computing experience you deserve.