NEW: For a prettier blog interface, see the Wordpress version!

Headlines for Wednesday:

  1. Developing a better sense of time (427 words)
  2. Emacs Gnus hack: Prioritize based on the number of recipients (254 words)

Tasks

    Work:
    Priorities - A: high, B: medium, C: low; Status - _: unfinished, X: finished, C: cancelled, P: pending, o: in progress, >: delegated. Covey quadrants - Q1 & Q3: urgent, Q1 & Q2: important
    AX@1030-1130 CAS meeting at IBM
    BX@1100-1200 Web 2.0 for biz call : E-Mail from Luis Suarez
    AX30min Make sure computers are set up for Hack Night
    AXDiscuss measurement with Mark
    Priorities - A: high, B: medium, C: low; Status - _: unfinished, X: finished, C: cancelled, P: pending, o: in progress, >: delegated. Covey quadrants - Q1 & Q3: urgent, Q1 & Q2: important
    AX20min Read Weber paper
    AX20min Read Sida paper
    AXevening: Work on actor-network map {{Due: 2006.10.05 - 1 day}}
    AX30min Do a little bit of laundry
    Priorities - A: high, B: medium, C: low; Status - _: unfinished, X: finished, C: cancelled, P: pending, o: in progress, >: delegated. Covey quadrants - Q1 & Q3: urgent, Q1 & Q2: important
    AXDecide what I want to research
    ACE-mail revisions and ideas to Mark so that we can discuss them on the way

Notes

1. Developing a better sense of time: 14:34

One 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!"))))

On Technorati: , , ,

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...)

2. Emacs Gnus hack: Prioritize based on the number of recipients: 15:15

Ever found yourself confronted with an inbox overflowing with general messages that you can ignore and messages that you and only you can act on? Here's something to help you sort the wheat from the chaff.

This indicates how personal messages are so you can immediately see which messages are just for you and which are part of a long Cc. Stephen Perelgut showed me the feature in Lotus Notes and I wanted to steal it sometime, so I did it while waiting for the Instant Rails archive.

To use it, add %ur to your .

(add-to-list 'nnmail-extra-headers 'To)
(add-to-list 'nnmail-extra-headers 'Cc)
(defvar sacha/gnus-count-recipients-threshold 5
  "*Number of recipients to consider as large.")

(defun sacha/gnus-count-recipients (header)
  "Given a Gnus message header, returns priority mark.
If I am the only recipient, return \"!\".
If I am one of a few recipients, but I'm listed in To:, return \"*\".
If I am one of a few recipients, return \"/\".
If I am one of many recipients, return \".\".
Else, return \" \"."
  (let* ((to (or (cdr (assoc 'To (mail-header-extra header))) ""))
         (cc (or (cdr (assoc 'Cc (mail-header-extra header))) "")))
    (cond
     ((string-match gnus-ignored-from-addresses to)
      (let ((len (length (bbdb-split to ","))))
        (cond
         ((= len 1) "!")
         ((< len sacha/gnus-count-recipients-threshold) "*")
         (t "/"))))
     ((string-match gnus-ignored-from-addresses
                    (concat to ", " cc))
      (if (< (length (bbdb-split (concat to ", " cc) ","))
             sacha/gnus-count-recipients-threshold)
          "/"
        "."))
     (t " "))))

(defalias 'gnus-user-format-function-r 'sacha/gnus-count-recipients)

Random Emacs symbol: dired-listing-switches - Variable: *Switches passed to `ls' for Dired. MUST contain the `l' option.

On Technorati: , , ,

E-mail sent

  1. E-mail to Dan Chen
  2. E-mail to "Jo Figueiredo"
  3. E-mail to Don Marti
  4. E-mail to Quinn Fung, Leigh Honeywell, Jedediah Smith, Simon Rowland, Dan Howard
  5. E-mail to Dan Howard
  6. E-mail to Simon Rowland
  7. E-mail to Dan Chen
  8. E-mail to San
  9. E-mail to Maoi Arroyo
  10. E-mail to Ted Pesando
Previous day | Next day

I'd love to hear about any questions, comments, suggestions or links that you might have. Your comments will not be posted on this website immediately, but will be e-mailed to me first. You can use this form to get in touch with me, or e-mail me at [email protected] .

Page: 2006.10.04
Updated: 2006-10-0509:44:2909:44:29-0400
NOTE: ANTI-SPAM MEASURE NOW IN PLACE. Please answer the following question with the right number in order to send me your comment.
What is two minus one? (hint: one ;) )
Name:
E-mail:
URL:
Comments: