Mac OS X Post Install Guide, May 2010

Part 1: Update Software

This takes a while. Go get some coffee and install the developer tools.

System Settings

Appearance

Scroll Arrows at top and bottom

Place scroll arrows at top and bottom. This is a left over windows preference I just can’t get used to.

Finder

Finder Buttons

Add delete and get info to toolbar. I’m of the opinion that this should be the default.

Keyboard

Modifier Keys Full Keyboard Access

The Keyboard is a pretty big deal for developers. Here are my settings:

Get some Emacs keybindings in all of cocoa:
http://www.gnufoo.org/macosx/. I’m a vim guy but they’re useful.

Modifier keys, set caps lock to control. Allow Full keyboard access also.

keyboard settings
Uncheck "Illuminate keyboard in low light conditions" for better battery life.

Apps

  • BetterTouchTool

    Adds a bunch of configuration options for the Magic Mouse. I set a 3 finger tap for spaces. It’s handy.

  • Dropbox

    Effortlessly sync files across computers. If you use the link above I get some free space. Use this one for a referral free link if you prefer.

  • Skitch

    Capture screenshots, share images. This has become so ingrained in my day to day use I don’t know what I’d do without it.

  • Evernote

    Enhanced syncable notepad. I use this for everything from code snippets to projects notes, recipes, and everything in between.

  • Google Chrome Beta

    I couldn’t do without it. Spice it up with some developer extensions and you’re good to go.

  • Mailplane

    Gmail on the desktop. I’ve tried almost every os x mail solution and couldn’t get more productive than Gmail. However, I still keep Mail.app configured in case I need to refer to old mail offline.

  • Textmate

    This is practically a necessity. The best text editor on OS X.

  • MacVIM

    It’s no emacs but it’s good to have around.

  • iStat Menus

    istat menus Find out useful information about what’s going on in your system. I mainly use this for the calendar widget in the menu bar. Why this isn’t an option in OS X by default I’m not sure. It recently became a paid app and I upgraded immediately.

  • Concentrate

    Eliminate distractions. I’ve written about this one before in my Using concentrate for the Pomodoro Technique post.

  • Adium

    Multi protocol IM client. I use it when not forced to use iChat by others.

  • Skype

    Needed for work and for recording podcasts.

  • BusyCal

    Think of it as iCal pro. I like this better for syncing with Google Calendar.

  • Things

    The best to do list app on OS X.

  • LaunchBar 5

    LaunchBar is an app launcher and more. Although, to be fair, I’m giving Alfred a shot right now, too.

  • SuperDuper!

    I don’t even use Time Machine because of SuperDuper! It’s a great backup program, though the target is a bit different than Time Machine. It’s well worth the money because of the smart backup feature.

  • ChoosyChoosy

    Choosy is a “better default browser” for os x. It lets you choose which browser you want to open a link in. It’s really invaluable when you get used to it.

  • TrueCrypt

    Described on the web site as “Free open-source disk encryption software for Windows 7/Vista/XP, Mac OS X, and Linux.” I use it for an encrypted disk image where I hold my financial information. This image is kept in my Dropbox and synced when ever it’s unmounted automatically.

  • Tweetie

    My favorite OS X Twitter client so far.

  • RSS Menu

    RSS Menu lets you track rss feeds in your menu bar. I don’t have all my feeds in here but a few select ones, like twitter searches that I want to pay attention to.

  • Developer Stuff

    • Git branch in Bash Prompt. This goes in ~/.bash_profile:
      parse_git_branch() {
        git branch --no-color 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/\ →\ \1/'
      }
       
      export PS1='\[\e[1;37m\][\[\e[1;35m\]\u\[\e[1;37m\]@\[\e[1;32m\]\h\[\e[1;37m\]:\[\e[1;36m\]\w\[\e[1;33m\]$(parse_git_branch)\[\e[1;37m\]]$ \[\e[0m\]'
      This will make your prompt look like this:
      gitbranch.png
    • Git config (~/.gitconfig:
      [alias]
      	st = status
      	co = checkout
      	br = branch
      	ui = update-index
      	lg = log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %f %Cgreen(%cr)%Creset' --abbrev-commit --date=relative
    • Domain checking obsession. Put this in ~/.bash_profile, courtesy of Chris Wanstrath:
      function isreg {
      	whois $1 | grep -q 'No match' && echo "No" || echo "Yes"
      }
      Use as follows:
      $ isreg jasonseifer.com
      Yes
    • Put the following in ~/.inputrc. Create it if it doesn’t exist. Paste in the following:

      set show-all-if-ambiguous On
      set completion-ignore-case on
      "\ep": history-search-backward
      "\e[A": history-search-backward
      "\e[B": history-search-forward

      Now you can use tab to auto complete ignoring case and also suggest more options. The history search stuff lets you use the up arrow to search backwards through your history by typing in the first few letters of a command you’ve typed before and going back through. It’s like ctrl+r but easier.

    • Install Homebrew. Then:

        brew install wget
        brew install git
        brew install mysql
    • Ruby:

      First thing’s first. The version of rubygems that comes with Snow Leopard is a bit outdated. Update it:

      sudo gem update --system

      RVM is the Ruby Version Manager. It lets you have multiple versions of Ruby installed on you system. But it’s much more than that. You can also have gemsets which are preconfigured sets of gems. I’ve been using one gemset per project.

      Local rack apps can easily be hosted with Passenger Pane. Then you can also set up your rdocs for local viewing without using gem server. The instructions in the article still work, you just need to keep an old version or rdoc installed.

      mategem command to edit a gem in Textmate with completion:

      _mategem()
      {
          local curw
          COMPREPLY=()
          curw=${COMP_WORDS[COMP_CWORD]}
          local gems="$(gem environment gemdir)/gems"
          COMPREPLY=($(compgen -W '$(ls $gems)' -- $curw));
          return 0
      }
      complete -F _mategem -o dirnames mategem
    • PeepOpen is a new application from PeepCode that gives you a smarter fuzzy file search (like in TextMate) and also works in MacVim and Emacs. It really helps out in MacVim and is much easier to configure than the fuzzy file finder plugin.

    Wrapping Up

    This isn’t everything I use but It’s a pretty good start. If you have any must have apps or dev environment shortcuts, please post in the comments.