The Focused MacBook Air

Knowing that the hard drive in my MacBook Pro will go at moment, I picked up a MacBook Air this week (13″, 1.8GHz, 256MB, 4GB).

In the process of setting it up – I’ve decided to make this new machine a focused, minimal, work, machine. Despite Migration Assistant – I want to start some new habits, not repeat old, bad ones.

So far this means:

  • Changing ‘Desktop’ color to ‘Sold Gray Medium’ (something I’ve done since 1997)
  • Changing ‘Appearance’ from ‘Blue’ to ‘Graphite’
  • Removing everything possible from the top menu bar (so far, only Spotlight & Flux remain – they won’t be removed)
  • Leaving only the Spotlight search and ‘arrange’ icons in the Finder window toolbar
  • Removing any casual app (iMovie, FaceTime, etc) from the dock
  • Auto hiding the dock
  • Installing Flux.app (does a great job of discouraging writing too late into the night)
  • Installing Quicksilver (Macs w/o Quicksilver are unusable – try it)
  • Installing Isolator.app (on by default, hide other applications by default)
  • Installing MenuBarFilter.app to make the menu bar much less prominent.
  • Not setting up email, IM, Skype, or any sort of communications app. Nothing. This is a creation machine – not a communication machine.
  • Not migrating over bookmarks or browser histories.

How to Automagically Sync Directories Across Multiple Macs with Git & Launchd

In an effort to minimize my downtime when the funny noises this MacBook Pro is making finally amount to something – I’ve wired up a git repository to OS X’s native launchd service. The git repository hold all of my active projects – whether development projects with their own repos, research projects, consulting project. Everything.

Right now, there’s a Mac mini holding the shared repo with a MacBook Pro and a MacBook Air pushing and pulling to it.

  1. Set up SSH keys the laptops and server (I like GitHub’s instructions)
  2. Set up the repo on the server
    mkdir active-projects.git
    cd active-projects.git
    git --bare init
  3. set up a repo on both client macs
    cd ~/Documents/Projects
    git init
    git add .
    git commit -a -m "initial commit"
  4. create the active-projects.sh backup script in your ~/Documents directory #!/bin/sh
    DATE=`date -u`
    cd /Users/YOUR-USER-NAME/Documents/Projects
    git pull origin master
    git add .
    git commit -a -m "Active Project Sync - $DATE"
    git push origin master
  5. make active-projects.sh executable chmod +x project-backup.sh
  6. Make the active-projects-backup.plist file for launchd

    < ?xml version="1.0" encoding="UTF-8"?>
    < !DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN"
    "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <dict>
    <key>Label</key>
    <string>YOURNAME.rsync.backup</string>
    <key>LowPriorityIO</key>
    <true />
    <key>Program</key>
    <string>/Users/YOUR-USER-NAME/Documents/active-projects.sh</string>
    <key>ProgramArguments</key>
    <array>
    <string>active-projects.sh</string>
    </array>
    <key>RunAtLoad</key>
    <true />
    <key>QueueDirectories</key>
    <array>
    <string>/Users/YOUR-USER-NAME/Documents/Projects</string>
    </array>
    <key>WorkingDirectory</key>
    <array>
    <string>/Users/YOUR-USER-NAME/Documents/Projects</string>
    </array>
    </dict>
  7. save the active-projects-backup.plist file to ~/Library/LaunchAgents and load it up launchctl load ~/Library/LaunchAgents/active-projects-backup.plist
  8. Now, whenever a change is made in your ~/Documents/Projects – it will be automatically committed to the git repo and propagated to all computers connected to that repo. Like magic.

Thanks to culturedcode’s instructions for syncing Things with git & Launchd.

REmail

I’m so tired of doing this kind of thing in silos. Email is mine. Google+ is Google’s. In terms of location, I feel like I’m in a corporate setting in Google+, and I feel like I’m at home when I’m in email. The reason, aside from design differences, is that email is free-as-in-freedom. Its protocols are NEA: Nobody owns them, Everybody can use them, and Anybody can improve them. Not the case with these commercial Web dairy farms. – Doc Searls

Each day, there’s some number of Google+, Linkedin, Facebook, and Twitter notifications in my email inbox. Ironic that these communications services, seemingly wanting to be as ubiquitous as email, need to use email as a primary notification service.

And the daily deal space (Groupon, Living Social, et. al.) are 95% email.

Every couple of days, I’m asked, ‘What comes after Twitter, Facebook, (etc)?’

I don’t know, I’m in email.