The Pennyworth Project

Just another WordPress site

Pennyworth Punch Clock 1.0b3

Pennyworth Punch Clock 1.0b3 is now available for download.

This release includes minor bug fixes, a new detailed report, support for user-specified date ranges, and a hot key (Command-Control-P) for quickly updating manual streams.

Prerequisites

MacOS X 10.5 “Leopard”

Source

There is not a source distribution available yet, but if you’d like the source code, it is available via Subversion at

http://context-macosx.googlecode.com/svn/trunk/Tools/Applications/

The source requires Xcode 3 to build.

Bugs, suggestions, or comments?

Please post any feedback in the comments below or send it to pennyworth@aetherial.net. This is early release software, so there will be bugs, and the application will only improve when problems are identified and submitted.

Posted by admin at 6:34 pm on July 30, 2008 . Filed under Other Apps,Pennyworth,Pennyworth Punch Clock.

Pennyworth 1.3

Pennyworth 1.3 is now available for download.

This update fixes a variety of bugs and adds support user-defined rules and a system-wide hot key (Command-Control-C) that allows you to more quickly make context predictions.
Prerequisites

MacOS X 10.5 “Leopard”

Growl (Recommended): Pennyworth can be used without the Growl notification system by viewing the current predictions, but this occupies precious screen real estate and you attention. In order to receive visual notifications of updated predictions, I recommend that you install and configure the Growl notification system before running Pennyworth.

Source

There is not a source distribution available yet, but if you’d like the source code, it is available via Subversion at

http://context-macosx.googlecode.com/svn/trunk/Tools/Applications

The source requires Xcode 3 to build.

Bugs, suggestions, or comments?

Please post any feedback in the comments below or send it to pennyworth@aetherial.net. This is early release software, so there will be bugs, and the application will only improve when problems are identified and submitted.

Posted by admin at 6:32 pm on . Filed under Pennyworth.

Pennyworth: New rules functionality

I wanted to post a quick note a some major new feature that will be available in the next release of Pennyworth. After many requests and some usage of my own, I’ve implemented a rule-based system in the system to compliment the machine learners. The interface looks like this:

Pennyworth: Rules

On the left is a list of rules. When new sensor readings are made available, the machine learners consult the rules database for any rules that match their given key (“Activity”, “Location”, or “Social Context”).

If a matching rule is located (rules are tried in the order displayed in the interface), the learner evaluates the “state of the world” against the rule. If the rule matches the state of the world, the rule’s prediction is returned and the learner does not attempt to generate a prediction using its learned model. If no matching rule is located, the learner uses its model to generate a context prediction. (This is the old default behavior.)

Pennyworth: Rules

The rule editor is smart enough to look at your prior sensor readings and populate the left-most pulldown list with prior sensor names. The middle pull-down is populated with a variety of operators for matching. There are greater-than and less-than operators for numeric values, string matching (“‘Active Application’ is like ‘Xcode*'”) for categorical variables, and I included a “contains” operator for multi-valued sensors.

Using this interface, it is possible to construct an arbitrarily complex set of rules that is more expressive than the machine learner. I don’t expect users to stop using the machine learner in favor of these rules (creating a sufficiently descriptive model is quite tedious), but I do expect that the combination of the two will make Pennyworth much more user-friendly and accurate.

This will be out in Pennyworth 1.3, which I’ll make available later this week. The functionality is working marvelously, but I still need to deal with a few more UI bugs and tweaks before letting this loose in the wild.

Posted by admin at 9:23 pm on July 28, 2008 . Filed under Pennyworth.

Pennyworth 1.2

Pennyworth 1.2 is now available for download.

This update fixes a variety of bugs and adds support for undoing the last context prediction by selecting “Undo Last Prediction Correction” from the menu in the status bar.

The undo feature is useful for correcting situations where only correct one prediction when two needed correction. (For example, I often correct the Activity context quickly while realizing that I should have corrected Social Context as well.)

Prerequisites

MacOS X 10.5 “Leopard”

Growl (Recommended): Pennyworth can be used without the Growl notification system by viewing the current predictions, but this occupies precious screen real estate and you attention. In order to receive visual notifications of updated predictions, I recommend that you install and configure the Growl notification system before running Pennyworth.

Source

There is not a source distribution available yet, but if you’d like the source code, it is available via Subversion at

http://context-macosx.googlecode.com/svn/trunk/Tools/Applications/Pennyworth/

The source requires Xcode 3 to build.

Bugs, suggestions, or comments?

Please post any feedback in the comments below or send it to pennyworth@aetherial.net. This is early release software, so there will be bugs, and the application will only improve when problems are identified and submitted.

Posted by admin at 10:02 am on July 25, 2008 . Filed under Pennyworth.

Pennyworth Punch Clock 1.0b1

After a decent amount of work, I’m happy to announce the release of the first application designed specially for Pennyworth: the Pennyworth Punch Clock.

The Pennyworth Punch Clock (PPC) is a time tracking utility for monitoring the predictions produced by Pennyworth (activity, location, social context) along with other relevant events (active applications, current websites). PPC uses a combination of automatic and manual logging to create useful reports about how you spend your time.

The software is available on the Pennyworth website. I don’t have many instructions for getting started posted, but I will be working on those this weekend. However, if you have any questions or comments, please let me know via e-mail or in the comments below. This is an early release of an application that has a lot of potential, so I appreciate all the feedback that I receive.

Posted by admin at 3:23 pm on July 24, 2008 . Filed under Other Apps,Pennyworth Punch Clock.

Pennyworth 1.1

Pennyworth 1.1 is now available for download.

This update fixes a variety of bugs and adds support for disabling some sensors from within the application preferences.

Prerequisites

MacOS X 10.5 “Leopard”

Growl (Recommended): Pennyworth can be used without the Growl notification system by viewing the current predictions, but this occupies precious screen real estate and you attention. In order to receive visual notifications of updated predictions, I recommend that you install and configure the Growl notification system before running Pennyworth.

Source

There is not a source distribution available yet, but if you’d like the source code, it is available via Subversion at

http://context-macosx.googlecode.com/svn/trunk/Tools/Applications/Pennyworth/

The source requires Xcode 3 to build.

Bugs, suggestions, or comments?

Please post any feedback in the comments below or send it to pennyworth@aetherial.net. This is early release software, so there will be bugs, and the application will only improve when problems are identified and submitted.

Posted by admin at 12:11 pm on July 17, 2008 . Filed under Pennyworth.

Updated thoughts (and to-do’s) regarding the Pennyworth Punch Clock

Thanks everyone who sent in comments and suggestions. They were immensely helpful.

I’ve gone ahead and added the following to my PPC to-do list:

1. Application Stream: This will be an optional time stream (enable in the preferences) that can be turned on to track which applications are active at any given slice of time.

2. URL Stream: This will be an optional time stream that tracks the current URL of the Safari and Firefox web browsers. I’ll probably break this into two time streams, one for each browser.

3. Rename the “Statistics” tab to “Reports”: I plan on implementing this as an en export option that spits out your time streams as an XML file. Scripts and other programs can be run on this file to generate specific reports of how time has been spent. I’ll include some options for dropping such scripts in the application support folder for running the reports straight from the interface.

4. AppleScript support: Initially this will be implemented as two main classes of commands: reading and writing. Reading will allow calling scripts to get a full lists of slices in a given time slice (“tell app ‘PPC’ to return every slice of the timestream named ‘Foo’). I’m also planning on implementing a feature where calling AppleScripts can log slices to streams (“tell app ‘PPC’ to log ‘Eating’ to timestream named ‘Foo’).

Fortunately (with the exception of the reporting functionality), I’ve already written most of this code for other projects. I’m going to keep plugging away and see if I can have an early beta version released sometime next week.

Posted by admin at 5:37 am on July 15, 2008 . Filed under Other Apps,Pennyworth.

Introducing Pennyworth Punch Clock

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.

Pennyworth Punch Clock: Main Screen

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.

Pennyworth Punch Clock: Preferences

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:

Pennyworth Punch Clock: Stream Editor

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?

Posted by admin at 4:27 pm on July 14, 2008 . Filed under Other Apps,Pennyworth.

Pennyworth 1.0

Pennyworth 1.0 is now available for download.

This release includes some major bug fixes and feature enhancements. Please see the notes below.

New Features

Bonjour Listener: Remote clients can now log observations to Pennyworth by sending a REST request to

http://HOST:PORT/log?name=SENSOR_NAME&value=SENSOR_VALUE&key=KEY&duration=DURATION

Local hosts running Pennyworth can be located using the “_pennyworth._tcp” Bonjour name. The server must be enabled in the preferences and a key must be selected for the server. (This is much like a password that the client must provide to verify that it’s logging to the proper Pennyworth installation.)

Face Count Sensor: This sensor uses attached cameras (such as the iSight) to count the number of recognizable faces visible at set times. (Face recognition is achieved using the OpenCV library for computer vision.) This feature must be enabled in the preferences.

Bug Fixes

This release fixes the bug where the system would prompt for the location of the “Shion” application.

Prerequisites

MacOS X 10.5 “Leopard”

Growl (Recommended): Pennyworth can be used without the Growl notification system by viewing the current predictions, but this occupies precious screen real estate and you attention. In order to receive visual notifications of updated predictions, I recommend that you install and configure the Growl notification system before running Pennyworth.

Source

There is not a source distribution available yet, but if you’d like the source code, it is available via Subversion at

http://context-macosx.googlecode.com/svn/trunk/Tools/Applications/Pennyworth/

The source requires Xcode 3 to build.

Bugs, suggestions, or comments?

Please post any feedback in the comments below or send it to pennyworth@aetherial.net. This is early release software, so there will be bugs, and the application will only improve when problems are identified and submitted.

Posted by admin at 8:49 pm on July 5, 2008 . Filed under Pennyworth.