So I’ve been putting the finishing touches on my Sinatra productivity app. After tinkering around with it for a while, I’ve found an fairly optimal level of organization.
Sinatra is a nice, lightweight framework. I recommend it.
It works like this. I have a text file: plan.txt. I have my tasks writen out there in a simple list.
Beneath each task, I have a line showing my level of completion of that task: 0 for unstarted, – for in progress, and 1 for complete.
Then I use that simple information and some redis trickery to do some note-taking behind the scenes and assemble a visual display.
As soon as I change the file to indicate that a task is underway or complete, I record that automatically. This data is then fed into the views, for me to scan and absorb at a glance.
The centerpiece of this whole project revolves around Google Graphs.
On the most important graph on the display page, I show how long I’ve spent completing each task. Every else has turned out to be secondary to this graph, the real be-all and end-all of the project. Everything is there, proportionally represented, including breaks (recorded as times when there’s only 0’s and 1’s on the text file, meaning nothing is recorded as being ‘in progress’).
And – surprise, surprise – it seems that most of my time is allocated ‘off the books.’ This isn’t the same as saying I’m goofing off during that time, or not doing work. It just means that it’s not officially designated on my to-do list. I would’ve thought that I was being fairly punctual about my to-do list, but the graphical evidence plainly shows that I was not. That is the whole point of the productivity app, after all – illuminating things I didn’t know were happening – so finding this out was a big win for me.
Consequently, getting into the habit of recording projects when they start, and tabulating all my activities, is my next big goal. For me, that’s the way technology works best: a little bit of code-nudging, followed by modification of my own behavior, and a more intelligent and aware approach to my work.