I recommend Emacs with Org-Mode, installed by default together with emacs. Here is a screenshot of a Org-Mode buffer:

Why Emacs + Org-Mode? to avoid context switch, keeping you in the flow state!!! Sounds a bit radical, right?, I know, but I realized that -- in practice!
When I give Org-Mode a chance I completely abandoned my old way of work and started keep me more focus on what really matter (code). My old workflow was:
- Stop code and go mark as done some items;
- Switch to the opened browser, looking for the remember the milk opened TAB;
- Check my TODO tasks for that day and check OUT done items;
- go back to my editor;
- finally, restart the work (may take some more minutes to deeply focus again).
With Org-Mode, I just need to switch to the Org-Mode buffer, pressing Ctrl + x b, and mark items as DONE -- switching back to my previous buffer. No more browser (or external app) + editor.
I also would like to suggest to adopt The Pomodoro Technique, a really simple technique to get the most out of time management. Its more simple then GTD and easy to use in Emacs + Org-Mode: Put a timer of 25 minutes in all your tasks and Org-Mode will alert you always a task end. Better then ever!