Apple

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.

Using Concentrate for the Pomodoro Technique on OS X

concentrate.png

Concentrate is a Mac only app. It lets you do a number of things like block web sites, launch apps, play sounds, etc. Combinations of these things can be configured to go on for varying amounts of time. I use it for the Pomodoro Technique when programming. Corey Haines introduced me to Tomatoist when I paired with him during one of his journeyman tours. While that site is awesome, I prefer using the Mac app to force eliminate distractions.

The Pomodoro Technique

The root of the idea is that you program for 25 minutes straight and then break for 5 minutes. This seems like a pretty simple idea but when you’re working by yourself things can happen. For example, maybe you want to send a quick email to someone but want to refer to something in their Facebook account you can’t quite remember. So then you look it up. While looking it up you notice something else interesting by another one of your friends and the distractions start. By the end of the distractions you’ve ordered enough parts for a fully functional robot suit off eBay. If you only had 5 minutes to do this stuff, maybe that wouldn’t have happened.

Setting Up Concentrate

Concentrate New Task

Concentrate is actually a very simple application to use. Click on the “New Activity Button” and set your options. I called mine "Program Pomodoro." It’s set to block any site that could potentially distract me, Growl a message, and play a sound on completion. The typical Pomodoro technique lasts 25 minutes so drag the location slider over until you see 25 minutes. Boom, good to go. Now you can’t look at anyone’s Facebook account or respond to any threads on hacker news for a good 25 minutes. You’ll get to that during your break.

Concentrate Activities

The next task you’ll want to set up is the break. This is the most rewarding task. I just have this one Growl a message ("Get back to work!") and play a sound when it’s done. The duration slider should be set to 5 minutes.

Get To It!

That’s about it. It’s simple software and well worth the $30 to eliminate distractions. I use it only for those two techniques listed above and have been very happy. Special thanks to Corey Haines for introducing me to the Pomodoro technique.

NVidia Graphics Update 2009-01-26

NVidia logoI’ve written before about the problems with the Mini DisplayPort to dual link DVI adapter from Apple. Today Apple has released a graphics update that is supposed to fix the cursor movement problem. After having installed it, it does NOT fix the out of sync issues. I guess we’ll have to wait on that one for a little while yet.Regardless, you can download it here.Update: Apple has pulled the update for some unknown reason. The page linked above is leads to a 404 not found page.

Mini DisplayPort to Dual Link DVI Adapter Fix (Temporary)

The Mini DisplayPort to Dual Link DVI Adapter for the new aluminum Macbooks and Macbook Pros is getting some bad press due to sporadic flickering problems. There are seemingly very few people who aren’t having problems, myself included. This is a strange move by Apple. It seems unlikely that this could go unnoticed in testing given the amount of people who are experiencing problems.Most people experiencing the problem have been unplugging and then re-plugging the usb part of the cable. This works but is kind of annoying to do and doesn’t seem to work for a long time — you do have to reboot eventually. Keeping the USB part hooked up to an external (powered) usb hub seems to lessen the symptoms but not alleviate them entirely.Another option that I’ve found works is to go in to System Preferences and then Display Preferences. Change your resolution to 1280×800 and then back to 2560×1600. That’s been consistently working for me for a few hours at a time.Other than that I’ve had a good experience with the adapter. The regular MacBook drives the 30″ display just fine — exposé and spaces are both as zippy as when not hooked up to any external display at all. In case anyone is curious, I’m hooked up to a Dell 3007WFP-HC and having the extra screen real-estate is fantastic.Update: Pressing Ctrl + Shift + Eject seems to work as well. This puts the displays to sleep. After sleeping you just move the mouse and everything wakes up and works. Your mileage may vary, but please let me know in the comments if it works for you.Update 2: Some people are reporting that Apple is retroactively saying that the adapter is only compatible with the Apple 30″ cinema display. I find this pretty unlikely for the following reasons:
  • It’s a standard.
  • Apple hasn’t updated the MacBook page to reflect this.
Again I’m pretty sure that this can be fixed via a software update since the above two “fixes” seem to work. I’ll post again when Apple updates.