TECHNOLOGY NOTES

Find Me

Search

Categories: gtd

A Taskpaper Today Perspective

One of the best things about OmniFocus is Perspectives. It is something I relied heavily upon during the time when I was using it and, after moving to a text-based method of tracking tasks and projects, it was one of the few things I missed.

It is pretty easy to make do with not having a Perspective like this on the Mac. You can run some Sublime Text commands like “Fold with Regex” or “Find with Regex” to track down and filter the things you need to do. On iOS, however, the need is a bit more tailored. If you want to see your tasks across multiple taskpaper files, you need to open Editorial and check each one, filtering as you go. It was not ideal but since the overall need was being met, I didn’t mind that much.

A few weeks ago, I started thinking about a way to skim through all of my taskpaper files, adding target tasks to a single file which would be a static form of my OmniFocus Today perspective. This way, I would only need to focus on one file in Editorial to see what I had to do on a given day. I wasn’t editing the files in Editorial for the most part anyway. It was just a window into the taskpaper files that were tracking everything.

I’m not really a guy who writes code anymore. I used to write it like it was my job1 but as I moved to more managerial positions, the opportunities to write code grew less and less frequent. That is a preamble to the presumably-awful code stored in this gist:

Python Today Tasks Perspective

Here’s what it does:

  • Open up whatever taskpaper files you want to add to your daily “Today perspective” file, called “tpToday.taskpaper”.
  • Start building the text for a new file.
  • First add a timestamp. This helps you know the file was generated recently in Editorial. It is more for debugging than anything.
  • Loop through your taskpaper files and look at each line.
  • If it is a project, remember it.
  • If it is a task and matches a target regex (see below), check to see if it is a different project from the last one
  • If so, add the current project name (from the last step) and then append the task otherwise just add the task to the file.
  • After all files are read, stream the new contents to the tpToday.taskpaper file.

The way I am determining if a task makes it into the file or not is via this regex line. It is built up via trial and error and some feedback from a reader (thanks, Thomas!)

"((@+\\bcritical*)|(@+\\btoday*)|(@+\\bhigh)|(@+\\bdue\(" + today + "\)))(?!.*@done)"

Eventually, I will add some code to look at the dates and find all overdue tasks with dates prior to today’s date too. Baby steps.

The result is a list of tasks organized by file, then organized by project. You can skim through them easily and quickly. The addition of the file and project names keeps you anchored and oriented in a way that a simple line-filtering routine from within Editorial wouldn’t accomplish easily.

Now that the script was working, I created a job on my Mini using Lingon that triggers when my taskpaper files change.

So far, this has has been working for a few weeks and it has been really helpful. Once the date math is added, I’ll have the exact view of my tasks and projects that I had in OmniFocus. It went against my “stop fiddling” mantra but it is actually saving me a lot of time going back and forth between files so it was worth the effort.

I was reticent about using an automated task to handle this – checking for file changes every x minutes seemed like a lot of needless overhead. Thankfully the Lingon option to fire a task when a file changes is a perfect compromise.


  1. It was. 

Macdrifter — PlainTasks for Sublime Text 3

Relevant to my current interests (Sublime Text 3 and PlainTasks), Gabe posted yesterday that a new version of PlainTasks was released and it has some really cool new features.

If you have been monkeying around with the “one hammer” approach I have been taking to task management lately, this will give you a few more ways to help you organize your task list in ST3.

OmniFocus 2 for Mac Beta Notes

I wanted to post up some quick notes on how the OmniFocus 2 for Mac beta is progressing.

I’ve been an avid user of OmniFocus for Mac for years. I felt like I had “graduated” from Things because the way Omni Group implemented functionality like Contexts really made sense to how I saw the world. After years of using OmniFocus for Mac, it became like a refrigerator – something that was always doing what it should be doing and I didn’t have to think too much about. Omnifocus had melded itself to the process to the point where the process and the tool were one thing. It was an ideal situation.

With the release of OmniFocus 2 for iPhone, I felt Omni Group was taking things in a strange direction. Gone was a utilitarian design that did its job admirably but maybe at the expense of some design elegance. In its place was attractive screens of indescriminate loops and dots. I felt that “cute” design had taken the place of functionality and clarity. The circles that were meant to speak to me intuitively were clouding the information I had come to expect to be present at a glance.

To be willfully dense for a moment, I’ll share a screenshot that illustrates a few of the issues I have. It is taken from the OmniFocus 2 beta for Mac but the circles are the issue here so I’m going to use it.

What does this circle describe to you? The orange top half indicates caution… maybe? The little banner means it is flagged and that appears orange so maybe the top half of the circle is underlining that point? What about the red underside of the circle then? Maybe its overdue? I can’t really tell without more information. There’s three dots inside the circle. Does this indicate it is one task in a line of sequential tasks? An ellipsis intuitively says to me “I’m waiting for something…” rather than “I’m going to do this again at some point.”

Visual design elements are meant to convey information without a lot of textual cues but the modes being employed here aren’t conveying anything to me upon first glance other than there are a lot of colors and probably some things I need to pay attention to. They don’t tell me what I need to do with them or even if I should do anything about them. This is because task management is hard. Each task can have several states, dates are associated with tasks that can defer them, indicate their lateness or fit them into a larger project context. I need to know who a task is assigned to, where it needs to get done, if it is part of a sequential or parallel project and if it is recurring or a singleton.

Herein lies the problem – Omni Group makes an admirable attempt to distill task management to something visual but it ends up creating a confusing and colorful soup when you use their latest efforts for what I’d consider a “professional” level of use.

I’ll admit the latest beta of OmniFocus 2 for Mac has grown on me over time. Each build makes it faster and more stable. The friction that I was inviting by trying other things was slowing me down even more than learning the obtuse circle-based task management systems OmniFocus 2 provides.

To their credit, Omni Group listened when users asked for less white space in the main interface so we could pack our tasks in tighter and see more of them at once. My tried-and-true “Today” perspective has almost been replace completely by Forecast view which is quite helpful. It is moving towards a version of the application that I can use to manage the dozens of mission-critical projects I’m expected to deliver.

At this point, happily I’m more optimistic that I was eight months ago. After the first beta ended and when I abandoned OmniFocus 2 for iOS because of the confusion of the circles, I was ready to find a spiritual successor to OmniFocus and move on. That effort didn’t prove easy. There are still some great ideas floating around out there, with TaskPaper-based solutions being among the best on offer, so we’ll see what the next few months bring. For now, I’ll keep using the OmniFocus 2 beta and, fingers crossed, we’ll eventually be using the next generation of productivity tools to finish the projects that need to get done.

Kill Your Darlings - Thoughts about Plain Text Task Management

The other day, Gabe over at Macdrifter started a series of articles that will get to the root of how he manages his tasks. There are few topics I have thought more about than task management since I started this website. It is integral to how I do my job and, once GTD demonstrated its ability to solve my difficult work problems, I naturally started applying what I learned to every aspect of my life.

While Gabe’s take may seem, upon first read, to be overly ambitious taking a from-the-rivets-up approach like his is really the only way to approach it. I have undertaken a few attempts to replace OmniFocus in the last couple of years, partially sharing Gabe’s frustrations but also just to peer deeper at what makes my process tick. What I’ve found during those forays into madness is that it turns over every stone you have based your organizational life on. It sounds extreme but the whole point of a GTD system is that it become ingrained, automatic and habitual – it has to be those things if it is to work. Changing the thing that is the foundational layer of your system is disruptive and time-consuming.

I’ve tried other systems but they have never felt as satisfying as OmniFocus. It was the first task management system that I felt “got” me. It did things the way I would expect them to happen, so it made it very easy for me to groove good habits. The success fed on itself, making the tool more and more effective as months wore on. The other tools that were in the running never quite had the features I felt I needed when trying to find an OmniFocus replacement.

I think my problem was that I was trying to replace OmniFocus rather than replacing what I do to manage my projects and tasks. That’s why the cellular-level exploration happening over at Macdrifter is so compelling. That said, the end result might be something that works great for Gabe and, despite being plain text and A-OK by me, still won’t be able to do what I need it to do on a daily basis to manage my life.

As Gabe himself says:

There will be no satisfying conclusion for anyone other than me. A task management system is not as generic as the self-help app market would like us to believe.

I could not agree more. Despite his caveats, I will be watching Gabe’s valiant attempts to reengineer his process very closely. At the very least, I am going to let it challenge every assumption I currently make regarding my current task management solutions and, if pieces of it look like they might work better than what I have, I look forward to integrating them into a personalized system that makes me a better, more organized person.

Arrival Fence Contexts for OmniFocus

After listening to the latest episode of Back to Work, it got me thinking about how I use “Arrival Fences” in OmniFocus. I clearly rely on them less than Merlin. That’s likely caused by a few reasons – I don’t live in the city and I rarely run errands that require that type of location savvy.

I do use the location aware features of OmniFocus however, just in a very targeted way.

Throughout the day, whether at home or at work, I’ll think of things I need to do at whichever one of those places I don’t happen to be located at presently. If I need to remember to do something at home while I’m at work and I can’t forget, I always had trouble putting a reminder in a place that I would notice. Maybe I’d write it on a note and put it with my car keys or house keys. Sometimes I’d email it to myself and hoped that I would check email when I got to my destination. You get the picture; it always felt kludgey and rarely worked well.

I didn’t want to set up geofences for my main “Home” and “Work” contexts because I had dozens, maybe hundreds, of tasks nested under those contexts that would have popped up when I arrived.

My workaround focused on making sure the tasks that pop up at a location are actionable at the time I see them. In each one of my common destination contexts (“Home” and “Work” for now), I created an OmniFocus Context called “Arrival Fence” and I mapped it to a small circle range around each spot on the map.

Using these contexts is a simple affair. Whenever I have a task that I must be reminded of when I get to one of those areas, I assign the task to one of those Arrival Fence contexts. That way, a targeted and location-specific notification pops up and it is really hard to miss.

Going Deep

Contexts? Got it.
Projects? Easy stuff.
Start dates to control task visibility? For babies.
Weekly reviews? Sure…no prob..um well?

When you’ve been doing GTD for a while, or just managing your tasks using a pad and paper, the process becomes nearly automatic. You trust your capture device, you trust the system and you just move on with living your life. That’s where everyone who reads this type of website wants to end up – getting things done [1] with as little effort as possible, exhibiting less forgetfulness, letting less people down, feeling less inadequacy as a person, gaining the feeling of forward momentum.

The steps you take to reach this state are often hard won because the initial evaluation process is difficult work. It feels heavy and it makes you take a careful look at your choices of priority. The result will serve as a guide for how you go about your day without feeling like a failure.

The thing is, once that algorithm of a workflow is solved for, the simple fact is you are just “winding the clock” every day. There is nothing beyond that. In a sense, despite having this vast list of sorted tasks and projects, what you end up with is the fact that the process is the goal. There will be no secret handshake when you get to work; just a trajectory that will get deflected over and over again throughout the day. Your finely-tuned “workflow” is just a thing you use to keep the trajectory aimed somewhat on target.[2]

When you turn off the computer and walk out the door at the end of the day, confetti won’t fall from the ceiling. The number of tasks you crossed off the list can’t, or shouldn’t, be the determining factor in whether or not you had a good day. Sure, it feels good to get through a list of stuff and crossing off tasks is the backbone of the system we are working with, but it isn’t binary. We arent a success or a failure based solely on our ability to cross off those things we “needed” to do.

Life is messy. We are often doing things that rely on other people and they are in the same boat as we are. We all feel like we are pulled in too many directions and since those we rely on are trying to cross things off of their list, it will invariably result in missed targets. That’s ok. Take that into consideration when you undertake the perilous decision to take stock of your day’s sum total.

So what is “Going Deep”?

“Going Deep” is something I say to myself to serve as a reminder that I will almost never hit what I’m aiming for. All of the pencil-sharpening and task management is a way to provide perspective around the fact that that is just fine.

“Going Deep” is a nod to the mindset when I realize that the tools I have are perfectly adequate. I have reduced the friction I need to in order to feel like I’m not constantly battling my process and I have made the commitment to capturing everything in one place even if a new app might bring a shinier bell to ring or a prettier (non-blue) icon in my iPhone dock.

It means going deep enough into my process that I know when it is too much; when I’m going too far. The “Purchased” tab of my App Store app is littered with the evidence of me not really taking this to heart often enough. I think many of you will see a lot of this trait in yourselves as well.

The weird thing is I don’t know whether it is discipline or laziness that ends up stopping the constant seeking. One thing is for sure though: you will never get to any sort of equilibrium if you give up. It is entirely possible to replicate the guts of OmniFocus in a plain text file or with tablet and paper. The key is getting your process so deep inside that the instinctual, ingrained habit won’t leave when you are eventually forced to make a change.


  1. Right? I mean there’s a purpose to all of this isn’t there? Not just reading my scintillating and enlightening wordsmithing? ↩

  2. And even that target is just something we made up for ourselves as “progress”. ↩

An OmniFocus Post

A few weeks ago, Gabe Weatherhead invited me onto his Generational podcast to discuss task management and OmniFocus. The conversation covered a lot of interesting task management topics and covered some of the things that work (and don’t work) with GTD.

I love kicking ideas around like this and it was interesting because it was clear that Gabe and I have dissimilar use cases even though we do a lot of similar things for a living. How you fit OmniFocus and GTD into your work and life can vary greatly and the key is finding out what works well for you and what you can leave out. The key is being experienced enough to not throw an essential baby out with the proverbial bathwater and that’s where things get tricky.

The podcast was wide-ranging and covered a lot of the nuances of how we use GTD to actually get things done. Oh and stay tuned because there’s a lot more great stuff coming up on Generational.

Thanks to Michael Schechter for listening as well as his comments both on his blog and Twitter. I thought he summed things up really well with this quote [1]:

In a recent episode of Gabe Weatherhead’s Generational podcast, he was talking to Jeff Hunsberger about the app. Jeff was sharing how flexible the app is, while Gabe commented that he occasionally finds himself frustrated by its rigidity. I think that the truth lives right between those two statements, that OmniFocus is flexible as to which rigidity you settle on. You have to choose a way to use the app, even if that means accepting a few trade-offs along the way, but when you take the time to find a way that works works for you, I doubt there’s another application that comes close.

  1. This is a classic post, by the way. ↩

Gridwriter's OmniFocus Series - Contexts

Rob has posted the first of what is, hopefully, a multi-part series on how he uses OmniFocus. If the initial effort is any indication, we’re in for a wild ride.

Nice one, Gridwriter!

Hazel Rules for a Paperless Office

After reading the post yesterday about my paperless office, Twitter user @bhdicaire asked me if I could post some of the rules I use in both TextExpander and Hazel to keep my paperless office setup humming.

Here are a few:


The rules are pretty simple. I don’t have a lot of directories that things get filed into but it is key that you can find things easily once they’re filed. Don’t create folders that are too deeply nested or you’ll run into trouble.

I have about 30-35 Hazel rules set up to handle almost all of the variations that come in via scanner. The rest are handled through two simple TextExpander rules that set up a file name based on month or day. I just modify them with keywords to help Hazel figure out where they go afterwards.

I hope this little excursion into my brain wasn’t too terrifying.

My Paperless Office - One Month Later

A couple of months ago, after reading David Sparks’ Paperless, I started concocting a plan to create a paperless office. If you want the quick version of this story, here it is: It took some elbow grease, money and planning but now I have a workflow that is nothing less than magical.

I started with a large filing cabinet of old papers. Insurance documents, car documents, bills, receipts, health insurance information, and other detritus were cluttering up its many overflowing folders, stuffed into drawers. The filing cabinet weighed a ton and I knew that some very old and unnecessary documents were lurking inside.

The plan was to reduce this mess to something that was simple to maintain, even though it would take no small effort to set up. The resulting workflow had to be backed up, secure and easy because if it took a lot of sweat to get files into the system, I knew it would fall into disuse and eventually abandoned completely.

The parts of the workflow that took shape were these:

  • Document scanner
  • Hazel rules
  • TextExpander
  • Shared folders
  • A Mac Mini
  • Knox
  • CrashPlan
  • Time Capsule

Workflow Overview

The basic idea was to be able to open my Macbook Air at my desk, open my document scanner and send the document digitally to a shared machine. At that point, the file would be appropriately named and filed in a nested folder on a secure (encrypted) drive volume which is then backed up in a verified backup system.

The keys to the system were to be simplicity, portability (using PDF), security (using Knox) and flexibility (using Hazel, shared folders and TextExpander).

The Scanner

For years I’ve procrastinated about creating a paperless office. One of the reasons was that I wasn’t sure of what the best scanner technology was. Buying a scanner is expensive and, if you pick the wrong one, you’re kind of stuck. Putting hours of thought into something that encompassed so many steps was something that was difficult to get my head around.

I decided that the scanner was the first piece of the puzzle I needed to put into place. After a lot of searching Amazon, taking MacSparky’s recommendations into consideration and reading a lot of reviews I decided on the ScanSnap.

The basic functionality, after a few tweaks, is that you open the scanner lid, open the software on your machine, place your documents and hit the glowing blue button. At that point, the document is scanned and OCR’ed and dumped into a directory. It really couldn’t be any easier.

Hazel rules

It’s from this point that Hazel takes over.

I have two sets of Hazel rules. One set is monitoring the Scansnap folder on my Macbook Air and, when a file hits that directory, it bounces it immediately to the Mac Mini server. The other set of rules watch the destination “processing” folder on the Mac Mini and handles naming and “filing” the PDF files when they reach the network folder.

I scan a fairly limited amount of files on a regular basis – electric bills, Internet bill, bank statements, car insurance etc. For each one of these types, I created a rule in Hazel that looks for specific text keywords in the document (supplied via the Scansnap OCR) and then names and moves the document to a nested subfolder like “Car Insurance”.

One thing that it slightly unique with my setup is that these Hazel rules have the keyword “TEXT” in the rule title. This is to designate that this rule is processing the file based on the OCR text content. I also have rules that process files based on keywords in their title, and for these I use the obvious “TITLE” in the Hazel rule to easily find and modify them.

For an in-depth set of suggestions on file name schemes, watch the videos in MacSparky’s Paperless. The upshot of all of this is that, once the files hit the action folder, it gets renamed and bounced to a requisite folder in a matter of seconds.

TextExpander

Sometimes there are one-off files that don’t get picked up by Hazel. This is to be expected but you’d want your paperless system to encompass these files as well so, for these situations, I again look to Hazel and TextExpander.

In this case, I will scan the file and then rename it with a consistent date format, including the category keyword in the title as well. For instance, if I get some supplementary information about car insurance that isn’t a bill, I name the file “2012-08-31 - car insurance supplement.pdf” and the Hazel rule that is scanning by TITLE will find “car insurance” and move the file to the right spot in the Knox volume. It’s a quick and easy workaround to unique files and still preserves most of the automation.

A Mac Mini

The Mac Mini is a fairly new machine that acts as our home server for things like multimedia viewing and music listening etc. Its wired via HDMI directly into our Sony TV. I was a bit skeptical at first as to whether or not it was worth having a pricey machine hanging off of my TV but it has been amazing. I definitely recommend this approach if you’re looking for a good multimedia solution in the living room.

Knox

Knox is software by Agilebits which creates an encrypted, secure file volume on your computer. It functions just like a drive when you’re logged into your computer, but if you move the file volume around, it is a completely secure file which is basically impenetrable.

Since I wanted to have an online backup system, it was important to me that whatever got uploaded onto the internet wouldn’t be readable by someone if they were able to hack into the backup cloud servers. Even if they got access, they’d just get a big blob of a file which was completely useless to them.

The encrypted Knox volume gets backed up on a nightly basis. Just to be safe, these files are backed up to my Time Capsule as well.

CrashPlan

After doing quite a bit of research, the best online backup system I was able to find that combined simplicity and features was Crashplan.

I don’t really like the interface that much as I find it slightly confusing and inconsistent. The fact that it uses Java is a thorn in my side given Java’s security and speed issues but the good outweighed the bad in this case. I have Crashplan running on the Mac Mini and it uploads the Knox volume on a nightly basis.

Given how important some of these documents are, I think the backup workflow which involves both local and cloud storage of encrypted data is good all around solution.

Caveats and Warnings

You’ll need to keep some documents in paper form and have them handy at all times. For instance, the other day we lost electricity and I needed to call the utility company. Sadly, the bills containing the account number were safely tucked away in a machine which had no power.

It was a wake-up call that I might need to keep a rolling, “latest month” folder of files which get shredded at the end of the month as the new bills show up. I’m not quite sure how I’ll do that yet but, for now, they are collecting dust as an unsightly pile on my desk.

The first thing I did after the power came back on was put all utility account numbers in 1Password. At least that’s one particular problem that won’t happen again.

The Magic

When the system works as I planned it, it is akin to magic. I get the mail, sort it into a pile which gets shredded immediately (credit card applications and such), gets recycled without shredding (circulars, junk mail) and then the bills and bank statements get fed into the scanner one by one.

The files hit the Action folder on the Macbook Air and get whisked away to the shared folder on the Mac Mini where Hazel intercepts them, renames them and files them.

Every day, these files are backed up via Time Capsule and then, several times a week, get backed up to Crashplan offsite.

The total amount of effort to get these documents into my system is the press of one glowing, blue button on the Scansnap. Amazing.