emacs-wiki-discuss
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[emacs-wiki-discuss] 3-pages instead of day pages


From: Trent Buck
Subject: [emacs-wiki-discuss] 3-pages instead of day pages
Date: Mon, 31 Oct 2005 04:27:28 +1100
User-agent: Gnus/5.11 (Gnus v5.11) Emacs/22.0.50 (gnu/linux)

I've been reflecting on how I use planner this week; here's my synopsis. http://twb.ath.cx/notes/on-planner.pdf
   http://twb.ath.cx/~twb/doc/muse/HTML/on-planner.html

The transcript follows for easy quoting in replies.

#title On Planner
#subtitle How I use Emacs' Planner-Mode to manage tasks.

* Introduction

Using day  pages just  wasn't working  for me.  I  never scheduled  anything in
advance, so all the open tasks just sat on the present day page.  Each day, any
separation of the  tasks into groups would be lost as  all the unfinished tasks
were brought forward.  And the fact that  a new file was being created each day
and about  forty lines being  deleted from one  file and added to  another made
using version control to manage the archive everything a real pain in the arse.
Lastly, the  huge numbers of  day pages  felt messy and  the average of  of one
completed item per page was depressing.

* The Glorious Ascetic Dream

When I  migrated to  planner-muse, the current  "canonical" branch, I  took the
opportunity to  think about  how I go  about planning.   The first few  pages I
started  migrating only  had a  dozen or  so items  each (and  no notes),  so I
initially intended  to have only  three pages: 

        - OpenTasks would contain all the tasks I was currently working on;

        - ClosedTasks would contain tasks that I had completed; and

        - FutureTasks would contain tasls I hadn't started yet.

Whenever OpenTasks became empty (yeah, right!), I would look in FutureTasks for
things to do.  New tasks would go into FutureTasks unless they were urgent.  In
place of plan pages, all three  pages would have the same hierarchy of headings
(lines beginning with asterisks), with  each immediate subheading under =* 
Tasks=
corresponding to the old plan pages.  Adding

<example>
(add-hook 'planner-mode-hook 'outline-minor-mode)
</example>

to my  .emacs would allow me to  use outline's collapse and  narrow features to
hide information I wasn't currently interested in.

* Disheartened But Still Determined

It didn't work.  As I began  to migrate more complicated, disparate plan pages,
I began to  wonder how to keep notes  attached to their tasks, and  how to keep
the hierarchy  consistent on the  three pages.  Most importantly,  I previously
had  a  plan  page  for  each   contract  I  was  working  on,  and  was  using
planner-timeclock to generate timesheets.  How  the hell was that going to work
under the three-page model?

So I came up with a new  Grand Scheme.  Plan pages would be reinstated and used
to manage projects.   The three-page model would be used  instead of day pages,
but 3-pages would be auto-generated  from plan pages.  Consequently, plan pages
would be  under source control, but  3-pages would not.  Here's  the makefile I
wrote to generate 3-pages.

<example>
default all: Closed.muse Open.muse Prospective.muse

Closed.muse: $(wildcard [a-z]*.muse)
        ( echo '* Tasks'; \
          for i in [a-z]*.muse; do \
            echo "** $${i%.muse}"; \
            grep '^#[ABC]   [XC]\|^\*\*' "$$i" \
              | sed "s/^\*/**/;s/\$$/ ([[$$i][$${i%.muse}]])/"; \
          done ) > $@
Open.muse: $(wildcard [a-z]*.muse)
        ( echo '* Tasks'; \
          for i in [a-z]*.muse; do \
            echo "** $${i%.muse}"; \
            grep '^#[ABC]   [oP]\|^\*\*' "$$i" \
              | sed "s/^\*/**/;s/\$$/ ([[$$i][$${i%.muse}]])/"; \
          done ) > $@
Prospective.muse: $(wildcard [a-z]*.muse)
        ( echo '* Tasks'; \
          for i in [a-z]*.muse; do \
            echo "** $${i%.muse}"; \
            grep '^#[ABC]   [_]\|^\*\*' "$$i" \
              | sed "s/^\*/**/;s/\$$/ ([[$$i][$${i%.muse}]])/"; \
          done ) > $@
</example>

It's a very simple minimal, and has  a lot of room for improvement.  It doesn't
narrow to the =* Task= section  before scanning.  The bracketed links should 
only
be added  to task lines  (not subheading lines),  and they should use  the plan
page's  title when it  is defined.   Also, subheadings  and plan  page headings
should not be listed at all if there are no relevant tasks under them.  Lastly,
there should be some sort of  synchronization betweem plan pages and 3-pages so
that I when I change the data in either, both will be updated.

* Looking Forward

mwolson tells  me that  planner-tasks-overview could possibly  be adapted  to a
production version of the 3-page model.  I haven't looked into that yet, but at
a glance it looks good, although it's gonna take a lot of elisp hacking and I'm
quite wobbly on a  lot of elisp and the planner and  muse sources.  Here's what
he said (slightly paraphrased):

    Out of curiosity, have  you looked at planner-tasks-overview.el?  You might
    be  able to get  the desired  behavior by  hacking up  a `p-t-overview-all'
    function  based on  p-t-overview that  either  excludes day  pages or  just
    doesn't worry about them.  That is, no prompting for date, just use

    <example>
    (planner-tasks-overview-extract-all-tasks
      (mapcar 'car (planner-file-alist)))
    </example>
-- 
Trent Buck, Student Errant

reply via email to

[Prev in Thread] Current Thread [Next in Thread]