what do you do to motivate yourself to program. sometimes I know I should program but I am a procrastinator so I read about how people invented stuff or read about how some programming or math concepts came to be (history). My question is what do you do?
The LeechBlock Firefox extension is a good tool to prevent getting sucked into those sites you spend too long on. It can be configured to prevent you from looking at certain websites at certain times of day so that you can get some work done instead.
In general, I don't have to motivate myself, because programming is something I enjoy, and one doesn't have to motivate oneself that much for doing things one enjoys.
My (very general) tip would be: Look for interesting problems which you would like to solve, or, if you recognize something in open source software that would benefit from a slight change, try to implement it. Maybe just start scripting an appication you use often -- If programming doesn't motivate you by itself, maybe the prospective benefits of little modifications can.
I have a bug tracking system for my personal projects, and I fill it with bug reports describing what I need to get done, what parts I should develop, etc... like a usual bug tracking system, and I set them as fixed when I have developed those parts.
That way I can focus on smaller pieces of code instead of feeling under the burden of a lot of coding to do.
Divide and conquer!