Staying Sharp
spaghetti: I keep my mind sharp by doing a variety of things.  For example daily participation in programming contests/on-line judges (topcoder.com, spoj.pj etc) is a great mental exercise.  Importantly I do this only when I feel like it... so daily for 2 months then take 5-6 months off is common.  Also physical activity is a great compliment to rigorous mental activity.  Lastly I take time off to just relax.  These breaks range from 10 minute breaks throughout the day to month long breaks where I don't work at all (because long term mental clarity and growth is far more important than short term monetary gain... in most cases... some startups that are about to go IPO would be a counter example).  Sounds like you're doing a lot of things (open-source, girlfriend etc)... try doing nothing or just walking... this could greatly improve one's mental clarity.