Saturday, July 14, 2012

On My Way to the Community Leadership Summit

I should be easily visible in my light blue Djangsta t-shirt.

Thursday, January 1, 2009

Brett Cannon

When Steve asked me to do an entry for On Your Desktop, I instantly wondered if I should wait a couple of months to do it when I am back home in Vancouver, BC. At the moment I am in the lucky position of doing an internship at Google with the App Engine team under the auspices of Guido. But Steve said to do what I wanted, so I decided I would share my working environment here in San Francisco now instead of possibly being as delinquent as Barry in getting Steve a post for the blog if I waited until I returned home.

If you were going to be as delinquent as Barry you'd have to wait until after you'd finished next year's internship ... but it's nice to get a response so quickly. Thanks!

Let's start with my desk at work and go from small to large in terms of details. When I code anything other than Java, which thank god is never for my internship, I use Vim. I have been using the editor since my undergrad days and I have been generally happy with it. I do occasionally try out other editors (e.g. TextMate, Eclipse), but I always come back to Vim thanks to the muscle memory I have built up for it along with its wide support of languages (I am a language whore so I sometimes code in some obscure languages that most editors have no support for). I recently switched to GVim and that has also helped me enjoy my Vim usage more. I currently don't use any plug-ins for Vim or crazy macros.

In terms of my other daily applications beyond Vim, it's just Firefox and a terminal. Working at Google means pretty much everything is a web app, so I don't need much beyond my a code editor and a browser to get my work done.

Ah, the simple life. At least we aren't getting a repeat of the Alex Martelli black screen :-)

In terms of OS and what everything is running on, it's the standard issue Linux desktop at Google. The screen is q 30" LCD and I have to say it's rather nice. I have done the dual 24" LCDs during my last two internships at Google, and the continuity of a single screen for that much screen real estate is great; having that split in the middle of my workspace always bugged me.

Pulling back from the software, for input devices I have a Kinesis Advantage keyboard and a Kensington Expert Mouse (which is a trackball, making the name a complete misnomer in my eyes). I have been a trackball user since back in high school when my PC was kept in such a small space that a regular mouse just didn't make much sense. And the Kinesis I have used since my RSI came into existence.

Sorry to hear about the RSI. Interesting to discover that you too are a trackball fan. I really will get one now, just as soon as I've tidied the office ...

Pulling back to the physical desk, the stuff on the desk that might not be obvious from the photo is my NuForce Icon headphone amplifier, iPod Touch, and a cup of Reese's Pieces. The Icon is to make the music coming from the iPod Touch sound better. The iPod Touch is currently only for music and my todo list (thanks to Things), but the device will slowly be transitioned out of my life as I plan to eventually move my music over to my developer HTC G1 phone. The Reese's Pieces is to help me meet my goal of gaining 20 lbs. during my internship (if you have met me you would realize why I am trying to gain weight, plus I gained 23 lbs. during my last internship so I know it is feasible).

Is the poor sound quality on the headphones because of an impedance mismatch, or do you need more power output than the iPod can provide? I too have a G1, but I am contemplating web apps rather than the currently-mandatory Java. Any chance we can persuade you to port Python?

And pulling back even farther from the desk, the view from my chair is of some new condo buildings. I share an office with a co-worker who unfortunately has to put up with my constant questions on how things work on App Engine. And then Guido, who sits across the hall from me, has to put up with me talking loudly.

I've only visited the Google campus once; I had forgotten that there were residential properties so close.

When the work day is done I walk home to the apartment I am staying in with an old university friend of mine. There I work on my MacBook. The desktop on my laptop is rather simple and sparse. The dock has nothing beyond Firefox and shortcuts to the docs for Python 2.7, 3.1, Google App Engine, and Java stuff for my thesis. The wallpaper is consistently set to a theme that rotates every photos every 15 minutes. Each theme I have is meant to help motivate me to hurry up and graduate. Currently it is sports cars I can't afford or ecologically-friendly ones I could potentially afford if I had a well-paying job.

As for my physical work environment, it consists of either a sofa or a table from IKEA (in my own defense, not a single thing in the photos of where I am staying is mine; my friend is the one with all of the "possessions"). One of the drawbacks of going nearly 950 miles for an internship is you don't get to bring your furniture with you. But plopping down on the sofa with my laptop has worked out fine.

And there's nothing wrong with IKEA furniture. It's built to a price point, but the quality is pretty good. I've been an IKEA customer since 1970, when I lived in Sweden. Plus I taught a Python class at IKEA US, so I know they use Python!

So, in summary: Vim/Linux/30" LCD/condo at work, Vim/OS X/MacBook/messy coffee table at home.

Thanks for letting us see your desktop, Brett. Maybe you can update us after the internship.

Wednesday, December 17, 2008

Barry Warsaw

Barry Warsaw is a long-time Python core contributor and also leads the Mailman project that probably handles about half the world's mailing lists nowadays. He is a developer for Canonical, the producers of the Ubuntu Linux distribution.

At first, when Steve asked me to contribute to On Your Desktop, I thought "Steve, just how boring do you think I am?" And then I remembered that Steve and I have known each other for years, and have shared many plates of the most awful and addictive Kung Pao Chicken in the world, so he knew exactly how boring I am. Yet, he still wanted me to share my working environment with you. I decided to reward him by waiting a year and a half before responding to his request, ignoring his many pleadings until finally I was hungry for death fingers and three peanuts wrapped in styrofoamy clamshell goodness.

This also tells you that Barry's taste in food is about as discriminating as his taste in friends.

My desk top (as opposed to my "desktop") serves a dual purpose. Of course, there's the software hacking I do as a Canonical employee, and for fun on Python, Mailman, and other open source. But I'm also an amateur musician and while the bass is my primary instrument, over the last few years I've been getting into the digital audio workstation (DAW) world.

Here in the Warsaw household, we've been Windows-free for years. Even in my previous job at Secure Software, any Windows programming I had to do was done remotely across a VPN to a Windows box back at the home office. Of course, now that I work for Canonical (makers of Ubuntu Linux and, I really have no need for Windows, to the occasional consternation of my son's growing gaming interests. I've used Unix for over 25 years, and I run my domains out of my house on ancient Dell boxes running Ubuntu and Gentoo. I haven't switched everything over to Ubuntu mostly only the theory of "if it ain't broke, don't fix it", though some Gentoo-haters might think that's an oxymoron.

Probably the reasons those domains run like drains is that half the bandwidth is being sucked up by the Gentoo systems continually updating themselves.

Canonical is an almost totally virtual company; most of us work from our homes, and meet face to face only a couple of times a year. Working from home has its pluses and minuses, and it's not for everyone, but I love it. My office is in an upstairs bedroom and one of the best things about working from home is the ability to open the windows on a nice day, not to mention the two hours per day of your life you get back not sitting on the Washington DC beltway! Of course, if I get up on the wrong side of the bed, my commute doubles. Bad traffic is having to walk around the dog.

I sometimes think back fondly to my early days in the States, when if traffic was heavy my commute might be as long as six minutes. I too work from home some of the time, and this just makes it worse when I have to get off my butt and travel to teach or consult.

Here's my typically working environment. Of course its immaculately clean appearance wasn't doctored or contrived in any way for this shot. The dual screens in the middle are KVM'd to my 3 year old Dell desktop box running Ubuntu 8.10 (Intrepid). This is my primary development machine for work. I'm a firm believer in the "you can never have too much screen real-estate" so here you can also see to the left my IBM ThinkPad X40 (with it's defective screaming power supply) also running Intrepid. To the right is my Mac Book Pro, currently running OS X 10.5 (Leopard). The middle screens, keyboard and trackball can also be switched to a Mac dual 2.7GHz G5 also running Leopard.

So during a typical work day, I'm on my Ubuntu desktop. I used to have a pretty customized environment, with FVWM as my window manager (I wrote a Python plugin for FVWM years ago), but lately I've wanted to experience the desktop largely as my mom would, if I could get my mom on Ubuntu. So I've been sticking with the default Gnome desktop. I only curse it three times a day, usually not while the family is sleeping in the next rooms. Fortunately, I found the Gnome Do tool which actually makes the Gnome desktop fun again. Think of Do as the Gnome version of the awesome Mac tool QuickSilver. For a keyboard junkie like myself, it really puts the "dead" in "a trackball is just a dead mouse lying on its back with its feet and privates in the air".

The only good mouse is a dead mouse? I have to admit I try to do as much with the keyboard as I can. I hate the delay of switching between mouse and keyboard. I only wish I were a better typist. Then again, I also wish I were thirty pounds lighter and rather more handsome than I actually am. If wishes were horses then beggars would ride.

On the left screen I keep my two editor windows. Since the early '90s and until just a couple of weeks ago, I'd been a die-hard XEmacs user. I recently got back from two weeks in London working on a Launchpad team sprint and I realized just how lonely I was. It's not just that all the kids these days are overwhelmingly choosing vim over Emacs, it's that even the few enlightened coworkers that had chosen Emacs were using GNU Emacs instead of XEmacs. I realized that I was probably one of seven XEmacs users still left in the world, so I returned from London a changed man, and decided to give this GNU Emacs thing a try again. I've found it's come a long way in 15 years, and now I've returned to the fold, on both Linux and OS X.

Of course, X is just the bagel to the lox of Emacs, but what's the cream cheese? I don't know, but I live off of Emacs 8 hours a day or more, with occasional forays into jed or vim in a terminal when I need to get in and out quickly.

Coo, a whole monitor just devoted to editing. That's impressive. I think I might need another monitor or two ...

On the right screen is my eternally open xchat window, since as a company we communicate heavily via IRC. I'm typically joined to 5 or more channels on both private servers and freenode, so you can ping me at the latter if you want. (I hang out on #mailman, #launchpad, and #python-dev with the uber-creative nick "barry". You'll forgive me if old people can't always think of uber-creative IRC nicks.) I've been experimenting with irc-in-Emacs, but haven't made the switch yet.

Next to xchat is of course the ubiquitous Firefox browser, which I suppose I need while working on a web app like Launchpad. I do occasionally fire up various browsers on both Linux and OS X just to see what Launchpad looks like, but Firefox is my main axe.

I read email almost exclusively on the Mac. Why do all mail readers suck? Of course all software sucks, but mail readers particularly so. For me, Apple's just sucks less, though I think I'd rather have had some bug fixes and performance improvements than an RSS feed reader in my mail program. I guess RSS is the new email, in that every application must grow a feed reader or the authors just don't consider it complete. Call that Warsaw's Twenty First Century Update To Zawinski's Law or something. Watch for an RSS feed reader in Mailman 3.0 of course. Still, for me is the less sucky of the bunch. I think the fact that it supports Emacs keybindings (mostly) right out of the box helps a lot.

On Ubuntu, I read email with Claws, which doesn't suck, but bites. Claws actually is an underrated, or perhaps, under-popular MUA. I really like it much more than Thunderbird, and we won't even talk about Evolution, where the last usable version was 1.4 like a decade ago. If you haven't tried Claws, you really should grab it and give it a spin. It's got very good IMAP support, and very few bugs or misfeatures that make you want to throw your laptop against a brick wall. The coolest feature is its external editor for responding and composing emails. This means I can actually use my text editor of choice to write emails. That's clearly insane, I know, but you already know I'm not well in the head, so I like it.

Strangely enough you can also edit mail in an external editor in Microsoft Outlook. Unfortunately the only choice appears to be ... Microsoft Word, so maybe that's not a real choice. I think your choice of links for this paragraph yields a lasting tribute to the presidency of George W Bush.

I digress, but that's only because I'm in a post-Thanksgiving tryptophan coma.

You can also see from that picture that I use a Microsoft Natural Keyboard, which is really the only Microsoft product in my house. In all honesty, that keyboard has saved my career because to me, straight keyboards are torture devices only belong on the desks of Guantanamo inhabitants. I don't know who the Donald Rumsfeld of the computer world is, but he invented the straight keyboard. I have no idea why they aren't more keyboards like it, but if Microsoft ever stops manufacturing the Natural Keyboard, I will buy up every last one of them at my local Staples and horde them like they were Tickle Me Elmos. I just wish they made a wireless version and a version without that useless numpad (are you listening Bill? Or, ahem Logitech?)

Oh yeah, I heart trackballs. Not just any balls, trackballs.

I'm going to go right out and get myself a trackball tomorrow!

For the three of you who are still reading this (I'll bet you're recovering XEmacs addicts too, right?), now I'll tell you about my evil twin Blarry's desktop. See, Blarry is a musician, which automatically makes him evil, but not in the kind of way that attracts groupies. At Blarry's age and marital status, this is a good thing.

So here you'll see a guitar, a couple of basses, a djembe and a jumbled mass of patch chords, pedals, headphones and audio interfaces. I use these all the time to write music or work on songs for one of my various bands. For this, I find Mac OS X is the superior desktop, but it's not cheap. I use Cubase 4 as my main DAW, but I've tried to use many of the various FLOSS DAWs such as Audacity, Ardour and Jokosher, and sadly, none of them can touch Cubase or even Garage Band. Not that these latter don't have their problems, but for the most part, they do get out of your way and let you transparently work on the music instead of the tools. This is in fact, my definition of a good tool. I really wish the Linux DAWs were more usable and less intrusive into the creative process.

But as we all know (and as you already mentioned above) all software sucks.

So that's it. Very boring I know, but Steve did ask, so blame him. So Steve, is it time for some #1?

We'll probably have to wait until early in the New Year now. But then I've grown accustomed to waiting while you've been writing this piece. Thanks for showing us what's on your desktop.

Thursday, October 4, 2007

Michael Foord

Michael Foord, known as Fuzzyman to many, writes The Voidspace Techie Blog and is one of the developers of Resolver One, a revolutionary program that merges spreadsheet technology with Python.

I regularly use four different computers:

- A desktop machine four days a week at Resolver Systems
- A desktop machine one day a week at the Northampton Jesus Centre
- My Macbook Pro laptop whilst travelling and commuting
- My home desktop PC

The three desktop machines are all Windows machines running Windows XP. The Mac laptop (unsurprisingly) runs Mac OS X, which whilst not perfect lacks many of the frustrations of Windows. The Mac also runs Vista under Parallels. Parallels is an amazing program that integrates Windows seamlessly with Mac OS. As I was experimenting with a new OS with Mac OS X I thought I would also try Vista. I generally like Vista and don't understand what all the fuss is about it - it seems much better than XP.

I am prepared to believe that the usability has improved, but I do not like the Vista approach to Digital Rights Management - "the operating system is in control, and if you can't prove rights to the media you are not going to see it in high resolution". In my book that's tantamount to piracy: they are deliberately crippling our expensive equipment.

At Resolver we pair program, so although there is one machine that is 'mine' I still don't spend all day in front of it. My main machine is my home PC. At home I work on my book (still taking more time than it should but I'm still enjoying it), program and generally mess around.

I have three monitors. Two driven from whatever fancy graphics card came with my PC and one driven by a cheap card I picked up from ebay (Windoze XP will drive up to ten monitors if you want). More than one monitor is a great way to increase productivity - I really recommend it. The right-most monitor is a wide screen for watching movies, cartoons or TV series on. I like to have some background 'entertainment' whilst I write / program (perhaps that is why the book is taking so long), and if I watch a movie with my wife I can pretend to spend quality time with her whilst still programming. ;-)

The middle monitor is my main monitor and will have whatever I am actually working on, whilst the left most monitor usually houses a browser and thunderbird.

I also have my Mac mounted on an ergotron arm so that it is at the same level as my monitors. I use a program called Synergy (a software KVM) that allows me to operate the Mac from my desktop keyboard and mouse. This means that I can use my Mac for development whilst I'm at home.

I haven't come across Synergy before, that looks quite neat - not as virtual as VNC, it sounds like it might suit a lot of people. Hey, and it's open source too!

I use a gel filled wrist pad and a mouse mat with a wrist rest because I get RSI if I don't use them. If I do use them I can type away for hours, much to my wife's chagrin.

My virtual desktop is like my real desktop. There's a lot on it, but I try not to let it get too disorganised because I use it so much. There are a few standard apps. I use - Firefox of course, Putty, WinSCP and Winmerge which I think are essential Windows tools. The Wing Python IDE is great, and fortunately is cross-platform and so I can use it on the Mac too. Several of the icons are cruft and should probably be tidied out of the way (or the programs uninstalled)...

I too am a Firefox and Wing IDE user. I have Putty and Pageant loaded, but much more frequently use the ssh facilities from
Cygwin to do the security thing.

For chat clients I use Google Talk and MSN Messenger (I have too many friends who use *only* use MSN or I would happily drop it). At work we have our own jabber server on the intranet, so there I'm running three messenger clients... time to consolidate I think.

My favourite text editor for Windows is Ultraedit, which is not free but doesn't annoy me (which is a major bonus in a text editor).

I use quite a few non-free little tools. Especially when I started selling a couple of programs myself I became a lot better at paying for the tools I use and donating to the ones that are free.

The poacher turned gamekeeper, eh? Yes, making a living from software does cause you to appreciate the people who buy. I sometimes tell readers of Python Web Programming that purchase is the sincerest form of flattery. I don't think I've ever really been bittin by the chat bug, though the PSF uses IRC for Board meetings and the like, and I Skype chat with people occasionally. Can't remember when I last ran Google Talk (in fact I realize to my surprise I did not reload it after a Windows reinstall).

- Winrar - the best archive tool I've found for windows, particularly its shell integration
- Xplorer2 - much better than Windows Explorer
- Ultramon - expensive for what it is, but gives me a separate task bar for each monitor and icons to jump windows between monitors
- Word - I am used to Word, and it is the preferred format for Manning manuscripts

On all four computers I use Thunderbird for email. I much prefer POP3 on a client program to IMAP or web based mail - I can't stand the latency. The only exception to this rule is that I use IMAP on my laptop so that I don't delete emails from the server whilst I'm not at a desktop client. Unfortunately when you use Thunderbird as an IMAP client with a ropey internet connection (I have a 3G modem I use while commuting) Thunderbird exhibits some very odd behaviour. If you delete an email and then move focus to another one, the delete may take a few seconds to perform - after which thunderbird will just *jump* you to the email next to the one that was deleted, whatever you actually happen to be doing at the time. I still like Thunderbird though. :-)

Other programs I always have running are AVG anti-virus, POPFile (an email proxy spam filter that is much better than the one built into Thunderbird), Azureus the torrent client (*great* for downloading Linux distributions of course!) and recently the backup client for an online backup service called MozyHome. This runs silently in the background and seems like a good way of maintaining a remote backup.

Backups are always good. How many people forget this lesson!

On all my Windows machines I use another little backup tool called DirWatcher. This is actually one of the first things I wrote when I started learning Python, I probably wrote it about three years ago now. It takes a snapshot of the state of a directory and will then zip up all the changes into a single file and make the same changes on other machines. I use it for keeping my project files in sync on the different machines I work on. When I wrote it I didn't have internet access at home and all the directory sync tools I could find worked across the internet. It was something of a breakthrough for me at the time, as I had actually used my programming skills to create something useful! I'm gradually migrating most of my projects to subversion now, as even for non programming projects it is a great way of keeping things in sync, although it does require an internet connection of course.

It's always gratifying when an idea you have implemented to scratch in itch turns out to be indispensable.

Anyway, that's a brief tour around my desktop(s). Don't forget to buy IronPython in Action and sign up for the Resolver beta program.

Thanks for sharing your desktop with us, Michael.

Monday, August 6, 2007

Stephan Deibel

Stephan Deibel has for four years been Chairman of the Python Software Foundation. When he isn't donating his time to the Python community he runs Wingware, makers of the Wing IDE product that your editor uses daily.

My physical desktop is constantly under siege and changing, subjected to the ebb and flow of the tides of my disorganization and general chaos. Right now it looks like this:

You may notice it's a mess. I've got papers and bills interspersed with CDs and books on odd topics like building fences and gates, and natural insect pest control. There's also a broken toy baby carriage recently deposited there by my four year old daughter, and a printout of a paper called "Newsflash: Time May Not Exist".

I haven't had time to read that one yet so it might be true. Between working at Wingware, chairing the PSF, fixing broken toys and various parts of my house, working my ridiculously oversized garden, and writing drivel for no apparent reason... well, you get the picture.

On my computers' desktops I try to calm myself with this lovely view:

It's a photo I took some years ago in the Nilgiri Hills in southern India, where I visited pretty much at the moment that the dot com bubble burst. Not far away, at the top of the Ooty botanical garden shown in the above photo, I quite unexpectedly met some members of the Toda tribe, who showed us their village temple:

Note the phallic standing stone and very cool petroglyph-like decorations. The man in the photo is the temple keeper, the only one allowed inside the temple which wikipedia inexplicably thinks is a "hut".

This is all getting rather a long way from the desktop, but I feel an inexplicable urge to follow. Who knows where these ramblings will lead, and the pictures are interesting.

We asked so many apparently not entirely idiotic questions that they invited my travel companions and I to a wedding 17 km out in the middle of nowhere. I think it was about here. We went, and didn't even get mugged or kidnapped, as we half expected. This was in the days when the famous bandit Veerappan was still alive and active in the area. It was all very exciting and National Geographic, as you can see:

I'm the one doing the towering. Here are the bride and groom:

She's 6 months pregnant. We saw one of several ceremonies, sort of a sealing of the deal once she's safely with child. Here is the tree where the ceremony took place:

I'll spare you the rest of the wedding details which are covered in our breathless spur-of-the-moment between-power-failures email travelogue.

To close out my ramblings on this particular tangent, here I am looking like an incredibly dorky white guy in the tourist grade, but still amazing, embroidered garb that I had just purchased from our Toda hosts:

Well, that one pretty much sums it up right there.

I am tempted to somewhat cynically suggest that the whole thing was an excuse to sell clothing to gullible tourists, but I don't really believe it.

Oh yea, for those of you that thought they were going to hear about my computer desktop: I run a fairly fast machine with two 250 GB disks on which I've got multiple VMs (using vmware) containing all the various non-Mac build and test environments for Wing IDE. I use KDE on Ubuntu 6.06 LTS as the base, and also run Windows 2K and XP, Suse 10, Redhat 7.1 (really!), Solaris, and, oh heck, I forget and who cares anyway.

I also have a PPC Mac mini and Intel Macbook, both running OS X, both acting as build and test machines. And a second laptop, also with Ubuntu, so I can take some of the show on the road or at least down to the back porch. But I generally prefer working at a desktop, where I have my weird ergonomic keyboard (see photo) to help keep my arms functioning more or less properly.

That is certainly the weirdest keyboard I have ever seen. It looks as though you would have to type with your hands crossed (which in my case probably wouldn't make a lot of difference).

As far as software goes, I use Firefox as a browser, Gaim and XChat to keep in touch with my fellow Wingwarians and PSF board members, and Thunderbird for email, although I'm not entirely enamored with it and only begrudgingly gave up on pine for reasons that I forget but somehow suspect I don't want to revisit.

Not pine-ing for it, then (snicker, snicker)?

For development and text editing, I use Wing IDE almost exclusively, a choice that was clearly not biased in any way. I've also been known use gdb, Visual Studio, and the usual slew of other programming related tools, gnucash, open office, and yadda yadda yadda and so forth.

And in spare moments (assuming time does exist after all), I use Picasa in futile attempts to tame my 29GB of digital photos. But let's not even go there.

Thanks for sharing your desktop with us, Stephan.

Tuesday, July 10, 2007

David Mertz

David Mertz is author of Text Processing in Python, and recently worked a gig under the title Secretary of Ontology. He is enormously fond of words and of the things they might describe.

In describing my computer desktop, I was tempted by the slightly flip answer of writing: "My desktop is called bash." That is not quite true, however. While bash is probably my favorite application, I mostly use bash to launch other wonderful applications like grep, sed, wc, cut, paste, tr, head, sort, wget, tee and their friends (often with all that yummy piping and redirection bash allows). Moreover, there are other applications I like nearly as much as bash: IPython, ssh, a decent text editor, even an interactive web browser.

Readers will probably have gathered that David isn't primarily a Windows user. All the commands he mentions have stood the test of time in the UNIX command shell, and are now Linux staples (though they are also available on Windows through the magic of Cygwin, which I commend to Windows users interested in dipping their toe in the Linux waters).

All of these favorites I mention have something in common, perhaps something easily predictable from my background and known interests. The applications I like inevitably follow the the patterns "text in, manipulation, text out." In fact, most any sort of icons, toolbars, or graphical elements serve as mere distraction to me, being ultimately low in information content for the pixels they occupy. A desktop for me should simply arrange as many WORDS as possible in an easily accessible, and rapidly cognizable, fashion.

This is less surprising when you consider that David is the author of Text Programming in Python and the author of many technical articles.

Were I more monastic in inclination, I would follow Ian Bicking in using the Ion window manager. Out of a certain practicality, I instead generally use Gnome, or KDE, or OSX, but in each case with desktop, dock, or taskbar elements reduced to minimal intrusiveness. All of those do enough to get out of my way that they impose little burden. MS-Windows, naturally, I simply do not touch, except reluctantly at the end of a VNC session pointing to a single maximized application.

For a text editor, I marvel at the efficiency of my colleagues who know Emacs or Vim well; but I settle for merely good editors like jEdit and Kate. Once all unnecessary toolbars and ornaments are disabled, these editors have what I really need to edit either code or essays (without requiring the cognitive load of Vim or Emacs): multiple vertical editing panes; tabs that display all the open documents in a project; syntax highlighting; reasonable language-mode behaviors.

Who could take exception to this? Your editor, meanwhile, is beginning to wonder if his own interest in graphical tools makes him an oddity in the Python world.

Which brings me to one of my favorite, now widespread, interface conventions: document/context tabs. My text editor must have it. My web browser must have it. My terminal also must have it: gnome-term is good, as is konsole. On OSX, iTerm is a welcome improvement on Since screen size is limited, tabs present a minimally intrusive method of displaying and switching between contexts within the same type of thought process. For example, in a terminal, I often have multiple tabs, each pointing to a different SSH host (and each labeled by host name).

Let me wrap up with a few words on physical configuration. At a recent gig, I was lucky enough to work at a place that did not skimp on computer equipment. In particular, 30" monitors were readily available, with good multi-monitor capable video cards. The configuration I liked was two side-by-side landscape-mode 30" monitors providing one extended desktop. I know more about xorg.conf settings than I might have wanted to (OSX is far easier here), but the final setup is nearly ideal.

Of course such a setup isn't for hobbyists, but I know people who argue (correctly, I believe) that in certain environments such equipment can pay for itself in days in increased productivity. But it's going to be a while before hobbyists can afford to run like this.

With dual 30" configuration, I find that I can open a text editor on one monitor, with three document panes, each extending top-to-bottom (and many more than three tabs showing all the project files I might edit in a given pane). On the other monitor, I can display two full-height terminal windows, each having multiple tabs. And the final 1/3 horizontal of one monitor can contain a tabbed web-browser with multiple tabs (preferably each URL pointing at predominantly textual web pages).

Finally somebody submits a screen shot that includes an application! This is encouraging after a black rectangle and a purely virtual or imaginary image. And look - he's reading On Your Desktop! Maybe this blog will go somewhere after all. Well, one can hope at least ... from little acorns, mighty oak trees grow.

By maximizing each window vertically and removing extra space between windows, the above configuration gives me six [note: David mocked-up the above image in the absence of his preferred setup, which is why you only see four] panes of purely textual information to quickly compare. For example, the output of a program might appear in one bash session; three of the source files of that program show in editor panes; a web page displays the documentation of a library I am utilizing in that same program. A maximum of information relevant to a current task is available merely by moving eyeballs, without requiring navigation to other documents, files, URLs, etc.

Thanks for sharing your desktop with us, David.

Friday, June 8, 2007

Alex Martelli

Alex Martelli is the author of Python in a Nutshell, the comprehensive guide to the Python language, and an uber technical lead at Google in Mountain View, CA.

The greatest thing about my desktop these days is -- that I'm less and less tied to it, in a growing number of ways!

My laptop comes with me a lot of the time, and my cellphone all of the time, and between them they do a good job of letting me work (and play) anywhere it suits me -- i.e., whether I'm actually AT my desktop, or somewhere else.

So Ian Bicking presents us with a picture of a black rectangle, and Alex Martelli's desktop lives in cyberspace where we can't see it. This column is proving less informative than I hoped.

Further, a growing proportion of my work (and play) that requires computer access doesn't any longer require me to be using any single given computer -- if I can get to any machine that has a browser and a decent internet connection, I can do my email, check and update my calendar and contact lists, plan trips, do word processing, work on spreadsheets, and more generally use an increasing number of both general-purpose and specialized applications that are made available as web-apps and/or web-gadgets.

Of course more and more people are becoming less and less dependent on using a specific physical device - the web has definitely started to decouple us from our computers. If Google can't achieve such independence then I wouldn't expect anyone could!

It's not 100%, yet ( e.g., as a developer, I'm starting to grumble about not having such web-app, online access to compilers and debuggers...!), but it sure looks like it's trending that way, and I'm seriously happy about that trend.

How nice it would be if all applications were web services, so our desktops lived in the virtual world and we could attach to them from any convenient physical device.

Thanks for sharing your desktop with us, Alex.