It seems that when it comes to work computers I have the finger of death. Over the last several years, I have experienced more than my share of Windows failures where through my work machine gets stuck in a perpetual state of blue screen of death. Two years ago, this happened twice within a few months and although it was really annoying at the time, the end result was that I was blessed with a much better computer. My boss cubed at the time decided that I should get a Linux based machine since I was doing some Linux related work in addition to my normal development, and since my boss was no longer needing his powerful dual processor Opteron after moving into his management position, I inherited his machine.
My Opteron is undoubtedly sweet. I have it running the excellent Kubuntu distribution of the Linux operating system and on top of that I have VMWare Workstation installed. Thanks to the power of virtual computing, I usually run 2-3 virtual computers on top of the Opteron with one of them being my main Windows development machine and the others being Linux machines on which I conduct research and experiments with new server software for my company.
For about two years now, this setup ran pretty smoothly. Then, a few weeks ago, my Windows virtual machine started occasionally showing problems. Sometimes it would inexplicably slow down unbearably. Other times it would simply lock up. Usually rebooting fixed these issues. It was still a bit disconcerting.
Last Friday though things finally came to a head. My computer started to slow down. I decided to reboot and at some point Windows got into a fit where it kept complaining about system files that needed to be replaced. No matter what I did, more of these windows started shooting up asking me whether I should replace file such and such. Quite swiftly, the system came to a halt.
I did the only thing I could to stop the madness and that was to hit the power button in VMWare Workstation to “turn off” the virtual Windows machine. Then, I powered it back on and found much to my dismay that I was facing the blue screen of death. Windows rebooted. I was given some booting options. Another blue screen of death. And so forth until I had exhausted all the possible reboot options given to my sad little virtual machine.
I got a hold of one of our Windows XP discs and tried to do a Windows system repair. At the end of the lengthy process, I was greeted with a different kind of blue screen of death, one that looked very much like the default blue Windows desktop background color. Only no taskbar or desktop icons ever showed up. The lonely Windows cursor dutifully popped up on the desktop and patiently prepared to wait forever.
Thus, I found myself once again going through the wonderful process of installing a fresh copy of Windows XP on a new computer (a new virtual machine) and the subsequent process of installing the software that I use on a daily basis to make my programming life a more pleasant experience.
Which leads me to today’s blog post. Over the years, I have found lots of great software that I pretty much install on every computer that I have to work with on any regular basis. I figured I’d share my list of must have software in hopes that you might find something useful.
So here goes:
- 1. Vim
- The best programmer’s editor! The modal commands are strange at first, but ultimately they allow great efficiency and power.
- 2. Firefox
- Excellent open-source browser that blows the hideously non-standards compliant Internet Explorer away. Has lots of very useful plugins available.
- 3. Launchy
- Very cool program that allows you to launch pretty much any program from a few key strokes without the clutter and the loss of desktop space from Shortcuts or QuickLauncher toolbars. Get it today and increase your efficiency!
- 4. KeePass
- I depend upon this program daily! Stop reusing weak passwords for all your internet accounts and pick one good master password with KeePass. Then, sit back and let KeePass generate and remember extremely secure passwords for all your accounts. Easily fits on a USB thumb drive so you can take all your passwords with you.
- 5. Directory Opus
- The ultimate file manager! Unlike most of the stuff here, this program isn’t freeware, open-source, or software libre. Indeed, I spent $95 for my two copy license, but it was worth every penny in what I get out of it each day. This excellent program replaces Windows Explorer as your computer’s file manager and gives you a slew of useful features both big and small that add up to awesome convenience and efficiency for the power user. Some of my favorite features include tabbed file browsing, dual pane views, shell command execution from the browser (with history), powerful search and renaming capabilities. And there are so many more cool features that you really come to depend upon and love. Directory Opus is highly configurable and scriptable as well with custom commands that you execute from new toolbar buttons to make the file manager do the things that you want it to do.
- 6. Console 2
- Far superior to the console that pops up when you use cmd.exe. It features tabbed consoles, intelligent select, copy, and paste, and configurable backgrounds, colors, etc. Also, can be configured so that special hot keys open different shells in different tabs for users who use multiple shells like cmd.exe, PowerShell, and bash.
- 7. 7-zip
- Excellent zip program that comes with a fully featured GUI and a useful commandline version for scripts. It supports pretty much all the zip formats including the 7z format which usually gets better compression than even bzip2. It can also create conveniently distributable self-extracting achives.
- 8. Process Explorer
- This is what the Windows Task Manager should have been all along. Process Explorer shows you all the information that the Task Manager does and then all the information that you really want to see, too. For instance, if you’ve ever been annoyed because Windows won’t let delete or modify some file or folder because some program (that it neglects to name for you) has an open handle on that file or folder, then you’ll love Process Explorer as you can search for open handles on files and discover the identity of the rogue program quickly and easily so that you can kill its process and access your file without having to go through a reboot.
- 9. TaskSwitchXP
- TaskSwitchXP replaces the so-so task switcher in Windows. It shows you better previews of the programs that you can ALT-TAB between and gives you more useful information for indentifying which of the say your four editor windows is the one you want to select. Also, has some nice configurable hot keys that can help make switching between programs more convenient and less error prone.
- 10. Cmd Here
- If you’re not using Directory Opus, you’ll definitely want this Shell Extension that allows you to open a command prompt in any directory from a convenient menu item when you right click on said directory in Windows Explorer.
- 11. Send To Toys
- Nice shell extension that enhances the “Send To” context menu item to allow sending to all sorts of useful places besides the ones available on a clean install of Windows. You can also easily configure and create custom Send To items.
- 12. PuTTY
- Very nice SSH client program for Windows that lets you log onto remote computer terminals via the secure shell protocol (and several other protocols as well). Great if you need to do a lot of remote stuff on Unix boxes from a Windows machine.
- 13. VirtuaWin
- Excellent relatively low footprint solution for providing multiple virtual desktops for Windows. Great when you have a lot of programs running and need to reduce the clutter (while keeping the programs all running) by grouping related programs onto different desktops. Has a lot of configuration options and some plugins for further customization.
- 14. The GIMP
- Awesome graphics program that can handle pretty much all your image manipulation needs and then some. I’ve used it for everything from designing logos to intense picture frame manipulation for creating special effect transitions in re-edited DVD video. Has a very powerful built in scripting engine for automating tasks (making the task of editing hundreds of frames from a video actual possible).