I've had to delay my post about creating characters until next week due to work commitments. In the meantime, I thought I'd briefly post on my decision to migrate to Linux on my MacBook Air, which is my daily driver outside of my home office.
My history with *nix
I want to note that from the outset that this isn't my first outing with Linux. I've in fact used Linux in some shape or another since 2005 when I got a copy of Fedora 4 in a book I bought from Sitepoint when I was first learning the craft of web development. I've also used every version of Ubuntu since Dapper Drake, released back in 2006. That's just on the desktop; I've hosted my websites on Linux since I started paying for hosting in that same year.
In fact, in 2006, I was very close to switching to Linux; I used an IBM ThinkPad which I dual booted and it ran better under Linux than it did in Windows XP. But it had some build issues and I got itchy for another computer so I bought a G4 Powerbook and switching to OS X because of my then association with the publishing industry. Back then, OS X was dominant in publishing; QuarkXpress and Adobe PhotoShop ran best on that platform and the Mac had a healthy catalogue of commercial apps, including Microsoft Office and Dreamweaver, on which I'm ashamed to admit I learnt write HTML and even PHP (give me a break, I was a 25 year old Arts graduate!). The Mac felt much more stable, elegant and crash-proof than Windows and Linux. What swayed me though is that I realised that OS X was close enough to Linux that I could deploy a local web building environment with everything I needed (after all, OS X ships with Apache and PHP out of the box) and still use the commercial applications that I relied on professionally. Back then, Scrivener was also a Mac exclusive and it was, and still is, one of the best applications for writing long documents.
With the exception of three months in 2010 when my wife and I travelled North America with a netbook running Ubuntu, Linux has never been my daily driver. I've always regarded it as a specialist tool, even after converting two family members (my mother-in-law and uncle-in-law) to Linux, I always reasoned that there was no point because Mac OS X was close enough at it's core to Linux while being able to run good quality commercial software.
The reason I'm switching
OS X is bloated, slow and outdated
I think you need more than one reason to switch your computing platform and I have several. When I switched to Mac, they still ran 10.4 (Tiger) on PowerPC processors. It was a beautifully understated operating system that ran highly efficiently on my PowerBook. That was back when hardware was expensive, forcing developers to get the most out of meagre resources.
Since then, I've gone a long way with Apple and I've drunk the CoolAid. After the PowerBook, I bought a 2007 MacBook running Leopard (upgraded to Snow Leopard, Lion and then downgraded to Snow Leopard!), a 2010 MacBook Air (Snow Leopard, Lion, Mavericks) and most recently a 2011 Mac Mini (Mountain Lion, Mavericks); not to mention the iDevices I've bought too.
At the risk oversimplification, Apple seems to be running on a Tick Tock release model: Leopard and Lion and introduced new features while Snow Leopard and Mountain Lion concentrated on improving performance. Mavericks has done a little of both and it will be interesting to see where they take 10.10.
For me at least, every release with the exception of Snow Leopard has taken a hit on performance, particularly memory efficiency. Mavericks is no exception; sure they introduced fancy new memory management technology but in the real terms and real usage the performance quite frankly sucks. On my Mac Mini (i5 CPU, 4GB RAM, ATI graphics), running Safari with 1 tab open, Sublime Text 2 and Mail leaves me less than 400MB of free RAM. Okay, I've got a bunch of services running such as DropBox, Apache, GeekTool and a mounted Samba share. The Mini can be upgraded to 16GB RAM and an SSD, something I plan on doing, but my MacBook Air's RAM can't be upgraded. It only has 2GB RAM, 256MB of which is shared with the graphics chipset so you can imagine how badly Mavericks runs on it.
Old packages, even older file system
I never used to care about this until I started web developing and moved beyond procedural PHP but OS X is always a couple of versions behind Linux when it comes to it's core packages. Upgrading packages on OS X, when compared with Linux's phenomenal package management, is woefully inadequate.
OS X's core is getting long in the tooth. HFS+ should have been put out to pasture years ago and I suspect that it's the source of many of the performance woes I get in Finder.
This stuff really isn't important to average users who live in Aqua but when you drill down into the OS X command line and then dip you beak in Linux, you quickly realise that OS X is painfully out of date.
I'm less reliant on commercial software
I want to preface this by saying I'm not against commercial software. Not only do I rely on it professionally (at least on my Company-issued computer) but I see no problem with buying a closed-source game for entertainment purposes or even using and buying commercial software, like Scrivener, when it doesn't lock me down into a particular format.
However it's been a goal of mine for quite sometime to wean myself off commercial software for my personal projects and productivity. It started when I wanted to save money but gradually became an intolerance to proprietary file formats on the things that mattered to me the most, namely my creative interests.
Once I embraced open standards and plain-text formats, which is something that open source applications drive, I soon released that I didn't need the bevy of closed-source applications and by extension I didn't need an operating system with a big catalogue of commercial titles.
I'm pissed off with big Data, the Cloud and the NSA
This will probably be my most contentious statement today but I've lost faith in technology giants and I don't trust them to:
- Keep my data secure
- Keep my data is private
- Keep my data safe from espionage agencies and Orwellian surveillance practices.
I don't trust the cloud and I can't trust any company with the kind of power that these giant corporations, nor the governments they work with, wield. By moving to Linux, I'm making a statement that it's me who should control my computing and my data; it should not control me, spy on me or compromise me in any way.
I'm not naive enough for a minute to suggest that Linux is a panacea for these issues because it's not; it's got security flaws just like any system but what it doesn't have is a single entity controlling it and the entire ecosystem around it. As a consumer, I can vote with my dollar; as a computer user I can choose to use services and software that puts me in control.
If law enforcement agencies have legitimate reasons to investigate me then get a fucking court order and I'll comply with the law 100%! Don't harvest my data, compromise my system or the software I use just on the chance one day that you might need to read one of my emails. Fucking around with internet security protocols, creating backdoors to systems and software will hurt 10,000 honest citizens for every terrorist you catch because the flaws they create can and will be exploited by criminal hackers.
Okay, done ranting!
Slapping Linux on an Apple-made computer is a little less straight-forward than on a regular PC. Apple have their own take on EFI (the bootloader that's intended to replace the BIOS) so getting a Linux distro to even boot properly can be tricky. Top it off and my Air has an Nvidia 320m graphics chipset, which won't even initialise properly if you boot using EFI. If you try to boot from a USB stick (which I prefer because it's fast), the computer defaults to EFI so instead you have to use a Live CD, which is slower but it gives you the choice to boot using Apple's emulated BIOS. Not perfect I grant you, but I'd rather have a working graphics stack.
I first made the change last Sunday and chose Elementary OS thinking that:
- It was lightweight (see above)
- It's interface, Pantheon, was one of the closest I've seen to Aqua (Apple's proprietary Shell)
- Installing Arch Linux (like I originally wanted) requires a USB-Ethernet adapter, which I don't have.
Unfortunately the current version of EOS, Luna, is still based on Ubuntu 12.04, which is ancient and what's more bothersome, I found that many of it's default applications where too buggy for daily use. It's shame because I love what the EOS team has done and I'm looking forward to their update.
Anyway, after a day of disappointment, I actually loaded Ubuntu 14.04 on it and despite a few niggles, I'm really impressed and pleased with my choice.
Installation was actually pretty painless. It's not like I was breaking new ground and there's a pretty good guide on the Ubuntu Wiki. Apart from minor tweaking of Xorg.conf, the system works out of the box.
Right from the first reboot I noticed the performance was superior under 14.04. The memory footprint was lighter (even in the much maligned Unity DE), file system performance under EXT4 on the Air's SSD is fantastic. I know too that I can squeeze even more performance out of the system by using a less resource-intensive desktop environment like XFCE.
A few things to consider:
- Hardware video acceleration
After some experimentation, I realised that hardware acceleration for video playback wasn't enabled by default, even with the proprietary Nvidia driver running. I've also since learnt that it's not running at all in Ubuntu's open source drivers. This surprised and annoyed me because the 320M is a highly capable chipset with embedded support for H.264 and most other modern codecs. With a bit of google-fu, I realised that you need to run a video stack that uses VDPAU, something that Gstreamer, Totem and even VLC does not do by default. Well that's a quick fix:
sudo apt-get install libva1 vdpau-va-driver vainfo
Then you need a video player that uses Gstreamer and VDPAU, which means installing Gnome-Mplayer:
sudo apt-get install gnome-mplayer
Finally in Mplayer, go to the Preferences > Player and under the Video Output dropdown, select vdpau. Note that VLC can also do hardware accelerated playback, but again the above libraries must be installed and again you need to enable it in VLC's preferences. I haven't tried as Gnome-Mplayer is working just fine for me.
It's pretty straightforward but that really is the sort of thing that should be enabled by default. It made a huge difference; playing a 1080 MKV file, CPU utilisation dropped from 60% to around 6%.
Oh and before Mac users start getting snarky, this kind of post-installation tweaking to get video working properly has to be done in OS X too because out of the box Quicktime won't play MKV, AVI or WMV.
- SAMBA vs NFS shares
I've long known that mounting drives with Samba has quite a bit of CPU overhead from my experience using a Raspberry Pi where every CPU cycle is precious! What I didn't expect was how badly SAMBA shares performed on my Core2Duo Air. Admittedly, it's running at 1.4Ghz but I did expect better but again the CPU took a considerable hit and seemed much less efficient over wireless.
Changing to NFS was a notable improvement, especially streaming large video files. It's also much more convenient too because NFS lets me mount a network resource and treat them as local. So I've loaded two NFS shares from my NAS, to the Music and Video folders in my Home directory and as far as applications like Banshee and Mplayer are concerned, they are treated as though they are physically located on the Air's SSD.
- SAMBA is broken in Ubuntu
To add to SAMBA's woes, copying directories from a samba share is broken in Ubuntu, which posed a problem for me when I attempted to copy files from my Mac Mini. NFS and SSHFS however work just fine.
Time was that you wouldn't dare comparing OS X and Linux on aesthetics - it was a no contest really - but Linux Desktop Environments have come a long way. OS X is pleasing to the eye but let's face facts, its look and feel has only incrementally changed since the UI was overhauled in Leopard back 2007. Let's face another fact, when the next overhaul comes it will mostly likely unify OS X with the theme adopted by iOS 7 whether you want it or not.
With Linux we, the users, get the choice of we want our desktops to look and function according to our tastes. Don't like Unity, don't use it, there's a lot of other choices; if you prefer the current flat design craze to the 3D look, there's themes aplenty for you. With Apple and Microsoft, we get their tastes and their choices made on our behalf. DIY tweaking the UI on OS X is perilous, particularly when upgrading the system.
I've decided to stick with Unity but I have tweaked with themes and icons from the fabulous Numix Project. I've also installed the Gnome fallback shell for the sake of nostalgia and because I'm not yet sold on Unity's launcher.
Is this a total switch?
The short answer is yes, at least on my Air.
The longer answer is a little more complicated. I have a fairly pragmatic approach to computing.
My current job as a technical writer, prescribes the use of Windows, Office and the Adobe Creative Suite. My wife uses Windows on her computer and has no interest in switching; besides we've invested a lot in Windows games over the years and for a long time we needed Windows just to do our taxes.
I've also invested a lot in the Apple ecosystem; not just hardware but commercial software too. I've used Scrivener for years now to write, I also use Pixelmator and iPhoto to manage our family's photo collection. My Mac Mini runs Mavericks well and will run it even better when I upgrade the RAM and install an SSD. Would it make a good Linux machine? Probably, save for one detail, the graphics card is supplied as a custom component by AMD so I really don't know how it would fair with either the open source driver or AMD's proprietary catalyst driver.
I do know however that the Mac Mini is probably the last Mac I'll ever buy and depending on what the WWDC reveals next week, Mavericks will likely be the last version of OS X that I'll use.