VimOutliner as a task manager?

classic Classic list List threaded Threaded
34 messages Options
12
Reply | Threaded
Open this post in threaded view
|

Re: VimOutliner as a task manager?

Scott Scriven-4
* Kyle Sexton <[hidden email]> wrote:
> Is anyone using VimOutliner for a task manager?  It seems that
> the check boxes are ideally suited to this type of use.  I
> can't seem to figure out how to "archive" or "hide" tasks that
> I've completed though.  After using this for awhile I'd think
> the completed tasks would start to build up.  I'd rather not
> just delete them, because having a reference to doing something
> is useful as well.
>
> Thoughts, or are you handling this a different way?

I use vimoutliner as a task manager, and I find the easiest thing
to do with completed items is to move them to the end of the
file, underneath a "Done" heading.  For example:

        [_] do this
        [_] do that
        Done
                [X] done this
                [X] done that

I generally only move top-level items or branches.  So, a large
branch would stay at the top until it's completely finished, and
then move to the bottom all at once.

Once the list gets big (the one I'm using now is 1003 lines),
moving items to the end becomes a bit less convenient.  However,
it's still pretty easy if I define a macro for it:

        # move the current line/fold to the end of the file, and indent it
        # This basically moves completed items under the heading for "Done".
        # (assumes that the "Done" item is the last item in the file)
        qeddmeGpVG>zc'ezzq

Then, I hit @e and the current line or current fold magically
moves into the "Done" branch.  If I want to, it's easy to move
the "Done" branch to another file every once in a while, to keep
the file size down.

As for otherwise summarizing the list, I use "conky" and a a
short, custom shell/perl script to put the todo list on my
desktop wallpaper.

        #!/bin/sh

        TODO=$HOME/todo.otl
        OUT=$HOME/.todo.summary

        while true ; do
          if [ $TODO -nt $OUT ]; then
            grep '\[_\]' $TODO \
              | perl -ne '
                s/\t/  /g;
                s/\[_\]/-/;
                s/- (\d\d+)%/+ \1%/;
                tr/a-z/A-Z/ if /<--/;
                s/<--/<----------------------------------------------------------------/;
                print if (/<--/) or (not /^    /);
                ' \
              > $OUT
          fi
          sleep 3
        done

This filters the outline to include only unfinished items,
filters out items deeper than one level, highlights items marked
with "<--", and formats everything for somewhat easier reading.


-- Scott
_______________________________________________
VimOutliner mailing list
[hidden email]
http://www.lists.vimoutliner.org/mailman/listinfo/vimoutliner
Reply | Threaded
Open this post in threaded view
|

Re: Re: VimOutliner as a task manager?

Scott Scriven-2
In reply to this post by Bill Powell
* Bill Powell <[hidden email]> wrote:
>  - Since I just found out about todo.sh from todotxt.com on
> this list, and am quite excited about it, I'm wondering
> about integrating that too. It might be faster to use that
> CLI approach to start and stop tasks.

You might find "devtodo" somewhat interesting.  It's a similar
CLI-based todo list, but it stores these tasks per-directory.
So, you "cd" into a project dir, and it can automatically list
your tasks before your next shell prompt is displayed.

I tried it for a while...  I like vimoutliner better, but your
mileage may vary.


-- Scott
_______________________________________________
VimOutliner mailing list
[hidden email]
http://www.lists.vimoutliner.org/mailman/listinfo/vimoutliner
Reply | Threaded
Open this post in threaded view
|

Re: VimOutliner as a task manager?

Scott Scriven-2
In reply to this post by Kyle Sexton
* Kyle Sexton <[hidden email]> wrote:
> Is anyone using VimOutliner for a task manager?  It seems that
> the check boxes are ideally suited to this type of use.  I
> can't seem to figure out how to "archive" or "hide" tasks that
> I've completed though.  After using this for awhile I'd think
> the completed tasks would start to build up.  I'd rather not
> just delete them, because having a reference to doing something
> is useful as well.
>
> Thoughts, or are you handling this a different way?

I use vimoutliner as a task manager, and I find the easiest thing
to do with completed items is to move them to the end of the
file, underneath a "Done" heading.  For example:

        [_] do this
        [_] do that
        Done
                [X] done this
                [X] done that

I generally only move top-level items or branches.  So, a large
branch would stay at the top until it's completely finished, and
then move to the bottom all at once.

Once the list gets big (the one I'm using now is 1003 lines),
moving items to the end becomes a bit less convenient.  However,
it's still pretty easy if I define a macro for it:

        # move the current line/fold to the end of the file, and indent it
        # This basically moves completed items under the heading for "Done".
        # (assumes that the "Done" item is the last item in the file)
        qeddmeGpVG>zc'ezzq

Then, I hit @e and the current line or current fold magically
moves into the "Done" branch.  If I want to, it's easy to move
the "Done" branch to another file every once in a while, to keep
the file size down.

As for otherwise summarizing the list, I use "conky" and a a
short, custom shell/perl script to put the todo list on my
desktop wallpaper.

        #!/bin/sh

        TODO=$HOME/todo.otl
        OUT=$HOME/.todo.summary

        while true ; do
          if [ $TODO -nt $OUT ]; then
            grep '\[_\]' $TODO \
              | perl -ne '
                s/\t/  /g;
                s/\[_\]/-/;
                s/- (\d\d+)%/+ \1%/;
                tr/a-z/A-Z/ if /<--/;
                s/<--/<----------------------------------------------------------------/;
                print if (/<--/) or (not /^    /);
                ' \
              > $OUT
          fi
          sleep 3
        done

This filters the outline to include only unfinished items,
filters out items deeper than one level, highlights items marked
with "<--", and formats everything for somewhat easier reading.


-- Scott
_______________________________________________
VimOutliner mailing list
[hidden email]
http://www.lists.vimoutliner.org/mailman/listinfo/vimoutliner
Reply | Threaded
Open this post in threaded view
|

Re: Re: VimOutliner as a task manager?

David J Patrick-2
In reply to this post by Scott Scriven-2
On Thu, Oct 18, 2007 at 01:58:12PM -0600, Scott Scriven wrote:
> * Bill Powell <[hidden email]> wrote:
> >  - Since I just found out about todo.sh from todotxt.com on
> > this list, and am quite excited about it, I'm wondering
> > about integrating that too. It might be faster to use that
> > CLI approach to start and stop tasks.

> You might find "devtodo" somewhat interesting.  It's a similar
> CLI-based todo list, but it stores these tasks per-directory.
> So, you "cd" into a project dir, and it can automatically list
> your tasks before your next shell prompt is displayed.
>
devtodo was really neat, and I think it would work well with many paople
working many parts of a network, as your todos can be connectd to your home
directory, or left to be found anytime you cd into a directory. I found it
easy to create items, start / stop and then everything got fragmented and
hard to keep trak of and ESPECIALLY to review. I prefer all todos in one
(or two) central location(s).
> I tried it for a while...  I like vimoutliner better, but your
> mileage may vary.
similar mileage here,
djp
_______________________________________________
VimOutliner mailing list
[hidden email]
http://www.lists.vimoutliner.org/mailman/listinfo/vimoutliner
Reply | Threaded
Open this post in threaded view
|

Re: Re: VimOutliner as a task manager?

David J Patrick-2
In reply to this post by Noel Henson
Noel Henson wrote:

> On Monday 15 October 2007, Bill Powell wrote:
>> Hi Kyle!
>>
>> As I mentioned earlier on this list, I'm (still) working on
>> VimPim, which will tie VimOutliner to the calendar.vim
>> plugin and a couple of other things so you can track
>> all your projects from within Vim. Hopefully that'll be out
>> soon and you can take a look, though it's more involved than
>> what you're describing. (For instance, you'll be able to
>> track actual time spent on projects, as with tt or karm.)
>
> Bill,
>
> Here is my VimPim setup. The calendar window and outline window are
> cross-connected with some scripting.

Yeow! brilliant !
Noel, that looks great, and Bill those feature sound most desirable (I
used to use tt)
djp
_______________________________________________
VimOutliner mailing list
[hidden email]
http://www.lists.vimoutliner.org/mailman/listinfo
Reply | Threaded
Open this post in threaded view
|

Re: VimOutliner as a task manager?

Herbert Sitz
In reply to this post by David J Patrick-2
David J Patrick-2 wrote
On Mon, Oct 15, 2007 at 04:16:20PM -0500, Kyle Sexton wrote:
. . . In any case, I personally dream of a grand fusion between vimoutliner (that
I'm crazy about) RoaringPenguins remind, and todotxt.org's approach.
djp
I did just this sort of  fusion a few months back but lost the energy to bring it into polished distributable form and post info about it on the newsgroup.

Basically it worked like this:

(1)  You could enter a Remind scheduling command as line following a headline in any outline file you're using.  E.g.,

Heading 1
   ; REM 2009 sep 08 MSG add text to this heading
Heading 2
   ;  REM 2009 sep 11 at 09:00 MSG appt for haircut

In any outline you could issue command to aggregate all the REM commands in a REM file in central directory.  If you revised REM commands in an outline you would have to reissue the command to update the REM file.  The REM file directory could hold REM files for as many outlines as you wanted.

Scheduling commands from all of the REM files were aggregated via an interface to Remind that was driven by the Calendar.vim calendar in the left pane of Vim window.  Clicking on a date would run Remind for that week and aggregate schedule items from all your outlines in a window at top right of screen.

This aggregation was itself a VO outline, so that there was one line for each day of the week, with notation on collapsed headline of how many items were scheduled that day.  Hitting <enter> on any item would open the .otl that was the source of that that Remind item and position you on the correct heading.  Pressing <shift-Enter> (I think) could mark an entry as 'Done', which involved (behind the scenes) locating the line in the source .otl and entering notation of *done*.

There was also a window pane at lower left that would show any Remind items that had appointment times for the selected week.  This output was gotten by running a little utility included with the wxRemind project.  (I initially started by integrating wxRemind, the Python gui wrapper for Remind, with VO, but in the end Vim interface was preferable, even though I still used output from one little wxRemind utility.

I also have it set up so you can enter contexts and locations for more GTD-centric focus.  These show up, if specified, on the aggregation of Remind items.

It's a fairly complex system but it all works pretty seamlessly once set up.  The problem is getting it set up.  Below is an image that shows what the aggregating Vim setup looked like.  The thing I liked most about this solution was that you could enter REM items in all of your outlines, wherever you wanted, and they would all be aggregated in this interface, with quick jump from the aggregated item back to appropriate spot in each source .otl:


If anyone's interested in developing this approach further on their own I could give you the source files and a more complete description of how to set up and use it.

-- Herb
Reply | Threaded
Open this post in threaded view
|

Re: VimOutliner as a task manager?

Herbert Sitz
hsitz wrote
In any outline you could issue command to aggregate all the REM commands in a REM file in central directory.  If you revised REM commands in an outline you would have to reissue the command to update the REM file.  The REM file directory could hold REM files for as many outlines as you wanted.
-- Herb
I should add that another advantage of this method (i.e., having REM items from all outlines aggregated in REM files in central directory) is that all the Remind functionality can be accessed totally independently of VO.  E.g., if you have timed appointments things can be set up so you receive email and/or dialog message reminders, regardless of whether you have VO open and running or not.  Or you can have output from a Remind command shown on your desktop and automatically updated every minute or two using a utility like Conky (http://en.wikipedia.org/wiki/Conky_%28software%29).  Edit an .otl file, add or modify a REM command in the file, save changes, and a minute later your schedule change is reflected on next update by Conky.  There's a lot of cool stuff you can do with the Remind end of things, once you adopt this setup.

Reply | Threaded
Open this post in threaded view
|

Re: VimOutliner as a task manager?

David J Patrick-2
In reply to this post by Herbert Sitz
hsitz wrote:

>
> David J Patrick-2 wrote:
>> On Mon, Oct 15, 2007 at 04:16:20PM -0500, Kyle Sexton wrote:
>> . . . In any case, I personally dream of a grand fusion between
>> vimoutliner (that
>> I'm crazy about) RoaringPenguins remind, and todotxt.org's approach.
>> djp
>>
> I did just this sort of  fusion a few months back but lost the energy to
> bring it into polished distributable form and post info about it on the
> newsgroup.

Flat out brilliant, Herb, I've been going over old posts and I must say
that you have cooked up some VERY nice stuff that I hope to see in
upcoming versions of vimoutliner.

thanks,
djp
_______________________________________________
VimOutliner mailing list
[hidden email]
http://www.lists.vimoutliner.org/mailman/listinfo
Reply | Threaded
Open this post in threaded view
|

Re: VimOutliner as a task manager?

Scott Scriven-2
In reply to this post by Herbert Sitz
* hsitz <[hidden email]> wrote:
> ... shown on your desktop and automatically updated every
> minute or two using a utility like Conky
> (http://en.wikipedia.org/wiki/Conky_%28software%29).  Edit an
> .otl file, add or modify a REM command in the file, save
> changes, and a minute later your schedule change is reflected
> on next update by Conky.

I'm doing exactly that, except with tkdo instead of remind.  I
keep my top 20 tasks in a vertical info panel below the rest of
my system stats like cpu use and network traffic.  It's just
'tkdo list -20', or in my case, 't l -20'.

I should probably also show my next 20 appointments, but haven't
done so yet...  same idea, though.  Just 't cal -20' to show
calendar items.

> There's a lot of cool stuff you can do with the Remind end of
> things, once you adopt this setup.

Yes, I like having components split apart so I can insert extra
bits in-between.  It's very tweakable.  :)


-- Scott
_______________________________________________
VimOutliner mailing list
[hidden email]
http://www.lists.vimoutliner.org/mailman/listinfo
Reply | Threaded
Open this post in threaded view
|

Re: VimOutliner as a task manager?

Scott Scriven-2
In reply to this post by Herbert Sitz
* hsitz <[hidden email]> wrote:
> I did just this sort of  fusion a few months back but lost the
> energy to bring it into polished distributable form and post
> info about it on the newsgroup.

It's interesting how several people have all taken the same ideas
and the same basic tool, and built things which provide solutions
in completely different ways.  You've got the one described
below, DJP made one based on Task, and I've got TKDO (which uses
VO files as a back end).  Same idea, totally different results.

> Basically it worked like this:
>
> (1)  You could enter a Remind scheduling command as line following a
> headline in any outline file you're using.  E.g.,
>
> Heading 1
>    ; REM 2009 sep 08 MSG add text to this heading
> Heading 2
>    ;  REM 2009 sep 11 at 09:00 MSG appt for haircut

Interesting.

Mine looks slightly different:

  [_] add text to this heading
      ; TKDO: D=2009-09-08@23:59
  [_] appt for haircut
      ; TKDO: D=2009-09-11@09:00 L=1d

I think the 'D=' (due date) is self-explanatory.  The 'L=1d'
(lead time) means this item should remain hidden until one day
before it's due, then start rising up the task list.

> In any outline you could issue command to aggregate all the REM
> commands in a REM file in central directory.  If you revised
> REM commands in an outline you would have to reissue the
> command to update the REM file.  The REM file directory could
> hold REM files for as many outlines as you wanted.

I'm also aggregating from multiple files, but the merged list is
never saved in merged form...  it's just calculated on demand
kind of like a database view.  The program has a 'list' command
to show all tasks, or a 'cal' command to show only items with a
due date (in chronological order).  Or a choice of interactive UIs.

> Clicking on a date would run Remind for that week and aggregate
> schedule items from all your outlines in a window at top right
> of screen.

I mostly run 'tkdo cal -20' instead, to show me the next 20 items
on the calendar.  However, I don't yet have a way to view dates
in the far future.  I guess I haven't needed that.

> This aggregation was itself a VO outline, ...

I just have a flat list, and a variety of UIs for interacting
with that list.  Hierarchic structure is represented with
colons...  For example:

  % t list @store
   87 pets :: Gryphon :: new collar <--
   79 pets :: buy cat litter
   55 personal :: buy :: pants
   55 personal :: buy :: sunglasses
   50 car :: buy new hubcaps
   27 music :: new drum sticks
  %

These are shown in decreasing priority (the numbers at the left).

The GTK UI and curses UI basically display an interactive version
of the same list, with vi-like key bindings to modify things.

> so that there was one line for each day of the week, with
> notation on collapsed headline of how many items were scheduled
> that day.

My 'cal' view is pretty ugly.  It shows the next few items with a
due date, in chronological order.  It basically looks like...

  % t cal -5
  2009-09-05@09:00 102 holiday :: Tour de Fat
  2009-09-08@19:00 Zzz personal :: Hacking Society
  2009-09-08@21:00   5 personal :: dance club goth night
  2009-09-09@18:00  78 house :: rent :: pay mortgage
  2009-09-09@18:00 Zzz house :: take out trash
  %

The 'Zzz' items are asleep, and won't show up on the main list
unless requested.  This is because they haven't hit the beginning
of their lead-in time yet.  For example, Hacking Society doesn't
meet until Tuesday, and it's Friday now.  So, I don't need to see
that on my main list yet.  But the mortgage can be paid any time
during a 2-week window, so it's already up to a fairly high
priority.

> Hitting <enter> on any item would open the .otl that was the
> source of that that Remind item and position you on the correct
> heading.

I'm using 'g' for 'go to task' instead, but same thing.  :)

(Enter is used to "zoom in" to a single topic instead; useful
when you've got over a thousand tasks)

> Pressing <shift-Enter> (I think) could mark an entry as 'Done',
> which involved (behind the scenes) locating the line in the
> source .otl and entering notation of *done*.

I've got 'x' bound to this by default, since it toggles the [_]
to a [X] (or back).

> I also have it set up so you can enter contexts and locations
> for more GTD-centric focus.  These show up, if specified, on
> the aggregation of Remind items.

Same here, except they only show up in a task's detail view.  The
contexts are mostly as filters, like 't l @store' to list items I
need at the store, but aren't displayed prominently.

> The thing I liked most about this solution was that you could
> enter REM items in all of your outlines, wherever you wanted,
> and they would all be aggregated in this interface, with quick
> jump from the aggregated item back to appropriate spot in each
> source .otl

Yes, I'm pretty fond of that too.  :)  I can keep using VO
normally, but add extra details here and there if I want items to
behave specially.  And I have a convenient UI for browsing the
aggregated task list.  Before that, I kept forgetting about
projects for months at a time because I'd forget to look at them.

> http://www.nabble.com/file/p25284923/VO-remind.png

Pretty.


I don't have screen shots, but the program is availble either
through launchpad (bzr branch lp:tkdo) or my site:

  http://toykeeper.net/programs/tkdo/

:)


-- Scott
_______________________________________________
VimOutliner mailing list
[hidden email]
http://www.lists.vimoutliner.org/mailman/listinfo
Reply | Threaded
Open this post in threaded view
|

Re: VimOutliner as a task manager?

Herbert Sitz
<quote author="Scott Scriven-2">
* hsitz <hsitz@nwlink.com> wrote:
> I did just this sort of  fusion a few months back but lost the
> energy to bring it into polished distributable form and post
> info about it on the newsgroup.

It's interesting how several people have all taken the same ideas
and the same basic tool, and built things which provide solutions
in completely different ways.  You've got the one described
below, DJP made one based on Task, and I've got TKDO (which uses
VO files as a back end).  Same idea, totally different results.<quote>
Yes, that does sound quite similar.
> Basically it worked like this:
>
> (1)  You could enter a Remind scheduling command as line following a
> headline in any outline file you're using.  E.g.,
>
> Heading 1
>    ; REM 2009 sep 08 MSG add text to this heading
> Heading 2
>    ;  REM 2009 sep 11 at 09:00 MSG appt for haircut

Interesting.

Mine looks slightly different:

  [_] add text to this heading
      ; TKDO: D=2009-09-08@23:59
  [_] appt for haircut
      ; TKDO: D=2009-09-11@09:00 L=1d

I think the 'D=' (due date) is self-explanatory.  The 'L=1d'
(lead time) means this item should remain hidden until one day
before it's due, then start rising up the task list.
I wonder what code you're using to process the scheduling items?  One goal of what I was doing was to make use of Remind, which has been around a long time and has a hugely rich feature set.  The schedule items can get much more complicated than what I showed, basically use any Remind feature you want (using regular Remind syntax), and in addition a few more I grafted on.  You can also maintain your own REM files directly (i.e, use REM items that aren't in .otl files, as Remind is normally used).

> In any outline you could issue command to aggregate all the REM
> commands in a REM file in central directory.  If you revised
> REM commands in an outline you would have to reissue the
> command to update the REM file.  The REM file directory could
> hold REM files for as many outlines as you wanted.

I'm also aggregating from multiple files, but the merged list is
never saved in merged form...  it's just calculated on demand
kind of like a database view.  The program has a 'list' command
to show all tasks, or a 'cal' command to show only items with a
due date (in chronological order).  Or a choice of interactive UIs.
Interesting idea.  I guess I never considered the on-the-fly generation because it could involve redoing a lot of work that had already been done (if same unchanged .otl files had been aggregated before), person might be clicking within the calendar UI over and over to show scheduling for different weeks, and with an indefinite number of .otl files re-aggregated needlessly each time things could seem slow (even 0.5 sec delay would be undesirable).  But at very least, idea of keeping datetime of last aggregation and having all .otl REM items re-aggregated into REM files (for Remind) on-the-fly only for .otl files that that have been changed since last aggregation would be good new feature in my system.  Much better way of doing things.

I don't have screen shots, but the program is availble either
through launchpad (bzr branch lp:tkdo) or my site:

  http://toykeeper.net/programs/tkdo/
Thanks, I'll put on my list of things to check out.

-- Herb
Reply | Threaded
Open this post in threaded view
|

Re: VimOutliner as a task manager?

David J Patrick-2
hsitz wrote:

> It's interesting how several people have all taken the same ideas
> and the same basic tool, and built things which provide solutions
> in completely different ways.  You've got the one described
> below, DJP made one based on Task, and I've got TKDO (which uses
> VO files as a back end).  Same idea, totally different results.
well I think you'll find that all dyed-in-the-wool VO users have a lot
in common. We all want to work from simple text files, have a lot to
keep track of, and therefor need task management in a similar vein.

I have to lay some of the blame on the lack of an effective central
location for this sort of thing. vimoutliner.org has proven itself
inadequate, spam-prone and lacking in developer facilities like ticket
tracking, usable files repositories and version control. Things said and
even code uploaded to a mailing list is likely to get lost in the shuffle.

My offer to set up an install of Redmine (like that used for
taskwarrior.com) still stands. It has been very fruitful for us.

I do hope that in this resurgence if interest in vimoutliner we can find
that sweet middle-ground that lets the greatest number of us see the
advantage of the good work that has been accumulating.

thanks all,
djp
_______________________________________________
VimOutliner mailing list
[hidden email]
http://www.lists.vimoutliner.org/mailman/listinfo
Reply | Threaded
Open this post in threaded view
|

Re: VimOutliner as a task manager?

Scott Scriven-2
* David J Patrick <[hidden email]> wrote:
> I have to lay some of the blame on the lack of an effective
> central location ... ticket tracking, usable files repositories
> and version control.
>
> My offer to set up an install of Redmine (like that used for  
> taskwarrior.com) still stands. It has been very fruitful for us.

There's no need to host anything.  We could easily use
launchpad.net for this.  It has the best development
infrastructure facilities I've seen, and someone else takes care
of the maintenance.  :)

In case you're not familiar with it, there's an overview here:

  https://launchpad.net/+tour/


-- Scott
_______________________________________________
VimOutliner mailing list
[hidden email]
http://www.lists.vimoutliner.org/mailman/listinfo
Reply | Threaded
Open this post in threaded view
|

Re: VimOutliner as a task manager?

David J Patrick-2
Scott Scriven wrote:
> * David J Patrick <[hidden email]> wrote:
>> My offer to set up an install of Redmine (like that used for  
>> taskwarrior.com) still stands. It has been very fruitful for us.
>
> There's no need to host anything.  We could easily use
> launchpad.net for this.  It has the best development
> infrastructure facilities I've seen, and someone else takes care
> of the maintenance.  :)
Y'know that could be great too, just not death-by-mailing list!
I know Noel has been working towards a new drupal host for vimoutliner,
and I also know that life really get's in the way of this stuff, so I
understand completely that it hasn't gelled yet.
>
> In case you're not familiar with it, there's an overview here:
>
>   https://launchpad.net/+tour/
I'm somewhat familiar.. been lost in there before, but I'm sure that
would do. First off, we should see if Noel wants a hand getting the
drupal version up. Then we toss a few more ideas on the table and see if
we can't find a consensus [tries not to laugh]
djp
_______________________________________________
VimOutliner mailing list
[hidden email]
http://www.lists.vimoutliner.org/mailman/listinfo
12