TECHNOLOGY NOTES

Find Me

Search

Buy TapCellar on the App Store

Using It For Exercise Mostly

I’m using it for exercise mostly.

That’s what I’m telling people when they ask me why I needed an Apple Watch. It is as good an answer as most at this early stage. I have this feeling like I am standing at the perimeter of something big but unaware of where the edges are, let alone what shape they might take.

The “notification thing” is really no big deal. The people who said, in early reviews of the Apple Watch, that they are “drowning in notifications” seem like people who don’t understand how technology works. That might sound harsh but I don’t have any other explanation for it. 1 Tuning your notifications is a pretty simple task and the Apple Watch app puts focus on it so if you are “drowning” in notifications, it is your own fault.

If you used to ignore someone you were talking to just to see if your phone has something more important going on, you will likely still do this with your Apple Watch and, yes, you are still an asshole. The watch doesn’t make you less of one and, in some cases, ignoring people while looking at your $600 watch to avoid taking the even-more-expensive phone out of your pocket makes you more of an asshole.

Third party apps are, at this point, almost too slow to bother with. Glances can be very useful but, if you have too many, it adds another layer of frustration as you scroll slowly through each page to get back to the one you want. Keeping your Glances down to the barest minimum is a key to Apple Watch happiness.

Battery life has been a non-issue. I go to bed after a long day with 35-50% battery left and can’t ask for more than that given how much I’m using the watch. That generally includes an hour of exercise in the form of an outdoor bike ride as well.

The actual function as a watch has been great. Even a slight flick of the wrist activates the screen and there are no complaints there. In almost every case, it is akin to magic. I was showing it to an Android Wear person yesterday who nodded in reluctant acceptance that it was, indeed, quite good. He so badly wanted a reason to roll his eyes and sniff in the way Android users do but the Apple Watch didn’t give him the chance. For now he’ll just have to console his despair by side-loading some malware or whatever Android users do for fun.

The landscape the Apple Watch defines right now is wide and its edges unknowable. For those having trouble coming to grips with how to use the watch, my advice is to turn off almost all of the extras for now. Use one or two Glances. Disable all but the most important notifications. Basically, use it as a normal watch. As time goes by, you’ll think “It’d be great if I had {SUPERCOOLTHING} on my watch.” and then you go activate that thing and see if it is as great as you thought it might be. If it is, keep it. If not, turn it off and keep learning.

The more time you spend using the watch the clearer the landscape becomes but there’s so much more it will be able to do as developers come to grips with how to extend its usefulness. However it shapes up, it will always be hard to describe to someone else how the Apple Watch has become useful to you because the things that are providing value sound trivial and inconsequential. But at a personal level, those things are pretty great and despite doubting the point of such a device for months, I have to admit Apple created a device that can do some pretty neat stuff right out of the box and I am even more excited about where this thing is going.


  1. Other than maybe to create a link-bait-worthy controversy which is always possible in the “awesome” world of tech blogging. 

Silence to Noise Ratio

I couldn’t agree more with Gabe’s last piece on notifications.

I also use the Do Not Disturb feature of iOS liberally. Whenever I walk into a meeting I toggle off the world. It’s a hugely underrated feature and easily accessed on iOS 8. Learn these settings. Browse the Notification settings in iOS too. Remove as many as you can get away with. It’s unlikely you need a notification at the exact time a package is delivered. It’s unlikely that your text editor has anything urgent you need to know. Avoid the constant and unnecessary pain created by too many green toggles.

Spot on.

Nerds on Draft 026 - Alfred Workflow Follow-up

I have gotten a few questions from listeners about my Alfred workflows in reference to episode 026 of Nerds on Draft. For those curious and intrepid souls, here is how I set them up.

For quick entry of Home-related tasks, I created an Alfred workflow that looks like this:

Then I added the following python code.

with file('/Users/<username>/Dropbox/<folder>/tpHomeProjects.taskpaper', 'r') as original:    data = original.read() 

with file('/Users/<username>/Dropbox/<folder>/tpHomeProjects.taskpaper', 'w') as modified:
modified.write("    - {query}\n" + data)

The home and work workflows are very similar. Just change the file names and the Alfred trigger.

To use these, just activate Alfred and type “wtodo” or “htodo” (or whatever you set to your default trigger work) and follow that with the text you want to add to your taskpaper file. It takes less than a second to run and I use it all day long.

Good luck and keep the questions coming!

Nerds on Draft 026 - A Task Management Discussion

Gabe and a few friends went to Asheville, North Carolina last weekend for a brewery tour trip and we ended up releasing the latest episode of Nerds on Draft a little late. Sorry about that.

I think this episode was worth the wait because it is a topic that I have been thinking a ton about for the last few years.

Gabe and I dip into productivity porn, going deep with task management touching on how we use Sublime Text, PlainTasks, Drafts and some of the scripts we use to manage the things we have to do. All of these disparate parts have come together to craft fully-functioning workflows that are very different from the more-self-contained OmniFocus workflows we have been using for years.

It has been an interesting system to play with but I like the whole Taskpaper/Sublime Text thing a lot. The beer was great in this episode too.

Tap-Utils for TapCellar is Available

Terrence Dorsey blogged about his release of Tap-utils on github this week. If you’re a TapCellar user (and why aren’t you?!) and a nerd, this collection of ruby scripts is a no-brainer.

Tap-utils use your TapCellar backup file as the source to do some really cool stuff and give you insights into your beer drinking that can be enlightening. Grab these and play around with them. It will be well worth your time.

William Gibson on Authenticity

Eventually I received a baffled letter from Buzz Rickson, asking why I’d put their name on something they’d never made. I explained it as best I could, apologetically, and they told they really wanted to make that jacket. They’d been getting letters from people, asking where they could buy one. So the black MA-1 was our first jacket. I had them make it a few inches longer than the original pattern, though, because most MA-1s are a little too short for me.

I forget where I ran across this link but I enjoyed reading it.

William Gibson is one of my favorite writers and his book Pattern Recognition’s Cayce Pollard was one of his more interesting characters. The book was about trends, authenticity and how we are seen by brands and how we see them ourselves.

As Gabe and I discussed in Episode 012 of the Nerds on Draft podcast, buying higher quality things but fewer things is something I have been thinking about in the last few years. Gibson’s discussion about things worth hanging on to and objects that change over time without falling apart is something he pays attention to rings true for me.

Nerds on Draft 022 - J.A.W.N and the Joy of Home Ownership

This winter has been cold here in Pennsylvania but lacked the snow from last year. Gabe Weatherhead over at Macdrifter, and my partner over at Nerds On Draft, has had a terrible winter in Boston and it has made dealing with owning a house quite a challenge.

That contrast is why we had a fun time recording this week’s Nerds on Draft where we talked about the challenges and joys of owning a house. The conversation ranged far and wide but we anchored our discussion with the bitter twang of Neshaminy Creek Brewing’s J.A.W.N.

Hope you have as much fun listening to it as we had recording it.

Using your Shopping List in TapCellar

Buying beer is luckily something I get to do pretty often. Ever since starting the designs of TapCellar 1, having a useful workflow for beer shopping and cellar management were top priorities.

Since the app released last October, I have been using the app daily to manage my cellar and add beers to a shopping list to get ready for the inevitable trip to a bottle shop. This became even more important when Gabe and I started recording our podcast Nerds on Draft since he would often call and ask me to look for a beer to discuss on the show.

I thought I would write up the sequence of events for the “word-of-mouth/shopping list/cellar inventory count” workflow because it is pretty darn useful and maybe not obvious to everyone using TapCellar.

FIND A BEER

First, type the name of the beer in the search box. In this case, we are looking for Bikini Beer by Evil Twin Brewing. Searching for either “Evil Twin” or “Bikini” will narrow the search quickly enough to find the target.

ADD TO THE SHOPPING LIST

While you can access the shopping list button in the beer’s detail screen, it is quicker to swipe from right to left on the beer in the List view and tap the shopping cart button.

This adds the beer to your Shopping List which you can access at any time via the side menu (accessed by swiping left to right on the screen)

CELLAR TIME!

So you get to the bottle shop and get a bunch of the beers on your Shopping list (which you obviously check obsessively while stalking the aisles). When you get home, you go through your goodies and swipe from right to left on each of the beers your bought and use the “+/-” on the right of the quick menu to add bottles to your cellar inventory.

Once you have incremented the beer to add it to your cellar, you can toggle the shopping cart icon off, removing that beer from your shopping list.

At this point, you are all set. Every time you head down to your beer cellar, you can see what is waiting for you down there. You can also use the cellar inventory screen to mark beers off as your drink them (using the same controls you used to add the beer to your cellar in the first place) and remember to order beers when the supplies get low.


  1. For those of you who read this site and don’t know, Gabe Weatherhead and I designed and released TapCellar ourselves as Gravity Well Group. Go buy it. 

Nerds on Draft Episode 021 — White Oak and the Dilemma of Simple Living

I moved out to what is considered “horse country” last winter. I’ve posted about it here and there on this blog and my wife has a site we call “The Windhorse Way” that talks about things we 1 are doing now that we have moved here.

Everything we do in life involves choices whether we make them consciously or not. If you buy eggs from a big factory farm or if you don’t know what “GMO” stands for, it doesn’t mean you aren’t making a choice. You are making the choice that you don’t care about those things. That said, being “informed” isn’t easy either and not all choices are easy to identify as the “right” one. As with judging beer, there is a lot of gray area.

In the latest episode of Nerds on Draft, Gabe asks a ton of questions about my choices to move out Chester County among the farms, tractors and gun nuts. We dig into what was harder than I thought it would be, what was easier, and what choices lived up to the expectations I had of them. A lot of what he asked made me think and, honestly, some of it I didn’t feel like I had a good answer for. That’s not a bad thing. We have to keep asking ourselves if we are doing the right thing every day because one thing is certain — the only constant is change.

To add to the complexity2, we drank a beer called “White Oak” by The Bruery which was an incredible beer worthy of the high price tag and high opinions on the internet.


  1. (OK… mostly she is doing!) 

  2. Maybe I was the only one that thought it was complex. It certainly made me think, that’s for sure. 

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.