Went on a berserk coding spree from 1PM to 1AM with some small breaks in between. Completely cut off from any distraction, I was able to concentrate.
Willpower and discipline are nice, but real restrictions that are impossible to circumvent are better, at least for me.
I've been forced to work without the internet for large swaths of time. In the beginning its a pain, but once you get all the resources you need local, you can speed up past what you can do with the internet.
The key, for me, is to work without the internet, keeping a list of things you need and when you hit a hard snag, go online, grab all the things you need, repeat. This allows you to slowly accumuate almost everything you need local.
Now you have the ability to full-text index the entire shebang and when you get to the point of real-time responsive full-text search on all your manuals and all the source code (libraries included), you'll be kicking yourself for not getting to that point much sooner.
It was truly a game-changer for me. Googling for answers and filtering through the crap is a huge time sink.
If I'm doing something in a less familiar language, library, or framework (or even new techniques), then I fully expect that I'll rely heavily on internet to find code samples, reference, and documentation.
It will force you to really learn whatever you are doing.
I mainly did refactoring on that day, so I had to make decisions by myself, anyway.