Recently I got a new Mac and setting up for development is always fun, so I decided share some of the setups I do on a new Mac.
Is a Mac a good machine for development?
I think so and also know folks that think Linux is better, some are more use to Windows. In the end I think is not the OS which makes a better development machine (although there's space for some debate here) but how you deal with it. Take a look on The Productive Programmer by Neal Ford for some other tips.
What to keep in mind
As you setup a machine for development some things you should keep in mind. First is you want to lower the keyboard to mouse time. Taking your hands off the keyboard to point to a link in a webpage and then going back is time consuming, a developer goes from the IDE to the browser lots of time during the day.
Make the computer do what you're thinking without much effort, few keystrokes should take or do what you want. Going through menus, mouse, chasing windows on the desktop are also time consuming, unproductive and (for me) annoying.
If you do twice, think about how to do with one keystroke. If you caught yourself repeating something, think in a way to automate it (if makes sense). Apple has AppleScript and Automator which you can use to make simple scripts for mundane things.
Keep your projects and files organized, this goes for every developer. Not
knowing where the files are leads you to browsing around to find them, avoid
that. I have a
Projects directory and an alias
goes to this folder, plus
gp project takes me direct to the project
folder. If you have some suggestion please do so (use the comments), I'm keen to
know how you make your environment more smart and fast.
Now, some of the things I do on my Mac for development.
Disabling the Dashboard
I tried to use, make some meaningful use of it but never achieved, it just sit there. In Lion it turned to be a little more annoying as it shows on Mission Control view. Disabling the Dashboard is pretty easy, go to the terminal and issue this command:
defaults write com.apple.dashboard mcx-disabled -boolean YES
And restart the Dock:
Get iTerm 2
OS X has its Terminal application but iTerm 2 has some features that I really like, one is the Hotkey Window which you can trigger by a keyboard shortcut and it come and goes easily.
One tip for Lion users, if you use multi desktops set iTerm 2 to be available in All Desktops. You can achieve this by control + click on iTerm icon in the Dock and selecting Options - Assign To - All Desktops. This way when you invoke Hotkey Window it will not shift from desktop to desktop.
On a Mac I prefer QuickSilver, mind that it is not just a Application launcher it can do a lot more than launch applications.
I use dropbox for a lot of file transferring and storage, specially when I change machines it helps to avoid the USB stick protocol.
A development machine that keeps dimming the monitor, going to screensaver and sleeping because you took more than five minutes to type doesn't help you. Caffeine when on don't let this happen, it's way more easy than changing Energy Saver configurations.
Get iStat Menus
This one is paid. I use to keep and eye on CPU, Memory, Hard drive access and Network usage. Also it can replace the battery level indicator and the date menu on the Mac. This is a habit that I've acquired working with Linux for long time and Bubblemon.
Although I don't develop for Mac, Xcode is needed because it brings a lot of libraries for development that it's needed for a dev.
Get Home Brew
Or another package manager for Mac as MacPorts. You will need to install other
packages into your Mac. Unless you're a fan of compiling everything you need
something similar to
apt-get to your Mac.
I can't image myself using a browser without GleeBox. It makes easier to find links, form items, issue bookmarkslets on a page and more. Is one more application to lower the keyboard to mouse time.
Turn on keyboard access to all controls
In the System Preferences go to Keyboard then keyboard shortcuts and turn All Controls. Now you can use tab to navigate through windows buttons and fields.
If you use Safari, turn "Tab" for links
It doesn't come with the "Tab" to links enabled by default, just to go to its preferences advanced and turn Press Tab to highlight each item on a webpage.
Get a real Text/Code editor
I use Vim and usually is the first thing that I install in any
computer that I use. MacVim is
the Vim for a Mac. Also I don't like the menu if you also don't like add to your
Learn some common shortcuts of OS X
One of the good things about Apple software is it tries to be consistent over
the keyboard shortcuts. The famous
Command + , in almost every
software that runs on a Mac takes you to the preferences of the app.
Another good one is
Command + ? which takes you to the help
menu, plus there's a search that can show you a entry on the menu. If the app
doesn't not provide a shortcut for the action you're trying to make you can use
this one to go there.