Re: Binary configuration files as panacea to whatever ails Linux(was: Re: the problem with LINUX)

2003-01-14 Thread Evgeny Stambulchik
Oron Peled wrote:


So Allon presented one flaw in your assumptions and you came with a
solution for this *specific* flaw...


I don't have a solution. It was an example. I used words like e.g.. Did 
I say I had the scheme ready? Why are you trying to catch me on very 
specific _details_ instead of arguing about the idea/principles? My points 
are clear:

1. There is no standard config API in the Unix world
2. As a result, every application (or group of apps) implements a kind of 
the API itself, resulting in a huge duplication efforts. Very few have a 
decent one, most are primitive. Same is true for system-level apps, call 
them daemons/services/whatever
3. As a result, there is no well-defined scheme of storing system 
configuration data, resulting in a large number of redundant parameters 
which must be synced externally. There is no even a well-defined _place_ 
for storing the config data (/etc is full with non-config stuff and some 
config files are placed e.g. in /var)
4. As a result, there is no satisfactory (full functionality, same 
look-and-feel) configuration tools. The existing ones (YAST, Webmin,...) 
are essentially collections of independent modules

When you code in C and the same few lines of code appear more than once, 
you extract it into a function. When the same #define is used more than in 
one module, you extract it into a header file to make sure the definition 
is consistent across the application. Does anybody disagree these make a 
good coding practice? But is it special to C? Is it special to 
programming? Of course, not. Why shouldn't the same principles be applied 
to the configuration issues? Yes, the life is not easy and sometimes you 
do have two almost-identical functions (e.g. for performance reasons). But 
these are exceptions.

Do you honestly believe that Unix has reached its usability peak? If not, 
why should the config stuff be an exception? Yes, the life isn't simple 
and will never be. But it's not a reason to not try to make it simplER.

Regards,

Evgeny


=
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]



Re: Binary configuration files as panacea to whatever ails Linux (was: Re: the problem with LINUX)

2003-01-14 Thread Oron Peled
On Tue, 14 Jan 2003 11:18:13 +0200
Evgeny Stambulchik [EMAIL PROTECTED] wrote:
 Why are you trying to catch me on very 
 specific _details_ instead of arguing about the idea/principles?

I just tried to show that the real world creates unique problems
that would destroy the single config mechanism concept.

 My points  are clear:
  long stuff about principles omitted ...

Completely agreed. There *are* too many variants of the same
idea and, due to historical reasons, many inconsistencies.
So while I don't believe we can have one config mechanism, I do
accept your assertion that we don't need 100 different ones either.

I simply offered a strategy that may work IMO. Namely, collect
current working practices and galvanize them through well designed
API's.

BTW: anybody (not just you) know the answer to my (irrelevant) riddle?
 [why the reboot(8) command need to have a disasterous -n option]
 If no one answer, I'll have to publish the solution


Oron Peled Voice/Fax: +972-4-8228492
[EMAIL PROTECTED]  http://www.actcom.co.il/~oron

Reality must take precedence over public relations, for Mother 
Nature cannot be fooled.  -- R.P. Feynman

=
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]




Re: Binary configuration files as panacea to whatever ails Linux(was: Re: the problem with LINUX)

2003-01-14 Thread Evgeny Stambulchik
Oron Peled wrote:


I simply offered a strategy that may work IMO. Namely, collect
current working practices and galvanize them through well designed
API's.


Actually, it doesn't seem to me an impossible task to find a common 
denominator (in the sense of API). Indeed, the three widely used types of 
configs:

a) the list of key=value pairs (= may vary, e.g. : or just blank space)
b) ini-style
c) tree

are just subsets of XML (a is level-0 and b is level-1 tree), so the only 
non-trivial things are configs requiring a kind of pre-processing (e.g. 
cpp for Xresources).

BTW, if there are people who are _serious_ about this project, I suggest a 
physical meeting for an initial brainstorming (I'm rather pessimistic 
about mailing lists for this purpose).

BTW: anybody (not just you) know the answer to my (irrelevant) riddle?
 [why the reboot(8) command need to have a disasterous -n option]
 If no one answer, I'll have to publish the solution


[replied privately so not to spoil everybody else's findings ;-)]

Regards,

Evgeny


=
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]




Re: Binary configuration files as panacea to whatever ails Linux (was: Re: the problem with LINUX)

2003-01-13 Thread Oron Peled
On Mon, 13 Jan 2003 02:55:10 +0200 (IST)
Tzafrir Cohen [EMAIL PROTECTED] wrote:
 The programs provided the API that was originally needed: |lpr

Evgeny does have a point in that some applications need a lot more control
than just submitting a job (e.g: display a list of printers, listing the
characteristics of specific printer [paper type, etc.], locating the closest
priner [LOC comes to mind...]) non of this type of config is easily accessible
from the conventional print spoolers.

 Also: xml still doesn't allow me to easily:
 
 *font: fixed

In this example it does. The correct way to implement this in XML is via
an XPath/XQuery expression [which should be against the available fonts].
I completely agree though that syntactically the XML et-al are far
worse than the elegant XResources syntax.

 This is because XML assumes a tree structure, and this wildcar below
 applies toall leaves wirt the name font. So you see: a tree schema
 doesn't always work...

Agreed (although the previous example didn't demonstrated it).

 And I still don't l;ike the current gconf: it requires an extra daemon

Worse! IIRC it's an extra daemon *per user*

Also, replying to Evgeny:
  Having a standard and powerfull config mechanism is a GoodThing(tm)
  However, some config files in Unix/Linux are actually code
  (e.g: shell scripts, .emacs) which obviousely are more general
  than any config scheme you may come with.

  If the proposed config mechanism is very general, it would
  bloat simple applications and their authors (justfully) won't
  use it.

  I do accept your observation, that in *many cases* there was no
  good reason to invent yet another poorly engineered config
  mechanism. I would suggest though, that a more realistic goal
  should be to *minimize* the number of different config types.
  For example:
- A linear key=value pairs (e.g: INI files)
- Hierarchic config (e.g: static XML)
- Dynamic config (e.g: Registry/gconf)
- Inherited config (e.g: environment variables)
-  where do I fit Xresources?
- ... others
  So we may try to converge to some best-of-breed API in each
  category. Some categories may even need alternative selection
  due do special constraints:
- On small footprint systems you trade flexibility for
  footprint.
- Some maintenance modes (e.g: single user) may force you
  to manual config, so you cannot depend on running config
  deamons (gconf, *SQL, etc.)
  So you may want both full-blown API and a minimal-API for
  the same category (similar to glibc and dietlibc).


Oron Peled Voice/Fax: +972-4-8228492
[EMAIL PROTECTED]  http://www.actcom.co.il/~oron

Code Red, Blue or Green there all a symptom of a far more pervasive
and insidious virus, it costs around $200.
-anonymous

=
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]




Re: Binary configuration files as panacea to whatever ails Linux (was: Re: the problem with LINUX)

2003-01-13 Thread Alon Altman
On Mon, 13 Jan 2003, Evgeny Stambulchik wrote:
  The smart
  configurator can tell you if you have made an error in configuration, but
  it really does not allow any action: if any configuration requires some
  synchronization between two config keys,

 Never! There should never be a need to sync two different keys! Continuing
 the hostname example, it should be defined in a single place, e.g.
 local_machine-network_settings-hostname and all scripts/daemons/apps
 that need the value should access it instead of duplicating the data in
 their specific config sections! Can you imagine ServerRoot defined more
 than once (for the same virtual server) in the Apache config? Wouldn't it
 be a nonsense? But the same nonsense is defining server's hostname
 separately in sendmail's, httpd's, you name it configuration files.

  Wrong! My host has tens of different hostnames, also a host might have
several IP addresses. Every application needs to know under which hostname
it is working. For example, httpd will show a different page as different
hostnames, and the mail daemon will serve different mailboxes for different
domains.

  Alon

-- 
This message was sent by Alon Altman ([EMAIL PROTECTED]) ICQ:1366540
The RIGHT way to contact me is by e-mail. I am otherwise nonexistent :)
--
 -=[ Random Fortune ]=-
Very few profundities can be expressed in less than 80 characters.

=
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]




Re: Binary configuration files as panacea to whatever ails Linux (was: Re: the problem with LINUX)

2003-01-13 Thread Evgeny Stambulchik
Oron Peled wrote:


And I still don't l;ike the current gconf: it requires an extra daemon



Worse! IIRC it's an extra daemon *per user*


So what? It's a reasonable solution for this kind of problem. In KDE, 
there is DCOPServer and a bunch of others running per user. ssh, when used 
properly (i.e. _easy_ access of several hosts with _strong_ 
authentication) requires the 'ssh-agent' daemon running per user. Why 
don't you rant on ssh implementation? Is it the word daemon that worries 
you? Yes, if it dies, bad things may happen. But same is true for e.g. 
xinit which is not a daemon. Why should it die in the first place if 
correctly implemented?

Also, replying to Evgeny:
  Having a standard and powerfull config mechanism is a GoodThing(tm)
  However, some config files in Unix/Linux are actually code
  (e.g: shell scripts, .emacs) which obviousely are more general
  than any config scheme you may come with.


The solution is to provide hooks for external interpreters. Just like 
server/client-side scripting is for HTML, I can imagine procedures 
executed either by the config daemon or the application itself.

  If the proposed config mechanism is very general, it would
  bloat simple applications and their authors (justfully) won't
  use it.


Very general doesn't mean bloated. The extensions are proveded via plugins 
and should be never exposed directly to the client. There is JavaScript 
available for HTML, but if I'm scared to learn it doesn't mean I can't use 
static HTML. The fact that there are a hundred Apache modules available 
(including those of alpha and beta quality) doesn't mean I should be 
afraid using Apache. I just don't load unnecessary/unreliable stuff.

  I do accept your observation, that in *many cases* there was no
  good reason to invent yet another poorly engineered config
  mechanism. I would suggest though, that a more realistic goal
  should be to *minimize* the number of different config types.
  For example:
	- A linear key=value pairs (e.g: INI files)
	- Hierarchic config (e.g: static XML)
	- Dynamic config (e.g: Registry/gconf)
	- Inherited config (e.g: environment variables)
	-  where do I fit Xresources?
	- ... others


Of course, the limit of minimization of a natural number is 1 ;-). 
Seriously, it's not the number of configuration formats that worries me, 
but the fact that there is no well-defined API to deal with them at the 
basic OS level (i.e. no other dependencies than libc). This causes the 
present situtation when a given application implements a config API 
internally but don't export it and a GUI config tool author has to 
re-invent the wheel. But since re-inventing the wheel isn't an exiting 
task (especially as far as parsing a custom config format is concerned), 
he usually decides to either abandon the parsing at all (one-side mapping) 
resulting in any changes done either manually or by another tool silently 
lost or does implement it partially which works for (in the best cases) 
majority of the options but anything beyond that is either again lost or 
makes the tool crash/misbehave.

  So we may try to converge to some best-of-breed API in each
  category. Some categories may even need alternative selection
  due do special constraints:
	- On small footprint systems you trade flexibility for
	  footprint.
	- Some maintenance modes (e.g: single user) may force you
	  to manual config, so you cannot depend on running config
	  deamons (gconf, *SQL, etc.)
  So you may want both full-blown API and a minimal-API for
  the same category (similar to glibc and dietlibc).


Right. But notice that an application that compiles with dietlibc should 
compile/work nicely with the full-blown variant without even noticing.

Regards,

Evgeny


=
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]



Re: Binary configuration files as panacea to whatever ails Linux (was: Re: the problem with LINUX)

2003-01-13 Thread Evgeny Stambulchik
Alon Altman wrote:


Never! There should never be a need to sync two different keys! Continuing
the hostname example, it should be defined in a single place, e.g.
local_machine-network_settings-hostname and all scripts/daemons/apps
that need the value should access it instead of duplicating the data in
their specific config sections! Can you imagine ServerRoot defined more
than once (for the same virtual server) in the Apache config? Wouldn't it
be a nonsense? But the same nonsense is defining server's hostname
separately in sendmail's, httpd's, you name it configuration files.



  Wrong! My host has tens of different hostnames, also a host might have
several IP addresses. Every application needs to know under which hostname
it is working. For example, httpd will show a different page as different
hostnames, and the mail daemon will serve different mailboxes for different
domains.


OK, so the config should be more complicated. E.g. 
local_machine-network_settings-virtual_hosts[]-hostname. And then apps 
should refer (probably by id) to a relevant element(s) of the 
virtual_hosts[] array. See how this is done in fwbuilder - which is a very 
nice example of proper configuration interface. You define an object once 
and then refer to it in several places (even for different firewalls), so 
if e.g. the DMZ mail server for a reason changes its IP, you change it 
only in the single place.

My point is simple: there should be NO redundant definitions of config 
parameters relevant for a given object. This rises no objections when the 
object is an application, but for some reason people start to get nervous 
when talking about the OS as a whole (or probably even about a domain of 
computers). When I do find /etc -exec grep `hostname -s` {} \; on our 
workgroup server I get 8 counts, and that's without /var/named and 
probably a couple of other places. Is it normal?

Regards,

Evgeny


=
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]



Re: Binary configuration files as panacea to whatever ails Linux (was: Re: the problem with LINUX)

2003-01-13 Thread Oron Peled
On Mon, 13 Jan 2003 18:09:41 +0200
Evgeny Stambulchik [EMAIL PROTECTED] wrote:
Wrong! My host has tens of different hostnames, also a host might have
  several IP addresses. Every application needs to know under which hostname
 
 OK, so the config should be more complicated. E.g. 
 local_machine-network_settings-virtual_hosts[]-hostname. And then apps 

So Allon presented one flaw in your assumptions and you came with a
solution for this *specific* flaw...

 My point is simple: there should be NO redundant definitions of config 
 parameters relevant for a given object.

The world *should* behave as you just described, but...

 This rises no objections when the object is an application, but for some
 reason people start to get nervous when talking about the OS as a whole

Because an application has (hopefully) very specific domain and scope, while
an OS doesn't. Anybody who administered systems in real life knows that
many times the unthinkable is the only reasonable option. A short example
to make myself clear:
   Unix/Linux has a '-n' option to reboot that prevent syncing the
   buffer cache before reboot. Obviously this option would corrupt
   the mounted disks. Why is such an option needed? (and we are
   talking way before journaling filesystems :-)
   The answer is very simple (left as an exercise) and illustrate
   how real life sometimes force us into less than optimal solutions.

Applying a logicaly closed solution to systems management problems
has failed time after time. I think one of the reasons Unix survived
for 30 years is the avoidance from over-engineering --
there's too much diversity and too much complexity.
So your earlier suggestion about minimizing the config types to 1
is naive in my view.

What is *realistic* to achieve IMHO (and still not easy task) is to
try and encapsulate the known best practices -- i.e:
  - use the existing solutions as blueprints for what works (and
what doesn't) in real life.
  - Fold all semantically equivalent solutions into a canonical
solution for this class of solutions.


Oron Peled Voice/Fax: +972-4-8228492
[EMAIL PROTECTED]  http://www.actcom.co.il/~oron

Those who do not understand Unix are condemned to reinvent it, poorly.
 (H. Spencer)

=
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]




Re: the problem with LINUX

2003-01-13 Thread Gilad Ben-Yossef
On Sat, 2003-01-11 at 09:32, shlomo solomon wrote:
 I'm afraid this is going to start a **war** and that's not my intention, but I 
 really feel I've got to get this off my chest.
 
 Firstly, let me say that I've been using LINUX on and off for 6 years and that 
 it's been my only OS since deleting OS/2 (zl) 3 years ago. So I'm a 
 committed LINUX user. And I have no intention of using anything else - 
 although my wife and kids all use Windows - and of course that makes me the 
 primary sysop for their machines :-(.
 
 My problem is that LINUX (as much as it's progressed over the years) is still 
 much too hard to install, set up, and use. As things stand now, it's not 
 really a viable alternative for John Q. User. As opposed to other OSs (that 
 will remain nameless), there's still too much tweaking required. And for a 
 non-technical user, it's just impossible.

Shlomo, what you say must be true, at least in your own view. It also
must be important to you, since you have written to all of us about it.
 
If so, why don't you attampt to remedy those thins which you find are
bothering you? after all this IS what Free Software is about - not you
(or anyone else) getting somefor no pay, but your own (and everyone
else) ability to fix what they dim broken.

Linux is not the best OS in the world and it will never be, simply
because the world keeps changing. But contrary to other non free OS YOU
can adapt it so that it will fit your needs better. it's a unique
ability and a very powerfull one.

And yes, there are people that don't find this compelling. In truth, i
don't find them interesting all that much. We like to help people who
help themselves and obviously you are such a person since you solved
your problems). Other people - they can pay {Insert name of commercial
support company here} to solve their problems...

Gilad.


=
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]




Re: Binary configuration files as panacea to whatever ails Linux(was: Re: the problem with LINUX)

2003-01-12 Thread Shlomi Fish
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, 

Re[2]: Binary configuration files as panacea to whatever ails Linux (was: Re: the problem with LINUX)

2003-01-12 Thread Evgeny Stambulchik
Eli Marmor [EMAIL PROTECTED] wrote:

   X Resources.
  
  Does it threat anybody?
  No?  OK; Let's go on:
  
  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.

Well, this has nothing to do with the configuration file format itself. It's a
communication protocol provided by the X/editres API (libXmu). But it's indeed
very important for a configuration _programming interface_. Unfortunately, the X
people didn't realize that the pathetic lack of standard configuration API in
the Unix world that had driven them to create the Xresources infrastructure from
the scratch was worth extracting it into a separate, X-independent API library.

  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.

Right, and the lack of these features (actually, the lack of decent API
providing them) distracted many even pure-X apps from solely using it; instead,
they load/store their configs from customly-formatted .rc files.

  You need clear definitions; Not definitions that may start anywhere in
  the line, with any 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 the leveling 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.

GUI is important, but it's nothing compared to the API. I don't care about the
specific format of the configuration _storage_. Let it be a plain ASCII or XML
file or any binary one (not a propriate, of course). Do you care about the data
storage format when comparing e.g. MySQL vs. PgSQL? Of course, not. Does it
worry someone that the data format is binary? Of course, not. Well, a data dump
(to an ASCII file) utility is a must - for the backup purposes etc, but that's
all.

I need the well-defined API and its C implementation. Whatever
complicated/non-trivial format is choosen, the efforts of parsing it are spent
only once. From there on, everything is simple. The GUI config tool will use the
API, too. C++/Perl/Python/etc bindings are trivial. Look at CUPS. Nobody (except
those involved in its development) cares about the format/structure of the CUPS
config files. They provided the API. Period. Then somebody wrote the Qt/CUPS
widget, and now any Qt application (read - programmer) get the whole selection
of printing options provided by CUPS with zero efforts spent. Compare the
situation with lpr  friends. There is no API for parsing (let alone changing)
the rather primitive /etc/printcap file format. And then come sysv lp, lprng,...
each with its own config files and each with NO C API! As a result - how many
non-cups-bound applications can you count which provide the list of printers
present? Very, very few and far between. Even overloaded monsters like Netscape
dare not implementing it - taking into account the variety of existing printing
systems.

  People develop Open Source for their own fun. Or for their own use

Why, it's not Open Source related. It's a common Unix malady - the absense of a
kind of a centralized patronage (like W3C is for Web) during its development. As
a result - the lack of well-thought and -implemented APIs for everyday's tasks.
Configuration is just one of many.

  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.

The Company-Which-Is-Not-To-Be-Named did just what X programmers did - developed
a configuration API. And so Gnome developers did, BTW, with their quite decent
GConf API. The only difference is that Microsoft happened to be a force behind
an _OS_, while Xconsortium worried only about X applications and Gnome people
worried only about Gnome applications, so the configuration API provided by X is
of no use to non-X apps and GConf, as nice as it is, is useless to non-Gnome
developers, KDE people did something for KDE apps only etc. And there was/is no
father to worry about Unix as a whole, inspite of rich commercial vendors.
That's the sad fact. Hence the current situation with multiple duplication of
efforts with no satisfactory results.

  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.

Re[2]: Binary configuration files as panacea to whatever ails Linux (was: Re: the problem with LINUX)

2003-01-12 Thread Evgeny Stambulchik
Shlomi Fish [EMAIL PROTECTED] wrote:

  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.

Yes. And another one will do it for ssh. And yet others will do it for
applications X, Y, and Z... duplicating the efforts. This is a short-sighted
approach.

  I am content with reloading or restarting Apache whenever I make a chage.

So some are content with restarting the whole computer (probably several times
in row) just for installing an audio driver. Don't you see a parallel? What is
OK for a home desktop is unacceptable for server. Reloading Apache serving
static contents is no big deal, but if it's coupled with a DB machinery
involving complicated lengthy transactions, this may be very serious. And how
about restaring X server killing all your running apps just to alter the font
path or bell volume?

  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.

Hence, this approach is wrong. Webmin, LinuxConf, YAST, DrakeConf, you name it.
Huge duplication of efforts and _none_ of the above working properly. You need
an API (abstraction) that will both generate AND parse the configuration.
Moreover, the Apache itself MUST use this very API. And all other servers and
applications. Throw in replication and remote access protocol and that will be
the sysadmin's paradise... And no, I don't mind it sounds like Active Directory.

Regards,

Evgeny

=
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]




Re[2]: Binary configuration files as panacea to whatever ails Linux (was: Re: the problem with LINUX)

2003-01-12 Thread Tzafrir Cohen
On Sun, 12 Jan 2003, Evgeny Stambulchik wrote:


 Hence, this approach is wrong. Webmin, LinuxConf, YAST, DrakeConf, you name it.
 Huge duplication of efforts and _none_ of the above working properly. You need
 an API (abstraction) that will both generate AND parse the configuration.
 Moreover, the Apache itself MUST use this very API. And all other servers and
 applications. Throw in replication and remote access protocol and that will be
 the sysadmin's paradise... And no, I don't mind it sounds like Active Directory.

1. This means rewriting apache. Recall that apache is used not only on
linux, but on hosts of other platforms. Some linux developers tend to be
linux-centric, and ignore the fact that the same software needs to run on
other platforms.

2. gnome (partially in 1.4, more so in 2.0) is a test to such a
technology. Am I the only one who thinks a configuration daemon is bad?

And anyway, I remind you that there is already a remote access protocol on
linux that is quite powerful, and works very well. It also fits into the
unix framework: rsh/ssh

(not telnet: you cannot run commands remotely via telnet!)

-- 
Tzafrir Cohen
mailto:[EMAIL PROTECTED]
http://www.technion.ac.il/~tzafrir


=
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]




Re: Binary configuration files as panacea to whatever ails Linux (was: Re: the problem with LINUX)

2003-01-12 Thread Nadav Har'El
On Sun, Jan 12, 2003, Evgeny Stambulchik wrote about Re[2]: Binary configuration 
files as panacea to whatever ails Linux (was: Re: the problem with LINUX):
   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.
 
 Right, and the lack of these features (actually, the lack of decent API
 providing them) distracted many even pure-X apps from solely using it; instead,
 they load/store their configs from customly-formatted .rc files.

This is not the only problem with X resources...
X resources provide a very specific model of configuration, with a very
limited syntax.

Looking at my ~/.ctwmrc (yes, ctwm is my window manager), ~/.emacs (900
lines of lisp :)), ~/.zshrc, etc., I can't imagine how any of those could
be done using the X resources model.

I mean, surely it could be done, like this:
  Zsh.zshrc.line1: 
  Zsh.zshrc.line2: 
  ...
But this is obviously not what you suggest.


 I need the well-defined API and its C implementation. Whatever

The Xt implementation of X resources was quite well-defined and powerful.
There was a program called xresedit (or something like that... hmm, could it
be that XFree86 dropped this??) to edit running applications' configuration
on-the-fly (e.g., you could change the button colors on a running
application ;))

Tcl/Tk has a much better (in my opinion) configuration paradigm. First,
since Tcl is an interpreted language, configuration files could be written
in that language and be very powerful (e.g., imagine your clock's color
changing depending on the day of the week, and your background change
according to the phase of the moon).
If you wanted the config file to have a fixed structure so that a program
could modify (not just read) it, you could have done it (just like XEmacs
now does with the user options saved as Lisp).

Then, Tcl/Tk had a send command (try 'man n send') in which you could
execute Tcl expressions on another running applications. This could be used,
for example, for configuring a running applications. I once had a program
like that which let you change colors of widgets (and similar stuff) on
running Tcl/Tk programs.

Too bad Tcl/Tk didn't catch on, it was a very nice tool :(

-- 
Nadav Har'El|  Sunday, Jan 12 2003, 10 Shevat 5763
[EMAIL PROTECTED] |-
Phone: +972-53-245868, ICQ 13349191 |Unlike Microsoft, a restaurant will not
http://nadav.harel.org.il   |ask me to pay for food with a bug in it!

=
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]




Re: Binary configuration files as panacea to whatever ails Linux (was: Re: the problem with LINUX)

2003-01-12 Thread Evgeny Stambulchik
Tzafrir Cohen wrote:


Hence, this approach is wrong. Webmin, LinuxConf, YAST, DrakeConf, you name it.
Huge duplication of efforts and _none_ of the above working properly. You need
an API (abstraction) that will both generate AND parse the configuration.
Moreover, the Apache itself MUST use this very API. And all other servers and
applications. Throw in replication and remote access protocol and that will be
the sysadmin's paradise... And no, I don't mind it sounds like Active Directory.



1. This means rewriting apache.


No. It means either a) {if the Apache style of config is considered the 
best} extracting the relevant part of Apache into an independent library 
or b) designing the config API from scratch and throwing away the old 
cruft (which isn't a major part of the Apache codebase anyway).

Recall that apache is used not only on
linux, but on hosts of other platforms. Some linux developers tend to be
linux-centric, and ignore the fact that the same software needs to run on
other platforms.


I wholeheartedly agree that for such a base API to catch on, it must be 
highly portable.

2. gnome (partially in 1.4, more so in 2.0) is a test to such a
technology.


As I wrote earlier, I in general like the GConf ideas, but it's bound to 
Gnome (well, it's supposed to be used kinda standalone, but since it 
further depends on about dozen of libraries which you never find on 
non-Gnomified systems... and of course, linking a daemon like crond to ten 
libraries just to parse its config is definitely an overkill).

Am I the only one who thinks a configuration daemon is bad?


Why is it bad (if correctly implemented)? And why the daemon is a must? 
Think about embeded SQL. The backend could be a daemon (e.g. PostgreSQL), 
but could also be a plain file (see SQLite). Basically, you just swap the 
header files. Ideally, there is a backend-neutral wrapper layer with many 
plugins. Administrating a standalone desktop? Configure it to use local 
files for the config data storage and don't worry about daemons. Just as 
/etc/hosts vs. named. A more complicated schemes including local caching 
etc are possible, too.

And anyway, I remind you that there is already a remote access protocol on
linux that is quite powerful, and works very well. It also fits into the
unix framework: rsh/ssh


Fantastic. Ever wondered why people invented HTTP? Of course, these were 
Windows freaks who didn't know how to use telnet. The unix framework 
would be to ssh to the web server and run the browser there. Right? And 
IMAP is completely obsolete in the unix framework, too: ssh to the mail 
server and open inbox in vi. If rsh/ssh is the ultimate answer to the 
remote management, then vi is the ultimate configuration GUI. Not?

Regards,

Evgeny


=
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]



Re: Binary configuration files as panacea to whatever ails Linux(was: Re: the problem with LINUX)

2003-01-12 Thread Evgeny Stambulchik
Nadav Har'El wrote:


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.


Right, and the lack of these features (actually, the lack of decent API
providing them) distracted many even pure-X apps from solely using it; instead,
they load/store their configs from customly-formatted .rc files.



This is not the only problem with X resources...


Sure. But my point is that even such a limited config interface has never 
existed at the base level of Unix system. A limited tool is better than no 
tool at all. Just imagine how many thousands of hours of 
programming/debugging could be saved if in libc (or in a separate lib - 
like libm for math stuff) there existed a simplistic API for dealing with 
INI-style config files! INI config files would be completely adequate for 
a vast majority of existing apps, including those that don't presently 
provide a configuration mechanism at all (e.g. why should I worry about 
aliasing cp to cp -i, ls to ls -F --color=auto etc in each and every 
shell separately instead of setting it in a fileutils config file, once 
and for ever?!).

I need the well-defined API and its C implementation. Whatever



The Xt implementation of X resources was quite well-defined and powerful.


Not really. Why then literally no app uses Xresources for _storing_ prefs? 
Netscape's preferences.js would fit nicely into the Xresources syntax, for 
example. Some other advanced X apps (e.g. Nedit) started using the 
Xresources for preferences but then switched to a custom load/store API 
_although the format remained the same_! But again, you missed my point. 
Whatever nice or powerful it is, it's bound to X. Would anybody in the 
sane mind want to link crond or named to X libs (and which wouldn't work 
without opening a $DISPLAY)?

There was a program called xresedit (or something like that... hmm, could it
be that XFree86 dropped this??)


editres. BTW, it always had misc problems with Motif/Lesstif apps (which 
became very severe with Motif-2.1 API, so that OpenMotif folks started 
putting a modified version of (parts of?) libXmu inside libXm - which 
created a bunch of other problems, but that's a completely different story).

Regards,

Evgeny


=
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]



Re: Binary configuration files as panacea to whatever ails Linux (was: Re: the problem with LINUX)

2003-01-12 Thread Tzafrir Cohen
On Sun, 12 Jan 2003, Evgeny Stambulchik wrote:

 Tzafrir Cohen wrote:

 Hence, this approach is wrong. Webmin, LinuxConf, YAST, DrakeConf, you name it.
 Huge duplication of efforts and _none_ of the above working properly. You need
 an API (abstraction) that will both generate AND parse the configuration.
 Moreover, the Apache itself MUST use this very API. And all other servers and
 applications. Throw in replication and remote access protocol and that will be
 the sysadmin's paradise... And no, I don't mind it sounds like Active Directory.
 
 
  1. This means rewriting apache.

 No. It means either a) {if the Apache style of config is considered the
 best} extracting the relevant part of Apache into an independent library
 or b) designing the config API from scratch and throwing away the old
 cruft (which isn't a major part of the Apache codebase anyway).

  Recall that apache is used not only on
  linux, but on hosts of other platforms. Some linux developers tend to be
  linux-centric, and ignore the fact that the same software needs to run on
  other platforms.

 I wholeheartedly agree that for such a base API to catch on, it must be
 highly portable.

  2. gnome (partially in 1.4, more so in 2.0) is a test to such a
  technology.

 As I wrote earlier, I in general like the GConf ideas, but it's bound to
 Gnome (well, it's supposed to be used kinda standalone, but since it
 further depends on about dozen of libraries which you never find on
 non-Gnomified systems... and of course, linking a daemon like crond to ten
 libraries just to parse its config is definitely an overkill).

  Am I the only one who thinks a configuration daemon is bad?

 Why is it bad (if correctly implemented)? And why the daemon is a must?
 Think about embeded SQL. The backend could be a daemon (e.g. PostgreSQL),
 but could also be a plain file (see SQLite). Basically, you just swap the
 header files.

/me thinks: how can one binary work with all the different backends...

 Ideally, there is a backend-neutral wrapper layer with many
 plugins. Administrating a standalone desktop? Configure it to use local
 files for the config data storage and don't worry about daemons. Just as
 /etc/hosts vs. named. A more complicated schemes including local caching
 etc are possible, too.

Anyway, one thing you should look at is libc's nss (name service switch),
which allows selection in run-time of the name-resolution method for each
of the services. But this is a read-only configuration.


  And anyway, I remind you that there is already a remote access protocol on
  linux that is quite powerful, and works very well. It also fits into the
  unix framework: rsh/ssh

 Fantastic. Ever wondered why people invented HTTP? Of course, these were
 Windows freaks who didn't know how to use telnet. The unix framework
 would be to ssh to the web server and run the browser there. Right?

Hey: I specifically excluded telnet!

Anyway, http is a simplified ftp, not a simplified rsh.

 And
 IMAP is completely obsolete in the unix framework, too: ssh to the mail
 server and open inbox in vi.

I actually access my imap account via ssh to the mail server ('ssh
mailserver /path/to/imapd') ...

 If rsh/ssh is the ultimate answer to the
 remote management, then vi is the ultimate configuration GUI. Not?

You seem to confuse usage and administration in the above examples.

It is a powerful remote administration tool that you should not break.
There is one thing you should keep in mind: GUI can't be automated. An
API, as nice as it is, still takes some effort to automate. If you want
something done via cron: you need a shell command.

Another thing to keep in mind: current package management tools are built
around files. A file cannot be part of two packages. Config files fit very
nicely into this scheme: there is a clear definition who is responsible
for each config file. If more than one package should change a certain
config file, then the package providing this file must provide the
(command-line) API to edit this file safely.

This modularity is another thing that has to be maintained. One thing that
has to be done in any such configuration scheme is to define domains
whose are in the responsibility of certain packages.

Another point: you mentioned cups as a good example of a package with a
clear configuration API (though it seems to require a certain daemon
listening on a certain port, IIRC).

There is one difference between a general configuration scheme and a
specific configuration scheme: the designers of cups's config API were
aaware of the meaning of every action: they knew what print will do,
etc.

But if you design a generic config API, you simply don't have the right
actions or verbs in advance: It seems that what you want is an API
that will expose all the actions that can be performed on the config of a
service, rather than a low-level API to edit the config of the service.

-- 
Tzafrir Cohen
mailto:[EMAIL PROTECTED]

Re: Binary configuration files as panacea to whatever ails Linux (was: Re: the problem with LINUX)

2003-01-12 Thread Shaul Karl
On Sun, Jan 12, 2003 at 09:36:53PM +0200, Nadav Har'El wrote:
 There was a program called xresedit (or something like that... hmm, could it
 be that XFree86 dropped this??) to edit running applications' configuration
 on-the-fly (e.g., you could change the button colors on a running
 application ;))
 


  Is the following what you are referring to?

$ dpkg -S /usr/X11R6/bin/editres
xbase-clients: /usr/X11R6/bin/editres
$ 
$ man editres

editres(1x)

NAME
   editres - a dynamic resource editor for X Toolkit applications

SYNOPSIS
   editres [ toolkitoption ... ]

DESCRIPTION
   editres is a tool that allows users and application developers
   to view the full widget hierarchy of any X Toolkit application 
   that speaks  the

  
-- 

Shaul Karl, [EMAIL PROTECTED] e t

=
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]




Re: Binary configuration files as panacea to whatever ails Linux (was: Re: the problem with LINUX)

2003-01-12 Thread Evgeny Stambulchik
Tzafrir Cohen wrote:


Think about embeded SQL. The backend could be a daemon (e.g. PostgreSQL),
but could also be a plain file (see SQLite). Basically, you just swap the
header files.



/me thinks: how can one binary work with all the different backends...


man dlopen. Or read existing code. Since we talked about SQL, the first 
thing that comes to my mind is UnixODBC (http://www.unixodbc.org/).

Ideally, there is a backend-neutral wrapper layer with many
plugins. Administrating a standalone desktop? Configure it to use local
files for the config data storage and don't worry about daemons. Just as
/etc/hosts vs. named. A more complicated schemes including local caching
etc are possible, too.



Anyway, one thing you should look at is libc's nss (name service switch),
which allows selection in run-time of the name-resolution method for each
of the services. But this is a read-only configuration.


Hmm, and in which way is it related to a generic configuration API? I used 
the hosts/named example just to show how the same functionality can be 
achieved both with and without a daemon - with applications not having a 
slightest idea whether the NS answer comes from a remote server or /etc/hosts.

And anyway, I remind you that there is already a remote access protocol on
linux that is quite powerful, and works very well. It also fits into the
unix framework: rsh/ssh


Fantastic. Ever wondered why people invented HTTP? Of course, these were
Windows freaks who didn't know how to use telnet. The unix framework
would be to ssh to the web server and run the browser there. Right?



Hey: I specifically excluded telnet!


What's the principal difference here, for the heaven's sake?


Anyway, http is a simplified ftp, not a simplified rsh.


Exactly. So you answered yourself. When there is a remote data (HTML files 
in the case of WWW) there are two ways for a user to access the data: 1) 
login to the remote computer and run an application (web browser) there 
and somehow display the application's interface back or 2) retrieve the 
data to the local system and run the app locally (and send the modified 
data back, if required, using the same protocol that was used for fetching 
it). The second approach is called the client-server model. Shall I go 
in depth proving that 2) is superior?

I actually access my imap account via ssh to the mail server ('ssh
mailserver /path/to/imapd') ...


No. What you're doing is tunneling the IMAP protocol via the ssh tty 
session. Why you're doing so is quite beyond my understanding, though (a 
firewall blocking the IMAP port? - but why not usual port forwarding that 
ssh is so good at?). At the other end of the ssh pipe an IMAP-capable mail 
reader is listening anyway.

If rsh/ssh is the ultimate answer to the
remote management, then vi is the ultimate configuration GUI. Not?



You seem to confuse usage and administration in the above examples.


No, it's you fail to realize that administration is a form of usage. 
For a web browser application the data is HTML files. For a management 
console, the data is config info.

It is a powerful remote administration tool that you should not break.


??


There is one thing you should keep in mind: GUI can't be automated.


Why did you jump at GUI? Whether I'm using Mozilla to browse the Net or 
downloading a Mandrake ISO with wget the HTTP protocol comes handy. And 
both Mozilla and wget could potentially use the same HTTP access API if 
such a thing existed on all flavours of OS the two applications are 
running. Same about IMAP: KMail (GUI) and fetchmail (GUI-less) both use it 
instead of logging to the remote server via ssh. Same about config.

An API, as nice as it is, still takes some effort to automate.


Come on. The point is _unification_. If a device has ten screws, nobody 
would deny it's more complex to deal with than a single one. But if each 
of them is different in size/form... Yes, that's the current state of 
affairs in the Unix world of configuration. A nice car with hundreds of 
screws of different types. You have to learn how to use a few dozens of 
different screwdrivers. For a few large polished screws you can buy an 
electric screwdriver; however, 1) the electric tool, albeit fast, is very 
rough and 2) once you started using the advanced tool, an attempt to 
tighten one of the polished screws with a usual screwdriver risks the car 
stop working. Imagined?

If you want something done via cron: you need a shell command.


Sorry, I lost you here completely. What did you try to say?


Another thing to keep in mind: current package management tools are built
around files. A file cannot be part of two packages. Config files fit very
nicely into this scheme: there is a clear definition who is responsible
for each config file.


The clear definition appears very dirty at a closer look. Ever tried 
changing hostname of a multi-protocol server? The hostname pops up in a 
dozen of different config files. Which package is 

Re: the problem with LINUX

2003-01-11 Thread Omer Zak

On Sat, 11 Jan 2003, shlomo solomon wrote:

 My problem is that LINUX (as much as it's progressed over the years) is still 
 much too hard to install, set up, and use. As things stand now, it's not 
 really a viable alternative for John Q. User. As opposed to other OSs (that 
 will remain nameless), there's still too much tweaking required. And for a 
 non-technical user, it's just impossible.

The real problem was seriously mis-identified.  It is now actually easier
to install Linux than MS-Windows. 

When I was forced to upgrade my PC's motherboard from one hosting a 300MHz
processor to one hosting a 1.7GHz processor, Windows 95 died (there is
some obscure driver in the Hebrew version of Windows 95, which fails when
the processor's clock frequency goes beyond 1GHz; and a fix is available
only for OSR2 - unavailable for the Hebrew edition) and Windows 2000 was
in serious trouble.  Linux 2.0.36 (very old by today's standards) booted
on the new motherboard without problems.

When was the last time anyone bought PC and MS-Windows and installed and
configured by himself all the stuff?  The computer shops sell you
computers with your taste of MS-Windows preinstalled, configured and
tested.  If you run into problems, they support you under warranty.  And
they fight all the problems so that your experience is as seamless as
possible.

On the other hand, with Linux, you have to install it yourself - almost no
one sells a PC with preinstalled Linux.  You have to turn to friends and
IGLU for support, rather than rely upon warranty.  You have to fight your
own battles rather than have the shop personnel fight for you.

And... you know what?  Your Linux battles are easier than the shop's
MS-Windows wars.  But since you don't see the shop's backroom, you are
comparing your Linux battles with the experience of an MS-Windows user.

 --- Omer
WARNING TO SPAMMERS:  see at http://www.zak.co.il/spamwarning.html


=
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]




Re: the problem with LINUX

2003-01-11 Thread Ira Abramov
Quoting shlomo solomon, from the post of Sat, 11 Jan:

 My problem is that LINUX (as much as it's progressed over the years)
 is still much too hard to install, set up, and use. As things stand
 now, it's not really a viable alternative for John Q. User. As opposed
 to other OSs (that will remain nameless), there's still too much
 tweaking required. And for a non-technical user, it's just impossible.

Barging through an open door. what's your point?

We all know it's the current state, we all kvetch about it, some of us
have time to do something about it but lack the knowledge or interest.
It's your free choice to run it, it's you right to document procedures
to fix the problems you encountered, and it's your right to send fixes
and suggestions to the appropriate vendors, authors and packagers.

-- 
My own worse critic
Ira Abramov

http://ira.abramov.org/email/ This post is encrypted twice with ROT-13.
Documenting or attempting to crack this encryption is illegal.



msg24815/pgp0.pgp
Description: PGP signature


Re: the problem with LINUX

2003-01-11 Thread Tzafrir Cohen
Two remarks:

On Sat, 11 Jan 2003, shlomo solomon wrote:

[snip ]

 I won't go into the details here, but those who have read my
 posts over the past couple of months know that I had problems with USB
 printer support, iptables, file permissions, etc. And most recently, I
 haven't been able to use my FlyVideo2000 card. Although all the problems
 (except the FlyVideo2000 card) are solved, it all required too much effort.

Just one note: I don't remember what were your other problems, but the
iptables problem was caused by the fact that you weren't satisfied with
the built-in firewall of the distro, and wanted to use your own (and the
ipchains service got in the way). This is not a problem I expect the
mythical Joe User to have.

 As someone wrote to the list recently (sorry, don't remember who - and this
 is not an exact quote): I want the computer to do useful work - tweaking is
 only a means to that end and not the purpose of having the computer.

 So how can we expect the non-technical user to even consider LINUX? I consider
 myself a technical user - but I've given up on the TV problem, so what does
 that say? I know it's **sexy** to talk about self compiled kernels, etc. And,
 in fact, on MDK 8.1 (and previously) I did compile my own for various
 reasons. But, should I really have to compile a kernel just to watch TV?

Maybe. If that what it takes. But in that case rebuilding the kernel
should not be difficult. It should involve less magic. I see nothing wrong
with aunt tilly being forced to compile a kernel.

Heck: don't you find it weird that you have to download a 4MB or 8MB
so-called driver that installs a bunch of programs that are totally
unnecessary for the function of the real driver?

Maybe there could be a half-compiled tree that fits the binary distro and
kernel image, and you'll only need to build the kernel module itself?

 And,
 more importantly, what about my next door neighbour, who doesn't even know
 what the word compile means? How does he get to watch TV? Basically, all this
 keeps LINUX as an OS for **experts**.

If rebuilding a kernel is to become a necessaty for configuration, then it
should be wrapped with a simple interface. Debian already has something
close to that.


 As  I said, I don't intend to start a war - I am a committed LINUX user - but
 it really shouldn't be so hard.



-- 
Tzafrir Cohen
mailto:[EMAIL PROTECTED]
http://www.technion.ac.il/~tzafrir


=
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]




Re: the problem with LINUX

2003-01-11 Thread Oron Peled
On Sat, 11 Jan 2003 19:32:21 +0200
shlomo solomon [EMAIL PROTECTED] wrote:
 although my wife and kids all use Windows - and of course that makes me the 
 primary sysop for their machines :-(.

Why? Isn't Windows so easy that anyone can handle it

You see, as someone else already pointed out, no John Doe is actually
installing and configuring their own Windows machine -- someone else
do it for them either for a fee (the computer store, the technician,
their ISP over the phone) or for other reasons (a family member,
a neighbour, a coworker who is a computer expert).

What is changing in the Linux world is:
- Distributions are getting better at install/configure
- More and more people are available to help others with
  Linux issues (I'm sure you can now help your friends
  or neighbours with *some* of their common problems).
- Hardware vendors are (really slowly) beginning to pay
  attention as Linux becomes more widespread (e.g: you
  start to see advertisements [even in Israel] that
  refers to Linux compatibility).

Cheer up,


Oron Peled Voice/Fax: +972-4-8228492
[EMAIL PROTECTED]  http://www.actcom.co.il/~oron

Linux:  If you're not careful, you might actually learn something.
-- Allen Wong

=
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]




Binary configuration files as panacea to whatever ails Linux (was: Re: the problem with LINUX)

2003-01-11 Thread Omer Zak

On Sat, 11 Jan 2003, Eli Marmor wrote:

 * Migration from the current ASCII CONF format to binary format or
 database-based format. There are zillion GUI's for Apache (just as an
 example), and none is good, because it's impossible to develop a GOOD
 GUI for an ASCII-based configuration file. I guess that everybody is
 going to laugh at the REGISTRY and other MS stuff, but handling
 ASCII CONFfiles, with VI/emacs, when you are a dummy, is impossible.
 (I know that many people don't agree with this point, but I don't
 want to start a new argument, although I have a lot of experience and
 knowledge in this field; The last line remains thesame:
 COMPATIBILITY).

Why, yes of course, if you move to binary configuration files for your
applications and make their format a trade secret and release obfuscated
source files for the modules, which deal with the configuration files,
then you in effect erect a tollgate and make it difficult for developers
to develop competing configuration tools for your applications, and then
you can make some money from configuration tools, time spent at
installation, consulting fees, ad nauseaum...

 --- Omer
I am sick of binary configuration files!
WARNING TO SPAMMERS:  see at http://www.zak.co.il/spamwarning.html


=
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]




Re: the problem with LINUX

2003-01-11 Thread Official Flamer/Cabal NON-Leader
Quoth shlomo solomon:

 I'm afraid this is going to start a **war** and that's not my
 intention, but I really feel I've got to get this off my chest.

War is good - drives the economy ;-). See if we shan't have one soon.

 My problem is that LINUX (as much as it's progressed over the years)
 is still much too hard to install, set up, and use. As things stand
 now, it's not really a viable alternative for John Q. User. As opposed
 to other OSs (that will remain nameless), there's still too much
 tweaking required. And for a non-technical user, it's just impossible.

Good. That is the idea. Fuck JQU, (s)he is not worth the effort, anyway.
The sooner we get back to the old priesthood computing model, the better.

 all required too much effort.  As someone wrote to the list recently
 (sorry, don't remember who - and this is not an exact quote): I want the
 computer to do useful work - tweaking is only a means to that end and not
 the purpose of having the computer. 

You want to _USE_ the computer. You are not part of the priesthood - get
out of my terminal room post-haste. Computers are not the means - they are
the ends. Serve the computer, friend citizen, the computer is your friend.

 get to watch TV? Basically, all this keeps LINUX as an OS for
 **experts**.

Yes. Experts. Us. All seventeen of us, give or take.

 As  I said, I don't intend to start a war - I am a committed LINUX user -
 but it really shouldn't be so hard.

It should not be so hard. It should be MILES harder.

Go away - you're a troll.

M
-- 
---OFCNL
This is MY list. This list belongs to ME! I will flame anyone I want.
Official Flamer/Cabal NON-Leader  [EMAIL PROTECTED]

=
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]




Re: the problem with LINUX

2003-01-11 Thread Eli Marmor
Warning: the following text is long.
Request: ease don't reply without reading till the end. There may be
mistakes or things that you may want to argue with, but the whole
picture is the important thing, and not the (example:) exact number of
Linux/Windows users.


I agree with Shlomo, but also with one of its responders (was it
Omer?).

There is a severe friendliness problem with Linux, but it is not
RECOGNIZED correctly.

Friendliness is rhymed with marketting, so everybody went to
marketting experts, and asked them what whould be done. And those
experts, Nebechs, who have never heard about kernel drivers, answered
automatically: Don't you have a desktop environment management? Bad!.

So now we have too many KDE/GNOME/etc., and no problem has been
resolved.

Then they said: Your graphics looks ugly! And you need better icons!.

So now the graphics of Linux is better than Windows, but no problem has
been resolved.

Then they said: Your best word processor is a text editor 20-years
old ?   VERY BAD!.

So now we have SEVERAL word processors, but no problem has been
resolved.

And I can continue and pass a mistake after mistake, but I think the
point was understood.

IF the real experts (i.e. technical experts) were asked, I believe
their answers would be different (well, Linus had the same answers, but
only because everybody told him: Listen to the marketting experts,
they know what they say!).


Now let's go to the real problem that makes Linux non-friendly (well,
it's actually friendly, but a little selective with who its friends
are...):

Shlomo mentioned FlyVideo 2000 problems, and USB printer support.

In addition, almost any Linux installation faces hardware devices that
are not supported, or devices that are not detected.

Linux users are forced to use very specific and expensive devices (e.g.
modems) because many of the devices are not supported by Linux.

Some people are not so dummy, and can google for solutions/workarounds.
But how can you google in the middle of an installation, when you reach
a problem, you don't have a second (working) PC, and you don't want to
lose all the installation?  (i.e. to cancel it just to google in your
second partition and then reboot again and start the installation from
the beginning).

Some users receive DOC attachments, and can't view them. Or can import
them to one of the Linux word processors, but don't see them correctly
(usually they even don't know that the document was not viewed
correctly, because they don't have a clue about how it was seen by its
original author).

Some users can't use their Linux mailer/scheduler, because it doesn't
inter-operate perfectly with the organizations Exchange server (unless
they pay money and purchase the commercial add-on of Evolution).

Linux should not be blamed for these problems. For example, the
hardware compatibility problems are caused just because there are 100
Windows users per any Linux user (or 50 per 1. The exact number is not
important). Now imagine you are a hardware vendor. During the RD, you
reach the testing phase. The chance that your new hardware will work in
the first time you put it into a computer with Windows, is 0%. So you
find the problem, fix it, and try again. After 10 or 20 itterrations,
everything works correctly. Sometimes you also need to supply a device
driver, so you develop a Windows driver.

Usually, that loop of itterrations, or that device drivers, are not
done with Linux. Because there are so many Windows users and so little
Linux users, and that doesn't pay. It's like the bank site that was
discussed here recently.


Who is to blame?

The vendor should not be blamed, because it is not economical for him
to develop everything for Linux too.

The Linux developers should not be blamed, because the better support
of Windows is not thanks to the efforts of Microsoft, but an automatic
result of its wide distribution.

Only those marketting experts that claimed that better icons will
solve the problem, should be blamed. They should not express any
opinion without knowing kernel internals etc.


So what can be done now?

Focus ALL the efforts to improve the compatibility issues:

* kernel, device drivers, etc. I think that the most important events
  for the friendliness of Linux in the recent years, were the launch of
  Linux 2.2, and the launch of Linux 2.4. And hardware is not the only
  compatibility issue related to the kernel: I think that the fact that
  NTFS is still only read-supported and not write-supported is severe.
  And there are many other examples.

* Better filters, from and *TO* Windows applications (for example,
  PERFECT filters for WORD, Excel, PPT, etc.). And support for MS
  protocols and formats (e.g. better emulation of Outlook in mail apps,
  so an organizational Exchange server can be used better by Linux
  users).

* Migration from the current ASCII CONF format to binary format or
  database-based format. There are zillion GUI's for Apache (just as an
  

Re: the problem with LINUX

2003-01-11 Thread Tzafrir Cohen
On Sat, 11 Jan 2003, Eli Marmor wrote:


 * Migration from the current ASCII CONF format to binary format or
   database-based format. There are zillion GUI's for Apache (just as an
   example), and none is good, because it's impossible to develop a GOOD
   GUI for an ASCII-based configuration file. I guess that everybody is
   going to laugh at the REGISTRY and other MS stuff, but handling
   ASCII CONF files, with VI/emacs, when you are a dummy, is impossible.
   (I know that many people don't agree with this point, but I don't
   want to start a new argument, although I have a lot of experience and
   knowledge in this field; The last line remains the same:
   COMPATIBILITY).

Some XML-based format may be a resonable comppormise between
machine-parsable and human-edible. Maybe. One big config file is
always a source of troubles.

Actually, we already have some examples of programs with relatively
complex configs (mozilla, KDE), and a very common debugging procedure is
'please {delete|rename} the ~/.{kde|mozilla} directory.

I have a feeling that one big registry will make things even worse.

What happens when those configs are lost?

(dont tell me anything about automatic backups. We all know that this is
something that is bound to fail sooner or later, as in windows 98)

-- 
Tzafrir Cohen
mailto:[EMAIL PROTECTED]
http://www.technion.ac.il/~tzafrir


=
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]




Re: Binary configuration files as panacea to whatever ails Linux (was: Re: the problem with LINUX)

2003-01-11 Thread Eli Marmor
Following Omer's response:

Just to clarify, I've NEVER mentioned Proprietary format;
XML is great (though you may inherit the problems of ASCII by writing a
cheating schema).
PostgreSQL/MySQL is good too (although it depends on a specific
implementation of a database).

And I was serious when I asked not to argue on this specific point; the
last line of my entire message was clear, and if you don't agree with
the specific point of binary/XML configuration format, just ignore it,
and refer to the other points. I really don't want to start a new
argument about this issue, and it is a minor point and a small part of
my message.

-- 
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]




RE: the problem with LINUX

2003-01-11 Thread nav ajo
Title: the problem with LINUX






Yeah, linux is a crappy piece of software. What isn't? But at least, it 

was all written by kind sirs who awed nothing to you. 

Anyway, Windows is no better. Even Windows needs the touch of 
a techman for it to run smoothly and not crappily. 

Things, all things, should be made idiot-proof. Technicals oughta be
as simple as possible, without compromising on workness.

One thing that should not be compromised is lazyness. We ought not
encourage people to needlessly and inefficiently work.

Entries in mailing-lists should also be simple. Constructedof 
simple
and short sentences, structured simply, carrying a simple message.


  -äåãòä î÷åøéú- îàú: shlomo solomon 
  [mailto:[EMAIL PROTECTED]] ðùìç: ù 1/11/2003 19:32 
  àì: IGLU IGLU òåú÷ ìéãéòä: ðåùà: the problem 
  with LINUX
  I'm afraid this is going to start a **war** and that's not my 
  intention, but Ireally feel I've got to get this off my 
  chest.Firstly, let me say that I've been using LINUX on and off for 6 
  years and thatit's been my only OS since deleting OS/2 (z"l) 3 years ago. 
  So I'm acommitted LINUX user. And I have no intention of using anything 
  else -although my wife and kids all use Windows - and of course that makes 
  me theprimary sysop for their machines :-(.My problem is that 
  LINUX (as much as it's progressed over the years) is stillmuch too hard to 
  install, set up, and use. As things stand now, it's notreally a viable 
  alternative for John Q. User. As opposed to other OSs (thatwill remain 
  nameless), there's still too much tweaking required. And for 
  anon-technical user, it's just impossible.If I just consider my 
  own setup since upgrading to Mandrake 9.0 (I've usedMandrake since 7.0), 
  the solutions to most of the problems I had, were beyondwhat the average 
  user could have handled. Sure, IGLU was very helpful, whichis again proof 
  that if you GOOGLE around and RTFM before asking questions,the list 
  members are usually very good about helping. But, why should thishelp be 
  needed? I won't go into the details here, but those who have read myposts 
  over the past couple of months know that I had problems with USBprinter 
  support, iptables, file permissions, etc. And most recently, Ihaven't been 
  able to use my FlyVideo2000 card. Although all the problems(except the 
  FlyVideo2000 card) are solved, it all required too much effort.As someone 
  wrote to the list recently (sorry, don't remember who - and thisis not an 
  exact quote): I want the computer to do useful work - tweaking isonly a 
  means to that end and not the purpose of having the computer.So how 
  can we expect the non-technical user to even consider LINUX? I 
  considermyself a technical user - but I've given up on the TV problem, so 
  what doesthat say? I know it's **sexy** to talk about self compiled 
  kernels, etc. And,in fact, on MDK 8.1 (and previously) I did compile my 
  own for variousreasons. But, should I really have to compile a kernel just 
  to watch TV? And,more importantly, what about my next door neighbour, who 
  doesn't even knowwhat the word compile means? How does he get to watch TV? 
  Basically, all thiskeeps LINUX as an OS for **experts**.As I 
  said, I don't intend to start a war - I am a committed LINUX user - butit 
  really shouldn't be so hard.--Shlomo Solomonhttp://come.to/shlomo.solomonSent 
  by KMail (KDE 3.0.3) on LINUX Mandrake 
  9.0==To unsubscribe, send mail to 
  [EMAIL PROTECTED] withthe word "unsubscribe" in the message 
  body, e.g., run the commandecho unsubscribe | mail 
  [EMAIL PROTECTED]



Hotmail.co.il - Powered by IBM eServer




Re: the problem with LINUX

2003-01-11 Thread Alex Chudnovsky
On Saturday 11 January 2003 21:28, Tzafrir Cohen wrote:

 And re-install all of your programs. And hopefully you have your config
 saved.
Talking about re-installation of Windows here, not Linux.

 What you mention is mystrious behaviours, not hardware installations.
 Proper usage of packages mean that you have less problems with packages.
In this particular case, I suspect hardware problems.

 A journaling file system reduces the chance of file corruption and thus
 gives you a more stable system.

 But anyway, if you get in a habit of re-installations (bad!) make sure to
 create a kick-start configuration o shorten its time (Mandrake, and
 probably other distros as well, offer to do this in the end of the
 installation)
Once more, this particular problem was with Windows.

  -
  [snip]
 
   Basically, all this keeps LINUX as an OS for **experts**.
 
  IMHO, what is required to bring Linux out of the expert OS niche, is :
  - Vendor-supplied hardware drivers , no matter if binary or not, or at
  the very least open specifications. And please stop telling me all this
  nonsense about And what if vendor decides to stop supporting those
  drivers? And what if the hardware is rare and those who have it, can't
  write code? And why should we the users wait several years till the
  drivers are there? I personally prefer working hardware and then all
  these freedom principles, but YMMV.

 Anybody here with ADSL modems that are not supported under win98?
At least if you happen to have recent Windows, you haven't to wait several 
years for Linux community to reverse-engineer the driver. 

 What about the (pctel?) binary-only winmodem drivers that required you to
 move back to a sepecific, obsolete, and insecure kernel just to be
 connected to the internet? (I usually want to make sure I have a fixed
 kernel when I connect to the internet)
Vote with your purse - don't purchase such modem, if the vendor doesn't have a 
driver for your particular distribution ( or for your particular version of 
Windows). Or purchase it and wait several years for the driver to be 
reverse-engineered ( this may never happen ).

 Do you know how many people had to compile their kernel just because of
 those binary-only drivers?
Blame kernel developers for that - the kernel has NO INTERFACE to accept 
binary third-party drivers. In my book, it's a serious obstacle.
IMHO, hardware vendor support for Linux is necessary for Linux to become 
mainstream desktop system.
There are three ways for a hardware vendor to provide such support- either the 
vendor publishes the specs or it writes a binary driver or it writes an 
open-source driver.
In the first case, the hardware would be supported in any Linux kernel, but 
you as a user have to face a good bit of delay till the driver be actually 
written. But - a lot of hardware vendors just wouldn't accept this way due to 
trade secret / legal /etc issues. And but - if the hardware is rare, there 
may be as well that noone in the Linux community have any interest in writing 
the driver, even with the specs there in the open.
The second way would me much more acceptable to hardware vendors, but it is 
not so acceptable for the users. There may be a midway - part of the driver 
is binary, and part is provided in source and may be easily recompiled to 
match any kernel. NVidia comes to mind as an example.
The third way may face the same obstacle as the first way - trade secrets / 
legal issues.


  - Sensible defaults. You shouldn't dig around a ton of configuration
  files just to get something simple to work. You may tweak it later, but
  it should work out of the box. This is getting better, but it isn't there
  yet.

 IMHO it's quite there. Care to give an example?
XFree86 configuration. Change a monitor from 17 to some old 14 ( say your 
monitor is broken) and risk just damaging the 14 one or X failing to start. 
Or change a mouse from PS\2 one to USB one. The values are hardcoded into the 
configuration file leaving no way for autodetection. Stupidity at its best, 
pure and simple.

  - There should be BOTH GUI configuration tools AND CLI configuration
  tools.

 Right. There should be a way to automate everything. This is very
 important, and something many people forget. If the only proper way for
 me to add a user is through the vendor's users management interface
 (because this interface does some bookeeping and other things besides
 adduser) then the vendor should provide a command-line tool with
 equivalent power to the GUI tool.
Or a GUI tool with equivalent power to the CLI tool. I've tried to stress 
GUI.

  I use Mandrake too. While overall it is a very good distro, part of their
  Drak* tools are actually exactly what I've described - half-baked
  underdeveloped POS,

 Example, please?
DrakConnect. 

  sorry for being brutal. It's actually a lot easier to
  comprehend and tune configuration files by hand then to use these tools.
  Let's formulate it like the following : for anything 

Re: the problem with LINUX

2003-01-11 Thread Tzafrir Cohen
On Sat, 11 Jan 2003, Shoshannah Forbes wrote:


 * Dependency hell. Nothing like running a RPM (when you are not
 connected to any network) to get dependency errors about missing files.
 Or when you are using another machine (with a fast internet connection)
 to download RPM's and burn them on a CD- many times you have no way to
 know what dependent RPM's you need to download, so you can actually
 install the application on the other machine.

apt

 I know tools like apt
 that help, but they are no good for computers with no internet
 connection, and are horrible over dial up.

apt-get --recon --download-only install package

Will print what you need to download the files required to install
package. This gives you a nice list of URLs to go and fetch.

 I hope they improve. (ROX
 desktop  http://rox.sourceforge.net/  addresses this issue with
 application packages  similar to what can be found in mac OSX)

Nice, but totally misses the point. Dependencies are here to solve a
problem (I've just installed the program foo and it dosn't work can you
run it from the terminal? terminal? yuck. well, OK. double-click on
terminal icon, p-r-o-g-r-a-m-enter. I see something about failing to load
a library).

But RPM does not attempt to resolve dependencies. This is a GoodThing: rpm
should not be aware of the extra complexity in the existance of a
repository (more than one? an up2date server?) of packages and how exactly
to decide which of them to install.

That is what apt, urpmi and up2date are for.


 * Unless you work with the CLI (and even then sometimes) the file
 system is really cryptic.

The file system is always very cryptic. On every system.

 Where did that RPM install the application?

rpmq ?
kpackage?
rpmdrake?

Any information that is available in a command line program can be made
avilable to some GUI. In this case such GUIs exist.

 Where are my drivers? Where is the application I see an alias to in the
 kicker/ launcher/ whatever? The answer is not obvious and takes a lot
 of digging to find out.

drivers are not programs, and need not have menu items.

Debian has had a good menuing system for quite a while. This system was
later adopted by Mandrake. If a package wants to add itself to the menus,
it only needs to create one file and run the menu-updating procedures.
This will add it to any programs menu in the system.

However it seems that this system is not going to take over: gnome and kde
folks decided to have a standard of their own, and it has currently been
adopted by (at least) RedHat:

http://www.freedesktop.org/standards/menu/draft/menu-spec/menu-spec.html

Those files are in an XML format. So you can't easily rem-out lines there
with your favorite text editor.

 * Not good enough defaults in many applications, combined with too many
 configuration options. I have seen how this happens: the developers
 can't agree about some design issue, so they end up saying let's just
 make this a pref.

 * In general, too many things *have* to be configured, and configuring
 takes a lot of time. Yes, it is fun to tweak here and there, but I use
 my machine to get other things done, not to tweak all day.

Then configure debconf not to ask you that many questions.


 * Too much of the UI is legacy UI, which was originally used in
 another system to overcome a system limitation, and copied as is into
 linux, although linux does not have the original limitation at all, and
 could have used much better UI. This also leads to cluttered, confusing
 and unusable UI's. (see
 http://mpt.phrasewise.com/stories/storyReader$374

Just a comment: I read the article, and don't consider those examples good
ones. The worst one is the  suggestion to have recently-used lists contain
inodes instead of files-names (inode numbers wil be invalidated after the
next save ;-) ).

-- 
Tzafrir Cohen
mailto:[EMAIL PROTECTED]
http://www.technion.ac.il/~tzafrir


=
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]




Re: Binary configuration files as panacea to whatever ails Linux(was: Re: the problem with LINUX)

2003-01-11 Thread Amit Margalit
Hi,

On Sat, 11 Jan 2003, Omer Zak wrote:

 Why, yes of course, if you move to binary configuration files for your
 applications and make their format a trade secret and release obfuscated
 source files for the modules, which deal with the configuration files,
 then you in effect erect a tollgate and make it difficult for developers
 to develop competing configuration tools for your applications, and then
 you can make some money from configuration tools, time spent at
 installation, consulting fees, ad nauseaum...

So true, but we also have to beware of some types of text files... For
example, I am a big proponent of XML files as a very small scale
replacement for a database. It has all you need for a small scale DB.

But the problem with XML files is that they exhibit the same parsing
problems that text files have, along with shoddy readability, like binary
files.

That said, I probably should state that I personally prefer text files.
And the author of the software should work a little on making the text
file ordered reasonably.

Amit

-- 
Amit Margalit
=
Gee, Toto, I don't think we're in Kansas anymore.


=
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]




Re: the problem with LINUX

2003-01-11 Thread Shoshannah Forbes

On Sunday, Jan 12, 2003, at 01:03 Asia/Jerusalem, Alex Chudnovsky wrote:


And but - if the hardware is rare, there
may be as well that noone in the Linux community have any interest in  
writing
the driver, even with the specs there in the open.

Tell me about it :-( That is exactly the case with the DVD Decoder card  
on my 4 tear old laptop.
The best I got was a post by a developer back in 1991 saying that since  
there aren't enough people with this card for them to write the driver:
  
http://www.au.linuxvideo.org/lists/livid-dev/2001-February/ 
msg00222.html 

Sigh.

Mandrake 9 actually identified what it is (LuxSonor LS242), but I don't  
have anything who knows how to run or use it.


=
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]



Re: the problem with LINUX

2003-01-11 Thread Tzafrir Cohen
On Sun, 12 Jan 2003, Alex Chudnovsky wrote:

 On Saturday 11 January 2003 21:28, Tzafrir Cohen wrote:
 
  And re-install all of your programs. And hopefully you have your config
  saved.

 Talking about re-installation of Windows here, not Linux.

Me too. What about all of your configuration there? Or do you give it up
in advance?

If so: an equivalent (and faster) linux solution would be a kick-start
installation...

Basically, all this keeps LINUX as an OS for **experts**.
  
   IMHO, what is required to bring Linux out of the expert OS niche, is :
   - Vendor-supplied hardware drivers , no matter if binary or not, or at
   the very least open specifications. And please stop telling me all this
   nonsense about And what if vendor decides to stop supporting those
   drivers? And what if the hardware is rare and those who have it, can't
   write code? And why should we the users wait several years till the
   drivers are there? I personally prefer working hardware and then all
   these freedom principles, but YMMV.
 
  Anybody here with ADSL modems that are not supported under win98?

 At least if you happen to have recent Windows, you haven't to wait several
 years for Linux community to reverse-engineer the driver.

What is the market share of those unsupported OSs?

FYI, linux 2.0 is still maintained.

 
  What about the (pctel?) binary-only winmodem drivers that required you to
  move back to a sepecific, obsolete, and insecure kernel just to be
  connected to the internet? (I usually want to make sure I have a fixed
  kernel when I connect to the internet)

 Vote with your purse - don't purchase such modem, if the vendor doesn't have a
 driver for your particular distribution ( or for your particular version of
 Windows). Or purchase it and wait several years for the driver to be
 reverse-engineered ( this may never happen ).

The particilar cas I'm talking about is one in which the original vendor
no longer existed.

 
  Do you know how many people had to compile their kernel just because of
  those binary-only drivers?

 Blame kernel developers for that - the kernel has NO INTERFACE to accept
 binary third-party drivers.

I don't want to blame them for producing a better kernel. I don't want to
blame them for breaking unnecessary legacy cruft to remove some of the
existing bloat.

 In my book, it's a serious obstacle.
 IMHO, hardware vendor support for Linux is necessary for Linux to become
 mainstream desktop system.
 There are three ways for a hardware vendor to provide such support- either the
 vendor publishes the specs or it writes a binary driver or it writes an
 open-source driver.
 In the first case, the hardware would be supported in any Linux kernel, but
 you as a user have to face a good bit of delay till the driver be actually
 written.

Unless the venor actually writes the driver. Recall that it is the vendor
interested in selling hardware, just as much  (or even more than) you
interested in buying it.

This mean also that this vendor is the only one wit the full source to
your kernel (and thus the only one in a good position to give you support)

   - Sensible defaults. You shouldn't dig around a ton of configuration
   files just to get something simple to work. You may tweak it later, but
   it should work out of the box. This is getting better, but it isn't there
   yet.
 
  IMHO it's quite there. Care to give an example?

 XFree86 configuration. Change a monitor from 17 to some old 14 ( say your
 monitor is broken) and risk just damaging the 14 one or X failing to start.
 Or change a mouse from PS\2 one to USB one. The values are hardcoded into the
 configuration file leaving no way for autodetection. Stupidity at its best,
 pure and simple.

What about your distro's X config tools? Last time I tried, Mandrake's
DrakeX was useful enough. It is also run at install time.

   I use Mandrake too. While overall it is a very good distro, part of their
   Drak* tools are actually exactly what I've described - half-baked
   underdeveloped POS,
 
  Example, please?
 DrakConnect.
 
   sorry for being brutal. It's actually a lot easier to
   comprehend and tune configuration files by hand then to use these tools.
   Let's formulate it like the following : for anything that goes inside a
   distro, if it includes a configuration file, there must be some GUI tool
   to configure it. And this GUI tool should be INTEGRATED with another
   configuration tools.
 
  Mandrake's tools (almost all) run both in X and in full-screen terminal
  mode. All of them are availble from the main control panel and from the
  menus.

 And you still have KDE control center, GNOME control center and Mandrake
 control center, with overlapping functions. OK, there are tools in the Cooker
 enabling embedding drak* tools into the KDE control center.

The lapping functionalities are (IMHO) because the kde and gnome
control-centers should have nothing to do with system-administration.

 
  A GUI tool should not be 

Re: the problem with LINUX

2003-01-11 Thread Tzafrir Cohen
Hi

On Sun, 12 Jan 2003, Shoshannah Forbes wrote:


 On Sunday, Jan 12, 2003, at 01:19 Asia/Jerusalem, Tzafrir Cohen wrote:

 
  I know tools like apt
  that help, but they are no good for computers with no internet
  connection, and are horrible over dial up.
 
  apt-get --recon --download-only install package
 
  Will print what you need to download the files required to install
  package. This gives you a nice list of URLs to go and fetch.

 Ah, but the other computer is not running linux (it is not my machine).

On the computer that needs to download


  I hope they improve. (ROX
  desktop  http://rox.sourceforge.net/  addresses this issue with
  application packages  similar to what can be found in mac OSX)
 
  Nice, but totally misses the point. Dependencies are here to solve a
  problem (I've just installed the program foo and it dosn't work can
  you
  run it from the terminal? terminal? yuck. well, OK. double-click on
  terminal icon, p-r-o-g-r-a-m-enter. I see something about failing to
  load
  a library).

 How do they solve that problem? Application bundles have are the needed
 resources with them- in what looks like the user like a single file.
 You won't have that problem in the first place. I know- I have used
 this system myself (on osx). And it makes install and uninstall a snap-
 to install: just copy the file to wherever you want it to be.
 Want to run the application? Double click that single file .
 Want to uninstall? delete it, and if you want you can also delete it's
 preferences file from ~/Library/Prefrences

 This way, things are easy to understand: you always manipulate one
 object, what is going on stays clear, even for the humblest user. This
 is one of the things that makes Mac OS so friendly. Why not copy?

Easy to understand, but messy.

The whole point of the linux FSH (File System Hirarchy) standard is that
the packaging system is good enough to keep track of files. Therefore
there is no problem with cluttering /usr/bin and /usr/lib : you can
easily tell to which package a file from there belongs.

This is very useful what you think of backups:

On a proper system you need not backup /usr . You only need to backup /var
and /etc . With packages you'll also need to backup $packs_root/pack1/var,
$packs_root/pack2/data and $packs_root/pack3/user\ config


  But RPM does not attempt to resolve dependencies. This is a GoodThing:
  rpm
  should not be aware of the extra complexity in the existance of a
  repository (more than one? an up2date server?) of packages and how
  exactly
  to decide which of them to install.

 In theory- you are correct. in practice, this doesn't work, especially
 for the novice user- RPMs just fail due to dependency problems way to
 often.

 Think again about my Grandmother- she does download applications from
 the internet. Do you really thing she would be able to download and
 install a program on linux? Without someone holding her hand?

Again: this problem is caused because people use rpm directly.


 
  Where did that RPM install the application?
 
  rpmq ?
  kpackage?
  rpmdrake?
 
  Any information that is available in a command line program can be made
  avilable to some GUI. In this case such GUIs exist.

 And how is my Grandmother (who uses a computer) supposed to know this?
 And why do I need yet _another_ tool to find this out, and not from the
 WM/OS itself?

The above was information about RPM packages. Your grandmother naturally
need not bother about rpms, so the question should be how do I run this
program

why ir 'rpm -ql package | grep bin/' important here?

answered in the next item.


 
  Debian has had a good menuing system for quite a while. This system was
  later adopted by Mandrake. If a package wants to add itself to the
  menus,
  it only needs to create one file and run the menu-updating procedures.
  This will add it to any programs menu in the system.

 But how I, as a user, can tell from the menu where the application
 really is on my hard disk?

a. Why is that important?
b. look at the KDE shortcut? /usr/lib/menu/whatever ? KDE has a menu
editor, IIRC

-- 
Tzafrir Cohen
mailto:[EMAIL PROTECTED]
http://www.technion.ac.il/~tzafrir


=
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]




Re: the problem with LINUX

2003-01-11 Thread Shoshannah Forbes
Hi :-)

On Sunday, Jan 12, 2003, at 02:10 Asia/Jerusalem, Tzafrir Cohen wrote:

On Sun, 12 Jan 2003, Shoshannah Forbes wrote:


On Sunday, Jan 12, 2003, at 01:19 Asia/Jerusalem, Tzafrir Cohen wrote:



I know tools like apt
that help, but they are no good for computers with no internet
connection, and are horrible over dial up.


apt-get --recon --download-only install package

Will print what you need to download the files required to install
package. This gives you a nice list of URLs to go and fetch.


Ah, but the other computer is not running linux (it is not my 
machine).

On the computer that needs to download


You lost me here. The linux machine has no internet connection. The 
non-linux machine will do all the downloading and burn a CD to be used 
on the linux.
How can one know which files to download?


Easy to understand, but messy.


Isn't scattering files all over the place messy? Dunno. Sounds like 
trouble to me.

The whole point of the linux FSH (File System Hirarchy) standard is 
that
the packaging system is good enough to keep track of files.

Notice- the file system. Not the end user.


 Therefore
there is no problem with cluttering /usr/bin and /usr/lib : you can
easily tell to which package a file from there belongs


How? (for the middle ground user, not the super power user).



In theory- you are correct. in practice, this doesn't work, especially
for the novice user- RPMs just fail due to dependency problems way to
often.
snip



Again: this problem is caused because people use rpm directly.


* I guess I missed some basic stuff. Then what are RPMs for?
* I don't think that my Grandmother would be able to use graphical 
wrappers for APT- they are still too complex. No to mention that many 
applications do not appear in a repository.

The above was information about RPM packages. Your grandmother 
naturally
need not bother about rpms, so the question should be how do I run 
this
program

I know my mother wants to know where the application she installed is. 
She has asked me to show her how to find out (in Windows).

But how I, as a user, can tell from the menu where the application
really is on my hard disk?


a. Why is that important?


Why not? Maybe it makes me feel better?


b. look at the KDE shortcut? /usr/lib/menu/whatever ?


* I am not using KDE (and who says she will?)
* Why the user needs to go to a completely different place to find 
information about the object?
BTW, I admit that I still don't understand the logic that decides what 
to put in the user home directory and what to put in /usr/lib
* Again, linux has no middle ground between know nothing, don't care 
and super power user.

--
The News, Uncensored http://www.tellinglies.org/news/


=
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]



Re: the problem with LINUX

2003-01-11 Thread Shlomi Fish
On Sat, 11 Jan 2003, Eli Marmor wrote:

 Focus ALL the efforts to improve the compatibility issues:

 * kernel, device drivers, etc. I thinkthat the most important events
 for the friendliness of Linux in the recent years, were the launch of
 Linux 2.2, and the launch of Linux 2.4. And hardware is not the only
 compatibility issue related to the kernel: I think that the fact that
 NTFS is still only read-supported and not write-supported is severe.
 And there are many other examples.


I think Mandrake - latest versions is much better than what I previously
encounters. It detects and configures correctly all the hardware available
on the machine on several installation I head or experienced.

Furthermore, this is the i386 we are talking about. Like Moshe Zadka said
it is a collection of incompatible hardware components from different
vendors. Expecting it to work 100% of the time.

 * Better filters, from and *TO* Windows applications (for example,
 PERFECT filters for WORD, Excel, PPT, etc.). And support for MS
 protocols and formats (e.g. better emulation of Outlook in mail apps,
 so an organizational Exchange server can be used better by Linux
 users).


Agreed. Let me switch back. This is always a good idea.

 * Migration from the current ASCII CONF format to binary format or
 database-based format. There are zillion GUI's for Apache (just as an
 example), and none is good, because it's impossible to develop a GOOD
 GUI for an ASCII-based configuration file. I guess that everybody is
 going to laugh at the REGISTRY and other MS stuff, but handling
 ASCII CONF files, with VI/emacs, when you are a dummy, is impossible.
 (I know that many people don't agree with this point, but I don't
 want to start a new argument, although I have a lot of experience and
 knowledge in this field; The last line remains the same:
 COMPATIBILITY).


Over my dead body! Config files stay ASCII, so they can be edited by hand.

If you want to write an abstraction layer above Apache's configuration
that will be less capabale than what Apache provides - fine - do that.
Most users who'll use it won't edit the Apache configuration by hand
anyways. Those who do will soon be told that it will be hard for them to
switch back.

I want to keep the configuration files as ASCII because that way the
terminal is the computer and I can ssh into it and do everything I can do
with the most sophisticated X/KDE environment. This is the UNIX way of
doing things and regardless of how much new power users (Aunt Tillie will
never play with the configuration or install anything) are frustrated by
it, we must keep it this way.

 Zillions of development hours were wasted on wrong issues, such as
 KDE/GNOME (although we all enjoy them); Now is the time to start
 working on the real problems, before it's too late!


Relax, Eli - it's never going to be too late. Linus has so many bigot
users who use it because it is a superior system technically and won't
trade it for anything else. I encountered someone who used Linux to test
Infiniband (network devices of 2-3 GBits) cards and used g++/gcc, Emacs,
CVS and other tools and did not know a thing about ./configure;make;make
install or RPMs.

Whether we conquer the home computer market now, later or never makes
little difference, as Linux is already widely used and NT sucks in
comparison to it in much more ways that Linux does relative to it.
Children will have little problem using Linux instead of Windows. And they
will find editing obscure ascii files fascinating.

Microsoft spreads a lot of FUD regarding the supposed superiority of
Windows. But this FUD is becoming less effective on the general public who
see even not-too-intelligent users use Linux for quite some time. It all
depends what are you doing with Linux. I once upgraded half of my Mandrake
system by compiling the SRPMs. I'll doubt someone else who is not a
hard-core developer like me will need a newer package.

And I believe Microsoft wishes to switch to Linux where they have a well
defined POSIX, LSB, X and KDE or GNOME standard that has been around for
users, and they can build nice user-land applications over it, and get rid
of the over-engineered, over-complicated, under-understood, 50 million
LOCs and growing and pretty much dysfunctional operating system known as
NT. They can translate everything (consultants, certification programs,
services) to Linux, contribute about 5 developers in each one of its
layers for good measure (who'll develop open-source GPL/LGPL/BSD code) and
then have a nice stable interface that they can use for years, and compile
on every other UNIX or Linux version as well.

I'm not saying Windows is not superior to Linux in some respects. But as
a general rule programming for Linux is much less frustrating that with
the Win32 API, MFC, VB, COM or all the other Microsoft APIs, some of which
Microsoft can distribute for Linux as well. Once the Linux market is large
enough, we are going to see MS products for Linux, and 

Re: Binary configuration files as panacea to whatever ails Linux (was: Re: the problem with LINUX)

2003-01-11 Thread Eli Marmor
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:

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).

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, with any 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 the leveling 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.

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 develop the 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.

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.

-- 
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]