Every programmer does this: at some point in working on a problem, you begin to thrash. The exhaustion and mental tension begin to creep up and completely overtake any chance you have at making progress on a problem. You can solve it -- just not right now. Adding caffeine doesn't help, nor would consulting a technical manual. Your brain needs to take 5 and regroup.
So you take a break. I don't mean you get on a plane and head to Disney World. I'm talking about something you do at your desk, in your cubicle, in the hallways of your office. How do you put your analytical mind on the shelf and mentally check out for a while?
Personally I do any of the following: bounce a ball, play with a yo-yo, go for a long walk in the big blue room, take a catnap leaning back in my chair...
What do you do?