Monday, 21 March 2016

Goodbye Apple, Hello Linux

Over the last few months, my much-loved but massively abused Macbook Pro has started to die on me, and I've replaced it - with a Linux machine, full time. GASP! I've been getting tons of questions from a people about both my reasoning for the switch, and of course the gory details on my new setup, and so I thought I'd throw a post together.

The Macbook had a good run, all things considered - five years of daily use, and on top of that hundreds of hours of game jams, hack days, videogames, rendering, countless time spent noodling, designing, programming, making, breaking, and during the last couple of years a lot of livecoding in hot sweaty nightclubs. It's been dropped, rained on, left in the sun, had beer spilled in it, and survived an onslaught of attacks from my toddler, 'Hurricane' Isaac. It's not quite ready to be taken round the back and shot, but increasingly it's been creaking - kernel panicking, crashing and generally not being stable. An OSX reinstall and a clean-out fixed it up a little but it still regularly craps out and runs like an absolute dog under even a modest load. Given that my machines are used on stage nowadays (for talks and performances) this is of course completely unacceptable, and so I made the decision to buy a new primary machine and relegate the Macbook to light duties. It's earned a break. 

The crossroads then, was whether to re-up and buy another Macbook, or finally put my money where my mouth is with free software and run Linux full time. I'm not a new Linux user by any stretch, but I've never used it day to day over long periods - I've mostly relied on it when salvaging old machines and that sort of thing. Five years ago this would have been a no-brainer: buy another Macbook. However in the last few years my work has changed - not just in software terms (I was a full time Flash dev when I bought it!) but my whole outlook as both a developer and an artist and a million other things. 

Software is a big one - I've become increasingly reliant, inspired, and in very practical terms dependent on free software. I've gone from finding it kinda handy when things are free and open, to consciously striving to utilise code, libraries and applications that are under decent licenses and let me noodle freely and then give back in the form of code, docs or whatever else. And if nothing else, I want to tinker, learn, improve! 

The other reason is what I'm leaving behind - I'm fucking done relying on operating systems built on shifting sands that are out of my control. I don't want stuff to stop working because I've chosen not to update my OS (for example, being unable to update Xcode until I update OSX - really?). Similarly, aside from being almost literally spyware at this point, I don't want my Windows install to reboot itself when it's done pulling down an update I didn't ask for. I don't want my operating system to be a black box any more. 

My chosen distro for now is Linux Mint Cinnamon 17.3 - it's slick, has Ubuntu robustness under the hood, and in a surprising turn of events: everything just... works. Drivers updated easily, I had no issues with external monitors or peripherals, even things like the wifi hardware and card reader worked out of the box. My only wobble came when I updated the graphics driver manually to something bleeding-edge, which stopped graphic boot working - but I was quickly able to roll back on the command line. Apart from that, which was my own stupid fault, everything's worked great.

Oh, and I guess I should mention the hardware that powers all this too - I agonised over it for a long time, and settled on a Dell XPS 15:

This thing is an absolute beast. I knew I wanted a 15" laptop with some graphical clout, and initially looked at gaming laptops. Problem is that gaming laptops all look like they were designed for, and by, teenagers. The XPS 15 looks really subtle in comparison to gaming machines, but still has more than enough speed and a beefy enough graphics card for what I need. The best part is the absolute system-seller of a killer feature: an edge to edge screen with almost no bezel. This basically means you get a 15" laptop but in the form factor of something slightly bigger than a Macbook Air. And it's a 4K too, so everything's crystal clear, although I keep it set to 1080p so I can actually see buttons and things. The whole thing is sturdy brushed metal with no case flex or anything, and it has a really subtle carbon fibre finish inside with a trackpad as good as the Macbook ones. It's not quite as flawless as the Macbook's single-piece-of-aluminium thing, but it feels really well put together and looks amazing, especially that wondrous screen. Downsides? The battery isn't mind-blowing but I don't go unplugged much anyway. The other one of course is... the price. Not quite Macbook money, but not far off. Don't tell the missus, OK? 

I'm realistic about software too, of course - I know it's never a 1:1 transition in terms of tools and workflow. Ironically (and quite helpfully) in terms of what I personally build with code I'm actually pretty fine - I work mostly in the browser, or if I'm building more intensive or desktop stuff I'll use things like openFrameworks, Processing or Haxe. All crossplatform, all run like a charm here. Even the likes of Stencyl work great on Linux. The changes that'll be more acutely noticed are the likes of Photoshop and Illustrator. There's alternatives, and nothing beats some of Adobe stuff in particular, but ultimately I don't do so much visual work that it's going to kill me, I don't think. Adobe's products are a particular bugbear for me, as I'd gotten so reliant on them over the years - when they switched the subscription model I knew I was done, and I've finally dropped their shit like I've been threatening to. Feels good man.

The things I will miss most right now is on the livecoding and live performance side - right now I use Cyril for almost everything live, which is currently only available on OSX. However as an openFrameworks app I'm sure I can port it over. The other huge loss for me is VDMX, which I paid a bunch of money for and is OSX only. This one I think I'm going to just have to take on the chin really - obviously there's VJ software on Linux but I've got a really specific toolset and everything for VDMX. Shame, but this is the only really killer one I've come across so far. Of course there's a lot of other livecoding resource that's more than fine on Linux (particularly Fluxus, which I adore) and browser based environments like Livecodelab and Gibber work wherever Chrome does. I'm treating this as a good excuse to learn and play with new things, as always. 

For day-to-day stuff I've had no huge problems - most of the things I rely on have Linux versions or compatible equivalents. There's a Spotify client that works great, Atom works perfectly identically to OSX (used for livecoding), even Slack has a perfect open source client that's great. The only one I've not replicated well so far is Evernote, there's some OK-ish versions and a command-line interface one, but nothing as slick as the official client. Will keep looking on that front. 

And so I guess this is me nailing my colours to the mast: this is Linux, day one. Coming up I've got one big VJ set (at Chip Bit Day) that I'll be using my Macbook for as I don't have time to do anything mega new, and I've mostly finished two talks for Resonate festival in Belgrade that are in Keynote, so hopefully my Macbook will live that long and not let me down. Apart from that, this machine and it's operating system represent a new frontier for me in software, openness, and when it all goes wrong probably a lot of swearing. Onwards and upwards.


  1. So you will not be doing any livecoding from now on? :(

  2. Would love to know what software you are using after some time of being on Linux.

  3. Would love to know what software you are using after some time of being on Linux.