Lots of good comments I think, but before considering all those options, I think the first thing you should try is to push yourself in the "zone" [1]. To me entering the zone can be hard sometimes - my brain is inventing all sorts of distractions, why it does that is still a mystery to me since I love my job - but it's not that hard: I just need to force myself to get in the zone, and I do that by ignoring my desires and by getting started with my tasks. Once I get started, very quickly I'm in the zone, and it's quite easy, natural and mostly enjoyable to stay inside the zone, as long as I avoid interruptions (short breaks every hour or so are good, as long as they are mental rest, like lying down and/or watching the clouds, short breaks are not a good time to read hacker news).
If this fails for you, then it could be a multitude of reasons, and you should consider some of the options recommended here (maybe change your job?).
yes..that is an awesome approach...only for the initial 30-45 mins do you have to kinda force yoself...once you start hacking some problems your mind will want to keep hacking!
If this fails for you, then it could be a multitude of reasons, and you should consider some of the options recommended here (maybe change your job?).
http://en.wikipedia.org/wiki/Flow_(psychology)