* ... and now for something completely different: User Friendliness @ 2003-01-02 7:37 Lars Magne Ingebrigtsen 2003-01-02 10:11 ` Frank Schmitt ` (2 more replies) 0 siblings, 3 replies; 16+ messages in thread From: Lars Magne Ingebrigtsen @ 2003-01-02 7:37 UTC (permalink / raw) Remember a few years back when I was talking about actually starting to do some work towards making Gnus easier to set up? No? How odd. Ok, then. Other programs that have non-trivial setup rules have "wizards" that guide you through the process. These wizards usually poke around the environment a bit, and then ask the user for some information, checks this information and asks the user a bit more. For instance, let's say the user starts up Gnus the first time. Gnus could then look if NNTPSERVER was defined (which it usually is on well-administered sites, but not on private systems). Gnus could look around a bit, and then ask the user whether she wants to read news from that server, or if it's not defined (or she doesn't want that server), to specify another server. Using various access methods. For setting up mail, it's basically the same. Look for a mail spool, look for a POP server, ask a bit, generate a configuration. One can almost do this with Customize, but not quite. Customize has lots of information about valid values for different variables, but doesn't have a notion of "if this thing is set here, then probably this other thing should be set there", and no notion of "first do this, and if so, do that, and definitely not that". So we come back to these questions: What language should these configuration santas be written in, and what should be used to render the user interface? Now, the most obvious thing to do is to just write them in Lisp, and I definitely don't want to do that. (if (string= (getenv "NNTPSERVER") "") (if (query "You don't seem to have set a news server, so do you want to use Gnus to read news or mail?") (setq news-server (quert "Ok, then gimme the name of the news server")))) Eek. It's a readability nightmare. The same is the case with anything that looks like HTML with embedded program statements. If you write PHP with lots of strings and stuff in between, it soon just gets too ugly to be fun. So -- any good ideas? Surely somebody must have come up with a nice solution here... The other question is -- how to render the user interface? Again, Customize has lots of stuff for that, and might be a likely contender. The other is HTML and w3. Any other ideas? -- (domestic pets only, the antidote for overdose, milk.) larsi@gnus.org * Lars Magne Ingebrigtsen ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: ... and now for something completely different: User Friendliness 2003-01-02 7:37 ... and now for something completely different: User Friendliness Lars Magne Ingebrigtsen @ 2003-01-02 10:11 ` Frank Schmitt 2003-01-02 18:19 ` Lars Magne Ingebrigtsen 2003-01-02 19:29 ` Simon Josefsson 2003-01-06 16:05 ` Wes Hardaker 2 siblings, 1 reply; 16+ messages in thread From: Frank Schmitt @ 2003-01-02 10:11 UTC (permalink / raw) Lars Magne Ingebrigtsen <larsi@gnus.org> writes: > Now, the most obvious thing to do is to just write them in Lisp, and > I definitely don't want to do that. What a pity. > (if (string= (getenv "NNTPSERVER") "") > (if (query "You don't seem to have set a news server, > so do you want to use Gnus to read news or mail?") > (setq news-server (quert "Ok, then gimme the > name of the news server")))) > > Eek. It's a readability nightmare. That depends. Define gnus-wizard-look-for-nntp-server gnus-wizard-look-for-pop3-server gnus-wizard-look-for-spool-file and (gnus-wizard-get-nntp-server-from-user &opt proposed-server) (gnus-wizard-get-pop-server-from-user &opt proposed-server) ... And stuff already looks much better. > The same is the case with anything that looks like HTML with embedded > program statements. If you write PHP with lots of strings and stuff > in between, it soon just gets too ugly to be fun. And the user needs an apache or alike on his system. > So -- any good ideas? Surely somebody must have come up with a nice > solution here... > > The other question is -- how to render the user interface? Again, > Customize has lots of stuff for that, and might be a likely > contender. The other is HTML and w3. Any other ideas? Whatever you do, remember that there are other systems then Linux/FreeBSD running Gnus, e.g. MacOS or Windows. Your solution should work on those systems, too so I'd still vote for a wizard in Emacs Lisp, asking the user in Minibuffer and some explanation on what he should input in a buffer above. -- One Ring to rule them all, One Ring to find them, One Ring to bring them all and in the darkness bind them In the Land of Mordor where the Shadows lie. ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: ... and now for something completely different: User Friendliness 2003-01-02 10:11 ` Frank Schmitt @ 2003-01-02 18:19 ` Lars Magne Ingebrigtsen 0 siblings, 0 replies; 16+ messages in thread From: Lars Magne Ingebrigtsen @ 2003-01-02 18:19 UTC (permalink / raw) Frank Schmitt <usereplyto@Frank-Schmitt.net> writes: > That depends. Define > > gnus-wizard-look-for-nntp-server > gnus-wizard-look-for-pop3-server > gnus-wizard-look-for-spool-file > > and > > (gnus-wizard-get-nntp-server-from-user &opt proposed-server) > (gnus-wizard-get-pop-server-from-user &opt proposed-server) > > ... > > And stuff already looks much better. Even when defining a *lot* of functions, I think it'll be quite tiring to write, and even worse to maintain... >> The other question is -- how to render the user interface? Again, >> Customize has lots of stuff for that, and might be a likely >> contender. The other is HTML and w3. Any other ideas? > > Whatever you do, remember that there are other systems then > Linux/FreeBSD running Gnus, e.g. MacOS or Windows. Your solution should > work on those systems, too so I'd still vote for a wizard in Emacs Lisp, > asking the user in Minibuffer and some explanation on what he should > input in a buffer above. Oh, both the wizard parser and the rendering thing will be in Emacs Lisp. I'm just talking about which languages to define the wizard config files is, and what rendering language to use. -- (domestic pets only, the antidote for overdose, milk.) larsi@gnus.org * Lars Magne Ingebrigtsen ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: ... and now for something completely different: User Friendliness 2003-01-02 7:37 ... and now for something completely different: User Friendliness Lars Magne Ingebrigtsen 2003-01-02 10:11 ` Frank Schmitt @ 2003-01-02 19:29 ` Simon Josefsson 2003-01-02 19:37 ` Lars Magne Ingebrigtsen 2003-01-06 16:05 ` Wes Hardaker 2 siblings, 1 reply; 16+ messages in thread From: Simon Josefsson @ 2003-01-02 19:29 UTC (permalink / raw) Lars Magne Ingebrigtsen <larsi@gnus.org> writes: > So we come back to these questions: What language should these > configuration santas be written in, and what should be used to render > the user interface? > > Now, the most obvious thing to do is to just write them in Lisp, and > I definitely don't want to do that. > > (if (string= (getenv "NNTPSERVER") "") > (if (query "You don't seem to have set a news server, > so do you want to use Gnus to read news or mail?") > (setq news-server (quert "Ok, then gimme the > name of the news server")))) > > Eek. It's a readability nightmare. > > The same is the case with anything that looks like HTML with embedded > program statements. If you write PHP with lots of strings and stuff > in between, it soon just gets too ugly to be fun. > > So -- any good ideas? Surely somebody must have come up with a nice > solution here... > > The other question is -- how to render the user interface? Again, > Customize has lots of stuff for that, and might be a likely > contender. The other is HTML and w3. Any other ideas? Doesn't GTK have wizards? If so, then one idea is to use them if they become accesible from elisp once the core C level GTK support in Emacs is finished (which are working quite nicely here). If the user is a newbie, she probably do not want to learn another wizards GUI first, and considering the widget elisp API available I fear implementing one now will be rather ugly even after lots of work. (Compare speedbar and the diff frames, which are nice but rather non-standardly crafted GUI widgets and at least confused me when I first tried them.) ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: ... and now for something completely different: User Friendliness 2003-01-02 19:29 ` Simon Josefsson @ 2003-01-02 19:37 ` Lars Magne Ingebrigtsen 2003-01-02 22:10 ` Simon Josefsson 0 siblings, 1 reply; 16+ messages in thread From: Lars Magne Ingebrigtsen @ 2003-01-02 19:37 UTC (permalink / raw) Simon Josefsson <jas@extundo.com> writes: > Doesn't GTK have wizards? If so, then one idea is to use them if they > become accesible from elisp once the core C level GTK support in Emacs > is finished (which are working quite nicely here). That's an interesting idea. But wizards should be available even if you don't have an X display, I think. Perhaps it's possible to use one wizard source, and deploy it both as something text-based as well as GTK-based. Do you know how GTK wizards are written? -- (domestic pets only, the antidote for overdose, milk.) larsi@gnus.org * Lars Magne Ingebrigtsen ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: ... and now for something completely different: User Friendliness 2003-01-02 19:37 ` Lars Magne Ingebrigtsen @ 2003-01-02 22:10 ` Simon Josefsson 0 siblings, 0 replies; 16+ messages in thread From: Simon Josefsson @ 2003-01-02 22:10 UTC (permalink / raw) Lars Magne Ingebrigtsen <larsi@gnus.org> writes: > Simon Josefsson <jas@extundo.com> writes: > >> Doesn't GTK have wizards? If so, then one idea is to use them if they >> become accesible from elisp once the core C level GTK support in Emacs >> is finished (which are working quite nicely here). > > That's an interesting idea. But wizards should be available even if > you don't have an X display, I think. Perhaps it's possible to use > one wizard source, and deploy it both as something text-based as well > as GTK-based. Ah, yes. Hm. I wonder if there are any text based applications with wizards. I guess the Debian/RedHat/etc installers are kind of wizardslike. Maybe some ideas could be borrowed from them. > Do you know how GTK wizards are written? No, sorry. ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: ... and now for something completely different: User Friendliness 2003-01-02 7:37 ... and now for something completely different: User Friendliness Lars Magne Ingebrigtsen 2003-01-02 10:11 ` Frank Schmitt 2003-01-02 19:29 ` Simon Josefsson @ 2003-01-06 16:05 ` Wes Hardaker 2003-01-07 5:23 ` Lars Magne Ingebrigtsen 2 siblings, 1 reply; 16+ messages in thread From: Wes Hardaker @ 2003-01-06 16:05 UTC (permalink / raw) >>>>> On Thu, 02 Jan 2003 08:37:20 +0100, Lars Magne Ingebrigtsen <larsi@gnus.org> said: Lars> Eek. It's a readability nightmare. Lars> The same is the case with anything that looks like HTML with embedded Lars> program statements. If you write PHP with lots of strings and stuff Lars> in between, it soon just gets too ugly to be fun. Lars> So -- any good ideas? Surely somebody must have come up with a nice Lars> solution here... Well, complex stuff is never easy to read. I have another possibility to throw at you: The net-policy package (see sourceforge) contains a perl module I wrote (QWizard) that makes it easy to generate a series of possibly-relating wizard questions and perform actions based on the results. I originally wrote it to define a bunch of linked questions, where the dependency issues are taken care of for the programmer. It's only output, currently, is via a web server but I actually hope to write a Tk and/or cli version/backend in the next few weeks. The nice thing about is that you can depend on the answers to questions to decide what future questions to add to the "ask" chain. The net-policy web site has a few screenshots, but unless you're familiar with IPsec & firewalls (which is what the questions currently show configuration fore) you might get a bit lost. -- "The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it." -- Terry Pratchett ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: ... and now for something completely different: User Friendliness 2003-01-06 16:05 ` Wes Hardaker @ 2003-01-07 5:23 ` Lars Magne Ingebrigtsen 2003-01-07 15:27 ` Wes Hardaker 0 siblings, 1 reply; 16+ messages in thread From: Lars Magne Ingebrigtsen @ 2003-01-07 5:23 UTC (permalink / raw) Wes Hardaker <wes@hardakers.net> writes: > I have another possibility to throw at you: The net-policy package > (see sourceforge) contains a perl module I wrote (QWizard) that makes > it easy to generate a series of possibly-relating wizard questions and > perform actions based on the results. I originally wrote it to define > a bunch of linked questions, where the dependency issues are taken > care of for the programmer. It's only output, currently, is via a web > server but I actually hope to write a Tk and/or cli version/backend in the > next few weeks. Interesting. I didn't find any examples on the page as to what the config generating language looks like -- do you have an example? -- (domestic pets only, the antidote for overdose, milk.) larsi@gnus.org * Lars Magne Ingebrigtsen ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: ... and now for something completely different: User Friendliness 2003-01-07 5:23 ` Lars Magne Ingebrigtsen @ 2003-01-07 15:27 ` Wes Hardaker 2003-01-08 4:45 ` Lars Magne Ingebrigtsen 0 siblings, 1 reply; 16+ messages in thread From: Wes Hardaker @ 2003-01-07 15:27 UTC (permalink / raw) >>>>> On Tue, 07 Jan 2003 06:23:31 +0100, Lars Magne Ingebrigtsen <larsi@gnus.org> said: Lars> I didn't find any examples on the page as to what the config Lars> generating language looks like -- do you have an example? Oh, uh, yeah... This is defined in perl structures: add_primary('notification_destinations', title => "Setting up a notification receiver", sub_modules => 'target_addr', questions => [{ name => 'destination', type => 'menu', text => 'enter the notification destination', # inline at-run-time value extraction values => [\&net_policy_select,"select name from cli ents"] }, { name => 'snmpNotifyType', text => 'What type of notification do you want to send?', type => 'radio', values => [qw(1 2)], labels => {'1' => 'trap', '2' => 'inform'}}, { name => 'SNMPVersion', type => 'menu', text => 'What version of the SNMP protocol should th e notification be sent over?', values => [qw(0 1 3)], labels => {'0' => 'SNMP version 1', '1' => 'SNMP version 2c', '3' => 'SNMP version 3', } }], post_answers => [ sub { my $wiz = shift; if (param(SNMPVersion) eq '3') { $wiz->add_late_todos('target_param_3'); } else { $wiz->add_late_todos('target_param_commun ity'); } return 'OK'; } ], actions_descr => ['Adding the notification receiver mapping'], actions => [[\&net_policy_sql,'insert into snmpNotifyTable(snmpNotif yName,snmpNotifyTag,snmpNotifyType,snmpNotifyStorageType,snmpNotifyRowStatus) va lues(@destination@,@destination@,@snmpNotifyType@,3,4)'], 'Adding the notification receiver']); add_primary('target_addr', title => 'Configure the notification destination', questions => [ { text => "Timeout length", type => text, name => 'snmpTargetAddrTimeout', # default value: values => 1500 }, { text => "Number of Retries", type => text, name => 'snmpTargetAddrRetryCount', values => 3 } { type => 'hidden', # hard coded value name => 'snmpTargetAddrTAddress', # inline at-run-time value extraction values => [sub {my $x = net_policy_select('bogus','select ipaddr from clients where name = @destination@'); $x->[0] .= "00A2"; return $x}] } ], actions => [[sub {do_something_with(param('snmpTargetAddrTimeout')); #...}], # prints to the users screen 'Configuring the notification receiver\'s address']); I actually need to write the documentation for the module, but my coworker needs that asap as well so it'll be done shortly. Also, ignore the net_policy_select and net_policy_sql functions referenced above. They're project specific. This data will be hard to read because you don't understand what it's trying to do (it's very SNMP specific, which is certainly a protocol you don't likely grok). -- "The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it." -- Terry Pratchett ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: ... and now for something completely different: User Friendliness 2003-01-07 15:27 ` Wes Hardaker @ 2003-01-08 4:45 ` Lars Magne Ingebrigtsen 2003-01-08 6:31 ` Wes Hardaker 2003-01-08 15:18 ` Ted Zlatanov 0 siblings, 2 replies; 16+ messages in thread From: Lars Magne Ingebrigtsen @ 2003-01-08 4:45 UTC (permalink / raw) Wes Hardaker <wes@hardakers.net> writes: > Oh, uh, yeah... This is defined in perl structures: Probably not completely ideal for Emacs purposes, then. :-) > { name => 'snmpNotifyType', > text => > 'What type of notification do you want to send?', > type => 'radio', > values => [qw(1 2)], > labels => {'1' => 'trap', > '2' => 'inform'}}, I had hoped to avoid going into this level of detail in the wizard-defining language, but now that I think more about it, I'm not quite sure how. It's all somewhat vague to me... -- (domestic pets only, the antidote for overdose, milk.) larsi@gnus.org * Lars Magne Ingebrigtsen ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: ... and now for something completely different: User Friendliness 2003-01-08 4:45 ` Lars Magne Ingebrigtsen @ 2003-01-08 6:31 ` Wes Hardaker 2003-01-08 15:18 ` Ted Zlatanov 1 sibling, 0 replies; 16+ messages in thread From: Wes Hardaker @ 2003-01-08 6:31 UTC (permalink / raw) >>>>> On Wed, 08 Jan 2003 05:45:53 +0100, Lars Magne Ingebrigtsen <larsi@gnus.org> said: Lars> Wes Hardaker <wes@hardakers.net> writes: >> Oh, uh, yeah... This is defined in perl structures: Lars> Probably not completely ideal for Emacs purposes, then. :-) >> { name => 'snmpNotifyType', >> text => >> 'What type of notification do you want to send?', >> type => 'radio', >> values => [qw(1 2)], >> labels => {'1' => 'trap', >> '2' => 'inform'}}, Lars> I had hoped to avoid going into this level of detail in the Lars> wizard-defining language, but now that I think more about it, Lars> I'm not quite sure how. It's all somewhat vague to me... If it makes you feel any better, the values clause above is no longer needed and just "labels" is fine :-/ (that's an old piece of code). That's about the minimal set of info that I can get. The real power of the perl module in question is state tracking and things like that are taken care of, plus it should work with the same definitions under multiple front-ends (web, cli, tk, ...) -- "The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it." -- Terry Pratchett ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: ... and now for something completely different: User Friendliness 2003-01-08 4:45 ` Lars Magne Ingebrigtsen 2003-01-08 6:31 ` Wes Hardaker @ 2003-01-08 15:18 ` Ted Zlatanov 2003-01-11 20:10 ` Lars Magne Ingebrigtsen 1 sibling, 1 reply; 16+ messages in thread From: Ted Zlatanov @ 2003-01-08 15:18 UTC (permalink / raw) On Wed, 08 Jan 2003, larsi@gnus.org wrote: > Probably not completely ideal for Emacs purposes, then. :-) > >> { name => 'snmpNotifyType', >> text => 'What type of notification do >> you want to send?', type => 'radio', >> values => [qw(1 2)], labels => {'1' => >> 'trap', '2' => 'inform'}}, > > I had hoped to avoid going into this level of detail in the > wizard-defining language, but now that I think more about it, I'm > not quite sure how. It's all somewhat vague to me... I like the defcustom syntax, maybe something like this would work: (defcustom snmp-notification-trap 1 "The snmp trap notification" :type integer) (defcustom snmp-notification-inform 2 "The snmp inform notification" :type integer) (defcustom snmp-notification "The snmp notification to send" :type '(radio (variable-item snmp-notification-trap) (variable-item snmp-notification-inform))) It seems to me to encapsulate the Perl example above pretty well. It should be easier to get the wizard to work with defcustom than to invent a new language. Ted ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: ... and now for something completely different: User Friendliness 2003-01-08 15:18 ` Ted Zlatanov @ 2003-01-11 20:10 ` Lars Magne Ingebrigtsen 2003-01-13 0:44 ` Wes Hardaker 2003-01-13 19:22 ` Ted Zlatanov 0 siblings, 2 replies; 16+ messages in thread From: Lars Magne Ingebrigtsen @ 2003-01-11 20:10 UTC (permalink / raw) Ted Zlatanov <tzz@lifelogs.com> writes: > I like the defcustom syntax, maybe something like this would work: > > (defcustom snmp-notification-trap 1 > "The snmp trap notification" > :type integer) > > (defcustom snmp-notification-inform 2 > "The snmp inform notification" > :type integer) That's possible, but it's quite verbose... -- (domestic pets only, the antidote for overdose, milk.) larsi@gnus.org * Lars Magne Ingebrigtsen ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: ... and now for something completely different: User Friendliness 2003-01-11 20:10 ` Lars Magne Ingebrigtsen @ 2003-01-13 0:44 ` Wes Hardaker 2003-01-13 18:24 ` Lars Magne Ingebrigtsen 2003-01-13 19:22 ` Ted Zlatanov 1 sibling, 1 reply; 16+ messages in thread From: Wes Hardaker @ 2003-01-13 0:44 UTC (permalink / raw) >>>>> On Sat, 11 Jan 2003 21:10:28 +0100, Lars Magne Ingebrigtsen <larsi@gnus.org> said: >> I like the defcustom syntax, maybe something like this would work: >> >> (defcustom snmp-notification-trap 1 >> "The snmp trap notification" >> :type integer) >> >> (defcustom snmp-notification-inform 2 >> "The snmp inform notification" >> :type integer) Lars> That's possible, but it's quite verbose... Might I suggest you write down a series of examples of what you want the output or presentation to the user to look like, and then from that we can look at the best way to model the questions. IE, write a concrete text description of a particular wizard-like function and what the results should be after the user has answered the example questions. -- "The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it." -- Terry Pratchett ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: ... and now for something completely different: User Friendliness 2003-01-13 0:44 ` Wes Hardaker @ 2003-01-13 18:24 ` Lars Magne Ingebrigtsen 0 siblings, 0 replies; 16+ messages in thread From: Lars Magne Ingebrigtsen @ 2003-01-13 18:24 UTC (permalink / raw) Wes Hardaker <wes@hardakers.net> writes: > Might I suggest you write down a series of examples of what you want > the output or presentation to the user to look like, and then from > that we can look at the best way to model the questions. Ok; I'll try to do that... -- (domestic pets only, the antidote for overdose, milk.) larsi@gnus.org * Lars Magne Ingebrigtsen ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: ... and now for something completely different: User Friendliness 2003-01-11 20:10 ` Lars Magne Ingebrigtsen 2003-01-13 0:44 ` Wes Hardaker @ 2003-01-13 19:22 ` Ted Zlatanov 1 sibling, 0 replies; 16+ messages in thread From: Ted Zlatanov @ 2003-01-13 19:22 UTC (permalink / raw) On Sat, 11 Jan 2003, larsi@gnus.org wrote: > Ted Zlatanov <tzz@lifelogs.com> writes: > >> I like the defcustom syntax, maybe something like this would work: >> >> (defcustom snmp-notification-trap 1 >> "The snmp trap notification" >> :type integer) >> >> (defcustom snmp-notification-inform 2 >> "The snmp inform notification" >> :type integer) > > That's possible, but it's quite verbose... It can be auto-generated. The general idea of defcustom, however, is much cleaner than an invented language that uses XML or something else IMO. Especially since the wizards you want will be written in Lisp. Generally, user friendliness leads to code verbosity in my experience. Ted ^ permalink raw reply [flat|nested] 16+ messages in thread
end of thread, other threads:[~2003-01-13 19:22 UTC | newest] Thread overview: 16+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2003-01-02 7:37 ... and now for something completely different: User Friendliness Lars Magne Ingebrigtsen 2003-01-02 10:11 ` Frank Schmitt 2003-01-02 18:19 ` Lars Magne Ingebrigtsen 2003-01-02 19:29 ` Simon Josefsson 2003-01-02 19:37 ` Lars Magne Ingebrigtsen 2003-01-02 22:10 ` Simon Josefsson 2003-01-06 16:05 ` Wes Hardaker 2003-01-07 5:23 ` Lars Magne Ingebrigtsen 2003-01-07 15:27 ` Wes Hardaker 2003-01-08 4:45 ` Lars Magne Ingebrigtsen 2003-01-08 6:31 ` Wes Hardaker 2003-01-08 15:18 ` Ted Zlatanov 2003-01-11 20:10 ` Lars Magne Ingebrigtsen 2003-01-13 0:44 ` Wes Hardaker 2003-01-13 18:24 ` Lars Magne Ingebrigtsen 2003-01-13 19:22 ` Ted Zlatanov
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).