I've already seen the answer to this (and I get zero money for mentioning this). You have some software that takes periodic screenshots and then when your day is done you roam through those and can label time segments appropriately. There's at least one software product that more or less does this, and I would use that if I had to bill based on fragments of hour.
At least for me, it was more an exercise in focus, breaking tasks down to smaller chunks, practicing estimations, and analyzing larger spans of time, rather than just being a tool to force me into actually working through those 15 minute segments. It was really nice to have a bit of self-reflection imposed every 15 minutes to see how my expectations of time use were stacking up against the reality. I don't think I would have wanted to spend the time or cognitive effort to revisit screenshots after the fact, when I've lost context and would have to take more time to analyze what's happening in each screenshot and extrapolate between them.
If I were in the zone and working on something that took longer than 15 minutes (which is pretty frequent for most people, I'd guess), I could see this format as pretty nagging and I wouldn't want the interruption. But there's also a reason I only do 15-minute pomodoro sprints. :)
* As a starter: The source code is only a JS snippet. No HTML in there.
* Right away I "fullstory.com" appear in the JS. So I have reason to believe that all user interactions (mouse, keyboard, etc.) are uploaded to fullstory.com. Not sure this is actually the case. Certainly not in favour of it.
* In the network tab, I see requests to heapanalytics.io.
Setting aside the question if such data use is necessary, appropriate, or done elsewhere.
I wonder if this is actually legal.
I certainly did not consciously agree to my data being collected in this way and shared with third parties.
- Is a text like this actually effective?
- Am I violating EU law, if I use the same patterns in my Apps? (I am EU based.)
Most certainly, yes.
Won't put them back without adding consent.
There's also a first-party cookie called "visitor", though that will require a bit more work because there's actual functionality that depends on it.
The whole cookie banner and permissions things is partly a smoke-screen by advertising agencies to hide the fact that you don't actually need up front consent for necessary cookies. :)
"Cookies are necessary to make this site work. Click here to enable cookies!" Fine, but those aren't the same cookies, and mysteriously the website works just fine for me even if I kill the third-party cookies.
I associate trackers with megacorps where they're essentially playing Telephone between management and the boots on the ground doing the work ("we need tracking!" "ok, next on the work checklist is tracking, and here's a service that says it does that...").
We could have made all these discoveries by properly instrumenting our code with our own tracking framework. That said, Fullstory provided us a big bang for our buck in [time spent : value provided]; half-day implementation led to all the usage info we could need.
We've gone as far as creating a recurring "Game Tape Friday" meeting where the whole development team sits down and watches 5-10 user sessions together to record bugs and possible UX improvements.
We're not a small website so this anecdote may be of limited value to you, but I would personally give up syntax highlighting before I would give up Fullstory.
It's totally a game changer for UX design.
Heap, Google Analytics, etc are actually not as useful; I find the app's DB and server logs provide more relevant data. So I don't think I'll add them back.
Closer to the truth is that tracking is a problem.
So as long as you don't use any tracking, you don't have to care about privacy consents. But be aware that simple things like assets hosted on 3rd party servers (e.g. web fonts) can be used to track your users by your partners. Furthermore, everything related to ads or social media is most likely being used to track users.
EDIT: Btw. when I say 'tracking', I mean web tracking like Google Analytics, not time tracking (might be ambiguous in this context).
It's those analytic services that we despise.
The main relevant sections are probably:
Article 7: https://gdpr-info.eu/art-7-gdpr/
Recital 32 (explains some of the valid/invalid methods): https://gdpr-info.eu/recitals/no-32/
while true; do
zenity --entry --text="what u doin" >> done.txt
zenity --question --text "Are you working?"
while sleep 900 ; do .. done
Makes me wonder about code golf for shell scripts. Now there's a rabbit hole...
If there is a timer running it also knows (based on my calendar) if I should be doing something else and asks if I am and offers to change the timer for me 
 custom script
 the same custom script pings my phone/tablet via a Pushcut webhook. This pings me the notification but also allows me to tap the notification and start a new, relevant, timer using iOS shortcuts and Zapier
IMO you can spend days shuffling around the same code if you want. It's not that refactoring is bad it's a priority thing.
Also if you refactor too frequently that's a sign you need to take a step back and more thoroughly plan out your system.
You want good code that's maintainable? You're refactoring (and probably adding tests) as you go.
But that was not what I ended up measuring. The widget (it was) was like someone looking over my shoulder and modified my behavior. I became insanely productive for a few days then had a weird kind off burn out where I declined to enter anything or wrote "watching youtube videos" for days.
Eventually I replaced the widget with a careful cut out from the movie 1984 so that it looked like a telescreen with big brother looking at me. A factory bell would ring and I would be "forced" to take a break. I got bored with that before figuring out the ideal work/break ratio. (It didnt care what I was doing)
I considered automating self-inflicted activity monitoring but any amount alters your behavior... much like your gut told you it would.
Hopefully it has a "same as last time" button, I doubt this has the same cognitive distraction level as fielding a question from a colleague as well. I.e. understand their question, think of the context, etc etc
Some of us have a habit of getting distracted from the task at hand easily and going off on a HN/Youtube/Reddit/browsing/timewasting session.
Continual prompts like this you could catch this within 10 minutes in to a timewasting session and remind you to get back to work.
Personally I probably wouldn't use 10 minutes though as it seems a little too frequent and would go closer to the standard Pomodoro time of 25 minutes (which I have personally used and found useful).
I use one I made myself, and it is set to ask every 13 minutes - the largest prime below 15. Being a prime means it's unlikely to align to any real-world task boundaries, and it's also coprime to 60, so it won't keep asking at the same times every hour.
(Timer like this is actually a nice use case for a smartwatch, along with pomodoro timers. It removes friction from the UX, makes the whole thing less distracting, and allows it to be monitor almost all tasks during the day.)
EDIT: See https://news.ycombinator.com/item?id=20625346 for details.
I built this mostly from the point of view of personal productivity/improvement.
The idea is that it will keep asking you what you're doing even when you don't feel like putting an effort into tracking your time that day. Even when you didn't sleep enough or feel lazy, it'll still keep asking you, collecting the stats, and reminding you that it's watching.
Found the blog post they did back then: http://messymatters.com/tagtime/
I used this for a while and it really was extremely helpful since it activated the "gamey" part of my brain.
I have been using it for the past five years or so. Apart from being a gloriously hacky bundle of perl scripts (and not playing wonderfully well when run on multiple machines) I've found it perfect. There's also an Android version nowadays I think, though.
That blog link explains it well.
I'm being picky because I do plan to use this daily. But I am already happy. Kudos to you dev. =))
Cool build though!
I suspect Hammerspoon on OSX could so something similar.
Pretty sure something like this exists for X11. If not, it would only be a few lines of shell code calling out to xlsclients, xwininfo, etc.
If you really want this data, I think it's best to correlate data crumbs you leave after the fact and tally up your time at the end of the week. GPS data, computer activity logs, phone screen time, etc.
Another good enough answer is to track the time that is most important to you. Billable hours, exercise time, etc.
It's not as insightful as I expected, but certainly brings about enough benefits to continue doing it.
I can see if I spend 2 hours in Terminal or 1 hour in Vscode or 5 hours in Firefox. I can even see the title of sites I spent most time in the browser, etc.
That's the best approach I have found. One example I can think of is https://wakatime.com/ I personally use a python script I found a long time ago that does the same while keeping all my data locally. But it has less integrations and is not as nice.
It's not something a person needs to do forever (unless they want to), but doing it for a week or 2 can be very informative. It's a lot tracking what someone eats for a week to really understand where all the hidden calories are coming from. People are terrible at looking back any length of time and remembering the details of something.
- Profile: every 13 minutes
between 08:00 and 23:00
- Launch task: Request time log
- Profile: on command from AutoPebble
- Launch task: Log time
- Task: Request time log
- Show a screen on Pebble via AutoPebble
- Type: List
- Contents: %OPTIONS
- Vibration pattern: 300, 200, 300
- Task: Log time
- Save "%DATE, %RESPONSE" into a CSV file.
- Variable: %OPTIONS
- hn, work, eating, foodprep, hobbyproj, ...
I made it one afternoon in a grand total of ~30 minutes (including debugging and testing). It requires no Internet connection, doesn't spy on me, I can use it anywhere I am as long as I have my phone in my pocket, I get to own my data in a machine-readable format, which I can trivially send out to my desktop for processing later. Overall, it's a win, and just an example of Tasker being amazingly useful tool in general.
Some extra use notes:
- The logged time is the time I selected an option on my smartwatch, so if I delay or miss a time log request, nothing bad happens. I don't expect my CSV to have perfectly regular entries.
- If I don't select an option in 13 minutes, the prompt will be overwritten by new one; again, nothing bad happens.
- To add, change or remove options, I simply edit the %OPTIONS variable on my phone.
- In the rare case when I select a wrong option, I pull up my phone and use nano in Termux session to quickly edit the CSV directly.
any chance you could implement the timer in a chrome extension as well? that way I don't have to remember to keep the tab open.
I am using this to track what I'm working on (or not working on) during the day so I can accurately enter my time-spent into projects at EOD.
I've shared this with my direct report for team use and wanted to know if there are any self-host licensing options planned in the near future?
The best solution I have is running a Periodic Timer  on my Apple watch along with Timelines time tracker . And so I am reminded every 10 minutes to update my time tracker. It works quite well but I wish it was smarter and all in one app.
Finding the right time spans is also key, you want it to be as short as possible so that it is granular data but not too short so that the nudge becomes some sort of background noise you learn to ignore while focused.
Thankfully I don’t have timesheets anymore. Hated them...
Just food for thought.
Source: Collaborated with multiple biglaw attorneys on ideas for a more efficient time tracking method.
The system I’ve settled on is to just keep a steno notebook on my desk, and write a couple words in one column, and hours in the other.
1, 1.4, 3.4 | Revise App. Br.
Timers got too confusing because of multiple tasks, and any system involving typing on a computer or using my phone had too high an activation cost and ended up needing supplementing.
Security concerns around the product itself make it somewhat more complicated given the sensitive nature of the data.
But what is more shoking to me is all the comments saying they are already using something like that. I think if such an intrusive tool is useful to you, you most probably have a bullshit job .
I was thinking about how more and more people will be working remotely and what services would be beneficial to offer (such as ensuring productivity of employees) but this seems almost dystopian to me
<Error><Code>NoSuchKey</Code><Message>The specified key does not exist.</Message></Error>
This is a great way to collect data on what people do every day.
This helps not just the body and eyes but helps refresh attention 'muscles', especially when stuck dealing with some stubborn issue.
On a more serious note, I get it, but realistically how much can someone stick to it for a reasonable amount of time in order to get conclusions?
10 mins is ridiculous and will make people ignore your product.
When the sign up request is sent, it shows a S3 error not finding corresponding key. The true misdeed is requesting the resource with get and passing email and password as query parameters in the URL. Such a shame >-(
You could plot a curve of an activity and do fun math with it.
Why would you do it to yourself?
It’s yet another distraction for any deep work.