Backup Strategy

When I got my new iMac, I took it as an opportunity to revisit my backup strategy. I’m pretty religious about having good backups and they’ve saved my bacon more than once.1

There are lots of different ways of backing up your data. You can use Apple’s Time Machine, clone your hard drive, subscribe to an online backup service, manually copy data to external drives, back up to network attached storage, and so on. Lots of people will extoll the virtues of one or more of these options. However, rather than starting with the backup techniques themselves, I find it more useful to start by thinking about the problem you’re trying to solve. Decide what threats to your data you are concerned about, then pick backup techniques that address those threats.

So, what threats am I trying to mitigate with my backup strategy?

Oh crap I shouldn’t have deleted that!

The most common threat to my data isn’t theft, or fire, or hardware failure; it’s Command+S. I’ll make a change to a document and save it, then realize that the change got rid of something I wanted to keep. Or I’ll delete a file and empty the trash before I realize that it was the wrong file. Either way my actions are more of a threat to my data than anything else.

The simple solution to this is Apple’s built-in Time Machine software. It lets me go back and resurrect old versions of my data before I mistakenly deleted something.

In the past I’ve run Time Machine over the network, either to an Apple Time Capsule or to a share on my Drobo 5N. Every so often, however, Time Machine reports that it needs to get rid of my old backup and start again. With my move to a desktop Mac I decided to switch over to using a directly attached hard drive for Time Machine. So far this has been working well, but I haven’t really used it long enough to tell whether it’s more reliable than doing it over the network.

Oh crap my hard drive just died!

After my own incompetence, the next most likely cause of data loss is some sort of hardware failure. Either the hard drive dies, or my whole computer fails. Time Machine can help with these sorts of situations but it’s not optimal. I would have to get a new drive (or a whole new computer), reinstall the OS and then restore my data.

A better solution is to clone my Mac’s hard drive to an external drive. This way if I have a hard drive failure I can get back to work right away by booting my Mac off the external clone drive and pick up right where I left off.

I use Carbon Copy Cloner to do this. CCC figures heavily in several parts of my backup strategy, and I think it’s a piece of software every Mac user should own.2 Every night CCC clones my iMac’s hard drive to a 1tb external drive. CCC will make this software a “bootable clone”, setting it up so I can boot directly from the cloned drive (unlike a Time Machine drive).

The one potential issue I have with my current setup is that the external drive I’m using is a spinning hard disk, so when I boot my Mac from the external drive it’s very slow compared to running off my nice fast internal SSD. I’m considering whether it’s worth buying an external SSD as my bootable backup instead.

While my most important files are on my iMac’s hard drive, I also want to make sure all the data on my Drobo network attached storage are backed up. I have CCC set up to clone the Drobo as well. Right now I’m actually using two separate clone drives, one for my iTunes library and one for other data. This is primarily because I outgrew both the original drive I was using for this and the larger drive I got to replace it. So now I’m using both the original drive and the replacement in combination. I use Carbon Copy Cloner to clone my Drobo to these drives on a weekly basis.

Oh crap my house just burned down!

While a house fire is the notional threat here, it’s really a stand-in for any disaster that takes out both my Mac and the various backups on external hard drives I have sitting in my office. It could be a fire, flood, tornado,3 or theft. The solution is to have some sort of off-site backup. For a long time the only way to do this was by physically carrying a backup hard drive somewhere else. This sort of thing is obviously a bit of a pain, so most folks didn’t do it very often (if at all). The advent of high speed internet connections and cheap cloud storage has created a much better solution: online backup.

There are various services out there, some that will store your data for you, others that will back your data up to your own cloud storage service, or even a computer at a different physical location. I use Backblaze, which provides unlimited cloud backup for a yearly, per-computer fee.

One limitation with Backblaze is that it will not back up network attached storage, only drives that are directly attached to your computer. This is where the clone backups of my Drobo come in. Because these cloned hard drives are directly attached to my iMac, Backblaze will back them up. This does mean that my backups of stuff off the Drobo will be up to a week out of date since I only run the Drobo clone job once a week, but the stuff on my Drobo doesn’t change that frequently.

One limitation with online backup is the 1tb per month bandwidth cap that my ISP has recently imposed. I ran into an issue that required restarting my Backblaze backup from scratch when I reformatted my Mac mini, and it will be several months until I have everything uploaded to Backblaze again.

Oh crap I’ve got ransomware!

The most recent threat to my data is ransomware, malicious software that infects computers and encrypts all your data so you can’t access it until you pay the person who coded the ransomware for the decryption key.

The problem with ransomware is, depending on how cleverly it’s written, it can potentially corrupt any backup that can be reached from your computer, including network attached storage, external hard drives, and even online backup. The solution is to have a backup that’s not attached to your computer.

The most recent addition to my backup strategy is a “rotating shelf backup”4. I have two large external hard drives and every week I’ll connect one of them to my iMac and clone the iMac hard drive and my Drobo 5N. Once the clone is done, I’ll disconnect the drive and put it on the shelf. The two drives alternate every other week. By using two drives, I ensure that even if I was hit by ransomware while doing the clone, I’ve still got a copy of my data on a drive that’s not connected to my Mac.

Oh crap I forgot that file when I reformatted my hard drive!

Most of these backup strategies are intended to make sure I have as recent a copy of my data as possible. However, there are times where I want to make sure I’ve got an old copy of my data. Whenever I decide to nuke and pave5 I’ll use CCC to back up the computer to a a disk image on my Drobo. This gives me a copy of my data that can hang around for months or years, long after my Time Machine, clone backup, and online backup have been written over with data from the newly formatted drive. This has saved my bacon a couple of times when I realize that there was an important file stored in some odd location that didn’t get copied over to the newly formatted hard drive. I’ll do the same thing when I get rid of one of my computers.

Do I really need to do all of this?

The truthful answer is probably not. This is a pretty heavily optimized backup strategy. Most of these techniques protect against multiple threats. If a hard drive dies you can recover from Time Machine or an online backup, for instance. A clone backup is easier to recover from, but it’s not the only way. You could protect against all of these threats with just Time Machine and a clone backup that you stash at a friend’s house. But that isn’t going to be as quick or seamless as having strategies optimized for each threat, nor does it provide as much redundancy.

I’m trying to have the best possible solution for each of these potential issues. This means when I do have a problem, I’ll be able to get back up and running with a minimum of fuss, but it’s more effort on the front end.

I would say that as an absolute minimum, you ought to have two different types of backup, one of which should be offsite. There’s nothing like suffering a hard drive failure and then finding out there’s a problem with your backup. As the saying goes, “two is one and one is none.” The easy button for most people is probably Time Machine and a service like Backblaze. Regardless, have a backup strategy and test it periodically.


  1. For instance when I unexpectedly needed to erase and reformat my Mac mini. 
  2. SuperDuper has a similar feature set, but I prefer Carbon Copy Cloner. 
  3. Here in Kansas anyway. Depending on where you live substitute in a hurricane, earthquake, wildfire, or whatever the local natural disaster is. 
  4. Does that make it a “lazy susan backup”? 
  5. Reformat my hard drive and set that computer up from scratch. 

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.