Mar 17
A Few Very Useful Tools–Mar 2011
Wow, I missed a YEAR’s worth of A Few Very Useful Tools. You are now entitled to your subscription fee back. Given I pay most of you to read this, you owe me money.
[Warning, philosophy ahead]
Seriously though, a year ago I was running out of things to post, so it was time to let it rest for a little while. There’s really only so much you can use well enough to get a good idea of whether it’s worth using. Lots of reviews represent 5-10 hours of use of a product (if that) and often come down to what I euphemistically call “counting cup holders”. Feature count doesn’t matter if those features aren’t well implemented. I would much rather use a bunch of small utilities that did one thing well than one mega-app that did it all but not very well. Granted, there are times where the whole is greater than the sum of its parts, but that requires true integration.
Without further ado, some gems from the last year.
  • Git – Source control the way it should be (I believe I heard that from Linus Torvalds). Most of all, branching and merging are so easy you stop thinking about it. You also can ship changes directly to someone else without creating ugly patches/shelves and without sending it through the central server. Why? Git is distributed from day one. A central repository is a decision you make as a project team, not requirement of the software. You commit to a local repository, then merge that repository with a central or with your peers. Git is much more a command line tool, graphic tools are lacking. They’re available, just lacking. Mercurial is a close second and has better graphical tool support if you’re on windows, but Git’s the king right now in terms of functionality.
  • Resharper – Ok, it was on my Dishonorable Mentions list a year or so ago. That said, I think they’ve improved it, but I’ve also found that on a “real” machine it rocks. That said, a “real” machine is a Windows 7 box with min 4GB ram and a beefy CPU. An SSD and 6GB of ram makes for a nice experience with “R#”. This configuration will neuter my main complaint from a year ago, which was performance. The refactoring tools, the test running tools, and the various navigation tools make for a completely different world of development.
  • Remote Desktop Connection– Silly as it sounds, this little tool is just what the doctor ordered if you have to work with multiple machines. I’ve stopped trying to manage multiple machines with a Keyboard-Video-Mouse switch. Using Remote Desktop, you can just open a window on one machine into another machine. It is not screen sharing. It let’s you open another desktop as if you were another user logged into the system (note number of users is limited). As far as I know, there’s nothing like this for mac, although there is for Linux. XRDP let’s you pull this off in a Linux world and share between the two as well! Mac doesn’t get to play, sorry.
  • Moq – Unit testing is the sign of a professional developer. It’s also the sign of a sane developer. Moq is a mocking framework that makes unit testing in C# absolute cake. I would favor this over any pre-VS2008 frameworks as it makes extensive use of lambdas to make mocking out dependent classes absolutely easy. Of all the things I can say about it, the best one is probably this: just about anything I’ve thought would be hard to mock has already had a way to do it in Moq. You really don’t need much more than the Quick Start page for this, trust me.
Well, that’s it. Four stellar tools in one year, only two of which I’d say are new-to-me in the year. Back to the grind…