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 avoid 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 tricky aspects of your workflow, like syncing files.
All of these tools are free and/or open source; some are cross-platform. Whatever your role as a technologist, they can be useful to you:
- All: A very fast file search tool.
- FreeFileSync: synchronization of files and folders.
- Code comparison: Compare files or folder.
- DebugView: To capture silent software output.
- Wikipedia: A note-taking app that lets you create crossover pages.
Ready? Let’s break them down!
If you’ve ever wondered where all your Windows disk space went, you’ll be glad Everything exists. By default, it will show you all the files and folders on your selected drives; you can restrict searches to folders, document files, audio files, executable files, images, or video files. It only searches file names, not file contents, but that means it’s very fast. You can filter by 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 have the same name and size (something I have really need to use). I don’t think I’ve ever seen an application with so many configuration items or command line switches that is still so easy to use.
It’s all Windows-only, but one Linux developer liked it so much he wrote a version for Linux called FSearch. First and foremost, I used the excellent open source WinDirStat, an open source utility that made tree maps famous. It displays a tree view of your drives, letting you see where the big files are. However, you might consider this quick 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 copy a lot of files and the process stops for some reason you can’t immediately understand? Then you want to copy only the remaining files, not everything again. Or maybe you just want to copy changed or new files.
When I moved 2.3TB of files from my old PC to my new one, this tool saved my life. It’s quite tempting when copying files with File Explorer to have two or three different copies running in parallel at the same time. Sometimes, however, Windows stumbles and then Explorer dies; after such crashes, I turned to FreeFileSync to do comparisons and copy the uncopied files. Keep this in mind if you have large file transfers coming up.
There is a free version or the premium version. The free one is excellent and lets you compare and merge two files; it also allows you to compare folders. What sets it apart from other file comparison utilities is its integration with version control systems like TFS, SVN, Git, Mercurial, and Perforce. If you need auto-merge or three-way merge, 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 for the past three years. If you produce text strings via the OutputDebugString system call (documented here) in Windows Kernel32.dll, DebugView will capture the output and display it. This is 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 was not 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. I left the calls in the final .exe but disabled them with a simple flag. It can be reactivated 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’s the library to use, and everything is free. It consists of around 70 different utilities covering files and disks, networking, processes, and security.
It uses SQLite to hold all the pages, and you can have multiple instances of it open. It’s open-source, written in C++ and fast. It is one of my essential tools to get things done.