# Making the Most of My Mac

For literally years I’ve been meaning to write a post about my favorite programs and utilities for the Mac, but I’ve always managed to put it off. Given that I recently sent my girlfriend my old Powerbook, I thought that I should finally write down a list of the programs and tools that I’ve found worth having as a Mac user. This list is definitely idiosyncratic — with a heavy bias towards programming and scientific tools –, but I think that there are still a lot of very good programs on this list that do not always get as much publicity as they deserve. All that said, here’s my list.

1. Adium: The best chat client for the Mac that I’m aware of. I use it as a client for GMail chat, AIM and MSN. I’d use iChat if it worked with all of those services as well as Adium does, but it just doesn’t as far as I can tell. There are things that iChat does that Adium can’t do — e.g. video chat –, but I don’t have any use for those features. I could also use the AIM and MSN programs provided by AOL and Microsoft, but I much prefer a single integrated program over several separate programs. (site)

2. Caffeine: A simple little program that keeps your Mac from going to sleep, turning off the monitor or activating the screen saver. Very useful when you’re giving presentations. (site)

3. Carbon Emacs: The only build of Emacs that I find reliably renders the keys on my Western Spanish keyboard. It is also the only one that seems to respect traditional Emacs key bindings, which is very important to me. (site)

4. Cubase: My favorite music composition software for the Mac. Cubase is well-deservedly famous as a MIDI sequencer and I’ve found that it’s equally good as a multitrack audio recording system. I use it along with a Toneport UX2 to record guitar and Superior Drummer 2.0 for drum tracking, and I’ve gotten great results so far. (site)

5. Cyberduck: The FTP/SFTP client I use. I’m sure there are better tools than Cyberduck (such as Transmit 3), but Cyberduck is free and does the job more than well enough for my needs. (site)

6. Delicious Library: A program to help you keep a record of all of the books, DVD’s and CD’s you own. I find it especially useful for keeping track of the books I lend to people. (site)

7. Flickr Uploader: If I’m going to upload a lot of photos to Flickr, I really don’t want to have to use a Web interface. Flickr Uploader lets me do all of the editing on my machine and then send the labelled and tagged photos as a single group to Flickr. Most importantly, the progress I’ve made in tagging photos isn’t lost when my Internet connection flakes out. (site)

8. Gimp: I’m too cheap to buy Photoshop, but the recent builds of Gimp for the Mac work well enough for my purposes. (site)

9. Graphviz: If I have to draw any sort of graph, I always use Graphviz. It’s a great interface to compilers for the DOT language developed at Bell Labs to describe graphs. If you can program at all and ever need to write up flowcharts or diagrams of any sort, I think Graphviz is the way to go. You should also know that the Pixelglow build for Macs is much better than the default. (site)

10. Growl: Growl provides one of those clever little hacks to the basic Mac user interface that Windows users always find impressive: it creates a service for displaying notifications on your screen that quickly fade away after you’ve seen them. But the truth is that Growl’s usefulness is only obvious after you’ve used it for a while. (site)

11. Handbrake: The best video transcoder I know of for the Mac. Whenever I need to change one video format into another, Handbrake’s been able to do it for me. (site)

12. Hazel: Another great service for Macs: install Hazel and you have a simple daemon that will regularly move files according to a set of rules you define yourself. I use it to sort every file on my desktop into folders specific to filetypes — moving MP3’s to one folder and PDF’s to another. It’s been a major part of my efforts to be more organized with my files. (site)

13. KeePassX: A password manager that I find very helpful for navigating the mass of passwords I need to remember without leaving the passwords as plain text anywhere on my system. (site)

14. MacFreePOPS: A simple little program that will let you access your Hotmail account from Mail as if it were a POP server. Extremely useful. (site)

15. MacFUSE: Probably the most impressive of all of the hacks created by the Mac user community. MacFUSE allows you to install new file system drivers that run entirely in user space. The result is that you’ll get easy access to NTFS (i.e. Windows) hard drives and a slew of other formats. I think everyone should put MacFUSE on their machine the day they buy it. (site)

16. Mac The Ripper: If I need to make a copy of a DVD I’ve made, Mac The Ripper makes it much easier for me to do so. Unfortunately only the older version is still freely distributed, but it works for most DVD’s. (site)

17. MarsEdit: Just as I don’t like using a web interface to upload photos to Flickr, I don’t much like using one when writing blog posts. So I do all of my writing in MarsEdit, which then handles uploading my finished posts to my server. (site)

18. Mathematica: I use Mathematica fairly frequently when I want to get a quick sense of how functions behave or when I need to evaluate an integral I’ve forgotten how to solve by hand. (site)

19. Matlab: If I need to do a lot of basic number crunching involving matrices, I always use Matlab. Additionally, I tend to use it along with PsychToolBox and DotsX for coding experiments in neuroscience and psychology. (site)

20. MySQL: I always use MySQL as the database system for every dynamic web site I build. It works perfectly on Mac OS X these days, so I tend to demo things on my own machine before moving them off to a stand-alone server. (site)

21. NetNewsWire: My favorite RSS reader for the Mac. I can’t speak highly enough of NetNewsWire’s interface or the fact that the iPhone application is just as great as the desktop version. (site)

22. OpenOffice: Again, I’m too cheap to buy a copy of Office, so I use OpenOffice. It’s managed to serve me pretty well so far. It’s still a little lacking on the Mac, but it’s getting much better with time. (site)

23. Papers: My means for storing and organizing all of my PDF files. Think of it as iTunes for PDF’s. If you read journal articles, Papers will improve your life more than you could possibly expect. (site)

24. Perian: Perian will outfit your Quicktime player with almost all of the codecs you could want. Without it, I find Quicktime almost useless. (site)

25. Perl: The classic programming language needs no introduction, but I think it’s worth noting that you’re always better building your own version of Perl and storing it in /usr/local/, where you won’t be able to destroy the version that OS X ships with by default. I’ve also found it nearly impossible to get many modules to build without some customization. (site)

26. Python: Again, I don’t think Python needs an introduction, but building your own copy seems like a very good idea to me. (site)

27. Quicksilver: A great tool for getting easy access to programs. I don’t use nearly as many of Quicksilver’s features as a lot of people do, but I find it really helpful to be able to avoid using Finder when I don’t need to. (site)

28. R: My language of choice for statistical computing and data analysis. Great tools for producing graphs and an amazing set of facilities for any statistical computation you could ever want to perform. If you want to do statistics like a grown up statistician would, R is the way to go. (site)

29. ReadIris: My favorite OCR software for the Mac. I use this every time I want to copy a long section of text I’ve scanned. I invariably have to make corrections by hand, but that’s much faster than typing everything myself from scratch. Given how well ReadIris performs for me, I have high hope that one day in my life we’ll see a properly Bayesian piece of OCR software that gets everything right. (site)

30. Ruby: Another programming language that needs no introduction, but which I’d recommend building from source and storing in /usr/local. (site)

31. ScreenFlow: The best screencasting software for the Mac I could find. Given the number of features, the quality of the interface and its relatively low cost, I doubt one could find something better for a few years to come. (site)

32. Scrivener: An amazing application that makes writing extended works (for me those are mostly translations) much, much easier. I don’t use it as often these days, but Scrivener is a brilliant tool if you do a lot of writing that can be broken into sections and outlined carefully. (site)

33. ScummVM: When I’m not working, I like to play some old LucasArts games. ScummVM makes that possible. (site)

34. Senuti: If I need to transfer a file off of an iPod (which iTunes makes impossible), Senuti is there for me. It was free for a long time, so I’m somewhat surprised to find that you’re supposed to pay for it now. (site)

35. Sequel Pro: My favorite database client system. The heir to the great CocoaMySQL application. A perfect compliment to MySQL on the Mac. (site)

36. Skype: Who doesn’t use Skype as their VoIP program? (site)

37. TexLive: When I want documents to look clean, I always use LaTeX. TexLive is the current standard distribution of LaTeX for UNIX systems and it has some great tools specifically made for the Mac. (site)

38. TextMate: They claim it, and I agree: TextMate is Emacs for the 21st century. If you are young enough that you find GUI’s helpful and don’t think touching the mouse is a crime against nature, TextMate is the best text editor you will ever find. Every Rails person worth his salt is a TextMate user and there is an endless supply of bundles to customize TextMate for the language of your choice. (I’ve recently used it a lot with Matlab, R and Erlang.) (site)

39. The Unarchiver: If you’ve ever received a compressed file you couldn’t open, get The Unarchiver and your problems will be solved. Everything else is a waste of time and/or money. (site)

41. Unison: Probably my single favorite tool for the Mac. Unison lets my keep all of the files that matter to me in perfect sync between my laptop and my desktop. In practice, that amounts to a brilliant back-up system as well as making my life incredibly easier when I do some work on my laptop and then some more work on my desktop. In the end, Unison seems to be the program destined to replace rsync one day. (site)

42. VLC: The system I always use to watch anything that doesn’t open in Quicktime with Perian installed. (site)

43. VMWare Fusion: Sometimes I need to run Windows or Linux. VMWare Fusion makes it incredibly easy to do so and runs both of those operating systems with remarkable efficiency. (site)

44. Zenmap: If I need to figure out the structure of the network I’m on, nmap is the tool for doing so. Zenmap provides nmap for the Mac and also a (sometimes) helpful GUI. (site)

### 13 responses to “Making the Most of My Mac”

1. what about Songbird? pretty nice too

2. I haven’t used Songbird, but it looks pretty nice. I’m already wedded to iTunes and, because I have an iPod and an iPhone, am probably not going to switch. That said, I would be in love with Songbird if one of its fields was an MD5 column that I could use to filter out duplicate files faster than iTunes lets me.

3. I just got an iMac and this list was ridiculously helpful. I had to look up some a bunch of terms on wikipedia…but thank you.

4. I’m glad it was of help to you. People seem to really enjoy this post.

5. Just a quick question: does TextMate has a mode for Jags? I’ve to used aquamacs to edit my jags/bugs code. Many thanks: you list is amazingly helpful!

6. Which Revision Control System do you recommend ? Again, very nice list!

7. I personally use git, but have heard lots of good things about Mercurial. I love GitHub, though, which is a plus for git.

8. Hi John,

I have been using some of the tools from your list. Lately, I have been experimenting with git, which I am planning to use to track changes in my research projects in a more orderly way. I have more than one machine so I am also using spideroak to sync most files across them, including my research projects which are now organize around your package ProjectTemplate. But now I am wondering that perhaps git and sync tools such as sugar-sync or Unison maybe a little trick to be used in conjunction with git. I would assume that sync software will work over the git files and that this can be harmful. Thus I was wondering how more experienced people have been organizing this aspects of their workflow. All the best, Antonio.

9. Thanks for your answer. I guess I still have a very poor conceptual understanding of these tools and thus my confusion. So, basically you are telling me that it is perfectly OK to have the same file sync across computers via Unison (or sugar-sync, spideroak, etc) *and* have them also sync across computers and a remote repository using git? My git files in one machine will, of course, be changed after I use them and, for instance, make a new revision. This changes will be sync with the git files in my other machine. I was assuming that it would be a problem as the files in the second machine would be changed, get a new revision, but without “manually” going over the process of making a new revision (commit) . So I was assuming that sync over the sync could be a problem but I guess I was wrong.

10. Hi John. Now that I am using more than one machine daily, I am curious about how did you managed to sync Papers2 across computers. I’ve seen many people have problems with that. Thanks,

11. I used Unison. I haven’t tried it with Papers2, but for Papers you could just synchronize the folder ~/Documents/Paper across machines.