Over the years, the software and hardware I use to go about my daily job has changed dramatically. Here's the state of affairs at the end of 2009, of interest only to me in the future.
I'm quite spoiled hardware-wise (one wonders whether it comes from a college life spent wanting a better machine). I have three primary desktop machines, two laptops and one mobile phone.
The first two desktop machines are work machines which Microsoft generously provides. They're both 2.8 GHz Intel Xeon quad-core machines with 4GB RAM each. They're connected to a KVM switch which in turn is hooked up to two 27-inch monitors. The KVM switch lets me point the monitors to either machine.
The first is my primary work machine where I do my email, coding and general 'work' stuff. The second is a test/scratch machine where I try out internal builds, run fake clusters and can blow away and recreate easily.
My home machine is a Intel Core 2 Duo clocking in at 2.6GHz. It has 4GB RAM currently with an upgrade to 8GB hopefully coming soon. This has a nVidia 8800 GT GPU making it the only machine to not just use the on-board GPU. This is where I write my book, store my music and acts as the main computer/server around the house.
My primary laptop is my personal Macbook Pro which I've had for around a year and a half. This is a Core 2 Duo Penryn machine and was probably the last of its line before Apple switched to the uni-body machines. This has been upgraded to 4GB RAM from the 2GB RAM it came with.
My work laptop is a Lenovo T60. It's getting quite long in the tooth and I use it only when I need to take a laptop to a work meeting. It comes in handy when I want a laptop for a specific purpose like I did for PDC 2009. I installed a specific cocktail of Visual Studio and SDK versions, display settings and used it for nothing other than my PDC talk.
Slicehost VM. This is a Xen VM with 256MB RAM that powers this website. It is a sad statement that such a small VM proves to be more than adequate for all my blog traffic as well as the other miscellaneous uses I put that VM to.
Windows 7 x64/Windows Server 2008 R2. I have a split of Windows 7 and Windows 2008 R2. Both my work desktop machines have R2 while my home PC, my laptops all have a Windows 7 R2 install (with Bootcamp on the MBP).
I just finished the upgrade to not only Win 7 and the R2 editions but also to 64-bit. If you're a developer, you should really be looking at running 64-bit these days. Thanks to my status as a Microsoft employee, I've only had to pay for two copy of Windows so far among all these installs.
Snow Leopard - Powers my MBP.
Ubuntu Gutsy Gibbon - Powers my website. I should do an upgrade sometime. I also have a few Ubuntu VMs lying around my machines which I use when I try out something locally on Linux.
Browsers are something that I have in plentiful and I generally have the newest build of every browser installed. Probably a hold-over from my web dev days in Popfly. I have a tendency to change my default browser every few weeks so this list is extremely dynamic.
At the time of writing, Internet Explorer is the default browser on 2 machines, Firefox on one and Chrome on two.
Outlook/Mail.app/Thunderbird. 'Work' gets done in Outlook. All work mail, work scheduling, todo lists and all-purpose life management and career management tool. Atleast that's how Microsoft uses it.
SL's Mail.app lets me get at work mail. Mail.app's Exchange integration isn't great but it gets the job done in a tight spot. I also do most of my personal mail over here. I'm really looking forward to Outlook for the Mac. On the iPhone, Mail.app is probably my heaviest used app.
Office Communicator/Google Talk. IM clients. Office Communicator is for work and is essential at Microsoft. The Communicator phones, Outlook and IM integrate beautifully at work. Having voicemails converted to text and show up in your mailbox, rerouting phonecalls automatically to your cell phone, free/busy information tied into the phone system all work like magic.
Emacs - Emacs is my text editor of choice (though I often turn to Textmate and Notepd for quick edits). I'm not a hardcore Emacs user but I do have a growing .emacs.d directory which I sync between machines.
Visual Studio - this is where I write my code, be it for my book, for work or for side-projects. Permanently open on my machine.
Live Mesh. Keeps all my data in sync across all my machines. I tried DropBox but LiveMesh's much larger file size support, P2P and the ability to sync any directory without symlink tricks kept me on Live Mesh.
I'm a heavy user of what is Live Mesh's most useful but least talked about feature - the ability to remote desktop into any of your Windows machines. This has saved me on too many occasions to count here.
Cygwin/Mac Ports - This is where I get my standard Unix toolchain as well as every POSIX-friendly open source project.
Git + GitHub.com. Git powers my website, all my pet projects and in general, is quite awesome. I switched to Git from Mercurial just to use Github.com (where I've started amassing some code - see http://github.com/sriramk).
rsync + Jekyll + Git + lighttpd - My blog and website setup. See my previous post here for details.
Zune - I use the Zune for all my music needs. I've said this many times in the past - Zune pass is absolutely killer. The only downside is that it is not available on the Mac yet.
Word - I have to mention this here since I've had to use it exclusively for my book. Once I'm done with that, I don't expect to use it often, apart from the odd specification/doc work in my team.