Application Usage Monitoring
Recently I’ve had a couple of ideas for a project (like I need another one of those). The goal would be to make a library which allows applications to easily track their user’s interactions and log them in a central location. Project maintainers/contributors could then look at the collected data to help them make decisions about what they should be spending time on. For instance, a media player might log what types of files are played or if it was synced to an iPod-like device.
As far as technical hurdles go, doing something like this is pretty easy. The main questions I have are around the kind of policies that should exist for such a thing. Obviously, participation should be opt-in. But should it be on a per-app basis, or per-user? Or both? If it is per-app, you would likely get bombarded with a prompt on the first run of every app that uses this system. If that is a small number it might be ok, but hopefully that wouldn’t be the case :). On the other hand, maybe you don’t want certain sensitive applications (email client?) ever sending info.
Then there’s the question of who should have access to the data. My feeling is that the user should always be able to see everything that he has sent. But should he also be able to see everyone else’s individual data? What about the aggregated data? That leads me to the next question. Should there be a cookie that identifies a single user throughout all applications? Or even a cookie per-application? I think having a cookie across all applications would definitely make the data more useful, but I’m not sure if people would be opposed to such a thing. Of course, this leads to yet another question. How do we keep personal information out? I don’t believe there is a technical solution to keep things like this from making its way in. Developers will need to be very careful, and that kind of bothers me. If all of the data on the server is available to everyone then maybe public scrutiny will help keep things in check, but who knows.
These are just a few of the questions I have come up with, and I am sure others can think of plenty more. Is it possible to come up with something that benefits the development community without infringing on user’s privacy? Even so, would users participate? Comments are open.
January 18th, 2008 at 11:50 am
Yes, that information is useful. On the other hand MSFT and any other propritary company is called the root of all evil, when they try to established this kind of services.
What makes FOSS that superiour, that such an intrusion into our users privacy is justified?
AFAIK many people switch to FOSS, exactly ’cause they want to avoid this kind of sniffing!
January 18th, 2008 at 11:55 am
How about making all the data public? The more transparent it is, the less people will try to crack it.
Also, it should probably be some king of a gconf setting with a control center applet that allows you to toggle it on or off. Per-application sounds like too much hassle for the willing ones (constantly clicking “allow”) and some system admins might want to disable that by system policy.
Also, if you stick to sending simple string tokens and timestamps, private sensitive data should be pretty safe (unless I finally write that vibrator control applet I was thinking about for some time and decide to link it to your library ;]).
January 21st, 2008 at 4:47 pm
I love the idea of this, and have toyed with it myself. There are many other benefits, such as identifying areas of an application that are underused. Reasons could be poor or unintuitive user experience or the need for providing additional end-user training.
The data would still be useful even if it was submitted anonymously.
Cheers,
Stuart