Interestingly I wrote something very similar to tagtime a number of years ago, and am still using it. I don’t do random sampling (didn’t think of it at the time), but at 15 minute intervals. I’ve got short cuts and defaults to remember the last thing I was working on, automatic (and manual) time division when I’ve worked on multiple projects in the interval. Over the last year, I’ve gotten it the point where it automatically fills in timesheets for me. Mine too is Perl.
Of course, this sort of thing only works as long as you’re honest about what you’re working on. Sometimes I’m very good about being honest when I’ve gone off-task, sometimes less so. But it’s easy to go back through my logs and find out how much time I’ve wasted when I intended to be working.
Ooh, you should check out tagtime on github—http://tagti.me—and see if we can join forces on this. I think it’s important to have Poisson-distributed sampling because otherwise you can anticipate the next ping and insert a bias into the tracking (even if you’re trying to be perfectly honest—in fact, you might try too hard and overcompensate, inserting the opposite bias). If the pings are Poisson then that’s impossible.
The original reason for the 15 minutes sampling was due to how we do billing, but I’ve never tried to “game” it, and if I’m distracted enough to be able to anticipate the next ping, there is something seriously wrong with me since I’m clearly not focused at all. :) If I work on two projects during an interval, and am not sure (roughly) how I split my time, I’ll split it even. It’s worked out pretty well.
I’ll take a look at tagtime at some point next week. I’d guess that there’s a way to tune lambda based on the minimum feature size you’re trying to capture, right? It’s been a while since I’ve dealt much with Poisson distributions, and never had to generate them.
Interestingly I wrote something very similar to tagtime a number of years ago, and am still using it. I don’t do random sampling (didn’t think of it at the time), but at 15 minute intervals. I’ve got short cuts and defaults to remember the last thing I was working on, automatic (and manual) time division when I’ve worked on multiple projects in the interval. Over the last year, I’ve gotten it the point where it automatically fills in timesheets for me. Mine too is Perl.
Of course, this sort of thing only works as long as you’re honest about what you’re working on. Sometimes I’m very good about being honest when I’ve gone off-task, sometimes less so. But it’s easy to go back through my logs and find out how much time I’ve wasted when I intended to be working.
Ooh, you should check out tagtime on github—http://tagti.me—and see if we can join forces on this. I think it’s important to have Poisson-distributed sampling because otherwise you can anticipate the next ping and insert a bias into the tracking (even if you’re trying to be perfectly honest—in fact, you might try too hard and overcompensate, inserting the opposite bias). If the pings are Poisson then that’s impossible.
The original reason for the 15 minutes sampling was due to how we do billing, but I’ve never tried to “game” it, and if I’m distracted enough to be able to anticipate the next ping, there is something seriously wrong with me since I’m clearly not focused at all. :) If I work on two projects during an interval, and am not sure (roughly) how I split my time, I’ll split it even. It’s worked out pretty well.
I’ll take a look at tagtime at some point next week. I’d guess that there’s a way to tune lambda based on the minimum feature size you’re trying to capture, right? It’s been a while since I’ve dealt much with Poisson distributions, and never had to generate them.