Potion Factory Blog

Snow Leopard

Happy Snow Leopard day, everyone.

The user facing changes aren't drastically noticeable this time, but there are quite a few developer oriented features I'd love to start using in my apps. I hope that everybody who reads this blog will upgrade soon.

Our apps didn't need to be updated for the new OS this time with the exception of one: I Love Stars. You should upgrade to the latest version as soon as possible if you're using it because you won't be able to quit iTunes otherwise.

Our other apps will have 64-bit support when their next major versions come out, except for The Hit List, which should have it much sooner.

I'm still very busy working on The Hit List and its iPhone companion. I hope to have something to share with you soon.

Better Software Through Less UI

The Hit List 0.9.3 is out. A lot of work went into this release but the two main user visible changes are repeating tasks and AppleScript support. Of those two features, repeating tasks took a surprisingly long time to implement. The code itself wasn't too hard to write, but as usual, settling on a design was the hardest and the most hair-pulling part of the job.

The Cultured Code guys behind the excellent application Things have also written about this particular problem so I thought I'd add to the discussion and explain my design decisions on what ended up being a completely different implementation.


I started the design process by mocking up some UI to satisfy all the different ways of setting up repeating tasks.

Specifically, I wanted the application to be sophisticated enough to accommodate the following cases:

  • Repeat every n days
  • Repeat every n weeks, optionally on specific days of the week
  • Repeat every n months, optionally on specific days of the month or on specific days of the nth week
  • Repeat every n years, optionally on days of the month or days of the week on specific months
  • Whenever possible, allow repeating after completing the task.


I spent quite a bit of time creating mockups. While they technically satisfied the requirements, none of them struck me as being elegant or easy to use. For one thing the designs always required the user to translate a simple thought into many small interface manipulations. Sure, this is true with any user interface, but it seemed especially true for this problem. From the very beginning, a goal for The Hit List has been to create an application that is as frictionless as possible. I wanted the application to make the most out of each user interaction.

Not being satisfied, and after throwing away all of my mockups and even code, I went back to the drawing board. I'm glad I did because here is the end result:

There is no myriad of buttons and fields to choose from. All the user has to do is directly type in what he wants.

After you type in a recurrence rule, the window resizes to reveal additional options relevant to the new rule.

Example Rules

For this to work without driving the user mad, the natural language parser has to be near perfect. The last thing I want is for this to come out smelling like AppleScript.

Take a look at what the application can understand.

Every day
Every single day

Every 2 days
Every two days

Every week on Mondays
Every Monday
Every mon

Every other Monday
On Mondays every other week

Every third Saturday
Every three weeks on Saturdays

Every week on Monday and Tuesday
Every mon & tue
Mondays or Tuesdays

Every Monday through Thursday
Every Monday to Thursday
mon to thu

Every 2w on wed, thu, and fri

Every other month

Every month on the 1st
On each first of the month
Monthly on the first
Every month on the 1st of the month

Every month on the 5th and the 20th day
On the 5th and 20th of the month

Every month on the 1st through the 6th
Monthly on the first through the sixth
On the 1st through the 6th of every month

On every second Monday of the month
Monthly on every 2nd Monday
Every month on second Mondays

Every year on January first
On January 1st of every year

Every last sun of October through April
Every oct through apr on the last Sunday

Even with all this I missed the rules "on the last day of the month" and "on the last nth day of the month". A future update will remedy this shortcoming.

If you find any other text that isn't parsed correctly, please let me know.


This design isn't perfect as it has two glaring problems. One is that the user has no easy way of discovering how complex the recurrence rules can be. This isn't such a huge problem, but a way to solve this is to include a help button to show example rules or to include an accompanying iCal style UI to let the user setup the recurrence rule in a more typical fashion. I didn't include these in the initial implementation though because I wanted to see how users would react to this kind of UI.

Another problem is localization. Even if I write parsers for a few more popular languages, it won't accommodate the rest of the users in the world. Again, the solution is an accompanying traditional UI, but for now, I'm leaving it the way it is until I get some feedback.

Closing Thoughts

The Hit List has been my playground for trying out different ideas. This repeating task UI is just another example of me having fun even at the cost of disregarding some users.

My hope is that the net result will be more happier users even when I don't satisfy everyone.

UPDATE: If you'd like see how this works out in real life, you can download the public preview of The Hit List. You'll need Mac OS X 10.5, Leopard.


The Hit List Public Preview

I'm happy to announce that the public preview of The Hit List, my new task-management application is ready:

Download The Hit List

It's a real pleasure to finally take the veils off since I have poured so much care and love into this application.

Of course, as a preview, it's not quite feature-complete yet, but the beta testers report that it's stable enough for daily use. It should be enough to give you a taste of what its personalty is like.

If you have thoughts you would like to share about The Hit List, you can do so at The Hit List Users Google Group.

On a final note, I'm taking pre-orders until version 1.0 ships. The final price will be $69.95, but you can get it for $49.95 for now. While you don't have to purchase a license until the final version ships, that deal won't last forever.


The Hit List Beta Progress

The Hit List has been in closed beta for about two weeks now and things have been progressing well. I wanted to release a 1.0 version as soon as possible, but based on the feedback I'm receiving, I'm back to the "it'll be done when it's ready" status. The first major feature I have decided to add is recurring tasks.

While I'm certain that THL won't be THE solution for everybody, I'm very encouraged by the tweets some beta testers are posting. Validation like this is especially gratifying since I've been working on it under the radars for so long without receiving a lot of feedback.

This stuff is pretty much crack cocaine for developers:

I would like to certify for all those curious that The Hit List is very, very impressive. andy_matuschak

The Hit List (upcoming GTD app for OS X) is absolutely outstanding. It's really well done, especially for a beta! chris24

beta testing a new task manager The Hit List. This thing KILLS Things and Omnifocus. I"m totally in love. keyboard commands that make sense jasonglaspey

So the hit list (new gtd program I'm helping beta test) is the shit. Seriously, imagine Things ease-of-use and the power of OmniFocus. Ericbobmyers

If you're looking for a task manager with the power of OmniFocus or Things but that does not impose it's own workflow check out The Hit List KG6BGJ

Just got my hands on a beta of The Hit List. Omnifocus and Things are now in the Trash. johnrust

This is probably the only time I'll ever get emotional over a Mac application. This app is everything I've ever dreamed of, and more. <3 johnrust

I'm liking The Hit List (new MAc app for project management/GTD)... you can tell they really sweated the interface details tonyvia

ByeBye Things. Hello, The Hit List - http://tinyurl.com/9hkt8d dancounsell

Moving my tasks from Things to The Hit List by @andypotion of Potion Factory. So far it's awesome. markjardine

@preshit Been spending the last hour or so using it and I have to say yes. It blows away Things and Omnifocus even in its beta state markjardine

Going on the record right now: The Hit List will be the Coda of GTD apps. elihorne

One last note. I'm taking more beta testers in blocks when I have new builds ready for testing. If you have signed up to the beta group, please have patience.

I Love Stars 3.0

UPDATE (1/6/2011): I Love Stars is now available exclusively at the Mac App Store for the price of $1.

I'm happy to announce that I Love Stars 3.0 is out! Please consider it my small Christmas present to fellow Mac users as it continues to be free.

I Love Stars 2.0 was a little menubar application that did just two things: 1) show you the star rating of iTunes' currently playing song and 2) let you click to set a new rating.

Version 3 keeps to its simple mission but adds two important new features:

Unrated song alert

When you're about three quarters of a way through an unrated song, ILS now alerts you by flashing in the menu bar and also by playing a sound effect.

Keyboard Shortcuts

You can assign custom keyboard shortcuts for changing the ratings now. I was using QuickSilver's iTunes plugin for this but I found QS to be too slow to react sometimes.

Both of these new features can be customized in the app's new preferences window. To get to it, you need to right click on the menu bar to open the menu.

There are other changes under the hood but you probably won't notice them. The animation has been rewritten from scratch and some obscure bugs and memory leaks have been fixed. It should be stable as I've been running it for months and months now, but if you find anything, be sure to let me know.

Cheers and happy holidays.

Download I Love Stars