If you develop desktop software, you most likely have a favorite set of software tools to help you get things done. I'm going to steer clear of the well-known ones like Excel for preparing data or version control software like Git. Instead, we’ll look at five everyday tools that can really streamline the nitpicky aspects of your workflow, like synchronizing files.
All of these tools are free and/or open source; some are cross-platform. No matter what your role as a technologist, they might come in useful:
- Everything: A very fast file finder.
- FreeFileSync: Synchronising files and folders.
- Code Compare: Compare files or folder.
- DebugView: For capturing silent output from software.
- Wikidpad: A notetaking app that lets you create cross-linked pages.
Ready? Let’s break them down!
If you've ever wondered where all your Windows disk space has gone, you'll be glad for the existence of Everything. By default, it will show you every file and folder on your selected drives; you can narrow searches to folders, document files, audio files, executable files, pictures or video files. It only searches names, not the contents of files, but that means it is very fast. You can filter according to date and file size.
Finding lost files or projects is easy when you just specify the file extension. For example, a quick search for *.sln (C++ and C# project files) reveals that I have 5294 of them. You can also search for duplicate files that are same name and size (something I badly need to utilize). I don't think I’ve ever seen any application with so many configuration items or command line switches that’s still so easy to use.
Everything is Windows-only but one Linux developer liked it so much he wrote a version for Linux called FSearch. Before Everything, I used the excellent open source WinDirStat an open-source utility that made tree maps famous. It displays a tree map of your drives, letting you see where the big files are. However, you might consider this fast WinDirStat; it’s typically 40-50x faster on HD and 3-10x faster on SSD. It is also open source.
Isn’t it irritating when you’re copying a large number of files and the process stops for some reason you can’t immediately figure out? Then you want to copy just the remaining files, not everything again. Or perhaps you just want to copy changed or new files.
When I moved 2.3 TB of files from my old PC to my new one, this tool was a life saver. It's quite tempting when copying files with File Explorer to have two or three different copies running in parallel at the same time. Occasionally, though, Windows stumbles and then Explorer dies; after such crashes, I turned to FreeFileSync to do comparisons and copy the uncopied files. Keep it in mind if you have big file transfers coming up.
There's a free version or the premium one. The free one is excellent and lets you compare and merge two files; it also lets you compare folders, as well. What sets it apart from other file comparison utilities is its integration with version control systems such as TFS, SVN, Git, Mercurial, and Perforce. If you need automatic merging or three-way merge, then you should go for the premium version; but for everyday use, the free version does the trick.
Part of the SysInternals library in the Miscellaneous section, DebugView has been my salvation over the last three years. If you output text strings via the OutputDebugString (documented here) system call in the Windows Kernel32.dll, DebugView will capture the output and display it. It's what you see in the output windows of Visual Studio and IDEs like Delphi.
In my case, I was developing software that runs in an RDP session (i.e., on a remote desktop). I wasn't allowed to install the development system on the server, which meant I had to use DebugView instead of debugging. I built a simple logging class around OutputDebugString and ended up with something like 700 calls to it. I've left the calls in to the final .exe but disabled them with a simple flag. It can be reenabled if or when something goes wrong.
The SysInternals utility library has been around for over 20 years. If you need to see what's going on in Windows, it is the library to use—and it’s all free. It consists of approximately 70 different utilities covering file and disk, networking, process and security.
It uses SQLite for holding all pages, and you can have multiple instances of it open. It's open-source, written in C++, and fast. It's among my must-have tools for getting things done.