I've been a programmer for about 5 years now, and one of the things I've noticed is that some days I might code all day and feel fine, and some days I might have that "I've been staring at the screen too long" feeling by 11:30.
What are some ways you've come up with to make sure that you stay fresh and mentally alert during the 8-hour workday?
How do you know when you need to take a break?
What do you do to take a break in a constructive way that won't appear to coworkers as simple slacking off?