This post originated from an RSS feed registered with Ruby Buzz
by Assaph Mehr.
Original Post: Todos in Pimki
Feed Title: Open Mouth, Insert Foot (Echo Internationally)
Feed URL: http://www.bloglines.com/blog/AssaphMehr/rss
Feed Description: General geekness venting, mostly about Ruby and why Software Engineering != Computer Science, dammit!
While I'm waiting for the dust on Instiki's SQLite back-end to
settle, I've been doing some front end work for Pimki. First order of
the day: better todo display (the other major todo upgrade - making
them checkable - depends too much on the storage mechanism).
The
most visible change is that the combined Todo view now comes in two
flavours: plain list and quadrant view. There is a full documentation
in the help section, BTW.
The Enhancements
You can now set a few properties on the todo items, besides context. The full syntax is:
todo@context{importance: high, due_date: Dec 23}: buy chrissy prezzies
This
allows you to break your tasks into both urgency (when) and importance
levels. Other properties will be ignored for the moment. One property
that I'll add soon is status, for marking the items as complete. Still need some thoughts about how this should be handled (re display, archiving, etc).
An
additional enhancement is that todo items now automatically pick up the
enclosing page categories as their context. So if you have a todo@home on page with category:garage listed, the context for that todo is both home and garage.
The List View
The
list view is basically the same as before, tweaked for better display.
You can sort the display by name, dates or importance. You can limit
the list of displayed items by context. Each item will link back to the
page/entry it is set on.
The Quadrant View
This is inspired by The 7 Habits of Highly Effective People.
The idea behind it is that we tend to do important and urgent things
first, then move to urgent but not important tasks. Instead, more time
should be given to important but less urgent tasks (read this
for a bit discussion). This view will collect all the todo items and
display them in a table for easy reference on what should be done next.
Currently, the urgency horizon is set at 1 week: if it's due before then it's urgent, otherwise it's not.
Under the Hood
Under
the hood I've split the Bliki and the Task Tracker into their own
controllers. As a testament to the 10x hype with rails this exercise
took about 10 minutes per controller, and I ended up with more tests.
What I did was use script/generate to create the new controller, then
copy over the relevant methods and tests from the Wiki controller to
the new one. I added the necessary routes entries, changed a bit of the
action names and run the tests. It didn't take long to make everything
in the tests pass. I then grep the code to find all the things I
haven't changed, added tests (that failed) and fixed the code. So
overall the result is better (I hope :).
As I edit the templates
and controllers, I also try to modernise the code. Taking advantage of
all the built-in Rails functionality makes Pimki less of hack and a lot
easier to manage in the long run.
Next steps
The next things on the list are to streamline the Bliki interface and complete the (AJAX heavy) Task-Tracker front end.
If you are interested in checking Pimki2 while under development, read my last post
on how to. Short version: export existing, download, unzip, stop old,
start new, import, play. Just don't use it for mission critical data
yet :-)