Developing a better sense of time
| emacs, planner, productivityOne of the things I want to do is develop a good sense of how long it
takes me to do something. Better time estimates lead to better
scheduling, better sense of what I can commit to, and ultimately less
stress and more happiness. =)
Fortunately, Planner makes it easy for me to do really detailed
time-tracking. When I mark a task as in progress, the clock starts
ticking. When I postpone or close a task, the system clocks out
automatically.
I find that my attention occasionally strays. Sometime ago, I wrote a
function to help me keep track of what I'm supposed to be doing.
Today, I've decided to try estimating task completion times for more
of the tasks on my list. I modified my old function to tell me how
much time has elapsed since I started the task. This doesn't take into
account previous clock-in/clock-outs, but it will do for now.
We'll see how well it works. =)
;; I've bound sacha/planner-what-am-i-supposed-to-be-doing to F9 F11. I ;; start out by clocking into the task (use planner-timeclock.el and ;; C-c TAB to mark a task as in progress). Then, when I find myself ;; getting distracted, I hit F9 F9 to see my current task in the ;; minibuffer. C-u F9 F9 jumps back to the task so that I can either ;; mark it as postponed. M-x planner-task-pending (bound to C-c C-p in ;; my local config) and M-x planner-task-done (C-c C-x) both clock out ;; of the task. If I want to jump back to the previous window ;; configuration from that planner page, I can just hit F9 F9 again. (defvar sacha/window-register "w" "Register for jumping back and forth between planner and wherever I am.") (defvar sacha/planner-current-task nil "Current task info.") (defadvice planner-task-in-progress (after sacha activate) "Keep track of the task info." (setq sacha/planner-current-task (planner-current-task-info))) (defun sacha/planner-what-am-i-supposed-to-be-doing (&optional prefix) "Make it easy to keep track of what I'm supposed to be working on. If PREFIX is non-nil, jump to the current task, else display it in a message. If called from the plan page, jump back to whatever I was looking at." (interactive "P") (if planner-timeclock-current-task (if (string= (planner-task-page sacha/planner-current-task) (planner-page-name)) (jump-to-register sacha/window-register) (if (null prefix) (message "%s %s" ;; Minutes so far (timeclock-seconds-to-string (timeclock-last-period)) planner-timeclock-current-task) (frame-configuration-to-register sacha/window-register) (planner-find-file (planner-task-page sacha/planner-current-task)) (planner-find-task sacha/planner-current-task))) (if prefix (planner-goto-today) (message "No current task. HEY!"))))
Random Emacs symbol: cal-tex-mouse-filofax-week – Command: Two page Filofax calendar for week indicated by cursor. (Hey, I didn't know we could print Filofax calendars from Emacs cal…)