Two Dozen Insanely Essential Programmer Utilities*

Lately I’ve been focused much more on Web development.  Along the way, I’ve discovered a number of utilities that are simply essential to successful coding, depending of course on which frameworks and libraries you are using.  Here’s a sampling, intended only to pique your interest, not to explore any of these in depth…


Sublime Text 3

SublimeBack in the 1980s I was working in Unix and C, and I tried a number of editors. Emacs and its cousins were the big winners, though I was known to use VI in a pinch.  In the 1990s I went through a period of skipping back and forth between Borland’s IDE and Microsoft’s for C (though when  C++ and MFC was released, the battle was over).  For a while I tried different editors with Visual Studio, but Microsoft’s integrated environment just kept getting better and soon I settled in.  It stayed that way for almost two decades.

What is shocking to me, is that with Visual Studio 2013, VS is better than ever, yet I’ve really fallen for Sublime Text.  It is fast, has some terrific plug-ins and makes certain kinds of programming… if not easier, then at least more pleasant.

Don’t get me wrong, if I’m programming what I think of as a Microsoft technology (WPF, ASP.NET MVC, Windows 8, etc.) I’m still using VS, but if I’m programming JavaScript (etc.) then Sublime has suddenly taken my heart.  I’ve written it up here, and published a Pluralsight course on using Sublime here [To be posted on Pluralsight soon]

Chrome Dev Tools

Chrome has become my debugging environment of choice for Web applications.  Press F12 for their basic tool – and what a tool it is.    Powerful on its own, you can add plugins, such as the one for Angular (Batarang) that gives you insight into Angular’s scope and much more.    In addition, the Chrome store is chock full of free developer plugins, one of the most essential of which is Rest Console for testing REST Web Services.  There are others that do the same job, but I’ve grown fond of this one. 

Web Essentials For Visual Studio 2013

While we’re on the topic of plugins and such, an absolutely, err, essential extension for Visual Studio is Mads Christenson’s Web Essentials.    This brilliant extension to Visual Studio 2012 or 2013 adds features for CSS, HTML, JavaScript, TypeScript, CoffeeScript and Less.  It provides minification and bundling, Intellisense in CSS3, Browser tips and validation, image preview, color swatches, jsHint(!) auto-complete braces, smarter indentation and much much more.

BootStrap

It is frankly difficult to imagine going back to web programming without Bootstrap.  For those of us with little or no design skills, Bootstrap is a life-saver; offering more beautiful and professional looking web applications out of the box.  Combine Bootstrap with related-commercial themes and you’ve got a launching pad to creating your application in record time.  I’ve created a course on Web Application Development [to be posted on Pluralsight soon] with Bootstrap and Service-Stack (see below) that illustrates how essential Bootstrap can be. 

Service-Stack

ServiceStackI admit it, when I first looked at Service-Stack, I was entirely skeptical.  It struck me as an open-source alternative to ASP.NET MVC and Web API and why would I want that when I have MSDN Ultimate and can get the “real” tools for free? 

Instead, what I found was a powerful web service engine that was extremely easy to stand-up and that provided a host of related services such as snap-and-play Dependency injection and an incredibly simple ORM.  Given its incredible speed and how light-weight it is, and how easy it is to learn, it has quickly earned an essential place on my virtual-shelf.

GitHub For Windows

Okay, I had no trouble with VSS, really liked SVN, loved Hg, but just can’t get my head completely around Git.  Nonetheless, I love Git for how easy it is to branch and merge, and let’s face it, all the cool kids have moved to Git and the contest is pretty much over. 

So, I had Phil Haack on my podcast to explain it to me,  and I bought and read the book he recommended, and I played the silly Git game but the truth is I’m still more comfortable in GitHub For Windows than I am in the Git shell.  

 

ReSharper (or CodeRush?)

I struggled with this one for years, because there are three great contenders for this kind of Visual Studio extension that helps you with code-completion, refactoring and generally improving and speeding up your work: one from JetBrains (Resharper), one from Telerik (JustCode) and one from DevExpress (CodeRush).  All three are terrific, and while they don’t do exactly the same things, they are mutually exclusive.    I have to admit that I wonder frequently if CodeRush wouldn’t be a stronger choice for me, but at this point I’m committed to Resharper and it is hard to imagine using Visual Studio without it.   I heartily recommend reading extensively about all three before making a decision; each has much to offer.  But do use one of them, it is a crime not to.

ExamDiff Pro or Beyond Compare

I’ve used ExamDiffPro for years and I find it an intuitive and very powerful diff program.    You can feed it a folder and it will compare everything in the folder and all its children folders.  It makes editing the files a snap and is essential for merging branches in source control. That said, my boss, Lino Tadros, tells me that Beyond Compare is, and I’m always willing to try new things, so has become (temporarily at least) my current diff engine.  Whichever you choose, do have one in your toolkit because the built-in merge for Git doesn’t, err, compare.

AutoHotKey

The job of AutoHotKey is to reduce your typing and to keep your fingers on the keyboard. Some of the macros I make with it are tiny but essential (e.g., control-l to go to the end of the line and control-; to move right one character).  I use others to reduce typing (@gm translates instantly into my email address).  And I use others to replace lengthy but common blocks of text.  I also use it to fix all my common spelling mistakes and to get the capitalization right on words like RadioButton.  Wikipedia has an excellent article covering AutoHotKey in depth.

ClipX

A powerful, easy to use clipboard history.  Say no more.  I don’t understand why this still isn’t built into Windows, but thank goodness that ClipX exists. 

Evernote

There are a million good reasons to use Evernote, but one of them, for me, is to take notes on hacks and programming fixes that I suspect I’ll want to use again.  Evernote has a wicked-fast search and I hate that feeling of “I solved it before, now what the hell did I do?” With Evernote, I can find out, quickly and easily.  It is also a great place to stash all sorts of information, and it has become my (incredibly reliable) repository of record. 

Trello and BaseCamp

Trello is everything I need in a small, free Kanban board.  I put my projects in, create cards for tasks, annotate them and generally keep track of what I have to do and when. If I’m collaborating with a small number of others it is terrific, and my family is using it to coordinate all that has to be done to apply to college!   There are a couple paid upgrades well worth checking out, but it is quite amazing how much you can get done with the free version. 

We use BaseCamp at Falafel and it is terrific for keeping track of multiple projects and knowing what needs doing and who is doing it.

Skype, Go To Meeting and Lync

If you work remotely it is easy to become isolated. At times, a quick consultation, especially with screen sharing is essential, and these three products meet all my needs:

  • Skype for one on one, small conferences, screen sharing and for IM
  • Go To Meeting for larger conferences and screen sharing presentations
  • Lync for everything Skype does but scooped to my company (Falafel Software)

Twitter, Facebook, LinkedIn, Yammer

These social media each break down the barriers for those of us who work alone at home.  I use them as follows

  • Twitter: mini-blogging, asking questions and generally keeping in touch with a very broad audience
  • Facebook: restricted to just close friends and family. I started out using it for just about anyone, but there is real value in having a place to keep in touch with people you know well.
  • LinkedIn: professional contacts, and my network is very large
  • Yammer: Social media for a company or organization.

Pluralsight

I know it is self-serving (I am a Pluralsight author) but this is an essential resource for me. I often begin my study of a new topic by watching one or more Pluralsight courses; and I have to say as objectively as I can, that most of them are first-rate. 

FogBugz

I haven’t had to use a bug tracker for some time (because for a long time I was a technical evangelist rather than a full time coder) but my wife (who is in QA) uses FogBugz and from what I can see it is an essential tool.   I will probably install it for myself very soon.

Other Essential Utilities

Here’s a list of other utilities that I always install and that greatly enhance my productivity. I’ll write about them in the third installment (the second installment is here).

  • Fences: to keep my desktop organized
  • DropBox: to keep my shared files organized
  • HighTail: to share large files easily
  • Parallels Access: to get to my desktop from my iPad mini
  • VLC Media Player: to play those codecs that Windows Media Player chokes on
  • RegEx Buddy: to create and test regular expressions
  • Oracle VM and GennyMotion: to test Android apps
  • TestComplete – for full application testing
  • Audacity: for editing audio, especially my podcast
  • Camtasia: for creating and editing videos
  • HyperSnap: still my choice for capturing and editing screen images
  • Windows Live Writer: the only tool worth discussing for creating blog posts
  • TheBrain: for creating incredibly powerful mind-maps

Based on feedback to this posting, I’m also evaluating a number of new (to me) tools including SourceTree and numerous others. I’ll follow up soon.


* A programmer’s wife says to him, “Go to the store and get a dozen eggs. If they have sausages, get two.”  He comes back with two dozen eggs.

Share

About Jesse Liberty

Jesse Liberty is a Master Consultant for Falafel Software, and has three decades of experience writing and delivering software projects. He is the author of 2 dozen books and multiple Pluralsight courses, and has been a Technical Evangelist for Telerik and for Microsoft, a Distinguished Software Engineer for AT&T, a VP for Information Services for Citibank and a Software Architect for PBS.
This entry was posted in Essentials, Opinion, Tools and Utilities and tagged . Bookmark the permalink.

57 Responses to Two Dozen Insanely Essential Programmer Utilities*

  1. Gavin says:

    Hey There. I found your blog the use of msn.
    That is an extremely well written article. I will be sure to bookmark it and come back
    to learn extra of your useful info. Thanks for the post. I’ll definitely return.

  2. pregunton says:

    Great !

    Any updates in june 2014 ?

  3. Maxie says:

    Hi there, I desire to subscribe for this webpage to take hottest
    updates, so where can i do it please help.

  4. Pingback: Otra caja de herramientas | Ricker Silva .NET Magazine

  5. Hey very nice site! Man. Exceptional. Great. Let me save your web site as well as grab the bottles additionally? My business is pleased to find many tips here from the submit, we’d like figure out further tactics within this reverence, thanks for spreading.

  6. Pingback: A Fresh Look at Browser Developer Tools | Cedar Hill Tech Notes

  7. Two Dozen Insanely Essential Programmer Utilities* | Jesse Liberty

  8. Jackson says:

    Nice list.

    I’d add:
    baretail (if you do any kind of intensive logging to files…and have to make sense of them later on, then baretail is your friend. Awesome highlighting, with export of those preferences)
    smtp4dev (if you do any kind of email programming this is essential)
    WcfTestClient (this comes with Visual Studio, but it’s worth it to zip it up and keep it in your tools folder for quick reference…as well as to handout to other devs)
    WinMerge (I know BeyondCompare was listed, but WinMerge is tried and true and is snappy and efficient…SemanticMerge looks promising though…)

  9. t.terlemez says:

    Thanks for this very usefull share.

  10. Andrew says:

    TextPad anyone?

  11. Daniel says:

    Have you ever tried Gumby framework?

    It seems bootstrap does a good job, but I was wondering if you have compared them since it seems you like to look for options.

  12. Tore says:

    BeyondCompare is OK, but it doesn’t come close to the ease of use and intuitiveness of Araxis Merge. It has consistently occupied one of the top 5 spots on my MRU over the last 6 years. It does everything I ever needed it to do, and very nicely. It is not free, but anything else will seem like working by candlelight.

    • CB says:

      I’ve been using Araxis Merge for years, very powerful.
      Lately I’ve been experimenting with DevArt’s CodeCompare; seems very similar to Merge, and there is a free version.

  13. Pingback: Otra caja de herramientas » Ricker Silva Magazine

  14. Matthew Bakersfield says:

    Well I wouldn’t be without AJC Active Backup. It protects me when I am coding and lets me go back to any version of any file that I have changed. It archives off a copy every time I save a file but only stores the changes each time. There is also built in diff so I can see what I have changed.

  15. Mike C says:

    I’m rather fond of SemanticMerge for my Diff/Merge tools, in that it parses the code semantically for merging (thus the name), and therefore has fewer conflicts than a line-by-line merge tool would have, especially if you’re moving large blocks of code around in your refactoring.

  16. Alex Dresko says:

    How do any of you know that you’re actually being effective at work without ManicTime? I truly would not be the person I am without ManicTime over the past 4 years. Give it a try for a month if you want to experience eye opening truth.

  17. Tim Schwallie says:

    missed LTFViewr5u if you can find it.
    Awesome for opening really, and I mean really big files that notepad++ can’t open.

  18. For Macophytes, VisualDiffer is the BeyondCompare of Mac.

  19. Tim Schwallie says:

    notepad++, winmerg, 7zip
    Need some collaboration stuff, like VSAnywhere, jsfiddle and codebins.
    Too bad MS has missed this collaboration stuff like Google Docs style sharing, would have been nice to support extreme programming. They would probably say buy Lync, but only one person can drive with Lync….

  20. Peter Lewis says:

    I would add Windows PowerShell.

    It is console scripting, but has full access to all .NET classes, as long as they are meaningful.

  21. Stewart says:

    There are two text editors I can not live without
    1) Notepad++ : Very good with large files that the windows Notepad cannot handle. I have opened a log file as big as 5gb with it. Windows notepad just chokes out.

    2) Codewright: Very old but very good when it comes to searching for files using text contained in them.

    For Bug tracking I think JIRA is the app to beat.

  22. Steve Sadler says:

    AutoHotKey is a great program. I started programming back in the 70’s on a CP/M based computer where the word processor of the day was WordStar. The control sequences for moving around files became so ingrained that what ever editor I use gets modified to use the WordStar control sequences. AutoHotKey has made it easy to let jEdit, Visual Studio, Code Composer Studio, Word, Notepad++ and other editors all use the same control sequences.

  23. David Yancey says:

    I would add along with Evernote: Penultimate and Evernote Webclipper.

    I use Penultimate to draw out designs on my iPad and they get added to my Evernote, and Webclipper goes directly to my evernote as well.

  24. peter says:

    thanks – useful list. +1 for OneNote, too.
    But piqué ?

  25. Pingback: Great List of Programmer Tools | Eric S. Davis

  26. Peter Lewis says:

    I can’t believe Fiddler2 is not on the list.

    • Fair point, but let me ask you to help me with what Fiddler2 provides that the Chrome debugging tools (F12) don’t.

      Thanks

      • Peter Lewis says:

        Chrome is handy, but it is only for the current page. The captures disappear the moment you move to another page. And it is only for items downloaded by Chrome.

        Fiddler is a more general purpose Http debugger. It keeps all captures in a list for you to inspect at your own time. It can break requests and allow you to modify them before continuing. It can present responses in various formats, including JSON, Xml, etc. It catches Http traffic from all sources on the PC, including malicious software, as long as they follow the PC’s Http proxy settings. It can even troubleshoot traffic from other devices if they point to Fiddler.

      • Anonymous says:

        The ability to see traffic from other browsers?

      • TMcGill says:

        Watching web traffic that doesn’t come from Chrome?

        • Peter Lewis says:

          That is correct.

          Basically, Fiddler is listening on port 8888. When captures are turned on, it configures your IE proxy to localhost:8888. Hence all traffic, whether from browsers or any other application processes, as long as they follow the proxy settings, will go through Fiddler.

          I can’t live without it.

  27. Joe says:

    Great list. I’ll just add that Clearly really improves the quality of my Evernote clips – use it daily (hourly!).

    Thanks,

  28. Bassam Abdul-Baki says:

    Not sure if this is meant to be a free list or not, but here are my essentials.

    Text Editor: UltraEdit. Every company I work for, I request that they purchase me a license.
    Searching: Agent Ransack was the free version. I have now switched to File Locator Pro.
    Diff Tool: WinMerge. The fact that is, this tool has grown and can compare Office documents.

  29. Pingback: Building Multiple View SPA In The Daily Six Pack: October 29, 2013

  30. “A programmer’s wife says to him, “Go to the store and get a dozen eggs. If they have sausages, get two.” He comes back with two dozen eggs.”

    Wouldn’t he come back with two, not two dozen?

    • Correction accepted, thanks!

      • Greg Russell says:

        Surely you’re both correct. One could argue that in the context of ‘get a dozen eggs’, ‘get two’ means either two or two dozen eggs. Surely the programmer’s wife should have been more specific about the sausages and agreed to a set of requirements with her husband.

        Alternatively, she should have been like any normal wife; not to trust her husband to get anything right and go to the store herself.

  31. Fredi Machado says:

    Hi Jesse! Thank you very much!
    I just can’t beleave you don’t use LINQPad.

  32. CB says:

    Two notes for Git:
    – For a GUI, SourceTree is very nice (http://www.sourcetreeapp.com/).
    – For working at the command line, I like Powershell with posh-git (http://dahlbyk.github.io/posh-git/).

  33. Van says:

    Excellent list. I have some alternatives though:
    ExamDiff Pro/Beyond Compare: I’ve found Perforce Merge (free) which can be installed dependent from Perforce and excellent tool for merging.
    ClipX: I used to be hardcode ClipX fan, but found Ditto to be more stable.
    RegEx Buddy: I’m a hardcore Expresso (free, register-ware) fan, and find the move to RegEx Buddy unnecessary. RegEx Buddy is certainly more up-to-date as Expresso has not been updated for sometime, but it’s more than enough for everyday usage, especially when it’s free.
    HyperSnap: Greenshot (free) has lots of plugins that I’ve found to be very useful. The screenshot annotation is a bit basic, but cover all the essentials.

    • Yes, I’m sorry, it was delayed a bit but should be up this week.

    • Carlos says:

      I second Van’s recommendation of Perforce Merge, I was going to suggest it myself. Very nice tool, great visualization of complex merges, it’s wonderful they give it away without buying their suite. No folder diff/merge/sync though, still need another tool for that.

  34. Bart says:

    Hi Jesse,

    Nice collection of tools. I see that you have published a Sublime course on pluralsight. I’m trying to locate it on the site but not finding it. Is it not yet plublished?

    rgds

  35. Kyle says:

    Nice list. Pretty awesome you put Service Stack on there. You should consider doing a podcast with Demis or some ServiceStack pro, maybe about the other awesome parts of it other than just the web services portion. I love hearing about it and feel it doesn’t really get the attention it deserves essentially because I feel like it does everything ‘right’.

  36. CB says:

    SourceTree might help you make sense of Git — http://www.sourcetreeapp.com/.
    I generally use git commands in Powershell with posh-git (https://github.com/dahlbyk/posh-git.git).

    posh-git
    A set of PowerShell scripts which provide Git/PowerShell integration
    Prompt for Git repositories
    The prompt within Git repositories can show the current branch and the state of files (additions, modifications, deletions) within.

    Tab completion
    Provides tab completion for common commands when using git.
    E.g. git ch –> git checkout

  37. CB says:

    It’s funny that you use AutoKey for things like “move right one character” — sounds like you’re a good candidate for Vim. I use vim or gvim for my quick ‘n dirty text editor, the free VsVim extension for VisStudio, and a similar plugin in WebStorm. Rarely do my fingers have to leave the keyboard.

    • Jonathan says:

      Isn’t that what the arrow key is for? There is also a key for “move left one character”… the left arrow! What am I missing?

      • What you are missing is only that i can’t reach the arrow key without looking and then get back to touch typing. This way I don’t take my hands off the keys and I can do it while looking at the screen.

        • Jonathan says:

          Ah, I see. The arrow keys, as well as home/end, pg-up/pg-dn, and delete (I never use insert) are part of my touch typing. I do have to look to get the number pad correct, so I understand what you mean.

  38. Michael Cullina says:

    This is outstanding Jesse. I already use many of these utilities but today I added Fences and TheBrain. I’m going to test BeyondCompare too. By the way, I prefer OneNote to Evernote. OneNote is certainly worth a mention. Search of huge data stores is lightning fast.

  39. Nice article!
    I tend to use KDiff (http://kdiff3.sourceforge.net), but I’ll definitely check out ExamDiff, looks to have some nice features.
    One I find invaluable is TeamViewer (http://www.teamviewer.com/en/index.aspx), nice simple remote maintenance tool… Tends not to scare the noobs, especially as it doesn’t need installing ;-)
    Although not a “tool”, StackOverflow.com is brilliant.
    For PHP Developers, PHPEd (http://www.nusphere.com) is excellent.

  40. Sirwan says:

    Thanks.

Leave a Reply

Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>