Great Circle Associates Majordomo-Workers
(March 1999)
 

Indexed By Date: [Previous] [Next] Indexed By Thread: [Previous] [Next]

Subject: Re: Majordomo 2 workers
From: Norbert Bollow <nb @ thinkcoach . com>
Date: Sat, 27 Mar 1999 19:29:52 +0100
To: tibbs @ math . uh . edu
Cc: majordomo-workers @ GreatCircle . COM, spadkins @ internetdynamics . com
In-reply-to: <ufa7ls4hxjs.fsf@epithumia.math.uh.edu> (message from Jason LTibbitts III on 26 Mar 1999 13:15:51 -0600)
Prefer-language: de, en, fr
References: <Stephen Adkins's message of "Wed, 24 Mar 1999 12:30:14 -0500"> <3.0.5.32.19990324123014.007c0dd0@pop.mindspring.com> <3.0.5.32.19990324154754.007c0dd0@pop.mindspring.com> <ufaemmcelc2.fsf@epithumia.math.uh.edu> <ufa7ls4hxjs.fsf@epithumia.math.uh.edu>

Jason L Tibbitts III <tibbs@math.uh.edu> wrote:

Sounds great! Could you please include this text in the Mj2 source tree
so that the idea won't get lost?

-- NB.

> Last night while trying to sleep I figured out an interesting way to do
> nested lists relatively cheaply.
> 
> Each list has a variable: master_list.  In it you put the name of the list
> the current list is under in the hierarchy.  Multiple lists can be under a
> single master.  (We'll also need to track the dependencies in the other
> direction using 'slave_lists', but it is possible to do this
> automatically.)  All of the lists that you can address are real lists, not
> ephemeral objects created from database joins.
> 
> When an action (say, zubscribe) is performed, the core routine works its
> way up the tree and does what's appropriate.  Join a list on a far branch
> of the tree and automatically be put on the other lists back to the root.
> 
> This can also be used for config variable inheritance, user flag
> inheritance (although this requires the flag structures to change) and
> other things.  I think it would actually satisfy many of your requirements.
> 
> But there are three things I especially like: it is probably the simplest
> way to do this (code-wise), it has zero impact on regular operation (if
> 'master_list' is undefined, you don't have to do anything extra) and it
> imposes no explicit naming convention.  I can have (as I do now) lists
> fvwm, fvwm-workers and fvwm-announce and have fvwm-announce be the master;
> joining either fvwm or fvwm-workers automatically puts you on
> fvwm-announce.  This is something I think would see a whole lot of use were
> it implemented.
> 
> Note that this is essentially orthogonal to the issues of having a single
> address with the list name in the subject (still just needs a different
> front end, easy to write) and doing per-user thread exclusion (just needs
> an extension of the already available per-user filtering stuff, pretty easy
> to write).
> 
> Issues:
> 
>   Assume the following structure:
> 
>       list-root
>        /   \
>       /     \
>   list-a   list-b
> 
>   How does unsubscribing work?  If you leave list-a _and_ list-b, are you
>   removed from list-root?  Does the behavior change if you joined list-root
>   explicitly rather than implicitly by joining a leaf?  (If so, we need to
>   track just how you came to join a list, which is not difficult.)
> 
>   Inheritance of subscriber data (i.e. if the 'replyto' flag in list-a is
>   "uninitialized" then we look to list-root to see if the user has it
>   defined there, and so on up to the tree until we fall back to the
>   default) is hard.  Really hard, because we need that stuff at delivery
>   time when we don't want to go plowing through bunches of databases (and
>   we don't have the necessary information anyway).  It is possible to have
>   a 'set' on a list-root automatically set things in the leaves, but I'm
>   not sure that's appropriate.  It is also possible for a set on list-root
>   to change the settings on list-a form "uninitialized" to "uninitialized
>   but inheriting a value", which may be the only "reasonable" way to do it
>   (for certain values of reasonable).
> 
>   Who's going to write it?  Not me, not right now at least.  Still,
>   figuring it out was an interesting way to pass the time.  I'd appreciate
>   it if someone who was interested in doing this would think it out
>   further.  If this actually takes care of most of the requests then I'm
>   willing to think about coding it _after_ the base software has been
>   released.  Priorities and such....
> 
>  - J<
> 


References:
Indexed By Date Previous: Please let's keep commands case insensitive
From: Norbert Bollow <nb@thinkcoach.com>
Next: Re: Please let's keep commands case insensitive
From: Jason L Tibbitts III <tibbs@math.uh.edu>
Indexed By Thread Previous: Re: Majordomo 2 workers
From: Jason L Tibbitts III <tibbs@math.uh.edu>
Next: Re: Majordomo 2 workers
From: Chuq Von Rospach <chuqui@plaidworks.com>

Google
 
Search Internet Search www.greatcircle.com