The Pennyworth Project

Just another WordPress site

Jarvis 1.0b2

Jarvis 1.0b2 is now available for download.

Because of some of the major bug fixes in this release, please remove any previously-installed versions of Jarvis using Add/Remove Programs in the Windows Control Panel.

Now onto the major changes:

1. Jarvis now has a proper installer that allows users to choose where to install the application.

2. The installer adds a shortcut to your Startup menu. (Delete this if you don’t want Jarvis to start on login.)

3. The installer checks for the appropriate Windows prerequisites (.Net 3.5 & Windows XP service pack 3 or greater).

4. The first pass of the user interface is complete. The Rules and Learners interfaces are complete and functional, and I’ve added new preference options for configuring the training hot key and manipulating the machine learners.

5. I’ve fixed a variety of bugs that cause crashes on startup.

This is still an incomplete release in that it talks to few applications to collect context information and still has no way to automate other applications in response to changes in users’ environment. These will be focuses for the next release cycle.

Thanks for giving the software a spin and let me know of any bugs or other issues.

Posted by admin at 9:28 am on February 14, 2009 . Filed under Jarvis.

Jarvis: Next Steps

Now that a version of Jarvis is available and people are talking about it, I wanted to lay out some rough plans for future development.

First of all, I am going to try and release a new version every couple of weeks. I’m planning to push out another public release two weeks from yesterday.

Priorities for Jarvis 1.0b2:

1. Correct the bugs reported in 1.0b1. I already have a bug filed for a hot key issue on XP.

2. Implement the rules interface. This is the Windows equivalent of this.

3. Implement an interface that exposes a visual representation of the machine learner. Pennyworth uses a nested set diagram for this purpose, but I’m planning on using something more akin to a flowchart for Jarvis. The functionality lets users see the model that the system constructed to predict context and this allows them to be better “teachers”.

5. Finish implementing the preferences interface, including options for manipulating the learners.

6. Misc minor UI tweaks.

7. Add pruning to the C4.5 decision tree algorithm.

8. More application sensors. Particularly, Firefox & Chrome “current web site” sensors.

This is a tall order, but one that should be achievable in the next two weeks. Don’t forget to send any feedback of your own to


Posted by admin at 5:49 am on February 3, 2009 . Filed under Jarvis.

Introducing Jarvis

It’s been a while since I’ve updated this weblog. I’ve had a busy couple of months, and the following message explains (some of) what I’ve been up to.

From an e-mail I sent out earlier today:

You’re receiving this mass message because I’ve been in touch with you about the Windows port of the Pennyworth system (or you belong to one of the NU mailing lists).

I wanted to let you know that while I’m several days late, the Windows port of the Pennyworth architecture is now online at 

Jarvis represents my initial efforts at bringing the context-sensing approach embodied in Pennyworth to the platform(s) that the rest of the world is using. 🙂

This is a very early release and at the moment, it can observe you, learn context models from your corrections, and predict your context in real-time. That’s about all that it does at the moment. In next several weeks, I will be adding new features and functionality in order to achieve feature parity with Pennyworth.

The current missing features include:

  • The ability to modify other applications based upon context changes.
  • The ability to solicit context information from other applications.
  • The rules interface for overriding the machine learner.
  • An interface that exposes the learned context model for inspection.
  • Application auto-updating.
  • Sharing context to networked clients (including Pennyworth).
  • The ability to tweak or reset the machine learners.

My main goal in releasing this initial version is to begin to identify any brittleness in the system that may be a result of any of the combinations of hardware and software that you use. In other words, this is the “test and see if it crashes on others’ machine” release. If all goes well and the current set of functionality is stable and responsive on your systems, I’ll move onto the next steps of adding the missing functionality above.

I’m quite excited to be working on this and I’m looking forward to receiving your feedback on Jarvis. Ideally, I’ll be able to turn your feedback around quickly and do a series of releases every couple of weeks between now and June. By June, I hope to have iterated the system enough times that it’s as stable and full of features as Pennyworth. Once I’ve achieved that goal, I’ll be in touch with some of you to talk about how we can make Jarvis talk with your applications in order to start building a smart context-aware Windows environment.

Thanks for your patience, and please let me know what you think.

Posted by admin at 6:07 pm on February 2, 2009 . Filed under Jarvis,Other Apps.