On the Hit List's repeating date UI
March 20, 2009 at 9:52 PM by Dr. Drang
Today I read this article on the Potion Factory blog about its text-based user interface for creating repeating events on The Hit List, a new task management/to-do list application. You may have seen it, too; John Gruber linked to it on Daring Fireball, and it was for a time on delicious.com/popular.
The basic idea is that users of The Hit List will type in descriptive text—like “Every Monday” or “Every other Saturday”—to define repeating tasks. This is set in contrast with the way users enter repeating dates in programs like iCal and OmniFocus, which is by clicking on radio buttons and selecting menu options. The comments on the article have been generally favorable, the main caveat being that first-time users will be confused when confronted with a text field for entering a repeating date. None of the comments mention, however, that this is nothing new—text descriptions of repeating events have been around for years and years.
I’ve discussed repeating events before. In that post, I mentioned the excellent work by Reingold and Dershowitz (which led to calendar/diary mode in Emacs) and the old BSD calendar
program which comes with OS X. Both of these have long done, in text, what the Potion Factory is talking about.
One other longstanding program that uses text to describe repeating events is pcal
. I’m not sure why I didn’t link to pcal
in my earlier post, because I use pcal
, and it has a wonderfully complete and very natural syntax for repeating events. Here are some of the examples from the pcal
manual:
last Monday in May*
even Fridays in year
Tue after first Mon in Nov
4th Thu in Nov*
This seems to me to be just what the Potion Factory is shooting for1. I wonder if its programmers spent much time studying stuff like this before implementing their own solution. It would have been nice if they had acknowledged this earlier work.
-
The crontab format also does a lot of what the Potion Factory is trying to do, but its syntax is anything but natural. ↩