Gnus development mailing list
 help / color / mirror / Atom feed
* ... 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).