How do you manage programming burnout?
I do mean manage, not avoid. From years of programming, I know that I only have three to four hours of sustainable programming per day in me, but the last three days I chose to program nine hour days because. I was rebuilding a core data structure, and I knew that I would need an hour per session to get that piece of code into my head. Now I'm paying for it. Last night my dreams were bizarre, and today I may as well not bother coding at all. Tomorrow I might or might not, depending on how well I sleep.
So, in the interest of bringing this out of silence, how many hours a day can you program sustainably? How common are the folks who can program much more than three or four hours sustainably (from stories about Greenblatt among others, they seem to exist)? How do you manage your good hours?