This page documents how I use Planner Mode for emacs as my part of my personal information management. The nice thing about it is that it is fairly free-form so organization is up to the user. For my use, I have two types of pages: daily pages and project pages.
An example of a daily page is shown below. Right now, I have four subheadings, Tasks, Schedule, Diary, and Notes. Tasks are kept track of using Planner's excellent task-making mechanisms. The Schedule is a nice way to keep track of what you have been up to (but I admit to not exploiting it like I should). The Diary is a repeat of my entries from ~/diary for the day, and Notes are notes for the day.
My Daily Page
The other kind of page I keep is a project page. The project page is a running log of what I have been up to on a project. For instance, I am working on the Hawaiian Ocean Mixing Experiment, or HOME. So, I have a file called HomeLog. There are numbered and timestamped entries in HomeLog. The nice thing, is that the timestamp refers back to the date the entry was made. On that day, the headline of the note has been made. At the top of this page, there is also a list of tasks associated with this project.
My Project Page
I use planner mode to do three things
When called from an emacs buffer, all three automatically put a link to the file I was working on into the task, note, of diary entry. This is very useful because it allows me to keep a running log of what I am doing with quick reference to the files.
Tasks are to-do items that get carried through from day to day by planner mode (if you have set planner-carry-tasks-forward to t). The function planner-create-task-from-buffer (I bind this to C-c C-t) creates a task. You are prompted to describe the task, enter a date, and to assign it to a planner page.
For example, From this buffer, I used planner-create-task. I
called it Test task
and told it to take place on 2004.03.27.
I then assigned it to my planner page called <nop>ComputerStuff<\nop>.
In my daily page (2004.03.27), I now have an entry like:
#A0 _ Test task from [[/Users/jklymak/wikiwebpage/PlannerMode]] {{Tasks:104}} (ComputerStuff)
And in ComputerStuff I have a task:
#A0 _ Test task from [[/Users/jklymak/wikiwebpage/PlannerMode]] {{Tasks:104}} (2004.03.27)
In order to do tasks I have:
(require 'planner-id) (define-key global-map [?\C-x ?\C-t] 'planner-create-task-from-buffer)
remember
allows such a jotting to occur. I bind remember
to
C-x C-n
. I supply a headline (i.e. "picked
up sticks in the yard") and type a few things, and hit C-c C-c
when I am done. I am prompted for a wikiname (with full
completion) and the note is written there with a time stamp. The
nice thing is that the headline is also duplicated on my daily
page. The headline has a hyperlink back to the project page and
vice versa, so everything is connected. (i.e. in the image
above, clicking on "ComputerStuff#22" takes me to the 22nd note
in the project file "ComputerStuff").
If you invoke remember
while in an emacs buffer, remember
is
smart enough to add a hyperlink to the file you are currently
visiting if you do:
(require 'remember); ;; remember-planner - a must have... (require 'remember-planner) (setq remember-handler-functions '(remember-planner-append)) (setq remember-annotation-functions planner-annotation-functions)
To get annotations from gnus and bbdb:
(require 'planner-gnus) (planner-gnus-insinuate) (require 'planner-bbdb);
(defun planner-diary-add-entry (date time text) "Prompt for a diary entry to add to `diary-file'. Will run planner-annotations to make hyper links" (interactive (list (planner-read-date) (read-string "Time: ") (read-string "Diary entry: "))) (save-excursion (save-window-excursion (make-diary-entry (concat (let ((cal-date (planner-filename-to-calendar-date date))) (if european-calendar-style (format "%d/%d/%d" (elt cal-date 1) (elt cal-date 0) (elt cal-date 2)) (format "%d/%d/%d" (elt cal-date 0) (elt cal-date 1) (elt cal-date 2)))) " " time " " text " " (run-hook-with-args-until-success 'planner-annotation-functions)))))) (define-key global-map [?\C-x ?\C-d] 'planner-diary-add-entry)
Displaying diary entries is done via planner-diary.el:
(require 'planner-diary) (setq planner-diary-use-diary t) (planner-insinuate-diary) (planner-insinuate-calendar) (setq planner-diary-number-of-days 7) (setq planner-diary-number-of-diary-entries 7) (setq planner-diary-file diary-file)
Planner mode is available from http://www.emacswiki.org/cgi-bin/wiki/PlannerMode
I've moved to using OS X and have started to collect scripts to make interacting with Mail.app and iCal better. See here.