Setting up a Mac

So far this year I’ve set up three different Macs: I had to “nuke and pave”1 both my MacBook Pro and Mac mini, and I bought a new iMac and set it up. Going through this three times has forced me to think about the best way to go about it.2

Circumstances

There are several circumstances where you might have to set up a Mac from scratch. You buy a new Mac and need to set it up (yay!), you have some sort of failure and need to rebuild the machine to fix it (boo!), or you decide to voluntarily do the nuke and pave to give yourself a fresh start or eliminate the sort of cruft that builds up over time.

If you’re setting up a new Mac you’ve probably still got your old Mac, with access to all your data so you can easily copy things over, see what you have installed, etc. If you’re voluntarily reformatting your Mac, you can do some preparation ahead of time to back up your data and do things like make lists of installed apps. If your Mac went down hard and you have to reformat to get it working again, you have to rely on your backups.3

As it happens, I have one example of each. I decided to do the nuke and pave on my MacBook Pro because reformatting the drive from scratch seemed to be the only way to delete a Boot Camp partition I wasn’t using anymore.4 My Mac mini had been suffering some glitches and finally got to a state where it wouldn’t even boot successfully. Finally, I got the new iMac and had to set it up.

There are ways of avoiding a lot of the setup work in all these circumstances. You can restore from backup or use Migration Assistant to move your apps and files to your new machine. However, I prefer to use these sorts of circumstances as an opportunity for a fresh start.

Reinstalling and setting up macOS

A new Mac comes with macOS already installed, of course, but if you’re rebuilding an existing machine you have to get the OS on there. The easiest way to do this is to boot into the recovery partition (hold down Command-R while your machine boots). Use Disk Utility to reformat the hard drive and then reinstall macOS on it.

Then it’s just a matter of going through the standard macOS setup process: creating a user account, entering your WiFi password, signing into iCloud etc. It will offer to transfer data from another machine, but when setting up from scratch I prefer to handle this myself so I only get the programs and data that I want.

One thing I always make sure to do during setup is to turn on FileVault disk encryption. This is a great security feature with no noticeable performance penalty on a modern Mac. The one place where you will notice it is if you turn it on later on a larger hard drive, as your machine goes through and encrypts all the data on the disk. Better to turn it on up front so that everything gets encrypted as soon as it’s loaded onto the machine.

 

Installing Apps

Once the OS is up and running, the next step is to load my apps. One of the big advantages of setting up from scratch is that it’s a chance to give some careful thought to which apps I want to install. There’s no need to install something had on my old machine, but didn’t really use, or only tried once. One strategy for this is to “install on demand”; to wait until you actually need an app before you install it. If I don’t need FinalCut for another six months, I can wait until then to put it on. The problem is this adds an extra layer of friction when I need to use an app for the first time on this machine. With a laptop, it’s also possible that I might be on a slow internet connection the first time I need to use an app. I prefer to install the apps I think I’ll need up front, but I’m not going to just blindly reinstall all the apps I had on my old machine. I’ll assess whether I really use an app and how likely I am to need it.

One thing worth thinking about is now just “what apps do I use?”, but “what apps do I need on this machine?” My Mac mini was running as a home server, handling backups, Plex, and Drobo. Since I had been having some trouble with it I deliberately installed only the bare minimum of apps for that role when I set it up again. No need to install apps like Pages or Ulysses when I’m never going to do any writing on this machine.

Priority Apps

Rather than just going in and starting to download stuff, I have a couple of priorities. Setting up a new computer will involve entering a lot of passwords, so I absolutely need 1Password. I got my copy form the App Store, so the first thing I’ll do is log in to the store and download 1Password (my iCloud password is one of the few I actually have memorized, so I can get into the App Store and into iCloud to sync my passwords).

Setting up a new Mac also involves lots of repetitive typing. I’m going to have to put my email address in a lot of different things to get this Mac up and running, so TextExpander is a must. I haven’t upgraded to their latest subscription based version yet, so I have to make sure to download the old version 4 (it’s still available, but it’s not very prominent on their website).

My TextExpander snippets are synced via Dropbox, so that’s my next stop. I’ve got a fairly big Dropbox folder, so the whole thing will take a while to sync. Rather than waiting on that, I use the selective sync settings to sync only the TextExpander folder at first, so it downloads right away. Once I have that, I’ll go back in and sync the rest of my stuff.

Finally, I am used to using window management software to the point where I find it painful to do without it (especially on Macs with large displays, like the iMac, or the external 24” I use with my MacBook Pro). Magnet is my current weapon of choice in this area, and it’s the next thing I download.

Other Apps

With the foundation in place, I start going through my list of purchased apps in the Mac App Store and downloading deciding for each one whether I wanted it on that particular Mac. Mostly this is a simple process of asking myself “how likely am I to need this app”. I did run into a few tricky situations where I had a Mac App Store version of an app, but then had a newer version outside the App Store (either because the developer stopped offering it in the App Store, or because I was able to get upgrade pricing by using the non-app store version). There were a couple of instances where I downloaded the old version from the App Store, then realized that I had a license for a newer, non-app store version.5

After getting the App Store downloads going, I brought up 1Password and started going through the software licenses I have stored there. If I want an app on this machine I’ll go to the developer website and download the app from there.

Most of my apps are either in the App Store or have a license in 1Password. The trickier ones to remember are those that aren’t in either of those places. These are mostly free utilities of various types, or apps that go with particular pieces of hardware like my Drobo or ScanSnap.

Syncing Data

The advent of cloud services has made setting a computer up from scratch much easier than it was in the past. Most of my data automatically gets synced over to my new machine without much action on my part.

The vast majority of my data lives in Dropbox, that’s taken care of already. I keep my photo library in iCloud, but I like having a local copy on my machine. I’ll launch the Photos app and tell it to start downloading my pictures. I keep a few documents for my OmniGroup applications in their OmniPresence cloud storage system, so I’ll download the OmniPresence client and get those synced over.

There is some data I prefer not to keep in the cloud (tax returns and the like). I fire up my old Mac or connect a clone backup of the old hard drive and copy these things over from my Documents folder.

The tricky bit are the important bits of data that don’t live in the cloud or in my Documents folder. Things like Hazel actions and Automator scripts. Hazel in particular is a bit tricky since it really prefers that you export your actions on the old computer and then import them on the new one. When the old Hazel installation just got paved over that’s kind of hard. In one instance I ended up booting my MacBook Pro from a clone backup6 so I could launch Hazel and export all my actions.

Backing Up

Given how important my backups were when I had to unexpectedly repave my Mac mini, getting things backed up is a priority. Going through my whole backup strategy is an article in and of itself, but I’ll lay out my backup priorities with a newly set-up Mac.

Step one is Time Machine. This is the easy button when it comes to backing up a Mac and it’s a good first step.

Next up is my online backup service, Backblaze. They have a neat feature called “inherit backup state” where you can just point your computer at an existing online backup. This is great if you have lots of data already backed up in the cloud. Unfortunately, I found it a bit hit or miss. When I reformatted my Mac mini it didn’t work, so I had to start the process of uploading all my data to the cloud from scratch.7 It did work fine on my MacBook Pro, and I was able to point the new iMac and the Mac mini’s backup.

The last step is to clone the hard drive to an external disk. The key here is not to immediately reuse the same disk you were backing up to before. Keep that one on the shelf for at least a couple of months. You’re likely to run in to some bit of data that you need and forgot to transfer over during this process. Hard drives are cheap, pick up a new one.

Conclusion

Setting up a Mac from scratch is a bit of work, but it’s a good thing to do every once in a while8. It’s an opportunity to get rid of some cruft and rethink how I do things. I figure if I do it right, the time I spend will pay dividends down the line.


  1. Reformat the hard drive and reinstall everything. 
  2. As is often the case, there’s a Mac Power Users episode that’s a good reference for this. 
  3. You do have backups, right? 
  4. Even after booting into the recovery partition and using disk utility from there I couldn’t get rid of the Boot Camp partition. 
  5. Mailplane and OmniOutliner 
  6. Running macOS off of an external spinning hard drive is sooo sloooow. I should look into getting an SSD for my clone backups. 
  7. Particularly painful given that the Mac mini has a couple of terabytes of external storage hooked up to it. 
  8. Three times in three months was a bit much though. 

Analog Task Management

Third in a series on task management. Read part 1 and part 2.

For many years my task management system has been all digital. Recently, though, I’ve taken to supplementing it with some analog tools.

Field Notes Day Planner

As I mentioned in my post on OmniFocus I have trouble picking out what to work on when my task list gets too long. I try to filter my task list in OmniFocus down to a manageable subset that I use to pick what to work on, but there’s a balance to be struck between getting the list down to a manageable number of choices and not cutting it down so much that things slip through the cracks.

To help deal with this I started coming up with a list of my important tasks for each day. Every day before I leave work I come up with my major task list for the following day. For both technical reasons1 and because I thought it might introduce a bit of deliberation into the process (and a physical limit on how many tasks I could write down for each day) I decided to go analog.

I use a little Field Notes notebook. Each day gets a pair of facing pages. The date goes at the top of the left-hand page and underneath it I write my major tasks for the day. Depending on how full my schedule is and how big I think the tasks are, there are usually 2-5 tasks. One of them is usually a deep work type task that I’ll work on in the morning.

Many of the major tasks are lifted right out of my task list in OmniFocus, but sometimes a major task for the day might represent a series of smaller actions from a project I want to make progress on.

As I go through the day I use bullet journal type markings to check off the tasks I get done and mark those that did not get done and got deferred to a future day.2

The other thing I’m trying out in this analog system is to schedule my time during the day. I’ve heard this advice many times, but it always seemed too restrictive until I read Cal Newport’s explanation of how he does it in Deep Work. This inspired me to give it a try.

On the right-hand page I write the hours of the day every other line, so each line represents 30 minutes. I copy over the “hard schedule” items from my calendar (meetings, appointments, etc.) in red ink. I block out the rest of my day in pencil. When I’m doing this I usually start with the stuff that’s pretty regular from day to day (hard schedule permitting) like doing email after lunch and planning out tomorrow’s schedule before I leave. With the remaining time (and some days there isn’t much of it) I block out time for the major tasks I wrote down on the left-hand page. Sometimes this prompts me to rethink how many of those major tasks I can actually get done in a given day.

Writing the items that aren’t part of my hard schedule in pencil is a deliberate choice. I’m generally a ballpoint pen guy when it comes to writing, but the schedule needs to be flexible because, inevitably, things will come up and it will have to change. Using pencil is both a philosophical declaration that this is subject to change and a practical choice so that I can make those changes without turning the page into a complete mess.

Listing my major tasks and planning out my schedule has been a boon for me so far. It requires an investment of time and effort up front, but I spend a lot less time staring at OmniFocus and trying to decide what to work on next and I’m less likely to get distracted by something if I’ve got a schedule that says what I’m supposed to be doing at that moment.

The Big Board

One of the issues with the way I practice Getting Things Done is that the very task oriented approach doesn’t always give the best high level overview of the project.3 It can take some effort to sort through my list of “next actions” for a project and translate that into where I am with the project as a whole.

I’ve had a whiteboard in my office since I started working at my current job, but rarely put it to any use. A few months ago I decided to see if I could use it to help me get a higher level understanding of where my many projects stood.

I printed out a list of all my projects in a nice big font and taped it up on the left side of the board. On the whiteboard itself I wrote in the next step for that project with the date for that step (if there is one) over on the right side. By “next step” I mean something at a higher level than the GTD-style “next action”. For instance, the next step for a project might be a meeting with the people involved, which would have a series of actions associated with it (do a Doodle poll to set a date for the meeting, reserve the room, set the agenda and send it out, etc.).

Being able to see where I am with all my projects at a glance is very useful. I’m responsible for quite a few projects and many of them are long term who’s deadlines are many months or years away. It’s important to make sure I keep making sufficient progress on these projects and don’t let all my time get sucked up with things that have short term deadlines. The whiteboard does a good job of helping me set priorities for what I need to be doing on these projects to make progress towards the long term goal.

It’s early days yet for both of these analog tools, but so far they seem to be useful additions to my task management system.


  1. OmniFocus only supports one level of flagging (either a task is flagged or it isn’t) and I was already using that functionality to create a 15-20 item subset of my larger tasks list that I draw from for my daily list of major tasks. 
  2. Tasks that are done get an “X” and those that don’t get done and are pushed to a future day get a “>”. 
  3. I should emphasize that this is largely a problem with the way I implement GTD. David Allen has some good stuff in his book on taking a higher level view of your projects (and your life) but that’s part of the system that I don’t really make enough use of. 

OmniFocus

Second in a series on task management. Read part 1 here

In my previous post I talked about how I use David Allen’s Getting Things Done system for task management. You can implement GTD in many different mediums, from pencil and paper to a wide variety of software. When I first started with GTD I ran my system on vertically ruled index cards. However, I discovered that I had enough complexity in my life that it quickly overwhelmed my index card based system. I moved over to OmniFocus and I’ve been there ever since.1

OmniFocus is specifically built for GTD and it implements all of GTD’s fundamental concepts: projects, contexts, weekly review, etc. One of the most important features for me is that it’s available on the Mac, iPhone, and iPad and syncs seamlessly between them.

Quick Entry

One of the things that’s important to me is making it as easy as possible to enter tasks. On the Mac OmniFocus does a great job of this right out of the box. It has a quick entry box feature that will pop up ready to receive a task when you press a particular key combination (mine is Ctrl + Option + Space), regardless of what app I’m in at the time. Sometimes I’ll enter all of the details of the task in the quick entry box (Context, Project, defer or due dates), but often I’ll just put enough in there to remind me what the task is supposed to be. OmniFocus will hold the task in it’s inbox until I get around to processing it and adding all of the details.

OmniFocus has a quick entry feature on iOS as well, but it’s nowhere near as useful. Rather than just a quick keyboard combo, I’ve got to open the app and hit the quick entry button before I can start typing. Entering additional details requires navigating through lists of projects and contexts and using the iOS date picker. It’s well designed and uses iOS interface elements well, but for a long time I wanted an experience more like what I could get on the Mac.

Recently I switched over to entering my tasks using the Drafts app. Launching Drafts automatically opens up a new document with a blinking cursor ready to type. It integrates with many different apps, including OmniFocus; allowing me to send whatever I type to OmniFocus as a new task. I actually have two actions set up to send to OmniFocus, one just adds the task, the other specifically adds it to my Work context..

It’s possible to include a due date with a task as well, by putting “@due(today)” after the task (the “today” can be replaced with a specific date or a number of days or weeks). The problem with doing this in Drafts is that the parenthesis and “@“ symbol are more difficult to access on the iOS keyboard. Thankfully, Drafts supports TextExpander snippets. I set up a snippet that replaces “xdue” (which can be typed without any special characters on the iOS keyboard) with “@due( 5pm)” and places the cursor right after the opening parenthesis. So I can type “xdue” and then enter a specific due date or the number of days.2

Defer Dates and Dependencies

One of the best features of OmniFocus is the ability to defer a task. By giving a task a start date sometime in the future it won’t show up in the task list until that date arrives. This is a great feature for keeping stuff that I can’t do anything about right now out of my main task list. I use it all the time when I need to follow up with somebody in a week, or when a task can’t be started until some future time.

OmniFocus also offers the ability to make all of the tasks in a project sequential, so the second task in the project won’t appear in your task list until the first task has been done. This is useful when you’ve got dependencies where a subsequent task can’t be started until you’ve done the previous one. I do wish they had a more flexible system for this, allowing me to make one task dependent on another, rather than having to make the entire project sequential.3

Triaging the Task List

One thing I’ve always struggled with is keeping my task list manageable. OmniFocus can hold huge numbers of tasks, but I can’t deal with that many at one time. When I get too many things on my task list it makes it hard to pick out what I need to be doing right now. I find my limit is about what OmniFocus can display without having to scroll the task list to see everything (15-20 tasks depending on screen size). Defer dates and sequential projects can help with this, but I still have more things that I could be doing right now than I can easily choose from.

The solution I’ve found is to prescreen my task list and create a subset of tasks that I’ll actively consider when deciding what to work on at any given moment. I’ve tried a bunch of different ways to implement this concept in OmniFocus and they’ve all had issues. As Churchill reputedly said, “Americans can always be counted on to do the right thing…after they have exhausted all other possibilities.”4 I can’t say I’ve gotten around to the right way of doing this, but here are some of the other possibilities that I’ve exhausted:

My first approach to this was to use defer dates. I would go into OmniFocus every morning and defer all of the tasks in my task list that weren’t in the subset that I wanted to work on that day. This was rather fiddly and time consuming. In particular, it was hard to implement on iOS, where you have to defer one task at a time (on the Mac you can select a bunch of tasks and defer them simultaneously).

After giving up on the mass defer option, I started using due dates to create the subset of tasks that I was going to pick from. I’d go into OmniFocus in the morning and set the tasks I was interested in to be due that day. This was a bit less fiddly because I only had to set dates for the smaller subset of tasks that I wanted to pick from, but it was still pretty fiddly. It also made it hard to distinguish stuff that had an actual hard deadline from stuff that I had given an arbitrary due date to.

My current method is to use OmniFocus’ flag feature to create my subset. It’s less fiddly since I only have to set the flag for a task once, rather than having to create the subset anew every day. The disadvantage is that since I’m not forced to actively curate the list every day it has a tendency to grow over time, which kind of defeats the purpose of having a small subset of my task list. I’ve recently taken to supplementing this by using a paper notebook to plan my day better, including both tasks and my schedule, but that’s a different article.

An Essential Tool

OmniFocus has really become an essential tool for me. Going back to grade school, things like remembering homework have always been a struggle for me. Since then my life has grown a lot more complex, and having a powerful task management tool is the only way I can keep thing from slipping through the cracks.

Next up in the task management series: analog task management with a notebook and a whiteboard.


  1. Nine years. 
  2. The “5pm” is in there because when you send OmniFocus a task from Drafts with a due date, the default time for the task to be due is 12am (unlike when you enter a task in the OmniFocus app and the default due time is 5pm). So I’ve set up the TextExpander snippet to pre-populate a 5pm due time. 
  3. Although you can set up a subproject inside of a project and make just the subproject sequential, it’s a bit clunky. 
  4. I was disappointed to find the attribution to Churchill is probably apocryphal. It seems like a very Churchillian thing to say. 

PDF Reading Workflow

One of the things I’ve been rethinking recently is how I handle PDF documents. There’s a larger story here that covers long term archiving and search, but right now I want to concentrate on just one particular workflow: receiving and reading PDFs.

Previously I was rather ad-hoc about this, but if my practices could be distilled into a workflow it would have gone something like this:

  • Receive an email with an attached PDF or a link to a PDF document online.
  • Use the OmniFocus Mail Drop to create an OmniFocus task with either the link as a note or the PDF document itself as an attachment.
  • Open the PDF from the OmniFocus task and read it (on one of many different devices and apps).

This had a couple of disadvantages. If I attached the PDF, it took up space in my OmniFocus database. If I linked to the PDF online, it might move or be taken down in the (sometimes substantial) time between creating the task and when I got around to reading the document. There was no permanent archive of PDFs that I’d read, they were scattered around different apps on my iPad and Mac.

For some of those larger reasons mentioned above I was looking at using DEVONthink as my primary PDF repository. As part of this process I was casting about for a way to easily add PDFs it and create corresponding tasks in OmniFocus. The difficulty of this was compounded by the fact that my initial contact with email containing PDFs is usually on my work PC, a machine that can’t run either DEVONthink or OmniFocus.

But I think I’ve found a solution.

  1. Dropbox – My work PC does run dropbox, so I can save the PDF to a folder in my work Dropbox account. When I do this I also rename the PDF to something sensible (the filenames of many of the PDFs I receive are pretty cryptic). This folder is shared with my personal dropbox account on my Mac.
  2. AppleScript – On my Mac, that Dropbox folder has a Folder Action Script attached to it. The script adds the PDF to DEVONthink and gets the x-callback-url of the item. Then the script creates an OmniFocus task. It names the task “Read” followed by the PDF filename and includes the DEVONthink x-callback-url in the notes field.  You can find the AppleScript here.
  3. DEVONthink – Eventually I’ll file the the PDF in the appropriate group in DEVONthink. Importantly, moving the document around within DEVONthink won’t break the x-callback-url (it’s associated with that particular document, not that document’s location within DEVONthink).
  4. OmniFocus on iOS – When I’m ready to deal with some of my accumulated reading material I’ll open up OmniFocus on my iPad and find the task synced over from my Mac. Opening up the notes field and touching the x-callback-url will launch DEVONthink To Go.
  5. DEVONthink To Go – The URL will take me directly to the PDF in question. While I could read this right in DEVONthink I’ve been enjoying LiquidText (particularly the new 3.0 version with advanced Apple Pencil support). So I use the share sheet in DEVONthink To Go to send the PDF to LiquidText.
  6. LiquidText – In LiquidText I can read the PDF, highlight, excerpt relevant portions, make notes, etc. When I’m done I can share updated document with my markup back to DEVONthink To Go using the share sheet.
  7. DEVONthink To Go – DEVONthink To Go is smart enough to recognize the marked up PDF as a modified version of the original. It gets synced back to DEVONthink on my Mac.
  8. OmniFocus – I check off the task to indicate I’m done reading that document.

This workflow improves on what I’ve been doing it a couple of ways. It automates the OmniFocus task creation, it gives me a local copy of the document tied to the task while storing the PDF someplace more sensible than my OmniFocus database, and it creates a pathway for long term storage of both the original PDF and my notes about the document.