how to abstract from tree to graphs, or at least have hyperlinks

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

how to abstract from tree to graphs, or at least have hyperlinks

Peter Princz
Dear VimOutliners,

I maintain a one and only, huge outline file (BrainDump.otl :) that
contains even it's own archive. (In contrast to my real brain. :o )

Both my Diary and ToDo items are in it, and this is where my problem begins.

Imagine this:

Projects
<Tab>Project1
<Tab><Tab>[_] 25% Item1
<Tab><Tab><Tab>[X] Item11
<Tab><Tab><Tab>[_] Item12
<Tab><Tab><Tab>[_] Item13
<Tab><Tab><Tab>[_] Item14

...

I have several projects in parallel. :(
As I arrive in the morning, I try to pick at least one atomic activity
from each project a la round-robin, and try to make some progress. It
works most of the time, but sometimes I get deadlines, so this
round-robin should be weighted somehow and give much attention to a
specific project on a certain calendar day.

Fortunately, my diary is in the very same file:

Diary
<Tab>[_] 2006
<Tab><Tab>[_] June 2006
<Tab><Tab><Tab>2006.06.15 Thu

...

Would be nice to think on a calendar day as nothing else that a
collection of pointers to arbitrary leafs of the work breakdown
structures under Projects.
Planning wouldn't be else than yanking leafs, or references to leafs
under calendar days.

I tried several methods so far, but don't like them:
- move the wbs leaf under the given calendar day. But then it is cut
out of context under Projects, progress in percentages becomes
misleading there, etc.
- move it, but move back by the end of the day. A discipline hard to
follow, at least for me.
- copy it. But then I always get screwed where to update the progress
(,,cx), end up with a mixture of checked items in calendar and in the
project...
- put a slogan-like short textual reference under the calendar day,
that guides me to Projects, and then look up the wbs leaf manually.
Lot of typing and searching, but suprisingly the best so far. Also it
can be a good basis for logging what I'm actually doing.

Now, I'd like to polish this last one. I'd need a feature to jump to
specific part of the very same file, easy as with the bookmarks in
vim, soft as hyperlinks in html, and resistant to textual changes in
the wbs leafs, as it happens really often that I have to rename it as
I work on it. This is why a *-like search is not enough,
unfortunately, otherwise I'd just yank the wbs leaf name under the
calendar day and would try to keep them unique.

I'm just curious to your experiences and opinion on this matter. Tags
were the first that came to my mind to achieve this, but maybe you
have a better idea.

Any feedback would be greatly appreciated, and sorry for the longish post.

Have a nice day,
  Peter

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

Re: how to abstract from tree to graphs, or at least have hyperlinks

Steve Litt
On Thursday 15 June 2006 04:38 am, Peter Princz wrote:
> Dear VimOutliners,
[clip]

>
> Now, I'd like to polish this last one. I'd need a feature to jump to
> specific part of the very same file, easy as with the bookmarks in
> vim, soft as hyperlinks in html, and resistant to textual changes in
> the wbs leafs, as it happens really often that I have to rename it as
> I work on it. This is why a *-like search is not enough,
> unfortunately, otherwise I'd just yank the wbs leaf name under the
> calendar day and would try to keep them unique.
>
> I'm just curious to your experiences and opinion on this matter. Tags
> were the first that came to my mind to achieve this, but maybe you
> have a better idea.

My understanding is that tags could do it. This could be incorporated into
vo_maketags.pl, and if I understand both you and ctags correctly, this is
quite doable in vo_maketags.pl.

Could you please research ctags and the tag format? If you can tell me in
English what the tags should look like, I can incorporate it into
vo_maketags.pl.

SteveT

Steve Litt
Author:
   * Universal Troubleshooting Process courseware
   * Troubleshooting Techniques of the Successful Technologist
   * Manager's Guide to Technical Troubleshooting
   * Twenty Eight Tales of Troubleshooting
   * Rapid Learning: Secret Weapon of the Successful Technologist

http://www.troubleshooters.com/bookstore
http://www.troubleshooters.com/utp/tcourses.htm
_______________________________________________
VimOutliner mailing list
[hidden email]
http://www.lists.vimoutliner.org/mailman/listinfo/vimoutliner
Reply | Threaded
Open this post in threaded view
|

Re: how to abstract from tree to graphs, or at least have hyperlinks

Steve Litt
In reply to this post by Peter Princz
On Thursday 15 June 2006 04:38 am, Peter Princz wrote:

> Dear VimOutliners,
>
> I maintain a one and only, huge outline file (BrainDump.otl :) that
> contains even it's own archive. (In contrast to my real brain. :o )
>
> Both my Diary and ToDo items are in it, and this is where my problem
> begins.
>
> Imagine this:
>
> Projects
> <Tab>Project1
> <Tab><Tab>[_] 25% Item1
> <Tab><Tab><Tab>[X] Item11
> <Tab><Tab><Tab>[_] Item12
> <Tab><Tab><Tab>[_] Item13
> <Tab><Tab><Tab>[_] Item14
>
> ...
>
> I have several projects in parallel. :(
> As I arrive in the morning, I try to pick at least one atomic activity
> from each project a la round-robin, and try to make some progress. It
> works most of the time, but sometimes I get deadlines, so this
> round-robin should be weighted somehow and give much attention to a
> specific project on a certain calendar day.
>
> Fortunately, my diary is in the very same file:
>
> Diary
> <Tab>[_] 2006
> <Tab><Tab>[_] June 2006
> <Tab><Tab><Tab>2006.06.15 Thu
>
> ...
>
> Would be nice to think on a calendar day as nothing else that a
> collection of pointers to arbitrary leafs of the work breakdown
> structures under Projects.
> Planning wouldn't be else than yanking leafs, or references to leafs
> under calendar days.
>
> I tried several methods so far, but don't like them:
> - move the wbs leaf under the given calendar day. But then it is cut
> out of context under Projects, progress in percentages becomes
> misleading there, etc.
> - move it, but move back by the end of the day. A discipline hard to
> follow, at least for me.
> - copy it. But then I always get screwed where to update the progress
> (,,cx), end up with a mixture of checked items in calendar and in the
> project...
> - put a slogan-like short textual reference under the calendar day,
> that guides me to Projects, and then look up the wbs leaf manually.
> Lot of typing and searching, but suprisingly the best so far. Also it
> can be a good basis for logging what I'm actually doing.

I'm really confused as to what you're saying, but it seems to me is what you
need is cloning, where two headlines are linked such that if you change one,
the other one is automatically changed in the same way.

Cloning is hugely difficult when using Vim as an engine. Various people have
gnashed their teeth for years trying to figure out a way to do it, yet it
remains undone.

If anyone can think of a way to implement cloning, please speak up.

SteveT
 
Steve Litt
Author:
   * Universal Troubleshooting Process courseware
   * Troubleshooting Techniques of the Successful Technologist
   * Manager's Guide to Technical Troubleshooting
   * Twenty Eight Tales of Troubleshooting
   * Rapid Learning: Secret Weapon of the Successful Technologist

http://www.troubleshooters.com/bookstore
http://www.troubleshooters.com/utp/tcourses.htm
_______________________________________________
VimOutliner mailing list
[hidden email]
http://www.lists.vimoutliner.org/mailman/listinfo/vimoutliner
Reply | Threaded
Open this post in threaded view
|

Re: how to abstract from tree to graphs, or at least have hyperlinks

Peter Princz
Steve,

On 15/06/06, Steve Litt <[hidden email]> wrote:

>
> I'm really confused as to what you're saying, but it seems to me is what you
> need is cloning, where two headlines are linked such that if you change one,
> the other one is automatically changed in the same way.
>
> Cloning is hugely difficult when using Vim as an engine. Various people have
> gnashed their teeth for years trying to figure out a way to do it, yet it
> remains undone.
>
> If anyone can think of a way to implement cloning, please speak up.
>
> SteveT
>

thank you for the quick resposes, sorry for being not only longish but foggy.
I can't reflect on the first post now, I.m reading ctags in the other
window, but can reflect on this one.

*No*, it is not cloning, but "soft linking", let me examplify:

Diary
<Tab>[_] 2006
<Tab><Tab>[_] June 2006
<Tab><Tab><Tab>2006.06.15 Thu
<Tab><Tab><Tab><Tab>do some foo today
<Tab><Tab><Tab><Tab><Tab>jumpto tag_bar

...

would make a jum to:
Projects
<Tab>Project1
<Tab><Tab>[_] 25% tag_bar: Item1, which is really some foo-ing
<Tab><Tab><Tab>[X] Item11
<Tab><Tab><Tab>[_] Item12
<Tab><Tab><Tab>[_] Item13
<Tab><Tab><Tab>[_] Item14

in an ideal world, back and forth, i.e. show the mapping from the
project towards the calendar, but from the calendar into the work item
direction would be enough.

So this is like a goto, but you can insert inbetween, change the
strings at both ends, etc.

Hope this helps, and thank you once again.

/Peter

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

Re: how to abstract from tree to graphs, or at least have hyperlinks

Peter Princz
Steve (and anyone interested),

to put it this way and to refer to terminology in |vo-testing|: this
would be similar to *inter*outline linking, but not exactly.

This would be *intra*outline linking, i.e. you don't open another
outline file, but you stay within the same file. However, you have to
move (jump with) the cursor to a different line in the file.
(Back is not that important, I have a bookmark for today.)

Hope this helps,
  Peter

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

Re: how to abstract from tree to graphs, or at least have hyperlinks

Peter Princz
Sorry for the noise, still thinking aloud.
I found and tested the first workaround: by inserting a unique
timestamp into the lines involved into the back-and-forth jump, *
could be used to do the trick and still, the two strings can be
different. (Imagine foo is the slogan in the Diary, while bar is the
project wbs leaf in the example below. Don't want to repeat the whole
example with the <tab>'s...)

        [_] foo, will jump to bar (#20060615151946#)
        [_] test, will be jumped over (#20060615152238#)
        [_] bar, will jump to foo (#20060615151946#)

Only I have to move between the two #'s with the cursor, and then *
will jump to the mate line with the same timestamp.
This timestamp is not that distracting, only I have to hack ,,d and
,,t to remove punctuation, thus get a single-word timestamp, as in the
example above.
Timestamps would be added to the project area leafs only, and then
yanked into the calendar.
The timestamp has the additional benefit of showing the age of a task,
i.e. when it was created or selected to be done on a certain date...

What do you think?

Have a nice day,
  Peter

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

Re: how to abstract from tree to graphs, or at least have hyperlinks

Steve Litt
On Thursday 15 June 2006 09:35 am, Peter Princz wrote:

> Sorry for the noise, still thinking aloud.
> I found and tested the first workaround: by inserting a unique
> timestamp into the lines involved into the back-and-forth jump, *
> could be used to do the trick and still, the two strings can be
> different. (Imagine foo is the slogan in the Diary, while bar is the
> project wbs leaf in the example below. Don't want to repeat the whole
> example with the <tab>'s...)
>
> [_] foo, will jump to bar (#20060615151946#)
> [_] test, will be jumped over (#20060615152238#)
> [_] bar, will jump to foo (#20060615151946#)
>
> Only I have to move between the two #'s with the cursor, and then *
> will jump to the mate line with the same timestamp.
> This timestamp is not that distracting, only I have to hack ,,d and
> ,,t to remove punctuation, thus get a single-word timestamp, as in the
> example above.
> Timestamps would be added to the project area leafs only, and then
> yanked into the calendar.
> The timestamp has the additional benefit of showing the age of a task,
> i.e. when it was created or selected to be done on a certain date...
>
> What do you think?
>
> Have a nice day,
>   Peter


I tried it, it works -- pretty slick!

Now my question is this... Is this better than tweaking interoutline linking
to enable intRAoutline linking, in which case you'd go one way with Ctrl+K,
and back via Ctrl+N.

In 2001 I tried to implement intRAoutline linking along with intERoutline
linking, but I ran out of time trying to understand the ctags documentation.
Nevertheless, the reading I did at the time indicates that it's doable in a
straightforward manner -- I just don't know exactly how.

The VO syntax would probably be:

_tag_localtree
        #mylabel

The same thing would also implement jumping to a *particular part* of another
outline, as in...

_tag_specific_tree_in_other_file
        /data/programming/c/myspecs.otl#mylabel

All that's required to do this is a knowledge of ctags. I think the mods to
vo_maketags.pl would be easy. As far as backward compatibility, we rebuild
our tags every time we incorporate a new file, so we'd simply switch tag file
formats on one of those rebuilds.

If we decide to do the timestamp method (or both), it would be pretty easy to
create a commacomma command to install the pound sign delimited timestamp,
while leaving ,,d and ,,t as they are.

So, who is a ctags expert?

Good idea Peter!

SteveT
 
Steve Litt
Author:
   * Universal Troubleshooting Process courseware
   * Troubleshooting Techniques of the Successful Technologist
   * Manager's Guide to Technical Troubleshooting
   * Twenty Eight Tales of Troubleshooting
   * Rapid Learning: Secret Weapon of the Successful Technologist

http://www.troubleshooters.com/bookstore
http://www.troubleshooters.com/utp/tcourses.htm
_______________________________________________
VimOutliner mailing list
[hidden email]
http://www.lists.vimoutliner.org/mailman/listinfo/vimoutliner
Reply | Threaded
Open this post in threaded view
|

Re: how to abstract from tree to graphs, or at least have hyperlinks

Stefan Schmiedl
Steve Litt (15.06. 10:55):

> So, who is a ctags expert?

Not right now, but you might check out what I knew some years ago when I
hacked the Outline Calendar, which should still be available via
vimoutliner.org.

s.
--
Stefan Schmiedl
+-------------------------------+----------------------------------------+
|Approximity GmbH               | EDV-Beratung Schmiedl                  |
|http://www.approximity.com     | Am Bräuweiher 4, 93499 Zandt, Germany  |
|mailto:[hidden email]  | Tel. (09944) 3068-98, Fax -97          |
+-------------------------------+----------------------------------------+
_______________________________________________
VimOutliner mailing list
[hidden email]
http://www.lists.vimoutliner.org/mailman/listinfo/vimoutliner
Reply | Threaded
Open this post in threaded view
|

Re: how to abstract from tree to graphs, or at least have hyperlinks

Peter Princz
In reply to this post by Steve Litt
Hi VimOutliners,

On 15/06/06, Steve Litt <[hidden email]> wrote:

> On Thursday 15 June 2006 09:35 am, Peter Princz wrote:
> > Sorry for the noise, still thinking aloud.
> > I found and tested the first workaround: by inserting a unique
> > timestamp into the lines involved into the back-and-forth jump, *
> > could be used to do the trick and still, the two strings can be
> > different. (Imagine foo is the slogan in the Diary, while bar is the
> > project wbs leaf in the example below. Don't want to repeat the whole
> > example with the <tab>'s...)
> >
> >       [_] foo, will jump to bar (#20060615151946#)
> >       [_] test, will be jumped over (#20060615152238#)
> >       [_] bar, will jump to foo (#20060615151946#)
> >
>> ...
> > The timestamp has the additional benefit of showing the age of a task,
> > i.e. when it was created or selected to be done on a certain date...
> >
>
> I tried it, it works -- pretty slick!
>
> Now my question is this... Is this better than tweaking interoutline linking
> to enable intRAoutline linking, in which case you'd go one way with Ctrl+K,
> and back via Ctrl+N.
>
> In 2001 I tried to implement intRAoutline linking along with intERoutline
> linking, but I ran out of time trying to understand the ctags documentation.
> Nevertheless, the reading I did at the time indicates that it's doable in a
> straightforward manner -- I just don't know exactly how.
>
> The VO syntax would probably be:
>
> _tag_localtree
>         #mylabel
>
> The same thing would also implement jumping to a *particular part* of another
> outline, as in...
>
> _tag_specific_tree_in_other_file
>         /data/programming/c/myspecs.otl#mylabel
>
> All that's required to do this is a knowledge of ctags. I think the mods to
> vo_maketags.pl would be easy. As far as backward compatibility, we rebuild
> our tags every time we incorporate a new file, so we'd simply switch tag file
> formats on one of those rebuilds.
>
> If we decide to do the timestamp method (or both), it would be pretty easy to
> create a commacomma command to install the pound sign delimited timestamp,
> while leaving ,,d and ,,t as they are.
>
> So, who is a ctags expert?
>
> Good idea Peter!
>
> SteveT
>

for the records only: I've been testing this workaround for approx. 3
weeks and I'm very happy with it. I think I'll stick with it and leave
the ctags path for others.
There was a minor issue but I could fix it: imagine a week when you
want to be reminded every day from Monday thru Friday to roll the ball
a bit forward in a project. Then * on Monday will *not* jump to the
actual work item in the work breakdown structure, but to Tuesday,
Wednesday, etc. instead. This can be a pain.
However, if you have top level intries in your outline (Diary and
Tasks for example), and have bookmarks for these, then it's quite
simple to "jump out" from Diary, irrespective of how many links do you
have put to a given work item.

So I do * on the timestamp in the reminder in the Diary, and if it
keeps me still in Diary, then a 'T to jump to 'Tasks', and n from
there to jump to the needed item.

This way I can have arbitrary number of reminders to a given work item.

Have a nice day,
  Peter

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

Re: how to abstract from tree to graphs, or at least have hyperlinks

Steve Litt
On Wednesday 05 July 2006 09:27 am, Peter Princz wrote:

> Hi VimOutliners,
>
> On 15/06/06, Steve Litt <[hidden email]> wrote:
> > On Thursday 15 June 2006 09:35 am, Peter Princz wrote:
> > > Sorry for the noise, still thinking aloud.
> > > I found and tested the first workaround: by inserting a unique
> > > timestamp into the lines involved into the back-and-forth jump, *
> > > could be used to do the trick and still, the two strings can be
> > > different. (Imagine foo is the slogan in the Diary, while bar is the
> > > project wbs leaf in the example below. Don't want to repeat the whole
> > > example with the <tab>'s...)
> > >
> > >       [_] foo, will jump to bar (#20060615151946#)
> > >       [_] test, will be jumped over (#20060615152238#)
> > >       [_] bar, will jump to foo (#20060615151946#)
> >>
> >> ...
> >>
> > > The timestamp has the additional benefit of showing the age of a task,
> > > i.e. when it was created or selected to be done on a certain date...
> >
> > I tried it, it works -- pretty slick!
> >
> > Now my question is this... Is this better than tweaking interoutline
> > linking to enable intRAoutline linking, in which case you'd go one way
> > with Ctrl+K, and back via Ctrl+N.
> >
> > In 2001 I tried to implement intRAoutline linking along with intERoutline
> > linking, but I ran out of time trying to understand the ctags
> > documentation. Nevertheless, the reading I did at the time indicates that
> > it's doable in a straightforward manner -- I just don't know exactly how.
> >
> > The VO syntax would probably be:
> >
> > _tag_localtree
> >         #mylabel
> >
> > The same thing would also implement jumping to a *particular part* of
> > another outline, as in...
> >
> > _tag_specific_tree_in_other_file
> >         /data/programming/c/myspecs.otl#mylabel
> >
> > All that's required to do this is a knowledge of ctags. I think the mods
> > to vo_maketags.pl would be easy. As far as backward compatibility, we
> > rebuild our tags every time we incorporate a new file, so we'd simply
> > switch tag file formats on one of those rebuilds.
> >
> > If we decide to do the timestamp method (or both), it would be pretty
> > easy to create a commacomma command to install the pound sign delimited
> > timestamp, while leaving ,,d and ,,t as they are.
> >
> > So, who is a ctags expert?
> >
> > Good idea Peter!
> >
> > SteveT
>
> for the records only: I've been testing this workaround for approx. 3
> weeks and I'm very happy with it. I think I'll stick with it and leave
> the ctags path for others.
> There was a minor issue but I could fix it: imagine a week when you
> want to be reminded every day from Monday thru Friday to roll the ball
> a bit forward in a project. Then * on Monday will *not* jump to the
> actual work item in the work breakdown structure, but to Tuesday,
> Wednesday, etc. instead. This can be a pain.
> However, if you have top level intries in your outline (Diary and
> Tasks for example), and have bookmarks for these, then it's quite
> simple to "jump out" from Diary, irrespective of how many links do you
> have put to a given work item.
>
> So I do * on the timestamp in the reminder in the Diary, and if it
> keeps me still in Diary, then a 'T to jump to 'Tasks', and n from
> there to jump to the needed item.
>
> This way I can have arbitrary number of reminders to a given work item.
>
> Have a nice day,
>   Peter

Peter,

Could you please send a trivial example file to the list, together with
rudimentary instructions on how to use this "workaround"? It sounds like
something I'd like to do, but I don't understand it fully enough to use it.

Thanks

SteveT

Steve Litt
Author:
   * Universal Troubleshooting Process courseware
   * Troubleshooting Techniques of the Successful Technologist
   * Manager's Guide to Technical Troubleshooting
   * Twenty Eight Tales of Troubleshooting
   * Rapid Learning: Secret Weapon of the Successful Technologist

http://www.troubleshooters.com/bookstore
http://www.troubleshooters.com/utp/tcourses.htm
_______________________________________________
VimOutliner mailing list
[hidden email]
http://www.lists.vimoutliner.org/mailman/listinfo/vimoutliner
Reply | Threaded
Open this post in threaded view
|

Re: how to abstract from tree to graphs, or at least have hyperlinks

Peter Princz
Steve,

On 06/07/06, Steve Litt <[hidden email]> wrote:

> Peter,
>
> Could you please send a trivial example file to the list, together with
> rudimentary instructions on how to use this "workaround"? It sounds like
> something I'd like to do, but I don't understand it fully enough to use it.
>
> Thanks
>
> SteveT
>

yes, but it won't be much deeper than what already has been posted to
this thread. Btw, gmail is a wonderful thing for those things you
don't copy into your vo file(s). :)
Below, I'll compile one email from the thread.

The basic problem is: how to maintain intraoutline links?
The real-world example comes from an outline file, where both the
hierarchy of tasks in several projects running in parallel (work
breakdown structures), and a calendar (diary) structure reside in the
very same file.
Both the wbs and the calendar are trees on their own, however, some of
their leafs should be connected somehow.

Here is an example diary file (mine is more complex, but this should
be a good demo):

Diary
<Tab>[_] 2006
<Tab><Tab>[_] June 2006
<Tab><Tab><Tab>2006.06.15 Thu
<Tab><Tab><Tab><Tab>Foo
<Tab><Tab><Tab>2006.06.16 Fri
<Tab><Tab><Tab><Tab>Bar

And all the projects and tasks in the very same file:

Projects
<Tab>ProjectFoo
<Tab><Tab>[_] 25% ItemFoo1
<Tab><Tab><Tab>[X] ItemFoo11
<Tab><Tab><Tab>[_] ItemFoo12
<Tab><Tab><Tab>[_] ItemFoo13
<Tab><Tab><Tab>[_] ItemFoo14
<Tab><Tab>[_] 0% ItemFoo2
<Tab>ProjectBar
<Tab><Tab>[_] 25% ItemBar1
<Tab><Tab><Tab>[X] ItemBar11
<Tab><Tab><Tab>[_] ItemBar12
<Tab><Tab><Tab>[_] ItemBar13
<Tab><Tab><Tab>[_] ItemBar14
<Tab><Tab>[_] 0% ItemBar2
...
<Tab>Project<n>

I have several projects running in parallel. :(
As I arrive in the morning, I try to pick at least one atomic activity
from each project a la round-robin, and try to make some progress. It
works most of the time, but sometimes I get deadlines, so this
round-robin should be weighted somehow and give much attention to a
specific project on a certain calendar day.

Would be nice to think on a calendar day as nothing else that a
collection of pointers to arbitrary leafs of the work breakdown
structures under Projects.
Planning wouldn't be else than yanking leafs, or references to leafs
under calendar days.

I tried several methods so far, but don't like them:
- move the wbs leaf under the given calendar day. But then it is cut
out of context under Projects, progress in percentages becomes
misleading there, etc.
- move it, but move back by the end of the day. A discipline hard to
follow, at least for me.
- copy it. But then I always get screwed where to update the progress
(,,cx), end up with a mixture of checked items in calendar and in the
project...
- put a slogan-like short textual reference under the calendar day,
that guides me to Projects, and then look up the wbs leaf manually.
Lot of typing and searching, but suprisingly the best so far. Also it
can be a good basis for logging what I'm actually doing.

I found and tested a possible solution to this problem: by inserting a unique
timestamp into the lines involved into the back-and-forth jump, *
could be used to do the trick and still, the two strings can be
different. (Imagine foo is the slogan in the Diary, while bar is the
project wbs leaf in the example below.

       [_] foo, will jump to bar (#20060615151946#)
       [_] test, will be jumped over (#20060615152238#)
       [_] bar, will jump to foo (#20060615151946#)

Only I have to move between the two #'s with the cursor, and then *
will jump to the mate line with the same timestamp.
This timestamp is not that distracting, only I have to hack ,,d and
,,t to remove punctuation, thus get a single-word timestamp, as in the
example above.
Timestamps would be added to the project area leafs or branches to my
liking, and then simply copy/pasted by the end of the calendar slogan.
The timestamp has the additional benefit of showing the age of a task,
i.e. when it was created or selected to be done on a certain date...

So now the wbs looks like this (note the different depth  I decided to
mark with the timestamp tag: the whole project in the first instance,
and an element somewhere in the wbs in the other example):

Projects
<Tab>ProjectFoo (#20060615151946#)
<Tab><Tab>[_] 25% ItemFoo1
<Tab><Tab><Tab>[X] ItemFoo11
<Tab><Tab><Tab>[_] ItemFoo12
<Tab><Tab><Tab>[_] ItemFoo13
<Tab><Tab><Tab>[_] ItemFoo14
<Tab><Tab>[_] 0% ItemFoo2
<Tab>ProjectBar
<Tab><Tab>[_] 25% ItemBar1
<Tab><Tab><Tab>[X] ItemBar11
<Tab><Tab><Tab>[_] ItemBar12 (#20060615151947#)
<Tab><Tab><Tab>[_] ItemBar13
<Tab><Tab><Tab>[_] ItemBar14
<Tab><Tab>[_] 0% ItemBar2

Note: the timestamp of 'bar' is a second younger than the other one.

Now, the Diary may have pointers to arbitrary points in the wbs, and
is very simple to jump back and forth the timestamps with the * search
operator (standard in vi), because the timestamp is a single word and
is unique.

Diary
<Tab>[_] 2006
<Tab><Tab>[_] June 2006
<Tab><Tab><Tab>2006.06.15 Thu
<Tab><Tab><Tab><Tab>foo!!! (#20060615151946#)
<Tab><Tab><Tab>2006.06.16 Fri
<Tab><Tab><Tab><Tab>review this by tomorrow! (#20060615151947#)

Note there is nothing common in the textual slogan at both places, the
timestamp can "link" the two lines in the text file.

Last refinement: not only two, but arbitrary number of identical
timestampes. Suppose you want to work from Monday to Wednesday on
project 'Foo', and the last two days of the work week on project
'Bar'.
Then there will be three links from the diary to 'foo' and two to
'bar', meaning, youll have to press * 3 times on Monday to get to the
desired wbs element.

Diary
<Tab>[_] 2006
<Tab><Tab>[_] June 2006
<Tab><Tab><Tab>2006.06.12 Mon
<Tab><Tab><Tab><Tab>foo!!! (#20060615151946#)
<Tab><Tab><Tab>2006.06.13 Tue
<Tab><Tab><Tab><Tab>foo!!! (#20060615151946#)
<Tab><Tab><Tab>2006.06.14 Wed
<Tab><Tab><Tab><Tab>foo!!! (#20060615151946#)
<Tab><Tab><Tab>2006.06.15 Thu
<Tab><Tab><Tab><Tab>bar!!! (#20060615151947#)
<Tab><Tab><Tab>2006.06.16 Fri
<Tab><Tab><Tab><Tab>review this by tomorrow! (#20060615151947#)

What I do in this case: I have a bookmark to the top level elements in
my outline file, say 'D' for 'Diary' and 'P' for 'Projects'. I have to
drop them only once with mD and mP, these again are standard vi
features.

Now, pressing * once on the timestamp of Monday will move the cursor
to Tuesday only, but I realise this quickly and press 'P to jump out
from the Diary to the line containing 'Projects', the top of the wbs.
The timestamp has been yanked into the search buffer with the first *,
so I only have to prees n once, and I'm at the desired point in wbs.

:)

Have a nice day,
  Peter

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

Re: how to abstract from tree to graphs, or at least have hyperlinks

Steve Litt
Do you have a hotkey to make a project when you first enter the desired item
in the day?

SteveT

On Thursday 06 July 2006 11:15 am, Peter Princz wrote:

> Diary
> <Tab>[_] 2006
> <Tab><Tab>[_] June 2006
> <Tab><Tab><Tab>2006.06.15 Thu
> <Tab><Tab><Tab><Tab>Foo
> <Tab><Tab><Tab>2006.06.16 Fri
> <Tab><Tab><Tab><Tab>Bar
>
> And all the projects and tasks in the very same file:
>
> Projects
> <Tab>ProjectFoo
> <Tab><Tab>[_] 25% ItemFoo1
> <Tab><Tab><Tab>[X] ItemFoo11
> <Tab><Tab><Tab>[_] ItemFoo12
> <Tab><Tab><Tab>[_] ItemFoo13
> <Tab><Tab><Tab>[_] ItemFoo14
> <Tab><Tab>[_] 0% ItemFoo2
> <Tab>ProjectBar
> <Tab><Tab>[_] 25% ItemBar1
> <Tab><Tab><Tab>[X] ItemBar11
> <Tab><Tab><Tab>[_] ItemBar12
> <Tab><Tab><Tab>[_] ItemBar13
> <Tab><Tab><Tab>[_] ItemBar14
> <Tab><Tab>[_] 0% ItemBar2
> ...
> <Tab>Project<n>
_______________________________________________
VimOutliner mailing list
[hidden email]
http://www.lists.vimoutliner.org/mailman/listinfo/vimoutliner
Reply | Threaded
Open this post in threaded view
|

Re: how to abstract from tree to graphs, or at least have hyperlinks

Steve Litt
In reply to this post by Peter Princz
On Thursday 06 July 2006 11:15 am, Peter Princz wrote:
[clip]

> I have several projects running in parallel. :(
> As I arrive in the morning, I try to pick at least one atomic activity
> from each project a la round-robin, and try to make some progress. It
> works most of the time, but sometimes I get deadlines, so this
> round-robin should be weighted somehow and give much attention to a
> specific project on a certain calendar day.
>
> Would be nice to think on a calendar day as nothing else that a
> collection of pointers to arbitrary leafs of the work breakdown
> structures under Projects.
> Planning wouldn't be else than yanking leafs, or references to leafs
> under calendar days.
>
> I tried several methods so far, but don't like them:

Hi everyone,

Let me throw out this question for the sake of discussion. Are we starting to
feel the limits of the Vim engine? Cloning appears nearly impossible with the
Vim engine, and in my opinion the current VO hoisting is pretty rocky.

Every data relationship Peter discusses, plus cloning and hoisting, could be
represented in Postgres or MySQL, both of which are standard on most Linux
boxen, without wierd kludges. Relational databases accommodate things like
hoisting, cloning and other relationships that a pure hierarchy would choke
on or require some pretty iffy kludges. As a matter of fact, years ago
Gabriel Horner came to my house and showed off a MySQL enhanced VO with some
pretty enhanced capabilities. Gabriel -- U still on the list?

I think that if we ever do make a DBMS back end, several things are vital:

1) Vim based VimOutliner remains the "main" version forever.
2) The DBMS backed version could be called "VO Magnum" or something like that.
3) The DBMS version's main front end should respond to VO keystrokes.
4) The DBMS version should be able to import and export to standard VO.
5) In all respects, the current VO should be the prototype for the DBMS based
VO.
6) The building of the DBMS version, if it happens at all, should be done
slowly with lots of discussion on the list.
7) Before we could really begin, we'd need a maintainer. There's no guarantee
that either Noel or I would have the time for developing/maintaining the DBMS
version.
8) The DBMS version could have an additional front end (besides the VO clone)
that would be much more "user friendly" and therefore slower for a touch
typist. That version should teach the VO keystrokes so that it's really just
a transition.
9) There must be a backup mechanism.
10) There must be a committed culture of cooperation between the two VO's so
that, to the extent, good features of either end up in the other, and so that
keystrokes are identical, and so that key combinations aren't glutonously
consumed.

Like I said, I'm not necessarily suggesting we do this, and if we eventually
do, I'm not implying it will be done anytime soon. I'm just starting a bull
session.

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

Re: how to abstract from tree to graphs, or at least have hyperlinks

Peter Princz
In reply to this post by Steve Litt
Hi Steve,

On 06/07/06, Steve Litt <[hidden email]> wrote:
> Do you have a hotkey to make a project when you first enter the desired item
> in the day?
>
> SteveT
>

maybe I'm in a misunderstanding, but I don not have a 'make' operation
at all in these project work breakdown structures. This my personal
PIM-file with my tasks, but they do not contain the source files I'm
woking (programming) on.

Yes, I use vi (gvim) for everything, i.e. coding as well, and I use
:make there extensively, but there is nothing to 'make' in my PIM
file.

The only thing I do is to recalculate the progress in percentages
occasionally. I detached the automatic recalculation triggered from
toggling the checkbox state, because recalculation of my huge outline
file is too slow on my PC.

Have a nice day,
  Peter

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

Re: how to abstract from tree to graphs, or at least have hyperlinks

Steve Litt
On Friday 07 July 2006 10:40 am, Peter Princz wrote:

> Hi Steve,
>
> On 06/07/06, Steve Litt <[hidden email]> wrote:
> > Do you have a hotkey to make a project when you first enter the desired
> > item in the day?
> >
> > SteveT
>
> maybe I'm in a misunderstanding, but I don not have a 'make' operation
> at all in these project work breakdown structures. This my personal
> PIM-file with my tasks, but they do not contain the source files I'm
> woking (programming) on.
>
> Yes, I use vi (gvim) for everything, i.e. coding as well, and I use
>
> :make there extensively, but there is nothing to 'make' in my PIM
>
> file.
>
> The only thing I do is to recalculate the progress in percentages
> occasionally. I detached the automatic recalculation triggered from
> toggling the checkbox state, because recalculation of my huge outline
> file is too slow on my PC.
>
> Have a nice day,

Hi Peter,

What I meant is this. You need a day and a project with the same timestamp.
You could manually copy the timestamp, but a much easier way would be to have
the cursor on a daily pointer, hit a hotkey, and have VO create a project
with the same timestamp as the new day pointer. This would eliminate a lot of
opportunity for transcription errors.

Thanks

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

Re: how to abstract from tree to graphs, or at least have hyperlinks

Peter Princz
In reply to this post by Steve Litt
Steve,

please find my comments inline.

On 06/07/06, Steve Litt <[hidden email]> wrote:
> Hi everyone,
>
> Let me throw out this question for the sake of discussion. Are we starting to
> feel the limits of the Vim engine?

I personally not.

> Cloning appears nearly impossible with the
> Vim engine,

Yes, but I do not feel the need of cloning. I prefer singletons with
softlinks in almost everything. :o
The intraoutline linking we are talking in this thread is compliant
with this approach.
But this is a personal preference only, I can accept if others think
cloned copies of bit-to-bit identical pieces of information are the
way to go for them...

> and in my opinion the current VO hoisting is pretty rocky.

Yes, it is. But I again, use a workaround here. A very simple, 3-liner
entry at the top level in my outline file:
Hoisting and indent manipulation
        // === Hoisting start ===
        // === Hoisting end ===
       
I simply yank the branch I want to print/export/manipulate on between
the two markers, close it with zc, mark it with v, type the number of
levels I want to outdent and then <. So in short: I have the hoisted
copy (yes, it's a clone :) in the same file. I delete the clone from
the hoisting area after the manipulation.

>
> Every data relationship Peter discusses, plus cloning and hoisting, could be
> represented in Postgres or MySQL, both of which are standard on most Linux
> boxen, without wierd kludges. Relational databases accommodate things like
> hoisting, cloning and other relationships that a pure hierarchy would choke
> on or require some pretty iffy kludges.

I'm a strong supporter of relational databases, work daily with Oracle
and Sybase, but the main point in migrating from i.e. Outlook was to
have all my data in a single text file that I can manipulate with the
fastest tool I ever had for text manipulation (=vim).
I personally intentionally do not want to step out from vi. In that
moment I would lose the speed and ease of editing my outline(s) which
is a decisive factor.

I'm on a long-long (17 years long to date) journey visiting commercial
paper-based filofaxes, electronic PDA-s, a self-made database-powered
PIM-tool, corporate Outlook, self-made paper-based Filofax. Only
recently, using VO I have the feeling of the arrival. :o

>As a matter of fact, years ago
> Gabriel Horner came to my house and showed off a MySQL enhanced VO with some
> pretty enhanced capabilities. Gabriel -- U still on the list?

However, I'm very interested in this approach. As I mentioned above, I
myself wrote a textual graph manipulation tool with a database backend
a few years ago.
Let me describe at this point where I'm stretching the limits of VO:
an item and it's child element below it in a vo file are the vertices
in the graph, the fact the child is demoted below the parent is an
edge in the graph. The vertices do have at least a mininal set of
properties (a name, the actual text typed at that line), while the
edges absolutely nothing! Would be nice to know *why* is something
below the parent (synonym? elaboration? antonym? translation in a
foreign language?) as well as handle weighted edges, so that an
outline file could be used for making informed decisions. :o
The RDBMS-powered PIM I was polishing for myself was capable of
storing properties of the edges as well, would be nice to evalute the
solution you are referring to here from this point of view.
(But of course, the best would be to incorporate this somehow into the
existing VO... :)

>
> I think that if we ever do make a DBMS back end, several things are vital:
>
> 1) Vim based VimOutliner remains the "main" version forever.

Yes, I agree.

> 2) The DBMS backed version could be called "VO Magnum" or something like that.

Can't comment on this.

> 3) The DBMS version's main front end should respond to VO keystrokes.

In fact, I think this frontend should be VO itself. I have a plugin
called 'dbext' installed, from where you can log in to a database,
send sql commands and have the resultset in another window. I'd start
with trying to marry VO and dbext plugins. What do you think?
It can be found here:
http://www.vim.org/scripts/script.php?script_id=356

> 4) The DBMS version should be able to import and export to standard VO.

Yes, see above.

> 5) In all respects, the current VO should be the prototype for the DBMS based
> VO.

Not only prorotype, but "The" frontend, as described above.

> 6) The building of the DBMS version, if it happens at all, should be done
> slowly with lots of discussion on the list.

Yes.

> 7) Before we could really begin, we'd need a maintainer. There's no guarantee
> that either Noel or I would have the time for developing/maintaining the DBMS
> version.

This will be the hardest, I think. :(

> 8) The DBMS version could have an additional front end (besides the VO clone)
> that would be much more "user friendly" and therefore slower for a touch
> typist. That version should teach the VO keystrokes so that it's really just
> a transition.

I personally donát feel the need for another frontend, I think vi with
vo would be fine for me. However, once the table structure and all the
validation logic is in péace in the database, it is relatively easy to
create or even to autogenerate some fancy GUI forms to feed-retrieve
the DB tables...

> 9) There must be a backup mechanism.

That is built into the database, at least into those I'm working with.
I do not think special care is needed from us here, apart from being
able to fetch the whole outline file from the database into vi.

> 10) There must be a committed culture of cooperation between the two VO's so
> that, to the extent, good features of either end up in the other, and so that
> keystrokes are identical, and so that key combinations aren't glutonously
> consumed.

I can't comment on this one. I'm not even convinced on the need for
another frontend, as I explained above.

>
> Like I said, I'm not necessarily suggesting we do this, and if we eventually
> do, I'm not implying it will be done anytime soon. I'm just starting a bull
> session.
>

These were just my 2 cents.

Have a nice day,
  Peter

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

Re: how to abstract from tree to graphs, or at least have hyperlinks

Peter Princz
In reply to this post by Steve Litt
Steve,

On 07/07/06, Steve Litt <[hidden email]> wrote:

> Hi Peter,
>
> What I meant is this. You need a day and a project with the same timestamp.
> You could manually copy the timestamp, but a much easier way would be to have
> the cursor on a daily pointer, hit a hotkey, and have VO create a project
> with the same timestamp as the new day pointer. This would eliminate a lot of
> opportunity for transcription errors.
>
> Thanks
>
> SteveT

thank you for the clarification, now I understand. To be honest, I
haven't thought about it yet, because I'm doing the other way around:
it is the wbs of higher importance, and the diary is just a collection
of pointers, reminders to wbs elements.

It is simply not important (for me!) on which calendar day a project
has been started. (Or if yes, I can type it as a child note under the
project name...)

And no, mistyping cannot happen, because I simply yank the wbs element
(one single line, *not* folded) into the Diary, and edit the slogan
there, but I do not touch the timestamp in parentheses.

Have a nice day,
  Peter

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

Re: how to abstract from tree to graphs, or at least have hyperlinks

Steve Litt
In reply to this post by Peter Princz
On Friday 07 July 2006 11:25 am, Peter Princz wrote:

> I'm on a long-long (17 years long to date) journey visiting commercial
> paper-based filofaxes, electronic PDA-s, a self-made database-powered
> PIM-tool, corporate Outlook, self-made paper-based Filofax. Only
> recently, using VO I have the feeling of the arrival. :o

       *     *
        \ o /
         \|/
          |               C O O L
         / \  _  
        /   \/
       /
      -

Everyone read that? A 17 year journey, and VO gives the feeling of arrival.

Any chance of letting Noel put that quote on vimoutliner.com?

Thanks

SteveT
_______________________________________________
VimOutliner mailing list
[hidden email]
http://www.lists.vimoutliner.org/mailman/listinfo/vimoutliner