Tools of the trade

My old Macbook was in terrible conditions after a long and productive life: it’s been powered on for an average of 16 hours per day for 3 years, and it has traveled to several continents. It will be fondly remembered.

I got a new Macbook pro and spent a considerable amount of time reinstalling my development and research environment. In the hope of saving some time during the next reinstall, I documented everything I installed. I thought I’d write a blog post about it, thinking that this list might be useful to someone else.

Developing environment

  • First thing first: the developer tools from Apple; they come in the install CD.
  • macports is my choice to complete the Unix environment. Packages installed: wget, ffmpeg, mplayer, imagemagick, autossh, aspell.
  • python is my current language of choice. The indispensable packages to learn and use are numpy, scipy, matplotlib, pytables, opencv. The Enthought Python Distribution is the most convenient package, although I have been having a few small problems with the 64 bit version.
  • Eclipse is my favorite multilingual IDE, of course with pydev, the Python plugin.
  • textmate is the best casual editor you can find for OS X. The essential plugins are the matlab bundle, and the remate plugin, to work over sftp links.
  • The inconsolata fonts are my favorite programming fonts. On Mac there is already Consolas, but Inconsolata is a free equivalent that you can install on Linux as well.
  • cmake is the best solution for building and packaging C/C++ projects.
  • After years with subversion, I am now a git convert. I found the best solution for Mac is to just install the binaries from the official website.
  • hdfview is a nice HDF viewer. See a few reasons why you should use HDF.
  • I dumped Parallels for VirtualBox: it’s free, and better.
  • You should drop bash for zsh. The best theme/plugin manager for zsh is oh-my-sh.

Networking

  • Chicken of the VNC is still the best VNC client around. In theory all VNC clients should be compatible with all servers; in practice, there are all sorts of incompatibilities, and Chicken of the VNC seems to play along well, especially with older Linux servers.
  • With synergy and a couple of computers, you can create a fancy Matrix-style C&C environment.
  • JungleDisk is my current favorite solution for automatic offsite backup (coupled with Time Machine for onsite backup).
  • expandrive is a must if you are working with multiple machines.
  • I switched from Firefox to Chrome; it’s faster, and has better memory handling. The indispensable plugin is adblockplus.
  • autossh might be useful if you need to establish SSH tunnels towards your machines (example: to secure VNC).

Doing research

  • Evernote saved my sanity! It is my solution for all the random bits of information (everything that I care about, but not so “stable” as to require a repository.)
  • Papers is the other piece of software that saved my sanity. Highly recommended.
  • Jabref is better than Papers at handling .bib references; useful at writing time when you want to have more control on formatting.
  • Skim is better than Preview for reading long PDF files.
  • Keynote has been a welcome liberation from Powerpoint. There was a period in which I used to do presentations with LaTeX using PowerDot, but nowadays I do everything with Keynote.
  • The best LaTeX distribution for Mac is MacTex.
  • If you are writing raw LaTeX, you are probably wasting your time; LyX gives you a nice GUI environment, and you still can have the flexibility of LaTeX when you need it.
  • Staying up late in front of your screen screws up your melatonin production. Use flux to minimize this problem.
  • Use Freedom to cut your internet connection when you really have to work. (Unfortunately it is not free anymore.)
  • Use RescueTime to assess your productivity (warning: it can be very demoralizing!)
  • SimplyNoise is useful when your work environment gets too noisy.
  • Piping to mplayer/mencoder, with perhaps a second pass with ffmpeg, is the best solution to create high-quality videos for your research.
  • VLC plays everything.
  • Sometimes I forget huge log files in some remote directory. I solved this problem using GrandPerspective.

Software that I have to install but I get no joy in using

  • Adobe Acrobat is the bloatest piece of software I have ever seen. I hate its intrusive “update manager”. But it is sometimes useful for checking which fonts a PDF is using.
  • Matlab is something I sweared to use again only when forced.
  • Mathematica is still enigmatic and profoundly non intuitive for me.
  • There’s no alternative to Skype.

Miscellaneous