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.