Wednesday, June 6, 2007

Ian Bicking

Ian Bicking is a popular Python speaker and author living and working in Chicago.

Steve asked me to write about my desktop. I work at home, and here's my physical desktop:
I would argue that this is really a picture of the street outside Ian's office, but I suppose we haven't actually established any strict rules so he gets away with this since a monitor (and a bit) is visible.
On my computer I run Ubuntu; I used Debian for many years, and basically Ubuntu lets me be just a little bit lazier about setting up and maintaining my system, and that's good since I hate maintaining my system. I'm too afraid to upgrade my system to Python 2.5, so I haven't upgraded to Feisty yet. Linux on the desktop is wonderful, I have no qualms about using it, and I'd consider OS X or Windows a big step backward. Linux on a laptop was pretty bad (bad enough I got rid of it)... but I digress.

I am thinking about OS X on an Intel MacBook for my next laptop, since I know Windows developers who run Visual Studio under Parallels. Linux was a remote possibility: just why is it so bad as a laptop OS? Will I be unhappy with OS X? Can I run Linux virtual under OS X?

Clearly Ian isn't going to have any complaints about 2.5 language incompatibilities! I have bitten the bullet and upgraded under Cygwin, where I currently run 2.5.1, which is also available on Windows. 2.4.1 remains the default for serious work, however.

My desktop: though I run Ubuntu I don't run Gnome. I've never liked Gnome; desktop backgrounds and system toolbars and window decorations are all distractions. Programming is all about focus, so distractions are dangerous. So instead of Gnome I run Ion, a tiled window manager. You split the screen into non-overlapping tiles, and each tile can have multiple tabbed windows in it. You can't waste your time getting the windows just right; or rather, the windows can't scatter themselves senselessly over the screen and thus they are always just right.

Using a window manager that doesn't act like normal window managers used to be quirky and occasionally annoying, but all the quirks seem to be worked out now and everything just works. On the desktop, that is: since I have a simple network setup and I don't care about power management, I don't care about those basic system utilities that have become tied to the Gnome environment.

Simplicity in all things seems like a good idea, and this does seem simple. Do other Ion users have other information to add to Ian's praise?

So the "desktop" on my computer looks like this:

When you take away all the applications, all you get is a big black space. I only really use a handful of applications: Emacs, rxvt (a terminal), Firefox, Thunderbird, XChat (IRC), and XMMS (music). I loathe variety and experimentation.

Of course this picture might give readers the impression that Ian's desktop is dull. While previously unfamiliar with his desktop your editor can attest that Ian himself is not at all dull in real life.

I recently got a second monitor for my computer. I like it, but I'm also a little unsure about it. So far I've used it to separate my productive activity from my non-productive activity. That is, one monitor gets rxvt and Emacs and sometimes a reference web page, which is all I use to program. The other monitor gets IRC, blogs, email, music.

This is good because when I am distracted I don't lose my place in my productive work. This is bad because my unproductive work is always right there, ready to distract me. Figuring out how to maintain the best balance is about the only thing that makes me change my basic environment. Since changing my environment is just yet another form of unproductive work, I try to change my environment as little as possible.

So that's two screens full of black nothingness, then. Ian describes quite a spartan style here, and one that is somewhat at odds with his lightning talk at PyCon TX 2007. Perhaps we should see whether any of his PyCon drinking buddies can cast any light on this enigmatic figure. Anyone?

So there you have it: I seek all things dull. I suppose it then follows that I should work in a windowless white room. Then I would finally stay focused.

So now I understand why Ian seeks me out at conferences. Let's hope that room doesn't come with a strait jacket and padding on the walls!

Thanks for sharing your desktop with us, Ian


Marius said...

I've been using Linux on laptops since I got my first laptop in 2000. There were occasional rough spots (suspend not working), but overall I find it considerably more pleasant to use than Windows. I haven't used Mac OS X much, but from what I've seen the lack of a sane package management system makes the life of a developer unnecessarily difficult.

Dual-head: I like to work with a text editor (vim) window on one monitor and a terminal window (gnome-terminal) on the other. I use one to edit code, and the other to run unit tests, interact with the revision control system etc. My distractions live on other workspaces, and I try to limit myself to two windows per workspace. I love GNOME, even if it sometimes lags in features.

lengani said...

Nice interesting site Steve, love the commentary/editorial touch. Linux definitely rocks on the desktop. I run Arch Linux as it let's me tweak it that little bit easier. It's interesting what tools people use in their work, (another vim fan here). Less clutter is good and tiling window managers really are a welcome change to endlessly tweaking themes just to get them right. Haven't tried Ion yet, instead went KDE/XFCE ->wmii -> dwm -> xmonad, well another good reason to learn Haskell!

Ian Bicking said...

I like my desktop enough that the laptop is really a travel machine only. As a result, things like suspend matter a lot to me; I can't keep my laptop plugged in all the time, and without suspend working (which is hasn't for me) I have to shut down or I quickly run out of battery. I've even had problems with the screen itself staying on when the laptop is closed, brightly illuminating the keyboard and nothing else.

Additionally I give presentations. I've never been able to hook a Linux laptop up to a projector. This is a big problem. I actually brought a backup beater Mac to the last PyCon just in case I needed to use it for my presentations, and yes, I needed to use it for my presentations.

The last problem is I find networking hard to get working; it's finicky and much less reliable under Linux.

None of this is a problem on the desktop, but on a laptop it's pretty bad for me. With more Linux-friendly hardware the suspend will work. Networking isn't always a problem. The projector thing seems to remain a big problem for most people.

Jeff said...

I just installed Ubuntu under Parallels on my Intel MacBook Pro. It runs just fine. Being a web developer, having Prallels is amazing. I have 4 major OSes running at the same time showing my site in all 5 major browsers. All of that on a laptop.

That's just to say that it can be done and it's helped my own productivity in a huge way.

Phil said...

Ian: most of your problems can be addressed by researching your hardware before you buy it. If you get a decent wireless chipset and an Intel graphics card, it makes for a laptop that's a lot more free-software-friendly. The only caveat is that even on the best GNU/Linux systems, suspend is not quite as fast as it is on OS X.