The following was written in early May of 2015, with a view to encouraging take up and interest among colleagues. It has languished in a text file for nearly 6 months, mainly because it is such an indulgence of a post. But on the off-chance that there's some usefulness for others in here, it's time to unleash the geek-speak!
It is done. The plunge has been taken, the ship has set sail and the horse has bolted. Alea jacta est. I've fully Linuxed my computing life.
When was your first experience with a Unix-based OS? Android phones count. Macs, iPhones and Linux PCs count. Mine was messing with CD 'distros' in the early 2000s, passed on to me by my then associate Mike Serieys. You might have noticed the plethora of options lurking in the settings menus. That they tend to offer control over the system in a way Windows doesn't. Or at least didn't, before it had to fight back harder.
Now, not to go too preachy, but it stands to reason that more control over your device generally means more features and the ability to use the device in a way that suits you. Concerns over privacy, the ease of connecting to other computers and devices, full ownership of your data and device use patterns; Unix-based systems tend to be good at allowing this because they are essentially based on a raft of tools built for openness and stability. Apple took this some of the way, Linux took it all the way. It held my interest over the last 15-odd years due to its quick pace of improvement and unwavering, unapologetic approach to fair computing.
It has taken a long time to make the full transition to my main system, but spurred on in part by the Snowden affair and the resulting distrust in third-party tech companies to look after our data, as well as the growing distrust even in hardware manufacturers such as Lenovo (I use a Thinkpad), I initially moved everything that was stored in the more exposed services, particularly email and website analytics, to open, self-hosted solutions. I now run my own mail servers for a few different addresses (not a simple task if done manually, which I unfortunately opted for, but automated solutions exist) and track site usage with Piwik, the data from which is shared only with myself, when I have time to look. Now at least my email and web analytics are my own, not Google's (except when any of my Google-based contacts email me). I also moved my RSS feeds to a self-hosted solution, as well as instant messaging.
But a year or so on from that rather large step away from 'cloud' third-parties, one big hole remained in my free and open source software (FOSS) strategy: namely, Windows. Specifically Windows 7. It has to be said that it is a good, reliable operating system. The horrors of Windows 8 I managed to avoid. I've played with 10 and unfortunately more of the same seems to be on the horizon, even if they will offer it for free, there's still a very real cost. Automatic backing up of all documents to the cloud, constantly relaying usage information to Microsoft, 'smart' help from Cortana when really all I need is a fast search box that doesn't talk to Microsoft servers, with everything tailored to upsell cloud services... you get the picture.
Windows 7 had very little of that and was as stable as the (renowned for stability, thus why nearly all websites, the internet infrastructure and all home routers etc. runs on it) Linux systems I've used from dual-boot, flash-drives, live-CDs and main OSs over the years. But as a freelancer who needs to use .NET software (Microsoft's proprietary framework) for my work, in the form of the MemoQ translation tool, I couldn't justify risking an OS change if it meant I might lose the ability to actually earn a living. Sure, there's OmegaT, a FOSS translation tool, but it sadly falls over when I present it with my mammoth translation memories. I considered running MemoQ under Wine, the Windows emulator in Linux, but that doesn't work either (even with the use of Mono - the free .NET implementation). So what's a person with FOSS tendencies but Windows software to run to do?
Enter the Virtual Machines
VirtualBox and VMWare are both free virtual environments for Linux (and Win/Mac). On the Windows 7 machine I tested a way to back up the current system as a virtual image and then run that under the VM. It worked. I was running Windows under Windows. This gave me the confidence I needed to proceed. As long as that image was safe and my files backed up, I had everything I needed to either restore the system or run it on any computer via VM if anything were to go wrong.
Given that I used Linux regularly under VMs in Windows, I knew that the system worked. Over the years I'd tested many flavours (or 'distros', as mentioned earlier) of Linux, but one in particular had caught my attention in the wave of resource-efficient and privacy-aware computing I was into. This Linux distro (which I should be calling GNU/Linux, given the merging of the two projects - the GNU system tools and the Linux kernel, but now that's done I'll get back to calling it Linux...) was Crunchbang, also known as #!. It was lightweight, so ran fast in a VM with very little memory use. This is mostly due to the 'window manager' it uses called Openbox. In Linux, you see, the system can run without any graphical interface, with just a command line. Any GUI you choose to place over the command line (and there are many, see 'window manager' or 'desktop environment') can give the OS a drastically different look. But it's just the look that changes, the underlying OS works the same, GUI or not. Some use more resources than others, with optional 3D spinning cube effects, others use next to none and are very 'snappy' to work with. Openbox falls under the latter category.
On hearing that the #! distro was being retired due to time constraints of the UK-based developer, I went to their forums and made some enquiries. It turns out that #! was based on Debian, as with Ubuntu and several of the world's other top distros. Why? Because Debian has a working philosophy among its team of volunteers that encourages long-term security for its OS. It is over 20 years old and so has a reliable foundation and offers stability, even if this sometimes leads to less innovation than the competing distros enjoy.
The #! forumites, in their preparations for the #! replacement BunsenLabs, had compiled a cheatsheet to allow anyone to take a barebones Debian system (barebones because of a lack of window manager, among many other things), called a netinstall (sub-300MB install files - I installed from a 512MB SD card) and add in only the essential software to recreate #! on the newest version of Debian, which happens to be called 'Jessie'. Sidenote: all Debian versions are named after Toy Story characters and Debian itself is named after its creator, Ian, and his then girlfriend, Debbie.
I set about getting everything installed, which involved a dance with several external hardrives, memory sticks and crossed-fingers, and ended up with my own custom version of Debian that uses under 500MB of RAM when idling, rarely calling on the processor for anything other than what is running at the time. Compared to Windows, this was a vast improvement. It was as plain as night and day, the difference, with the potential of the machine's (relatively meagre) hardware having been clearly suffocated under the weight of Windows, compared with how fast the PC now was.
Files that took hours to transfer off of Win7 were back on in half the time, with fewer errors and transfer restarts. Completely open software for PDF viewing, email, web browsing were easily installed and opened up almost instantly. Admittedly I did feel this kind of speed boost when moving from spinning hard-disk to a USB-like SSD hard-disk on Windows, but to have a similar boost again just by virtue of changing the OS was very satisfying. I'd certainly appreciate a faster CPU still - to encrypt and decrypt backed up files quicker, for instance, but the few seconds/minutes I have to wait now are already an improvement over the past situation.
The best part? MemoQ under a fresh Windows 7 install in a VM ran *faster* than it did on a Windows 7 native setup. Resources are all used much more efficiently under Linux in general, it would seem, especially so if you pare back the system to just what you need, not what the OS creators think you might need.
The final Linuxy dimension: the phone
For the last 5 years I had been sporting the Nokia N900, a bit of a swansong product before the company was bought by Microsoft. It featured a (nother) Debian-based OS called Maemo, could be tinkered with down to the Nth degree (LED light flash sequences, CPU speed... everything) and you could even install full Debian on there and run at decent speed. But it was time for a change, for a few reasons, and I'd been waiting for a good while for a decent open replacement to the N900.
I didn't want to go back into the walled-gardens of Google and Apple, whatever happened. Plus none of those phones could sync my notes and connect to my servers in an open, free way, using tools developed openly for Linux, despite running on Unix-based systems, they'd been locked down to protect corporate/phone company interests. Sure there are FOSS projects for Android, but my trust level for work-related data doesn't extend to folks who could have all manner of motivations for backdooring your phone.
Long story short, after considering Jolla, Sailfish, Neo900, FirefoxOS, I settled on the Ubuntu phone, sold for £120 from Spanish company BQ. Not the DIY store, GB readers, but the ebook makers and general good-bods based in Spain. Ubuntu is not what I wanted for a desktop distro. But one of the big promises of the Ubuntu phone is convergence, where the Ubuntu Touch OS has been shown to be able to turn from a mobile system to a desktop system by attaching a monitor and keyboard/mouse. If done on the right hardware, you'd be able to get rid of your laptop altogether, carrying your phone and connection kit if you needed to work remotely. As it stands, this feature isn't yet in place, although it is nearly complete behind the scenes, with several demo videos doing the rounds. For now, I can take some solace in the fact that I've side-stepped the walled-garden approach and can continue to talk between devices (web and home servers) using only FOSS tools.
Why go to all this trouble?
It suits me. It suits me that enthusiasts create some of the world's most reliable software just to share with their colleagues, to enable better work to be done, not to make a sale. It suits me that FOSS has proven itself to be the backbone of the modern world's economy and that its developers are just plain old nice people who like to give, be curious and wanting only to learn in return. If there are side-benefits such as selling support, giving talks, writing books or teaching that come from FOSS development, that's fair enough, but it suits me that this is the model, not squeezing mass-markets for app-sales of (fun but ultimately) pointless games and 'productivity boosters' etc.
I will say that the best thing I've seen from Apple and Android is their support of the rise of online education, but it was not Apple/Google who created this movement and it is not for 100% altruistic reasons that they promote this content. Plus it does present somewhat of a contradiction to offer free education through a $1000 iPad. This does not leverage the benefits offered by those creating a commons of free educational material. Nor does it quite fit into their ethos.
Linux does, however. Install a distro of your choice for free on any hardware from, say, 1990 onwards and gain instant access to a host of worldclass development and educational tools, as well as everything required to run a business or assist with hobbies from photography to amateur radio, to audio/visual production and practically everything else you can think of.
In all of my enthusiasm for the movement, I often wonder what I can contribute. I have ideas on the software side, certainly, but also for the educational equivalent to FOSS licenses, the Creative Commons, used by Wikipedia and millions of other works that are available under this license online. It gives people (particularly educators) free reign to use the works and even modify them, providing that the original author is always credited (among other arrangements). If I can use my spare time and fortunately stable position in the world to contribute resources back to the commons of software and learning materials, or even just to spread awareness of them, I will be fulfilled. The foundations for doing so are now laid, and I'm fully onboard. Long live Linux.
After 2-3 months, and after swapping the phone from the fully-featured N900 to the more modern but restricted Ubuntu phone, I felt frustrated that I couldn't access my servers remotely as easily as before (although still possible, the lack of keyboard and persistent connection rankled), but at least made much more progress with 'automation' on the desktop - with flashcards, reminders, pomodoro techniques, 'inspirational quotes' and various other bits all timed to appear on screen or to be read out at various points throughout the day. Improvements to the phone as the OS matures will only make the situation better. I remain patient and it is all for the greater good!
Now 5 months on, I’ve swapped the Openbox window mananger for a ‘tiling window manager’ called i3. It gives you the ability to display as much or as little on-screen as you like in a highly-ordered fashion. Split windows, each with tabbed windows of their own, spread over up to 9 desktops, all easily accesible by mouse and keyboard, have made less pointing and clicking around dozens of open windows a reality. I have a web/email/calendar desktop, shown on the external monitor (if available), a TMUX/IM/IRC/RSS/music/web server SSH terminals and text file/scrolling Twitter hashtag search desktop, then a ‘reading’ desktop that opens all PDFs under it automatically and finally a system desktop for finding and working with files. A quick keyboard shortcut or two jump between desktops and windows. A lightly customised status bar always displays system (CPU, batt, IP, mem, temp, vol) and time/date info. It all feels very retro in design, yet extremely modern at the same time. Perhaps things are coming full circle. In any case it never keeps me waiting for longer than necessary to access a window or programme I’d like to use. No spinning disc or egg timer waits, just instant access. On rapidly aging hardware, this is a great boon.
Finally I’ve also recently added a writing tool to my device list, the Psion 5MX from the year 1999, but that is a whole other blog post of its own. And to be honest, if you’ve read this far, you might want to read that too.
Questions, thoughts or raised eyebrows in the comments section below.