E-Scribe : a programmer’s blog

About Me

PBX I'm Paul Bissex. I build web applications using open source software, especially Django. Started my career doing graphic design for newspapers and magazines in the '90s. Then wrote tech commentary and reviews for Wired, Salon, Chicago Tribune, and others you never heard of. Then I built operations software at a photography school. Then I helped big media serve 40 million pages a day. Then I worked on a translation services API doing millions of dollars of business. Now I'm building the core platform of a global startup accelerator. Feel free to email me.

Book

I co-wrote "Python Web Development with Django". It was the first book to cover the long-awaited Django 1.0. Published by Addison-Wesley and still in print!

Colophon

Built using Django, served with gunicorn and nginx. The database is SQLite. Hosted on a FreeBSD VPS at Johncompanies.com. Comment-spam protection by Akismet.

Pile o'Tags

Stuff I Use

bitbucket, Django, Emacs, FreeBSD, Git, jQuery, LaunchBar, Markdown, Mercurial, OS X, Python, Review Board, S3, SQLite, Sublime Text, Ubuntu Linux

Spam Report

At least 236431 pieces of comment spam killed since 2008, mostly via Akismet.

Switching from OS X to Ubuntu

In July, I switched from OS X to Ubuntu as my workday environment. For three years my personal MacBook Air had been pulling double duty, personal computer plus workstation at my job (each role with its respective user on the box). When the combined demands for disk space exceeded the 250GB SSD, I took that as a sign that it was time for a change. I work outside my office enough that an external HD wasn't a practical solution, and a USB key is too slow.

So, I requested a Windows laptop from the company stash. Step one: wipe Windows off it. Step two: install Ubuntu 14.04.

Here are some highlights and hopefully useful details about the switch and the new setup.

Losing LaunchBar

One of my all-time favorite OS X apps is LaunchBar. For people who haven't used it (or Quicksilver or Alfred, which are similar), it's hard to explain, but its slogan "Keep your hands on the keyboard" is as good a summary as any. Launch/switch apps, control apps, run web searches, manage clipboard history. It's like a fast command line for everything outside the Terminal.

As other users will tell you, once you're accustomed to it, trying to get work done without it feels like typing one-handed. It's possible, but you are used to thinking and moving a lot faster.

After trying Synapse, Launchy, and Gnome Do, I settled on Kupfer as the best replacement. This may be little surprise, as Kupfer is clearly modeled after Quicksilver, which is LaunchBar's closest competitor. However, having spent so much time with some others, I feel the the good fit is more than superficial. (As a bonus, it's written in Python, so hopefully soon I'll be hacking on it.)

After all that I still needed clipboard history. I found Diodon to be the best combination of useful, configurable, and minimal.

Not hating Unity

I know the new Ubuntu graphical shell has generated a fair amount of controversy, but in the end I'm finding it quite livable. A key piece of this is some of the customizations I detail here. However, for the most part the allegedly annoying aspects of Unity stay out of my face. I like the HUD a lot when I'm hunting for a particular command. My only gripes with the HUD are 1. I would like to be shown keyboard shortcuts along with the menu commands I'm finding, and 2. The default hotkey of Alt results in way too many unwanted activations (especially if you're an emacs user!). I solved #2 by remapping the key. Because you can do that.

Window management

I know if I were a truly elite Linux hacker I'd wield xmonad like a boss. I like xmonad a lot, but I'm not quite there for daily use.

On OS X one of my longtime gripes is how much you are tied to the mouse for window arranging. To alleviate this pain there I use a great app called Divvy to size windows and throw them around (including from one monitor to another).

On Ubuntu I've replaced it with a fairly simple trick: Compiz Grid keyboard shortcuts. For example, I set ctrl-alt-space for fullscreen, ctrl-alt-left for left half, ctrl-alt-1 through ctrl-alt-4 for the four quadrants. I also have a key that moves the front window to the other monitor. I set the keys in Compiz Config Settings Manager > Window Management > Grid. I'm pleasantly surprised how much mileage I've gotten out of this. (I believe I had to install at least one additional package to make this work, but I'm afraid I've forgotten what it was.)

Mail and calendar

Like many businesses, the one I work for revolves around a Microsoft Exchange server, so I had to be able talk to that. Not just email, but calendar too.

I tried Evolution for a while, since it was touted as an Outlook replacement, but I never managed to get it to talk to my calendar. I switched to Thunderbird and (with the help of a couple add-ons) that's working fine. Fine except for LDAP. As a stopgap for that I harvested addresses from my mail store using Email Picky4.

Other Apps

My main editor is the same as before: Sublime Text 2. One of the reasons I chose ST a couple years ago when I switched from TextMate was that it was cross-platform, and I was thinking about the possibility of this switch even then.

I do find myself using Emacs a fair amount though. I've always liked Emacs.

For storing passwords and other secure data, I love pass, "the standard unix password manager". I run it on my Macbook now too, and sync them via a private bitbucket repo (with separate branches for work/personal).

Music-playing is a motley combo: some Spotify (though the app's a bit flaky), some Google Play (I uploaded my whole iTunes library from my Mac), and Radio Tray for listening to my favorite stream.

For Lync chat (because some of my co-workers are Windows only), I use Pidgin with the SIPE plugin. Only real annoyance was having to manually assign "Alias" values to contacts so that they would be identifiable in the buddy list.

Unity "Dash" hotkeys are handy for quick switch between main apps like browser, IRC, mail, terminal, editor (e.g. I press Super-1 to switch to Chrome).

For backup, I'm using Deja Dup (via the built-in "Backups" utility). It's no Time Machine but it does the job.

Hardware

The machine is a Dell E7240 with 250GB SSD and 8GB RAM. It's a good solid package. It's quiet and fast. Battery life is modest at 2-3 hours, but the Air kind of spoiled me there.

To control brightness on my Apple Cinema Display, I installed ACDControl. I had to install it from source, and add a patch for my specific display model. Lookit me, I'm a l33t Linux hacker.

I haven't figured out how to run the machine clamshell mode (or if it's even possible). My workaround has been to raise my main monitor up on a couple fat books so that the laptop display can be open beneath it. Good enough.

Bottom line

I consider this a very successful switch. It's been about ten years since I spent my workdays in an entirely open source OS and desktop. My experience back then was good, but things are even better now. "The Year of the Linux Desktop" has become a running joke over the years, but for me it's this year.

Saturday, October 11th, 2014
+ +
2 comments

Comment from Alfred Nutile , 4 weeks later

What year is you cinema display? Mine is 2013 and has a Thunderbolt connector and not sure if that would work with linux?

Comment from Paul , 5 weeks later

My Cinema Display is older than yours (Mini Displayport), but I believe there's good Thunderbolt support in the kernel now.

Comments are closed for this post. But I welcome questions/comments via email or Twitter.