12 Absolutely and Insanely Essential Utilities For Programmers

In every era in recent times there has been one profession that for a short while you could enter without formal training. Autodidacts in the 19th century could read the law without recourse to formal education (see Abe Lincoln). In the early 20th century it was aviation.  For a short while in the 1980s and early 1990s, it was computing, thanks to the release of the Apple IIe, the IBM PC and the Mac.

Were it not for that Window® of opportunity, I hate to think what would have become of me.  (Hey buddy, can you spare a dime?)  But I was very lucky, when I became serious about learning to program all i needed was a book on the 8088 and a book on C, and I was all set to Rock and Roll.

As much as I continue to love to code 30 years later, there are a few aspects I hate:

  • Doing a mundane task more than once
  • Not remembering how i fixed this problem in the past
  • Losing work to crashed disks or stupid irreversible revisions
  • Not being able to find subtle text differences in files.

Hence, my 12 essential utilities….

Before We Begin

I assume you have (and use)…

  • Visual Studio 2010
  • Expression – at a minimum Expression Blend and probably Expression Encoder
  • Windows 7
  • The essential hardware to run it (see forthcoming list!)
  • All the necessary development software available here

If not, stop reading this list and go get em.

While I work on both Windows and the Mac, this list is entirely Windows-centric.

The Top Dozen

# 1. ReSharper or CodeRush

After chatting with whoever was in shouting distance at PDC,  I can say that there is nearly universal agreement among all  professional programmers world-wide (or at least those within shouting distance) that having CodeRush or Resharper is essential. .

Resharper What is wonderfully controversial is which one is better.  This is the kind of question you can throw out at a technical presentation and then sit back and enjoy hours of deafening amusement. (Other such questions include C# vs. VB and where a method’s opening brace should go.)

Both ReSharper and CodeRush are Visual Studio add-in products that enormously enhance your productivity and the quality of your code. They do this in ways big and small but the three I consider essential are:

  • Making it very easy to refactor your code
  • Radically reducing the amount of typing you have to do.
  • Finding errors and superfluous code.

That is, you type less and end up with better code. Nice.  Neither product is free, but having at least one is essential.

#2 Fiddler and FireBug

Fiddler logs all the HTTP and HTTPs traffic between your computer and the Internet.  You can inspect the logged data just as you might in a debugger, and most important it has a scripting system and is extensible with C# (or any .NET language). Even nicer, Fiddler is free and works on IE, Firefox, and just about all the other browsers you can shake a stick at

FireBug is the single most popular web development tool, and for good reason.  With it, you can in real time inspect and modify HTML in a web page, make use of a surprisingly powerful javascript debuger and obtain detailed measurements and profiling of network activity.  Don’t leave home without it.

#3 Tortoise SVN

svn2 If you are on a PC and  you are programming, then you must, must use version control.  Microsoft makes a great version control system, and if you buy the right version of Visual Studio you get it for free.  I use SVN because I did and do a lot of cross platform and open source work and svn is the lingua franca of source control (though keep an eye on Git!).

If you are on a pc and you want SVN as your version control, then the decision tree has only one node: Tortoise SVN – it is free, GPL and works as a shell extension so it is wicked intuitive.  Create a directory, check out the latest version and get to work.  Each time you want to do more work start with Update and end with Commit.

The key benefits of version control are

  • Your files are backed up
  • Your changes are backed up so you can decide to go to a previous iteration after you cabbage your code
  • Old releases are available for testing as needed
  • Your files are backed up
  • If more than one programmer is working on different parts of the code, version control lets you put the pieces back together in a sane way

SyncroSVNI should mention that I use SVN not only for my source code but for my documents and for my presentations. Having version controlled PowerPoint slides is a terrific thing.

If you want very much the same functionality, but integrated into Visual Studio, take a look at Visual SVN. At $50 it is reasonable, but it ain’t free.

This Just In: I recently found a brilliant cross-platform, incredibly powerful and easy to use SVN client: Syncro SVN 6.  I’ve only started to exercise it, but so far it is the best SVN client I’ve seen, especially on the Mac where good SVN clients are scarce. I particularly like their licensing, which is per user, and so you are invited to put it on your Windows machine, your Mac and your Linux box, as long as you use only one at a time. Nice.  The client seems to be on sale for 40% off, so I am buying it as I write this.

#4 TimeSnapper

Every great scientist keeps a lab book, in which they write down everything they do.  This is critical, so that when something changes they can determine what happened.  For years I’ve thought that it would be terrific to keep such a log book so that I could go back and figure out what the heck it was I did way over there that has broken this code way over here

TimeSnapper I’m happy to say that this problem is reduced greatly by test-driven development, as I discussed recently in Test Driven Silverlight Body Snatchers. But it is not eliminated entirely.

Over the years I’ve tried a number of approaches, and like every diet on the best seller list, they work perfectly until you stop doing it, which you always do.  I tried

– Creating a log of my work on a pre-net-top HP computer
– Creating a running log on a second computer
– Using dictation software to capture a running commentary
– Videotaping my work

Every attempt ended in ignominy.

Then came TimeSnapper.  This little program sits in the background and takes a picture of what you are doing, as often as you like, at whatever fidelity you need.  It’s all configurable, but I set mine to record just the active application, saving each image as a jpg, with 100% resolution (75% resolution provides an image at 3/4 of the original size), and 75% quality (I can’t see the difference).  I instructed TimeSnapper to take an image every 5 seconds and to save 10 days worth.

When I first tried this program, many revisions back, on a slow PC, I did find that it was slowing down Visual Studio. Today, running on a blistering machine (Windows 7 running on Parallels 5 on a 4 Quad Mac with 8 Meg of memory and a pair of wicked fast terrabyte drives) I see zero speed degradation, but I set their new “use very low priority” switch just to make sure.

The images range in size depending on how large the window is, but devoting all of one cinema monitor to Visual Studio, I probably average larger snapshots than most. That said, every 5 seconds = 720 per hour. A bit less as I tell it not to save a new image if nothing has changed, and if I’m out of the VM it sits idle. That said, the images range upwards of 100K, so my worst case scenario is 7200 images in a day times 10 days = 72,000 images at 100K each = 7,200,000,000 bytes or 7.2 Gig; which is peanuts.

Among the things you can do with TimeSnapper is tell it what you count as productive work, and it will report on any time period you like. You can create time reports, and all sorts of other fun stuff, but its killer feature is that you can play back any part of your day like a movie, and more than once you watch as you do something astonishingly stupid.

#5 Instant VB….

InstantInstant VB is by Tangible Software. You point it at a C# application, wait a nanosecond or two, and hey! presto! you have a VB application.  Yes, it’s a one-trick pony, but it’s a hell of a trick!  They also sell a variety of other converters (VB to C#, C++ to Java, and many others)

When its done, Instant VB offers to bring you to the directory of your original program, your converted program or to launch the converted program.  Nice.

I like them because they make an incredibly great product that they keep improving, because they are extraordinarily nice folks and because they listed my unsolicited testimonial first.

#6 ExamDiff Pro

By far the best comparison and merge program I’ve ever seen.  You can compare folders (recursively or not) or versions of files, but what makes ExamDiff ExamDiff Pro stand out is that you can use it right out of the box – the UI is incredibly intuitive, or you can adjust dozens (hundreds?) of settings to meet your particular needs (do you want to consider two files different if there are changes in the amount of white space in lines?)

PrestoSoft offers the free version ExamDiff and the souped up version ExamDiff Pro.  The price marked on their site for the Pro version is “$34 or less.”  Their web site is terrific, offering extensive information, screenshots and tutorials – everything from “How to compare files” through “How to ignore line numbers in text files.”

I’ve squished this image down and put the files one atop the other rather than side by side to make the image legible (better, though if you click on it to see it full size).  Each difference is identified, the summary shows you what you have to do to make the files the same, and you can either use the arrows to migrate the change from one file to the other, or edit directly in the files as you go. It does much more, as well, and its handling of recursive folder and file differences is brilliant, letting you find and fix every change in two complete software solutions.

I routinely replace the file comparison and merge of my source code control with this, as it provides a clearer, faster and easier to use UI.

#7 AutoHotKey

I hate typing the same thing again and again and I miss TSRs (old enough to know what they were??). AutoHotKey solves this problem and a host of others. You can create simple substitutions or complex scripts tied to hot keys. You can use it to remap your keyboard, run scripts, create menus and forms.  I just use it for two simple things:

  • Macro substitution. If I type @jl it expands instantly to jliberty@microsoft.com (I add the at sign only to have a consistent signal for myself, AutoHotKey doesn’t care.  Here is the line in the script that causes the instant substitution:
:*:@jl::jliberty@microsoft.com

The initial colon begins the line. The star * says “substitute immediately, don’t wait for a space.”  The second and third colons contain the macro and the final colon begins the substitution text.

  • Quick error correction.  There are some words I should never misspell. Here’s an excerpt from my AutoHotKey correction file:
::Sliverlight::Silverlight
::Silvelright::Silverlight
::silverlight::Silverlight
::iPhone::Windows Phone 7
::Stacy::Stacey

Thus, were I ever to write Sliverlight as soon as I hit space it would correct to Silverlight.

As noted, there is much more you can do, and fortunately it comes with an extremely well put together help file. Even better, AutoHotKey is free, open source  and available in German, French, Italian, Russian, Japanese, Greek, Portuguese, Korean and Chinese versions.

Wikipedia has an excellent article covering AutoHotKey in depth.

#8 Clipx

My favorite feature in Emacs was yank-pop.  If you copied line 1 to the clip board, and then line 20, and then line 5, hitting paste would return   Clipix line 5, but if you then hit yank-pop line 5 would be replaced by line 20. That is, it unwound the clipboard stack.

ClipX provides that functionality and a good bit more for Windows – across applications.  Its icon sits in the tray waiting for you to click.

When you do, up pops a very long menu of your n most recent clipboard entries where n is a number from 0 to 1024 (the image shows a cropped example)

You can also store permanent clipboard entries for fast retrieval as you can see at the bottom (I’ve disguised the first two as they are passwords).

It isn’t the fanciest of clipboard managers, but it works reliably and, as they say on their site, “it is sweet, it is free, use it.”

#9 Snip It Pro

Based on the reactions I get when I present code at conferences, the entire programming world is looking for a great snippet manager.  Snip It Pro is the best I’ve seen.  It makes creating and managing snippets (and sets of snippets) a breeze, it gets out of the way when you don’t need it, and while its basic functionality is obvious and intuitive, it has some additional features that are just sweet as pie.  One that I personally requested and use all the time is the queue. Right click on a folder and choose Queue snippets and then each paste will paste the next snippet in the folder.  Bang, bang, bang!  The (excellent) help file offers the following hot-keys for working with queued snippets

CTRL+SHIFT+V – Paste the currently queued snippet and advance to the next one.

CTRL+SHIFT+1 – Move to the previously queued Snippet without pasting anything.

CTRL+SHIFT+2 – Move to the next queued Snippet without pasting anything.

CTRL+SHIFT+C – Ensure the currently queued snippet is in the clipboard. (Useful if you copy or cut another piece of text after advancing the queue).

#10 Evernote

I am a bear of little brain.  And there is nothing more annoying when I’m stuck trying to solve a programming problem, than to know that I’ve solved this very problem before, but I haven’t the vaguest idea when or where. I hate solving the same problem twice.  What I need is a reliable place to put my notes.

Evernote I also get a lot of information streaming in that I know I’ll want some day but not now.  I need a place to put that.

When I see something interesting in a magazine (or on a billboard, etc.) I never write down a note, I take a picture – isn’t that what phones are for? I do not want to transcribe that information, but I have to be able to find it.

I work on more than one machine, in more than one location.

Enter, finally, Evernote.  Evernote has very many wonderful things to say for itself (including that the basic version is free), but the two killer features for me are:

  • It runs on phones, Windows, Mac, and the web.
  • You do not need to organize your information on the way in – its search engine is so powerful that you can find what you need nearly instantly. Yes there are multiple notebooks if you want them (I use only one) and there are tags (I use them but for no good reason), so you can organize your information as you add it, but a killer organizer doen’t force you to. I know, absolutely that whatever I put in, I can find quickly just by searching.

That would be plenty, but Evernote has two other nearly incredible features.

  • When you add an image, they read the image and index all the words in the image.  And they are very very good at that. So I can find that photo I took of that article about that great utility I want.
  • You can not only search both within notes and across notes by any word(s) appearing in the note, but you can search by when the note was created or when it was modified, or how it was added (I emailed that note) or whether it contains images or attachments, etc. etc.  One of my favorite features appears on the phone version, which let’s me search for every note I added “near here” where I get to define the meaning of “near.” So when I’m in Redmond, I can instantly find 4 years of notes I added within, say, 10 miles of corporate.

Of course, all my versions sync with one another constantly, so all 1500 or so notes are always up to date.

The free version is perfectly good, but I upgraded to pro to give them money. No one should produce a product this good and not be compensated.

#11 Mozy

When all is said and done I’m a big believer in belt & suspenders. And the more valuable the pants, the more belts and suspenders I add.  Thus, I keep my source code, presentations and important documents in off-site version control, I do regular on site backups, and I have Mozy backup all my data to their offsite computers, constantly.

Mozy’s deal is unlimited data, and I have it set up to watch every directory that does not have Microsoft proprietary information in it, and back that up as soon as the computer is less than 25% busy. I add a scheduled backup at 2:30 am every day (in the hope I’ll not be working then!).  Finally, since everything is a trade-off, I instruct Mozy to throttle its use of the Internet bandwidth to 512KB/Sec between 7am and 1am.

We do what we can.

#12 Mikago

One of the things I truly love about my job is that I work from home.  I’m in Massachusetts; my boss is in Oregon and his boss is in Redmond.  My co-workers are in San Diego, Washington DC…. you get the idea.  To make this work we use Microsoft Communicator and Live meeting (face to face is vital for avoiding confusion) but every once in a while it is incredibly helpful to be able to share a workspace fully, interactively and with great response.

Mikogo There are a number of good products for doing this (some  you even get for free with your operating System) but Mikago stands out for providing extraordinary control, incredible ease of setting up an ad hoc shared desktop, and being free.

For this article, I invited two buddies who did not have Mikogo to share my screen; sending them an email invitation through Mikogo to an event 1 hour later.  Total time for each of them from clicking on the link to sharing my screen was under 3 minutes; but that will be faster next time as they saved the small program Mikogo needs.

A truly nifty feature is that when I have control of the screen, they can still click,  and an arrow appears on my my screen (with their name attached)  so they can ask “What’s this button do?”  Shiny.

Please be sure to leave comments with the utilities you find essential as a professional programmer.

About Jesse Liberty

Jesse Liberty has three decades of experience writing and delivering software projects and is the author of 2 dozen books and a couple dozen online courses. His latest book, Building APIs with .NET will be released early in 2025. Liberty is a Senior SW Engineer for CNH and he was a Senior Technical Evangelist for Microsoft, a Distinguished Software Engineer for AT&T, a VP for Information Services for Citibank and a Software Architect for PBS. He is a Microsoft MVP.
This entry was posted in Community, Opinion, Tools and Utilities and tagged , . Bookmark the permalink.

207 Responses to 12 Absolutely and Insanely Essential Utilities For Programmers

  1. nisha says:

    As a java developer, I found your blog to be very informative and interesting. I shared this with my friends and my followers as its really great stuff
    to share! Keep up the good work
    Request you to continue writing on varied topics as we would like to read.

  2. I conceive this web site holds some real superb information for everyone : D.

  3. You actually make it seem so easy together with your presentation however I to find this topic to be actually something that I think I might never understand.
    It seems too complex and extremely extensive for me.
    I’m taking a look ahead to your subsequent post, I will try
    to get the cling of it!

  4. priya says:

    As a developer, finding the right tools to do the job and increase productivity can be quite a daunting task. On the market today there are thousands of tools available, thanks for sharing this.

  5. Great post, and really helpful. I never realized there was so much of an art to commenting!
    I am going to put your techniques into use, as you can see…
    Thanks for sharing!

  6. This is probably the best, most concise step-by-step guide I’ve ever seen on how to build a successful blog.
    Thanks for sharing!

  7. Charli says:

    Good post. I certainly love this site. Stick with it!

  8. Nawet jeśli dziecko w roku nie uzyskało żadnego przychodu ale wybrało powyższe formy opodatkowania, rodzicópodatki w polsce stawki pozbawia to
    ulgi.

  9. Great goods from you, man. I have understand your
    stuff previous to and you’re just extremely great. I actually
    like what you have acquired here, really like what you’re
    stating and the way in which you say it. You make it entertaining and you still
    care for to keep it wise. I can’t wait to read
    far more from you. This is really a terrific site.

  10. Virginia Woolf – a famous writer of the twentieth century, has rightly pointed
    out the importance of food in her quote “one cannot think well, love well, sleep well, if one has not dined well. If you take a defensive driving course, be sure to let your agent know. Fake as they may be in some cases they are a great help with your pocket.

    Here is my blog: discounts psychology
    today articles

  11. This is really fascinating, You’re a very skilled blogger.
    I’ve joined your feed and look forward to searching for more of your fantastic post.
    Also, I’ve shared your web site in my social networks

  12. ワザップ says:

    Hello there, You’ve done a fantastic job. I will definitely digg it
    and personally suggest to my friends. I’m sure
    they will be benefited from this site.

  13. My spouse and I stumbled over here from a different web address
    and thought I might check things out. I like what
    I see so i am just following you. Look forward to looking over
    your web page again.

  14. Gale says:

    As the admin of this website is working, no doubt very quickly it will be famous, due to its feature contents.

  15. Hi, this weekend is fastidious for me, as this occasion i aam reading this impressive
    educational post here at my house.

  16. Estelle says:

    Does the estimate of how well or just plain dumb
    – is vital. Cleaning old wood roofs using high-pressure of water and gas industry to not only after unlicensed contractors
    their job. As it was before. If everything else,
    the best resources available to meet your client’s building.
    Other agencies may have 2 or 3 phones or 2 independent contractor focuses on waterproofing and repair
    services.

    Feel free to surf to my blog webpage (Estelle)

  17. Angelo says:

    Today, I went to the beach with my kids. I found a sea shell and gave iit
    to my 4 year old daughter and said “You can hear the ocean if you put this to your ear.” She putt the shell to her ear and screamed.
    There was a hermit crab inside and it pinched her ear.
    She never wants to go back! LoL I know this is completely off
    topic but I haad to tell someone!

  18. I really like your blog.. very nice colors & theme. Did you design this website yourself or did you hire someone to do it for you?
    Plz reply as I’m looking to construct my own blog and would like to find out
    where u got this from. many thanks

    My web-site … des jeux gratuits

  19. dismay says:

    Pretty! This was a really wonderful post.
    Thanks for providing this information.

  20. It should also know the importance of the seo way in which to
    do this REALLY well. Low contrast colors can be assured that the sellers have got composed in preceding
    accounts the chief spots you ought to read further.

    All the above said points can help your business; here lies the pleasure
    of trawling through the internet.

    My web page; internet marketing seo

  21. Thank you a lot for sharing this with all of us you
    really recognize what you’re talking about! Bookmarked. Please also visit my website =).
    We may have a link exchange agreement between us

    Look at my site :: kids birthday party magician MA

  22. Tyson says:

    Look into my web-site … web site – Tyson,

  23. Gina says:

    my website – web page – Gina

  24. Felicia says:

    I’m not that much of a online reader to be honest but your sites really nice, keep it up! I’ll go ahead and bookmark your site to come back later. All the best

  25. My family every time say that I am killing my time here at web, except I
    know I am getting experience all the time by reading thes good
    posts.

    my website – getting traffic

  26. Daniel says:

    Excellent blog! Do you have any tips and hints for aspiring writers?
    I’m hoping to start my own site soon but I’m a little lost on everything.
    Would you propose starting with a free platform like WordPress or go for a paid option? There are so many options out there that
    I’m totally confused .. Any ideas? Kudos!

  27. Hey I know this is off topic but I was wondering if you knew of any widgets I could add to my blog that
    automatically tweet my newest twitter updates. I’ve
    been looking for a plug-in like this for quite
    some time and was hoping maybe you would have some experience with something like
    this. Please let me know if you run into anything. I truly enjoy reading your
    blog and I look forward to your new updates.

    Here is my site … ketone advanced reviews (http://www.antrodeldrago.info)

  28. Hi there! I just wanted to ask if you ever have any trouble with hackers?
    My last blog (wordpress) was hacked and I ended up losing many months of hard work due to no
    back up. Do you have any methods to stop hackers?

  29. Hello there, You’ve done a great job. I will certainly digg it and personally recommend to my friends.

    I’m confident they will be benefited from this web site.

    Stop by my site: garcinia combogia

  30. Karine says:

    A guarantee provides no more school bus than $86 million in work.
    Urgent actionMr Prescott said the bureau had no choice after the fact that people are availing with a new driveway will last
    longer and you are clear on what it does list their services.
    You may want to remodel and facelift your home is a standard that will
    be among those that are most at danger. The
    best power line excavation contractor in Southwest Florida performs both new construction.

    my web blog: web site (Karine)

  31. terminology says:

    And likewise, you can’t just “do a mailing” and have that
    be the only marketing you do. With the extremely wide apertures, they collect a lot of
    light and work well in dimly lit areas (like a church).

    A good photography education needs to be put into practice.

  32. It’s very easy to find out any topic on web as compared to books, as I
    found this post at this website.

  33. hosting says:

    You can definitely see your enthusiasm within the work you write.

    The sector hopes for even more passionate writers like you who are not afraid to mention how they believe.
    At all times follow your heart.

  34. I am not sure where you’re getting your information, but good topic.
    I needs to spend some time learning much more or understanding more.

    Thanks for great info I was looking for this information for my
    mission.

  35. Alexander says:

    You made some really good points there. I looked on the net for
    additional information about the issue and found most people will go along with your
    views on this site.

  36. Britney says:

    Hello! I’m at work browsing your blog from my new iphone!

    Just wanted to say I love reading your blog and look forward to all your posts!
    Carry on the outstanding work!

  37. Does your website have a contact page? I’m having trouble locating it but, I’d like to
    shoot you an e-mail. I’ve got some recommendations for your blog you might be interested in hearing.
    Either way, great site and I look forward to seeing it
    develop over time.

  38. I every time spent my half an hour to read this website’s articles or
    reviews daily along with a cup of coffee.

  39. Omer says:

    My brother suggested I might like this blog. He was entirely
    right. This post truly made my day. You
    cann’t imagine just how much time I had spent for this information!
    Thanks!

  40. Hello there! This blog post could not be written much better!
    Going through this article reminds me of my previous roommate!
    He always kept talking about this. I am going to send this information to him.
    Fairly certain he will have a great read. I appreciate you for sharing!

  41. Dennis says:

    I simply couldn’t go away your website before suggesting that I really enjoyed the standard
    info an individual provide to your guests? Is gonna be back incessantly to
    check up on new posts

Comments are closed.