Wet Behind the Years
a collection of, um, stuff


TinderDo - Task Tracking using Tinderbox

I'm a "to do" list junky. I'm not one of those "prioritize your day, every morning" type of guys, but I like to keep track of ideas, tasks, jobs, and reminders in electronic form. I use task lists for short, medium, and long-range projects. Over the years, I've tried countless types of software, and dozens of techniques, for organizing my reminders and thoughts.

Recently, I've been using both Omni Outliner and Group Organizer. Outliner is used for ad hoc and short term projects. Group Organizer for personal and long term projects. Each offer their own set of unique and powerful features.

Now that Eastgate's Tinderbox is native on Mac OS X, I thought I'd try building a Task Organizer using its advanced hypertext and information mapping tools. To my delight, I found it quite easy. For the first time I have a system that provides flexible color-coding, multiple views of the same information, and automatic categorization and organization.

Set Up
To begin, I added a few custom "user attributes" to a Tinderbox document. These attributes provide status, categories and other meta data.

Here's how they're defined:

Due - a date and time field for when a task must be completed by. This is an optional field, it automatically gets the value of "never" if not specified.

Category - A free-form text (string) field.

Completed - A true/false (boolean) flag.

IsTask - A true/false (boolean) flag that indicates if a note is a To Do item. I added this so I could add other items besides tasks.

Keywords - A free-form text (string) field for organizational use.

The Details
This is an example of a Tinderbox-based Task Organizer, with trivial examples, to illustrate the general approach I've taken.

Each task, or "to do" item, is entered as a separate note. Each task is assigned a category, such as "home" or "work" and has an optional due date and time. When tasks are finished, the "completed" indicator is set by clicking the checkbox. Tinderbox provides the checkbox control automatically because "completed" is a true or false attribute.

Using Prototypes When Adding Notes
Tinderbox allows you to define "prototypes." These are notes whose attributes are automatically propogated to other notes who delcare that they are based on the original prototype. The note pictured above is the "home task prototype." The category field is filled-out already, and the attributes at the top (such as completed) are defined as being visible. When I add a new home task, I simply create a new note and declare that is based on this prototype. I also have a prototype for "work tasks" with similar attributes.

Nested Tasks
I use heirarchical notes to keep track of tasks that are dependent upon each other. Here, buying paint needs to be accomplished before painting the bedroom can occur. Because the dependent task is embedded inside the other, its easy to see items that are related.

This works well for such obviously-related items. But it gets tedious and can be error prone. It's much easier to use Agents to do a lot of the organization automatically.

Task Agents
Tinderbox's Agents feature automatically identifies and gathers tasks lists of pending tasks in each category, as well as "past due" and "due today" lists for all items.

The agent definition shown here gathers tasks assigned to the "home" category.

The Agent also excludes notes that are prototypes (because there is, as discussed above, an empty "home task" prototype note that I don't want in the list) and checks the "isTask" attribute to ensure that notes that aren't "to do" items are ignored. Finally, items found by this agent are sorted by their Due dates so those requiring more immediate attention appear at the top of the list.

This Agent finds Past Due tasks:

The color of this Agent is set to red and its Action definiton applies the same color to the tasks it finds. As a result, as soon as tasks become past due they're colored red in all Tinderbox views.

This agent, like the one before, excludes any prototype notes. It looks for Due items that are dated before the current date and time, but ignores those set to "never". (A task without a due date is never past due.) The definition does not look at the category field, so both home and work tasks will be found by it.

Using Multiple Views
Taking advantage of Tinderbox's ability to display information in multiple views proves very useful. Here's a Map view showing five Agents that I've defined. The large colored squares are the Agents, the smaller embedded squares represent the tasks they've found.

There are two past-due tasks, one of which is due today. (Note the red item in the "Due Today" agent.) This task appears in both Agents because it was due at Noon, but it is now 4:00 PM, so it is past due. (The agent definition specifies that "Due Today" is within 24 hours, before or after, of the current time.)

There are six tasks that are not completed. Two of them are in the work category, the rest are home tasks.

At a glance, Tinderbox has provided a clear, meaningful overview. The Agents automatically update themselves, ensuring that everything is accurate.

The Map view is great for a high-level sense of my workload, but the Outline view is what really guides my day.

Another view of the same agents and tasks, but now it's easy to see the individual tasks. At the bottom of the list are my two prototypes (which I named "templates" to be less geeky sounding) and a "notes" item that has its "IsTask" attribute set to False and thus doesn't show up in any of the agents.

But perhaps most importantly, the sort order I set in the Agent definitions ensures tha Due items always appear at the top of these lists. I really enjoy having an outline view that automatically sorts itself.

So far, I'm quite pleased with the power and flexibility that Tinderbox brings to the table. When I first started working this way, I anticipated that I'd need extra attributes to help me organize the tasks. Afterall, nearly every To Do list manager I've used before was stuffed with categories, keywords, groups, and so on.

But I'm finding that the built-in Tinderbox tools, combined with the Agents, offer more than enough power in this regard. I added a keyword attribute, but have never used it. I planned on even more Agents, but found that the built-in Find command is fast and an easy way to build ad hoc lists of tasks.

I hope you find this discussion useful. I'm interested in hearing about your own experiments with Tinderbox.

This essay was written in Tinderbox, then rendered into HTML and upstreamed by Radio Userland.

Click here to visit the Radio UserLand website.
Click to see the XML version of this web page.
Click here to send an email to the editor of this weblog.
© Copyright 2003 Gordon Meyer.
Last update: 5/29/03; 10:42:24 PM.