Saturday, January 17, 2009

Follow the white rabbit

A couple of months ago, two things happened; one was that I got a project for a report wizard to do in flex. The other was the need to report on the hours I spent on it.

Learning Flex was a very nice and exciting experience. The need for precise accounting of time spent on this project made me start a side task on my little white rabbit.

The white rabbit is a simple, stand-alone application that measures time spend on each task in a project. It’s not fully automated, and relays the user to start and stop the clock.

Nevertheless, it does help keep organized and it does generate a report.

Why is it called “The white rabbit”? Because of the character from Luis Carol’s Alice in wonderland, the white rabbit fellow that runs around complaining about time or the absence of it.

So here it is. A simple tool, very easy to use, fully persisted standalone application.

The application was written using the adobe flex3 builder, and the package is installable in all windows versions and Mac OS, as long as you have flash installed (get adobe air).

The application has three aspects to it:

· The task management tool, defines a tree of accounts, projects and tasks

· The activity measurement tool, double click a task, and it starts counting the time

· And the reporting tool, temporal reports in a PDF format, ready for submission

Projects and Task tree management:

I have assembled the task tree with three entities:

· An account: represents a customer. A billed entity that would be receiving the report.

· A project: an assignment with a particular scope, one may regard this is as a directory of tasks.

· A task: a single work particle. Could be regarded as anything actually.

The only restriction I’ve set into this task tree structure is that the root of any tree has to be an account.

Figure 1: the porjects management screen

The items in the tree, regardless of their type all have the following properties:

· A title

· A description

· Status (open or closed)

· An hour estimation

· An hour restriction (fixed price tasks)

· A deadline

Note: No field is mandatory; it’s up to the user to define the data regarded as useful.

Changing a task status (open to close and vice versa) changes its availability in the activity measurement tool. However, after closing a branch, it is still possible to generate a report on it.

The data is persisted as long as the branch is not removed from the task tree.

Timer, the activity measurements

This part of the application has a very simple concept.

The same task tree is displayed but filtered to show only the open tasks. If an element is closed, all elements on the branch underneath it are restricted from this view even if some of them are still open. This is for providing a way to shut down an entire branch without tediously closing each element by itself.

Once the desired task is visible, double click to start timer.

Figure 2: the timer, double click an element on the tree, and the clock stats ticking

While working on a task, the application will not allow shifting to another task until an explicit stop command is set on the open session.

This is done easily enough by clicking the big stop session button in the middle of the screen.

I have a distinct dislike to having too many windows open all at once on y desktop. I would like to continue the time measurement on a task without having the white rabbit application open. So it is, that the application will continue counting up the seconds and minutes even if you close the application window.

The only way to stop the time measurement session is by explicitly clicking on the stop session button.

At this case, I open up the white rabbit, and click the stop button, the moment the timer screen appears back.

A friend suggested an ‘oops’ scenario, when I might forget to close a session while I’m off for lunch or something like that. I liked that very much and probably add that for the next release.


The reporting aspect is the same task tree GUI viewed in previous aspects. The tree includes accounts projects and tasks, and by double clicking one of them, a dialogue appears, for setting the reports parameters.

Figure 3: the report creator, generates a PDF file according to a given template

In this dialogue, the user selects the following:

· A report template

· May edit the report title

· Define time scope of the report by start and end dates

· Set the time aggregation for the report (resolution per session, day, month or just the bottom line)

· Set the task aggregation (either an aggregation of all the branch under the selected element, or a detailed account of each task by itself)

Once these points are set, the save button triggered the report generator and a PDF document will appear on the desktop.

Figure 4: a PDF report. Nothing fancy yet.

Installation, configuration, bugs and suggestions

The beta version of the white rabbit available free, on this link

Before starting anything, make sure that the system has an installation of the adobe air player.

Download the package, and double click it to trigger the installation sequence.

This application should install without any problems on any windows desktop platform or Mac.

When the application opens up the first time, the screen you will fist see is of the task tree.

Ease your way into the settings tab to set your personal data that would be eventually embedded into the reports to generate by the system. There is no need to do these configurations to be able to start measuring time on tasks. The minimal settings required are a single account and a single task under that.

Please feel free to pour your heard and suggest anything that comes into mind. That goes without saying to any bug you find.

To send me bug information or suggestions, you might find it useful to pop open the bug sending screen. To do that, click open the help (the question mark at the top right of any screen) and there choose the “report a bug” link button.

Figure 5: reporting a bug

It’s a resent addition, and not fancy at all, only one attachment can be handled at a time, and there is no indication that the attachment is there (yet).

I would never mind reading how wonderful the application is and how useful you find it.

Have a jolly one.


  1. Hi Gilad,
    I'd really like to use your application. it sounds like it would match my needs exactly.
    However, i've tried for the last week to download it and got the following message:
    "This user account has exceeded their daily bandwidth limit"
    Have you uploaded it to anywhere else?
    Thanks in advance,

  2. please let me know how to contact you

    in any case, i'm currently stabilizing a newer version and I'll share it once its down.

    if you want to try out the old one, let me know.

  3. Here are download links that work:
    (please note that these are still BETA versions)

    Beta 0.2 (stable):

    Beta 1.0 (unstable):

    stay tuned for newer versions..


Please do not post spam on this blog, Spam sites will be reported to google.
thank you kindly.