Repetitive software injury
by Jono Bacon
RSI seems to be something that affects some, but not all, and I know people who have been involved with computers for years and never had any problems. I few months back I began aching a little in my fingers and I put this down to possible RSI and bad posture at the keyboard. I also leveled much of the blame with the fact that I spend a lot of time working and playing music; I may well have just over-reached myself a little. Anyway, I booked myself in to see the doctor, where I was then referred to a physio to identify the potential problem and solution to my RSI. I got up early one morning and reveled in the joy of trying to find a car parking space at the over-capacity NHS hospital. From around 9am until my appointment at 10.45am I waded through many layers of NHS red tape and endless hospital corridors to eventually meet an incredibly friendly physio.
It seemed that my problems with RSI were not life, music or career threatening, and I was advised about some possibilities to make things a little better. This included soft massage of the part of my hand that was problematic and some special hand exercises. Another suggestion was to take a series of so called micropauses when working. This means taking a 10 or 15 second break every 5 or 10 minutes. A micropause then allows your hand to relax and stop a build up of tension that can result in a repetitive strain injury. This all sounded vaguely familiar to me, and I remembered reading about a special Mac OS X RSI clock on Simon Willison's blog that alerts you when you need to take a micropause and a general rest break. I did my own research and after a bit of hunting around I discovered a wonderful little GNOME tool called Workrave. This is a pretty impressive chunk of code in the way it will not only regulate your rest breaks and micropauses, but it will also teach you special exercises that you can perform to prevent RSI. These exercises are demonstrated with a 3D character named Miss Workrave.
After installing and using Workrave it struck me that RSI prevention should not be a third party, post desktop afterthought, and should instead be included at some point in the desktop software stack. I tend to use KDE/GNOME/Mac OS X and Windows at different times in my work, and there seems to be little or no RSI prevention included in the software. This is rather dangerous. If I worked in a building site I would not enter the site without a hard hat, and if I were a truck driver I would wear a seat belt. RSI seems a very real and likely problem that can afflict computer users; a problem that can be solved with a better level of awareness. The problem is that this awareness is simply not there. I have been using Linux for years, and I have been aware of RSI for years, but I had never even heard of Workrave.
After doing some googling on the net I discovered very little in the form of official recommendations to include RSI prevention software at these different levels of the desktop software stack. My first assumption was that the common all garden environments such as KDE and GNOME should include some form of RSI clock in their base platform. Then I considered a lower level option. A while back I was chatting to Keith Packard on IRC about some of the possible features and improvements in the new X servers that are getting hacked together. One area that Keith informed me about was accessibility. At the time I assumed this kind of accessibility would be related to things such as text-to-speech and redirection of input/output devices and data to brail readers and screen readers. I didn't even consider the potential of RSI prevention at this level.
If you think about it, the X server has all of the pre-requisites to prevent RSI at that level; this would typically involve timing the breaks between device input and output. If someone is working for 10 minutes and then needs to take a micropause, the X server could pop up a box to indicate the pause. The X server could also initialise micropauses dependent on the number of keyboard interactions and the amount of mouse activity. I am sure someone somewhere has performed research that would indicate the amount of keyboard/mouse action before you need to take a break.
I may be wrong here, but I have seen nothing about this online so far. It does strike me that the new and revitalised culture of X.org could incorporate an RSI prevention layer built into the server. This is of course, the most sensible place to place an RSI prevention strategy - everyone is susceptible to RSI, so everyone should have the ability to use software that prevents it. If this software is built into the very X server that you are using, the issue of awareness is somewhat increased. I am sure the KDE and GNOME projects could then build around this functionality within their desktops. The key thing we need here is research. We need to know which particular movements and interactions are most likely to cause RSI; we can then make our software intelligent enough to prevent this repetition.
The next natural area of debate is whether this RSI prevention layer would be forced onto the user. I know many people will be of the view that an RSI prevention layer should not be included in an X server; an X server is after all there to pug graphics to the screen and handle input. Well, that is the key point - it does handle input. In the same way we need to accommodate different languages, disabilities and other nuances of human interaction, we need to also acknowledge threats to human interaction and incorporate prevention mechanisms.
So, what do you think? Does this make sense, or is it all a load of rubbish? Put finger to keyboard and share your thoughts below.
GNOME Typing Break
You might have noted that GNOME does in fact include a "Typing Break" feature. Enable it in "Desktop Preferences"->"Keyboard".
Prevent and recover from RSI
I've written a 100% free ergonomics software package which helps computer users prevent and recover from RSI.