Tuesday, February 28, 2006

The price of freedom is responsibility

The price of freedom is responsibility, but it's a bargain, because freedom is priceless.
~ Hugh Downs

Wednesday, February 22, 2006

Web-based TODO list management: Horde+Nag and ackerTodo

Horde with Nag is harder

I was tasked to survey tasklist management software and I came down to Horde+Nag and ackerTodo. Well, I chose ackerTodo. While I was downloading PEAR modules for Horde, I took the chance to unzip ackerTodo-3.6.tar.bz2 to /var/www/html. Then I came back to configuring Horde. To cut the story short, Horde with Nag is much more difficult to configure compared to ackerTodo. I gave up with Horde+Nag and resorted to recommending ackerTodo for the job. Complexity won in the trade-off with Flexibility. The modularity idea of Horde is a good concept though.


ackerTodo lacks documentation

ackerTodo doesn't have a comprehensive and idiot-friendly documentation besides the README, which one will be able to see only in the downloaded distribution (or in the SourceForge CVS viewable here).


Mailing is coupled to OS due to use of mail()

When I first demoed it, my manager looked for email capabilities. So I got back to my desk to search for that. At first, what I saw from the README was that there was a suggestion for a cron job that will mail users with tasks due on the present day (using date("Ymd")). This was not acceptable. Since there is no exhaustive documentation, I resorted to looking at the code. The code states that when a new task is assigned, the assigned person is mailed, if he/she sets the mailing preferences. So I thought that mailing will be done by simple use of sockets and not the underlying operating system mail transfer agent to decouple itself from the features of the OS (which may not be present). OK, I was wrong, it uses mail(). So I read the php documentation on mail() and it says there that the function uses sendmail. Luckily we have sendmail, and with some tweaking, ackerTodo is sending mail already. Previously I thought I would have to code this functionality myself; but due to patience and laziness, I saved modification efforts.


Simple control on assignment of tasks by others

One note that I have is that the user can choose to disable being assigned tasks by others. One of the main reasons a very high executive of our company asked for this is for him to be able to assign tasks to his managers. If one of his managers disabled being assigned tasks by others, this very high executive would not be able to assign this manager tasks unless the very high executive (which will have admin rights) explicitly enable what the manager disabled. (Well, this could be a minor irritant for very high executives, but on second thought, are not very high executives very irritable?...) So I wish ackerTodo had an admin capability to allow or disallow modification of the option to be assigned tasks by others. Or more fine-grained control on who can assign tasks to whom.


I fancy a java version, ackerTodo-java?

ackerTodo is simple and sweet. Only, it is in PHP. I am imagining something very much like it done in Java. Which brings to mind Spring, Hibernate, maven, javadocs, xref docs, topcoder-inspired tests, UML diagrams,... ListfulThinking / jtodo just so happened to be a swing application.

Webcalendar (on sourceforge.net, on freshmeat.net) looks interesting also...