March 6, 2007

Watch your work habits with Rachota 2.1

Author: Michael Stutz

I've been looking for a good utility to track my work at the computer -- what projects I've been working on and for exactly how long. I wanted to select from a list of tasks and start and stop them with a mouse click, so it had to be a GUI program. I didn't want a project management application or one that was specialized for particular fields; I just wanted a general tool that was out of beta. I found what I was looking for in Rachota, whose name in Czech means the daily toil.

Rachota version 2.1 was released a few weeks ago. It's written in Java, so you can run it on any OS, provided that you have a Java Runtime Environment (JRE) of 1.5 or newer. To get started, just download the 295KB rachota_21.jar file, put it in a directory of its own, and run it:

$ java ~/rachota/rachota_21.jar

If you're going to make a habit of using Rachota to track work, you should probably have it start automatically whenever you begin a work session. You can do that by putting the above line in your .xsession file.

The application is smart about auto-detecting your language (it's localized for English, Czech, German, Hungarian, Japanese, Romanian, Russian, Portuguese, and Spanish), but you can specify any supported language by giving the language and country codes at the command line:

$ java -Duser.language=ja -jar ~/rachota/rachota_21.jar

Getting started is a straightforward process; the tool's author, Jiri Kovalsky, has a three-step demo for the impatient.

To set up, click Settings in the System menu. Enter the length of your work day and then click the Add button to begin adding any recurring tasks you're liable to encounter on most workdays. Having a good set of recurring tasks stored in your settings is very helpful, because then you only have to add additional tasks that are unique to a given day. You can set the tasks to repeat every day, on given days, on work days, or on weekends. Giving a category for the task, such as the name of a particular job or client, is not required, but is useful later for reporting. Tasks may be prioritized as Low, Medium, or High -- and when you switch to a task with a lower priority than another unfinished task, Rachota makes you confirm that you really want to do that.

As with any time tracker, you have to get the right level of detail for your tasks, which takes some time. Plan on experimenting for a few days to get the feel for how it works. You don't want to have general, open-ended tasks, but you don't want to be so fine-tuned as to individually track every minor step in some regular work process either.

Click to enlarge

When you're done adding default tasks, click Done to return to the main window. You can then add tasks that apply to a particular day only by clicking Add in the main window. If you don't plan to work on any task in your plan on a given day, just click it to select it and then click the Remove button.

To look at your plan for another day, use the Next and Previous buttons to cycle back and forth in time, or use the Switch date command, found in the Tools menu, which lets you move quickly to any date with a visual calendar. This is handy if you find out about a meeting or some other required task for another day -- visit that day and click Add to add the task.

To start working on a task, select it from the day's plan by clicking it with the mouse and then clicking on the Select button. Then click the Work button; from that instant, Rachota begins tallying up the seconds for that task. When you take a break, click Relax and Rachota will chalk up idle time.

You can shorten this process by just double-clicking the name of a task in the plan table, but you have to be careful and make sure that the task actually starts getting recorded. When you're relying on task management software, nothing's more infuriating than working on a task only to come back to the manager and see that all your time has been recorded as "idle time."

Usability might be improved if the current task were displayed in a larger font and somehow offset from the task list, perhaps by being highlighted in red. As it is, the only way you can really tell which task you're working on now is by watching the seconds tick away in the Duration column. This is especially dangerous when you have an entirely different task highlighted than the one that's being recorded -- it's too easy to assume that the highlighted task is the one that's now running.

It's inevitable that you'll make one of these mistakes and need to move some time between tasks. To do so, just choose the Move Time option under the Task menu, and select the names of the tasks. This operation is only permitted, however, on tasks in the current day. Once the day is done, you can't go back and edit it -- at least through the menus. Kovalsky tells me that this is by design.

"[The] user is expected to closely cooperate with Rachota," he says. "My intention was to not support any kind of cheating. I have designed it as a real-time tracker and not some timesheet editor."

Click to enlarge

Kovalsky says he hesitates to support manual editing of time, but you can go into your personal Rachota directory and edit the XML diary files that contain all the raw time data, although you should certainly make a backup first.

One difficulty I encountered in a week's testing was that, if I forgot to start Rachota at the beginning of the day, I'd need to manually add hours to a task for that day. Kovalsky tells me that it can't currently be done, but that he plans to implement it soon.

Rachota does not handle late-night work sessions very well -- when midnight comes, it should flip over to the next day's plan, but it doesn't; you'll have to remember to exit and then start it again. Similarly, if you keep your machine running all night, you'll have to stop Rachota at the end of your work day, and then start it up again at the beginning of the next, or you'll be recording work on the previous day, and you'll have to edit the XML to get it out. But if you exit Rachota while a task is running, you can set the time from that moment until you start Rachota again to be added to the current task, which is nice.

Some time trackers, like GnoTime, will figure out that you're not there after a certain amount of time lapses with no keyboard or mouse input. Kovalsky is also aware of the issue, but says that as far as he knows, it's not possible in Java.

"But I might be wrong," he says, "and the idle state detection is supported in Java 6 already."

Rachota's reporting is very good. To get a chart of your current week's work, just click the History tab; the chart you see shows your work hours for the week, with indicators for your normal workday, and average hours both on workdays only and across all days. If you double-click any day's column in the chart, Rachota shows you the task view for that day. (Then click "Show finished tasks" to view everything you did that day.) You can also filter tasks by clicking the Tasks tab and making a new rule -- filtering out tasks that contain or don't contain a given keyword, say, or highlighting tasks whose priorities were set to "High."

What you see is the "total time" chart, but if you click "from/to," the chart draws the day's columns from the start time at the bottom to the finish time at top, showing your work in the context of the entire day's hours.

When you've selected the options that you like, click Generate report and give a file name and description for the report. Rachota then writes an HTML file in its directory; in the file, you'll get the period, number of days, a PNG image of the chart, a list of any filters that you've applied, and a table listing out all of the tasks that were worked on in that period, the total time, and the number of days each task was worked on. Finally, the report gives the total time for the selected period, which doesn't have to be a given week but can also be specified by day, month or year -- if you need to look at what you've been working on and how long you've been doing it, Rachota makes it easy.

Rachota is licensed under Sun's Common Development and Distribution License (CDDL). It's not quite perfect yet, but it has become my favorite personal time-tracker. I especially like that Kovalsky actively solicits feature requests and is open to suggestions for improvements. I've gotten used to Rachota on my desktop, and I look forward to trying new versions.

Click Here!