Taskmaster (screenshot) was my attempt at creating a new kind of to-do list program. All the efforts I'd seen thus far had some major flaws that I felt needed to be addressed.

  1. Reporting
  2. This is the most important feature of Taskmaster. It stores when you do the things you're supposed to do and when you don't. It can then report, in terms of percentages, how good you've been at doing these things. This lets you figure out the tasks you might need to reprioritize in the future.
  3. Event Repetition
  4. In most such programs, when you set an event to repeat, the options are very strict. You have choices like "every two Mondays" or "the 15th and 17th of every month." What about options like "2 weeks from the last time you did it?" What about "This should be done everyday, but if you miss one, don't pile it on top of the next one; just let it go."

This, I suppose, is my official declaration that I was working on it...but I'm not anymore. I put it on hiatus for a few reasons.

Most importantly, I wasn't as happy with Cocoa as an API as I was expecting to be. Sure, Objective-C is severely object-oriented, a la Smalltalk, which is great. And sure, Cocoa does a lot of work for you - the example often cited is that you can make a text editor or a web browser with just a few lines of code. And it's true. You can. The problem, however, is that it does all this work, but the documentation never quite clearly expresses what it's doing. You're required, in a sense, to second-guess the myriad methods that come "for free" with the environment on a fairly regular basis. I'm sure once you're a seasoned Cocoa developer, this all comes quite naturally, but something about it just turned me off.

Secondly, there never seemed to be enough time to work on the project, as I work full-time and spend as much time as I can on my musical endeavors. I decided to focus on smaller projects in PHP, which have been much more rewarding.

Finally, as I've mentioned before in these pages, I'm not quite happy with the user interface in OS X these days, so I'd like to see how Panther stacks up in terms of usability before really devoting myself to the platform. But don't hold your breath.

The source code is released under the GNU General Public License, so if these ideas are interesting to you, here's the tarball. You can also just browse through the source.