There are a few free tools that I want to plug. They are not scientific tools per se, but I find them very useful in my day-to-day operations, and I’m sure others will too. Two of the tools I use when I want to free up disk space: GrandPerspective and Monolingual. The last one is for filling up disk space with object files: Scons.

GrandPerspective is a simple idea that works very well in practice. It scans a directory on your hard disk, and displays the files as different colored blocks. The size of the blocks is proportional to the size of the files, and similar files are grouped together and given the same color. By mousing over the blocks, you can see what files they represent. It sounds simple, but it is a very effective way to immediately see what is eating up your file system, whether it be a couple of enormous QuickTime movies, or hundreds of smaller files like your iPhoto library.

In contrast to GrandPerspective, you won’t need to run Monolingual very often. Monolingual scans your system, and removes languages that you don’t need from the system and applications. You select the languages you want to keep. Perhaps surprisingly, this can free up several gigabytes of disk space. You can also remove files for particular chip architectures; for example, you could remove all PPC files from your Intel laptop. A word of warning about this: I managed to hose my Software Development Kits (SDKs) by doing this, and had to reinstall Xcode. Better to think hard before pulling this stunt.

The last tool I want to plug is Scons. Scons is a very powerful build system — an improved ‘make’ — written in Python. It has a whole range of cool functionality:

  • Cross-platform
  • Multi-threaded
  • Determines dependencies in C and Fortran
  • Easily handles multi-directory builds
  • Easily handles multiple build directories
  • Includes configuration functionality, like autoconf

But for me, the killer feature is that the build files — known as SConstruct files, the Scons equivalent of a makefile — are Python scripts. You can do anything in a SConstruct file that you can do in Python. If you already know Python, you don’t have to learn yet another underpowered, obscure scripting dialect.

I use Scons for most of my Fortran projects, because it understands Fortran 90 dependencies, and have used it for a C++ project. It has served me well. If you are sick of manually updating makefiles, Scons may be the answer, especially if you are already a Python scripter.