Emacs setup assistants
Stephen J. Turnbull
stephen at xemacs.org
Fri May 21 08:33:28 EDT 2004
>>>>> "Lars" == Lars Magne Ingebrigtsen <larsi at gnus.org> writes:
Lars> One project that's been on my mind (well, far back of my
Lars> mind) for a few years has been to implement something that
Lars> would make it easy to set up complex stuff by guiding the
Lars> user through the process.
Sounds good. But ...
Lars> This differs from Customize by being a guided tour through
Lars> the options, not just a big whopping menu of stuff to
Uh, yeah. So the real problem is to organize the menu---call it
"guiding" if you want, the first step is going to be picking the
important options out of the "whopping menu of stuff". Customize's
facilities aren't that bad. Customize already has validator slots, it
already allows computing suggestions at runtime AFAIK. People just
don't use them very well by and large.
I don't see how writing in an HTML-like or Texinfo-like language
really helps with that. I see organization of the variables, high
quality default guesses, and careful validation as being the keys---
and default computation and validation have to be done in Lisp, not
Texinfo, and they're all "hard", harder than writing clear explanatory
text. I think your example of setting up gnus-select-method' is
indicative: more than 50% of it is in the @validate function.
I guess if I were doing it, the main thing I would do is add a flag to
presentation of Customize groups, and have a distinguished "setup
assistant" subgroup. In "setup assistant" mode, you would present
only those options and subgroups which have to be set sanely, and do
not have a sane default (or algorithm for computing one) that would
satisfy 95% of new users. And Customize would bitch loudly if you
tried to leave that subgroup without setting some of the variables.
In "default" mode, you'd have those init variables (see above) that
make sense to change once set, plus variables (and subgroups) that
experience shows users like to customize. "Expert" mode would expose
all the possible knobs for tweaking. This would allow the developer
to tweak presentation of a variable by setting one flag in the
defcustom (maybe that could be made Customizable itself), and create a
"wizard" with "(defgroup gnus-setup-new-installation)".
But I'm not, you are ... so I guess I'll just have to see what you
come up with. :-)
I do have one concrete suggestion: no non-trivial code allowed in the
"assistant" spec. The validator should be a symbol (maybe a list of
symbols if the assistant sets up several variables) that names a
function, etc., and should be available (ie compatible) to Customize
in general as well as to the setup assistant.
Institute of Policy and Planning Sciences http://turnbull.sk.tsukuba.ac.jp
University of Tsukuba Tennodai 1-1-1 Tsukuba 305-8573 JAPAN
Ask not how you can "do" free software business;
ask what your business can "do for" free software.
More information about the XEmacs-Beta