Tuesday, July 1, 2008

Indispensible Tools

Every developer eventually builds up a set of tools that they can't imagine doing development without. These can be anything from preferred text editors to specialty debugging tools. I have a few that I've come to rely on over the years, and I'm going to list them here.
  • Metapad. This is a very lightweight Notepad replacement, that has a few extra features. I like it because it loads fast and doesn't take much memory, but it still does more than the standard Windows Notepad. It hasn't been updated for awhile, but it still works well for what I need it for. There are other Notepad replacements out there, so if you don't like Metapad, you can choose one of them.
  • CLCL. This is a clipboard extender. It lets me keep the last 30 items I copied to the clipboard available for use again. How many times have you copied something with the intention of pasting it into another file, and then accidentally hit Ctrl-C before you can make it to your destination, losing what you were going to paste? With CLCL installed, you don't have to worry, because it will still be available.
  • WinKey. I'm a big keyboard user, and this app allows me to start frequently used applications with a single keystroke. It lets you assign extra Windows Key shortcuts. Windows has several built in, like Win-E for Explorer or Win-R for Run command, but with WinKey installed, you can assign your own. I usually assign keys for starting my browser, Metapad, Paint.NET, and other things I use a lot.
  • SQL Prompt. If you do much SQL Server coding at all, this tool is a real timesaver. It is basically Intellisense for SQL Server Management Studio. In addition to knowing all the SQL syntax, it also discovers your database schema, and can autocomplete table and column names as you type. It can also auto-format your SQL as you type, and has a ton of preferences for setting up your preferred style. It isn't free, or even cheap, but it is well worth the money in my opinion.
  • Paint.NET. I don't do a lot of image manipulation, so Photoshop would be overkill for me. Paint.NET is a free image editor, written in C#, and it has evolved over time from a basic image editor to a very powerful one, including layers, unlimited undo, and a lot of special effects. If you don't need the power of Photoshop, Paint.NET is highly recommended.
  • Cygwin. As I said above, I'm a big keyboard user, and this extends to using the command prompt a lot as well. I got my professional start programming in a Unix environment, and really got spoiled by the rich command-line environment provided by Unix. Cygwin brings much of this to Windows. I used several of the included tools to create the build server we use at work.
  • WinMerge. We use StarTeam for our configuration management tool at work, and while it does what it needs to do well, I wasn't impressed with the diff/merge utility that comes bundled with it. Instead I use WinMerge, which is much more intuitive, and which integrates well with StarTeam. Here is a post on integrating WinMerge with StarTeam.
  • KeyTweak. One of the first things I do when I get a new system is fire up KeyTweak and disable the Caps Lock key and the Insert key. I'm constantly hitting these keys by accident and putting my system into a state I don't want it in. This app also lets you remap keys to do entirely different things if you want.
  • Fiddler. This tool lets you debug the HTTP stream between your browser and IIS. This has saved me multiple times over the years. When you're having a problem with a web page and you just can't seem to figure out what is going on, this can really shed a lot of light on things.

No comments: