Running WatiN tests in SharpDevelop

I tried to run my WatiN tests in the test runner in SharpDevelop and got stuck on the following error:

System.Threading.ThreadStateException : The CurrentThread needs to have it's ApartmentState set to ApartmentState.STA to be able to automate Internet Explorer.

If you are running your tests with MBUnit you can add the following to your TestFixture:

[TestFixture(ApartmentState = ApartmentState.STA)]

But I couldn’t find any similar for NUnit. Instead I changed how SharpDevelop launches it’s tests. Click; Tools / Options / Tools / Unit Tests and deselect Run tests on separate thread. Run the tests again.

And I got the following error:

System.InvalidOperationException : Process has exited, so the requested information is not available.

I tried to disable Protected Mode in Internet Explorer and the tests ran fine.

How to dissable Protected Mode in IE
How to disable Protected Mode in IE

RSI: Are you in the danger zone?

I just finished reading the great book; It’s Not Carpal Tunnel Syndrome by Suparna and Jack. The book contains different questions that all helps to open your mind about RSI and ergonomics.

Here follows some questions that I think is important. I’ll comment them below. If you answer yes on some of them I suggest you go and buy the book right away!

Questions from the book (page 50 and 216)

  • Do your hands, arms, shoulders or neck hurt when you type?
  • Do you feel tingling, numbness, or cold fingers?
  • Do you find yourself stretching or massaging after a few hours of keyboard work?
  • Have you been woken by hand numbness when sleeping? Are you waking up in the morning with pains in hands or arms?
  • Is your workstation as comfortable as you would like?
  • Do you always look for the most efficient way to use the computer?
  • Do you get as much sleep as you would like?
  • Do you think about work in non-work time?

My comments and reflections

  • Long before I noticed that my arms hurt I had pains in my shoulders and lower back. I even went to therapists for migraine (caused by back problems) for several years. It wasn’t until two years ago, when I first visited a therapist that did a throughout examination on my hand problems, I could make the connection between back problems and RSI.
  • I’m hearing people talking about cold hands all the time. I didn’t have any issues with cold hands until I was far into RSI. At least I didn’t notice any coldness. If I had been as observant as now I probably would have. One of the reason for freezing  hands is that the muscles in the neck or shoulder doesn’t allow the blood to flow freely to the muscles in your arms.
  • When I first discovered pain in my wrist I massaged it with liniment. It eased the pain, but didn’t cure the problem.
  • I have never been woken up by pain, but I have had pain pretty much in the mornings.
  • I didn’t care about ergonomics until I had problems. It seems like it departments are the worst at ergonomics. Compare the tools on your it department with other apartments and you’ll probably see that other departments seems to have more ergonomic tools. I’m not sure why this is though… Ideas? Today I always try to think about ergonomics and I’m constantly improving my current setup…
  • I always try to find other solutions instead of doing repetitive tasks. If I have to, I try to use an automatic tool. And as a bonus; instead of doing repetitive tasks manually, I’m getting a repository with tools and techniques for automating it. Increasing quality and reducing time and stress!
  • Some years ago I slept 4-6 hours per night. I always felt tired and sick when I woke up. Today I sleep 7-8 hours per night and it feels great when I wake up. Being well-rested also helps increase concentration at work.
  • I used to spend almost all my wake time thinking about work. Today I think about my work when I’m at work and other things when I’m not at work. What’s funny to notice is that it’s easier to focus on solving problems at work when I have had a break at it.

RSI, back problems and bad posture

When I grew up I had some issues with my back. Nothing special, more normal bad posture and spending too much by the computer. When I got my first RSI problems. I forgot my back problems until I talked to a therapist one and a half years ago that got me thinking about RSI as a secondary effect from bad posture and back problems. That’s the most important help I’ve ever gotten!

Your RSI issues might be caused by problems in your back!
Your RSI issues might be caused by problems in your back! Image from Wikipedia.

A while ago I started reading the book It’s Not Carpal Tunnel Syndrome! It helped me get more pieces in place. It’s by far the most important book for all computer users! Much of my own ideas and experience are similar to those in the book. Here are my three most important factors to beat RSI (all are presented in the book as well).

  • Get stronger in your back, shoulders and neck. By far the most important step has been to strengthen my back. If you’re back hurts it tries to tell you something. If you don’t listen, it might have to tell you through your arms. Three years ago I had never been to a gym. Now I’m a regular.
  • Do some high pulse work out. Not sure why it works but it does. The best explanation for this is that your muscles heals better if you get more blood passing them. If I have pain in my arms when I go running it disappears immediately. It’s so nice!
  • Care about your work place and work habits. Stop using a tiny laptop, get a good keyboard, chair, desk, mouse and monitor. Also try to make your work less intensive. Take breaks. If possible do pair programming. It not just helps you cure your hands but also produce better code. It’s a win-win! Stopped do instant messaging. Remember; it’s nicer to meet or call your friends!

Workrave as productivity tool

Coffee Driven Development introduced me to the personal productivity technique Pomodoro and it feels a bit familiar with how I usually work.

Some years ago I started to use Workrave as a break reminder to ease the pains in my hands. At first it was a bit frustrating (to take 5 min breaks every 30 min of keyboarding) but after a while I noticed that it was easier to focus on the tasks. I also noticed that it was easier to solve problems I was stuck with after letting it go for 5 minutes. The stress levels also decreased since you get a natural way to track what you are working with and get rid of the items on your TODO list.

I can’t recommend working in ~30 minutes chunks enough and Workrave works perfect to remind you! If your’e on the Mac AntiRSI is a great tool!