Having mild OCD is advantageous to being a programmer. But it has its drawback, such as forgetting to take breaks, use the bathroom, eat and sleep. In April 2010, after seeing a coworker using it, I installed Workrave on my work desktop to help my effort to be better about taking breaks. Workrave is a task tray tool that pops up reminders to take micro-breaks (to stretch your various appendages and eyes), longer breaks and can alert you to help limit your overall daily computer use, in whichever combinations you so choose. All of this is an effort to help reduce repetitive stress injuries common among heavy computer users. Along with these features, Workrave tracks your key-presses and mouse movement distance. Since my "mouse" is a trackball and thus never really moves, the mouse movement figures are generally useless. (However, it does track movement time which could be helpful for tracking how long your hand is working the mouse.) The keystroke count is much more concrete, which gave me an idea.
I started recording the daily keystroke stats and now have some impressive numbers. Since April 9th 2010, 2,899,821 keystrokes have been recorded. Excluding those after April 9th of this year, the total is 2,599,992. That's 2.6 Million keystrokes for one calendar year.
I moved the stats from post 4/9/2011 to the beginning to create one complete calendar year, and came up with the following detailed figures:
- Grand Total: 2,599,992
- Monthly Average: 216,666
- Highest Month: 291,506 (Feb)
- Daily Average: 11,255
- Highest Day: 29,110
Some additional information that influences the numbers (positively and negatively):
- Sometimes I work from home. Occasionally I use remote desktop and work on my desktop where the count is recorded. Some days I don't. This could account for a lower count.
- My work setup includes a laptop. The laptop screens are set up next to the desktop screens and I use Synergy to control both machines from a single keyboard/mouse, giving me a single, contiguous desktop (another tool I highly recommend). The desktop serves as the Synergy server, acting as the input master which allows all input control going to the laptop to pass through the Workrave counters running on the desktop. Occasionally, due to a glitch or a reboot, I won't have primary control so I'll physically switch to the laptop keyboard/mouse. This could account for a reduction in keystroke count, though probably not much.
- I haven't really been doing much programming lately, certainly not as much as in years past. I do a lot of systems administration, infrastructure and other tasks that require less typing. On days that I am actually writing code, my numbers jump significantly. A safe estimate is an average in the 10,000 to 20,000 range, usually towards the high end.
I took a look back over my daily numbers and journal entries for those high count days. I found that the days I'm writing code, I average around 20,000 keystrokes. So I can make a fairly safe prediction that if I spent most days writing code I would probably have numbers closer to these:
- Daily Average: 20,000
- Monthly Average: 418,333
- Yearly Total: 5,020,000
That figure seems pretty crazy to me. I never would have estimated in the millions if I'd been asked how many keystrokes I think I make in a year. Considering that I've been a developer for a solid 11 years, and until recently, most of that has been spent programming, I would venture a guess that I have over 55 million keystrokes under my fingertips. I have trouble fathoming that. My typing teacher in high school would be proud.