I find that one of the most frustrating aspects to software development is finding a solution to a problem, forgetting it, then being faced with the same issue in the future only to forgot how you previously solved it. Or to write a useful bit of code, then on a later project not be able to find this code.
My general question is this: How do you keep track of all the new things you learn each day while programming? Does anyone have a systematic way to capture knowledge and easily and efficiently apply it in the future?
UPDATE: Thanks the for the responses, here's what you came up with:
Social
- Stackoverflow
- Tumblr
- Evernote
- Blogs/Wikis
Code Repositories
- Github
- Unfuddle
- LaunchPad
- Google Code
Desktop
- Dropbox
- Yojimbo (mac)
- VoodooPad (mac)
- Wikidpad (win)
- Surfulater