Creating a task manager, stage the first, or: the itcy and scratchy show

So I decided to write a task manager.

I have recently tried to streamline my daily assignments in a task list, so I'll have track of stuff I do, or need to do. However, the way I work, I often find that a simple list does not suffice.

I would like a second level todo list that will collect several tasks that need to be accomplished before I can mark an item completed. Most of these are common for each job, but some are not. For instance, I want to tick off "merge from master before pushing" for every task, but "write POD" might not apply for pure-GUI (Template::Toolkit, HTML and JavaScript) jobs. Naturally, I want those to be available every time I add a task, and selecting from those should be as simple as possible.

Sadly, I found that, for all the plethora of solutions available, none gives me what I actually need.

I was using vimtodo, a simple todo list for Vim, which allowed me to add tasks and checklists, but there was no way to actually automate this process, which meant a lot of copy/paste work for every item, and it had no online component. Getting Things Gnome has sub-tasks and can be synched via Remember the Milk, but tasks, again, need to be entered manually every time. Other web solutions had parts of what I wanted, but not all. The closest I got was Pivotal Tracker that allowed me to add tasks to each job, but, again, manually.

While at it, there were other features I thought as "nice to have". There should be a "start/pause/end" button that I could toggle, and a way to tell me how long I actually worked (In a more robust way than started on/ended on).

I've decided to work with Hiveminder as a back-end, I used it once, and remember it as flexible and reliable. It's also written in Perl and has a nice interface via Net::Hiveminder, and a very clear API.
It also has a feature that allows you to link another task as a "But first..." or "And then..." which I'll use to link the todo's to the tasks. I'm not sure about the exact interface I'll use, so for the meanwhile, I'll focus on the functionality.

Next: linking Hiveminder and hacking around it.


If you want to patch Net::Hiveminder feel free to send pull requests to and I'll try to respond quickly.

And of course if you have questions about Hiveminder or Net::Hiveminder feel free to use the feedback box on every Hiveminder page. :)

Good luck!

On quite the opposite direction, I was linked to WorkFlowy (, and I've been trying it out recently.

It's basically a list of lists of lists of lists (to infinity). It's very basic (new item, delete item, remove item, move item, complete item) but has helped me quite a bit lately. I've been getting a lot more done with a fraction of the time.

Unfortunately there are at least two major features missing for me:
- You cannot intersect lists (an "URGENT" list pertaining to a few items from other lists)
- I do not think it's stored encrypted on the server (although I am able to use HTTPS)

(I wish we had inline PGP/GPG in browsers...)

Leave a comment

About Erez Schatz

user-pic Because sometimes you need to bash your head against the wall until either you, or the wall, give up.