TECHNOLOGY NOTES

Find Me

Search

Buy TapCellar on the App Store

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. 

Back to the iPhone 5S

Last week I switched from an iPhone 6 back to an iPhone 5S. So far, so good.

I got an iPhone 6 on launch day and was impressed by the build quality. I really liked the rounded, non-chamfered edges and the phone felt like a smooth river stone in my hand. It was a bit too slippery, especially on cold days, and the result was the purchase of my first phone case in years solely to avoid dropping the phone regularly.

ApplePay will hopefully change the way we do our personal retail business transactions. Despite high hopes, my exposure to it since the iPhone 6 release has been minimal. The opportunities to use it going forward probably won’t be significant for me given that I do relatively little retail shopping. Most of my transactions are in restaurants and pubs which still have no facility to handle ApplePay and, while I would love to fuel my car and pay with a wave of my phone, those days still seem far off.

The iPhone 6 screen always felt a bit like it wasn’t made for my hands like the iPhone 5S was. The iPhone 4 and 4S were tiny and I could easily reach any area of the screen. My resistance to the iPhone 5 gave way to the fact that I could still reach the top left corner while holding my phone in the right hand. The iPhone 6 requires you to shift the phone in your hand, balance it on your fingertips and then stretch across to hit the top left of the screen one-handed. The whole time you are courting disaster.

Apple added the laughable “reachability mode” but that was something I usually triggered by accident, costing me more time than it saved. It also served as an aggravating software reminder that the iPhone 6 was not made for me.

Moving back to the iPhone 5S has reaffirmed my feeling that it is the current high point in smartphones. It is the best balance in speed, battery life, size and durability.

Eventually I want a smaller phone. Ideally it would also be a lighter phone, a phone that is more durable and with more battery life. A phone that disappears into my pocket rather than takes up every spare inch of it. For now, and for the foreseeable future, the iPhone 5S will be my main phone and I don’t regret the decision to move back to it one bit.

Nerds on Draft — Episode 017

Gabe and I drink a Fiddlehead Mastermind while discussing the topic of recommendations and reviews in episode 17 of Nerds on Draft.

The Mastermind was a contribution of a listener who also contributed some amazing tools to analyze the data in your personal TapCellar data set.

I give this podcast a five star review.

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.

Nerds on Draft — Yang and Side Projects

The latest Nerds on Draft podcast is up. Evil Twin’s Yang is a fantastic beer – one of my top IPAs at this point — and I liked kicking around ideas about how we tackle side projects. I also tried a new audio production technique so it sounds pretty good technically even though it is still unfortunately our actual voices. Sorry about that.

This week’s podcast is brought to you by TapCellar.

Neil Postman on Salon

Salon has a published great article on Neil Postman, a self-described “media ecologist”. Postman tackled, before technology which made such things widely possible, ideas that describe accurately what I haven’t been able to put my finger on over the last few years. From the forward to 1985’s “Amusing Ourselves to Death”

What Orwell feared were those who would ban books. What Huxley feared was that there would be no reason to ban a book, for there would be no one who wanted to read one. Orwell feared those who would deprive us of information. Huxley feared those who would give us so much we would be reduced to passivity and egoism. Orwell feared that the truth would be concealed from us. Huxley feared the truth would be drowned in a sea of irrelevance.

And a quote from Jaron Lanier that rings truer than most:

Oddly, he says, “It’s easier to get information than ever before, but people are much less informed.” Lanier thinks we’re still catching up to his work. “I think Postman’s day,” he said, “might not have come yet.”

In a country where 29% of Louisianans feel Obama mishandled the aftermath of Hurricane Katrina (with Bush, the man who was actually president at the time, at 27%) and the constant and oppressive lies of FOXNews (and even New York Times), it doesn’t take much convincing that we have a lot of information but know nothing.

The article and the topic are thought-provoking stuff and worth looking into if you feel like you have more information at your fingertips than ever yet still find it impossible to get at the truth of things.

A Good Letter From a Lawyer

I have looked everywhere to find the genesis of this article currently making the rounds but, alas, I can’t so I apologize to whoever surfaced this.

It is a fantastic email from a lawyer1 responding to a patent infringement claim from Monster Cable. I love how this guy takes them to the woodshed but my favorite line is this one:

It may be that my inability to see the pragmatic value of settling frivolous claims is a deep character flaw, and I am sure a few of the insurance carriers for whom I have done work have seen it that way; but it is how I have done business for the last quarter-century and you are not going to change my mind. If you sue me, the case will go to judgment, and I will hold the court’s attention upon the merits of your claims–or, to speak more precisely, the absence of merit from your claims–from start to finish. Not only am I unintimidated by litigation; I sometimes rather miss it.

The whole thing is a classic.


  1. I assure you that is something I have never typed or said out loud before in my life.