Notes on Document and Activity Details

Quite a while ago, RescueTime started allowing premium users to track detailed activity inside their applications, and, later on, websites as well. Here, I’m going to discuss how we are going about providing this feature, and then what complexities remain for some currently untracked (and some tracked) applications. Premium users are then invited, from inside RescueTime, to request details for their favorite applications and websites that do not already have it.

You might wonder what mechanism allows us to track this information: we strive to maintain a secure and lightweight, minimally intrusive application, and didn’t want to go spelunking around in your system to uncover this. The answer is surprisingly simple and actually very powerful: in most cases, the window title of your current application lets us know, and often it may provide even more valuable details for those who wish to mine their own data.

Let’s look at a few examples for the application TextMate:

alert.rb — RescueTime
plan.rb — RescueTime

You can see here that TextMate puts the file name AND the project name in the title. In fact, this is even more valuable than what we were originally looking for (the document name). With this result you can search for results by document OR project name, and you can even use the TextMate project name as a keyword for our Pace projects keyword suggestion feature.

Here’s an example from a website, Google Docs:

User Flow - Google Docs
Google Docs - Folder - RescueTime

As you can see here, Google Docs also provides interesting information. However in this case there is some redundancy– in general we’d rather have too much information that we can clean up for you than too little, with poor resolution.

This brings to fore the crucial technique behind activity details: we can apply fixed rules to modify these window title details on a per application basis. For example, Apple’s iChat app, when you have multiple chats open but are using the tabbed mode, sets the title as “3 Chats” or “4 Chats”. While this number might be a wee bit interesting, mostly it just makes for noisy results: we’d as “separate” activities every time you added or closed a tab. So we apply a rule on all iChat details: if it looks like “X Chats” we just alter it to be “Multiple Chats”.

Clearly, for sanity’s sake, we try to keep these rules strict, sensible, and simple. In most cases we don’t need any special rule. Any time a new application is enabled for details, if we get customer requests for details adjustments, we make our best attempt to accommodate them, if possible. This is especially applicable for those of you with complex internal web applications.

Certain applications that make extensive use of modal windows pose challenges to us. The chief example here is Adobe’s creative products. Currently, if you move to a modal window to adjust something on your image, we would get the name of the modal window, but not the current image being edited. This proves less than ideal for designers who have a strong interest in tracking time by particular images for clients. For this reason, we do not have details enabled on these kinds of applications. We are working hard on a solution that meets customer needs here. In the meantime, our Pace product offers designers another way to tie time spent and tracked by RescueTime back to clients and projects.

Finally, a few notes on privacy. Users will quickly notice that Mail is the other top-used application for which there is no or limited detail provided. During internal testing, we found that window titles for almost all mail applications include the current message subject in the title. We quickly determined that there was no good predictable way to remove it by rule, and that it posed a pretty significant “oops” moment of privacy risk. Some other apps the put conversation level detail into titling are Skype and Twitter. We have a work around for Skype, but continue to consider and monitor others.

Which brings up a feature under consideration for which we welcome your input: would it be valuable for you to control which applications get details tracked yourself, on your account only? Feel free to comment with your opinion, or to submit feedback through the website.

Now, for you premium users, here’s the candy at the end of this long post: you can now request details for any application that doesn’t currently have them by using the Time Reports / Activities view and clicking on an app or website that doesn’t have a (# documents) addend. You’ll be on time detail page for that activity, which offers a link for making the request. This puts it into a queue we check (usually quickly) and update your favorite app. Keep in mind the limitations just discussed above.

(These are full size screenshots, so widen your screen to full width.)
Look for “api.rubyonrails.org” in the Activities list:

Activities View by Rank

Now, we clicked on it, and are on its detail page:

Activity Detail View

We can click the green text to indicate our interest.