I think it would be straightforward to write a program that monitors/records whatever applications have focus. I am only familiar with OS X, though. Using the accessibility APIs you can get the focused window and register for focus change notifications.
Of course there is a bit more in parsing the data you gather and creating reports/doing whatever, but the monitoring part should be easy enough.
>Hence the major effect of the Panopticon: to induce in the inmate a state of conscious and permanent visibility that assures the automatic functioning of power. So to arrange things that the surveillance is permanent in its effects, even if it is discontinuous in its action; that the perfection of power should tend to render its actual exercise unnecessary; that this architectural apparatus should be a machine for creating and sustaining a power relation independent of the person who exercises it; in short, that the inmates should be caught up in a power situation of which they are themselves the bearers. To achieve this, it is at once too much and too little that the prisoner should be constantly observed by an inspector: too little, for what matters is that he knows himself to be observed; too much, because he has no need in fact of being so.
Michel Foucault on Bentham's Panopticon Prison design, which utilized a ring of cells around a central guard tower.
I am using RescueTime because i want to track on all my computing devices, but there are a few alternatives that runs locally. I recently came across this one: http://timingapp.com/ Haven't tried it tho.
I second Manic Time. It's offline, so your data remains with you. Plus in addition to graph visualizations, it also allows you to track what applications, documents and websites you spend most time on.I reckon they have a portable version of it too.
my problem with these tracking apps is that it's too easy to "cheat" the system if you have more than one monitor. I typically have a video or stream open on one monitor while I have focus on a window in another monitor so the app doesn't log my distractions.
Timing (http://timingapp.com/) does a nice job. It also allows you to define "projects" which are applications, folders, or websites which then get tracked together. Useful for client work or in figuring out how you actually spend your time on a spike, for instance.
Thanks, I started using it, it's already 5 hours. I see now it doesn't track very well. Then I've read in their website that it doesn't support firefox. It does track websites with firefox but has some errors.