Thursday, October 4, 2007
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
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
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
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 Terminal.app. 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
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.
Wednesday, June 6, 2007
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
Tuesday, May 1, 2007
Thanks for popping in. The idea behind this blog is very simple: each person invited to contribute provides a description of "some aspect of their desktop they would like to write about". They send me the blurb, I turn it into verbal chop suey by interspersing my own contribution (about which I make no promises) and publish it.
Short, sweet, and hopefully more interesting than just me. Whose desktop will be first? Whose desktop would you like to know about?