One of the simultaneously exciting and frustrating things working on Pennyworth is the system’s potential. On one hand, I think that the Pennyworth system has within it the right stuff to really make computing more convenient, effective, and less frustrating. On the other hand, I can’t really demonstrate how this vision “works” without some sort of obvious application. Pennyworth by itself is able to take action on context changes using the built-in AppleScript functionality, but regular people don’t seem to really get this.
One of my major tasks over the summer is to conduct a directed search for the killer app that really lets Pennyworth shine. I’m following the Growl model of releasing the system as a service that is accessible to other applications, and I need to find Pennyworth’s Adium.
While I wait for a project proposal to snake through the appropriate review boards (a cost of doing business in academia), I’ve been thinking about applications that I could release to the general public that helps me explore this space to begin to understand what people want and need. I am happy to say that I’ve been working on a fairly simple application that readers of this weblog might find useful.
Pennyworth Punch Clock (PPC) is a time tracking application that uses Pennyworth to help you recall and analyze how, where, and with who you spend your time with. PPC does this by using the idea of time streams and time slices. A time stream is a timeline that describes the temporal properties of one aspect of your person. For example, a location stream might look like “home, train, school, park, school, train, home”. The elements of the stream are called time slices. In other words, a stream is an ordered collection of slices.
By default Pennyworth exposes three time streams: Activity, Location, and Social Context. PPC listens for changes in these streams and logs them automatically. However, you will likely prefer to define other streams that you populate automatically: projects, official roles, billing rates, phone calls, and so on. To be honest, I expect that my notion of useful time streams differs greatly from the next person, and PPC is designed to accommodate these differences by being as general as possible.
The application is still in its early stages of development, but I wanted to publish a few screenshots of the work in progress to spark a conversation about who might consider using this software and how.
This first window shows the main time log. Time streams are in the upper half of the split pane and slices logged to each stream are visible in the lower half. In this screenshot, I have the “Activity” stream selected. The logs may be filtered by time as shown with the pulldown containing various options for narrowing or expanding the scope of the log.
In user-created streams (“Activity” is not one of them), you can log new slices to a stream by clicking the “Update Selected Stream” button. This invokes a small dialog where you can select a previously-used slice name or enter a new one.
In the preferences tab, you can create or remove new user-defined streams in addition to setting the standard update checking options. In this screen, I’ve created a “Project” stream that I can use to tag time periods when I’m working on different projects. If you click the magnifying glass button, the “Projects” time stream details appear, including an associated color and a list of saved values:
This is some of the more mundane aspects of the interface, and I’d be interested in learning more from you about what you might find useful in an application such as this. Personally, I plan on using this application to accomplish the following tasks:
-
Create a finer-grained log of how I spend my time. In particular, I am interested in tracking how much time I spend on different projects for different “clients”.
-
Better understand how I spend my time throughout the day. I’d like to have some hard data about how much time I spend dealing with e-mail, idly surfing the web, and so on in order to be able to identify and fix particular problem areas. I’d also like to better understand when I am doing these things (during lunch, late afternoon, etc.).
-
Generate better time estimates for getting things done. At the moment, I don’t have enough information about how long it takes to do something like set up a web site, write a 10 page paper, etc. to come up with anything better than off-the-cuff predictions about how long something similar will take in the future.
Once I get the statistical and reporting features of the application in decent shape, I plan on thinking about how to make this application proactive in the sense of providing prompts to the user. For example, I may set up a built in prompt that nags me when the system detects I’m playing games, but I haven’t allocated time for gaming. Another prompt would be one that encourages me to do a little exercise and stretch after programming for a long stretch to reduce the chances of RSI.
I am interested in hearing from any interested readers out there. If you had a convenient and flexible tool for tracking and tagging how you spend your time, what would you do with it?
As a retired Engineering Prof, I spend an inordinate amount of time when I’m not working outside or boating in front of a PM dual-core G5 or an MBP Intel core 2 Duo. That time is primarily divided among several daily activities: moderating an AppleScript board, writing AppleScripts for another application’s forum, reading and contributing to MacOSXhints.com forums, reading far too many NetNewsWire feeds, and beta testing other people’s stuff. For the billable portion of any of that, I use Billable.
Given that Pennyworth now has an AppleScript Manager and that Punch Clock will soon be available, I would like to write a series of connecting scripts so I could see how much time I spend with these activities, which forums I spend the most time in, what RSS feeds I visit most often, etc. In essence, the diary of a day’s computer usage. I have a large number of Applications; how much do I use each of them over the run of a month?
Given the large number of activities, probably no charting but bar graphs of time spent would be readable, each of the bars tied back to the detailed data set it represents.
Just my first thoughts…
Comment by Adam Bell — July 14, 2008 @ 7:01 pm
Sounds great Chris. It sounds like adding a projects layer on top of the context, something so you can specify the difference between web surfing where you’re researching project x vs project y. For me it’s important to be able to add in stuff that I didn’t do on my computer – e.g. I might need to use a lab computer for some stuff, or the phone. A weekly report of how much time spent on each day per project with some detail about activities would be awesome. My dream time tracking app would detect that I’ve switched projects, because sometimes I just switch between different projects at will – often one project will spark an idea relevant to another etc. That can be non-productive but it works sometimes. I just don’t like having to think about what project I’m working on all of the time, I’d rather just do the work and hit my deadlines. Assuming it can’t detect project switches perfectly it’d be great to have a review mode where I could change the project. The review mode would have to have a bit more detail like the active application and the URL if applicable. Anyway, that’s my 2 cents.
Comment by Ericka — July 14, 2008 @ 8:09 pm