Hello Again, Linux

It’s about 8 years ago that I decided to buy my first Mac. At the time I was using PCs with Windows and Linux. My first Mac was an iBook G4, a 1Ghz PowerPC. I loved it. Everything was so fresh and new. Since then I’ve always used Mac laptops.

October 1st I’m starting a new job at a Python company called STX Next here in Poznań. For the past half a year, I’ve been working on Zedclose to full-time. I enjoyed it, but I decided I wanted a change: I wanted to be surrounded by colleagues rather than sitting in an office by myself with my nearest colleague 1000km away. Over the past three years I never experienced that longer than a few weeks — I always worked remote. That’s going to change now.

STX Next is not a Mac company. They do a bit of iOS development, but not much. Everybody’s using Linux, essentially. I decided I wanted to fit in, and was ready for a change anyway, so decided to buy a PC laptop. I forgot what it was like to decide on a PC to buy. The amount of choice is insane, and the trade-offs you have to make are very tricky. This one has a faster processor, that one has more memory, that one has a better screen, and the other one has a better trackpad. Also, will everything work under Linux? In the Apple world things are simple. If you decide on a laptop you have roughly two choices with some minor configuration possible. In the PC laptop world… you have a dozen brands each with seemingly dozens of models with unpronounceable names.

After a lot of research I decided on a Lenovo Thinkpad t440s (catchy name, huh?). Tada:

I’ve been using it full-time for the past two weeks, running Ubuntu GNOME 14.04 and I’m pretty happy with it. A lot of stuff I expected to cause trouble just worked. Hardware-wise basically every part of my Thinkpad is supported, although the fingerprint scanner software crashes a lot. When I plug in my iPhone it is automatically detected and I can access music and import pictures.

Over the past years I haven’t used Linux much for anything else other than servers. I hadn’t really kept up with how desktop Linux evolved at all. Similar to the hardware story, there’s an insane amount of choice in the Linux world: there are many distribution, and within a Linux distribution you have to choose a desktop environment to use. After using Ubuntu’s default “Unity” for a while, I switched to GNOME 3, and a week and a half in — I’m pretty happy.

My theory, as a long-time smug Mac user was that Linux had always been about copying and design-by-comittee (or design-by-community), which seemed inherent to the open source development model with lots of parties involved. Implying: much in the Linux space is a giant compromise with little original thought, especially on the desktop. And while in many ways that’s true, there are some exceptions. GNOME 3 is surprisingly daring and different. It borrows many elements from existing environments (including OS X), but it feels pretty different.

With some tweaking — but not that much — here’s what I’m looking at now:

(Indeed, winter is coming.)

What I like is that the amount of space used by the environment itself is pretty minimal. By default it’s just the bar along the top, I enabled the window list at the bottom myself (although I’m still not sure I’ll keep it). So how do you launch applications? You hit the Windows key (yep — I got one of those now). When you do that, this happens:

This is a mix of OS X’s Expose, the dock (on the left) as well as a quick launcher. To launch an application, simply start typing its name. Want to activate another open window? Click it. Launch one of your favorite applications? Click it on the dock. All behind the Windows key. Pretty good idea, IMHO. Did I mention that you can set Alt-Tab to switch between all windows, not just applications? Finally.

Desktop application-wise Linux doesn’t compare very favorably with Mac and Windows. The choice is much more limited, desktop apps are often (but not always) of poor quality, more difficult to use and ugly. Big vendor applications typically lag behind their Windows and Mac counterparts (e.g. Skype and Spotify). My solution is to use web and Chrome apps for mostly everything.

  • Code editor — Zed (Chrome App version) — duh
  • Email — Gmail
  • Calendar — Sunrise (Chrome App)
  • IRC client — IRC Cloud
  • Twitter — twitter.com (not super with it, though)
  • Todo manager — Wunderlist (web app).

Is this ideal? No, but it’s workable. Also, it means that a move to ChromeOS wouldn’t be a giant leap. Although this may appear risky — as a file system I opted for btrfs. Btrfs is Linux’ next-generation file system, on par in many ways with ZFS. The big advantage I get from it is an efficient way to do back-ups. I have an external 2TB hard drive also with btrfs, and use a simple bash script running as a daily cronjob, that takes snapshots of the filesystem, and only transfers the diffs to my backup drive. This is way more efficient than using backup software that scans your whole drive for changes and transfers changed fles. Of course there’s the risk of using btrfs on two places, I’m thinking how to do offsite backups safely too.

So far so good.