On Sun, 12 Jan 2003, Eli Marmor wrote:

> I didn't want to detail too much in the point of CONF files, because it
> was not my main point. But it caused some balagan, so please let me
> give an example of a format that is not proprietary, and on the other
> hand is not XML, and still is great for developing GUI's for:
>
>       X Resources.
>
> Does it threat anybody?
> No?OK; Let's go on:
>

I believe X-Resources is a text file that is editable by hand. Not that I
like it much.

> There are several requirements that are critical for creating a good
> GUI.
>
> One of them is the ability to work against a working program, and not
> just a file. Because you can't just open the file, guess all the values
> of "ifdefs", the default path (for "includes"), the directory that the
> opedning program is in during the open, etc. When you are working
> against a working program, you know its current run-time values of
> these resources.
>
> In addition, it allows you to affect its CURRENT behavior immediately,
> resulting in a WYSIWYG that is so important for GUI (think "editres";
> don't think "UIM/X").
>

Affecting a program at run-time? I don't want to affect crond at run-time
or inetd at run-time or even Apache at run-time. I want to configure them,
and run them with the same configuration. If you want to create an Apache
Module that will listen to requests and with some authentication be able
to configure the entire Apache at run-time and change it in the
configuration file be my guest. I am content with reloading or restarting
Apache whenever I make a chage.

> Of course, you need a bidirectional mapping (i.e. not only from the
> disk representation to the in-memory representation, but also vice-
> versa); Otherwise, the changes can't be translated to rules of
> configuration files.
>
> You need clear definitions; Not definitions that may start anywhere in
> the line, withany number of leading/trailing spaces/tabs/etc. that you
> never know which are part of the value and which are not, with leveling
> that is based on semi-XML directives ("</directory />"), with ambiguous
> comments, with "ifdefs" that you never know if theleveling that is
> hidden by them is really hidden - or only the rules inside those
> levels, with too many ways to say "yes" (e.g. "tRuE", "oN", falling
> back to the default, etc.) and so on.
>
> There are many other formatting issues that ease or harden the ability
> to develop a good GUI.
>

Granted. That why I suggested an abstraction. Something that will generate
an Apache configuration. If you modify the abstraction using the
abstraction-specific tools. If you modify the Apache configuration files
directly, that may be lost after you use the abstraction again.

No 1<->1 mapping, rather a subset of functionality. Of course, Ira
complained on iglu-web that Suse's YAST 2 did not take into account
changes he made to the configuration files manually and kept running over
them. The Mandrake system is less balantly leaky and actually reads stuff
from there. If you want to supply a subset of functionality to a newbie
user using an abstraction do so. But a power user would want the real
and complete configuration scheme.

>From my impression, the configuration of IIS was much more limited in
consideration to Apache's. I could not even get it to serve a certain
directory on a different port with its GUI. That was a few years ago. The
reason I wanted it was because I had a script that that was only supposed
to be internally used by our team, and there was a web-site hosted on that
server.

> X Resources, contrary to ASCII CONF files (like Apache's or NAMED),
> meets all these demands. Of course, it is not so friendly, but when you
> have a great GUI - who cares?It is still friendly enough for hackers
> like us.
>
> Will this migration happen?
>
> No way;
> People develop Open Source for their own fun. Or for their own use (for
> example, most of the core developers of Apache need it for their own
> sites).
>
> When there is a company (please don't force me to spell the name of
> Redmond's companies) behind the product, they have "balls" (sorry for
> the word...) and don't give a sh*t (sorry again) on their users, so
> they can replace formats whenever it is important for the evolution of
> their product. Of course, there are also negative cases, so please
> don't give examples that Microsoft (sorry) abused this process and
> replaced a good format by a bad format or broke the compatibility of a
> program that was used by 100 million users.
>
> But when the users developthe program, there are some things that they
> would never do. Some of these things are bad, but improving the format
> is sometimes good and needed.
>

I don't understand if you consider the MS way or the UNIX way the better
one. In any case, XML-based formats or Perl Nested Data-Structures give
way to easy extensibility. (look at HTML for instance) But XML tends to be
hard to maintain by hand.

> P.S.
> Many years ago, I developed a great GUI for X.
> You could take even a binary program, and change its screens, widgets,
> add more dialogs/forms/screens, etc. Fully WYSIWYG, of course.
> I used it (among other uses) for localizing Netscape 3/4 (although
> there were no sources), which involved not only translation, but also
> new screens and forms (for example - to choose the default direction,
> the default user interface language, help of the Hebrew support, etc.).
> I used it also for developing callbacks (without writing one C line!)
> and applying BiDi values to specific widgets (e.g. Visual/Logical).
>
> I tried to do it for other CONF formats (e.g. Apache), but there was
> no chance.
>
> I don't care if the format is "X Resources", or database-based, or
> (sorry!) registry, or even XML (though XML doesn't meet all the
> demands); I just want a format that its designers/definers thought
> about a front-end when they designed it, and not only on the
> flexibility of users who use VI to edit it by-hand or on backward
> compatibility issues.
>

I understand. Apache's configuration is very flexible but need to be so
one can fully tweak it. Don't like it? Develop a meta-abstraction that
will translate into it, and develop a GUI or a GUI library for it. Then
you can rule that people should not edit the Apache CONF files directly.
Or you can fork your own version of Apache that does not have these
limitations.

I like the Apache configuration the way it is. I don't need to edit it by
GUI, and the online documentation proved an excellent reference for what
I'm trying to do. (including mod_perl and many other tweaks)

Regards,

        Shlomi Fish

> --
> Eli Marmor
> [EMAIL PROTECTED]
> CTO, Founder
> Netmask (El-Mar) Internet Technologies Ltd.
> __________________________________________________________
> Tel.: +972-9-766-1020          8 Yad-Harutzim St.
> Fax.: +972-9-766-1314          P.O.B. 7004
> Mobile: +972-50-23-7338        Kfar-Saba 44641, Israel
>
> =================================================================
> To unsubscribe, send mail to [EMAIL PROTECTED] with
> the word "unsubscribe" in the message body, e.g., run the command
> echo unsubscribe | mail [EMAIL PROTECTED]
>



----------------------------------------------------------------------
Shlomi Fish        [EMAIL PROTECTED]
Home Page:         http://t2.technion.ac.il/~shlomif/
Home E-mail:       [EMAIL PROTECTED]

"Let's suppose you have a table with 2^n cups..."
"Wait a second - is n a natural number?"


=================================================================
To unsubscribe, send mail to [EMAIL PROTECTED] with
the word "unsubscribe" in the message body, e.g., run the command
echo unsubscribe | mail [EMAIL PROTECTED]

Reply via email to