Apps I Always Install on a New Development Machine
We've all gone through the task of setting up a new development machine, either physical or virtual. It's not always the most fun thing to do, sitting there watching those progress bars go to 99% in a minute and then wait another hour for the last 1%. Even though we might not want to go through that experience, it’s just part of being a software consultant. With that in mind, the following are a couple of the applications I always install on my development environments -- and even on my home PCs – to make my job a little easier.
Ninite
When a friend told me about Ninite; I just had to try it. It's the fastest way I know to get almost all of the applications I need installed one after the other with no toolbars or "additional software" very quickly. All you do is go to ninite.com, select your applications from a list, click a button and voilà! You get a small installer file that downloads and installs all the software you selected.
Notepad++
Notepad++ is hands down the best text editor I've used. I have been using it since around 2004 and it has only gotten better over the years. Notepad++ is what I used to write this post and I use it every day to look at log files, edit configuration files, format XML and quickly open code files without having to open a heavy IDE and load a whole project or solution. I really recommend you take a look at the plug-ins available for it, there are some really good ones, like XML Tools.
7-Zip
7-Zip is as practical as it gets, there is zero fluff on the UI, and you can compress and/or uncompress files using the most popular formats. It's fast, it's small and it's free. You can always go with one of fancier solutions, but I'm sure you probably won't use all of the extra features on those.
WinMerge
There is a time in every developer's life when we all have to play the old "find the differences" game with two or more files or folders -- this is where WinMerge comes in. It might not have all the features as other solutions (like Beyond Compare, which is also very good), but it gets the job done and it has saved my behind more than once.
PuTTY
I tend to live on the Microsoft world, where everything has a GUI and when you remote to a server you don't even need to use your keyboard at all but once in a while I need to connect to my Linux server at home and PuTTY is the best client I've used for terminal connections and the occasional ssh tunneling.
Lightscreen
For those instances when you might need to prove that "it works on my machine" statement, usually a screen shot is helpful. Lightscreen is a very small, very low resource app that allows you to take screen shots and automatically save them with your choice of naming convention.
GIMP
Even though I don't do the graphic design on the projects I work on, there are always times when you need to manipulate images like resizing, rotating, cropping, removing backgrounds, merging two icons into one, etc. You can always do a lot of stuff in good old Microsoft Paint but when you need a little bit more, without buying an Adobe CC subscription, you can trust GIMP to get the job done.
DAEMON Tools Lite
When installing my usual tools of the trade from MSDN like Visual Studio or SQL Server, they all come in ISO format. You can either mount them using a virtual device or burn them on a DVD which will probably be obsolete by the time you install these tools again -- that is if you can find it. There are several solutions out there to mount ISO files but the one I've been using for 10+ years is DAEMON Tools Lite. It's unobtrusive, fast and I’ve never had an issue with it.
PortableApps
Last but not least, we can't always have our development machine with us (although some bosses would love that) and, even if we do, we might need to run some tools on a machine that we don't want to modify or might not have permissions to install anything at all. PortableApps provides a solution for this situation. It's a collection of applications -- from browsers to editors and even some cool tools like a database server browser -- that have all been compiled to run directly off a USB stick or HDD without any special permissions on the PC you are running them on. This not only means you don't need to install them, but also means that they won't try to write to the Windows Registry or any other actions that might make an application crash if you are running under a very restricted environment. You can either get a couple of versions of the full suite of apps all bundled or you can install as you go on your drive. The PortableApps launcher application will recognize all of the applications installed on your drive.
This list isn’t intended to outline all of the applications I normally install or even say that these are the best at what they do. At the end of the day, these are applications I keep coming back to and rely on to accomplish some of the things I need to do every day at my job. What do you always install on your development environments?