Find Me


Buy TapCellar on the App Store

Latest articles from Technology Notes

Sometimes You Only Need One Hammer — Task Management

As I wrote in my last post about hammers and nails and an excess of apps, I really want to reduce the number of apps I use to do similar things. The text editor experiment is going well, with Sublime Text serving a multi-functional role and the consolidation has reduced much friction throughout my workday.

The next step for me was to see if I could consolidate more things into this solution, chief among them being task management.

I have used OmniFocus for years. I have written extensively about it but have been somewhat critical of how their more recent versions. There are a lot of reasons for that, some of which I can barely put into words but I’ve been letting my OmniFocus task lists languish of late. Maybe it was habits changing, changes to the interface that make organizing tasks more difficult (I’m looking at you OmniFocus Inbox) and interface choices that seem more aesthetic than useful.

Whatever the reasons might have been, I was facing a choice. Should I nuke my OmniFocus database and start over with a clean slate or should I look at other choices for managing my projects and tasks? Given my current pet project of consolidation and friction-reduction, I opted for the second choice.

Rather than go through a torturous process of finding a good system to replace all of the good things that OmniFocus does (sync, contexts, iOS apps, among other things), I decided to just go back to something I tried last winter that didn’t work out for me – Taskpaper.

I am not actually using the Taskpaper app however. I am using a plugin for Sublime Text 3 called PlainTasks that emulates much of the functionality that Taskpaper provides.

  • A plain text, portable format
  • Easily readable structure
  • Tagging support
  • Syntax highlighting

And since I am using it in Sublime Text, I get some great features to help with the job of task management too.

  • Powerful regular expression-based filtering
  • Code folding
  • Less hotkeys to learn
  • One app to keep open all day – less friction (in theory)

In theory I thought it was feasible but, in order for this huge switch to work, I needed to make some drastic changes to how I have been thinking about GTD and task management for the last few years.

First Steps

I created three documents with the .taskpaper extension in my main text file directory in Dropbox. The represent three context-like areas of responsibility: Home, Work, and Websites. All of these documents stay open in Sublime Text throughout the day along with the note-taking text file I mentioned in my last post as well as any in-progress blog posts and “scratch” text files. To swap to these files, I use ⌘+P to search for them quickly or ⌘+option+left/right to cycle through them.

Ignoring Context

Contexts have been something I have long considered one of the most useful parts of GTD in general and OmniFocus specifically. The idea that I can get the relevant tasks based on where I am and what I am doing was something I found profoundly helpful when faced with an insurmountable and confusing mountain of tasks. With this new system, however, Contexts in the standard GTD sense are downplayed. Tags have been given the role of Context mediator and instead of providing a context for every task, as I would in OmniFocus, I will only assign Contexts to important tasks or for tasks that involve people or places that cross multiple projects.

For instance, if I have tasks spread across several projects that are all high priority that involve one employee, I will tag them with his or her first name. When running my filtering query for high priority tasks, I’ll make sure to include that tagged name to pull them all into one place.

Here’s an example of some tags and how I use them with the PlainTasks/Sublime Text system.

  • @critical - mission critical, high priority
  • @today - things that need to be done in the next 24 hours.
  • @due - a due date, in the format “@due(2014-12-12)”“
  • @name - an employee or person name associated with the task
  • @place - “place” usually represents a location like “hardware store”.

You can read the PlainTasks readme file if you want specifics around hotkeys and user-tweakable settings1. I have been trying to keep it very simple though so it wouldn’t take too long to replicate what I am doing here.

Replicating My Today View

For years in OmniFocus, I used a perspective I called “Today View” to show me all due and overdue tasks, things that were flagged, due today or critical. In Sublime Text and PlainTasks, I accomplish this by using the FilterLines package for SublimeText and some not-so-tricky regular expressions.

To “fold” a taskpaper file for this “Today View”, I use the “Fold with Regex” command (in the Edit menu) and employ a TextExpander snippet called “tptoday” that contains the following:


It takes a file that contains projects and tasks that looks like this.

And folds it into a condensed version of the file with just the target tasks. It looks like this:

Sometimes, when dealing with a taskpaper file with a lot of projects, you need more context than the folded view provides. For those times, I use “Filter with Regex” (also on the Edit menu or shift+⌘+F)

Which produces a file with project names and tasks around the target tasks for more relational context. It helps sometimes.

I’ll often run this one at the beginning of the day for a short review and make sure that things are properly marked and tagged and then run the folded version to keep the list nice and short throughout the workday. The morning review and periodic checks throughout the day were so ingrained with my OmniFocus workflow, this seemed to fit right in.

Entering Tasks from Anywhere

In order for this system to work for me, I needed two critical things:

  1. The ability to enter tasks quickly and without error from my iOS devices
  2. The ability to enter tasks quickly from Alfred’s command box

For the first of those, I turned to trusty ol’ Drafts. This app has long been my Swiss Army knife for sending text to different places within iOS so I thought it might work well for sending tasks to my taskpaper files too. As it turns out, Drafts works perfectly for this. I created a workflow in Drafts for each of my taskpaper files. These workflows simply take whatever is in the Draft and prepend it to the target taskpaper file (with a tab and hyphen preceding it).

My taskpaper files are set up so that the top of the file is my Inbox. Anything at the top needs filing, just like tasks that ended up in my OmniFocus Inbox. Since the assigning and moving of Inbox tasks got more time-consuming in OmniFocus 2, this method of moving lines of text around felt pretty simple and easy. You can even use the hotkey ⌘+control+up/down to move the current line (or group of lines) up or down in the file.

From the iPhone, whenever I want to add a new todo, I tap the Drafts icon in my iPhone dock, dictate or type in the item and then use the relevant workflow to send the text to Dropbox. It works great and it hasn’t lost a task yet.

With iOS task entry solved, I moved on to entering tasks quickly on my Mac. For years I have used an Alfred workflow that would send a task from the command line straight to my OmniFocus Inbox by typing “todo ”. Muscle memory being what it is, if a task comes to mind I immediately open Alfred and type it in. I wanted to have the same ability for my new system so I created two new Alfred workflows.

Each one is a simple python script that prepends the text following the “htodo” (home file todo) and “wtodo” (work file todo) commands to the relevant taskpaper file. Again, this is dead simple but that is what I wanted – the simple things rarely fail you.

It Seems to Be Working

Gabe didn’t think I would last 72 hours with this method since I gave up so handily the first time I tried to use TaskPaper as a full-fledged task manager. I think the difference between this time and the last time is that I was willing to throw away much of the OmniFocus functionality that I came to rely on over the years. In a sense I felt as if I had thrown much of it away after moving to OmniFocus 2 anyway.

I am also trying to use just as much project and task management as I can get away with and no more. While a more robust system would serve both simple needs and more complex ones, I decided that it was OK if the system I used day-to-day wasn’t able to do absolutely everything at all times. It is likely that this system will need to either be modified if a huge project comes up but it may make more sense at that point to put just that project into OmniFocus 2 and manage it from there. For now, this “light” approach seems to be working just fine.

So Sublime Text is now managing all of my text editing and my task management. Not bad for $70 and some elbow grease.

  1. And there are many. 

Sometimes You Only Need One Hammer — Text Editors on the Mac

The problem is one of too many hammers and not enough nails.

I would love to know how much time I have spent over the last few years wrangling multiple tools that could be used for the same purpose. Text editors, task managers, simple todo list apps, reminders apps, podcasting apps, email apps, beer apps, pinboard apps, calendar apps, photography apps… the list goes on and on.

Having multiple tools to do nearly the same job adds friction just like having to root around in your toolbag to find the hammer you need amongst a pile of twenty hammers. Generally, the first hammer that comes to hand would suit the task perfectly fine.

Don’t get me wrong — there is value to looking at a few solutions for solving a problem. I am sure the first text editor I ever downloaded wouldn’t have provided me with as much flexibility as what I am typing into now but I think it is worth begging the question – “Could I do what all of my text editors do with just one text editor?”

The goal of this series is to get me down to one hammer on each platform for the tasks I do most often. Today I am going to tackle one of the areas I tend to waste a lot of time and money on — text editors on the Mac.

How Many Text Editors Does a Person Need?

I currently use the following text editors on my Macbook Air over the course of a typical week.

FoldingText is the tool I live in most of my work week. I start a document on Monday that contains all of the meeting notes throughout the entire week. Having all of my notes compiled in one document makes searching easy, provides me with a time-based grounding for meetings that helps me reconstruct events and keeps the number of open documents to a minimum. FoldingText’s ability to condense the information on the screen to just the section I am interested in is invaluable when I just want to take notes on a single meeting and not see the clutter of the rest of my document.

nvALT is where a lot of text documents start. I have various Alfred workflows that generate documents through nvAlt and search nvALT for things all the time. It is an amazing and eminently-useful tool.

Byword is the text editor I have written the most words in for the last three or four years. All of my writing starts here in one way or another, mainly because I love the presentation of markdown within the editor. The fading of the markdown tagging and the flow of the text is really conducive to how I think.

Textastic is something I mainly used for coding and viewing code. While Coda has a great coding interface in a pinch, I liked having a dedicated app and I was being stubborn about Sublime Text’s steep learning curve so Textastic fit the niche really well. All code-like documents have opened in Textastic on my Macs for a number of years.

Sublime Text is a recent addition. Various attempts to be beguiled by its nerdy charms have occurred and I have downloaded it multiple times over the last few years 1. Every once in a while something a friend will say or an article I chance upon will entice me to give it a shot. Each time I read up on it, usually starting with a guide, and try to make it useful to me but each time I delete it, frustrated by its settings files, bewildered by its hundreds of package add-ons and confused by its dozens of new keyboard shortcuts.

Each one of those applications are great in their own right and each is well-suited to its particular task. But, with each one, comes its own spot of friction. The more I thought about it, the best case would be to use a single text editor on my Mac. No more deciding which app to use when deciding to write a blog post. No more overlapping piles of windows cluttering up my desktop.

One hammer. And Sublime Text is it.

Hammer Replacement

In order to replace a tool, you need to know what it is and isn’t doing for you.

Byword is a competent editor with good document statistics, nice markdown preview and a great markdown syntax highlighting. Textastic is a nice editor that works well with fixed width fonts and has stellar formatting and syntax highlighting. FoldingText gives me a great way to guide and hold context while typing in a huge document of meeting notes and provides excellent outlining editing capabilities for moving nodes in and out of document structures.

Each has strengths that would need to be replaced by a single app. That’s a pretty tall order.

I couldn’t think of a text editor besides Sublime Text that would even come close so I started digging into how I could replace each one of the features listed above. Given my history with the Sublime, I was pretty sure this was a non-starter but the idea of consolidating tools was gaining a lot of traction in my mind and felt I needed to give it a fair shot.

Gabe has done a much better job explaining Sublime and its charms than I ever could but I’ll attempt it anyway. Needless to say, you will need to know how to install custom packages in Sublime to make this all work so, if you are still interested, read on. I will cover some of the beginner stuff in my Quick Tips section at the end of the article.

Building a Better Hammer

To make Sublime Text more useful in general I installed:

Package Control allows you to install packages seamlessly within the Sublime Text interface. This should be your second step, right after installing [Sublime Text][sublime.

I also like using the Solarized theme when writing so I made it my default and set my default font to InputMono. I use Theme Scheduler to change my themes from light to dark based on the time of day, like every nerd should. Since there’s no good way to toggle theme changes for markdown files, I created a pair of Keyboard Maestro macros that do it for me. It’s not perfect system but there is a point where too much fiddling is just too much. it’s ugly but it works2.

To replace Byword and FoldingText, I installed:

This combination does highlighting for markdown syntax as well as gives me a nice fullscreen distraction free mode when I’m in meetings. Typewriter keeps the current line locked to the center of the screen which cuts down on that feeling of not having a sense of context within the document. Marked integration is obviously a big help. Having a second virtual desktop with a fully formatted document for preview is damn handy.

To replace Textastic and nvAlt, I installed:

Since Sublime Text already has support for most programming languages (including syntax highlighting and code completion) I plan on using it for those tasks. One of the things I used nvALT for was creating my new weekly “meetings” files with a TextExpander macro. It was so easy just to open the nvAlt window, type the command which expanded to a properly formatted file name and hit “enter” to create the file. Now, with the Advanced New File package, I have the same functionality but all within Sublime Text.

I’ll cover BetterFindBuffer in a future post where I tackle my “task management” bag of hammers.3

Quick Tips for a Using Your New Hammer

  1. First go here and do what it says.
  2. To quickly do most of the things I have outlined above, remember that the key combination ⌘-shift-P is your friend. This will bring up the Sublime Text Command Palette. From there, typing “Install Package” will bring up the Package Installer and you can add any of the items listed above in seconds.
  3. Always edit the “-User” settings files in the preferences. They will override anything in the Default file. They are usually located at “Sublime Text > Preferences > Package Settings”. If you’re not sure what settings you can edit, take a peek at their Default file.
  4. ⌘-P will find anything in open files or folders in your current Project. I created a default project that has my default Dropbox text file directory and a few others. It will find the text you are searching for at least as fast as nvALT. Most searches are as simple as hitting a few letters and “enter” to open your target file.
  5. ⌘-R will open a document map, or outline. Depending on the structure of the document, it may give you some great info. For this article, it gives me a list of every header that I can jump to instantly.
  6. I can never remember hot keys. Command Palette to the rescue! Again, the combo ⌘-shift-p will bring up a text box which will quickly search all commands and hitting “enter” will execute it. If you want to keep your hands on the keyboard, this is a lifesaver.
  7. ⌘-option-left/right arrow will shuffle through your open documents.

After using Sublime Text for a little while now, I can see the potential is great. I have passed the fiddling stage and I am just working in it. Minimal app switching, easily-focused attention and lots of nice perks that keep things flowing. At $70, Sublime isn’t something you just run out and buy, even with what I just wrote. Luckily, their purchasing model supports trying it out for a while, kicking the tires and getting to know the thing.

It has been interesting researching and writing this article. What started as an exploration of ways to reduce the number of text editors I employ ended up as a paean to Sublime Text. I had no idea I’d be able to do so much with this app given my previous frustrations with it but, with a little persistence, I have gotten some huge rewards.

  1. It is free to try out and $70 to purchase. 

  2. I have gotten a few questions about what this Keyboard Maestro shortcut is doing. Here’s the gist: I created two copies of my settings file and renamed them with a prefix of “light” and “dark”. In each of these files, I edited the theme to be the Solarized Light or Solarized Dark theme. The Keyboard Maestro macro deletes the current user package settings file and replaces it with either the light or dark depending on the time of day or a typed hotkey. Sublime detects the change and immediately refreshes all of the files that the package is associated with (in this case, all of the file types I have associated the Markdown syntax type). Sometimes the computer hibernates and forgets to change the theme based on the time so typing the hotkey will force the change. 

  3. Hoo boy, that’ll be a doozy. 

TapCellar Thanksgiving Sale

For the week of Thanksgiving (11/25-11/30), TapCellar is on sale for $2.99 (down from its regular $4.99 price). If you were on the fence before, now is the time!

TapCellar Link

TapCellar — A Different Kind of Beer App

A couple of weeks ago, Gabe Weatherhead1 and I released a iOS app that we had been working on for the past year and a half called TapCellar.

Gabe wrote up a nice overview of the features in his post announcing the app so you can click on that to get his take on the features.

I wanted to emphasize a few things that differentiate TapCellar from the rest of the beer apps in the App Store. Gabe touched on some of them in his post so there is going to be some overlap but I will put more emphasis on certain things and Gabe on others so hopefully combined the two pieces will give you a nice perspective on the app.

The elevator pitch goes something like this.

We created TapCellar because we felt that the beer apps out there didn’t suit our needs. There are a lot of beer apps out there but they all do their own thing, some better than others. Gabe and I took a hard look at what craft beer drinkers needed in a beer app. We took a deep look at other apps out there and gave some thought to what we didn’t like about them. Then we set our sights on an app that we would use and enjoy because we knew if it made us happy, others would like it too.

One of the main differences between TapCellar and some of the bigger apps out there is that we don’t want to join a social network in order to catalog, rate and enjoy beer. We take your privacy and personal data seriously so you can back up and archive your beer database whenever you want. None of your data is used to track you and let others know where you’ve been, when you were there or what you drank. We have sharing cards, called Mugshots, but they are images that allow you to share with whoever you want, as privately as you want.

We wanted users to be able to access all of the beer without having an active data connection, too. We know what a huge pain it is to be in your cellar, at a pub or attending a beer festival with no cell service and not be able look up information about a beer or brewery. TapCellar has about 34,000+ beers in a local database ready for searching, rating, and exploration — no data connection required. When you have a data connection, we will keep that growing list of beers updated too so you’ll always have the newest beers added to the database.

Another untapped (!) market is for beer apps with a comprehensive cellaring component. We build TapCellar to allow multiple vintages, cellar inventory counts, journaling by vintage and vintage-specific beer grades.

For every beer in the database, TapCellar provides for per-beer journaling, geotagging, photo support and sharing cards.

I know, I know. Lots of people use Untappd to share their beer experiences with friends. While Untappd isn’t our thing, we hated the thought of users having to choose TapCellar over Untappd so we added the ability to send your journal entry straight to Untappd from within TapCellar’s Journal feature.

There are a lot of other things waiting for you to discover in TapCellar which I’ll write about in the coming weeks. I’ll provide some tips on creating some compelling Saved Filters, how to quickly put information about a beer right onto your clipboard, ready to paste anywhere and others.

  1. Gabe of