Slashdot Mirror


How to Fix the Unix Configuration Nightmare

jacoplane writes: "There's an interesting article on freshmeat talking how sorting out some kind of standard for configuration could really help Unix systems could be more user friendly. The article points out that since Apple has managed to build a quite usable system on top of NetBSD, it should be doable to do the same for open-source interfaces."

467 comments

  1. Odd by doru · · Score: 0, Flamebait

    I never thought I'd see "Linux" and "streamline" in the same sentence.

  2. First serious post on unix by kiwipeso · · Score: 0

    I'm making a unix from BSD, rewritting the kernel to an exokernel and replacing the GUI.

    Does anyone have any suggestions?

    --
    - Kaos games and encryption systems developer
    1. Re:First serious post on unix by Anonymous Coward · · Score: 0

      "Does anyone have any suggestions?"

      Too many for one post.

      But they can be summed up in one sentence:

      separate what is cool from what is useful

    2. Re:First serious post on unix by Anonymous Coward · · Score: 0

      Arghh! You're here too. I've seen your posts on MacSlash.com. I do think you need professional haylp. I mean, d0h.

    3. Re:First serious post on unix by macboy2k3 · · Score: 1

      Go away from the XFree86 and come up with a new display layer. Take notes from MacOSX. Throw in good configuration management, a standard way to package applications.

      What is your plan, I know I would love to come up with my own UNIX but I just don't have the time. You will want to come up with a standard API that is easy to use. Make sure you have a good web browser etc. It has to *just work* with support for multimedia.

      The hard part is doing this w/out breaking the current BSD layer. I would recomend starting with a linux variant vs a BSD only because I find most things compile better in linux because that is what everyone is using. But maybe that i just because I have had hard times in OSX

    4. Re:First serious post on unix by kiwipeso · · Score: 0

      The only professional help I've had was from Jef Raskin. But his ideas on an all text interface, getting rid of submenu mapping and no themes or skins were just irritating.

      However, I'm glad I emailed him before I wasted my money on his book.

      I see no reason why I should discuss improving unix, just because it's BSD, not Linux doesn't mean it's offtopic or pointless.
      Incidently,I'm planning to make this OS the best system you can get, I'm even prepared to use some gnu parts where it's worthwhile.

      If you don't want someone to make a better OS in 2 years than MS Farsite will be in 10 years, feel free stop me and my project.

      --
      - Kaos games and encryption systems developer
    5. Re:First serious post on unix by kiwipeso · · Score: 0

      I may come up with a new display layer, but in the meantime it will use X windows.
      It has good XML config management, Java2 is the standard way to package applications.

      Almost everything is a standard API, an exokernel uses the system as a collection of APIs that dynamically load at runtime.
      The system will have web browsing built in as web APIs, HTML rendering APIs , etc...
      Multimedia will support everything Quicktime 6 has and CD / DVD burning from a system API, utility and free (GNU) app.

      This OS will use the existing BSD OS for compatibility and parts of linux which are worthwhile porting. The main obstacle to linux use is the GPL.
      The new parts in Kaos are basically rewritten BSD, I'm changing the kernel to an exokernel and making a simpler GUI with a better interface.
      I want to make it faster, more stable and more scalable than OS X.

      --
      - Kaos games and encryption systems developer
  3. Apple + NetBSD? by RinkSpringer · · Score: 1
    since Apple has managed to build a quite usable system on top of NetBSD

    Uhrm... isn't OS X derived from FreeBSD? Or isn't this adressing OS X?

    1. Re:Apple + NetBSD? by the+MaD+HuNGaRIaN · · Score: 1

      Who cares which BSD? The point is using OS X is the most pleasant *nix experience to be had.
      Configuration of ever aspect is much nicer than anything else...although Mandrake has come a long way in that regard.

    2. Re:Apple + NetBSD? by Debian+Cabbit · · Score: 3, Informative

      Yes, it's based off of FreeBSD. FreeBSD 3.2-RELEASE IIRC.

    3. Re:Apple + NetBSD? by nycdewd · · Score: 2, Informative

      yeah, OS X is based on FreeBSD... and yes the person was talking about OS X in the blurb when he mentioned Apple.

      and yes OS X is freakin' nice. leave it to Apple to do what no one else has/can.

      flames? who cares? look at my email addy.

    4. Re:Apple + NetBSD? by Anonymous Coward · · Score: 0

      It isn't NetBSD, FreeBSD, even a real BSD, its a derivative of the Mach Kernel work, and is based on the NextSTEP operating system.

      There are a few FreeBSD, OPENBSD and NetBSD utilities in it but then again I think Solaris borrows this much from the BSD's.

      OS-X organizes its configuration via NetINFO

      http://www.apple.com/macosx/server/pdf/Understan di ngUsingNetInfo.pdf

    5. Re:Apple + NetBSD? by nycdewd · · Score: 1

      your link pertains to OS X Server, btw... just to be precise... (you seem to *ahem* care about precision)

    6. Re:Apple + NetBSD? by mAIsE · · Score: 0

      NetInfo is present on every variation of OS_X much like windows registry.

    7. Re:Apple + NetBSD? by BiggyP · · Score: 2, Interesting

      i too was under the impression that it was based upon FreeBSD and Mach rather than netBSD, quite consideribly different, to start with they even tried to poach Linus and get him writing their kernel, but he refused so they went with the FreeBSD project leader instead, [sarcasm]and haven't they been so helpfull to opensource as a whole with OSX and Darwin.....?[/sarcasm]

    8. Re:Apple + NetBSD? by Debian+Cabbit · · Score: 1

      Yes, the kernel is based off of Mach. The base of the OS besides the kernel is based off of FreeBSD.

      When you look under Aqua, its almost like its the illegitimate child of GNU(tools|Hurd to an extent, yet another Mach-based kernel) and FreeBSD. ;-)

      Darwin x86 even uses dpkg, which makes it Debian-alicious and makes it almost feel like what Debian/(Net)BSD are doing.

    9. Re:Apple + NetBSD? by mAIsE · · Score: 0

      if its based on FreeBSD where is /stand and the system administration utilities normally found on every other FreeBSD box ?

    10. Re:Apple + NetBSD? by Anonymous Coward · · Score: 0

      That it's based on *BSD (they've actually picked what they liked from most *BSD out there, and although it's officially freeBSD they're "tied" to, there was some talk about that the most code was from netBSD, esp. when it comes to networking; but that talk was long ago, so it might have changed) doesn't mean that it's supposed to include everything that comes with freeBSD... it's an OS of it's own, and should be viewed and "respected" as such.

    11. Re:Apple + NetBSD? by MaxVlast · · Score: 2

      I'm not sure how Aqua is the illegitimate child of GNU. The core of the whole shebang are the OpenStep libraries that Apple got with NeXT. The compiler is gcc, but that hardly implies parentage. In fact, A qua is the least third-party dependent component of the whole OS. And as Hurd uses the Mach in the same fashion as OS X, it hardly means that Mac OS is descended from the GNU effort. They're more akin to cousins.

      I'm always impressed at the GNU folk's clamor to make everything appear to exist at the grace of Stallman. What he did is good for the world, but he isn't the second coming that he so often portrayed to be.

      Also, all versions of Darwin (incl. Mac OS X) have apt available to them through the fink system.

      --
      There should be a moratorium on the use of the apostrophe.
      Max V.
      NeXTMail/MIME Mail welcome
    12. Re:Apple + NetBSD? by T-Punkt · · Score: 3, Informative

      OS X is based on Darwin and Darwin takes bits and pieces from all three *BSD, Mach, GNU (compiler) and a lot of other projects. E.g. most of the userland stuff is taken from NetBSD, you can read it up in the Darwin FAQ. Or look at the Darwin-contributors page which lists them all in alphabetical order.

      So saying "It's based on FreeBSD" is as wrong/as correct as saying "It's based on NetBSD".

      But since FreeBSD's J. Hubbard now works for Apple and FreeBSD doesn't run on the range of machines Mac OS X supports yet (but NetBSD does) expect OS X's roots to FreeBSD to be promoted more than its roots to NetBSD... (sigh).

    13. Re:Apple + NetBSD? by Anonymous Coward · · Score: 0

      There are a lot of FreeBSD-isms though .ipfw to name one.

    14. Re:Apple + NetBSD? by dkuntz · · Score: 1

      Keep in Mind... Jordan K. Hubbard is now an Apple employee working on the Darwin related stuff... and he is/was one of the lead people for FreeBSD... so even if Darwin wasn't mainly FreeBSD, it's safe to bet that a lot more FreeBSD related things will be added in.

      --
      OMG... I have a sig?
    15. Re:Apple + NetBSD? by Dahan · · Score: 2
      Well, FWIW:

      [greyfox:~] root# uname -a
      Darwin greyfox.azeotrope.org 5.2 Darwin Kernel Version 5.2: Fri Dec 7 21:39:35 PST 2001; root:xnu/xnu-201.14.obj~1/RELEASE_PPC Power Macintosh powerpc
      [greyfox:~] root# grep -l FreeBSD /bin/* /sbin/* /usr/bin/* /usr/sbin/* | wc -l
      12
      [greyfox:~] root# grep -l NetBSD /bin/* /sbin/* /usr/bin/* /usr/sbin/* | wc -l
      135
      [greyfox:~] root# grep -l OpenBSD /bin/* /sbin/* /usr/bin/* /usr/sbin/* | wc -l
      24

      Interpret that however you wish :)

    16. Re:Apple + NetBSD? by Anonymous Coward · · Score: 0

      Uh, you do realize that FreeBSD doesn't run on the PowerPC architecture, right?
      Apple used lots of pieces of the *BSDs, but any code that made assumptions about the CPU had to be based on NetBSD.

    17. Re:Apple + NetBSD? by Leimy · · Score: 1

      its called "porting". It happens all the time. BSDL doesn't say they have to tell you how they did it either. :)

    18. Re:Apple + NetBSD? by Adam+Bauer · · Score: 1

      The kernel is based on FreeBSD (on mach) but according to the NetBSD website Apple did use some of their userland stuff.

  4. If I remember correctly by Anonymous Coward · · Score: 0

    ... HP, SUN and DEC tried that once and again and
    failed everytime ...

    1. Re:If I remember correctly by hype7 · · Score: 3, Funny

      but like the article said, Apple managed it.

      Says something about everyone's favourite fruit company when they can manage what has previously been impossible :)

      -- james

    2. Re:If I remember correctly by Anonymous Coward · · Score: 0

      If its that important, move to MacOSX, I did and I'm very happy.

  5. I never thought I'd see "Linux" and "streamline" in the same sentence.

    --
    _________________
    EBAY SAFETY TIPZ!
  6. Yup by Anonymous Coward · · Score: 0

    Let's copy what Apple did.

    1. Re:Yup by curmi · · Score: 0

      Well, it would make a change from the usual Linux developers copying what Microsoft has done.

    2. Re:Yup by nycdewd · · Score: 1

      and why not? everyone copies what Apple does... this industry would be soooo much different if it were not for Apple. they innovate, the rest imitate.

      Bash/flame away, mod me down, i do NOT care. i speak the truth and if you don't like it, too bad. read my email addy.

    3. Re:Yup by hype7 · · Score: 1

      Let's copy what Apple did.

      I've got Bill Gates on the phone. He says he's got a job for you.

      -- james

    4. Re:Yup by kiwipeso · · Score: 0

      Rubbish, apple buys out the guys who innovated the stuff at their previous company.
      Xerox parc, Shareware developers, Cassady & Green (SoundJamMP = iTunes), freeware programmers.

      I'm now wondering when Apple will buy me out of the Kaos project, will OS XI be running from an exokernel BSD on a ramdisk core with a grid based semantic web?

      --
      - Kaos games and encryption systems developer
    5. Re:Yup by MaxVlast · · Score: 2

      Have you ever seen the PARC interface (from the Alto and the Star)? I have. It is nothing like the current WIMP interface that is so popular. Nothing! No overlapping windows, really strange mouse button concepts, much more. Apple licensed (not stole) certain parts of the interface and expanded greatly the rest. Things like window clipping (allowing overlapping), menus that are sane, the modernization of the scroll bar, and much more.

      If you're going to deploy a really cool sound system, doesn't it make sense to buy a proven core and put your own interface on it? SoundJam provided the playing engine, and Apple made it a powerful, friendly program.

      I don't see a problem there.

      --
      There should be a moratorium on the use of the apostrophe.
      Max V.
      NeXTMail/MIME Mail welcome
    6. Re:Yup by kiwipeso · · Score: 0

      No, I haven't seen it. Steve Jobs did.

      Apple hired the guys who invented most of it and did enough to make it work in the real world.

      iTunes is nowhere near as good as SoundJam MP was. I can't get iTunes 2.03 to work on OS X.1.2 and am using iTunes 1.1.1 now.

      I think things can be better done than Apple or Microsoft will ever let you experience. see link
      http://bbspot.com/news/2000/4/MS_Buys_Evil.html

      --
      - Kaos games and encryption systems developer
    7. Re:Yup by nycdewd · · Score: 1

      "Apple hired the guys who invented most of it and did enough to make it work in the real world."

      you are a revisionist chump without the slightest grasp of the real history of the GUI in question.

      you have richly demonstrated it twice now.

    8. Re:Yup by kiwipeso · · Score: 0

      You are a troll, and not any good at it.

      Apple hired a lot of Xerox Park employees after Steve Jobs took his tour of Xerox Park.
      These people worked on the Lisa and then the Macintosh.

      Perhaps you're just another slashdot OS zealot, or maybe you can't even be bothered to research your claims.

      --
      - Kaos games and encryption systems developer
  7. There are valid reason by evilviper · · Score: 4, Informative

    There are situations were I've wondered why they went off and created their own configuration file format just for that one application, but that's not too common. The problem with a universal format is that each application need to do different things. Typing ALL apps to one format would in many cases make configuration changes more difficult.

    i.e. instead of changing one thing, you have to make the change for every interface/terminal/etc it is running on. Just an example mind you.

    --
    Slashdot gets worse every day... Pipedot: News for nerds, without the corporate slant
    1. Re:There are valid reason by kiwipeso · · Score: 0

      The .plist format is an XML DTD.

      This is going to be better handled by Kaos in multiple ways of interfacing with a XML config file.
      See my comment on the sourceforge article for more...

      --
      - Kaos games and encryption systems developer
    2. Re:There are valid reason by walt-sjc · · Score: 2

      Which is why you use XML. Human readable, parsable via common code library, extensible (that's the X part...)

      The cool part is that one tool would be able to configure new things that didn't exist when the configuration tool was designed as long as the tool was well thought out and feature complete. Since the current crop of configuration tasks is quite diverse already, I see no reason why this wouldn't be doable.

      With this system, you would also never have to write your own GUI config tool for each app ever again. KDE, Gnome, Samba, Apache, Mozilla, Galeon, etc. could all dump their custom X / web-based tools if they desired (you could even have a web-based version of the tool.) Hell, you could even use this to configure the kernel.

      For migration, separate utilities could import / export from the new XML based files while all the software that uses config files get's updated.

      Some software such as Apache is already close as it is already somewhat xml like.

      The one thing I ask that of ANY config tool is that it NOT be like the Windows Registry, Don't put everything in one big-ass binary database. That's the most hostile, fragile pile of crap on the planet.

    3. Re:There are valid reason by MaxVlast · · Score: 1

      Dude, you're ripping that off of Mac OS X =)

      Oh, how fluidly ideas flow from one place to another...

      --
      There should be a moratorium on the use of the apostrophe.
      Max V.
      NeXTMail/MIME Mail welcome
    4. Re:There are valid reason by 4of12 · · Score: 2

      Which is why you use XML.

      Yes!

      The Software Carpentry project, though loaded with good intention, in my view made a mistake in rejecting a really promising looking project (TAN, I think it was called) that proposed to store configuration information in XML files.

      Based on all the experience with config.cache on UNIX and the problems with Windows Registry, there is a real opportunity for designing an improved system, one that is open, hierarchal and extensible.

      Perhaps there just needs to be a little shove over the bridge, in some sense. Something like a tool for converting

      ac_config_has_glibc=yes
      ac_config_glibc_version=2.1
      syntax into appropriate XML.

      There's a real trick, though, getting an easy-to-use XML hierarchal database for configuration to work well when local customization happens, when user/developers don't want to inherit the system wide default cached libraries and include files, for example. It can be done, but it needs to be done well.

      --
      "Provided by the management for your protection."
    5. Re:There are valid reason by Anonymous Coward · · Score: 0
      Which is why you use XML...

      <snort> Yeah, because XML is perfect for everything. You're missing the point. The point is not to use XML to solve all Unix configuration nightmares, but to use ANY format to unify the config system. XML is rather bad, because you have to remember a lot of schema crap, and it's a lot of typing, it's not the best solution.

      Some software such as Apache is already close as it is already somewhat xml like.

      Somewhat?? There is only 1 (one) popular Unix app that might translate to XML in a reasonable manner. I'd like to see you stuffing sendmail config into XML.

      The one thing I ask that of ANY config tool is that it NOT be like the Windows Registry, Don't put everything in one big-ass binary database. That's the most hostile, fragile pile of crap on the planet.

      Yeah, because in all the years (8) and all the versions (3.1 - XP, yes 3.1 DID have a registry) and all the machines (el cheapo white boxes to huge quad xeons), I've had a grand total of ZERO failures due to registry corruption. Frankly, I fail to see what the problem with the registry is, or with RegEdit for that matter. At least I know where to find config info for a particular app, unlike on Unix, where it could be in any of a dozen different places!

    6. Re:There are valid reason by kiwipeso · · Score: 0

      Nope, I'm describing OS X .plist

      Kaos hasn't finalised the config structure, but it'll be standard XML that ties in with the XML filesystem database and XML MIME database.
      This will also work with the XML semantic web help system and wizards written in Java, Perl or Javascript.

      I think Apple will ripoff me, not the other way.
      I'm the one who has the more sophisticated technology and no legacy reasons to restrict what can be done.

      --
      - Kaos games and encryption systems developer
    7. Re:There are valid reason by evilviper · · Score: 2

      There's no way an appication can be forwards compatible in such a scheme. Configuration for GNOME and KDE would be nothing like configuration for Afterstep & IceWM. How would it pull the word 'Wharf' out of the air? And all the options that go along with it?

      Obviously, every single section and applicable option would have to be put in the configuration file. That would seem fair enough, if a little bit large, except when changing one option changes all the applicable options to dozens of other options.

      At which point, the conf file would be so damn big and complicated, you wouldn't dare edit it by hand, and it would be just as easy to make it a self-configuring executable script.

      --
      Slashdot gets worse every day... Pipedot: News for nerds, without the corporate slant
    8. Re:There are valid reason by evilviper · · Score: 2

      Well first of all I've had over a dozen of registry failures, and I haven't even used Windows very much. It got better after 98 because of the backups, but sometimes that didn't work... I'd say the only reason you don't have registry problems is because some other failing component renders the system unusable before the registry has a chance to fail.

      At least in Unix, once you find the config file you know that all the configuration is done there. In the registry there may be 2000 entries for one application, under different key names, and worst of all you can't always even guess what each key does (MWORD3=0x0004332h). If it wasn't for the cryptic nature of the registry, shareware would fail as you'd only need remove the reg key, then the app starts from 0.

      With Unix, the location of the config files is in the man pages, they are much easier to read and understand than the registry, and you can actually fix things if anything ever goes wrong... Instead of just puking, apps will say there is a problem on line#16 of the config file and sometimes tell you how to fix it.

      Finally, with Unix you CAN easilly modify the configuration with simple text processing commands. I've made a shell script that works around a bug, and sticks my current dynamic IP address into my Napshare client. It may not sound like a lot but the IP address it fetches is from my router, not local.

      --
      Slashdot gets worse every day... Pipedot: News for nerds, without the corporate slant
    9. Re:There are valid reason by Anonymous Coward · · Score: 0

      > With Unix, the location of the config files is in the man pages, they are much easier to read and understand than the registry, and you can actually fix things if anything ever goes wrong... Instead of just puking, apps will say there is a problem on line#16 of the config file and sometimes tell you how to fix it.

      Well-behaved apps do this; many just say "Error in parameter" and leave that poor schmuck user scratching his head in mystery.

      The rest of your post is dead-on.

  8. Isn't Linux getting there ? by keshto · · Score: 2, Insightful

    These days, one can usually get away with the "./configure; make; make install; " routine and not need to worry so much. In any case, some of the charm of Linux does lie in your being able to tweak things. And Apple had the luxury of making one decision about software questions and implement them across all hardware.

    1. Re:Isn't Linux getting there ? by Anonymous Coward · · Score: 0
      In any case, some of the charm of Linux does lie in your being able to tweak things.


      In all honesty, that "charm" and it's relatives are what's kept me from installing linux either at home or at work. I'll use it as dummy terminal (e.g., in college) but I've never seen the joy in spending more than ten button clicks on an OS install and I've never dealt with config files. Except for OS X, I've never installed anything on a *nix OS and configs and similar BS is the main reason why. I'd love to try Linux with more depth but I use an OS to get things done, not to mess with the OS.

    2. Re:Isn't Linux getting there ? by Anonymous Coward · · Score: 0

      You mean I have to type just to install a program? What for? If it's always the same three command sequence, I might as well click on an icon, right?

    3. Re:Isn't Linux getting there ? by mrfiddlehead · · Score: 1
      Ha! You know that /.'s days are numbered when a comment is modded up to 4 - Interesting but the author of said comment is talking about something completely different, and obviously has not read the article in question.

      The problem with the /. moderation system is that it exists.

      --
      :wq
    4. Re:Isn't Linux getting there ? by Anonymous Coward · · Score: 0

      The whole point of this is to avoid having to do things like this. You guys will never really get it.

    5. Re:Isn't Linux getting there ? by schuster · · Score: 1

      "The problem with the /. moderation system is that it exists."

      no, the problem isn't that /. moderation exists. the problem is that it tries to rate the quality of posts. as far as I'm concerned, there are two kinds of posts: on-topic posts and off-topic posts. the rest of it is just someone's personal opinion.

      --
      --- Don't ever trust a woman until she's dead- B.B. King
  9. I know the answer to how-to-fix-it. by Anonymous Coward · · Score: 0

    CHARGE FOR YOUR WORK!!!

    If there is good enough revenue people will get paid for doing boring stuff like unify config files.

    Except for a few exceptions most open source software is useless, mainly because boring or time consuming stuff simple don't get done. This include good user interface design, documentation, in-depth testing (both beta testing and class unit-testing). Producing software is not just a matter of writing code.

  10. They OWN the hardware! by xtremex · · Score: 1

    Do you realize if Linux only had 50 types of hardwaree to choose from, it would be a dream to configure. Shit, even WINDOWS would be a dream to configure if they adhered to a HCL.

    --
    If you're not a Liberal in your 20's, then you have no heart.If you're still a Liberal in your 30's you have no brain.
  11. YaST & Sax by JohnHegarty · · Score: 1

    I think if all linux distros' could agree on one set of configuration programs , like YaST and Sax on SuSE, then it could be the first time to biting into the Windows market.

    Everyone who uses windows knows about the control panel , no matter how stupid they are. Why can't like have a similar system on all versions ?

    1. Re:YaST & Sax by Andy.T.BOFH · · Score: 1

      >>"Everyone who uses windows knows about the control panel , no matter how stupid they are. Why can't like have a similar system on all versions ? "

      You forgot to prepend this sentence with "unfortunatly"

      --
      01011001011011110111010101101101011101010111001101 1101000110001001100101011000100110111101110010011
    2. Re:YaST & Sax by Anonymous Coward · · Score: 0

      because there is no consensus. The KDE project will probably come up with a set of tools, and at the same time Gnome will do the same.
      Actually, we need a independant lib with plugins for qt, gtk, gnome, kde, motif, windowmaker etc

    3. Re:YaST & Sax by Anonymous Coward · · Score: 0

      Perhaps Yast and Sax are great (I'm Slackware all the way), but some of the things SuSE does with them is ridiculous: We have two SuSE-based servers at work and neither one even has an rc.local; it's been "replaced" with any number of SuSE-only config files used by the above mentioned programs.

      SuSE. You can keep it.

  12. Least resistance to making Unix user friendly by Commienst · · Score: 0

    Just be picky about what friends it chooses!

    --

    I am into the copy and paste.
  13. Maybe the author should try webmin by evil_roy · · Score: 4, Informative

    Have a look. webmin

    1. Re:Maybe the author should try webmin by Anonymous Coward · · Score: 0

      Maybe you should try a Mac? Comparing webmin to Apple's GUIs is blasphemy.

    2. Re:Maybe the author should try webmin by Anonymous Coward · · Score: 0

      Webmin is a perfect example of how developers completely misunderstand what the word "usability" means.

      Webmin is no solution to this problem. Period. One solution has already been created; OSX. It is that which all makers of Linux distributions should be aiming to emulate and exceed.

      Ximian are the only people that I have seen who are on the right path as far as understanding and implimenting usability guidelines is concerned. Red Carpet and Ximian Setup Tools are real, actual progress towards a Grandma Friendly® Linux Distribution.

      Its pointless to say that "its already easy", "put down the crack pipe". The current crop of distros fail miserably as far as usability is concerned.

      Simple indicators like the cursor changing to indicate that something is loading are not implemented uniformly, font management is simply absent. And its not like there are examples of how things should be done, its a simple matter of copying what already works.

      The menus in, for example Mandrake 8.1 are absurd, and behave in a non intuitive manner. The window managers are cumbersome and fragile.

      There are so many faults; but the main one is that there is no one addressing usability as an issue of religion.

      Linux itself is rock solid. The interface to this rock solid base can be likened to the face of a prostitute, attempting to look like a fine lady, with caked on and cracked makeup, bright red garish lipstick smeard across her mouth, staggering through the streets of New York. Clothes shabby and torn, mismatched, stolen or bought from second hand stores. Her hair is badly cut, and dyed like some refugee from the Punk era. She is on crack. She is confused.

      Anyone can have her.

      As long as you are prepared to comingle your work with a dirty, disheveled confused, disorganized whore, who always puts out, but who never fully satisfies.

      Had to go AC with this, for obvious reasons.

    3. Re:Maybe the author should try webmin by ethereal · · Score: 1

      So, you're comparing Linux to Christina Aguilera in the Moulin Rouge video? I really think she looked worse than that, but OK, if you say so...

      --

      Your right to not believe: Americans United for Separation of Church and

  14. Don't confuse Syntax and Standards by osolemirnix · · Score: 5, Insightful
    I like the idea, such a tool would certainly be nice. Unfortunately the article only focuses on the Syntax part, the file format and access. I would think that is rather easy, use some kind of XML and you're already halfway there.

    The part that makes such a system really useful however, is a standard agreement of which information is stored and what it means. This is where the Windows Registry falls down. And Unix is even worse, because all it has is some common soft-of-agreed-upon shell variables, like $EDITOR etc.
    Apple is able to do this better because they set the standards for the OS (even more than MS). The can have one central "registry" for something like default associations of MIME-types with particular applications and define an API so every application can use it and a user doesn't have to change his settings in his browser AND his mail client AND his ftp client, etc.

    Given the diversity of the unix crowd, the latter seems difficult to me. Maybe they can include it as part of LSB for a start?

    --

    Idempotent operation: Like MS software, wether you run it once or often, that doesn't make it any better.
    1. Re:Don't confuse Syntax and Standards by j7953 · · Score: 5, Interesting
      I would think that is rather easy, use some kind of XML and you're already halfway there.

      No no no. XML is not the magic solution to all problems in communication, data storage and usability. Using XML does have many advantages for some applications, like communicating over the internet, but I don't see how

      <DocumentRoot> /some/path </DocumentRoot>

      is so much more usable than

      DocumentRoot /some/path

      The only thing XML will do if widely used for configuration files is make maintaining them harder for those who'd like to do that by using shell scripts or simple text editors. As a very basic example, using XML makes configuration files harder to grep. The above example might also be written like this:

      <DocumentRoot>
      /some/path
      </DocumentRoot>

      This is completely legal XML, but if you grep DocumentRoot this file, you'll get the following result:

      <DocumentRoot>
      </DocumentRoot>

      which is probably not what you wanted.

      --
      Sig (appended to the end of comments I post, 54 chars)
    2. Re:Don't confuse Syntax and Standards by Elbereth · · Score: 2

      There's nothing stopping you from setting up most configuration files in that same un-grep-able way.

      For example:

      ACL James \
      Bob \
      Mary \
      Lauren

      Most UNIX programs will even ignore whitespace in the config file. I would say that your problem with XML is not related at all to XML, but that you have a problem with a specific style.

      IMHO, a standardized way of writing config files is definitely needed. XML would fit the bill, especially since it's so popular. Writing a new configuration language might be fun (and even a seemingly better solution), but every single person running Linux would have to learn that configuration language. Not everyone needs to learn XML.

    3. Re:Don't confuse Syntax and Standards by Chainsaw · · Score: 2

      I don't see how

      <DocumentRoot> /some/path</DocumentRoot>

      is so much more usable than

      DocumentRoot /some/path


      Try to nest several DocumentRoots which have different properties. If we ignore those possibilities: XML is a standardized format. There are several usable parsers for almost every platform out there. Having an Apache-style file follows no specific standards. Parsing will also be a bit more difficult.

      The grepping problem that you mentioned is really a non-problem: use xmlgrep, xmltree or similar utilities to find the data note that you are looking for.

      --
      War is one of the most horrible things a human can be exposed to. And one of the worlds largest industries.
    4. Re:Don't confuse Syntax and Standards by affenmann · · Score: 1

      > The only thing XML will do if widely used for
      > configuration files is make maintaining them
      > harder for those who'd like to do that by using
      > shell scripts or simple text editors.
      > As a very basic example, using XML makes
      > configuration files harder to grep.

      Obviously, you would have some standard XML tools. There are, for example, grep-like tools for XML. In fact, I guess this will make maintaining the scripts easier, since such tool take the actual document structure into account.

      Anyway, thank you for pointing out that XML is not the magic solution (can't say this too often). Though in this case it might help to simplify things as you would only need one set of tools to deal with all config files.

    5. Re:Don't confuse Syntax and Standards by tkrotchko · · Score: 1

      After working with the registry for even a little while, its obvious MS wanted to consolidate the large amount of .ini files from apps and the OS, but in my opinion, they had something far more important in mind:

      The registry is a place to hide information.

      Also, its in a proprietary format, so you can't use any kinds of standard tools to work on it. And the tools for backup and recovery and arcane.

      There's no reason the registry couldn't have been a flat file, but I believe the intent was to make it obscure, access problematic, and generally give it an air of "caution, touch the registry and you have to reinstall windows".

      Its the worst part of windows in my opinion.

      --
      You were mistaken. Which is odd, since memory shouldn't be a problem for you
    6. Re:Don't confuse Syntax and Standards by Anonymous Coward · · Score: 0

      The grep utility has the C flag for a reason (there is also the A and B flags too). So when you grep -C DocumentRoot you'll get:

      <DocumentRoot>
      /some/path
      </DocumentRoot>

      Which is exactly what you wanted, if you RTFM.

    7. Re:Don't confuse Syntax and Standards by hacker · · Score: 1
      This is completely legal XML, but if you grep DocumentRoot this file, you'll get the following result:

      <DocumentRoot>
      </DocumentRoot>

      And if you man grep you'll see the -C switch, which you can then do:

      grep -C2 DocumentRoot MyFile.xml

      <DocumentRoot>
      /some/path
      </DocumentRoot>

    8. Re:Don't confuse Syntax and Standards by rbeattie · · Score: 3, Insightful

      I agree - though I think that XML is a GREAT idea for *nix to use, the format is just too flexible to just say "use XML" and leave it at that. There needs to be some sort of standard way of using XML as a registry so it's not a complete nightmare.

      Other variations:

      <DocumentRoot>

      <setting name="someSetting">SettingValue</setting>

      <someSetting>SettingValue</someSetting&gt ;

      <someSection value="SettingName">settingValue</someSettin g>

      <someSection>
      <settings>
      <settingGroupName>Test</settingGroupName& gt;
      <setting name="SettingName" value="settingValue" />
      </settings>
      </someSection>

      </DocumentRoot>

      Etc. The variations on hierarchies and values are endless and is my main beef with XML. It sometimes can be too flexible and people who are using XML (especially newbies) make it overly complex or not suffieciently complex enough for expansion. In other words, this needs to be thought out.

      But again, XML is a good idea. I hope it gets adopted as a general mechanism in *nix, but not in some random way...

      -Russ

      --
      Me
    9. Re:Don't confuse Syntax and Standards by pivo · · Score: 1

      I disagree. If you've got XML configuration files you can use a generic XML file editor that uses the DTD of the file to understand the rules of the particular configuration file it's editing. Of course it won't understand the symantics.

      You'll also find many tools to parse XML that will make searching and modifying XML files much easier and more robust than doing so with the standard grep/awk/sed/perl tools (of course you can parse XML with perl too.) Some such standard tool/library could be provided so that any application's configuration file could be read.

    10. Re:Don't confuse Syntax and Standards by Isle · · Score: 1

      You even forget the good ones

      <someSetting>
      <value>
      someValue
      </value>
      </someSetting>

      or my personal favorite:
      <someSetting value="someValue"/>

      I hate xml bloat, besides xml is not usefull for ANYTHING!
      It is only what you put into it.

    11. Re:Don't confuse Syntax and Standards by walt-sjc · · Score: 2

      How about:

      Notice the "/>" syntax defining the the item as an empty element.

      Really, you don't need to make things more complicated than they need be. This uninformed defeatist attitude will solve nothing.

    12. Re:Don't confuse Syntax and Standards by walt-sjc · · Score: 2

      Ahh crap. stupid slash deleted my example, but the point remains (as others have shown) that there are alternate syntaxes that work and are simple.

      For the other XML naysayers, styleguides solve most issues, and since the files would normally be generated by code, it's a non-issue.

    13. Re:Don't confuse Syntax and Standards by Hooya · · Score: 1
      well, XML seems like the right choice to me. granted XML is not the magic bullet but something that needs a good framework to make it that magic bullet. XML inherently doesn't do it for you. good DTD parsers could be used to easily build a generic configuration tool. you want to configure apache? well, parse the config XML and the DTD, you got your current settings and all the legal settings... you want to configure samba? parse the config XML and the DTD... configure DNS?... and so on. maybe we throw in another XML which describes what each tag does -- comments to the user type thing. the main benefit, as i see it, would be a common set of rules for all configuration files. if you look at fstab and then printtab, there is pretty much nothing in common except that they're ascii files ;)

      maybe we do that in a two step process. use the DTD/XML thing right now with a little postconfiguration script that reads from those files and spits out a config file in it's current form. that way, apps continue working. as the apps get updated, we stop using the postconfig utility to generate say, fstab from fstab.xml etc...

      oh, someone mentioned that you couldn't grep for meat, you could definitely get another set of tools that work the same way with xml. i have been thinking about this possibility for a while. it's cool other were in the same state of mind. worth thinking over.

    14. Re:Don't confuse Syntax and Standards by Anonymous Coward · · Score: 0
      Actually your concerns are not valid. You seem to forget that by using XML it would be trivial to create a script that converts the "unreadable" format into something more grep-friendly. For example it could convert


      <DocumentRoot>/some/path</DocumentRoot&gt ;


      to


      DocumentRoot: /some/path


      So then, all you'd need to do for your scripts to work would be to stick this parser in the pipe ala:



      % cat config.xml | unXMLit | grep DocumentRoot

      DocumentRoot: /some/path


      And voila!

    15. Re:Don't confuse Syntax and Standards by CynicTheHedgehog · · Score: 1

      It's not random if you have a DTD. Some formats may be more advantageous for various applications. Hence, web.dtd, lib.dtd, dev.dtd, , X.dtd etc, that are used by http.xml, ftp.xml, ld-so-conf.xml, usb.xml, pcmcia.xml, x-video.xml, x-sound.xml, etc.

      I would never put all of this stuff in the same file--it would be too huge and unmanageble. Instead, I'd use a combination of directory structures and XML files...like /etc/dev/usb.xml, or /etc/x/video.xml. Then, if you wanted, you could have /etc/xml.xml that contained details about which files are stored where.

    16. Re:Don't confuse Syntax and Standards by j7953 · · Score: 2
      And if you man grep you'll see the -C switch, which you can then do:
      grep -C2 DocumentRoot MyFile.xml
      <DocumentRoot>
      /some/path
      </DocumentRoot>

      Yes, but how does that help me if I want to process the data filtered by grep in a script which expects a single line as input? Anyway, several other posters have pointed out the existence of grep-like tools for XML, so I think I should take a look at those before I continue to claim that using XML config files makes scripted maintanance harder.

      --
      Sig (appended to the end of comments I post, 54 chars)
    17. Re:Don't confuse Syntax and Standards by Anonymous Coward · · Score: 0
      Umm.. do you actually know XML? XML is only as flexible as your DTD allows. Define a rigid DTD with few to none optional features and all the problems you mentioned go away. Like you say:

      > There needs to be some sort of standard way of using XML as a registry so it's not a complete nightmare.

      This is what DTDs are for. And DTDs in XML are mandatory.

    18. Re:Don't confuse Syntax and Standards by rbeattie · · Score: 2


      I totally disagree with this. We need a generic XML settings document that is both flexible and standard. Having 30 different DTDs is just making maintenence and support a nightmare.

      If all the tools used the same settings file format (expressed in a DTD) then GUI tools, remote administration and general sanity would all benefit. I've got better things to do to have to learn a new file type every time I want to tweak a new tool.

      We're talking about pretty basic stuff here. Setting names in a hierarchy with values. Using separate files and XML makes it both standard and much more flexible and recoverable which is one of the main complaints about the Registry. It's just too big and cumbersome.

      -Russ

      --
      Me
    19. Re:Don't confuse Syntax and Standards by rbeattie · · Score: 0, Flamebait

      I'm sorry, but fuck you, you obnoxious arrogant AC. Don't be a fucking language lawyer. I'm talking about making one XML spec that pleases everyone as a registry. Yes, this would be a DTD, good for you.

      By the way, you asshole, DTDs aren't mandatory. I can create and parse an XML document quite fine without knowing its DTD. Do YOU know XML?

      What a fuck head.

      -Russ

      --
      Me
    20. Re:Don't confuse Syntax and Standards by Anonymous Coward · · Score: 0
      There's no reason the registry couldn't have been a flat file...

      Huh? I don't think you know what the registry is. It is one of the most generic, tree-based storage mechanisms, with fast inserts, updates, retrievals and deletions of all kinds of numeric, ascii and binary data. You try doing THAT with a flat file!

    21. Re:Don't confuse Syntax and Standards by CynicTheHedgehog · · Score: 1

      I'm not saying have a DTD for every major tool. I'm saying have a DTD for logically similar components. The DTD for each would act as an interface, and the XML would then be an implementation. You could write an object model layer that serialized/unserialized XML documents into objects and worked from there, using a well-defined series of DTDs.

      That's the proper way to do it with XML. If you just want to store heirarchies of values, use LDAP.

    22. Re:Don't confuse Syntax and Standards by Anonymous Coward · · Score: 0

      "Yes, but how does that help me if I want to process the data filtered by grep in a script which expects a single line as input?"

      The point is to remove exactly that sort of fragility. You script should use a XML parser to get a value out of an XML doc.

      This is one of the classic examples of making simple things harder in order to complexthings easier. It's a trade-off, and it's not a perfect one.

    23. Re:Don't confuse Syntax and Standards by Anonymous Coward · · Score: 0

      Yes, but how does that help me if I want to process the data filtered by grep in a script which expects a single line as input?

      Jeez... I can think of at least a dozen ways to do this. What business do you have writing scripts for a Unix box if you lack the creativity to even pull off this little piddly thing? The beauty of Unix is that the fundamental building blocks for scripting have been laid out, it is up to your own creative talents to mold a new tool. Forget taking a look at the "XML tools": take some classes in automata and Unix and learn how to string together fundamental tools into something powerful and flexible.

    24. Re:Don't confuse Syntax and Standards by k4m3 · · Score: 1

      Sorry but when you work with XML files, you don't do this with grep but with a true XML parser, which is an extremely reliable way to read a config file. Furthermore, a flat format can't handle nicely lists and dictionnaries: XML allows to nicely format that.

      XML has drawbacks, but what you point is not.

  15. XML as a starting point perhaps? by andykuan · · Score: 5, Interesting

    In the writer's outline section he has a few bullet-points that scream "XML!" (I'm paraphrasing here):

    1. A core system to handle parsing, verification, etc. -- If app configs were based around XML, you could use any of a dozen XML parsers out there.

    2. A configuration format description file. -- Hmmm, sounds like a DTD...

    3. OS-neutral. -- XML was meant to be portable from the get-go.

    The other items lined up pretty well with what XML is all about as well. Anyway, that said, I'm not so sure this'll ever happen since, from a developer's point of view, it's a lot simpler to slurp in a bunch of lines from a text file with fgets and chop it up into words than to have to somehow link in a third-party XML parser.

    1. Re:XML as a starting point perhaps? by roundand · · Score: 2, Informative

      Other points in the article that scream XML to me:

      * A key element would be the configuration format description file. This would list the configuration options for a given piece of software, giving for each one the name, type (boolean, list, string, etc.), options, category (for subsections within the config), and help text (short and long).

      This looks very much like XML Schema to me - it can specify all these data types, including enumerations, and a schema-aware XML editor (eg XML Spy in the Wondows world - anyone know the best Linux option?) will prompt you with help-lists of valid elements and attributes, or list of enumerated values. Doesn't do help text by default, but has an expansion mechanism (xsd:appinfo) for adding application-specific to be added to a schema.

      * It all needs to be language, distribution, and operating system neutral, so as to avoid turning off any potential software developers who might find it useful.

      I don't know of any programming language or O/S that doesn't have an XML Parser (many don't yet have XML Schema support, but if you stay off specifying default values you don't need that at run time). And XML is good for natural languages - UTF 8 or UTF 16 from start.

      There aren't many formats that are equally machine and human readable, even fewer that allow document struture and data typing, and still fewer that have open or free implementations on practically all platforms.

    2. Re:XML as a starting point perhaps? by Twylite · · Score: 3, Informative

      First, XML is not a silver bullet. The thing this article screamed was not "XML" but "API". Define the application programming interface for a library, and stop thinking that each application must directly access the native data.

      Second, XML Schema is a definition for an XML language, not a document described in a particular XML language. XML is a meta-language, you have to MAKE a dialect using a schema or DTD first. XML Schema could not, for example, include primitive types for IP addresses (very common in config files), or validation constraints for integer values.

      Third, XML parsers are no-where near as ubiquotous as you would like to believe. To date there are no (zero, zip, nada, nothing) fully compliant XML parsers. Read the XML spec. carefully and understand just how many IFs and BUTs there are to creating a parser. Xerces and MS's parsers are the closest, but still have a number of problems. Expat-derived parsers happily handle a large subset of XML, but not everything. A vast number of parsers out there ignore the DTD, which means they cannot handle entities (which is a big issue).

      Finally, there is nothing intrinsically human-readable about XML. This is common bullshit sprouted by those who haven't actually considered the requirements for human understanding. A simple .ini-style line delimited key=value is the most readable and understandable (from a psychological viewpoint) configuration format.

      --
      i-name =twylite [http://public.xdi.org/=twylite], see idcommons.net
    3. Re:XML as a starting point perhaps? by cobar · · Score: 2

      What really should be done is to throw a wrapper around the XML parser so that you can do something simple like value = getpref(name) without specifying anything more than the config file location and file format (although probably better handled using a header at the top of the file.

      XML is great as a data interchange format, but it's a pain for humans. Compare /etc/passwd in it's current form to an xml representation. Which is easier to understand at a glance? Simply throw a comment at the top of the file explaining what each field does and the non-xml version works extremely well. Writing scripts to work on flat files is much easier than xml, as is searching.

      Really, there's no reason why the config library can't handle multiple file schemas according to developer or user preference.

    4. Re:XML as a starting point perhaps? by khuber · · Score: 5, Insightful
      In the writer's outline section he has a few bullet-points that scream "XML!"

      I'd agree that XML is a good basis, but "XML" really doesn't provide much by itself. It's just a file format that is human readable. If you just use XML with a bunch of proprietary tags, your own XML language so to speak, you really don't gain much over the existing different syntax config files.

      An automated tool has no clue what your ipaddress (or whatever) tag means at all. You need to provide additional context for tools to understand the semantics of the configuration data. To make configuration files understandable in a more intelligent sense, you need to either restrict the tags you use to your own configuration language, or you need to provide metadata of some sort.

      Why is this intelligence necessary? Well there are all sorts of dependencies and relationships in configuration files. You might want a GUI to let you know if you change something that may break another setting, and so on. Plus ideally you would only allow legal values to be set. Data typing could be done with W3C XML Schema Definition Language, or RELAX NG schemas.

      Which brings me to RDF, which I think would be better suited to this task than XML alone. If you use RDF (see http://www.w3.org/RDF/ ) you make it much easier to have a self-describing format that tools can do more intelligent things with than raw XML. While I don't think RDF, DAML+OIL, et al is enough to create a Semantic Web as Tim Berners-Lee is hoping, it _is_ a step in a higher-level direction that will support more intelligence in processing data.

      Mozilla already uses RDF for various configuration files and I'm sure there are other applications that do too. Mozilla has a whole bunch of stuff about their RDF here.

      XML is just a tree of "stuff" in human-readable format. RDF lets you set up properties and relationships in the data in a standardized way. I don't have a brilliant example to prove this to skeptics, but really it is a better way to represent a lot of types of data you want to be able to query. There are many knowledge bases, expert systems and other query engines already out there using RDF and even higher-level languages like DAML+OIL.

      -Kevin

    5. Re:XML as a starting point perhaps? by Florian+Weimer · · Score: 2

      If you want to do basic syntax checking at the XML level, you end up with configuration files which are no longer human readable. Imagine mapping all those sendmail rulesets to XML! There's no better way to reduce readability, and you cannot use all the existing HOWTOs and books.

    6. Re:XML as a starting point perhaps? by Anonymous Coward · · Score: 0

      Lessee...

      ...

      How exactly is something like this too difficult to parse? Wouldn't it simply take someone making a simple unix command-line utility to do it, parsing it either via DOM or SAX, that could also have XSLT file(s) thrown in as well?

    7. Re:XML as a starting point perhaps? by costas · · Score: 2
      I have played around with this exact idea in the past. I got a semi-working prototype working, but then gave up as the huge amount of work needed became apparent. Here are the highlights:
      • Create a parallel configuration system depository somewhere outside of /etc, like /conf. That depository should only contain system and meta-system level stuff.
      • Keep application-specific configurations in the application directory.
      • Get rid of the ages old /usr, /bin, etc, etc. Blatantly copy OS X. OS X has solved most of the metadata management issues already.
      • Maintain a separate, read-only hierarchy where programs can still get their config files (/etc), libraries (/usr/lib, etc), etc.
      • Have a system deamon that reads the new metadata repositories and creates the legacy ones for the legacy parts of the sytem.
      XML is not that bad if you are not creating it or reading by hand (but the cool part is that you can fix it by hand as a last resort). And it's scriptable as hell. Check out the Gnosis XML utilities in Python (disclaimer: I did contribute to this project). XML_Objectify for example allows you to build a full object tree of the XML repository, complete with attached methods (on a per *tag* basis) and everything. Creating a /etc file from an objectified XML one is a cinch that way.
    8. Re:XML as a starting point perhaps? by foobar104 · · Score: 2

      In the writer's outline section he has a few bullet-points that scream "XML!"

      I spent most of last week screaming "XML!" myself.

      In a lot of cases, XML can be convenient for either humans or for parsers, but not both. I'm working on a web front-end to a database-like program that outputs XML, and you would not believe the headaches that come from trying to parse poorly designed XML. And I turned myself positively crosseyed trying to read the XML output as I debugged my programs, but at least in my case once I get my parser written I won't have to deal with the XML stuff myself anymore. If we're talking about system configuration files, these are things that humans have to deal with every day. Speaking personally, that would drive me apeshit.

      Basically I've formed this opinion: in situations where data will be parsed by a general purpose parser that has no built-in knowledge of that data format, XML can be a good thing if used properly.

      But that's not what we're talking about here. Configuration files aren't free-form self-describing data. They're very specific, and the programs that read them will have intimate knowledge of their formats.

      To see my point of view, just compare setting up an Apache instance to setting up a Jabber instance. I have the Apache httpd.conf syntax pretty well memorized-- keyword whitespace value-- so I can set up Apache very easily. But for pretty much the same job, Jabber uses a needlessly complex XML config file. Every time I want to make a change, I have to pull out the API reference!

      That's just wrong.

    9. Re:XML as a starting point perhaps? by Graff · · Score: 2

      I'm not saying that XML is perfect, but I do know that Apple's MacOS X uses XML files a lot to store configurations. The file type is a .plist (property list). It works out very well for MacOS X because there are specific graphical editors which hide the implementation from the user. The format is also very human-readable, so you can easily go in by hand and edit the plists if need be.

      Here is an example plist:

      <?xml version="1.0" encoding="UTF-8"?>
      <!DOCTYPE plist SYSTEM "file://localhost/System/Library/DTDs/PropertyList .dtd">
      <plist version="0.9">
      <dict>
      <key>Search Node PlugIn Version</key>
      <string>Search Node PlugIn Version 0.5</string>
      <key>Search Policy</key>
      <integer>1</integer>
      </dict>
      </plist>

      Here is the DTD file which shows how the plists are formatted:

      <!ENTITY % plistObject "(array | data | date | dict | real | integer | string | true | false )" >
      <!ELEMENT plist %plistObject;>
      <!ATTLIST plist version CDATA "0.9" >

      <!-- Collections -->
      <!ELEMENT array (%plistObject;)*>
      <!ELEMENT dict (key, %plistObject;)*>
      <!ELEMENT key (#PCDATA)>

      <!--- Primitive types -->
      <!ELEMENT string (#PCDATA)>
      <!ELEMENT data (#PCDATA)> <!-- Contents interpreted as Base-64 encoded -->
      <!ELEMENT date (#PCDATA)> <!-- Contents should conform to a subset of ISO 8601 (in particular, YYYY '-' MM '-' DD 'T' HH ':' MM ':' SS 'Z'. Smaller units may be omitted with a loss of precision) -->

      <!-- Numerical primitives -->
      <!ELEMENT true EMPTY> <!-- Boolean constant TRUE -->
      <!ELEMENT false EMPTY> <!-- Boolean constant FALSE -->
      <!ELEMENT real (#PCDATA)> <!-- Contents should represent a floating point number matching ("+" | "-")? d+ ("."d*)? ("E" ("+" | "-") d+)? where d is a digit 0-9. -->
      <!ELEMENT integer (#PCDATA)> <!-- Contents should represent a (possibly signed) integer number in base 10 -->

    10. Re:XML as a starting point perhaps? by ethereal · · Score: 1

      Although I agree with your point that there are no perfect XML parsers as yet, that's really a straw man, isn't it? You don't need every nuance of the XML spec to handle typical config file contents - app settings, UI settings, etc. Maybe I'm unimaginative, but I don't see much that you couldn't do with existing parsers that are available on all *nix platforms.

      Not that I'm that much of an XML booster either - it just seems to substitute one set of problems for another in my experience. I prefer the API approach, with perhaps the addition of having each app provide a config plugin that understands the app's file format and can provide a standard interface to a higher-level config manager GUI.

      --

      Your right to not believe: Americans United for Separation of Church and

    11. Re:XML as a starting point perhaps? by Steveftoth · · Score: 2

      Writing scripts to do simple things with flat files is much easier, but doing complex things is very hard.

      With XML you can add new fields to a /etc/passwd file without breaking the existing structure of the file. (assuming the dtd is written correctly) And the old scripts that you wrote will still work. XSLT can transform XML if you want to reformat the data easily.

      Basically, XML is a pain to use if your only tool is a text editor. If you use xml based tools then it's not that bad, and much more powerful.

    12. Re:XML as a starting point perhaps? by iabervon · · Score: 2

      XML is almost certainly the right solution for structured data, but is a major pain for unstructured data. If you don't have at least two levels of sections which actually need to be sections (i.e., they get repeated or items in them have different meanings than identically named items in other sections), then XML is needlessly verbose, and therefore unfriendly for humans to deal with.

      I think the right choice of standards would be an outer layer of RFC822 headers (which everyone has a parser for already, and which is trivial to implement anyway), with values which may be XML documents with predefined schemas, if there are structured configuration items.

      RFC822 headers have the advantage of being as compact as possible, easier to parse (although there are libraries anyway), easier to use after parsing (it's a map of keys to values, nothing complicated like a tree; compare SAX to "get(key)"), and just as standard.

      It'd probably be worth putting a header on top which let you choose the character set, and it would be good to include something to say which program (or library) the file is supposed to configure, and where the help/format file is.

      If keys were required to not include '=' (treated the same as ':'), and to start with a letter or number (or the line would be ignored as a comment), this would take care of many existing config files.

    13. Re:XML as a starting point perhaps? by DarkFyre · · Score: 1

      >Third, XML parsers are no-where near as ubiquotous
      >as you would like to believe. To date there are no
      >(zero, zip, nada, nothing) fully compliant XML
      >parsers.

      That's not true! /dev/null is a fully compliant XML parser.

    14. Re:XML as a starting point perhaps? by ttfkam · · Score: 2

      And don't forget feature creep. If you were to add a parameter to your config file, will it break your scripts? Very likely if they have delimited values such as found in /etc/passwd. And I challenge anyone who has worked in Linux for more than two years to tell me with a straight face that config file structures never change. Or, even worse, you don't add what you need to the config file because it will break all of the scripts and utilities out there.

      Parsing XML means that you can write out all parameters verbatim that you don't care about, but add new items easily as my parent post mentioned.

      --

      - I don't need to go outside, my CRT tan'll do me just fine.
    15. Re:XML as a starting point perhaps? by ttfkam · · Score: 2

      Sendmail rulesets are your example of something that is already human-readable?

      Bad example dude.

      --

      - I don't need to go outside, my CRT tan'll do me just fine.
    16. Re:XML as a starting point perhaps? by Florian+Weimer · · Score: 2

      They are, but only in isolation. Getting the big picture is indeed a difficult task.

    17. Re:XML as a starting point perhaps? by Disoculated · · Score: 1

      TCL has all of the points above and has been around a lot longer than XML. It's also much faster to parse, and you can even 'precompile' your larger config files to be read into the application as a binary.

      It's also very very easy to read and has powerful pattern matching and scripting capabilities.

      Don't even need any silly 's, or /'s.

    18. Re:XML as a starting point perhaps? by extrasolar · · Score: 2

      In the writer's ouline section he has a few bullet-points that scream "Lisp!" (I'm paraphrasing here):

      1. A core system to handle parsing, verification, etc. -- If app configs were based around Lisp and symbolic expressions, you could you use any of the dozens of parsers/interpreters out there.
      2. A configuration format description file. Of course, lisp functions that are not defined give errors.
      3. OS-neutral. Lisp source code is just a text file and requires only an interpreter or sexp parser.

      The nice thing about it is that you don't necessarily need a full lisp language. Even if that is desirable, the lisp derivative Scheme is quite minimal for the task.

      It seems to me that you want a scalable format. By this I mean that complexity should only increase with need. Lets say the developer only needs a bunch of key/value pairs:

      (define docroot "/usr/share/doc/")
      (define fg-color black)
      (define bg-color white)

      A little macro magic could turn that into any syntax you prefer.

      If the needs of the software go up, lisp can be readily used as an extension language (see emacs, gimp, xchat, etc.)

      The advantage over xml is that you don't get that horrible syntax (or we all don't have to get special XML editors that are useless for anything else), you don't have to have the pains of XML compliance (unicode, doctype declarations or schemas, and well formness), and I think this is far more straight-forward than XML parsing (with all of XML's little quirks such a them elements with a backslashes in them like <blah/> and attributes and character entities (&amp; &lt; etc)).

    19. Re:XML as a starting point perhaps? by alext · · Score: 1

      Yes! That would be great.

      And, of course, LISP can neatly add logic in there too, a major step forward seeing as how XML doesn't even have references (well, unless you want to fiddle with XPointers).

      Set your own configurations for docked/undocked, refer to colour schemes defined elsewhere...

      Flaw is that it's just too straightforward!

      --
      Compiler (n): Tool for discarding information.

    20. Re:XML as a starting point perhaps? by Joseph+Vigneau · · Score: 1

      <i>An
      automated tool has no clue what your ipaddress
      (or whatever) tag means at all. You need
      to provide additional context for tools to
      understand the semantics of the configuration
      data. To make configuration files
      understandable in a more intelligent sense,
      you need to either restrict
      the tags you use to your own configuration language, or you
      need to provide metadata of some sort. </i>
      <p>
      This is where XML Namespace comes in handy. For example, "someone" can create a namespace that contains the ipaddress schema definition, which can then be used in your app's XML configuration file:
      <br>
      <pre>
      &lt;myapp&gt;<br>
      &lt;server&gt;<br>
      &lt;net:ipaddress&gt;<br>
      &lt;net:protocol&gt;tcp&lt;/net:protoc ol&gt; <br> &lt;net:host&gt;127.0.0.1&lt;/net:host &gt;<br>
      &lt;net:port&gt;8877&lt;/net:port& gt;<br>
      &lt;/net:ipaddress&gt;<br>
      &lt;/server&gt;<br>
      &lt;/myapp&gt;<br>
      </pre>

  16. Ganymede? by Futurepower(tm) · · Score: 2


    Is Ganymede a starting point for a complete centralized configuration tool?

    --
    Bush's education improvements were
  17. I'm not an OS X user but... by Tony.Tang · · Score: 2

    I recall some discussion earlier on /. that talked about how OS X-on-NetBSD wasn't as clean as many thought. In fact, it turned out that the /etc was pretty much bare except for some file structure that was like a Windows registry (except for it was for Mac). Can someone verify this?

    1. Re:I'm not an OS X user but... by nycdewd · · Score: 1

      i can verify that there is no connection between OS X and NetBSD, there is a connection between FreeBSD and OS X...OS X is based (note i say "IS BASED" and not that OS X "IS") on FreeBSD...

    2. Re:I'm not an OS X user but... by Spencerian · · Score: 2, Interesting

      What you appear to be describing is NetInfo, a Windows-registry-like component that more or less functions mostly in place of certain typical UNIX config files. It's a NEXTStep legacy, but, unlike the Registry, it somewhat sidesteps an otherwise nightmarish way to handle OS configuration. And, it doesn't scare the bejeezus out of you when you look at it. The Netinfo Manager application will be used commonly by most experienced UNIX users to reactivate the root process, which Apple switches off in OS X for security/safety reasons.

      OS X is based on FreeBSD, albeit an older version. It's pretty damned nice for an older kernel.

      --
      Vos teneo officium eram periculosus ut vos recipero is.
    3. Re:I'm not an OS X user but... by Spencerian · · Score: 2, Informative

      One other thing--OS X has its own file directory structure--User for usr, for instance, and a few other changes. Functionally, this is FreeBSD, but Apple's directory parallels allow mere mortals to grasp its naming. Doesn't make for smooth going for experienced UNIX heads, but a trip to the Terminal shows that what they need is indeed there. There are just symlinks to the common directories, I believe.

      OS X is also one of the very, very few *nix systems that is CASE-INSENSITIVE.

      --
      Vos teneo officium eram periculosus ut vos recipero is.
    4. Re:I'm not an OS X user but... by Migx · · Score: 1

      it's not switched off, I can be root anytime I want in my osX. all I gotta to is sudo /bin/tcsh.

      --
      Migx
    5. Re:I'm not an OS X user but... by Anonymous Coward · · Score: 0

      Accually it is the filesystem that is case insensitive.

    6. Re:I'm not an OS X user but... by T-Punkt · · Score: 2

      > i can verify that there is no connection between OS X and NetBSD

      Oh, yeah. From the Darwin FAQ (OS X's core)
      http://www.opensource.apple.com/projects/darwin/ fa q.html

      "Q. How does Apple intend to work with other BSD groups?
      A. [...] We already synchronize our code periodically with NetBSD for most of our user commands ..."

      No connection, sure...

    7. Re:I'm not an OS X user but... by blank · · Score: 1

      i had no idea about Netinfo... i did it the hard way:

      sudo passwd root

      --

      bah. start over

    8. Re:I'm not an OS X user but... by Anonymous Coward · · Score: 0

      If you look down in the terminal, you will in fact see /usr which is NOT the same as /User. /User is where all the users home directories go. /usr is still Unix System Resources.

      Cheers.

    9. Re:I'm not an OS X user but... by norwoodites · · Score: 1

      This faq is outdated, they changed to FreeBSD when Jordan came to Apple and some of the other FreeBSD guys.

    10. Re:I'm not an OS X user but... by psxndc · · Score: 2
      This is a slightly incorrect statement. Case sensitivity is dependent on the filesystem format. To keep compatability with OS 9 (for users that upgrade), OS X can be installed on a HFS+ partition. To maintain that compatability though as a consequence, it is case insensitive. OS X on a clean install presents you with an option to install as a HFS+ install or a UFS (Unix File System) install. The UFS is a case sensitive file system. I think the default install on a machine you get from Apple right now is an HFS+ version. However, if you are doing a complete reinstall or new install and want "classic" mode, I'd recommend setting up two partitions, one UFS for OS X and one HFS+ for your older apps.

      psxndc

      --

      The emacs religion: to be saved, control excess.

    11. Re:I'm not an OS X user but... by bnenning · · Score: 2
      I'd recommend setting up two partitions, one UFS for OS X and one HFS+ for your older apps.


      I wouldn't do that, unless you really need case-sensitivity for some reason. HFS+ is the "preferred" format in OS X; it has much better performance, and deals with forked files better.

      --
      How to solve most of our problems: 1.Lots of nuclear plants. 2.Cure aging.
    12. Re:I'm not an OS X user but... by Anonymous Coward · · Score: 0

      For some reason many OS X apps just don't work on a UFS system. Until UFS is supported (as in it really works), most people should stay away from it.

      HFS+ supports UGO permissions, and case insensitive is probably the better way to go anyway (except for ported Unix apps).

    13. Re:I'm not an OS X user but... by psxndc · · Score: 1
      So then why even have UFS available? I'm not being snide, I really want to know. I prefer case sensitivity and I don't own a mac, I've just been gathering information for when I buy an iBook this summer. I was under the impression that UFS is preferred if you absolutely know you won't be using OS 9 software. Can you point me to a link that discusses the pros and cons? Thanks.

      psxndc

      --

      The emacs religion: to be saved, control excess.

    14. Re:I'm not an OS X user but... by bnenning · · Score: 2
      Can you point me to a link that discusses the pros and cons?


      Apple's tech note #25316 has a brief discussion. They make you sign up for an account before you can access it, but here's the relevant part:

      When you install Mac OS X you can choose to optionally erase and format a hard disk or volume using the Mac OS Extended (HFS Plus) or UFS (UNIX File System) format. (In some cases you may be required to erase the selected volume.) Unless you have a specific reason to use UFS, you should use the Mac OS Extended format since it provides a more familiar experience to Macintosh users.

      While I don't have a source, I recall reading a comparision that found that HFS+ was much faster than UFS. Also I've been at a Mac OS X presentation where Apple engineers stated that because HFS+ was the preferred filesystem, a lot more work goes into it than UFS.
      --
      How to solve most of our problems: 1.Lots of nuclear plants. 2.Cure aging.
    15. Re:I'm not an OS X user but... by nycdewd · · Score: 1

      you moron... there's no connection, as i said.

      but no, you had to make a fool of yourself yet again.

      nice work.

    16. Re:I'm not an OS X user but... by jacrawf · · Score: 1
      The only real problem with HFS+ (other than it's case-preserving-insensitivity) is that while it's fast, it isn't very good. HFS+ is the only filesystem I've ever used where I quite literally had to manually do three fscks in a row before filesystem errors stopped showing up.

      Fortunately it fscks fairly quickly, but that's no excuse. I don't feel that I should have to fsck three times in a row upon every boot just to feel safe. I have a feeling this is the reason MacOS (9 especially) sometimes has the reputation of making files disappear randomly, or having other constant filesystem problems, even after a 'successful' disk repair.

      There's nothing wrong with UFS (a.k.a. FFS) anyway. It's a rock solid filesystem that's been through it all and is still living to tell the tale. It beats the snot out of ext2; with softupdates it's nearly as fast as ext2 mounted async (the default) and, unlike ext2, it guarantees you'll survive a fsck without complete filesystem corruption. The only filesystem I like better is BeFS.

      Hey, Apple! Implement BeFS why don't ya! It supports lots of extended metadata very easily so you can keep your TYPE and CREATOR codes if you want them, plus it's a journalling filesystem which means your users won't get impatient waiting for their systems to come back up if, for some reason their Macs ever crash. Sounds like a really good idea, doesn't it?

    17. Re:I'm not an OS X user but... by T-Punkt · · Score: 1

      Actually, you are the moron here and made a fool of yourself yet again.

    18. Re:I'm not an OS X user but... by Anonymous Coward · · Score: 0

      How long before we can expect a real filesystem (ala ext3, reiserfs, XFS, JFS, etc) on Mac OS X? Come on guys, this is a problem Linux solved already. Don't tell me Mac OS X (the uber-Unix) hasn't solved it too!

    19. Re:I'm not an OS X user but... by jacrawf · · Score: 1
      You seem to be under the mistaken assumption that only journalling filesystems are 'real filesystems'. ;-) I beg to differ, actually. While I have no great love for sitting through an fsck, I do have a much stronger hatred for losing data. I've never actually lost data due to, for example, a power failure on a UFS/FFS disk. (Well, actually, I have lost a little bit of data on FFS disks where I had softupdates turned on, but at least I survived fsck. No corrupted files, too. Yay.)

      On the other hand, I've lost files and experienced corruption in yet others with certain journalling filesystems. That's less fun than just having your whole filesystem hosed and having to restore from backups. It can take weeks to track down the files that look like they encountered a Sledge-O-Matic. (It's not a slicer or a dicer, a chopper or a hopper!)

      Journalling is no substitute for a good, fast synchronous filesystem, kids.

  18. JavaBeans solves all these problems by p-n-wise · · Score: 2, Informative

    JavaBeans does everything that this article wants now. It suports introspection, special field editors... Then you can build general purpose editors for any type of user. Couple this with javaspaces, for storage. JavaBeans is a shipping technology, but JavaSpaces is still a bit dodgy last time I looked (6 months ago.) Sun have spent alot of time getting this right, there is no good reason te reinvent it.

    --
    I am the NUL and the DEL, the beginning and the end.
  19. GConf by Metiu · · Score: 2, Informative

    As it has been already said in a comment on [fm], the answer is GConf:
    it has the ability of configuring apps and has the option of using a DB or XML as a backend.
    Start porting!

  20. No by autopr0n · · Score: 1

    Its based on NeXT. With a NetBSD compatablity layer.

    --
    autopr0n is like, down and stuff.
    1. Re:No by nycdewd · · Score: 1

      YOU are wrong.... see www.apple.com/macosx

    2. Re:No by MaxVlast · · Score: 4, Interesting

      Do you know what that means? "Based on NeXT" doesn't mean anything. NeXT was a company.

      Mac OS X is based on OpenStep 4.2, which, itself, was based on NEXTSTEP 3.3. NEXTSTEP is a BSD operating system running on a modified version of the Mach microkernel. OpenStep is a API specification and a set of libraries that conforms to that API. OpenStep 4.2 (the operating system) is an implementation of those libraries on top of NEXTSTEP.

      When Apple bought NeXT, they planned to build on top of OpenStep. They first produced Rhapsody for PPC and Rhapsody for Intel. They were the same OS running on two hardware platforms. On top of Rhapsody, Apple put the Blue Box, which was a Macintosh compatibility environment. At no time was there any need for a "BSD compatibility layer." It was all software running on top of BSD. Apple then killed Rhapsody for Intel (and the Yellow Box, but that's tangential.)

      What was left was released as Mac OS Server.

      Mac OS X 10.0 and Mac OS Server 10.0 (and further versions) are also BSD operating systems. They have the Cocoa (OpenStep) and Carbon libraries available, and the imaging system is called Aqua (replacement for Display PostScript.) At no point in any of this is there a need for any UNIX compatibility layer, as it is all real UNIX. The only compatibility environment necessary is for Mac OS 9 (Classic.) Only certain older applications (Carbon) can run natively on OS X, so for running non-Carbon apps, Mac OS 9 is run in a compatibility environment (similar, but not the same as VMWare.)

      I hope that clarifies things.

      --
      There should be a moratorium on the use of the apostrophe.
      Max V.
      NeXTMail/MIME Mail welcome
    3. Re:No by rsfinn · · Score: 1
      ... the imaging system is called Aqua (replacement for Display PostScript.)

      Uh, no, the imaging system is called Quartz. Aqua is the name of the UI. The Window Manager uses Quartz to render the Aqua interface.

    4. Re:No by MaxVlast · · Score: 1

      Sorry, my mistake. You're correct -- Quartz is the implementation of Display PDF and all sorts of cool other features.

      --
      There should be a moratorium on the use of the apostrophe.
      Max V.
      NeXTMail/MIME Mail welcome
  21. Other side to this by larien · · Score: 4, Insightful
    This is something I think would help linux become more widely accepted, but there's more to it.

    I was thinking this morning how I hadn't udpated my Apache server in a while, and wondering whether I should apt-get the latest version (Apache is kind of important for security, as it's the only open port on my system from the internet). However, I've done various tweaks to config files which would get overwritten if I accepted the Debian standard file, but I don't want to miss out on any new settings that could be important. I know I can do a diff, but that's effort I'd rather not have to go through.

    This kind of situation is where a registry-like interface is useful; the install program just has to do a quick 'if-not-exist then add' to any new settings and leave the rest alone (or ask if you want an overwrite of all settings, with appropriate disclaimers).

    This kind of thing is difficult to do in a flat file split into different sections (if there isn't a concept of sections, you can just tag the setting on), but trivial in a registry structure, especially when the tool (dpkg-upgrade/apt/rpm) has to handle all the different file formats. However, linux/Unix users would rebel en masse if the registry got inflicted on them (with damn good reason! I like being able to fix problems from single user mode using vi!), but some form of layer between the text file and settings may provide the best of both worlds (programmatic ease and editability). apt/dpkg/rpm could use the interface to add/modify settings without splatting your custom tweaks while still adding the new required settings.

    Unfortunately, we're starting from a difficult point, with thousands of applications with many different requirements for their settings. Hopefully we can get some covergence over time.

    1. Re:Other side to this by Psiren · · Score: 2

      If you are worried about security, why would you let *any* automated install upgrade your configuration file. Thats what the diff ability is there for, so you can see what's changed and make the necessary modifications yourself. If you haven't read up on the new changes, why they're there and what else they affect, then just putting them in is a Really Dumb Idea (TM).

    2. Re:Other side to this by spitzak · · Score: 2
      The "registry-like" solution would be *many* *tiny* files. This would use the file system as the registry and you could still fix things with vi.

      The main reason this is not done (by MicroSoft either) is the awful performance of the typical file system that assummes files are several K in size on average.

      There are some new file systems that address this. Also a "special" file system like /proc could solve the problem.

  22. Apple fixed it... by Adnans · · Score: 5, Insightful

    Because there is only one captain on the ship, Apple. Good luck fixing it in the Linux world. The only way it might have a chance of working IMHO is if such a proposal gets included the Linux Standard Base. Here's a bold idea, why not copy the way Apple does it??? No need to reinvent the wheel...

    -adnans

    --
    "In short: just say NO TO DRUGS, and maybe you won't end up like the Hurd people." --Linus Torvalds
    1. Re:Apple fixed it... by Elbereth · · Score: 1

      If RedHat does it, then most other distributions will follow. It really does make sense. I'm sure that Slackware, with its aversion to using the simple SysV init system, will stick to doing things the old way, but who cares? People who want to do it the old way will have a choice.

    2. Re:Apple fixed it... by Anonymous Coward · · Score: 0

      No need to reinvent the wheel? OS X does it several times, on various levels.

      Why not copy the way Apple does it? Because it would cease to be a UNIX anymore. OS X can work with many UNIX apps with minimal porting, but that compatibility is really a one-way street. Its kernel may be BSD, but its primary API and applications are far from it.

    3. Re:Apple fixed it... by praedor · · Score: 2

      We're talking about the way config files are organized, designed, placed. There is NOTHING about the way Apple does it with OS X that cannot be copied in *nix. The config file system can be done in ANY arbitrary way, with config files scattered around EVERY directory on the system so long as the app that uses it knows where it is. There is no reason at all that copying the nice way OS X does it would break or be incompatible with anything on any BSD or *nix system.

      --
      In Bushworld, they struggle to keep church and state separate in Iraq as they increasingly merge the two in America.
    4. Re:Apple fixed it... by iabervon · · Score: 2

      Because the way Apple does it is totally unlike what any existing applications use and what any present users know how to use. OS X is already mystifying anyone accustomed to UNIX and/or MacOS by being significantly different from either.

      "Hey, if you learn this totally new and unmotivated system, it will be user-friendly" is not a solution unless you're MicroSoft or Apple and have users who are used to having the system changed on them regularly (but, admittedly, each time to something consistent).

    5. Re:Apple fixed it... by Anonymous Coward · · Score: 0
      OS X is already mystifying anyone accustomed to UNIX and/or MacOS by being significantly different from either.

      Ah, but just think - the few people who've used NeXTStep have very little mystification to deal with.

      Like... me...

    6. Re:Apple fixed it... by alexjp · · Score: 2, Interesting

      Speaking as a longtime UNIX (BSDi and Linux) user who's been running a production Mac OS X server for about six months, I can say that OS X is a breath of fresh air, simply for the Server Admin tool.

      It's actually faster and easier to use the GUI to add, configure, and start a virtual web server than it was the old way (edit httpd.conf, apachectl restart). Some settings cannot yet be controlled using the GUI, but for those, I can easily edit the same old config file, the same way I've been maintaing Apache for years.

      To be fair, Apple hasn't implemented everything in a way that's immediately intuitive (i.e. system startup script locations). And the documentation of some things (like system startup scripts) is nonexistent. But things improve with every release, and already I prefer maintaining OS X server to a linux box. (This was not the case until last fall's 10.1 release, though.) -Alex

    7. Re:Apple fixed it... by namespan · · Score: 2

      It's actually faster and easier to use the GUI to add, configure, and start a virtual web server than it was the old way (edit httpd.conf, apachectl restart)

      Can you elaborate? I'm still doing this the old way on OS X....

      1) I add host names to netinfo
      2) I add the virtual host info to httpd.conf
      3) I apachectl restart

      --
      Libertarianism is rich wolves and poor sheep playing gambler's ruin for dinner.
    8. Re:Apple fixed it... by alexjp · · Score: 1
      It may be because I'm using name-based virtual hosts that I've never needed to add anything to netinfo. I just use the "configure" option for the web server in Server Admin, add a new website (using the same IP but a different name/address/directory path). When I finish adding the new one, Server Admin asks if it should restart the web server for me.

      Server admin actually generates a separate config file (/etc/httpd/httpd_macosxserver.conf) that lives side by side with the actual httpd.conf, and somehow the Apple version of Apache is smart enough to read both.

      Note: I'm not looking at Server Admin right now, so the exact commands might be slightly different.

    9. Re:Apple fixed it... by jually · · Score: 1

      Could it be that Apple is better at fixing Unix than Bell Labs and every one and corporation that's ever tried to twiddle with it?

      Could it be that their way can work with any blend of Unix, not just the BSD family?

      Could it be that the solution to Linux's problems is a Darwin port away?

      Noooo...?

      --
      Trying to fix Windows is like trying to graft arms and legs onto hamburger...
  23. WebMin...not the Right Thing but damn good by Spoing · · Score: 4, Informative
    I've mentioned this before, so I'll just quote myself;

    1. Get Webmin. Setup Webmin. Use Webmin. Show Webmin to all other administrators. Teach them Webmin. Eventually, when the time is right, show Webmin to management. Drive home the idea that Webmin is a one-stop-shopping, simplified, and robust server management web app that anyone can grasp (if not master). Point out that Webmin supports Unix (including OSX) but not Windows servers (except for Windows with Cygwin). Over time, point out that on the server side, the few remaining Windows servers take much longer to manage and are less reliable then the multitude managed under Webmin.
    2. www.webmin.com/webmin

    The complaints about Webmin is that it isn't perfect. It doesn't solve the desire for a universal config mechanism or encourage the editing of files directly. OK. It doesn't. Yet, it exists now and is a lifesaver when using multiple UNIXs. Anyone who wants to know what any Webmin module is doing probably also knows how to use find -cmin, ls -lart, or read the module itself since they tend to be in Perl.

    When a universal config comes along, I'll use it and guess what -- it'll work with WebMin.

    Webmin might not be the right thing, but it is good enough for a vast number of uses.

    --
    A firewall can not protect you from yourself. Turn off what you do not need. Do not use the firewall to do your work.
    1. Re:WebMin...not the Right Thing but damn good by SealBeater · · Score: 2

      I wasn't going to get into this, but webmin is and always has been a security nightmare. Go search bugtraq for webmin bugs. Everything from insecure files in /tmp to session hijacking. Not to mention that you often find yourself in a simular trap found in package management, once you use it, you better keep on using it as webmin mangles any pre-existing conf files.

      Also, ease of use often equals lack of knowledge. I am sure somebody is gonna mod me down for being a troll or flamebait, whatever. I learn the apache conf syntax, I only have to learn it once. That knowledge is portable across any systems I would be installing apache on. I would bet someone who can do it by hand can do a better job then someone who can only do it if they have webmin installed.

      I also hope no one is implying that a generic gui based configurator can handle anything but the most basic and common configurations. If I (using the apache example) install and implement a little known module, mod_witch or mod_log_multicast, are you saying that webmin can handle that? Well, go in and configure it by hand you say? Well, I can't because webmin has mangled the config and if it hasn't, it still is not going to be aware of the changes.

      Rant on: what is wrong with vi? Seriously? Or pico or whatever editor you want to use? What is wrong with taking 5 minutes out of your day and actually reading the sample.conf that comes with almost all software? Not only can you then go in and actually have the power to do what you want, with confidence and not having to rely on another piece of software or hope that a module exists for you to do what you want, you actually will have increased the amount of knowledge that you have and make yourself that much more valuable.

      I would love to meet an administrator who could configure everything and get it working...oh sorry, cavent, said admin can only do it with webmin or something simular. Right, I can see that being a showstopper in a job interview.

      SealBeater

      --
      -- Its survival of the fittest...and we got the fucking guns!!!
    2. Re:WebMin...not the Right Thing but damn good by Spoing · · Score: 2
      Like rants? So do I.

      True: things like package management can be a problem -- any automated tool can be. It's not the same as a bare-metal hands-on I-wrote-the-code installation. Never will be.

      Yet, there are people who can't or won't learn every nuance of every system file. There are people who know and like one OS or distribution or server application and hate everything else. Those people are called your co-workers. I know, I have the same co-workers.

      There are other groups, call them managers, who want to know that when you get hit by a bus they are capable of finding someone who can figure out what the hell you were doing just before you got your Greyhound tatoo.

      If Webmin causes you security problems, be that person who can check for those problems before deployment. Most modules are in Perl, and the permissions can be checked system-wide on any static files easily enough. Hell, create a crontab to check if you don't trust others, or even write a Webmin module to do a basic check when you're not around!

      [Full-Rant Mode]

      1. ...If we want a chance of getting Unix to the unwashed masses -- to enlighten them a bit, maybe to get them to do the right thing.

        ...If we want to break out of the present canabilism between different Unix systems.

        ...IF IF IF...we _NEED_ something that works like a camel's nose.

        We _need_ to get in more tents before we get any figs. Right now, most non-Unix folks don't give a fig about Unix. :)

      --
      A firewall can not protect you from yourself. Turn off what you do not need. Do not use the firewall to do your work.
    3. Re:WebMin...not the Right Thing but damn good by Anonymous Coward · · Score: 0

      Heres my rant too.

      If we want a chance of getting unix to the unwashed masses we must keep going exploiting windows, writing stupid vbs worms and generally showing companies why running microsoft shit will cost them bigtime. At the same time we must also find and secure all the bugs in our code, make opensource rock-solid reliable, free, functional and secure. Then people will use it.

      This gui configuration shit is a total load of bollocks. For desktop use sure have gui config tools but then you wont be running servers.

      Anyone who needs a gui config tool should NOT BE RUNNING A SERVER. They will be contributing to the DoS/Spam/Crud on the web by setting up wide open services. If you want to run a server pay someone who knows what they're doing to set the fucking thing up for you. Thats the way the world works, if you don't know something you get someone who does to help you and they can charge you. If you cannot afford it then I would say you shouldn't be running a server (free hosting/opensource obviously dont count here, they can setup their own as they do now. Im talking about business').

      We really need to get out of this retarded technically ignorant microsoft enhanced era where "anyone can setup a webserver!!" or you can "point and click your way to a working mailserver!!!". Am I the only one who is sick of this bullshit?

    4. Re:WebMin...not the Right Thing but damn good by HalfFlat · · Score: 2

      ...If we want a chance of getting Unix to the unwashed masses -- to enlighten them a bit, maybe to get them to do the right thing.
      Much better in my view is to wash them.

      While there is no excuse of course for needlessly hard or complex configuration files and such, when simplification comprimises usability, security and capability it has gone too far. Rather than dumb-down the software, let's encourage people to actually learn about the tool they're using. Perhaps once people understand what security is and why it's important, they might finally start adopting security-aware proceedures.

      To summarise: smarter people, not dumber tools.

    5. Re:WebMin...not the Right Thing but damn good by SealBeater · · Score: 2


      ...If we want a chance of getting Unix to the unwashed masses -- to enlighten them a bit, maybe to get them to do the right thing.


      You think you can bring enlightenment by encouraging ignorance? By not encouraging learning and the proper methodalogy to not have to rely on yet another tool to get the same job done? That you can get anyone to do the "right" thing by encouraging them to not read and learn, just to find the "easy" way out?

      --
      -- Its survival of the fittest...and we got the fucking guns!!!
    6. Re:WebMin...not the Right Thing but damn good by helixblue · · Score: 2

      I'll begin to use webmin when it supports revision control hooks. Things like this you actually need when you've got multiple admins.

      I hacked together revision control hooks once upon a time for some webmin features, but it was frustrating because there was no common saveConfigFile() function or anything.. each module did it individually in their own way, which meant I had to modify each module to execute cvs after it's save functions. I didn't get as far as having webmin prompt for a change description, however.

      So, as webmin started progressing through versions, while we began rolling out our cvs-based revision control wrappers for /etc & such.. we abandoned webmin.

      Yes, I've got the source code to change it.. do I plan on it? Not especially. Not worth my time right now.

      c'est la vie.

    7. Re:WebMin...not the Right Thing but damn good by SealBeater · · Score: 2

      I am going to address some other points to this.

      Yet, there are people who can't or won't learn every nuance of every system file.

      Then they should not be in charge of administering a box. "Can't" implies an inherent lack of ability. Good enough reason not to be an admin. "Won't" implies an inherent lack of motivation. Good enough reason not to be an admin. Both are reasonable assurances that a machine placed under their control will suffer.


      There are other groups, call them managers, who want to know that when you get hit by a bus they are capable of finding someone who can figure out what the hell you were doing just before you got your Greyhound tatoo.


      They can, it's called hiring someone who knows what they are doing, as opposed to hiring someone who knows how to install webmin. By your logic, it sounds like you are advocating that they should be able to hire someone who doesn't know what they are doing. Doesn't work in the real world and places that do that inevidably fail.


      If Webmin causes you security problems, be that person who can check for those problems before deployment.


      Right, fix the known problems, ie, make more work for yourself cleaning up after a known insecure app that is supposed to reduce your workload and make your job easier. Without even touching the problems of new hereinto, unknown security issues that you have introduced in the name of ease of use, you just added an additional layer of complexity in an effort to make things less complex. See the flaw in logic?

      SealBeater

      --
      -- Its survival of the fittest...and we got the fucking guns!!!
    8. Re:WebMin...not the Right Thing but damn good by Spoing · · Score: 2
      You think you can bring enlightenment by encouraging ignorance?

      Absolutely not. Right now -- by encouraging only one way of managing Unix systems -- we're not enligtening anyone except ourselves.

      Simplify them, and then we can coax the Unix ignorant into learning a wee-bit more...a universe more then what they have now.

      What you suggest is preaching to the chior. I'd like to see a larger chior, even if they can't cary a note. Later on, we can teach them how to sing. Right now, they aren't.

      --
      A firewall can not protect you from yourself. Turn off what you do not need. Do not use the firewall to do your work.
    9. Re:WebMin...not the Right Thing but damn good by hacker · · Score: 1
      The complaints about Webmin is that it isn't perfect. It doesn't solve the desire for a universal config mechanism or encourage the editing of files directly. OK. It doesn't. Yet, it exists now and is a lifesaver when using multiple UNIXs.
      Get Webmin. Setup Webmin. Open a huge exploitable hole in your system via an open port.

      Seriously though, ssh is your friend. Using Webmin on a LAN, where you expect it to be accessible from multiple (unknown interface) machines is a huge security hole. On production machines, opening up a port that allows an authorized, local account to administer the machine, making system-level changes, is really a bad idea.

      Each to his own though.. on a single-machine, non-networked, it's probably a wonderful solution. Then again, so is vi.

    10. Re:WebMin...not the Right Thing but damn good by Spoing · · Score: 2
      All good points -- and I agree with them if not with the same emphasis.

      Where we differ is that I desperately want more Unix-friendly work environments, and Webmin is one way to increase Unix adoptation instead of giving in to the flood of Windows systems. If you have this goal also, then tell me how you would address it. So far, I've heard lots of complaints about Webmin but no solutions beyond work harder + be smarter. OK, done. :)

      There are problems with anything, Webmin included. With about 200 plugins, I'd be stunned if there weren't any security issues. A security audit, though, occurs per-app on installation and on a regular basis network wide. Those can't be avoided regaurdless of what you do. But, under most Unix systems, you have a chance to fix security issues.

      Since it will not be possible to fix problems with Windows or any closed source environment/server, why not fix the problems where we can?

      If it takes 2, 3, 5 years to get a unified configuration system why not start with what we can use and fix right now?

      --
      A firewall can not protect you from yourself. Turn off what you do not need. Do not use the firewall to do your work.
    11. Re:WebMin...not the Right Thing but damn good by SealBeater · · Score: 2


      Where we differ is that I desperately want more Unix-friendly work environments


      I am actually not sure where I stand on that. I would like a more unix friendly work environment in which I can either use *nix myself or have a *nix infrastucture in place. I have been lucky in that that has not been too uncommon, but from a user standpoint, I don't know. I came from an enviromnent were if someone asked if they should use *nix, the answer was no. I thought at the time that that was elitest and repungnant, but after having tried twice to teach people, I can understand. If you're interested, you'll get it, if not, you won't.

      My main objection to making things easy is that often, the student, for lack of a better word, doesn't ever feel the need to progress. It works well enough so why should I learn more, is the previlant attitude. Argh, what's the use?

      My main thing is, a unified configuration system is not a *nix thing, for lack of a better word. Every app out there would have to adopt it, it would be an additional overhead, and what would happen in terms of security holes, updates, etc?

      If I updated the xml lib, would that render my config unusable? World-readable? What about some hard-core customization? A one-off, if you will. What about a brand new module or app? Will I have to wait for the "configurator" app to catch up? What if I update an app and not the config, and the app parses configs differently? I just think it would create more problems then it solves.

      SealBeater

      --
      -- Its survival of the fittest...and we got the fucking guns!!!
    12. Re:WebMin...not the Right Thing but damn good by diamondc · · Score: 1

      ever heard of ssh port forwarding? you could possibly make webmin ONLY listen to localhost:webadminport and still use it by doing a

      ssh -2 -f -i /home/user/.ssh/server.id_dsa -N -L somerandomport:server:webadminport user@server

      --
      "I keep looking in the want-ads under 'revolutionary' but there don't seem to be any listings.. "
    13. Re:WebMin...not the Right Thing but damn good by Spoing · · Score: 2
      Hmmm. I thought I posted a response earlier. My mistake.

      Much better in my view is to wash them. ... To summarise: smarter people, not dumber tools.

      The right thing is the ideal way to go. Unfortunately, most people aren't interested. Even those who know better, and I include in this two people I know -- a C/C++ guru (even wrote compilers and decompilers), and a theoretical chemist with a strong background in information system design and theory at the PHD-level. Both know Unix. Both like Unix. Both can use different OS environments and feel at home.

      Neither likes diddling with server or operating system issues. At that level, they are unabashed users. Now, they do know the right thing to do. They even do the right thing when they manage thier own systems -- but still as little as possible. Both use GUI tools under Unix if they don't know exactly what to change or don't want to know what makes one Unix different from the next. Webmin fixes that problem.

      Yet, my two friends who are capable don't care one whit and aren't taking the MCSE jobs -- they have other interests.

      The majority of MCSEs (not all!) who have the "It's a job" attitude. Some care, but are just clicks and don't actually know how these systems work. Should these techs and admins know better? Sure. It is thier job, so they should care and they should learn the details but...they mostly do not. [insert your favorite reasons for this here]

      What we need to do is change behavior, not attitudes. There are plenty of attitudes in both the Unix and Windows worlds. Changing the behaviors in the Windows world will not be possible if they use Windows exclusively.

      So, stuck with the actual people in those positions, what are we going to do? Leave them as MSCEs and perpetuate Windows-only networks? Leave them as MCSEs who wipe out Unix as soon as they have an option to? Or, educate them and show them there is a better way? Webmin might seem like it's a step back, but it is a step forward. The behavior of the MCSEs changes, they learn Unix isn't alien or ancient. At that point, you can introduce them to VI, scripting, and other tools -- things that are available on both Unix and Windows systems.

      It would be less painful to have them go cold turkey. Yet, few of us have that authority. Instead, having them slowly learn on the job is much more effective. Who knows, maybe they will get enthusiastic and start switching over some Windows servers?

      Then, and only then, are you going to get smarter people.

      --
      A firewall can not protect you from yourself. Turn off what you do not need. Do not use the firewall to do your work.
    14. Re:WebMin...not the Right Thing but damn good by NutscrapeSucks · · Score: 2

      I came from an enviromnent were if someone asked if they should use *nix, the answer was no.

      I've seen that a bit too, and the main reason is usually not Unix itself, but the sort of people that you need hire to maintain Unix systems. They're generally expensive elitiest hard-to-replace assholes, and that fact has cause a certain repugnance against the entire platform.

      Everyone's dancing around the core issue here, which is that a 99 conf file formats, symlinks forests, and jerryrigged scripts all basically add up to a job protection contract for the Unix Administrator, and that increases the overall cost of the system by quite a bit, and ultimately has crippled Unix's adoption in many markets.

      The fact is that there's a large number of normal LAN admin tasks that don't require detailed understanding of the system. From a managerial standpoint, hiring cheap, dull people that aren't that interested in "progressing" to do that sort of work is just fine.

      The Unix Guru needs to understand that rather than boobytrapping his box like the Last Mohican, that if Unix becomes signicantly cheaper to own and maintain, the installed base will explode and so will the market for his Guru services. Then instead of adding users and maintaining the print queue, he can focus on the large scale planning and architecture.

      (You'll note that my rant hasn't mentioned the magic "MCSE" word yet - but look at the organization of large NT networks. One or two "gurus" that understand ActiveDirectory and other archtiectual stuff, and lots of low level guys performing the reboot duties.)

      --
      Whenever I hear the word 'Innovation', I reach for my pistol.
    15. Re:WebMin...not the Right Thing but damn good by geekoid · · Score: 2

      if you got a tool that makes your lofe easier, don't tell managment! there going to cut staff, and give you more work.

      --
      The Kruger Dunning explains most post on /. http://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect
    16. Re:WebMin...not the Right Thing but damn good by jcam2 · · Score: 1

      Webmin can be setup to use SSL, and to only
      accept connections from selected IP addresses ..
      that makes it as secure as SSH as far as I am
      concerned.

  24. gconf, LDAP anyone? by DocSnyder · · Score: 3, Insightful

    "gconf" does exactly what the Freshmeat article describes: a unique way of storing configuration. Its frontend is abstracted from the backend which uses a hierarchy of small plain XML files per default but could also use a SQL database or a LDAP directory.

    LDAP is nice on its own, too, with configuration being stored platform- and host-independently, as well as global, group-specific and user-specific settings. Netscape Roaming works this way.

    1. Re:gconf, LDAP anyone? by Anonymous Coward · · Score: 1, Funny

      > "gconf" does exactly what the Freshmeat article describes

      No, gconf doesn't work.

    2. Re:gconf, LDAP anyone? by FooBarWidget · · Score: 2

      Damn right. That explains why when I click on the Apply button in Galeon's preferences dialog, and I kill the Galeon process and restart it again, the configuration is still there.
      As you can see, GConf is totally broken, because it saves the configuration when it's supposed to fuck up your configuration files.

      Oh wait, that's only the behavior that the anit-GConf trolls invented.

  25. Duh by autopr0n · · Score: 2

    Who hasn't though this? Unix/Linux config is a mess. Diffrent files in diffrent folders with diffrent formats. Sure it's all plain text, but who has time to learn diffretn config formats/languages for each program they want to use?

    As for hard to do? I don't see why that would be the case. Just a little bit of XML and viola.

    There are a lot of things in the Unix world that are hard or time consuming to do just because they can be. sendmail.cf. hello!?

    --
    autopr0n is like, down and stuff.
    1. Re:Duh by Anonymous Coward · · Score: 0

      How the heck are you going to mix XML with a viola? I'm not sure the combination of stringed instruments and file specifications will fix the problem. And if it will help, perhaps a nice violin or cello would work as well?

      Oh, wait, did you mean voila? Never mind!

    2. Re:Duh by Anonymous Coward · · Score: 0

      > As for hard to do? I don't see why that would be the case. Just a little bit of XML and viola.

      XML by itself buys you nothing. If there isn't a common DTD for config files you wind up with the same mass of different formats, now with the added 'benefit' of XML tags and structure.

      Without the DTD, don't even bother. Now try getting everyone to agree on that common DTD...

  26. I hope this goes somewhere by Twylite · · Score: 5, Informative

    A brilliant article, and a subject which I have tried before (with little success) to broach with various OpenSource developers. Unfortunately the comments demonstrate the lack of understanding that is all too common in the free software world: an inability to distinguish between apis/formats and software implementations; and an unwillingness to move to a more user friendly system.

    GConf and Webmin, for example, are not solutions that address the problem posed by the article. Other comments completely lose the plot: this is about a common configuration format which can use metadata to provide for configuring just about any application, it is not about creating an all-encompassing configuration that will give settings to all applications everywhere for all time.

    Gconf is half of the solution at best. It provides a library (common abstraction) for accessing the data. But an application still has to have explicit knowledge of the data in order to act on it. A configuration framework describes this knowledge to allow any compliant application to act on it.

    Sometimes an example is worth 1000 pictures (and hence about 1000000 words), so consider a simple packet filtering application with an ACCEPT list and a DENY list, which can listen on several interfaces.

    Such an application would have a meta-data configuration file (say /etc/conf/meta/filter.cfg) which specifies: section name=interface count=multiple type=ipv4 ; section name=accept count=multiple type=cidr ; section name=dent count=multiple type=cidr. Now any application can access the packet filter's meta-data file, and the real configuration file (say /etc/conf/filter.cfg), and understand the meaning, to a degree, of the configuration. The types "ipv4" and "cidr" will have to be primitives for the configuration framework.

    Thus a general configuration application could present a tree which has three branches (interface, accept, deny), each of which displays a screen with a list. Appropriate entries can then be added, modified or removed, reconfiguring the packet filter without the configuration application having any prior knowledge of the filter's configuration or requirements.

    With adequate forethough (for the categorisation and types required) such a system can be extremely powerful. A single configuration library can be used by the application, as well as GUI and CLI configuration clients. You could easily have a command in a script: config pktfltr add -section interfaces -value 1.2.3.4 .

    A common library like this can also provide powerful features that a lot of applications lack, like local (user) settings which override global defaults. The library can maintain global, group and user configurations for each application, and getting/setting preferences will take the overlays into account.

    Implementing such a system would also provide an ideal opportunity to introduce configuration versioning. CVS (for example, or arch, which includes directory versioning) could be used to maintain various versions of the configuration files in /etc/conf.

    Arguments about diversity are largely moot. The data format is independant of the data in any well-written program. .INI files, Bind-style files, XML files and SAMBA files can all represent the same information, but they look different. Some are arguably more efficient in some situations. Even the feared Windows registry has the same functionality ... it just makes the (fatal) error of storing everything in a mostly inseparable datastore (sortof like an /etc/conf directory in which you can't treat the various files separately).

    This is a suggestion which needs to be followed through, and supported by the community.

    --
    i-name =twylite [http://public.xdi.org/=twylite], see idcommons.net
    1. Re:I hope this goes somewhere by sillysally · · Score: 2
      nicely said.

      I would deviate slightly. folks should stop thinking of "the solution" as being "a solution" or "it" or some new unified thing. Instead, think of it as "what incremental things can we do that would make the mess less of a mess". If we then implement a few of those things, the world will be a better place, even if we do no more than that. If we keep getting incrementally better, someday we'll arrive at a unified world.

      so, for instance: we need a little API that allows reading and writing of hierarchical data, and an implementation of it that supports one file format. Use it in a project. Implement a second file format and now that project could write its data in either format. Approach other projects that use the same file formats and offer to switch them.

      Note that the two different file formats represent polymorphism: but this should not dictate C++ (or whatever). Rather, there should be implementations of this small "project" in every common language, at least perl, C, C++ and "shell" if anybody has the 'nads.

      I hope I made my point? each little step of this is one incremental thing and is good on its own.

      I've got some other issues, but I don't want a long muddy post. But, f'rinstance, the .* files do not belong in my login directory, or I shouldn't log into that directory, and .* files that I hand edit should not be interspersed with .* files that are filled with computer gen'ed stuff. the ~ (home) directory is a huge stinky mess quite apart from the different file formats. Copying your .dot files to a new login dir is a nightmare. However, notice that with a new API being used to read and write them, the new API could silently move them whenever you're ready.

    2. Re:I hope this goes somewhere by Zapman · · Score: 2

      You said:

      Such an application would have a meta-data configuration file (say /etc/conf/meta/filter.cfg) which specifies: section name=interface count=multiple type=ipv4 ; section name=accept count=multiple type=cidr ; section name=dent count=multiple type=cidr . Now any application can access the packet filter's meta-data file, and the real configuration file (say /etc/conf/filter.cfg), and understand the meaning, to a degree, of the configuration. The types "ipv4" and "cidr" will have to be primitives for the configuration framework.

      and killed yourself. Making a configuration file system that can:

      1) have enough 'primitives' to control network interfaces (cider and ipv4), gui's (resolution, dpi, mouse type, mousewheel), terminal types (delete char, color codes, color depth, escape codes, control flow), kernel config (pc-parallel port, IRDA-system), and ANYTHING ELSE THAT COMES ALONG will have even more complexity than the system already in place. You will need a lot of a priori knowledge to edit the file. You must know all the relevant primitives.

      2) How on earth will you lay out the filesystem for this? Your example of /etc/conf/meta/filter.cfg you said would apply to SOME interfaces. So the control must go into that file for WHICH interfaces. This meta directory will end up with thousands upon thousands of files. How will you lay out network interfaces? and terminals? and gui's? (this is far easier to crack than the first though)

      3) You also destroy backwards compatability. You could write 1 app per app to 'translate' the configs, but that's a huge chicken and egg problem. You also break the origional app, which has to be re-written to conform to this new, all singing, all dancing beast.

      It's nice to proclaim 'unified config file format'. But the reality is that it would make life even harder than it is now. You end up just moving the complexities around.

      --
      Zapman
    3. Re:I hope this goes somewhere by jasno · · Score: 2

      Well put.

      I'd like to see something like this, but managed but a 'config demon' which has access controls and allows sharing a centralized config with other hosts over the network (ok, you could do it by mounting the config dir via NFS or Samba...).

      The demon would provide the API/abstraction and would store each APP's config file in a human readable format. Then supply X and ncurses front ends so those without X aren't stuck editing some scary XML file.

      So besides just talking about it, is anyone interested in doing it? I'd be interested in getting involved in a project. I've been tinkering with LFS so I'd have a blank slate to experiment with this very problem.

      Now if we could find a way to fix the init scripts while we're at it...

      --

      http://www.masturbateforpeace.com/
    4. Re:I hope this goes somewhere by Kiwi · · Score: 2
      You will need a lot of a priori knowledge to edit the file. You must know all the relevant primitives.

      No, the configuration program itself does not need to know anything about the data each program uses. Just as web browsers do not understand the significance of data in form fields, our configuration program will not need to know anything about the actual significance of data in the configuration file.

      How on earth will you lay out the filesystem for this?

      Simple. Have a directory, /etc/conf/meta, and put all configuration data there. In fact, we don't even need a meta configuration file if each file in this directory has a summary field, we just go through /etc/conf/meta by hand and load up all the summary fields.

      You also destroy backwards compatability

      First of all, this is not true; programs can accept files from both legacy formats and from the new XML format in the transition period, or we can write programs which read in the legacy file using the legacy parser and output the same data in XML format.

      That said, expressions like this ("You also destroy backwards compatibility") are expression I have heard over and over again, especially in the world of UNIX users.

      This is a sentiment which I have seen time and time again, and a sentiment that makes Microsoft (or whoever else belives in proprietary OSes) thrive in the server space.

      I have seen this same sentiment with people who complain that Red Hat is horrible because they use xinetd, which, heaven forbid, uses a different file format than /etc/inetd.conf.

      This is the same sentiment that the people who make the DNS standards have, dragging their feet and not accepting any DNS extension which has non-ascii characters, forcing Yahoo! to have the host name "espanol.greetings.yahoo.com" instead of "español.greetings.yahoo.com". (Se puede decir que estas personas necesitan un nuevo ano porque ellas no pueden aceptar que esto es un nuevo año).

      This is the same argument used by people who do not like CML2 (ESR's proposed kernel configuration utility) because it uses Python; they want everything to be done with shell scripts and the C programming language, and can not see the limitations that those languages have.

      This is the same sentiment that makes it so I have to go a step backwards in terms of technological advancment to email UNIX-using people than mailing my friends, since many UNIX-using people are still using mail systems from the early 90s before HTML mail existed.

      It is this fear of change which holds back free software, or, if you prefer, software libre. The computing industry, more than any other industry, is an industry that is undergoing constant change. Anyone who can not see this is going to be left behind.

      - Sam

      --

      The secret to enjoying Slashdot is to realize that it should not be taken too seriously.

    5. Re:I hope this goes somewhere by renehollan · · Score: 2
      You've obviously put a good deal of thought into this, but there are some "gotchas" that need to be addressed in more detail:

      Distinguish between metadata syntax (of which there should be one and only one) and data syntax (of which we have several different types).

      The first describes what kind of data is in a particular configuration set, rather like an XML DTD (except the configuration set syntax need not be XML). Note that one can think of the configuration data itself as virtually stored in XML, consistent with some DTD, even if it is not: one can imagine a transformational grammer for converting between XML and "legacy" versions.

      A generic configuration editor would require two things: a DTD description of the XML version, and a transformational grammer description of the translation between the XML and legacy versions. The transformational grammer could be one-way or two-way depending on how the configuration data was read, IOW you have an input format and an output format.

      The quick and dirty approach then, is to edit an XML version of one's data, and export, via a transformational grammer to legacy format files. Of course, this is frought with the usual problem of being incompatible with manual editing of the legacy format file. Add a reverse transformational grammer and you can now read XML and legacy versions of the configuration file -- so this desirable property can be added incrementally, if necessary.

      Sharing configuration data between different applications requires them only to agree on the DTD describing the data, and the transformational grammers used to read the configuration files (or, for legacy apps, the implied DTD and transformational grammers). It is reasonable to assume that existing applications that share configuration data do so by virtue of each application understanding the legacy file format. New applications could be oblivious to this format, if a DTD and transformational grammer were available. So, when the legacy file format is abandoned, new applications do not have to change: just the transformational grammer to use changes.

      For simplicity's sake, one should settle on a single configuration file for each configuration data set -- this may be initally driven by the need for legacy application compatibility. One will also have to settle on a single DTD describing this data, or at least compatible DTDs. Otherwise, the problem has just been moved from having different configuration file formats to different metadata descriptions.

      --
      You could've hired me.
    6. Re:I hope this goes somewhere by Zapman · · Score: 2

      First off, notice that I listed the 'destroy backwards compatability' last. It's the least important of my arguments. However, your 'transition period' requires a LOT of work on the maintainer's part.

      Second, (and most important) I still claim that you're going to just move the complexity around, and not make anything really 'simpler'. You'll unify all the config files, but make it harder to find where you want to change something. You still have to fingure out what 'form data' (style and keywords) the app is willing and able to take. Which still involves looking up obscure syntax in the man pages. So no win comes of it.

      All you've really done is unify what character is a comment.

      --
      Zapman
    7. Re:I hope this goes somewhere by Twylite · · Score: 2

      At the risk of /.'ing my ISP ... take a look at a doc on my home page which goes into a whole lot more depth than my Slashdot post.

      I tried to get an effort like this off the ground about 4 years ago, with little success. I'm still interesting in playing with it though.

      --
      i-name =twylite [http://public.xdi.org/=twylite], see idcommons.net
  27. no, and furthermore... by nycdewd · · Score: 2, Informative

    "Ernest Prabhakar of Apple Computer informed attendees at the USENIX BSD Conference earlier this week that BSD (upon which Mac OS X is based) is now "three times more popular" than Linux on desktop computers."

    http://www.osopinion.com/perl/story/16382.html

  28. Uh... by autopr0n · · Score: 2

    That link isn't particularly helpfull. I hope you don't expect me the dig around on that site for hours to find the answer.

    Perhaps you could give me a more precice link.

    The only thing I could find was: But good looks are only the beginning. At the foundation of Mac OS X lies an industrial-strength, UNIX-based core operating system--called Darwin--that delivers unprecedented stability and performance. Darwin provides Mac OS X with powerful, advanced features such as protected memory, preemptive multitasking, advanced memory management, and...

    Etc. Didn't say anything about what it was 'based' on.

    --
    autopr0n is like, down and stuff.
    1. Re:Uh... by NDPTAL85 · · Score: 0

      Mac OS X is based on a Mach microkernel with a FreeBSD 3.2 subsystem on top. Its been said enough times already you'd think people would get it right. Anyways Apple recently hired Jordan Hubbard the former FreeBSD release engineer to help them with their Unix development.

      --
      Mac OS X and Windows XP working side by side to fight back the night.
    2. Re:Uh... by dark_panda · · Score: 2

      From http://www.opensource.apple.com/projects/darwin/:

      What is Darwin? Darwin is the core of Mac OS X. The Darwin kernel is based on FreeBSD and Mach 3.0 technologies and provides protected memory and pre-emptive multitasking. Darwin runs on PowerPC-based Macintosh computers and a version is also available for x86-compatible computers.

      J
  29. I /like/ the Unix Configuration Nightmare by Combuchan · · Score: 2, Insightful

    Why fix it? It's good right where it is.

    I /like/ having daemons and programs having their own configuration file. I like having to be able to manually configure something and fix it myself, without having to fight with some meddling front-end. I like learning how configuration is done with each program. I like applying existing text editing and stream tools to work with configuration. This is the way it should be done, and this is why I like Unix far more than other OS's that aren't predominantly CLI-based.

    Don't fix it. It's not broken. Things work great as they are now. It's not difficult if you want to learn how to do it. Your "Unix Configuration Nightmare" is actually an elegant symphony of applications, clients, daemons, sockets, and streams that is UNIX. Take it or leave it.
    :)

    And you know, when I was your age... wait, you get my point.

    --
    "[T]he single essential element on which all discoveries will be dependent is human freedom." -- Barry Goldwater
    1. Re:I /like/ the Unix Configuration Nightmare by Anonymous Coward · · Score: 0

      Its because of fscks like you that Linux ain`t going anywhere.

      Unlike you, some people actually have a life and guess what, we work, then go home to be with our family/play/whatever that you don`t do.

    2. Re:I /like/ the Unix Configuration Nightmare by Anonymous Coward · · Score: 0

      did you read the article?

      he never said that apps should have a consolidated configuration registry, or that it shouldn't be text based (in fact, he said the opposite).

      what he's saying is there should be a standard library for reading/writing configuration files, flexible enough to resolve most approaches, with plugins to help others.

      the libray should support metadata which allows clean hack-less configuration frontends to be written.

    3. Re:I /like/ the Unix Configuration Nightmare by osolemirnix · · Score: 3, Interesting
      I beg to differ. While I like Unix, I would not call this "great":

      ls -a $HOME
      .Xdefaults .Xmodmap .Xresources .addressbook .addressbook.lu .bash_history .bashrc .dayplan .dayplan.priv .dvipsrc .emacs .exrc .gimprc .grok .holiday .hotjava .jazz .kde .kermrc .lyxrc .muttrc .nc_keys .pgp .pinerc .profile .seyon .signature .ssh .stonxrc .susephone .tex .uitrc.console .uitrc.vt100 .uitrc.vt102 .uitrc.xterm .urlview .vimrc .xcoralrc .xfm .xim .xinitrc .xserverrc.secure .xsession .xtalkrc
      You get the idea...

      Sure, wget has a command line option for my http proxy. But why isn't there a system-wide default that it uses?
      Wait there is! But is it $HTTP-PROXY? Or $HTTPPROXY? Or $PROXY?
      What's my default printers name? Yeah right it's probably $PRINTER, but then again, maybe not.

      Sorry man, but I don't call that good. I call it ugly. Using an Apple, now that is pretty, and for a reason. Thinking about merging pretty (Apple) and powerful (Unix) sounds truly appealing to me.
      The article was talking about user configuration as much as server configuration. I could live with seperate conf files for servers, but for user conf files it's just plain ugly.

      --

      Idempotent operation: Like MS software, wether you run it once or often, that doesn't make it any better.
    4. Re:I /like/ the Unix Configuration Nightmare by Shanep · · Score: 4, Informative

      that is UNIX. Take it or leave it.

      I agree. I'm reading all this wondering why people are complaining so much. How much time do people spend in /etc anyway?

      I need to get something set up, I go to /etc and either see a file or directory named something along the lines of what I'm configuring. Get it up and if I don't know it well, either quickly read the comments or the blah.conf man page... configured... working... I'm done in here for a while until I think of some other cool thing to do.

      When Win95 went to a single, non-text config file (registry), I instantly thought this was going to be a really bad move. And it proved to be. Registry rot is incredible. Anyone ever notice that if you reinstall Windows about once every year or so, you get a massive boost in performance? I installed 98 the other day (just for D2:LOD, Starcraft and RainbowSix), it boots (PII-300, 512MB) in about 30 seconds and shuts down in 1-2 seconds. Prior to this, 98 was taking an age, *if* it would shut down at all, and I had all sorts of stability problems. BTW, I put the C: on a 700MB partition and used a D: of 2.5GB for the games. I burn the C: to a CDR and when things get bad, just dd it straight back to hda1.

      My point is (back to the OSes that are more fun than a Frost Nova up Andariels arse), *I* want to mess with those config files, rather than have some app(s) messing with one really important file.

      I like it too.

      --
      War crimes, torture, lies, illegal spying... Would someone give Bush a blowjob, already, so he can be impeached?
    5. Re:I /like/ the Unix Configuration Nightmare by Combuchan · · Score: 1

      Unix is pretty good. It could be better, but I must say, if you don't add the -a option, those files don't show up. Maybe I'm bordering on trolling, but I never run ls -a. I know what the file is I want to edit. Or maybe, like somebody said, I should leave the house more often.. nahhh. ;)

      --
      "[T]he single essential element on which all discoveries will be dependent is human freedom." -- Barry Goldwater
    6. Re:I /like/ the Unix Configuration Nightmare by gazbo · · Score: 1

      Congratulations, sir. My limited investigation seems to conclusively demonstrate that you are an inadvertant page widener.
      If anyone else wants to try this, mark him as a foe, set a huge penalty for foes, then browse at 0. Normal width page.

      But don't leave him as a foe, that'd be nasty ;-)

    7. Re:I /like/ the Unix Configuration Nightmare by SealBeater · · Score: 2


      Sure, wget has a command line option for my http proxy. But why isn't there a system-wide default that it uses?
      Wait there is! But is it $HTTP-PROXY? Or $HTTPPROXY? Or $PROXY?


      Actually it's $HTTP_PROXY. Its called reading the documentation, which is why its there.

      As for things like .bash_history, .bashrc, .ssh, .signature, etc

      its called multi-user enviroment. Keeping individual settings, information and the like in $HOME is actually pretty elegant. How do you propose keeping seperate users settings intact? If its one system-wide configuration, obviously everyone is stuck with root's preferences, a bad idea I am sure everyone can agree.

      SealBeater

      --
      -- Its survival of the fittest...and we got the fucking guns!!!
    8. Re:I /like/ the Unix Configuration Nightmare by osolemirnix · · Score: 1, Offtopic
      Sorry. I had no intention to widen the page. Blame me for not checking the Preview properly.
      This clearly seems to be a bug though, as text with spaces should wrap around.

      So, instead of marking me as a foe, maybe file a bug report? Or at least a feature request for the checks in comments.pl
      :-)

      --

      Idempotent operation: Like MS software, wether you run it once or often, that doesn't make it any better.
    9. Re:I /like/ the Unix Configuration Nightmare by Anonymous Coward · · Score: 0

      > As for things like .bash_history, .bashrc, .ssh, .signature, etc

      its called multi-user enviroment. Keeping individual settings, information and the like in $HOME is actually pretty elegant. How do you propose keeping seperate users settings intact? If its one system-wide configuration, obviously everyone is stuck with root's preferences, a bad idea I am sure everyone can agree.
      >

      Actually there is a problem with this home directory. It serves a dual purpose: storing user created (dowloaded, copied, ...) files and configuration files. The sole purpose of the dot file system seems to be to not confuse the configuration files with the user files. This could simply be achieved by using a ~/config/ directory. It would make things clear for everyone at first sight. There's no need to hide these files either.
      The rox desktop (http://rox.sf.net) is trying to implement something similar with it's Choices directory. It has some peculiarities, but the principle is the same.

      Jasper

    10. Re:I /like/ the Unix Configuration Nightmare by osolemirnix · · Score: 2
      Read my comment carefully.

      This is not about a system wide conf file for all users. It may be about a single conf file for each user (in their respective $HOME). Of course that would make perfect sense.

      And it's not about how the environment variable is called either. Of course I can look that up in the program manual. It's about the fact that the variable is not standardized across different programs (which I was trying to illustrate by giving it different names). So one program may call it $HTTP_PROXY, while another may call it something else. And one program may expect it's value to be a URL, while another may want to cover more info, e.g. avoid the proxy for certain domains.

      The point is that such config info is not standardized across several different apps, so you may end up changing several different config files for one setting. That's the problem.

      --

      Idempotent operation: Like MS software, wether you run it once or often, that doesn't make it any better.
    11. Re:I /like/ the Unix Configuration Nightmare by SealBeater · · Score: 2


      The sole purpose of the dot file system seems to be to not confuse the configuration files with the user files. This could simply be achieved by using a ~/config/ directory. It would make things clear for everyone at first sight.


      So, what does that achieve? You still have all the files in your home dir, only now you have them in a dir in $HOME, instead of in $HOME. I thought the whole point was to make things simpler. Everyone who uses *nix knows that a dotfile is a user config file. Their hidden so you don't have to see them all the time, if you want to, alias ls -a to ls. My only complaint with dotfiles is that there isn't a central information site that has what all the dotfiles are and what they do. The fact remains however, that your solution does nothing, as far as I can see. All you have done is move normally hidden files into an unhidden dir. Half of the dotfiles you have to actually put there, like .forward and .signature

      SealBeater

      --
      -- Its survival of the fittest...and we got the fucking guns!!!
    12. Re:I /like/ the Unix Configuration Nightmare by SealBeater · · Score: 2

      Sorry I have you marked as a foe, cause of the page widening, so just now saw your post.


      This is not about a system wide conf file for all users. It may be about a single conf file for each user (in their respective $HOME). Of course that would make perfect sense.


      Ok, suppose I take a vacation. Instead of touching .vacation, I have to open up a config file (by what method is left up to the reader) and uncomment the vacation section. How about .signature? At home, I have a perl script that changes .signature every 5 minutes by recreating a symlink to a dir that contains various sigs. How is that supposed to work with your system?

      Same issue, slrn. I have multiple .slrnrcs for diffrent NNTP providers. I guess I'll just have to add them all to the flat file. My .muttrc, nicely customized, is part of this one file, I guess. So, if I install it on another box, instead of just copying over the .muttrc, I have to what? cut and paste the revelant section to the flat file on anther box? And how does the single conf file know what settings, etc to have? Does it get appended to the conf file on installation by root? For every user? Only users with $HOME dirs? Do I need to say why this would be an incredibly bad thing?

      And suppose there is a new whiz bang app that comes out. What do you have to upgrade to get the settings into the single config file. Would it mudge the settings? Change the format of the file to take advantage of newer XML or whatever features? Would that break existing apps so you have to upgrade everything? All except that one app that hasn't upgraded, so your configs are broken?

      There is such a thing as single point of failure...this is one of them.


      Of course I can look that up in the program manual. It's about the fact that the variable is not standardized across different programs (which I was trying to illustrate by giving it different names).


      I would be very interested to hear what program that parses $ENV_VAR for proxies (to use your example) doesn't use $HTTP_PROXY. w3m does. mpg123 does. lynx does. wget does. w3mir does. Please find one that uses $PROXY or some subset for me.


      The point is that such config info is not standardized across several different apps, so you may end up changing several different config files for one setting. That's the problem.


      As far as I know, most programs check for a config in $HOME, then /etc. Please give examples of what settings or apps you are refering to.

      And you're right, I didn't fully understand what you meant. Sorry.

      SealBeater

      --
      -- Its survival of the fittest...and we got the fucking guns!!!
    13. Re:I /like/ the Unix Configuration Nightmare by gazbo · · Score: 0, Offtopic

      Sorry, no intention to blame you (notice that you were only in my foes list for the duration of my tests.

      You're right, it should be a bug report, but I'm too lazy to email anyone or submit a report, so I just publicised it and figured that somebody less pathetic than me would deal with it :-S

      I like to think of it as delegation...

    14. Re:I /like/ the Unix Configuration Nightmare by Anonymous Coward · · Score: 0

      Well, you also suck so everything you wrote will be ignored.

    15. Re:I /like/ the Unix Configuration Nightmare by Cardhore · · Score: 2

      Lets say I want to write a program for KDE, to configure my system, so that people who don't want to learn all the different styles of a comment in a configuration file can still configure their computers. Do I want to write a new module for every program that has a configuration file, and then test each module with each configuraiton file and all of its permutations? No. Do I want to release a new version of my tool every time a new software package comes out? No. This is what the current crop of configurators do. They have code for each type of file. That is also why they are broken. What we are wanting is two have a standard configuration format, and a standard DTD for that file, so that we can write a standard configure program that works with past and future programs.

    16. Re:I /like/ the Unix Configuration Nightmare by Anonymous Coward · · Score: 0

      "When Win95 went to a single, non-text config file (registry), I instantly thought this was going to be a really bad move."

      I thought it was going to be a really good move, everything centralized, easy to find and edit, etc... Boy was I wrong. Much happier since switching to Linux. The whole thing makes perfect sense.

      A common standard could be useful, but I would hope that it was something simple and not full of pointy brackets. Part of the beauty of *NIX style text config files is their simplicity.

    17. Re:I /like/ the Unix Configuration Nightmare by Anonymous Coward · · Score: 0

      Dot files keep things easy and simple. If I need to find or change something I know where to look for it and it can be done easy and quickly. It gives me the freedom to set my own enviroment in some non standard way and to access and change application settings for one or many users in a same time without runing application itself or some other configuration interface.

      I fail to see what is the problem with editing 4 line files. Making things more complex does not always make them better.

    18. Re:I /like/ the Unix Configuration Nightmare by bnenning · · Score: 3, Insightful
      *I* want to mess with those config files, rather than have some app(s) messing with one really important file.


      You're right about the registry, but a better designed system can give you the best of both worlds. Mac OS X's plist files are human readable and writable, easily accessible via a standard API (1 line of code to get or set any property), and do not involve a single point of failure.

      --
      How to solve most of our problems: 1.Lots of nuclear plants. 2.Cure aging.
    19. Re:I /like/ the Unix Configuration Nightmare by osolemirnix · · Score: 1
      It's actually a MSIE bug. With HTML like:
      blah .blah

      MSIE inserts a NBSP for the whitespace, so it looks like:
      blah&nbsp;.blah
      People using other browsers won't even notice. Since the percentage of MSIE users on /. is most likely small, it explains why few are complaining.
      :-)
      --

      Idempotent operation: Like MS software, wether you run it once or often, that doesn't make it any better.
    20. Re:I /like/ the Unix Configuration Nightmare by Anonymous Coward · · Score: 0

      > This is not about a system wide conf file for all users. It may be about a single conf file for each user (in their respective $HOME). Of course that would make perfect sense.

      Ugh. UghUghUgh.

      So, if any one app decides to mangle its config file (the now-common config file), the settings for all my apps might be mangled due to the bad file?

      You have some ideas to prevent this, certainly. And they are?..

    21. Re:I /like/ the Unix Configuration Nightmare by Anonymous Coward · · Score: 0

      Since the percentage of MSIE users on /. is most likely small

      It's the majority here, I assure you. Please tell me you don't read Slashdot with the delusion that most people here use Linux.

    22. Re:I /like/ the Unix Configuration Nightmare by Shanep · · Score: 2

      I see the merit in leaving traditional Unix the way it is, but I also see the merit in laying down foundations properly from the start, OS X style. It would be nice to see Linux, BSD's etc adhere to some standards for individual config files though, but I wonder if everyone can agree, in a pseudo hierachy where heads are rarely on any chopping blocks and more often than not motivation is driven by individual ego when it comes to policies like this?

      No doubt we'll get a bunch of different standards, most will die pretty quickly, leaving 2 to slog it out with different distros choosing opposing standards, just to make it harder for us. ; )

      I love Linux, Free and OpenBSD, but I personally can't wait to get my hands on OS X. I think the people at my local Apple shop are getting sick of me hanging around. ; )

      --
      War crimes, torture, lies, illegal spying... Would someone give Bush a blowjob, already, so he can be impeached?
    23. Re:I /like/ the Unix Configuration Nightmare by Zygo · · Score: 1

      No, it's $http_proxy. Yeesh.

      --
      -- I avoid spam by accepting only OpenPGP encrypted or signed email at this address. Clear-signed, RFC2015, heck, even
    24. Re:I /like/ the Unix Configuration Nightmare by SealBeater · · Score: 2


      No, it's $http_proxy. Yeesh.


      Actually, you're wrong. Enviromental Variables are always expressed as all upper-case.

      SealBeater

      --
      -- Its survival of the fittest...and we got the fucking guns!!!
  30. What nightmare? by Anonymous Coward · · Score: 0

    Unix is generally well documented so you shouldn't have any problems. The instructions for configuration files
    are in the man5 subdirectory, and the system admin utilities are documented in the man8 subdirectory.

  31. Install/configure by autopr0n · · Score: 5, Insightful

    Sure, installing software is easy. Unpack and compile. We are talking about configuring software.

    Like getting sendmail to rout and forward mail, apache to serve up web pages you want, BIND to bind names to IP address, etc.

    These tasks arn't "hard" or anything, but they do require a lot of reading on the part of a Newbie. In the windows world (don't know much about OSX) Most of that stuff can be done via am intuitive GUI.

    Flame me if you want, but I'd greatly prefer a system that didn't require me to learn diffrent config file formats for each service I want to have running... or deal with a hodgepoge of 'easy config' program hacks.

    A simple, standard configuration system is definetly the way to go.

    --
    autopr0n is like, down and stuff.
    1. Re:Install/configure by Balp · · Score: 1

      On the other hand, this services are actually hard, i.e. they need knowledge to be configured correctly. This is tha case in Windows as well as in Unix. The GUI dosn't take a way the complexity it mealy hides it sometimes. This is and has always bween the problem with many Windows installations, the administator don't know what they are doing, the just point and click. They don't ask them self the relevant questions, what does this checkbox mean, what iompact does it have.

      Administing servers and systems is hard, no GUI will take that part away. The main erason for this is that every organisation, and every installation is different in some sence. This means that configuration is relevant, and usally need a loot of knowledge.

      Then user insyaslltion/configurations doesn't need to be that complicated. (Actually most bad examples I think of in this case comes from the Windows world.)

    2. Re:Install/configure by ichimunki · · Score: 1

      Don't you think newbies installing stuff mostly won't have to fiddle with config files that much in the first place? It's not like anyone needs sendmail on a simple client machine-- that's what POP mailboxes and SMTP servers at the ISP are for. It's not like Apache needs to be running 25 virtual hosts for a newbie. I don't consider myself a newbie, and I've never installed/run BIND on my systems. And the two major GUI systems (three if you count Enlightenment), KDE and Gnome come with preference control centers-- as do most of the major apps one would use in those systems.

      I think the hardest parts of configuration-- what is this machine's IP, what nameservers to use, what fundamental services to run, and stuff like that-- should be handled at install. And as far as I've seen, most distrubutions do it that way.

      The people a more unified system might help are systems administrators. And do they really mind the current situation? Now I could understand that configuring services might be a little overwhelming to a new SA, but hopefully they're not being thrown into this cold, having no mentor and needing to configure a large system from scratch. Even with a GUI, I'd call that a recipe for disaster.

      Of course I'm not opposed to a better, simpler, more consistent set of configuration files and methods. But is this really a high priority?

      --
      I do not have a signature
    3. Re:Install/configure by lessthan0 · · Score: 2, Insightful

      There is no simple, standard way to configure complex things. A nice GUI works fine if all you want to do is something simple, but when things get hard, you have to dig into the guts and really understand what is happening.

      Now, using a standard syntax may hold some promise of making configuration a little easier, but the hard things will always be hard. No GUI will ever change that.

      Also, text files are easier to manage remotely. Just give be ssh and vi and get out of my way :)

    4. Re:Install/configure by Density_Altitude · · Score: 1

      0K, so you like the Windows point-and-click configuration tools better. It may be easier for basic setups, but for clever setups that require various tweaks and specialized option, you are going to be much more successful if you RTFM'ed in the first place. The problem under Windows software is that those interresting options aren't accessible throught point-and-click. They will often require nasty undocumented registry tweaks. Needless to say that the power is also greatly enhanced when using open source software. Now you can change everything you want!!

      --
      delete free(system.gc);
    5. Re:Install/configure by walt-sjc · · Score: 1

      If you look at some tools like SWAT (for configuring Samba,) you can design the tools to display novice or advanced user options. Most users don't need to make more than a couple changes to make samba, sendmail, or apache work for most cases.

      See my post above for my ideas on using XML as the common format.

      What I didn't go into is details on how that would work, but anyone with some imagination can grasp the concepts.

    6. Re:Install/configure by walt-sjc · · Score: 4, Interesting

      This is a defeatist attitude. Did you even read the article? If MS or Apple can do it, we can do it, and we can do it better.

      Now a GUI won't make people understand what they are doing or do the work for them (ever configure MS Exchange? That's a bitch....) but what it DOES do is make the configuration easier to navigate.

      By using an XML based file format (as I proposed in a previous comment) you get the best of both worlds. The Apache config file is a close example of what I was thinking (it's not XML, but it is XML "like".)

      An application would actually have 2 configuration files: one that actually contains the configuration data (like httpd.conf for apache) and the other to describe the options, help for the options, defaults, etc. to the configurator GUI. Both would be XML, would be extensible as hell, and provide a single tool for configuring any application, current or future.

      As I mention in a previous post, a set of importers / exporters would provide a way to migrate until the various applications were updated to use the new format (sendmail may NEVER change...)

      So you get what you want. Hell it would probably be better as you would no longer need to memorize all the differet quirks / rules for different applications's configuration language.

    7. Re:Install/configure by Balp · · Score: 1

      There is no problems (besides a loot of work) to create the systems. But to make complex installations easy and working for everybody and especially novices, that's hard, or maybe real hard.

      If we look at sendmail, how does one make configurations for relaying mail, delevering. There are aloot of complex things that has to be configured and installed to a secure default. Maybe sendmail should be avoided to configure this easy way. Sendmail is a very complex pice of software that aybe shouldn't be used if the user don't dig into understanding what it could do. (There are several other good replacement's for the functionality used by the most users.)

      Good solutions maybe is someware between, selecting good software for GUI users and ignoring the rest.

      /Balp

    8. Re:Install/configure by nick+this · · Score: 1

      A couple comments:

      I'd greatly prefer a system that didn't require me to learn diffrent config file formats for each service I want to have running.

      Thats fine, but I don't see how having these in an XML file will help any. What's the difference between this:


      # run a specific logon batch file per username
      ; logon script = %U.bat


      and this:


      <option>
      <name>logon script</name>
      <shorthelp>
      run a specific logon batch file per username
      </shorthelp>
      </option>


      My argument is that if you don't understand what the first one is, the second isn't any easier. In fact, it's less human editable than the first (imho).

      As far as a GUI goes.. sure.. there would be some great advantages to having a standard config system. But you don't get there by saying "we need a standard config system". You get there by making a library that has kick-ass features for developers. Integrates easily, has tons of features, etc, etc.

      That's how we get there from here, not by whining about the need for standard configuration. Someone's got the cart before the horse...

    9. Re:Install/configure by Balp · · Score: 1

      Administering and configuring an Microsoft server, or for that part a Mac, is not easy. It's as hard as installing and configuring an Unix server. Maybe it's prettier but the hard configurations is still hard no matter how much time that are put into it. I personaly perfere a combination of user interface (not necesarry graphcal, think curses) and a good backend with files and commands. IBM has a good work in this area with smit, smitty, and chfs :)

      And I still don't beleve that one could from a XML based or and other type of format make a smart easy GUI for configuring in a intuitive way both a firewall, an editor, a mailer and a web-server. That GUI may look good but won't help the user, each task is so different that a good userinterface needs to be customised for that application if it should help the user.

      Compare to RegEdit is it easy to configure applications from regedit? That is the tool that you are describing.

    10. Re:Install/configure by Cardhore · · Score: 3, Insightful

      You are exactly right. Have one or two files for the actual configuration (/etc/app.conf and $home/.app.conf), and one file that describes the configuration: its options, parameters, and help strings (perhaps in /lib/etc?). XML would probably be the buzzword to use here.

      Think about it--with this method, you only need to write ONE gui configuration tool, for everything!

    11. Re:Install/configure by Anonymous Coward · · Score: 0

      I would rather see all of the configuration variables stored in a local LDAP directory with a quick and dirty configuration program that could be written in anything. PHP would be easy enough. Then you could do crazy stuff like have a configuration server that once changed, cascades the changes to all the clients it serves. LDAP = really groovy, really fast.

    12. Re:Install/configure by IamTheRealMike · · Score: 1
      Here's a way of fixing this problem (both installation and configuration) - if I was in charge of Linux, this is what I'd do. Of course, I'm not in charge, nobody is and that's great, but bear with me here:

      • Standardise on XML for configuration files. No, it's not perfect for everything, but it's well known, easily manipulatable with many different tools and is an open standard. It's good enough, and the benefits of standardisation here (in terms of ease of manipulation) outweigh the disadvantages I think.
      • Make a GNU Configuration Library that simply exports some DOM interfaces for documents that can be retrieved via URIs. So - an app passes a URI to the config library along with some other information (like is this system or user config data) and gets back an XML document. The idea is that each application can be identified by a URI (or perhaps guid if you're feeling windowsish), and that they don't worry about how their configuration data is stored, only that it is.

        In the background what happens here is the config library is an abstraction layer over a datastore - of any kind. The default would probably adopt the dotfile standard that is defacto at present for personal data, and /etc, /usr/etc for system configuration. However, other plugins could implement an XML:DB backend, or store the data in a binary database, or do anything you like with it. The apps don't care.

      • Fantastic, so now we've got most programs reading and writing to a standardised configuration format, and that data will be managed by the system according to user/distro preferences. Storing stuff in personal dotfile(s)/dotfolders would be easiest and most common I'd imagine, after all this system is pretty easy to understand and work with for the user. Next up is how the sort of user who doesn't want to edit text files all day alters the system configuration.

        Everyone will have different preferences for this too, and as Linux is as much about choice as anything else, this must be accomodated. Webmin is great for remote administration, but when I'm sitting in front of my box I'd rather use the KDE Control Centre. Other people would rather have their settings altered in each application. How do you manage this?

        Well firstly, it seems pretty obvious that most of the time it's going to be easier to edit application configuration from within that app. Sometimes that won't be possible, for instance with server apps, but for desktop GUI apps like word processors it'd be easier to select the Configure menu option. In KDE/Gnome etc. apps already use standardised config dialogs, so it's pretty easy for the user. For servers, Control Center plugins (or whatever your favourite equivalent is) would seem the obvious way to go. This doesn't necessarily mean coding up a new control module each time: Broadway would let you embed a KDE/Gnome control center module into Webmin easily.

      • So now we've got configuration sorted, or at least a lot better than it was. Next up is software installation. This is a hell of a lot better than it used to be, but one popular misconception in the *nix community seems to be that non-technical end users are willing to compile apps. People who say "but it only takes 3 commands!" are glossing over the problem - often you need developer packages and reams of source code and header files for a program to compile. It can take a long time for even simple programs, and if there's an error during compilation/linking then non-programmers are screwed.

        That's why we have binary packages. Unfortunately there are two competing package systems, and this isn't a great system. Don't get me wrong, I'm all for competition, but sometimes competition is good, and sometimes it's harmful. This is one area where it's harmful, and it means I can't always get programs working on my distro simply because nobody has packaged it for me. But - nobody can seem to decide between Debian and Red Hat package managers! LSB says RedHat, Debian people say Debian, and in the meantime end users are caught in the middle. What's needed is a technically advanced solution that is distribution neutral - like for instance, GNUpdate If I was designing the LSB, this is what I'd use. It's not finished yet, but when it is it will give us backwards compatability with a distro-independant packaging solution. For those who can and want to build from the source, it will even be able to pull programs direct from CVS!


      So there you go. Simple things, not a giant leap coding wise, but simply agreeing on some things with a smart architecture would go a long way towards propelling Linux into the kind of ease-of-use that only MacOS and perhaps Windows enjoys.

      thanks -mike

    13. Re:Install/configure by IamTheRealMike · · Score: 1

      You know what, I just discovered GConf - it sounds exactly like what I had in mind. Hopefully it'll be accepted by the community as a whole: it'd be a shame if this was restricted to just Gnome environments. thanks -mike

    14. Re:Install/configure by walt-sjc · · Score: 1

      Um, most MUA's on unix send mail by calling the sendmail binary. If it's not configured right, you are screwed.

      However, if you look at the config that comes with Redhat (as an example) it only needs a couple minor edits and it's ready to go.

      Frankly, sendmail's config SUCKS. I've been configuring sendmail for for about 8 years, and while I have no problems working with it, it just gets more and more complex with each version as features are added. New users are overwhelmed, and the current books on sendmail only cover older versions. It's time for most distributions to dump it and replace it with postfix or exim. Exim is probably best.

      Fixing config IS a fairly high priority. It's what keeps Linux out of the hands of the common person / enterprise. Even being a very seasoned UNIX guy, every time a new application comes out I have to learn a new configuration system with its own goofy rules and limitations. Other UNIX flavors have interesting configurators such as AIX's SMIT, which can handle many of the common config tasks. Nothing on Linux comes close to SMIT.

      A good unix admin that can setup and secure a system start to scratch in a couple hours (and do it right) is a Very good find. If a GUI helped a novice person do the same thing we would see Windows servers being dumped by the truckload all across corporate America (and the world.) (we still need better apps for the desktop...)

    15. Re:Install/configure by walt-sjc · · Score: 3, Insightful

      Configuring Win2000 as a file / print server that authenticates against a domain controller (or IS a domain controller) is TRIVIAL. Configuring a Linux box to do the same thing is a PAIN. This is the MOST common use for corporate servers.

      You don't need regedit to do configure this unless you are REALLY into self-inflicted pain, and decide not to use the other tools. Regedit would be the same as vi in my example. It's a way to manually edit data. I am NOT describing regedit. You are thinking that my tool would be an XML browser that would basically manualy edit the first file I described. The second file is the key. It's the one that gives you all the smarts in the config tool such as whether to do radio buttons, check boxes, tabs, text entry, value validation, online help, etc. This is alot of the stuff that's hard-coded into so many different tools.

      It's also the one that would define where in the scope of configuration of everything a particular task belongs. Obviously the schema, taxonomy, etc. need to be thought out, but this is a VERY doable project.

    16. Re:Install/configure by Max+von+H. · · Score: 2
      Administing servers and systems is hard, no GUI will take that part away.


      Exactly! Each time some admin tool gets a GUI, it's a reason for your boss to downgrade you since for him GUI=easy, hence putting your salary upgrade in jeopardy since basically anyone can use a freakin' GUI.

      Hards things must look tough, for else they lose all credibility :)

      Just my twisted thoughts.

      /max
      --
      -- It's always darker before it goes pitch black.
    17. Re:Install/configure by RustyTaco · · Score: 1
      Configuring a Linux box to do the same thing is a PAIN.
      workgroup = DOMAIN
      security = domain
      password server = *

      smbpasswd -j DOMAIN

      Am I missing something incredibly mindboggling here?
      - RustyTaco
    18. Re:Install/configure by gowmc · · Score: 1

      Well, thats the whole idea. I don't develop any commonly used software, and I don't want learn how it works. It is not my job, nor is it something I want to focus on. That is how work gets done. People can make decent looking websites faster, when they don't have to actively maintain the web server. I don't have an important website or anything, and if my computer cant easily provide the ability for me to host it, then I wont. I have some content, and it is not mission critical to have it on the web, and I don't need any special options, but it is a convenience. The idea behind getting software, is that it will do something for you, without requiring you to know how it works.

      --
      -- If it aint broke, fix it till it is. --
    19. Re:Install/configure by k8to · · Score: 2

      By using an XML based file format (as I proposed in a previous comment) you get the best of both worlds. The Apache config file is a close example of what I was thinking (it's not XML, but it is XML "like".)

      Yes, you get the best of both worlds. First, it requires more software machinery to process it, but at least it's from a standard library (reliance on which damages portability across unices). Secondly, it's at least nearly human readable, unlike our current textfiles which are entirely human readable.

      So XML provides two benefits: more brittle and dependent and bloated software; and harder to edit, read, and manage files.

      --
      -josh
    20. Re:Install/configure by CounterZer0 · · Score: 1

      Why two different files? Why not just add an element <itemhelp> descriptions stuff for gui </itemhelp> to each item in the config file?

    21. Re:Install/configure by Anonymous Coward · · Score: 0

      You are oversimplifying to defend your side of the OS world.
      In fact this situation already has a handy summation that explains the problem he is referring to:
      On a system like Windows,hard things are hard and easy things are easy, whereas in a system like UNIX, hard things are hard and easy things are hard, too.
      It is tempting to ascribe this difference to the "orientation" of the two kinds of systems, Windows has always been intended to be business operating system, a system sold by one business to others. There is a drive to make the product offering attractive to the customers, their needs and values. UNIX has been much more a child of academia, there has been no central control of UNIX, no single set of parents inisisting UNIX grow up and embody their values. Instead there have been many parents, no unified control and much less of a priority placed on adapting UNIX to the values and needs of paying customers.
      Is UNIX a great operating system? Obviously so.
      Does it meet the priorities of a buying public, who want either to be able to configure their UNIX systems themselves or to hire cheap labor to do it for them? That is not the only priority of a buying public, but it is a big one and UNIX has completely ignored it.
      Clearly those kinds of values in the buying public do not match the values of UNIX's scientific and academic background and there has been a set way of dealing with the mismatch between commercial users and UNIX. UNIX vendors have said "This is the UNIX way of doing things".
      While Microsoft OS' were no threat to high end UNIX vendors business, this stock response became a massive blindspot. The essential services that run on UNIX have not changed a great deal over the past decade, or even the past 15 years, but there has never been one attempt to simplify and rationalize the configuration files into a consistent whole. I don't mean a single file but a system that can be understood from service to service. And more importantly there has been no UNIX wide drive to come up with a simple to use tool to administer these basic services the same way from UNIX to UNIX.
      To analogize the traditional situation in UNIX configuration it is as though the system init and config files were written in German but the Sendmail.mc/.cf files are written in Spanish. However it is not enough to know basic Spanish to understand the sendmail.cf file, one must have a background in Spanish literature as well. Httpd.conf on the other hand is Portuguese. You sort of understand it with your Spanish background but vital details will escape you until you put in the effort to master Portuguese.
      Now this pursuit of mastery is a fine thing for some, and a select few demonstrate a natural talent for this kind of polymathy. But these few are not sufficient to admin the world's computer systems. They are few. UNIX developed when only this small set of people were allowed near computers. Computing has become meanwhile, the need of many, indeed almost all of the people living in the Western economies.
      UNIX has to adapt or it will become more and more marginalized until the revenue stream needed to maintain and develop dries up and it succumbs.
      It is as simple as that.

    22. Re:Install/configure by tigga · · Score: 1
      It looks like it's point of view of Linux programmer ;) - No pun intended ;)

      I like more Unix sysadmin's point of view :

      There are two different issues - OS configuration (/etc,usr/local/etc files) and user applications configurationfiles.

      Unix have matured for the last 30 years. And there is a reasons why we have configuration files like they are now. Allmost all of Unixes have miniroot concept - you have a / partition and your computer is in a network and could create other partitions, install software, etc. This miniroot does not have /usr ( this is not a case for most Linux distros). All of configuration files should be editable with /bin/vi. It is good to have a lot of small configuration files - not just big one, because you could not screw up with single 'rm' and because it's more convenient in case you use something like 'rsync' to have your configuration files the same on your servers.

      If you have a Unix production server farm - you don't need to have to login into every box to make change...

      Well, I don't care about user configuration files - users are free to do anything they want in their $HOME. Oh, yes, I've got no users on my production servers ;)

      I don't know why XML is so popular, but almost nobody uses it (at least on Unix ;) I see the point to make nested config's, but it could be done using C-style nesting.

      We have to look into compatibility between BSD's,Sys V Unixes and Linux distros - and then you could forget about GNU configuration library because of it's license. If not - You are free to create your own Linuz distribution - XML Config Linux ;)

      TTFN

    23. Re:Install/configure by Balp · · Score: 1

      Yes, just that example is easy. Byt the there are about 1000 more thinks to think about in this situation. Should the server accept old compability passwords? I'm talking about the old stuff that is so easy to sniff of the network and could be burteforces in a day or two? This settings are not easy to find and change in Windows NT4 which was the last version of Windows I have worked with as administrator. Configuring this and the security guidelines for NT has a lot of regedit working. Doing a good work configuring a secure Windows enviroment does call for some regedit hacking.

      But still there are a loot of differences between installing and configuring different applications (servers) as you state, in Windows each application has it's own speciel written software for confguring. To combina all these into one program that are configured from a configuration I don't think will be an easy task. That will limit the configurations to hadle with simple graphics, simple checkbuttons, simple radio buttons and so on.The real help is from specil written tools that take this one more step ahead. For firewall configurations you might want a network map. For the mail configuration there are several oher thinks to think about. For the editor there a re yet other things. I can't think of all good possibilites as they differ between most applications and this is the problem.

    24. Re:Install/configure by Balp · · Score: 1

      I don't aggree, on aloot of thinks:

      > On a system like Windows,hard things are hard and easy things are easy, whereas in a system like UNIX,
      > hard things are hard and easy things are hard, too.

      No, on windows easy thinks are hard, and hard things are easy, maybe too easy because you miss soem detalis. If you look into a corperate enviroment, windows administraors runns arouns doing easy installtions. Thats easy tasks, they should not need all this running arouns, yes, sysem like SMS might help the situations al little but still there are aloot of thinks that still ain't taken case of. The Un*x like solutions this these problems with automatically configuring clients, Suns utters in the early 90's the network is the computer. Is far better and here easy things like installing a patch/new software too all clients, are easy.

      These configurations formats are actually a very little part of the problem, or soulution. Yes that might be something to think about working with a few clients, but as the number of installations grows the probbles gets smaller (i.e. the number of configuratios-files remains relatively constant while the number of instances and other problems grew.

      > Does it meet the priorities of a buying public, who want either to be able to configure their
      > UNIX systems themselves or to hire cheap labor to do it for them?

      Hireing cheap staff to administer your computer systems is othen BIG problem, one problem that the easy look of administering Windows shurely in my eyes has pointed out. A loot of companies thinks that handeling a Windows installations is so easy that anyperson could do it, and then they will choose andbody, usally the one that takes the smallest sallary and already is in the organisation. Giving that person a few hours aweek to pend on administering the sysetm. Still don't figuring out that he has installed IIS and got the code red and Nimda virus.

      This love for cheap labor is other a big problem, knowledge costs. But it often are a good investment.

      > To analogize the traditional situation in UNIX background but vital details will escape you
      ... loot of language talk removed ...
      > until you put in the effort to master Portuguese.

      What I'm trying to tell you is that the language is not the main problem. It's realtive easy to thet the hang of. There is a good dictonary and hrase book that will translate all the words to understandibla language. The problem is that you have to understand the hard sience behind each configuration. A problem that are discussed sometimes in the same papaer as the language itself. Even if you under stand the common language of all science (english) it's stll nor easy to read scientific reports from differnt areas, you need a loot of knowledge to understand the implications of a report of theretical physics and a loot of different knowledge to understand one in philosyphy. Even if both are written in english.

      The same way, understanding HTML doens't make you understand XML putted out from word, or Parole SGML, or docbook. Even if all these are based on the SGML standards. I don't actuially beleve that a singel format will do anything good.

    25. Re:Install/configure by alext · · Score: 1

      And presumably a third file to verify the settings? Or maybe that's the application's job, in which case I can imagine that appconfig tool interfacing would be fun.

      Configuration requires data and logic - you need a language like Python or LISP as others have commented. XML runs out of steam with any non-trivial application.

  32. hardware != software. by autopr0n · · Score: 2

    Hardware, for the most part, can be automaticaly configured. In fact, I've never once had an issue with hardware configuration in linux (except for tonight, ironicaly. cdrecord can't find the burner I put back in the system, even though it worked before)

    The problem is software config once you've already got the machine setup. Programs generaly have diffrent formats for their configuration. even windows 3.1 was better then this with their .INI files. geez.

    --
    autopr0n is like, down and stuff.
  33. Could you be more specific? by wirefarm · · Score: 2

    Your post was a bit vague on the name of the actual product you are endorsing...

    ;^)

    (I just counted the word 'Webmin' like 17 times in your post...)

    Actually, I couldn't agree more.
    A couple of weeks ago, my boss called me 2 hours before I was supposed to be at work to tell me that something needed to be fixed on the server. I literally rolled over, grabbed my laptop, logged in using the ssl option, fixed it and went back to sleep.

    Now you might say that all I really needed was SSH and VI, but I hadn't had any coffee yet and Webmin just required a bit of clicking. It rarely screws up and doesn't mess with your config files.

    I wrote a bit more on it on my web site a while back - scroll down about half way.

    Cheers,
    Jim in Tokyo

    --
    -- My Weblog.
    1. Re:Could you be more specific? by Spoing · · Score: 3, Funny
      (I just counted the word 'Webmin' like 17 times in your post...)

      Well, I went to both the Creation Science and L.Ron Hubbard schools of logic -- both known for scientifically proving a point by repeating it as many times as possible no matter how correct. Unfortunately, I feel as if I've shamed them since I did include some information that could be verified. Facts are such pesky things. :)

      --
      A firewall can not protect you from yourself. Turn off what you do not need. Do not use the firewall to do your work.
  34. Needs Meta configuration file and config server by Anonymous Coward · · Score: 2, Insightful

    I've been thinking about this for a while and definately think that there needs to be various elements to a Unix configuration system:

    1) The concept of local and group configuration. There needs to be a Meta config file that specifies what individual users can and can't configure. So for instance, if a company wanted to allow users to configure their word processors however they wanted, exect that they couldn't make any changes to the dropdown menu of corporate document templates, that would be specified in the Meta file.

    2) A configuration server. I see no reason why this couldn't work with http to deliver XML config files to individual workstations. The Meta files could reside on the server, the local files on the hard disc. You could imagine in this senario that in order to configure your machine all you would have to do is enter the appropriate URL and press go:

    http://intranet.company.com/configs/standard.xml

    Then you could have different configs for different types of staff, and supported and unsupported configs (from the point of view of IT support).

    You could also perhaps have 'approved' config files for supported hardware.

    Having this type of Meta config file also allow IT support to have a clear idea of all the hardware used.

    I know that probably lots of people on Slashdot don't like the idea of IT support having control over the config of their machines, but big companies like it and if Linux is going to conquer the desktop then this is the type of tool that will help get it there.

  35. Psychological, not technical holdup ! by ehack · · Score: 2, Interesting
    It's the revenge of the geeks. A mindset, not a technical issue. If you cannot figure out how to configure the OS the geeks wrote, you do not deserve to be using it.

    In an interview of an IBM director, I asked why their then current OS had no GUI (when Windows was chipping at the userbase). Reply:
    We do not need mice - We are not children !"


    Mindsets change - at the speed at which glass flows :)

    --
    This is not a signature.
    1. Re: Psychological, not technical holdup ! by NDPTAL85 · · Score: 0

      Then explain IBM's recent embrace of Linux.... A Unix like OS thats best used with a CLI.

      --
      Mac OS X and Windows XP working side by side to fight back the night.
    2. Re: Psychological, not technical holdup ! by Anonymous Coward · · Score: 0

      He was right. The addition of the mouse has made nice GUI computing possible, but has turned the problem of "ease of use" into "how do we slap a gui on this"? GUI != "easy to use"

  36. Some Stupid Questions by heideggier · · Score: 5, Interesting
    Would it be possible to get rid of dotfiles? While alot of people like them I don't know why you couldn't have a ~/etc in the home dir. I get lot's of weird looks when I say, you keep all the configurations in /etc but user config's in dotfiles. There's must be a good reason for this could someone please explain

    On that thread what the hell is /usr/etc used for, or /usr/local/etc? won't it make more sense to move /etc here instead?

    Do we really need a central registry type file like the article proposes, surly isn't a front end enough, I can't understand what difference this would make. Having a central file which contain's everything like System.dat seem's to be a major security floor in windows since if you can crack that file you pretty much have root on the machine. Not being able to set different permissions for something like fstab or shadow would be pain. Although to be fair the article proposes it as a backup. If it ain't broke don't fix it.

    Apart from these questions I think that this was a pretty good/fair article, although I thought that it was a bit unfair to compare linux to windows/OSX since they are completely different OS and something like creating a central config app might work to make linux less customisable IMHO. Most distro's tend to have app's along these lines anyway, what the hells wrong with DrakConf?.

    --
    Pianist : Some jerk whos taught themselves how to type in rhythm
    1. Re:Some Stupid Questions by doon · · Score: 1

      The nice part about /etc & /usr/local/etc is the age old argument about having a local tree. For instance. All of our boxes run the same version of FreeBSD. They all have /usr/ nfs-mounted from our main file server. All of the local packages are installed in /usr/local/* so when you upgrade the core OS, you don't mess with any of the local packages. You don't worry about overwriting any configuration files with the defaults etc..

      --
      To E-mail me, replace the first period in my domain with an @
    2. Re:Some Stupid Questions by Twylite · · Score: 3, Informative

      These is no technical requirement for dot files. If the entire community decided to standardise on ~/etc, it would happen.

      The general theory of /etc, /usr/etc and /usr/local/etc is quite simple. System configuration goes into all of these directories (no user config). Configuration needed at bootup goes into /etc. Configuration needed for OS-default applications goes in /usr/etc, which is available once /usr (containing the OS-default applications) is mounted. Configuration for application you have installed specific to your system (stuff that should be in /usr/local) goes into /usr/local/etc.

      The article is not proposing a central configuration file, but a standard for configuration. That would be like saying all application MUST store their configurations in a specific directory, and they must all use the same file format (say XML). Storing all configuration files in the same directory is not the same as storing all configuration in one file.

      The benefit of a common location and format is that every app or admin knows where to look for files, and how to interpret them. The structure of each file is identical, so you don't need to know if you use #, //, ' or $ for comments, and whether each line must start with a TAB or end with a ; . What each file says is still different, its just how it says it. Currently trying to work with config files on Linux is like being in a building and trying to talk to people, but everyone is in a different room and talking a different language. Standardize the language and the location, and you only have to content with understanding what is being said.

      Incidently, system.dat is not a security problem. In Unix terms that file is r/w by root only, and access only occurs through a kernel-level API. So "cracking" system.dat is no more or less hard than "cracking" shadow.passwd .

      --
      i-name =twylite [http://public.xdi.org/=twylite], see idcommons.net
    3. Re:Some Stupid Questions by Spencerian · · Score: 1

      Sorry for repeating myself: OS X, for instance, gets rid of the dotfile dependency (or at least supplements their support in some instances) with NetInfo, a database for handling this stuff.

      --
      Vos teneo officium eram periculosus ut vos recipero is.
    4. Re:Some Stupid Questions by CH-BuG · · Score: 1
      > On that thread what the hell is /usr/etc used for, or /usr/local/etc? won't it make more sense to move /etc here instead?

      When you use autoconf for instance, you can define the installation prefix of your software, which means that everything gets under /usr/local. This is IMHO a good thing, as it allows to install programs in a limited area and use tools like Stow to manage it...

    5. Re:Some Stupid Questions by hacker · · Score: 2, Funny
      On that thread what the hell is /usr/etc used for, or /usr/local/etc? won't it make more sense to move /etc here instead?
      /usr/local/etc exists because you screwed up when you configured the package, by not properly adding the autoconf --sysconfdir=/etc flag, which is assumed if you also use the --prefix=/usr flag.
    6. Re:Some Stupid Questions by nehril · · Score: 2

      the only way linux would get to such a state would be for a distro vendor to bite the bullet and rewrite ALL the included apps/utilities to use the new format.

      that means little stuff and big stuff, like crontab -> xml format, smb.comf -> xml format and .GnuXDesktopWidgetFoo -> xml format.

      who will step up to the plate? the design is the easy part.

    7. Re:Some Stupid Questions by Junta · · Score: 2

      Though far from alleviating your troubles with the many many many many applications that like to put .files and .directories right in your home directory, I thought you might find this interesting.

      The LOX Desktop (http://rox.sourceforge.net/) is a litttle project to bring an Risc-OS like environment to X desktops. Mostly a file manager (but a bit more), but one huge thing about it is the recommeded AppDir packaging. Basically, every package is almost entirely self-contained, except for preferences. For system-wide prefs, something like '/usr/local/Choices/' is used and for personal, ~/Choices/. That way all config info is in a separate location and it is *very* easy to uninstall packages. They provide ROX-Lib for Python writers to *very* easily use this structure. Although it diverges from the path significantly, and provides a Python-Centric API, it has some really good ideas. I know a lot of little utilities exist including a media player (PythonTheater, http://xtheater.sourceforge.net/) that obey this little standard.

      --
      XML is like violence. If it doesn't solve the problem, use more.
    8. Re:Some Stupid Questions by Anonymous Coward · · Score: 0
      These is no technical requirement for dot files.


      I disagree. It makes perfect sense for all the end-user's settings to be stored on the end-users "home" directory. If you start splitting up the settings from the user account, you begin to introduce nightmares like those you see on windows with "roaming" accounts that never quite work the way you expect them too. It also makes sense from a security standpoint, since an application running as an arbitrary user shouldn't have write permissions to a file located in /etc unless it is explicitly given by the site administrator. Thinking you are safe just because you can only write to the file via an API is not good enough, because configuration daemons and/or libraries can (and usually do) have holes in them.

    9. Re:Some Stupid Questions by ethereal · · Score: 1

      You guys must never use dotfiles for anything, or you wouldn't totally miss the point of them. A dot file is a per-user set of config settings that can override the system-specified defaults in either /etc or the app-defaults file. The reason that we have dotfiles is (surprise!) all users don't want the app to work the same way. The only reason to put them in the user's home directory is so that they are more convenient to the user, and also because it makes the permissions setup a little easier.

      Putting all config info in a centralized place for all users, whether it's /etc or the Registry, is a big mistake. You'd think Microsoft would've proven that sufficiently by now, but I guess not :) User-specific config info should be directly in the user's domain and under the user's control.

      P.S. and yes, /usr/local/etc should be a symlink to /etc if you find the two directories to be one too many. A bigger question is between apps that use /usr/share or /usr/local/share rather than /etc for config files.

      --

      Your right to not believe: Americans United for Separation of Church and

    10. Re:Some Stupid Questions by greed · · Score: 2, Informative
      OS X, for instance, gets rid of the dotfile dependency [...] with NetInfo, a database for handling this stuff.


      NetInfo sits in places of the same sort of things that NIS, NIS+ and DCE registries can replace: passwd, aliases, exports, fstab, hosts, group, printcap, and stuff like that.


      Configuration files are stored in ~/Libraries/Preferences. Apple recommends the use of XML, but there are many preferences files that are in more traditional MacOS resource format. And then there's Mozilla....


      So, yes, technically your preferences don't go in dotfiles. And it is nice that they're all in one directory which has an obvious purpose. But each application can still choose its own file format.

    11. Re:Some Stupid Questions by GileadGreene · · Score: 1

      They weren't suggest ditching the concept of user-specific configs. The question had to do with the reasons behind having the user-specific config in a dotfile vs in a $HOME/etc, the latter being somewhat more consistent with the rest of the filesystem layout. Lots of folks have $HOME/bin for user-level apps, but for some reason it was decided that user-level config would go into dotfiles. The original poster was asking why.

    12. Re:Some Stupid Questions by praedor · · Score: 2

      Well, to /etc, /usr/etc, and /usr/local/etc, we can also add such as /usr/share/config, /usr/local/share/config. There is all sorts of config files there as well. I would think it nice if it were narrowed down a bit: core system/os/daemon configs independent of wm or environment go into /etc (or better, rename it to /config so it is self-explanatory) and all other configs go into /usr/share/config or /usr/config. For personal settings, you have
      ~/config.


      In the end, I don't care HOW it is organized but that it be standardized and streamlined the same way on ALL distros. I don't like having to do "find" or "locate", I want to know where I will find something upon install, be it Suse, Mandrake, Redhat, Debian, etc, etc.

      --
      In Bushworld, they struggle to keep church and state separate in Iraq as they increasingly merge the two in America.
    13. Re:Some Stupid Questions by ethereal · · Score: 1

      Hmmm, I may stand corrected (depending on whether /.'s "Parent" link is working right today. Nope, it isn't :) Me, I have $HOME/.bin on the same theory - I don't want a lot of stuff in my directory listing that I don't need to see.

      --

      Your right to not believe: Americans United for Separation of Church and

    14. Re:Some Stupid Questions by smcv · · Score: 1

      For historical reasons, /etc is configuration; I can see why that's weird (what sort of a name for system configuration is 'etcetera'?) but changing it would require changing *every* Unix application that has configuration, which distro packagers wouldn't be too happy about. (As it is, the Debian packagers have just about finished moving all documentation in all official packages from /usr/doc to /usr/share/doc to comply with the Filesystem Hierarchy Standard...)

      Anyway, the Filesystem Hierarchy Standard (which is also part of LSB) puts config files in /etc, and only in /etc. That's also where Debian packages put all system (i.e. non-user) config files - I don't know whether that's Debian being FHS-compliant, or if it was already part of Debian policy. I've heard SuSE is the nearest to a LSB distribution so far, so they probably do that too.

      Things in /usr shouldn't change except on upgrades and such; it's meant to be possible to have /usr mounted read-only and still reconfigure things.

      /usr/share is reserved for data that could (at least in theory) be shared between computers with the same or different hardware: help files (/usr/share/doc), graphics, sounds and so on for programs that need resource files and don't have them embedded in the executable, that sort of thing. Putting configuration here would (again in theory) force all the computers using this shared directory to use the same configuration, which often isn't suitable.

      As for /usr/local, that's reserved for you, the local sysadmin. If it's in /usr/local on a FHS-compatible system, either it should be something you put there yourself, or part of something you compiled from source (i.e. no RPMs or DEBs or whatever involved), or possibly an empty placeholder directory (the package for the perl interpreter is allowed to create /usr/local/lib/perl, for instance). If the packaging system put anything other than an empty directory there, that package isn't FHS compliant; complain to the packager about that.

      Dotfiles are also a bit of a mistake-kept-for-historical-reasons, although there is at least a tendency towards dot directories (.gnome and so on). I suppose it would have been better if all the configuration went in ~/.config/ or ~/.etc/ or ~/etc/ from the start, but as with /etc, that would require everything to agree on a change, which is unlikely.

    15. Re:Some Stupid Questions by Anonymous Coward · · Score: 0

      My question is:

      Why are all the SUPER important files in etc? I mean, take off the Unix cap and think about this for a second... does it make any sense for the most important configuration files to be stored in a directory that is Latin for "and the rest"? Shouldn't it be "System" or "Important Stuff" or "DONT_DELETE_UNDER_ANY_CIRCUMSTANCES_THESE_ARENT_T RIVIAL FILES" ?

    16. Re:Some Stupid Questions by hburch · · Score: 1

      Warning: meandering ahead.

      the design is the easy part.

      I disagree. Design is the only part. I'm more concerned with the fact that the design is focused on the storage technique (XML or something else), when the real problem in my mind is the access technique. If you write APIs to get configuration information, the storage technique can be varied behind those APIs and it won't matter. Of course, you need APIs for shell, perl, and C/C++, which is problematic, but that's the design issue.

      So, what do the APIs look like? How do I address within this space? There are three basic operations that I see: getting and setting variables is pretty easy once you define an address methodology. The harder problem is getting the configuration description (how is a program set-up). Perhaps this is just another get, but the structure of the description language is important.

      Rather than focusing on the backend issues, start with the user issues (both sysadmins and programmers). You can write really bad implementations of the APIs to start with (think .Xresource data format as the backend) but if you get the interface issues right, you've succeeded.

    17. Re:Some Stupid Questions by nehril · · Score: 1

      I see what you're saying, but regardless of front-end design, there is one giant hurdle: getting the coding done to modify every single app in a distro. API issues are great, but at some point the rubber has to hit the road and massive coding changes are going to have to happen.

      Most free software programmers won't see any huge benefit to recoding their own apps to solve an already solved (from their point of view) problem. The people with an incentive are the distro makers, since it's in their best interest to have a common, easy administrative interface.

      I do agree that the backend should be transparent to the user AND the app programmer, however.

    18. Re:Some Stupid Questions by Anonymous Coward · · Score: 0

      Totally ignoring the implementation effort needed for a design is a sure plan for making that design ignored by implementors - like system vendors and free s/w app writers/maintainers.

      If a clean design were the only really important issue, we'd all be coding in Eiffel on BeOS.

    19. Re:Some Stupid Questions by GileadGreene · · Score: 1

      Fair enough - but why not then have $HOME/.etc? That way you get the advantage of hiding the config, but it doesn't clutter $HOME, it's all in one place, and it's roughly consistent with the Unix filesystem. Or is there some advantage to having individual dotfiles at the top level of $HOME that I'm missing?

    20. Re:Some Stupid Questions by heideggier · · Score: 1
      Yeah that sound's like the best solution, Although when I posted the questions I was expecting some highly technical answer on why we used dotfiles to begin with instead of a ~/etc or ~/config, something along the lines of why arrays in C start at zero and not one. It seems a pity that I haven't gotten a proper answer to that apart from "it has always been so" (a ~/.config dir would be a good idea IMHO).

      --
      Pianist : Some jerk whos taught themselves how to type in rhythm
    21. Re:Some Stupid Questions by ethereal · · Score: 1

      OK, even better. Like how most kde dotfiles end up under ~/.kde, for example. This would help a lot with apps like StarOffice that show all files, dot and otherwise, in the File|Open dialog.

      All right, I'm convinced. Who's going to do it?

      --

      Your right to not believe: Americans United for Separation of Church and

  37. HAH!! by autopr0n · · Score: 2

    You expect the open source community to use Java!? It's plain C all the way! (just look at Genome... hell, there are some guys (dotGNU IIRC) who want to implement .net in plain C!)

    Ok, so that's not entirely true. Some OSS people like java (Freenet, Apache Jakarta). But I seriously doubt that anything Java based would ever make much inroads in the free Unix world. (Maybe Solaris could make some headway, though :P).

    And there's a few good reasons why it shouldn't. Java is a little top-heavy, and it's not platform-neutral, it's its own platform... and connecting it to other technology via the JNI is a pain in the ass. I tried JavaBeans once, on a windows box at work. It was a nightmare. I ended up using TCP/IP for interprocess communications. (then again, TCP/IP might not be a bad choice for a central config server, you could do things like remote config. hrm)

    Anyway, I think XML plus some schemas might go a long way to doing what we want, without requiring everyone to link in a JVM.

    --
    autopr0n is like, down and stuff.
  38. It seems you're missing the point by Nailer · · Score: 5, Informative
    The problem isn't with the lack of a standardized configuration tools, its a lack of standardized configuration file formats. This allows:
    • Systems administrators to work with new applications config files without worrying about how exactly a comment should look
    • Automated parsers that don't have to be re-written for every config file - you'd have a whole buynch more webmin modules if this was the case.
    • GUI folk to be able to use their graphical interfaces knowing that they won't screw up a config file, because there's a very rigidly defined format for the config file and a standard parser that's very well tested
    • Better manipulation, imports, exports, etc of information into config files, as a popular format allows for the development of tools to perform these tasks across many different applications
    1. Re:It seems you're missing the point by Spoing · · Score: 2
      All that is important. Yet, for now Webmin really does do a good enough job.

      Even if these changes were added in right now, it would still take a few years for them to be so common that they could be relied upon.

      --
      A firewall can not protect you from yourself. Turn off what you do not need. Do not use the firewall to do your work.
    2. Re:It seems you're missing the point by hacker · · Score: 1
      The problem isn't with the lack of a standardized configuration tools, its a lack of standardized configuration file formats.

      This is not rocket science. Why not use the standard tools we're already using today... autoconf, m4, automake, libtool.. and have them build a "standard" config file for us at configure/build time? Why do we have to hand-roll and hand-parse our own formats all the time? We don't.

    3. Re:It seems you're missing the point by thing12 · · Score: 3, Insightful
      Webmin really doesn't do a good enough job. Really -- try using webmin against the latest version of most software and you'll be sorely disappointed. The problem is that the people who release the webmin modules are NOT the people who release the software that webmin is configuring.

      What we need is exactly what the author is proposing. A generalized configuration system that works off meta data that the software developers supply.

      • All the possible configuration options in logical groupings
      • descriptions of each option
      • default values
      • validations on input values
      • being able to label options as 'experimental', etc...
      • and of course option dependencies - that is if this option is turned on, then enable these 5 other options.
      To do it right you'd ultimately you'd probably need to have a very light scripting language with flow control and variables.

      But the important thing is to get a workable standard in place, one that the majority of developers can rally around and will be happy to develop configuration scripts for their applications. Most developers wouldn't even have to change the way their application reads the config files - documenting everything in a form that this 'configuration manager' can use would be enough. It's already been too long - we shouldn't wait any longer to get this process moving forward.

    4. Re:It seems you're missing the point by ethereal · · Score: 1

      The config engine used by GnuCash already does most of this stuff in Scheme (looks like Lisp). Config file entries are actually bits of code that set appropriate options within the config schema. There are hooks to get/set config items from both the Scheme- and C-side code. There are specified types for each kind of configuration item which translate into both the code to get/set the config file item as well as the code to display the item in the GUI config screens. It's a pretty impressive system.

      The downside is that it's complex enough that you can break it if you don't know what you're doing. Also, the ease with which it can be changed means that the config file format (in terms of the possible choices for each config setting) can be rather fluid.

      --

      Your right to not believe: Americans United for Separation of Church and

    5. Re:It seems you're missing the point by ttfkam · · Score: 2

      First you have to choose the "standard." Right now everyone is bickering about their pet implemention (myself included). Unfortuantely, different programs have different needs. And rather than simply accept the obvious choice of the format that handles all configuration types (flat, hierarchical, etc. -- smells like XML to me, can you tell I am biased?) people still cling to their "my program only needs three config parameters so I'm going with my own custom, unique, weird-delimiter format" ideals.

      --

      - I don't need to go outside, my CRT tan'll do me just fine.
    6. Re:It seems you're missing the point by Anonymous Coward · · Score: 0

      "my program only needs three config parameters so I'm going with my own custom, unique, weird-delimiter format"

      AFAICT, Unix programmers just LOVE writing YA config parser. Something about using sed or C's string functions them a big woody, and it's virtually impossible to convince them to use some other guy's config library, especially if the other guy is a some W3C committee. Seems dull to me, but whatever.

      Of course, most OSS programmers are volunteering so that they can do it The Right Way (which is Their Way), and you can't really coerce them to do otherwise. Perhaps if Dennis Richie himself appeared before them and added config functions to the core APIs (like Apple and MS have), then everyone would come around.

    7. Re:It seems you're missing the point by Nailer · · Score: 3, Interesting

      Why not use the standard tools we're already using today... autoconf, m4, automake, libtool.. and have them build a "standard" config file for us at configure/build time?

      Probably because a lot of the configuration files which are editied by m4 aren't considered human readable.

    8. Re:It seems you're missing the point by alext · · Score: 1

      ...you can break it if you don't know what you're doing...

      but of course being potentially code (verification logic) as well as data (settings), a single config file can be manipulated by a generic tool, unlike the situation with XML.

  39. Apples OsX by __aaqwna9206 · · Score: 1

    The people at Apple had it a bit easier than everyone else in the *nix world. The had only to support a limited range of hardware and configurations to support due to the fact that OS X run on mac's and only mac's. The diversity of hardware options in the "real world" of *nix such a configuration is way out there IMHO.

    When talking about GNU/linux and the LSB we have a change to make it work, but is still far away.

    I don't see it happening across aix, solaris, Tru64 and the other commercial unicies in my life time.

    That my two cents

    /Lehmann

    1. Re:Apples OsX by Spencerian · · Score: 1

      First off, I assume you mean "limited" as in "smaller number of" rather than "ability."

      Two, although Apple doesn't directly support all the results of this, the Darwin core (all the non-Aqua interface parts) runs on far more systems than OS X's G3 and G4 processor systems--including X86 processors. It's not perfect, but it's there.

      I see your point, though. There may never be a "single" Linux distro because everybody loves to build and tweak, and the hardware variations are immense. Apple, as is their tradition, dispenses the "tweak," although you still can if you wanted to.

      --
      Vos teneo officium eram periculosus ut vos recipero is.
  40. It's FreeBSD... by Vexler · · Score: 0, Redundant

    They built in on top of FreeBSD, not NetBSD. Go to their website to verify the claim. Or did someone fall asleep at the News Verification Department yet AGAIN?!?!

    1. Re:It's FreeBSD... by ZigMonty · · Score: 2

      No they didn't. A lot of their code is from FreeBSD, and they're big enough to admit it. They built Mac OS X on NeXT's OS which is a Mach based BSD. They didn't just take FreeBSD and slap a GUI on it. Read their page more carefully.

    2. Re:It's FreeBSD... by Anonymous Coward · · Score: 0

      That's right. Take FreeBSD and try to run it on a PowerPC... right, didn't think so.
      FreeBSD doesn't run on the PowerPC architecture. Any code that makes assumptions about the CPU had to use NetBSD.

  41. Re:How to fix Linux costs? by jdma · · Score: 1

    Seems like someone is talking without knwledge about anything related with Linux.
    If you count the number of crashes and problems of a Web Server Win 2k with IIS it's a shame compared to a Linux with Apache.
    It also seems that you don't know anything about admin. Someone who's admining must be competent enough to solve the problems that happen. If you want a transparent system to admin and you don't know anything about how it works then you shouldn't be admining.

  42. Some similar thoughts by Eloquence · · Score: 3, Insightful
    I had some similar thoughts when I posted this, which describes a system that would be capable of reading and writing various configuration files and at the same time try to establish a common configuration file standard. The idea is not new, a lot of similar attempts have already been made. I think the only way this can be successful is through massive collaboration in writing filters to support existing config formats. This means that the filters themselves have to be fairly simple (possibly even simpler than something like perl or awk, but everything should be supported), and that the configuration manager, as the Freshmeat author calls it, should offer direct access to the filter library so that you can easily add modules to support new programs.

    There's lots of cool stuff you can do with standardized configuration files, and dynamically generated GUIs are only one part of it. But developers are not going to change their file formats unless there's a real push for a specific format. Thus, to establish any format, you first have to develop lots of filters to support legacy software. As the FM author correctly points out, such a system would make software configuration under *x potentially much easier than under Windows.

    Finally, to all the hackers who fear that this will take away their file-meddling options: If properly implemented, it won't -- and if it does, it will not get accepted as a standard, exactly because of stubborn people like you :-)

  43. human interface guidelines by dunkelfalke · · Score: 2, Interesting

    maybe the community should agree about common human interface or at least about a common configuration file interface so a kde/gnome/... app can be written using the data for providing an easy setup tool.

    i think it would be a good addition to the linux standard base

    --
    "It's such a fine line between stupid and clever" -- David St. Hubbins, Spinal Tap
  44. Hello� by kiwipeso · · Score: 0

    I suppose that if you're that ugly, you would have to show the world your ass instead of your face...

    BTW, goatse is dead...
    I think he shat out his kidneys or something...

    --
    - Kaos games and encryption systems developer
  45. What configuration nightmare? by phaze3000 · · Score: 3, Insightful
    As someone who has used Linux for some time, and also had the misfortune of using Windows (and doing those MCSE things for all my sins), I can honestly say that I don't think the configuration is the problem. The varying standards used by programs aren't a particular problem as long as there a decent comments in the file (and there usually) are.

    The real issue is finding the configuration file; if you're using a distro you're not used to, then one often has to resort to using find. This is exactly what the Linux Standards Base was designed to avoid, and if all distros were to follow this model then I can't see that there is any real problem.

    At the end of the day, we're not talking about things like setting background pictures in the window manager, we're talking about setting up mailservers, webservers and the like. If you're not cluefull enough to edit a text file then you're not cluefull enough to be put in charge of setting one of these servers up either.

    --
    Blaming GW Bush for the Iraq war is like blaming Ronald McDonald for the poor quality of food.
    1. Re:What configuration nightmare? by mlsemon2 · · Score: 1

      No kidding. I've had trouble with config files, but that's a matter of finding the system config file for an app, whether it's in /usr/lib/lynx/lynx.cfg or at /opt/kde/share/config/apps. The file formats of the .dotfiles themselves have been no problem. Why waste time on this?

      Quite a few OSS sites ask people to write documentation for programs, and that would be infinitely more useful for Unix usablility than making a unified config file format. I understand the desire of programmers to scratch a personal technical itch instead of doing something that's boring but simple and useful, but this is gettting ridiculous. Config files??? Sheesh.

    2. Re:What configuration nightmare? by Anonymous Coward · · Score: 0

      i agree!

      with text-file configs, and good documentation all you need to do is grep for likely keywords related to what you want to do....

      it things get bizarre it might have to do with a weird side-effects or unclear relationships with config options, but a lot of big apps' docs point these out to the user in either comments or seperate docs.

  46. Some *correct* information about MacOS X config by lcracker · · Score: 5, Informative

    Yes, I know this is a comment on freshmeat (I wrote it).. but it pains me to see so much incorrect/incomplete information here that people just believe for lack of experience with OS X.

    ---

    MacOS X's solution to this problem is a couple levels
    deep. There are three (?!) systems for configuration:

    (1) /etc (which is a symlink to /private/etc):
    It's still there, used for a few things. But not much.
    More or less just stuff that runs before everything else,
    or stuff that apple doesn't have much control over, like
    Apache.

    (2) Netinfo database:
    basically takes a lot of stuff out of /etc and puts it in a
    "registry", this registry is accessible over a network
    connection for remote administration and such. You
    can also do some funky server/client stuff with this too.
    There's a command line interface to it that lets you
    read/change 'keys' and also dump out certain keys in
    well known /etc style formats

    (3) Property Lists (.plist):
    This is the way that just about all configurable
    information in MacOS X is stored. There are a couple
    different kinds of plists that the Core Foundation
    libraries understand, but the most prevalent of which is
    the XMLified version, the others are either vestigal or
    are used primarily for localization of strings. Every
    application (well, bundled app) on the system has an
    info.plist file that has application settings that the OS
    reads from on app startup, but you can also put your
    own tags in there. Applications also have the option of
    putting their own tags in the Resources subdirectory in
    their bundle, which is the preferred way. OS specific
    preferences (requires admin privs) go in /System/
    Library/Preferences, System-wide app preferences go
    in /Library/Preferences, Network-wide app prefs (only
    applicable if you have OS X Server on the network) are
    in /Network/Library/Preferences, and User app prefs go
    in ~/Library/Preferences.

    The Core Foundation framework manages more or less
    all of the work. They'll find the plist for you, let you
    work with the data structures, and serialize/deserialize
    it to plist format. It's really quite nice to use. Just
    about all of the data structures in Core Foundation are
    serializable, even the property list data structures, so
    sometimes you'll see property lists with serialized
    property lists inside them.

    As far as unified configuration interfaces go, there
    really isn't a need for any in Mac OS X.

    You're on your own with /etc, as nothing there is meant
    to be novice-tweaked anyways (In OS X).

    There is a GUI NetInfo Manager and command line tools
    to configure the stuff in that database (nothing a
    novice needs to touch).

    Configuring the plists is primarily done inside the
    applications that you use (since it's so easy for the
    developer to use Core Foundation to read/write
    property lists), there are no separate configuration
    programs, but there are command line tools for working
    with plists. If you're using the developers kit, you get a
    little (not very poweful and pretty inefficient) program
    to edit plist files graphically, but otherwise you either
    do it by hand with a text editor or the command line
    tools and risk breaking things or let the apps take care
    of it themself.

    BTW, all of the Core Foundation stuff is available in two
    flavors: C, and Objective C. The C libraries are pretty
    straightforward and work in all situations, but if you're
    writing an app using the Cocoa framework in Obj C, it's
    way easier.. though there are a few little peculiarities
    about the Obj C implementations. The bonus is that
    you can use both at the same time, and Core
    Foundation types / Cocoa instances are interchangable
    by some voodoo that Apple did. If the Cocoa
    implementation doesn't work right (As with serializing a
    plist that has NSNumber Boolean types), you just use
    the Core Foundation implementation and a typecast..
    voila, one line of code changed and everything is
    happy.

    1. Re:Some *correct* information about MacOS X config by Jordy · · Score: 5, Informative

      NetInfo exists for the same reason NIS, NYS, YP, etc exist; to centralize system configurations across a network of machines. Things like printer configurations are typically the same in a corporate environment.

      NetInfo is actually Open Source. Though I'm not sure how up-to-date it is.

      As for /etc... some of those are synchronized from NetInfo, not the other way around. A good number of them are just stub files, but there are a few that do not exist at all in NetInfo at all.

      --
      The world is neither black nor white nor good nor evil, only many shades of CowboyNeal.
    2. Re:Some *correct* information about MacOS X config by lcracker · · Score: 0, Redundant

      Correct, they are not synchronized. What I said was that you can dump info from the netinfo database as the native /etc file format:

      known formats:
      aliases,bootptab,bootparams,ethers,exports,fstab ,g roup,hosts,networks,passwd,printcap,protocols,reso lv.conf,rpc,services,mountmaps

      You can of course write your own stuff, but all of those are built-in to the nidump utility.

  47. This is funny by CaptainZapp · · Score: 1
    There's an article about the complexity of adminstring U*X on /. and what happens?

    Dozens chime in with different tools approaches and ideas (XML, YAST, linuxconf, etc,etc,etc...)

    Guys, that's not a unified approach as defined by the article...

    --
    ich bin der musikant

    mit taschenrechner in der hand

    kraftwerk

  48. Webmin anyone? by ONU+CS+Geek · · Score: 1
    Has anyone tried webmin? The only thing it requires is Perl, and it works rather fine, and it supports SSL. We use it on our boxes here at work and it's really easy to install/learn/figure out wtf is going on.

    There are also third party modules for things like netsaint, firewalls, etc.; the API is out there if you want to do your own as well.

    --

    I disable sigs...do you?
  49. MS PWS configuration nightmare by kubota · · Score: 1

    I once installed MS PWS and found that the configuration was web-based. I turned off a few checkboxes on the configuration page. Then, the configuration page never appeared again.

    I love simple methods for configuration, like plain text.

  50. DEJA VU by Migx · · Score: 1
    http://slashdot.org/comments.pl?sid=27607&threshol d=0&commentsort=0&tid=117&mode=thread&cid=2966431

    --
    Migx
  51. The best first step....Retire sendmail by hey · · Score: 1, Offtopic

    ... enough said

    1. Re:The best first step....Retire sendmail by tigga · · Score: 1
      WHY ?

      It's the best mailserver, you could do anything you want with it.

    2. Re:The best first step....Retire sendmail by Anonymous Coward · · Score: 0

      "It's the best mailserver, you could do anything you want with it."

      True, I don't want to do very much more than sending and recieving mail.
      The sad story is I NEED to do some things to make a little less stupid mail system, and sendmail can seldom do what you want, save changing the source. Sendmail is crap.

    3. Re:The best first step....Retire sendmail by tigga · · Score: 1
      The sad story is I NEED to do some things to make a little less stupid mail system, and sendmail can seldom do what you want, save changing the source.

      Unfortunately all other mailers are more stupid and are less configurable...
      And you don't like to read manuals, do you ? ;)
      Depending on what you need to change source address you could use masquerade or generics features in sendmail.

  52. Make Unix walk throug your door and install itself by tlh1005 · · Score: 1

    Could the Unix configuration be made easier? Obviously yes, but that isn't the same as needing to be easier. One of the exciting things about venturing outside of the "user friendly" world of MS is finding out what all of those dot files are for. I'm not a Unix know it all or anything but I know my way around it pretty damn good. I wonder if I'd know more or less about the OS if the install and config were as easy as MS products Some might be afraid to admit it but there is also a novelty to it.

    I guess you can't argue that someone shouldn't make the configuration process easier.... I guess that while people like me get their experience from drudging through scripts and text files, people who just want the benefits of Unix can get straight to the point if I install it for them.

    I'm selfish though, I hope it gets "harder". Lets weed some people out.

  53. Mac OS X is based on FreeBSD! by Anonymous Coward · · Score: 0

    mach+FreeBSD

  54. NeXT, FreeBSD, Apple by ZigMonty · · Score: 2
    Darwin (the Unix bit of Mac OS X, the kernel of which is called xnu) is mostly based on whatever NeXT's OS was (NeXTSTEP?). If you want to classify it as it is now, it's a Mach 3 based BSD4.4 OS with a lot of the userland stuff taken from NetBSD and FreeBSD and kernel code from all over the place (Apple mentions FreeBSD). Some man pages still say OpenBSD, so I guess it has some of that in it too (or at least the man pages :-).

    People keep trying to make out that Apple ripped the entire OS off one of the open source BSDs. Can't people accept that a lot of it is either NeXT derived or from Apple? A lot of it isn't, of course, but the other BSDs copy each other's code all the time. I'm sure the others will start copying Darwin as soon as Apple lifts its non-BSD license (if ever).

    If you want more info check out the Darwin project page and the developer site.

  55. Thoughts from someone who adminsters both by weave · · Score: 3, Redundant
    Having had to administer both windows and multiple unix server, some thoughts (and since I'll be negative to both platforms, it guarantees zealots from both sides will flame me, bwahahahaha)
    • The registry in Windows seems to be a logical choice. There are standard tools to use it, it can be manipulated remotely, and except for those horrible clid crap. It is, however, difficult to understand for a human except for those common areas like HKLM\Software\Microsoft\Windows\Run.
    • The Windows registry implementation is horribly flawed. It's too likely to get corrupted. A lot of this is from being part of a roaming profile. Losing your registry is like losing all of your application's and user preferences. It really sucks.
    • *NIX is a mess when it comes to location of config files, as stated in the article. Even various Linux distros. We have Redhat boxen doing a lot of work now, having switched from a proprietary UNIX (dg/ux) a while back. Some of my techs think we should switch to Debian. I installed it on my workstation in vmware. It's nice, but it'll just require re-learning where the hell everything is. Maybe no big deal but I've got too much to remember already.
    • Windows registry trees are not commented. You need to know how to find various reg hack sites and own a ton of resource kits, just to keep a leg up on the crap. Even then everything is not revealed. "You should configure it through the GUI." Yeah, right, on 2,000 machines?
    • UNIX config files generally only have one per app. Configuring an app is simply a matter of loading the config file into an editor, reading the including commentary, and adjusting to taste. The exception here is the redhat /etc/sysconfig tree where everything is basically just loading of env vars for other scripts. Not commented, minimal defaults, if you need to figure out something it's dig through docs or read the rc scripts yourself to figure out what to set in it. Yack...
    • Windows configs are often done through a maze of menu entries, dialog boxes, tabs, "advanced" buttons, etc... It always leaves you wondering if you've convered everything...
    • UNIX config files are easily replicated to another box for a poor man's backup/failover situation. I had a 2000 server in a SAN go down and while I could easily mount that boxes disks into another 2000 server, moving the printer and file shares over was a problem because that shit is all stored in the registry. Instead of a simply copy command, I'd either need to write some sort of program to extract and merge into the backup's registry or figure out another way to replicate the shares. Keeping config crap out of a common database means the service isn't tied to a box so much. Need to move it to another box? Install, copy config files, change a virtual DNS name to point to new location.
    • Windows registry is horribly insecure, not by design, but implementation. Loads of apps insist on writing per-user stuff to HKLM during runtime. I should be able to make HKLM r/o for all users but if I do that, shit breaks horribly. Damn it, HKLM should only be scribbled into by an application during its install process.
    1. Re:Thoughts from someone who adminsters both by hacker · · Score: 1

      We have a system to do this, and it's called rcs. It's not impossible to add cvs backplaning to /etc, since really, that's the "backbone" of the Unix system. (this article really meant Linux and BSD, not Unix)

    2. Re:Thoughts from someone who adminsters both by blooher · · Score: 1
      The exception here is the redhat /etc/sysconfig tree where everything is basically just loading of env vars for other scripts. Not commented, minimal defaults, if you need to figure out something it's dig through docs or read the rc scripts yourself to figure out what to set in it. Yack...

      Yes, this is extremely obnoxious. I did find though after deep searching useful documentation in /usr/share/doc/initscripts-xxx/sysconfig.txt

    3. Re:Thoughts from someone who adminsters both by cygnusx · · Score: 2
      Windows registry trees are not commented. You need to know how to find various reg hack sites and own a ton of resource kits, just to keep a leg up on the crap. Even then everything is not revealed. "You should configure it through the GUI." Yeah, right, on 2,000 machines?

      For newer software, wmic.exe helps. Plus seems like Windows.NET server is moving away from the registry model, starting with IIS6 using a XML based meabase for storing config info.
    4. Re:Thoughts from someone who adminsters both by Skapare · · Score: 2
      For newer software, wmic.exe helps. Plus seems like Windows.NET server is moving away from the registry model, starting with IIS6 using a XML based meabase for storing config info.

      So, now we can use NOTEPAD to edit the configuration, if we can just figure out what the tags really mean, and whether what we need to provide is supposed to be an assignment inside the tag, or data enclosed between tags (I've even seen both ways used at the same time). DTD's anyone? Do people even read DTD's?

      --
      now we need to go OSS in diesel cars
    5. Re:Thoughts from someone who adminsters both by Mnemia · · Score: 2

      I don't think the idea of databases to hold config files is *necessarily* a bad idea. We all know how the Windows registry sucks, and the hell it can cause, but I think the general principle could be a good thing if we addressed some of the points you mentioned above. For instance, there could be seperate config databases for each user and for local system specific configuration. If enough attention was paid to security and reliability I think the idea could work well.

    6. Re:Thoughts from someone who adminsters both by weave · · Score: 2
      What would be sweet is if each domain had a registry database for all domain machines and users and all settings would be recorded, pulled, from there. It would get rid of the stupid-ass roaming profile model while still allowing settings to roam. It would also allow administrators to update settings site-wide or any subset using simple SQL calls to change, for example, all registry preferences for a certain class. Then your stupid mandatory profiles, policy files, and everything else ugly in that area would be solved too. As it is now, we have to beg users to leave their machines on so we can run jobs to contact their machines and update HKLM shit as needed... It's horrible.

      I'm getting a woody just thinking about how cherry a central prefs/settings database would be. But no, whatever Microsoft has up their sleeves wouldn't be so sweet. It'll be some horrible kludge I'm sure.

      (For home (non domain) boxes, the issue becomes more complicated. Each box would have to have its own database server on it to handle this kind of thing locally (non-roaming).... Either that, or tie your prefs into your passport account on some central microsoft prefs server (insert evil maniacal world-domination laugh here))

      Now if *NIX would permit something like that, a common API for settings which could be implemented locally or centrally without knowledge of each app doing it, that'd be great!

    7. Re:Thoughts from someone who adminsters both by ZxCv · · Score: 2

      IIRC, MS started moving most of the IIS config into the metabase with 5.0. Maybe with 6, they're completing the process. But I certainly remember having to deal with the metabase when I had to use 5.0 at work.

      --

      Perl - $Just @when->$you ${thought} s/yn/tax/ &couldn\'t %get $worse;
    8. Re:Thoughts from someone who adminsters both by slittle · · Score: 1
      UNIX config files are easily replicated to another box for a poor man's backup/failover situation. I had a 2000 server in a SAN go down and while I could easily mount that boxes disks into another 2000 server, moving the printer and file shares over was a problem because that shit is all stored in the registry. Instead of a simply copy command, I'd either need to write some sort of program to extract and merge into the backup's registry or figure out another way to replicate the shares. Keeping config crap out of a common database means the service isn't tied to a box so much. Need to move it to another box? Install, copy config files, change a virtual DNS name to point to new location.
      Assuming you can find the registry tree you want to keep, use regedit to export it/reimport it:

      regedit /e \\backupbox\master\someprog.reg HKEY_LOCAL_MACHINE\Software\SomeProg

      regedit /s c:\master\someprog.reg

      (/e = export, /s = silent)

      Windows registry is horribly insecure, not by design, but implementation. Loads of apps insist on writing per-user stuff to HKLM during runtime. I should be able to make HKLM r/o for all users but if I do that, shit breaks horribly. Damn it, HKLM should only be scribbled into by an application during its install process.
      Mostly because of Win9x. Now that NT is also the "user" flavour of Windows, there should be a higher number of apps obeying the "rules" of multi-user systems, and not assuming they own the lot.
      --
      Opportunity knocks. Karma hunts you down.
  56. A modest configuration proposal by cobar · · Score: 3, Interesting

    This would be really nice for allowing configuration utilities to work on programs they've never even heard of. Imagine for a moment, that the developer of an application provides lots of useful information for each configuration option, such as the level of importance of an option, comments and descriptions, web links, the data type of the variables, etc. in a xml template file that comes with the application. The template could then be queried by whatever tool you're using and provided you have enough info linuxconf, web frontends, dialog apps, etc. could all build an interface by simply reading all those options from the template via some kind of library function.

    Likewise, changes to the config could be passed through the library functions, get validated for correctness and then written to disk in whatever format you want. The level of functionality would be such that you could generate white space delimited files, xml configs, or whatever you want and because the template is descriptive enough, comments could be inserted/preserved for those editing with vi.

    Now that I think about it, this really wouldn't a rewrite of existing applications, they could simply keep their existing formats and build the template file for other config utilities. Then, if at a later date they decide to drop their own config processing, they use the template driven library to do the processing work. That way backward compatibility could be maintained.

    This does nothing to reduce the myriad different configs that you deal with when editing by hand, but it would give the authors a chance to move a more common format later on down the road. And I think it is more useful than trying to get everyone to switch to some unified format that appeases new users.

    I have half a mind to try a limited version of this out for handling Apache virtual domains. And it's a lot more fun than hard-coding a parser into your frontend.

    1. Re:A modest configuration proposal by Dr.+Smooth · · Score: 1

      Nice thought, but I don't know that such a generic tool could ever really work.

      Didn't MS build some generic configuration tool that could configure any and every application? I recall seeing something like that a few years ago -- maybe it was abadoned; I don't know.

      But the fact is that the interface was absolutely awful. It is an extremely difficult task to write a tool that can configure any random piece of software and have any sort of usability left in the interface.

      --

      ...if you ask no questions, beware of lies...

    2. Re:A modest configuration proposal by Lord_Dragoth · · Score: 1

      This is what Mac OS X does. All preferences (*.plist) are XML templates.

      --
      Microsoft announces new emoticon product ratings, gives latest Windows and Office products XP
  57. Blah! by Anonymous Coward · · Score: 0

    I LIKE the configuration nightmare... Keeps the LUSERS out of my way....

    luser: how do I install ms-word on my linux box?
    bofh: rm -rf /. > dev/null &

  58. Do you really WANT to keep Linux as a niche? by ebbe11 · · Score: 1
    Because that's what the myriad of ways of configuration methods does.

    Linux works very well for the people who think knowing their way around the bowels of the system is cool. But if you want usage of Linux to go beyond that minority, it must be far easier to configure (among other things).

    I have had an NT4 system with a proxy-server (WinGate) mail-server (MDaemon), a news-server (DNews), a web-server(Xitami), and a firewall (ZoneAlarm). It didn't take long to find out how to configure those programs and get them to do what I wanted (hint: on-line help).
    I have yet to get the same configuration running on a Linux-box. The reason? Between working and being together with my family, I don't have enough hours left to delve into Linux' arcane secrets.

    Yes, I have a life and I intend to keep it that way. So until Linux matures to a level where I can use it instead of fighting it, it will not be my OS of choice.

    --

    My opinion? See above.
    1. Re:Do you really WANT to keep Linux as a niche? by diamondc · · Score: 1

      why learn at all then? oh thats right.. you might acquire a new skill that might make you more money so you can buy a better house or car for your family

      --
      "I keep looking in the want-ads under 'revolutionary' but there don't seem to be any listings.. "
    2. Re:Do you really WANT to keep Linux as a niche? by ebbe11 · · Score: 1
      why learn at all then? oh thats right.. you might acquire a new skill that might make you more money so you can buy a better house or car for your family

      I'm learning all-right. I'm on my third text-book since new-year now. But learning Linux will not really make me more valuable on the market. I work as a contarctor and my area of expertise is embedded real-time software development. I've yet to find a company that uses Linux for that. And no, real-time versions of Linux don't cut it for gadgets like heart-defibrillators.

      My point is that not making Linux easy to learn, configure and use, is what strangles the spreading of Linux. I'd love to see a Linux PC on every desktop (inlcuding mine) but most people don't have the skill or the time to get to that exalted state.

      So Linux remains an also-ran used only by the elite because that very same elite refuses to make it usable by ordinary people.

      --

      My opinion? See above.
    3. Re:Do you really WANT to keep Linux as a niche? by Anonymous Coward · · Score: 0

      Thats becuase you don't know what your doing. I'm a Unix/Linux admin, its a breeze. Maybe you should go back to your Winblows and stay there. Coz thats as far as your ever going to get. Winblows was built for people like you.

  59. Two parser per application by Anonymous Coward · · Score: 1, Insightful

    My (possible redundant) 2/100:

    For every application we need two compilers/parsers: one from text to XML and one from XML to text. This way the programs can keep on using the old text config files (easy for programmers), and a nice config tool could modify the hiracical XML (easy for users).

    I imagine that when the config tool is opened for some application the text config files are parsed with the text->XML parser, showed and modified via the config tool, and then parsed back into a text file.

  60. A few things by HalfFlat · · Score: 4, Interesting

    The current system for starters isn't too bad - the configuration files for important system tools are typically well documented (in man pages if nowhere else), and aren't too hard to edit in a text editor. Certainly there is a problem with the use of automated GUI tools for system configuration, but I can't really see why GUI tools are so important.

    Consistency though would be a nice thing, if only so that as more programs are used and require configuration, we don't all have to learn more and more ad hoc configuration schemes. There is the potential for the current system to get well out of hand. Consistency is nice from an aesthetic point of view - ad hocery is rarely pretty.

    Tools such as linuxconf or webmin don't help the problem, they just obscure it. Often badly! (Don't get me started on linuxconf, ugh!)

    The earlier suggestions of XML, or a recognised subset of XML, together with XML schema to describe the formats, seem ideal as far as file formats go:

    • It's standard and well-documented.
    • There are a large number of parsers that work with a useful large subset of XML, for many platforms and languages.
    • In a pinch, it's not hard to write a quick and dirty and correct-enough parser from scratch on an ad hoc basis, to parse your own particular XML-based configuration files.
    • It's human editable (or should be, if used wisely).
    • It is rich enough to encompass all the text-format configuration files currently in common use (under the Linux-based operating systems I know of at least).
    The big problem of course is inertia: changing configuration files is a big change! Personally, I think the cost though would be worth it in the long term.

    The important thing to me is that there is no API specified as mandatory. While a standard API for accessing and manipulating configuration data would be nice, requiring it to be used will not only make adoption of a standard config format slower and harder, but will also limit software developers to the tools for which the API has an implementation. I'd go for:

    1. Use XML + schema as the mandatory config file format in the new scheme.
    2. Have a preferred mechanism for signalling to applications that configuration data has changed (eg SIGHUP) so that changes can be made atomically.
    3. Provide an API for manipulation of config data, but only as a convenience to developers and automated config tools.

    I also agree with the earlier comment promoting the use of ~/etc over dot-files. Makes good sense! Again, it's only inertia that will make such a change difficult. Though if other changes are going through ... in for a penny, in for a pound!

    Lastly, whatever scheme is adopted, it seems to me essential that there be some flexibility in where the configuration files are located. Standard places are important, but there must also be some way to say to an application that their config data is in /usr/local/etc, or in /opt/package-name/etc, or wherever. This is necessary for sane package isolation and management, especially if not all software on a system is maintained by someone with superuser priveleges.

    1. Re:A few things by Alphix · · Score: 1

      I don't think the problem is the lack of ideas, I think it's the lack of any code. Btw, I agree that XML + Schema is probably the way to go. Then having a frontend which makes a text version of the XML file, runs vi/emacs on the text file and converts back to XML is just one of the ways to do it when you want to edit text files. But why stop there, why not have the file format pluggable as well, values could be stored in anything from XML to LDAP to a registry ;-) Only *standard* that's needed is for apps to supply a scheme for their config file(s).

      All ideas remain "vapourware" until someone dedicates enough time to writing a library that ties all odd ends together and gives a simple to use API to the developers. At the same time this system should take into consideration many of the good points made here on /. and elsewhere.

      First, such a library must exist, *then* developers can start thinking about switching their apps over to it. It's also much easier to discuss ideas and changes once there is a basis for the discussion.

  61. Classic Excuse by ZigMonty · · Score: 2, Interesting
    You're using the classic excuse: "They control the hardware so of course Macs are easier to configure!"

    Name a piece of current (not ISA etc), statndard (not some home built/unknown vendor PCI card) PC harware, other than the motherboard or the processor and it will most likely work on Mac OS X. It may fall back on a generic type (missing some features) but it will most likely work. Macs support: PC133 RAM, ATA hard disks, PCI cards, AGP cards, VGA monitors, USB, IEEE 1394 (FireWire), etc. I think that would be more than 50 types of hardware. Don't confuse the fact that the iMacs are closed with other Mac hardware. The G4 Towers won awards for how easy they are to open up and upgrade. There's a large handle on the side of the case that you pull and that side of the computer lowers down with the motherboard attached to it, giving easy access to all components.

    Could it be that Macs are easy to configure because Apple engineers are clever?

    Note: I'm ignoring the fact that this article is about software not hardware configuration.

    Check out some more myth debunking.

    1. Re:Classic Excuse by Anonymous Coward · · Score: 0
      It may fall back on a generic type (missing some features) but it will most likely work.


      Now there's a classic excuse for "no drivers available" if I ever heard one.

    2. Re:Classic Excuse by Anonymous Coward · · Score: 0

      > Now there's a classic excuse for "no drivers available" if I ever heard one.

      ..as opposed to other OSs that just say "no driver available" and that's it, device unusable.

      I'd rather have a fallback position anyday.

  62. perl 5.6 by Anonymous Coward · · Score: 0

    this is off the subject, but I noticed that the MAC OS X does not use the same perl program that you find in Linux. Does anyone know a way to fix this on the mac os x. -

  63. patents by red-tail-hawk · · Score: 1

    Hmmm... this would never fly because if it ever came close to a reality someone would cliam a patent on it. Web-based would never work because it would have to be designed to avoid those pesky hyperlink licensing fees (ha ha) and the linux and BSDs couldn't afford that.

  64. yet another tool to get the same job done by Anonymous Coward · · Score: 0

    Congratulations. Now you understand how the real world works. Not everyone wants to be an administrator/computer geek/Linus. And why should they? Things like Webmin make it easy to configure a machine so the majority of users (so called unwashed masses - heh, the "masses" probably think the same thing about computer geeks) can get can back to what they were doing. Having a better set of config files is a fine idea, especially for sysadmins, but will the majority of regular users want to fiddle with that? No.

    1. Re:yet another tool to get the same job done by Spoing · · Score: 2
      Congratulations. Now you understand how the real world works. Not everyone wants to be an administrator/computer geek/Linus. And why should they? Things like Webmin make it easy to configure a machine so the majority of users (so called unwashed masses - heh, the "masses" probably think the same thing about computer geeks) can get can back to what they were doing. Having a better set of config files is a fine idea, especially for sysadmins, but will the majority of regular users want to fiddle with that? No.

      Well, I have friends who wouldn't agree with you, though I tend to think of myself as "a bludgeoned and retreating idealist willing to make some compromises".

      --
      A firewall can not protect you from yourself. Turn off what you do not need. Do not use the firewall to do your work.
  65. Simple benefit of mimicing OS X by blank · · Score: 1

    User applications can have all their information and binaries pertaining to the application in one resource folder. For example, all things related with a DVD player will be in one folder and not scattered across /etc, /usr/doc, /usr/bin /usr/share. you still have /etc, /sbin, /user/sbin for daemons and stuff.

    The GUI will hide everything that's in the application's folder and represent it as an icon that you can click on (which will launch the reall binary that's nested inside the folder).

    The CLI doesn't hide or fake anything. It shows you what the directory system really looks like.

    Config files for applications are in XML format. You can edit them using a CLI tool (vi) or a GUI tool.

    I think these features will help the common user. It doesn't take away from the fact that OS X is still UNIX and that haxors still get to use the CLI.

    --

    bah. start over

  66. It took this long? by Ageless · · Score: 5, Insightful

    It took MacOS X for people to realize that this was a problem in UNIX? Please.

    The reason UNIX and UNIX applications are hard to configure, in most cases, is because Open Source programmers are lazy.

    This is obviously a blatent generalization so I will explain.

    The old adage is that an Open Source program gets written when a programmer has an "itch" they decide to scratch. The problem is that very few people are itched by configuration. You may write the best web server in the world (Apache!) but by time it comes to writing the configuration manager for it the volunteers start falling away.

    It isn't very fun writing a bunch of dialogs, windows, buttons and such to make a nice configuration for a program. It's kinda like documentation (and we all know the state of docs for many UNIX programs).

    I see examples of this every day. I have a Mac OS X using friend who sends me the URL of every new program he decides to use. It's incredible how many of them are UNIX ports with a beautiful configuration manager stuck on. Mac programmers hold themselves to a higher level of user experience and UNIX people need to get on the boat.

    What's needed isn't a global, all dancing, all singing configuration system. What is needed is responsibility in programming.

    P.S. Everyone always whines about the Windows registry because it's binary, you can't edit it blah, blah, blah... But the fact is: It works. The average user never cares to edit it because they config their programs from WITHIN their programs. If something is truly needed, do the Windows registry in text file format. Make it /etc/registry.conf. There is no reason it has to be binary.

    1. Re:It took this long? by Anonymous Coward · · Score: 0

      I don't think it's really a matter of laziness, but priority. There is really no incentive for a programmer to document anything. Once the program does what the designer wanted, it's finished and time to move on to the next challenge. Too many times the old adage "The job is not finished 'til the paperwork is done" is ignored. That's the reason most commercial shops that productize their warez have tech writers.

      One thing that has not really been mentioned here is the separation of program configuration and program databases. Don't confuse configuration and data files. For instance; DNS uses the zone files in /var as data, named.conf tells DNS where to find the data files. Same holds true for a lot of complex apps, including Apache, firewalls, Samba, etc..

      No matter. This kind of thing won't happen unless someone builds an entire distro based on some kind of simple configuration system of which the basis is documentation of all of the options and side-effects. Get the programmers to document what their programs do, get tech writers to interpret geek to human, and then there will be some successes in this area.

    2. Re:It took this long? by Anonymous Coward · · Score: 0
      P.S. Everyone always whines about the Windows registry because it's binary, you can't edit it blah, blah, blah... But the fact is: It works


      Tell that to all those people who have had to reinstall Windows and all of their applications because of a corrupted registry or a botched application install/uninstall. If a mild corruption in your configuration database requires you to reinstall the OS and all your applications, I'd say that system is horribly broken. My Redhat 6.2 installation has run tons of software, all sorts of commercial and open source programs from java application servers and RDBM's to half a dozen different web browsers, office suites and the such, and I've never had to reboot or re-install the operating system. Try that on OSX or WinXP.

    3. Re:It took this long? by Rentar · · Score: 2
      The old adage is that an Open Source program gets written when a programmer has an "itch" they decide to scratch. The problem is that very few people are itched by configuration. You may write the best web server in the world (Apache!) but by time it comes to writing the configuration manager for it the volunteers start falling away.

      I just want to add my personal reason for never having written any configuration-frontends. (Which I assume is not only true for me, but many others as well). The way it goes for me is usually the following:

      • I find a new cool software.
      • I have no idea how I have to configure it correctly
      • I search the web for configuration front-ends and find none
      • I decide to do it the hard way (as there seems to be no other) and configure it by hand
      • While doing so, I find out that it's not that hard and I decide that I'll write a frontend for the configuration, as soon as I really know the configuration format.
      • When I finally reach the point where I got enough knowledge to be able to write such a frontend I no longer need it, 'cause a.) I allready configured my system and b.) I'm faster doing it by hand. Ergo: No more itch to scratch.

      So this is the sad story of at least 10 configuration frontends that never even began to exist.

    4. Re:It took this long? by Anonymous Coward · · Score: 0

      Whenever I see someone spouting these kinds of things, I have to wonder... Why do you even use Unix? You obviously don't have much of a grasp on what makes Unix a good system. Someone who thinks the Windows registry works is not the kind of person who I would think would be attracted to Unix.

      I'm not saying config files couldn't use some cleaning up, but plain text simple config files (and NOT one single file for everything) are one of the greatest strengths of Unix.

    5. Re:It took this long? by Ageless · · Score: 2

      If you read my post over, I am not really advocating the use of a single database. I am saying that if that's what people really want (as some other people have posted) then a text based "registry" would work. I have no problem at all with a million different configuration files all in different formats spewed about the filesystem... as long as the program that owns them manages them for me.

      In old versions of Windows (pre 95) most programs used .ini files which worked okay. They were generally in \windows or \windows\system but some programs put them in other places, or even used other config file formats. The difference is for most people it didn't matter where they were because the program that made them had a nice little configuration dialog for managing them. THAT is what I would like to see. If I can do everything related to configuration from the program, I could care less how it stores it.

    6. Re:It took this long? by evi1b0b · · Score: 2, Insightful
      It isn't very fun writing a bunch of dialogs, windows, buttons and such to make a nice configuration for a program.

      It still might not be fun in OSX, but making interfaces is very easy because of the included dev tools and the cocoa application model.

      A programmer of marginal skill can literally drag together a standard compliant UI in 5 minutes and have it work.

      It's a little bit more than a lazy programmer issue. A rich, standardized library of Cocoa classes and dev tools that almost force oyu to do things "the right way" also contribute to better front ends on osx -- lets not forget the fact that the userbase probaly would not use an app alot if it didnt have a good interface.

    7. Re:It took this long? by geekoid · · Score: 2

      What's needed isn't a global, all dancing, all singing configuration system. What is needed is responsibility in programming.
      amen, brother.

      --
      The Kruger Dunning explains most post on /. http://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect
    8. Re:It took this long? by MobyTurbo · · Score: 1
      The reason UNIX and UNIX applications are hard to configure, in most cases, is because Open Source programmers are lazy.
      You must be thinking of Linux. UNIX(tm) was developed by AT&T and although for a while it was free to universities it is not open source; and is still a property of USL or whatever they're calling themselves now. Incidentally, with the exception of sendmail.cf, most Linux/Unix configuration files aren't that hard to understand by ordinary mortals, and have the advantage of being easily manipulatable by stream editors, scripts, and the like. (Even GUIs if you want them.) Sometimes in fact you need to have a text editor's search and block copy commands for repetive systems adminstration tasks that would be very labor-intensive if everything was a GUI.
    9. Re:It took this long? by Ageless · · Score: 2

      I am mostly talking about the applications available for UNIX and UNIX copies (Linux included). A great, great many of the common applications used in **IX now-a-days are open source apps and fit my description above.

    10. Re:It took this long? by J.+J.+Ramsey · · Score: 2

      "P.S. Everyone always whines about the Windows registry because it's binary, you can't edit it blah, blah, blah... But the fact is: It works."

      Actually, the problem with the Windows registry is that it *doesn't* work. It's a single point of failure that has been all too easy to corrupt.

    11. Re:It took this long? by Phroggy · · Score: 2

      P.S. Everyone always whines about the Windows registry because it's binary, you can't edit it blah, blah, blah... But the fact is: It works.

      Yeah, for about six months. For the next six months, it starts falling apart. If you really know what you're doing, or if you're just lucky (Windows is so inconsistent, it's not even consistently bad), you can keep it going longer than that. Often, the system will run fine until you try to make some configuration change, and the whole thing breaks - for example, install a NIC, load the drivers, and now the system hangs on boot.

      If something is truly needed, do the Windows registry in text file format. Make it /etc/registry.conf. There is no reason it has to be binary.

      I'm a big fan of plain text, although I really like the promise of XML (it's text, sort of, but it can be edited with a GUI front end). However, a registry is NOT the answer - if you think it is, you haven't spent enough time on a Mac.

      One of the great things about the Mac OS is that the settings for each software component (applications, and pieces of the OS) are stored in seperate preferences files. If one of them corrupts itself, you can figure out which one, trash it (the app will generate a new one with default settings automatically), and everything is fine.

      Sure, the Registry is binary, and that's a bad thing, but that's not the problem - Mac preferences files are (usually) binary too. The problem is that all apps store their settings in the same place, and there's nothing to keep an app from mucking about where it doesn't belong.

      Another great thing about the Mac: instead of a database of which drivers and components and things need to be loaded at startup, you just move them into a folder, and everything in that folder gets loaded. This is amazingly simple for users to manage - they can configure what loads at boot time the same way they manage their own documents.

      The ability to easily delete corrupted settings and replace them with a default copy, on a per-app basis, is something Microsoft will probably take years to catch up with.

      --
      $x='S24;r)>63/* h@<5+oZ)32"5cz';$me='phroggy'x$];
      $x=~y+ -xz+\0-Tx+;print$_^chop$me for split'',$x;
    12. Re:It took this long? by Ageless · · Score: 2

      I am actually a huge fan of application specified prefs done correctly. My favorite implementation (I have not used a Mac much) was in BeOS. In Be, every file had attachable attributes that could be as simple as a boolean value up to multimedia files. The supplied API was simple to use and it worked great. Most applications kept their application specific settings in attributes, so that if you moved the app the prefs went with you and kept their system specific prefs in /boot/home/Settings.

      All the attributes in BeOS could be accessed, modified, removed or added from the command line with a few simple UNIXy tools too.

      I miss BeOS :)

  67. It's not more HUMAN readable... by Greyfox · · Score: 2
    The nice thing about XML is that parsers and standards exists for the file format itself and for metadata describing the file format. While DTDs are a start, XML schema are even better, telling you (The generic config file program reading the XML file) exactly what values an element is expected to have and how they can be nested.

    You can hack out a CSS file that would describe to any XML enabled web browser how to display your file in a much more readable format and XPath lets you slice and dice an XML file however you want to. I've run across an XML enabled grep-like program too, though I've never actually had much need for it.

    --

    I'm trying to teach myself to set people on fire with my mind... Is it hot in here?

  68. I know its off topic, but... by Anonymous Coward · · Score: 0

    We keep trying to help out newbies and possibly get the old PHB to take a second look at *NIX in general by making/writing applications and configuration frontends to make *NIX easier to use/configure. This is O.K. if this is your goal in doing so. If this is the goal, I think we are scaring off the PHBs of the world more with poorly written commentary, like the paragraph of this news article. If /. is supposed to be this pinnacle news site for nerds, and in doing so it basically (in the minds of PHBs) represents the "nerd population", then we need to _at least_ use correct grammar. I see this "bad english" used in at least 4 /. articles a day.

  69. Mac OS X PLists by ZigMonty · · Score: 3, Informative
    You are describing Mac OS X's Property list (Plist) format. All Application information (file types etc) and user preferences are stored in .plist files, which are XML. There is easy API for apps to use. Here's the carbon docs for it. The Cocoa plist overview docs still aren't up yet but I can assure you that it's even easier in Cocoa.

    Quick example taken from the above docs:

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist SYSTEM "file://localhost/System/Library/DTDs/PropertyList .dtd"><dict>
    <key>Year Of Birth</key>
    <integer>1965</integer>
    <key>Pets Names</key>
    <array/>
    <key>Picture</key>
    <data>
    PEKBpYGlmYFCPA==
    </data>
    <key>City of Birth</key>
    <string>Springfield</string>
    <key>Name</key>
    <string>John Doe</string>
    <key>Kids Names</key>
    <array>
    <string>John</string>
    <string>Kyra</string>
    </array>
    </dict>
    </plist>

    Note: The <array/> tag is specifying an empty array.

    1. Re:Mac OS X PLists by Anonymous Coward · · Score: 1, Insightful

      I actually think this is a great way to go and am curious to know what can already be leveraged from Darwin. It appears that Core Foundation, a Darwin framework, contains the majority of the PList interfaces. Is Core Foundation portable under APSL?

      I'd rather invest in one approach (that already works) rather than take the "I must create something pointlessly new" route. Plus - let's let's see Apple "contribute" to this one...

  70. NO ! From an elitist point of view..... by CDWert · · Score: 2

    Making *NIX systems easy to configure maintain, manage and etc will be the downfall of the IT industry, Green Skinned *NIX admins everywhere will revolt the people tring to bring *NIX to the masees.....

    Alright so im joking...big suprise...

    I think this would be a good thing all in all, IF they DONT MUCK with my existing configurations. There are many things that can be tweaked far beyond the iditot proof gui configuration tools on other OS, In windows you can resort to registry tweaking for some items, others you just cant do a damm thing about, its those thing Im afraid will be removed from my control.

    Dummning down on the surface is fine, as long as they dont do it to the underlying configurations. I still cant figure out how the hell to edit (or find) the samba configuration file on OSX, Now granted its not my machine, and I dont really use BSD, so im not suprised. But does it even exist ??? A I am used to it on Solaris and Linux ?

    --
    Sig went tro...aahemmm.....fishing........
  71. Which BSD? by jdavidb · · Score: 1, Redundant

    Folks, NetBSD advocate that I am, I must point out that Apple used FreeBSD. Or am I wrong about that? I always heard it was FreeBSD.

    Actually it was a FreeBSD userland built on top of a Mach kernel. Somewhat similar to what GNU is attempting to do with Hurd. (In fact, there's been work to make the Mach kernels underlying both systems interchangeable. Hurd may run on PowerPC hardware sooner than you think.)

  72. You just need a standard - like the MMC by elliotj · · Score: 1

    I think the answer here is to have a standard interface that everyone will agree to use. This could be a very simple application that would be skinnable/themeable for any distro to add their own personal touch. But at the end of the day, the single standard app should use the same configurations on every platform.

    The example, that I think should be followed is that of the Microsoft Management Console. The MMC lets developers provide 'snap-ins' that let you control their apps from within the same console you use to configure Windows itself. Anyone can write a snap-in to do anything you want. The snap-in doesn't dictate how you write your app, or how you store it's configuration info. But because the MMC is used by everyone runnning Win>=2K developers have a standard that is in their best interest to write for.

    That's all Unix needs. Then the developers will write their own snap-ins, and you won't have so many different projects trying to build GUIs to configure so many applications that may change their configurations at any rev without notice.

  73. play to end all confusion by Anonymous Coward · · Score: 0

    about OS X and its .plist format, which is XML

    Here is PropertyList.dtd:
    -----------------
    http://zephc.2y.net/PropertyList.dtd.txt
    -----------------

    and here is a small sample config file. The file name is 'com.apple.CocoaExamples.Sketch.plist' so you get an idea how the naming scheme (which is not enforced, just highly recommended) is like java namespace naming for custom libraries
    -----------------
    http://zephc.2y.net/plistexample.txt
    -----------------
    Now, linux people, get to work copying =]

    Let me take this time to say that Aplle, with one fell swoop (with OS X) created a totally standardized, understandable way to configure any GUI application in a very complete way. You can store anything from the window coordinates (which while it sounds superfluous, its very nice to have a window you use a lot pop up in the SAME place every time) to, well, any other type of data you want to be persistent. Not just a few important data, but everything can be stored and reread in a totally consistant way.

  74. /etc/conf/*.xml format by felipecs · · Score: 1

    Once the parser is ready, many developers and colaborators should start a porting projects. If the parser API is good, porting would be straigtforward.

    Every program should have a configuration file in /etc/conf, and the format for each parameter should be something like this:

    <parameter>

    <name>TimeToWait</name>
    <type>
    smallint</type>
    <value>
    10</value>
    <unit>
    minutes</unit>
    <description>
    Time in minutues 'till screensaver starts working</description>
    <comment>
    JSmith 2002-01-01: changed to 10</comment>
    <comment>
    Tom: 2002-02-05: prefer to use 15</comment>

    </parameter>

    Some notes:

    • "comments" are optional.
    • A GUI is straigthfoward to do.
    • The XML parser it's done.
    • The only thing missing is to package it to make it appealing to the developers.

    I agree with almost everyone: this is something very important and useful to do. It should be an Open Source project!

    1. Re:/etc/conf/*.xml format by hyperstation · · Score: 1

      great idea, i agree...but, as for getting every other developer in the world, each with his own idea of an "ideal" config setup, fat chance

      just try switching sendmail.cf over...whew!

  75. NOT XML by Hard_Code · · Score: 2

    No XML is not suited for this. XML is not a panacea. XML is for representing large amounts of structured data whose primary purpose is to be interpreted and transformed, and frequently eventually presented to some user. The semantic, syntactic, and performance overhead of XML is WAY too great.

    Instead we just need a simple text-only configuration file format which has support for a hierarchy of values (this gets you pretty much what XML would give you). It would also be nice if the format was position-independent, so it could be streamable. A proposal was posted somewhere, but now I cannot find the link. The format could be as simple as:

    toplevelkey=value
    [tab]branchname1
    [tab]branch-key1=value
    [tab]branch-key2=value
    [tab][tab]branchname2
    [tab][tab]branch-key3=value

    you get the idea. Please don't throw XML into the mix, it will not simplify things.

    --

    It's 10 PM. Do you know if you're un-American?
    1. Re:NOT XML by Anonymous Coward · · Score: 0

      sure XML! XML is used to struture data (state data or anything else you want!) not just textual data to be presented to the user! The time it takes to parse XML is negligable on any system. Hell, a C64 would take minimal time to parse an XML file.

      Read my post here (two posts above yours) of how Apple uses one short DTD for its PList format

    2. Re:NOT XML by Anonymous Coward · · Score: 0

      I disagree. XML is ideally suited, and the overhead of parsing XML is not particularily larger than that of parsing plain text files, mentally or computationally. The added benefits of using XML is that you don't have to re-invent the wheel by writing editors, databases and over-the-wire protocols to work with your data. It's all been done, in the closed and open source world. The only trick is to get people to overcome their misconceptions (like yours).

    3. Re:NOT XML by zap42hod · · Score: 1

      the proposal was in latest bsdzine

      http://ezine.daemonnews.org/200202/cbsdrun.html

  76. Every journey begins with a first step by Quixote · · Score: 2

    I think most of us agree that the conf system is getting out of hand. With the proliferation of distros, its only going to get worse.
    A solution would be to first implement a generic "configuration" library. A small, efficient library with various language bindings. It should provide the coder simple functions to manipulate the conf file, sortof like "getopts".
    Once the above library is implemented, encourage people to use it in any new projects that they are starting. At the same time, volunteers (ie you) can work on "porting" the existing packages over to using this new fangled library.
    Over time, this approach should work.

    1. Re:Every journey begins with a first step by werdnab · · Score: 1

      Hmm, sounds like what the FreeBSD people have been doing for a few years. Many argue that FBSD is too controlled, this is an example of what well meant control is. If *nix is to progress, efficiently, there needs to be someone to say 'NO'.

    2. Re:Every journey begins with a first step by Anonymous Coward · · Score: 0

      Best damn suggestion yet.

      I personally don't see why this hasn't already been done. OpenSSL etc is already shipped with almost every distribution under the sun, why has there not been someone to make a configuration file loadable library and API ?

      OK people, get your arse onto Sourceforge and get cracking on designing a API. (Dear God, if you so much as make it 1% Linux-centric I will come to your house.. and I will CUT you.) UNIX != LINUX.

    3. Re:Every journey begins with a first step by Anonymous Coward · · Score: 0

      I have to agree that XML is overkill, plus, where do you draw the line? XML + schemas? DTDs if so, which grammar? W3? Relax? That would end it chaos.

      Why not go with something more like the Properties() class in Java? Admittedly, it is probably a bit too simple, but it seems nice and clean. A standard library along those lines would be a nice addition - I know it makes Java development much simpler (for me anyway)

  77. Just some thoughts by Anonymous Coward · · Score: 0

    There seem to be two threads here. One for consistency of configuration files, another for graphical configuration tools.

    Some consistency might be nice, but in the end would probably be quite irrelevant. Imagine trying to come up with a unified syntax to incorprate Apache, Netnews, Sendmail, XFree, and Gnome. It would turn out to be a logical OR of all the configurations, and wouldn't save anything.

    Read the docs, follow the instructions. Or is our society forgetting how to read? Oh yeah, we like things easy. Or what we *perceive* as easy. I argue that easy is different for everyone. For me, easy is being able to fix something with a few quick keystrokes in vi. I find navigating up and down many layers of menus and submenus quite burdensome and slow. But hey, you go tinker with GUIs and pull-down menus. While you're doing that, I'm finished and getting on with my life.

    That said, I think the beauty of current system is that you have options. You can use Webmin or Linuxconf, and I can use a text editor.

    What would be a real pain is having to reinstall the whole OS because a hard drive error during a power outage corrupted a single line of your X config, and without that, you can't get to your vaunted GUI to fix it. It would be a simple fix with a text editor.

    Besides, pointing is impolite.

    :wq

    1. Re:Just some thoughts by be-fan · · Score: 2

      Some consistency might be nice, but in the end would probably be quite irrelevant. Imagine trying to come up with a unified syntax to incorprate Apache, Netnews, Sendmail, XFree, and Gnome. It would turn out to be a logical OR of all the configurations, and wouldn't save anything.
      >>>>>
      It really wouldn't be that hard, actually. XML can describe pretty arbitrary structures in its syntax, so a unified config file format should be within reach. Besides, Windows does it with just a key/value registry, surely the OSS community of uber-hackers can one up that?

      Read the docs, follow the instructions. Or is our society forgetting how to read?
      >>>>
      Or, rather, the docs are uniformly garbage? Programmers shouldn't be allowed to write their own documentation without consulation from an English major...

      Oh yeah, we like things easy. Or what we *perceive* as easy. I argue that easy is different for everyone. For me, easy is being able to fix something with a few quick keystrokes in vi. I find navigating up and down many layers of menus and submenus quite burdensome and slow. But hey, you go tinker with GUIs and pull-down menus. While you're doing that, I'm finished and getting on with my life.
      >>>>>
      Except that's really not true. 90% of config tasks take no longer in a GUI than via the CLI. Hell, by the time you've opened up XF86Config, scrolled down to the different places you need to get to to change resolution and color depth, somebody using the GUI could have cliked a couple of buttons and brought back a coffee from the local Starbucks.

      That said, I think the beauty of current system is that you have options. You can use Webmin or Linuxconf, and I can use a text editor.
      >>>>>>>>
      You really don't have options. Because of the differing syntaxes, you have tons of formats to deal with, GUI tools that work sporadically (I've never been able to get Linuxconf to do anything but set the runlevel) and leave the files uneditable by humans. If everything were standardized, people would have the freedom to actually edit files by hand, or use a GUI.

      What would be a real pain is having to reinstall the whole OS because a hard drive error during a power outage corrupted a single line of your X config, and without that, you can't get to your vaunted GUI to fix it. It would be a simple fix with a text editor.
      >>>>>>>>>>>
      And having a standardized format that ALLOWS a GUI prevents you from doing that how?

      Look, nobody is trying to change everything into a Windows-like binary registry. People want a standard that ALLOWS for a GUI and ALLOWS for text editing.

      --
      A deep unwavering belief is a sure sign you're missing something...
    2. Re:Just some thoughts by Anonymous Coward · · Score: 0

      >> Read the docs, follow the instructions. Or is our society forgetting how to read?

      > Or, rather, the docs are uniformly garbage? Programmers shouldn't be allowed to write their own documentation without consulation from an English major...

      I disagree on both points there. Most of the docs are adequately clear. They aren't works of literary art, they don't need to be. I also think the Unix community has considerably better grasp of the English language than the whole of the computer field.

      > 90% of config tasks take no longer in a GUI than via the CLI. Hell, by the time you've opened up XF86Config, scrolled down to the different places you need to get to to change resolution and color depth, ...

      Hmmm, obviously got a point and clicker here. Ever try this???

      vi /etc/XF86Config
      /Depth

      No scrolling necessary. In and out of the config file in seconds.

      Now, you may counter by saying "You have to know what you are searching for", to which I reply by saying "You have to know what menu to pull down or which window pane to select or which tree to expand."

      Add to that, what if a similar configuration item appears in multiple windowpanes? Gotta click to one, click to another, click again... In vi, would could do just one pattern match and replace and be done with it. Hell of a lot faster than loading any GUI tool I've ever tried. But, this particular argument could go on forever. I suppose it comes down to being proficient with your tools. You are proficient with your mouse, I am proficient with vi.

      As for not having options, funny how you claim that. I share admin tasks on a Linux server with a guy who considers himself a "dumb windows user" (his own words, not mine). I configured Webmin on it for him. Granted, it is more for server applications, but it works quite admirably and he can't understand why folks think Unix is so hard. Yes, I'd call that an option.

      And for the record, I did not say that a standardized syntax was a bad thing. I merely meant that it would wind up being a behemoth with all of the variations present in the current system, masked by some unifying title. Maybe XML goes a long way towards managing it, maybe it doesn't. I can't see how Sendmail rewrite rules and Apache virtual host definitions could be merged and create less different configuration entities than the sum of the original two.

      > People want a standard that ALLOWS for a GUI and ALLOWS for text editing.

      Some people want a standard that allows for a GUI, while others want text editing. I haven't met anyone who wants both. I'm sure they are out there, and I agree that doing both should be feasible.

      Progress requires change, true, but not every change results in progress.

  78. simplified configuration. by ecalkin · · Score: 1

    i would take a look at the menu system that was (is) used on novell servers. monitor.nlm, install.nlm/nwconfig.nlm, and inetcfg.nlm are the big ones, and most of the extra services have a menu system also.

    as a novell trainer, i've found that once people understand what they are doing, using the menus are easy. sometimes in advanced features there is a 'where was it?' problem until they get used to the function.

    the greatest thing about the novell menus are consistancy. the same key strokes, same actions, etc.

    there are some *nixes that have menu systems (i've used sam on hpux) but none of them have the ease of use that the blue novell menus do.

    eric

  79. Other ways to ease configuration by r6144 · · Score: 1

    In fact a GUI is not too much different from a somewhat readable text configuration file (which is everything except maybe sendmail.cf). If things does not work, most of the time is spent figuring out "why it doesn't work", rather than spent in reading the configuration file format, which only a small part need to be actually read for tweaking.

    Therefore I suggest the following:

    1. The docs should contain something about "when things breaks, where to look at (and what to read)". When some gateway are not correctly configured, telling me where to tcpdump is more useful than giving me another GUI. Also, for each config option, try to give an example that shows the difference with and without the option, especially when the option is hard to understand.

    2. Software should give better error messages. When a net admin get a cryptic "Invalid argument" (EINVAL) from route(8), how does he know whether he has mistyped the command, misunderstood its syntax, or added a route that the kernel didn't like for one of 10 different reasons?

    3. Software should come with enough configuration files that should in most cases basically work. If a sys admin have to write a 30-line config file all by himself just to get "YetAnotherHTTPd" serve static pages to localhost, and add another 20 lines to make it serve CGI, he will probably try something else before getting YetAnotherHTTPd to work. What sysadmins should do is things like setting security by Copy'n'Paste'n'Uncomment, and performance tweaks.

  80. Not netbsd! by Penguinoflight · · Score: 0

    Apple based OS X on Mach os (kernel mostly), and FreeBSD. FreeBSD goes back to bsd 4.4, not NetBSD.

    All that and I don't use any of those...

    --
    "And we have seen and do testify that the Father sent the Son to be the Savior of the World"
    1 John 4:14
  81. The fix is clear by Anonymous Coward · · Score: 0

    Unfortunately, the infighting, politics and lack of discipline of distribution maintainers have made it nearly impossible. In spite of the fact that DJB is a bit strongly worded in his opinions , he is not far from the truth here. In the 20+ years I've been using various flavors of U*ix, I groan every time I have to use a different distribution because the developers could not be bothered with maintaining a globally consistent directory structure, and simple things like command line flags on common commands (e.g. the ps utility) are rendered inconsitent because two groups of developers think cannot deign to use flags consistent with the other group. It is a real disappointment and in my opinion holds U*ix back big time.

  82. Why not XML? Not tab-count-dependent! by Nonesuch · · Score: 2
    I'm not a huge proponent of XML, but it does make for configuration files that are easily parsed by the application, a human, and a syntax checker.

    Yes, XML imposes overhead. But it also brings some real advantages. Look at the Apache configuration file, particularly 2.0.

    I really really despise configuration files that are dependent on the number and type of whitespace in a line to determine how the data is parsed, particularly what syslog does.

    If cut-n-paste (generally converting tabs to spaces, etc) breaks your configuration format, then your configuration format was broken the day it was designed.

  83. Nightmare? by pmz · · Score: 2

    What nightmare? If your sys admins are worth their salaries, then you shouldn't be losing any sleep.

    I think the article is referring to a heterogenous network with lots of history, where mediocre sys admins have come and gone and six different flavors of OS exist. This is not a problem with UNIX, it is a problem with your high staff turnover and patchwork network architecture!

    Planned well and managed well, a UNIX network is very nice, and you don't need glitzy GUI tools to get you there.

  84. What configuration nightmare? by Anonymous Coward · · Score: 0


    _What_ configuration nightmare?

    There's a universal config tool for unix already.
    It's called "vi", look into it.

    There is always a simpler solution which is
    incorrect. You make things as simple as possible, and no simpler.

    Configuring unix and its millions of apps, or any other OS, is by its nature a pretty complex problem. There is simply no getting rid of most of this complexity. Deal with it and quit being a crybaby.

    Besides, I'm an old dog and am very suspicions of new tricks. I'm still not used to xnetd config files vs. the old inetd config file.

    What tends to heppen when somebody redesigns config files to make it easier to slap some crappy ill-conceived gui config tool interface on top of it is typically good for one class of users, but bad for another. Scalability tends to go out the window. All your scripts for managing 1000 servers quit working, but configuring 1 workstation can be done by an idiot with a mouse. (soln.: hire 1000 idiots.) Flexibility goes out the window. The author of the config tool didn't anticipate your gonzo setup. Gui tools and such are best when they are _optional_ and the old ways still work as they always did, and when the tool is smart enough not to freak out if somebody hand edits one of "its" files.

    (He trolls, anonymously without actually reading the article :-)

  85. Cisco-format config files? by akejay · · Score: 1

    Cisco's configuration metaphor is the best thing out there, so far. It is possible to read one textfile and realize exactly what the router or switch is going to do! Also, this file makes it simple to replace failed hardware by loading the same file into alternate equipment.

    All that is required is an interpreter that runs at boot-time or upon request, and syncs the real config files with the script. Just a small matter of programming. :-)

    A sample config file:

    version 0.1
    !
    hostname ns
    !
    authentication local
    authentication username root password 5 .....
    !
    ip name-server 127.0.0.1
    ip default-gateway 10.1.1.1
    ip domain-name testnet.local
    !
    interface eth0
    ip address 10.1.1.25 255.255.255.0
    duplex full
    speed 100
    !
    service dns
    zone master testnet.local
    start-of-authority ns.testbox.local .......
    ...

    --
    one, two, one two like a duck
    1. Re:Cisco-format config files? by Anonymous Coward · · Score: 0

      Wow - looks a lot like IBM's MVT sysgen files, from the 60's. wait MVT and Cisco had their birth at which university? This sensible format is also punched card conformant.

  86. Certain minimum criteria (From a Unix pro) by Nonesuch · · Score: 2
    It'd be great to have better mechanisms for configurations, particularly some means for handling inheiritance of default values, parsing for correctness, and change management.

    There are are certain advantages to the current general way Unix software configuration files are handled. I'd hate to see these advantages lost in the name of making things 'easier' or 'more centralized'. Some of these advantages include:

    • Storage of configuration data in flat files, without the need to compile to another format before use.
    • Each independent application generally has just one or two configuration files, and settings for just that one application are thus easily migrated to another host/platform/etc.
    • Being decentralized, an error on automatic or manual editing of configurations for one application doesn't corrupt the configuration for all.
    • Most configuration file formats are both easily human-readable and machine-readable.
    • Configuration parsing does not rely on linking against a large, potentially insecure configuration file handler library.

    Some of these strengths are also weaknesses- for example, having each programmer write his own configuration parser leads to many disparate security flaws as each author makes their own unique mistakes.

    I've rescued a number of systems from otherwise-fatal low-level configuration errors by manuaully correcting the configration, either by mounting the drive on another system, or simply hex-editing the raw partition to replace the first character of the offending line with a '#'. I'd hate to lose this last-ditch rescue option.

  87. Re:no, and furthermore... If it by alfredo · · Score: 2

    If it was cool enough for Apple, then maybe the rest of the world with see just how cool the world of the the Nix's is. UNIX/Linux is more than a Kernel, it is a reflection of all of you who have contributed. That is what makes the Nix's so fucking cool. Apple knew that.

    For once Apple found someone cooler than itself and wanted to be part of it.

    --
    photosMy Photostream
  88. LDAP to the rescue! by Anonymous Coward · · Score: 0

    Configuration information should be stored in a directory database such as LDAP. This will allow us to produce easy to use tools as well as permit central management of 1000's of boxes.

    Some people out there will jump to conculsion this would be like the windows registry. Wrong! LDAP is extensible, the Windows registry is not. With an extensible scheme its possible to mirror the exact type of parameters in a .conf file. The Windows registry on the other hand,is limited to a hand full of data types (String, Multi-String, DWORD, and binary stream).

    If Linux is to grow into the corporate world it is going to need Directory Services. No If's, But's about it. If you have never used Directory Services, don't even try to bother to respond to this message, you don't have the first clue. I am tired of hearing stupid rebuttles from so called guru unix admin who think they know all, and see all NIS is a pathetic/earliet attempt a DS.

    1. Re:LDAP to the rescue! by minus9 · · Score: 1

      How about THE Directory Service

      www.novell.com. Search for Linux NDS. Novells eDirectory (gotta have that little e:)) is available for Linux and Solaris as well as various legacy Microsoft operating systems.

  89. A possible way to do this by lorvija · · Score: 1
    A great idea! Here's one way it might be done:
    1. Each application continues using it's own config stuff, ie. dotfiles, and settings can be changed as they are now, or with the common system. The common system ends up changing the dotfile too.
    2. The common config system is an interface to the dotfiles. Application writers or other volunteers keep up an e.g. XML file that defines what the config options are. This file would define how the dotfile is formatted, where it's stored (system wide and personal) and have names, value types and descriptions of all options. Actually a separate file with descriptions in different languages would be better.
    3. There would be various front ends to the config app, as described in the article, and it'd display the info from the dotfile in the format specified by the XML file.
    4. root would get the possibility of changing system wide or personal settings.
    5. When an application is installed, this XML-file would be moved to eg. ~/.config/appname.xml, and the front ends would know to look for the stuff there.
    6. The system should be smart enough to display system wide settings and default values as current settings if the user hasn't changed the config yet.

    Just my € 2 cents worth...
  90. I know I shouldn't... by Foehg · · Score: 1

    Getting sendmail to route mail is the tricky part. Getting it to rout mail is absolutely cake. :-)

  91. Like everyone else... by koali · · Score: 1

    I have my own very ideas :) I believe that XML is good but very verbose; anyhow, the array of parsers and stuff would make working with it really simple... So it's a naught point that XML config files are hard to edit if an XML-editor becomes as standard as vi.

    A good idea I saw on ATG-Dynamo (who uses both XML configs and plain text), is the idea of configurable config-layers, that is, that it checks in order different places for config (kinda like looking first in /etc then in ~/.foo, etc.), letting you choose which 'directories' are read *and* having plenty of flexibility to combine the different files (i.e., concatenate, replace, ...).

    The only thing I can think of that is missing in that for a general config system would be the addition of 'final' configuration, i.e: when an attribute is finalized, no later layer of configuration can change it.

  92. Another discussion like this by Anonymous Coward · · Score: 0

    There was an intersting thread on the openbsd tech list about this issue.
    http://www.sigmasoft.com/~openbsd/archive/openbs d- tech/200111/msg00263.html

  93. 'Advanced' config on windows by TeknoHog · · Score: 2
    I agree that Unix configuration can be a bit hairy, but one thing I've always liked about it over that of Windows is a certain openness, democracy, or equality.

    What's advanced to one is trivial to another.

    Many people here complain that unix is elitist, but at least it doesn't make assumptions about your level of expertise. There are many situations where a beginner needs to configure something that happens to be under 'advanced'. It's very discouraging to give the idea that you must be 1337 to use those options. Also it's impossible to split people simply into beginners and experts because an expert in one field is a beginner in another.

    I guess it goes naturally in the whole of OSS and unix philosophy. If you need to fix something, there are guides to there even if the path proves difficult. In Windows things are decided for you, and if something is decided 'difficult' the system reminds you that it takes some black magic and you probably shouldn't do it.

    So, whatever the silver bullet to config is, let there be an option to hack the files with emacs. Because computing is not black magic which should be hidden behind candy houses.

    --
    Escher was the first MC and Giger invented the HR department.
  94. NOT a file-format, a parsing library by camusatan · · Score: 2, Insightful
    The proposal isn't actually a bad one - we're talking about just a simple C library which can read, write, and parse configuration files using 'plug-in' stub libraries. That's what the author of the article is proposing. It strikes me as a good idea for several reasons:

    • Certain configuration file-formats we're kinda 'stuck' with. For these files, we just have to write the plug-in which can read, write, and parse them. We don't have to re-write the application to comply with The New Way. The app doesn't need to change, or even be aware of the configuration library.
    • A configuration utility written to use the library would be able to configure all applications which have the appropriate plug-in installed. So if someone writes a nice pretty GUI X-based app, it can configure everything. If someone writes a curses-based text menu app, it can configure everything. A web-based configuration app could also configure everything. Some config-apps could be oriented for gurus, and some could be designed for newbies.
    • Eventually, applications themselves could use the library to read in their own preferences. Bonus - it's a little easier to write applications now.
    All that being said, I foresee some 'gotchas' -

    • The library system would need to not only know about configuration file formats, but some meta-configuration info such as - application X uses config-file format Y in location Z. Application X can be forced to reread its config by sending it a SIGHUP, it's process name is 'blah'.
    • The design of the API for the main library has to be made veeeeeeery carefully. The number of different types of data that you'll have to deal with here are huge - we're not just talking 'integer, string, float' - but some relatively complex data structures like IP Address, or 'Firewall mapping' (two IP addresses, two ports, and a UDP/TCP choice).
    • Configuration file formats that are unbelievably miserable and allow for the user to put script bits in them (isn't this why we all hate MS Word?) would be almost un-programmatically-configurable. Sendmail.cf comes to mind. It gets to the point, there, where the only thing that's ever going to understand the config file is the application itself.
  95. old idea but it would work by Cubejockey · · Score: 1

    remember win 95 ...wait for it.... sysedit --- its not one big config file but it makes it all available without digging too much any text editor....

  96. Wha by Anonymous Coward · · Score: 0

    Whaaaa, Stop your whinning and fix it.

  97. Not NetBSD by mosch · · Score: 1, Redundant

    Since when was OS X based on NetBSD? It's based on FreeBSD. I know that NetBSD can run on table lamps, but that doesn't automatically mean it's the OS used on the new iMac.

  98. NETINFO is the worst by capedgirardeau · · Score: 0, Troll

    This is just like the dark days of the windows registry.

    Obscure syntax and things buried levels deep.

    It takes 14 steps to add an /etc/hosts entry using the NetInfo system is one example of what I mean.

    --
    Wax on, wax off baby!
  99. This is a "Hard" problem. by paj1234 · · Score: 2, Insightful

    This is a non-trivial problem, and one I have some experience of (failing to deal) with.

    My program is called "createusers". I wrote it because I wanted to make the following for 100s of new users in one go: user login, Apache home page, Samba account, PostgreSQL database, and MySQL database. I also did my best to make it extensible.

    You can find my program here:
    http://freshmeat.net/projects/createusers/
    and here:
    http://www.lfsp.org/

    The fundamental problem I faced when writing createusers is there is no standard programmatically-accessible way of:

    1) finding out what can be configured in each application

    2) applying and undoing the changes.

    Furthermore, I would like to make createusers programmatically-accessible. Unfortunately at present I cannot, because there is no standard way for me to let other programs know what facilities my program has, and no standard way for me to make them easily turn-off-and-on-able by other programs.

    I received some add-on contributions to my program from other people. I noticed that their programs said "Have you enabled X in createusers.conf?", "Have you enabled Y in createusers.conf?", etc.

    If I had standards-based turn-on-and-off-ability for my program, then my contributors' programs would have been able to do it for themselves. They would be able to easily check what things my program is set up to do; AND they would be equally able to change it.

    This is a problem for people Much Smarter Than Me. If it is solved, then I promise to put the necessary bits in to my program so its setup can be easily, securely queried and changed by other programs.

    1. Re:This is a "Hard" problem. by thockin · · Score: 1

      Yes it's hard, but the solution is pretty obvious. Actually, a multitude of solutions are obvious. As a great programmer once told me: "everything can be solved with another level of indirection".

      This is the same problem that Cobalt (now Sun) solved with Sausalito (CCE, actually). You can describe the "things" in the system in abstract terms. You can describe the "actions" to occur when those "things" change (events). You can even make the register/deregister of "event"->"event handler" pretty dynamic. Now all your programs need to know about the system is the abstract "things". A bit of introspection and you have a pretty fully dynamic single interface to the system and configurable "things".

      Now, I'm not saying Cobalt got it all right the first time through, but CCE is pretty cool. And it solves this age-old problem.

  100. *ThankYou* by tlh1005 · · Score: 1

    Amen, XML is a solution but not necessarily one that is the best. Example... I had enough trouble with EJB's as it was going, I didn't need XML config files required for each server vendor to add to the headache.

  101. absolutely by No-op · · Score: 2

    You hit it dead on there. while you or I have no problem popping in and futzing with the configs by hand or killing processes, those pesky coworkers tend to be completely ignorant of such things.

    nothing sells a free UN*X system to your management like this:

    you: "we'd need to stretch our WinNT admins further and have them understand how this app works on this system; additionally we'll need 500 more server licenses for NT."

    boss: "but that would cost more!"

    you: "well, we do have this test environment set up, but it's running under FreeBSD (insert your OS of choice here)."

    boss: "But isn't that hard to understand? what if you get hit by a bus?"

    you: "well, before you say that, check out this nifty web interface to controlling the system. very nice and straightforward. very easy to use. the NT admins are ALREADY USING IT for other systems, too."

    boss: "wow, that's pretty slick. and this is free?"

    you: "yes, it's free, and we are ALREADY USING IT in the environment with no problems whatsoever. it also allows for authorized admins to remotely control the systems for 24/7 coverage! and what's more, FreeBSD (insert your OS here) is free, and we have to spend money only on server hardware."

    boss: "well, looks like that's the best solution then. write up a proposal and go for it."

    not that it always works like that, but sometimes it does, and that's a beautiful thing. plus, scripting your own needed code and adding it on as a webmin module is pretty easy, and can handle most anything you might need to do by hand, or via a script you're running from an ssh term. why bother? just *click*.

    --
    EOM
    1. Re:absolutely by Spoing · · Score: 2
      Agreed. I'd add that using Grace Hooper as an inspiratin at times can be quite an asset; It's easier to appologize then to get permission. Facinating person.

      Along those lines and other trechery in the name of thwarthing bad management attitudes and behavior, I've used this tactic to CYA with great sucess;

      1. Problem: Something has to be done but you know that management won't sign off on it. If you don't get them to agree, you will end up in a heap of trouble even if you warn them months in advance.
      2. Solution: Take the thankless job of doing required documentation, or add in a progress/status report.

        On a very regular basis(!), get management to review the documents till they are just not interested and want the summary. If possible, get them to sign off on the document.

        After it looks like nobody is reading what you're writing anymore, drop in a clause or section that adds in a stern warning about what you are concerned over. If you can do this with a minimal amount of changes, that's even better.

        When the shit hits the fan, point to the document and thier signatures -- but do so in a non-confrontational manner; don't say 'I told you so'.

        It is important to not to hide anything, to distribute these documents widely within the company or project areas.

      This can also be used to 'authorize' certian activities without asking flat out. Yes, I have been refered to as evil at times.

      --
      A firewall can not protect you from yourself. Turn off what you do not need. Do not use the firewall to do your work.
  102. Config File Compiler? by mcrbids · · Score: 2

    GCC is probably a good example - it compiles to metacode, then to actual machine code.

    This "two-step" operation is what we should use - with that ANY config file could be used!

    So you start with the original text-based config files, and thru a translation layer is converted into a format that this "Configurationator" can handle. Options are picked, and once done, it's uncompiled and saved in the original source format.

    It wouldn't be terribly hard to create a metaformat that would allow for this - it would in essence be a modified regex definition!

    -Ben

    --
    I have no problem with your religion until you decide it's reason to deprive others of the truth.
  103. Reiser's future vision by Anonymous Coward · · Score: 0

    I have to say that the proposal discussed on freshmeat is far from acceptable by todays standards. There is nothing new in the approach and it will fail where so many other similar attempts have.

    Instead, have a look at Reiser's future vision of a filing system http://www.reiserfs.org/whitepaper.html and imagine what a good set of filters could do.

    For example, let a configuration file be stored in the filing system namespace in an appropriate tagged format. Now, whenever an application requests the file through a certain set of keys, the filter could dynamically format it, in say XML. But a normal user reading the file would probably prefer a text layout which could also be provided by a filter.

    I think it's time to move on. We've been stomping on the same ground for far too long and it's not going anywhere. Reiser is definitly delivering some future directions.

  104. The BIG problem with Linux/UNIX configuration by dentar · · Score: 2, Interesting

    The BIG problem with Linux/UNIX config programs is that they aren't stateless. Programs that try to keep their own versions of all the config files (ahem... linuxconf) get all freaked out if you go in and change a file by hand the manly way (with vi, not emacs). Webmin (I think) does not try to do this, so it appears to work better. If someone were to write a NON-STATE-KEEPING tool then it has a much better chance of working nicely.

    --
    -- I am. Therefore, I think!
  105. Re:THAT, SIR.... by Mr.+Neutron · · Score: 2

    What's a "code fag"?

    --
    dinner: it's what's for beer
  106. Give credit to the right OS... by someonehasmyname · · Score: 1

    Apple didn't use NetBSD, they use FreeBSD!

    --
    Common sense is not so common.
  107. obligatory anti-XML post by Anonymous Coward · · Score: 0
    Lisp's S-lists seem to offer all the benefits of XML, but with a Turing-complete (or "Church-complete" if you prefer, which I do) scripting engine to boot. The scripting could come in handy if your configuration file is somewhat redundant or if you want to have an option that the package authors didn't think of.

    Thank you. You may now resume your pro-XML discussions.

    1. Re:obligatory anti-XML post by ttfkam · · Score: 2

      And now you've combined data and logic which should be kept separate whenever possible.

      Your solution is akin to writing a config file that consists of Perl hashs and arrays for inclusion via "require." You're locking into a single language and a wrong keystroke will crash your program (as opposed to simply having the config file parser report an error so that you can gracefully exit and, most important, tell the user what they did wrong.

      --

      - I don't need to go outside, my CRT tan'll do me just fine.
  108. UNIX IS simple. by siphoncolder · · Score: 1

    wasn't it dennis ritchie who said:

    "UNIX is simple. It just takes a genious to realize its simplicity."

    UNIX, as it is, was meant for people who know what they're doing. bringing it to the masses is a task that wasn't meant to be done, although linux took a good shot at it by making a UNIX that's free for millions of other brainiacs.

    OSX also took a good shot at it, and it's worked out famously well.

    what makes them work so well?

    they have a TARGET AUDIENCE, and a CONSOLIDATED EFFORT TO BRING THEM WHAT THEY WANT.

    linux, UNIX, OSX, FreeBSD work they way they were designed, and applications et al already run on them. they don't NEED to be standardized further - they just need applications to keep sustaining the target audience. and in that effect, they're all winners.

    --
    i'm amazed that i survived - an airbag saved my life.
  109. Screw XML, use Python code by Tony+Hammitt · · Score: 4, Insightful

    We should use actual Python code as the configuration file format. It's callable directly from C, and by extension, all other languages. It's nice and clean. It supports heirarchial inclusion of other configuration files. It has easily readable comments. In short, it's the perfect configuration file specification language.

    1. Re:Screw XML, use Python code by Anonymous Coward · · Score: 0

      It's also Turing complete, not exactly what I want in a data file.

  110. XFree 86 Configuration.. by Dragonshed · · Score: 1

    This is aproximately 95% personal peev so it may suffer from -1 offtopic, but it's my 0.02$. Also understand that my knowledge of the X11R6 standard, and how Xfree86 functions at a low level, is quite limited.

    I'd really like to see some sort of integration between Gnome/KDE user control interfaces (gnomecc, etc) and XFree86. Something that would let you configure the X server in place, without restarting your session. One of the things that's always bugged me when trying to get coworkers to checkout linux as a possible desktop is the fact that they have to configure their desktop separately from configuring the X server. Coming from the windows side, most people find it annoying to have to configure the display resolution/color depth separately from other properties of the desktop.

    This would improve ease of configuration, and bring [insert free os here] closer to being a desktop os.

    Now, I realize that this might be impossible to implement without breaking several other things, but I just wanted to throw the possibility out there.

    1. Re:XFree 86 Configuration.. by TeknoHog · · Score: 2
      Now, I realize that this might be impossible to implement without breaking several other things, but I just wanted to throw the possibility out there.

      IMHO one of the great things about text config files in unix, is that they can be edited either directly or with custom tools. The application never gets to know how the config was edited, as long as it works. So in principle it can be done without breaking anything.

      The only such tool I've used is Linuxconf, but it's rather limited and doesn't seem to work properly. Now I'm back to editing by hand and with scripts of my own.

      One problem behind XFree86 is that there's usually a single main config file owned by root, although I believe it is possible to use personal XF86Configs. (Never tried this - no need on my personal system.)

      Nevetheless, I could also argue that configuring X is not something that users should do. The system should be installed properly to fit the hardware in the first place. Those who want to tweak the performance for movie playback or such, probably need to have root access anyway. This might be one reason why your suggestion has not been implemented.

      --
      Escher was the first MC and Giger invented the HR department.
    2. Re:XFree 86 Configuration.. by Dragonshed · · Score: 1

      For a multi-user system, I whole-heartedly agree with you. In Xf86's current formfactor, it wouldn't make sense to allow users to configure the something(anything) system wide. But in a single user setting, it does, imo.

      My argument is that Xf86 doesn't allow configuration behavior, for single-user desktops, comparable to other successful single-user desktop solutions. If the goal of this exercise is to ease configuration for single-user desktops (and that's a very big if :), there needs to be an integrated way of doing so.

      My pipedream (gnome specific): Imagine a panel inside gnomecc named gnomecc->Desktop->Display which allowed you to reconfigure X without restarting the session or the X server. It'd take more than just a standardized way of changing the config file to do this.

      Anyway, It's quite a specialized feature for something as traditional as X to provide. I imagine it makes zero sense for the guys at XFree86 to even bother looking into it, from their point of view. But the reality is this is pretty standard behavior for any other desktop, including MacOS X.

    3. Re:XFree 86 Configuration.. by TeknoHog · · Score: 2
      My pipedream (gnome specific): Imagine a panel inside gnomecc named gnomecc->Desktop->Display which allowed you to reconfigure X without restarting the session or the X server. It'd take more than just a standardized way of changing the config file to do this.

      There is already the xvidtune utility (included in XFree86) that lets you change some of the video parameters on the fly. Therefore what you describe should be quite possible.

      --
      Escher was the first MC and Giger invented the HR department.
  111. Wrong, wrong! by nslu · · Score: 1

    For me one of the strongest points of unix is it's ease of configuration. Configs reside in almost one place, /etc, but still they don't make binary mess like windos registry. all configs are just text, written in some language, that is perfect for it's application. If anyone thinks about writing dns zones in xml -- oh, please, stfu. And... i type faster then move&click mouse and even faster than jumping through curses app with cursor keys.

    1. Re:Wrong, wrong! by RevCheswollen · · Score: 2, Informative

      Um, the practice of keeping all configuration in /etc is a recent innovation - attributable directly to the linux community (see LFSS /HFSS).

      Lame unices like the dreaded HP-UX still have configuration files scattered randomly through the folder hierarchy, binaries in /etc, non-optional drivers in /opt, and so forth ad nauseum.

      Linux is also moving to a standard of /etc/*.conf for individual configuration files, and /etc/*/* subdirectories (like /etc/httpd or /etc/apache) for multi-file configurations. Note the recent change from /etc/conf.modules to /etc/modules.conf, and the increasingly popular ln -s /etc/nfs.conf /etc/exports.

      But you're right that XML configuration is overkill and ridiculously verbose for most purposes. An XML-driven STATELESS configurator would be great, and would allow multiple front-ends to cleanly interoperate, but the basic text configuration files should remain as simple as possible.

  112. RTFM, guys. by Anonymous Coward · · Score: 0

    Problems with configuration? What kind of a fucking Troll are you? READ THE FUCKING MANUAL!!!

  113. Wrong wrong wrong by ttfkam · · Score: 3, Insightful
    The thing this article screamed was not "XML" but "API". Define the application programming interface for a library, and stop thinking that each application must directly access the native data


    Yes, and the discussion went to the next step and started talking about possible APIs. The parsing of XML (DOM and SAX -- DOM for in-memory data structure and SAX for streaming access) are well understood and, most important, already done with innumerable tools already written.

    XML Schema could not, for example, include primitive types for IP addresses (very common in config files), or validation constraints for integer values.


    Wrong! Wrong! Wrong! You haven't read the spec and are obviously making assumptions based on what you've heard from others who haven't read the spec either. XML Schema allows not only the specification of integer, string, float, date, etc. values, but integer subsets (greater than and less than) and string patterns (through regular expressions). And RELAX-NG can use XML Schema's datatype support as well.

    Do you have something that does validate IP addresses for example or were you just complaining about how one thing doesn't (even though it does) without showing anything that will solve the problem. If you say regular expressions, I must remind you that XML Schema supports regex matching of attributes and element data.

    To date there are no (zero, zip, nada, nothing) fully compliant XML parsers.


    Could you please enumerate these non-compliance issues? An encoding issue? Bugs in DOM or SAX support? What? I wonder about the vitrol of your argument without any specifics. Especially since I been using both parser that you mention (and a few others) without any noticeable issues associated with the standard. Any problem were usual to do with parser extensions to the standard which are fairly simple to avoid.

    A vast number of parsers out there ignore the DTD, which means they cannot handle entities (which is a big issue).


    You're right! That is a big issue. Unfortunately for your argument, it is not an issue with the leading parsers that you mentioned yourself: Xerces and MSXML. The default parser for Java (Crimson through JAXP), the default parser for Windows (MSXML), the default parser for Perl (XML::Parser I think...haven't used it yet) to name a few ALL handle entities. This is like saying that there are many web servers out there that don't support CGIs with the obvious intent of dissuading use of web servers.

    A simple .ini-style line delimited key=value is the most readable and understandable (from a psychological viewpoint) configuration format.


    I agree, but you're missing an important aspect here. INI files are usually one and at most two levels deep. They do not handle hierchical structures well at all! Let's look at a snippet from a default Apache configuration file.


    # The following lines prevent .htaccess files from being viewed by
    # Web clients. Since .htaccess files often contain authorization
    # information, access is disallowed for security reasons. Comment
    # these lines out if you want Web visitors to see the contents of
    # .htaccess files. If you change the AccessFileName directive above,
    # be sure to make the corresponding changes here.
    #
    # Also, folks tend to use names such as .htpasswd for password
    # files, so this will protect those as well.
    #
    <Files ~ "^\.ht">
    Order allow,deny
    Deny from all
    Satisfy All
    </Files>


    What do we see? Hmmm... Because the key/value pair format doesn't allow hierarchy, they fell back to something that looks a bit...er...XML-like. And it isn't key=value, it's key[whitespace]value. Yet another issue: one file has the equal sign and others don't. I thought we were aiming for consistency? And what if the parameter is a message and that message has a newline character? A '\' at the end of each line? A '\n' where appropriate? These are problems that XML has solved.

    And let's not forget Unicode support. We English speakers may have a hard-on for English, but can't you imagine a case where a program intended for a non-English speaking audience would want -- if not the names of the parameters themselves -- parameter values in alternate character sets than ISO-8859-1 (Latin1)? And before you rebut with UTF-8, do you want to write the UTF-8 translator? What about the other codesets? Are you strictly limiting to UTF-8? This is another area of XML parser that keep it simpler for the programmer. Transcoding is done for you and is most likely better implemented and supported than what you or I would come up with.

    And when you have multiple "Files" definitions? Well, multiple blocks right? The "Order," "Deny," and "Satisfy" parameters are associated with the "Files" definition, yes? So why aren't you associating a group of "Files" definitions together? Because that would require further hierarchy? Would you end up with something like this?


    <FilesDefinitions>
    <Files ~ "^\.ht">
    Order allow,deny
    Deny from all
    Satisfy All
    </Files>

    ...other Files definitions...
    <FilesDefinitions>


    Set up a relatively complex configuration where you have virtual hosts and those virtual hosts have behavior different from the default. What's that? You include them in tags by host? Tags that look somewhat like XML anyway you say? Imagine that!

    And what about the comments? For some formats, the comment is the ';' character. For others it is the '#'. And none of which I am aware differentiate between implementation comments and actual directive comments. For example. the comment above describes the configuration directive so that any configuration editor could conceivably read in that info and display as help to the user (assuming that all comments were kept correctly before the directive and not after or on the same line). But what if you wanted to make comments about your specific installation. You are making comments so that others in your working group can see why you made certain changes to the config file, right? So how are they differentiated from the primary directive comments. This is the type of problem that XML namespaces are intended to solve -- a way of giving demarcation points to distinct pieces of (sometimes) unrelated data or simply the clean combination of multiple schemas so that your schema definition doe not bloat to immeasurable levels and different schemas can easily share with one another.

    Something keeping back Linux/BSD/UNIX is the stubborn, 1337 coders who spent all day figuring out a config file that some joker on the net thought would be a keen config format but forgot to comment it. Let's face it, Apache is not the norm. Config parsers are a known problem with known solutions. Writing a config file parser is not the primary focus for most programmers out there. The config file is a necessary evil to them. Let's make it easier and just say, here's your DOM interface. It's well documented, works well for the limited dataset with which you a working (config files are usually less than 50K), will handle any configuration organizational type you want (hierarchical, flat, etc.) and will save you the time of writing a parser yourself.

    Have a nice day.
    --

    - I don't need to go outside, my CRT tan'll do me just fine.
  114. Provide GUI Front End to Parsed UNIX Config Files by Anonymous Coward · · Score: 0

    Instead of trying to make every unix program conform to some "ideal" configuration method like XML, I think that we should work with the current standard idiom (plain-text config files) with a unified interface. If we examine the config files we will see many regular types of configuration parameters (setting values, turning features on and off, composing lists, etc) that can be generically addressed through a GUI. We would simply need to write the formatting/parsing scripts to read and write the data from and to the configuration file(s). Let's not be clueless about being able to change many established program's configuration methods used on Unix programs now. IMHO, an acceptable solution would need to be (1) backward compatible, (2) portable, (3) accepting of new configurations, and (4) have easily editable I/O scripts. Just my 2c.

  115. Re:Provide GUI Front End to Parsed UNIX Config Fil by Anonymous Coward · · Score: 0

    Backward compatibility hurts - it's a kind of getting just half of the work done.

    This is off-topic, but funny how much effort did companies like Microsoft and Intel spend on backward compatibility just to find out that they make much more $$$ from backward incompatibility. :-)

    just my zero albani

  116. I think the location of files is just as important by Anonymous Coward · · Score: 0

    As one previously stated Linux seems to have apps strewn all over the disk without specific rhyme or reason. If you need to find something on a windows system it's in program files, that simple. Linux should have one /etc/ /sbin /usr/sbin directory for applications and go with it. ie: /usr/src/bind /usr/src/apache /usr/src/galeon etc. and the config files should be placed in /etc/conf/named.cong or a directory off of /etc/conf such as /etc/config/srvr/samba.conf and so on and so fourth. And from there is't really just an issue of properly commenting the config file, the conf files do not even have to be to the same format. find one place to place them and call it progress.

  117. I don't want to troll here by Anonymous Coward · · Score: 1, Insightful

    But if the Linux community even't can't agree on common interoperability for business apps (like OLE) between two major desktops, a thing which is important to push linux on the desktop, nor any commong config file format (xml, unix config way, sendmail, etc...), how can they agree on a common config scheme?

  118. Sounds like COAS by Anonymous Coward · · Score: 0

    The Caldera Open Administration System has many of the same goals, but it seems moribund these days. It was quite impressive: being able to configure a multitude of configuration files using a consistent user interface, whether text or graphically based. The "master" configuration file is always the original application's. It's too bad it didn't get more widely adopted. Ideally, each *nix application would ship with a COAS (or similar standardized) format metaconfiguration file that describes its native file format and would allow a high level configuration application to work. That would enable flashy, integrated *nix configuration like the other guys.

  119. webmin = huge security risk by Anonymous Coward · · Score: 0

    webmin is worse for your host's security than leaving unpatched, unupdated copies of sendmail, bind, and all the rpc services active. seriously, this is only a good program if your aim is to get r00ted.

  120. XST by -ryan · · Score: 1

    Ximian Setup Tools has a beautiful Perl backend that spits out XML and that you can send XML into to make changes.... very nice.

    -ryan

  121. If any one of your criticisms was valid by Anonymous Coward · · Score: 0

    then why does every single 3rd party developer use the registry?

    No-one's pointing a gun to their head.

    They use it because its the best solution available (in windows)

    Not to mention that both regedit and reg will allow you to turn the registry into a flat file and vice-versa.

  122. WHY NOT XML? by spike2131 · · Score: 1

    Performance overhead for XML to great? The parameter parsing code gets run once, at startup, on a short file. Not withstanding the numerous XML parsing libraries out there, any programmer worth his salt ought to be able to write a quick and dirty XML parser with low overhead.

    XML also give the advantage of being able to document the settings in a systematic manner that can be applied across a variety of config files. Your system doesn't seem to offer that. At least with s around, you have some inkling of the purpose of a given piece of data. I think such a product is a must, if ever *nix is going to make a strong play at being a viable desktop alternative.

    Better yet, XML can easily be parsed into dialogs... it would be very nice to have a third party tool that could configure options for a variety of software packages in a easily understandable GUI design.

    Finally, XML is an existing and widely accepted standard which is familiar to many users across diciplines. Those can be hard to come by. Might as well build on its strengths rather than try to invent a new standard fresh out of the blue.

    -Bobby

    --
    SpyDock: Scientific Python in a Docker container
  123. E smith is your answer. by Malcontent · · Score: 3, Informative

    Please check this out.

    It's the esmith configuration schema.

    They have already solved this problem in a neat way.

    --

    War is necrophilia.

    1. Re:E smith is your answer. by Anonymous Coward · · Score: 0

      esmith sounds like a great system for adapting OLD software to a standardized configuration system. What is needed, however, is an additional API for NEW code to use that makes it work without the templating hack.

  124. Use the X resource database! by Anonymous Coward · · Score: 1, Interesting

    The X resource database is a great configuration database - it is perfect for user preferences - and you could even use the same file format for non-graphical programs, too.

    Irritatingly, both KDE and GNOME ignore the XRDB and go off and implement their own half-assed systems (in KDE's case, reminiscent of Win3.1 .INI files...).

    Motif, Tk and Xaw applications all honour XRDB configuration -which is great!

    Want all applications to use a font?
    *font: Arial
    Want a certain application to use a font?
    *Xterm*font: Courier
    Want a certain button in a certain application to use a particular background colour (n.b. this is an immaginary one)

    *moogybrowza*toolbar*backbutton*bgcolor: cyan

    Fire up editres and play with Netscape 4 some time...
    - yes, that's right, Xaw and Motif applications are dynamically "themeable", at run-time, have been for years! Qt and Gtk suck on this front compared to widget sets that use the XRDB.

    It's a true database, not just a single-tree structure like xml, so it's pretty damn powerful - and is STILL human-editable text, yet
    can easily be wrapped in a GUI.

    It's a bit like the Windows Registry, but DONE RIGHT...

  125. Avoiding configuration by Animats · · Score: 3, Insightful
    Putting a GUI front end on a mess merely results in a less understandable mess. The problem needs to be fixed. Here's how:
    • Avoid configuration wherever possible. If something can be discovered, it shouldn't have to be configured. This applies to most pathnames. Searching directory trees is faster than it used to be. Long-term, a database of where stuff is is needed. Note that Microsoft is going that way.
    • The PATH approach to program finding has to go. It leads to everything being in a small number of /bin directories. Each installed program needs to be in a separate directory subtree. /bin directories should consist only of links.
    • Separate preferences from configuration. Individual user preferences should be disposable; if they're missing, the defaults apply. The old MacOS worked that way.
    • There are several categories of programs. Ordinary applications should be installed in a separate directory subtree for each program. The subtrees should be organized something like the Windows approach of "program files/vendor name/app name/". For ordinary applications, no interaction is allowed between apps at install time, and a standard installer should enforce this. That way, installing A can't mess up B.
    • Programs that aren't "ordinary applications" should be given some identifying name, so users are warned that they may mess things up. This will discourage unnecessary tweaking during installs. All games, for example, should be ordinary applications. Programs that mess up other programs' installs should require more privileges to install than those that don't.
    • Hardware should be recognized via discovery, period. Support for hardware that can't be discovered should be dropped.

    We will now hear from all the people who insist that "they have to do wierd thing X because it's (traditional) (k00l) (needed to support their 386 machine)". They're wrong. Someone needs to be a hardass and fix this thing.

  126. Isn't X the problem with Unix by dinkle123 · · Score: 1

    it just isn't as nice as MacOS! here's my solution bag XWindows put in the MacOS UI... Customers = Happy..

    --
    Don't Try to Outweird me, I get stranger things than you with my breakfast cereal every morning
  127. Testing by Anonymous Coward · · Score: 0

    .I .like .wide .pages .I .wish .all .pages .could .be .as .wide .as .this .dont .you .wide .pages .are .much .cooler .than .those .narrow .pages .you .are .used .to .reading .because .you .dont .have .to .worry .about .the .lameness .filter .telling .you .that .you .don't .have .enough .charaters .per .line .that .really .sucks .when .that .happens .and .you .have .to .put .some .lame .lameness .filter .defeater .text .in .there .i .wonder .how .many .people .will .read .this .whole .comment .I .certainly .hope .it .doesnt .annoy .too .many .people .This .is .just .the .beginning .because .PAGE .WIDENING .IS .BACK .I .like .wide .pages .I .wish .all .pages .could .be .as .wide .as .this .dont .you .wide .pages .are .much .cooler .than .those .narrow .pages .you .are .used .to .reading .because .you .dont .have .to .worry .about .the .lameness .filter .telling .you .that .you .don't .have .enough .charaters .per .line .that .really .sucks .when .that .happens .and .you .have .to .put .some .lame .lameness .filter .defeater .text .in .there .i .wonder .how .many .people .will .read .this .whole .comment .I .certainly .hope .it .doesnt .annoy .too .many .people .This .is .just .the .beginning .because .PAGE .WIDENING .IS .BACK .I .like .wide .pages .I .wish .all .pages .could .be .as .wide .as .this .dont .you .wide .pages .are .much .cooler .than .those .narrow .pages .you .are .used .to .reading .because .you .dont .have .to .worry .about .the .lameness .filter .telling .you .that .you .don't .have .enough .charaters .per .line .that .really .sucks .when .that .happens .and .you .have .to .put .some .lame .lameness .filter .defeater .text .in .there .i .wonder .how .many .people .will .read .this .whole .comment .I .certainly .hope .it .doesnt .annoy .too .many .people .This .is .just .the .beginning .because .PAGE .WIDENING .IS .BACK .I .like .wide .pages .I .wish .all .pages .could .be .as .wide .as .this .dont .you .wide .pages .are .much .cooler .than .those .narrow .pages .you .are .used .to .reading .because .you .dont .have .to .worry .about .the .lameness .filter .telling .you .that .you .don't .have .enough .charaters .per .line .that .really .sucks .when .that .happens .and .you .have .to .put .some .lame .lameness .filter .defeater .text .in .there .i .wonder .how .many .people .will .read .this .whole .comment .I .certainly .hope .it .doesnt .annoy .too .many .people .This .is .just .the .beginning .because .PAGE .WIDENING .IS .BACK .I .like .wide .pages .I .wish .all .pages .could .be .as .wide .as .this .dont .you .wide .pages .are .much .cooler .than .those .narrow .pages .you .are .used .to .reading .because .you .dont .have .to .worry .about .the .lameness .filter .telling .you .that .you .don't .have .enough .charaters .per .line .that .really .sucks .when .that .happens .and .you .have .to .put .some .lame .lameness .filter .defeater .text .in .there .i .wonder .how .many .people .will .read .this .whole .comment .I .certainly .hope .it .doesnt .annoy .too .many .people .This .is .just .the .beginning .because .PAGE .WIDENING .IS .BACK .I .like .wide .pages .I .wish .all .pages .could .be .as .wide .as .this .dont .you .wide .pages .are .much .cooler .than .those .narrow .pages .you .are .used .to .reading .because .you .dont .have .to .worry .about .the .lameness .filter .telling .you .that .you .don't .have .enough .charaters .per .line .that .really .sucks .when .that .happens .and .you .have .to .put .some .lame .lameness .filter .defeater .text .in .there .i .wonder .how .many .people .will .read .this .whole .comment .I .certainly .hope .it .doesnt .annoy .too .many .people .This .is .just .the .beginning .because .PAGE .WIDENING .IS .BACK .I .like .wide .pages .I .wish .all .pages .could .be .as .wide .as .this .dont .you .wide .pages .are .much .cooler .than .those .narrow .pages .you .are .used .to .reading .because .you .dont .have .to .worry .about .the .lameness .filter .telling .you .that .you .don't .have .enough .charaters .per .line .that .really .sucks .when .that .happens .and .you .ha

  128. But why 'etc' ? by Anonymous Coward · · Score: 0

    My question is (reposted in the main thread for more exposure):

    Why are all the SUPER important files in etc? I mean, take off the Unix cap and think about this for a second... does it make any sense for the most important configuration files to be stored in a directory that is Latin for "and the rest"? Shouldn't it be "System" or "Important Stuff" or "DONT_DELETE_UNDER_ANY_CIRCUMSTANCES_THESE_ARENT_T RIVIAL FILES" ?

  129. More than ever: Unix != Linux!!! by swordgeek · · Score: 1

    Normally I can let the "Linux/Unix" equivalencies go past without commenting. However in this case, the very discussion is about something that differs substantially between Linux and Unix. How???

    1) DOCUMENTATION!!! All Unix implementations (Solaris, HPUX, AIX, etc. etc.) come with complete, comprehensive, current documentation. Linux documentation is unfortunately still a bad joke. This makes for enormous problems when configuring the system.

    2) Built-in tools. Admitedly most of the Unix vendors can control their hardware which makes configuring it much easier, but consider Solaris/X86 (RIP) vs. the ugly mess of trying to get RedHat 7.x up and running. Actually, there are only a few things in RH that are particularly bad, such as XFree86. Of course, that's Someone Else's Program, so they're more or less stuck with how it works (badly!).

    3) Consistency/standards. Unix works in a fairly consistent way. Applications don't always follow the same way. Example: How many applications that require a daemon started at boottime put a script directly into rc2.d instead of init.d? Or just start the daemon, ignoring start/stop flags? TOO many, that's for sure!

    I could keep going, but this is already dangerously close to a 'what's wrong with Linux' rant, and I don't want to get into that just now. It's good, but it's not there yet and IT'S NOT UNIX!

    --

    "People who do stupid things with hazardous materials often die." -- Jim Davidson on alt.folklore.urban
  130. Standards WTF by DrSpin · · Score: 1
    You want XML? I would prefer "printcap" - at least its Unix :-)

    This is an example of confusing style with substance, as well as losing the plot.

    There is clearly a demand for a mega-fantastic configuration tool that works like "Swat" but hacks all the STANDARD config files in a Unix environment.

    This does not mean we need to replace the standard formats with new NON-STANDARD standards.

    We've upped our standards, so UP YOURS

  131. No they arn't. by autopr0n · · Score: 2

    Please, that's the bigest lie in all of this. The idea that what you are doing in Unix is "hard." It's not. Once you learn the config files, getting things set up takes just a few seconds. I can ad a new domain to my DNS server in just a minute or two (just copy a file and modify as needed). I can set up a new share in Samba's web-based config quickly and secure it via IP range or windows username (I would assume it would take just a copy/paste/modify in the config files as well).

    I didn't have much trouble handling the apache config either for adding Tomcat on windows or scoop on linux either. (in the case of scoop, all I had to do was copy a pre-genererated text file into my apache conf file).

    It's not hard, it just takes time to learn all these damn config formats.

    A standard system for editing would go a long way to making things easier. People could spend time learning about how things really work rather then how lazy the author of the software was in writing their config parsers.

    XML+some schemas for common things would really help. In the case of Scoop I mentioned, I wouldn't have even had to do the useless and idiotic step of copying data one from one file to another manualy... it could be done by Make via a standard XML parsing API, or perhaps a standard config library.

    --
    autopr0n is like, down and stuff.
    1. Re:No they arn't. by Balp · · Score: 1

      The hard part, and thethinks that still will be hard how ever you do it is understanding the implications bethind that click. To add a new doamin might be easy, thats an easy task. I think that DNS should be an easy task, but there are some mighty complex thinks in the protcoll that might have some effecte on the security of all hosts in the network. These little thinks has to be considerd, in the initsial setup. Understadning the impact of these setting are not always, even mostly not, trivial. There are reasons why use djbdns, what problems might djbdns have for your installtions. Is BIND better? What version of BIND suites out need, BIND 9, BIND 8, BIND 4? To solve all these problems has to be tought about, if one doesn't there might, or will, be problems. How does the DNS work with the webcache? There are a loot of hard questions needing good answers, especially when you need a secure enviroment, and as you have DNS you probably are connected to the internet and then a secure enviromant is needed.

      To take the web-server and it's following problems with cgi, server-applets, evential database connectiosn and so on need a loot more thinking. Should ll servers e the same? What impact does that have? And so on. Of cource in a ISP enviroment, adding singels servers for a new costumer might be not problems, all these things are probably taken care of earlier (or at least they should have been taken care of ealier) and adding web-servers, mail-servers, user-accounts, and a loot more stuff could be done easyly from the order taking personell without knowing anything about configuration. But thats a speciall case.

  132. Well. by autopr0n · · Score: 2

    I wanted to use Linux as a server, as it seemed to be the 'thing to do', as well as the fact that run all that cool server code that was only available for Linux, as well as get experience running a Linux box.

    Having a Linux box has allowed me to have a mail/DNS server with a very high uptime, as well as a (non-porn :P) scoop site.

    I'm not saying it wasn't fun, but it's not something I want to go through all the time... that's why autopr0n.com uses tomcat on windows with an M$ access file rather then on Linux with Postgresql or MySQL or something. That would probably be a better solution (and eventually I'll migrate, or at least move up to a pirated copy of SQLServer :P), but it's just a lot less of a hassle to set those things up on windows.

    --
    autopr0n is like, down and stuff.
  133. sendmail conspericy. by autopr0n · · Score: 2

    If you go to sendmail.com you'll see they sell a 'pro' version with a nice GUI. I'm pretty sure they keep the text config complex for a reason :P

    --
    autopr0n is like, down and stuff.
  134. LibCFG: A configuration management API by Moderation+abuser · · Score: 2

    http://www.yelm.freeserve.co.uk/libcfg/

    XML is not the solution to the problem, XML is just a file format, many different file parsers would still be required for XML just as there are for other file formats.

    No what's required is a simple to use *API* which performs the configuration management for you. Whether the configuration information is then stored in a colon separated file, XML file, DB database, SQL database or LDAP server is irrelevant, it can still be read, modified, saved by the application.

    LibCFG uses flat text files by default but that's only because nobody's written LDAP, SQL, DBM sections for it.

    Note, the license for the library is important. For a library like this to become useful, *everything* has to be able to use it, the most expensive commercial software must be able to include and use the code as well as GNU GPL based software.

    --
    Government of the people, by corporate executives, for corporate profits.
    1. Re:LibCFG: A configuration management API by MikeBabcock · · Score: 2

      There is a Gnome-endorsed configuration system out there as well with at least XML and DB backends.

      --
      - Michael T. Babcock (Yes, I blog)
  135. XML+Schemas/DTDs+XLST by autopr0n · · Score: 2

    Actually, you wouldn't need two separate XML files. XML already has the capacity to 'describe' itself via DTDs, as well as XML schemas.

    Basically they let you write a description of what your XML document contains (indeed, you need those if you want to have a "valid" XML doc). A standard XML Schema could be developed for "Linux Config", and developers could derive from that any special config options they would need.

    You could also use XLST to convert from "app space" where all the tags are descriptive to the domain of the problem (<TCPport port="80" /> to <inetd:setport port="80" service="apache"> people could edit it in either form and have the changes roll back between the two. That way you could have a GUI for apache and inetd and make changes in either and automatically have it propagate all over the system, check for conflicts, etc.

    --
    autopr0n is like, down and stuff.
    1. Re:XML+Schemas/DTDs+XLST by alext · · Score: 1

      A single schema for all settings? How manageable would that be? Or do you mean a 'meta-schema', describing what standard elements are in all config files?

  136. Human readable? by autopr0n · · Score: 2

    type this at your command line for me real quick:

    cat /etc/sendmail.cf | more

    You call that human readable? Hah!

    Anyway, humans can read anything a computer can, with practice, including binary. It's just a question of how long it takes them to learn. XML does not take that much time.

    --
    autopr0n is like, down and stuff.
    1. Re:Human readable? by k8to · · Score: 2

      sendmail.cf is not designed to be readable
      it's generated by m4 macros.
      Bad example.

      XML is not really readable either, it's nested
      tree structures with lots of encumbered syntax

      -josh

      --
      -josh
  137. GCONF by brandonj · · Score: 1

    The GNOME project has one implemented already: it's called Gconf. It is like the windows registry in practice, but the configuration files are human-readable (XML). It's pluggable, it has a global config database, and a user-only database. It is easy to use and program for. It also has the ability to use any kind of database you want - while no changes to the application are needed.
    The only problem most people see with it right now is the current default database that is being used - it's ugly. But there is another one in the works and (I think) will be the default database in GNOME 2.0. There's even one that uses mysql!
    Really, what's the problem with using gconf globally? Imagine how easy it would be to configure things - it would be so much easier to write graphical frontends for these applications. LinuxConf would be rather simple to write and maintain! The advantages are innumerable! :)
    People worry about a corrupted database, but each allplication is in it's own file, so if something happens, then it's for that ONE application. I've been using GConf for some time and I've never had a problem with it.

    Go ahead and read about it on GNOME's webpage (www.gnome.org).

    -Brandon

  138. What about configuring during install by Anonymous Coward · · Score: 0

    >Sure, installing software is easy. Unpack and compile. We are talking about configuring software

    Well, duh, how about configuring software during compile/install? It seems to me that recompiling with changed parameters is one very common way of configuring software using Linux. And how fucking user friendly is that?

  139. Well.. by autopr0n · · Score: 2

    part of it is machine readablity. You can parse the second a lot easier if you already have an XML parser. That lets you do things like let installs of software modify the config of other things to include them (this would be great with Apache). As well as GUI things. How would a gui know to associate that comment with that option.

    Also, you probably wouldn't just use <option /> tags, thats' just bad/lazy XML. Probably more like this

    <logon>
    &<!- this options specifies a script to run for every user -->
    <scriptForAllUsers file="U.bat">
    </logon>


    Then in your DTD or Shema you would define what it does. programicaly, so that the comment would show up in a GUI as well.

    --
    autopr0n is like, down and stuff.
    1. Re:Well.. by nick+this · · Score: 1

      Yeah, but your comment was about not having to want to learn another config file format. My point was that it doesn't matter if its all in the same format, you still have to go to the manuals to find out what all the options *do*. It doesn't matter if its in xml format or whatever, if you don't know what a particular option does, you are baked either way... it doesn't matter if its xml with great help, it's still no more helpful that the nicely commented smb.conf.

      And okay... you are right... the "config" and the "meta config" data will likely be stored in two differnent files... my bad.

      But I stand by the assertion that these good ideas are worthless unless someone comes up with an EASY-TO-USE (developer-wise) configuration parser/validator. Sorry, but dot-conf isn't it. Neither is GConf.

      And that's the starting point -- a common .conf file LIBRARY like getopt is to command line args.

      Once that's done, the drop-in backend storage modules and the editor modules are the easy part.

      ps. I've used your site for several months now. Thanks.

  140. A better config file format than XML by Anonymous Coward · · Score: 0

    Sure, you can use XML for config files.
    But, you sort of lose the ability to edit them by hand. How about a nice format that is *simple* for the simple stuff, yet also scales up in complexity like XML? One that looks very close to traditional Unix config file formats, and is easy to parse using traditional Unix tools?
    I suggest a format that declares attribute/value pairs like this:

    maxusers = 5
    prompt = "Enter password\n"

    To make them part of a section (block), you could use this syntax:

    login:
    maxusers = 5
    prompt = "Enter password\n"
    /login

    You could use a # char for comments. You could have lists like this:

    permissions = user, group, other

    You could have lists within lists by using parentheses:

    matrix = (4,6,7),
    (3,2,1),
    (4,2,1)

    Although I anticipate that you wouldn't use this much. For comment blocks you could use:
    #: (indicates start of multiline comment)
    /# (indicates end of multiline comment)

    For strings with escaped chars (like \n), you'd surround the string with double quotes ("), for literal chars with no escaped chars, you'd use single quotes. For certain strings with no "weird" chars (esp. no spaces), you could omit the quote marks.

    The beauty is that, if no nesting (sections) are used, the format is just like a traditional, highly readable Unix config file.

    If you're forced to go XML because of your job, OK, but for the rest, I think this proposal has something going for it. I've got more details if someone asks.

    --Mr. Ashley Jacobs

    # Here it starts...
    title = "Example"
    nest_me:
    someval = 9.67
    deeper_nest:
    greeting = "Try it!"
    /deeper_nest
    /nest_me

    1. Re:A better config file format than XML by be-fan · · Score: 2

      Hmm, maybe its a matter of preference. I find the XML style easier as it is more word based rather than symbol based. Also, I think the structure of the file is much more readily apparent with XML than with standard UNIX config files. Of course, I'm one of those hierachical thinkers (you could probably describe my thought process in XML...) so it might just be me...

      --
      A deep unwavering belief is a sure sign you're missing something...
  141. Lets increase the intelligence to posts ratio... by BasharTeg · · Score: 2, Informative

    Those of you who are saying that FreeBSD runs only on the Intel platform, you are totally ignorant, and you should proceed to shut your mouth at this point. FreeBSD runs on Alpha, and has either single user or multi-user boots on Sparc, PPC, IA-64, etc.

    The number of machine dependant lines in the 4.4BSD kernel is 39,634 out of 202,251 or about 19.5%. Once the hardware specific areas of a platform are abstracted, the rest of the system (for the most part) works properly. (*Broad generalization*)

    As for the subject at hand, Darwin IS based on the Mach microkernel, with FreeBSD subsystems and libraries, and NetBSD userland. However, for those of you ignorant of the Mach microkernel, the short story is, it was partially based on 4.2BSD. So as much as ignorant Linux zealots want to try to make some kind of meaningless point that "Darwin is based on Mach not BSD.", from the perspective of the informed, that's the stupidest statement you could possibly make. No matter how you want to look at it, Darwin IS BSD. As several Apple representitives said at this year's BSDCon, there are currently FAR more deployed BSD boxes than Linux boxes. As for the FreeBSD vs NetBSD argument, you have to decide for yourself whether "based on" means "subsystems and libraries", or "userland utilities".

    From apple.com:

    "FreeBSD is one of the ongoing BSD development efforts and is our primary reference platform for current BSD kernel development."

    "we try to keep Darwin as compatible as possible with FreeBSD (our BSD reference platform)"

    "We already synchronize our code periodically with NetBSD for most of our user commands, and we will soon be doing the same with FreeBSD for our libraries."

  142. Configuration experiences by Anonymous Coward · · Score: 0

    Having used Windows/AIX/DigitalUnix/Linux I have a few opinions:

    Binary saved configs or databases or anything not as flat ascii files is Not An Option.
    When they work they are wonderful. When you get a problem, you are FUBAR.
    If you can't fix it with $EDITOR you are emptying a double-barreled at your feet.

    SMIT is wonderful. Everyone should have access to a good management tool if they prefer to use that.
    However, such a tool is just covering all the dirty innards with a pretty face. It shouldn't be _hard_ to do things by hand. Well, at least it should be logical :-).

    Configuration is a mess in Unix, and Linux even more so.
    One thing is being able to fiddle with stuff yourself, an entirely different one is finding where the stuff is.
    crontab in /var? Executables in /etc? Configs set up as scripts with commands in that get arguments twiddled by config tools?

    -NorthWay

  143. Do you really WANT to keep Linux as a niche? Yes. by amitola · · Score: 1

    You ask if I want usage of Linux to expand beyond the minority of people who think knowing their way around their system is cool. My answer is, no. To help you understand why, let me introduce myself. My name is Mike, and I am a geek.

    You say you have a life, and intend to keep it that way. I too have a life, and I choose to spend some of my free time tinkering with and occasionally contributing to open-source, free software projects. You are not required to respect or admire this lifestyle choice, any more than I am required to respect or admire yours.

    But when you ask why free software is not made more user-friendly, try to consider my position. As a volunteer programmer and tester, I am going to work only on projects that appeal to me. As many have observed, writing GUI configuration tools and other such fluff is not appealing. It is tedious, repetetive, unrewarding work. I have very little to learn from implementing yet more button-and-checkbox slop; I have done quite enough of that in my everyday paying jobs.

    If I am representative, geeks and consumers have very different needs, wants, goals, attitudes, and expectations. Therefore, if you want a geek to address the needs of consumers, you must give him or her some sort of external motivation.

    I submit that for many open source programmers, there is no such motivation. In fact, the opposite is the case: I don't really want to encourage consumer-grade users to adopt my software. There is a communal reason for this, and a selfish one:

    • The communal reason is that Joe AOL is, statistically speaking, not likely to be a valuable addition to the user community. He is not going to contribute any code. He doesn't read manuals. He often expects immediate, commercial grade support and generates a great deal of noise on the mailing lists. This is not really anyone's fault; Joe AOL is simply not interested in learning how his system works or making improvements to it.
    • The selfish reason is this: Since I have chosen to invest the time needed to become competent with Linux, FreeBSD, et al, I and my company have a significant competetive advantage. "Improving" this software to lower the cost of entry will benefit me not at all--in fact, my competetive advantage will diminish.

    No doubt somebody will point out that the majority of open source development is done by paid professionals, not hobbyist geeks. In that case, the above arguments are even more relevant. A commercial developer working on Apache might be interested in improving performance, adding features, or removing bugs. A company relying on Apache is no doubt quite comfortable with the way it is configured. So again, writing a spiffy GUI configuration tool would only make it easier for less sophisticated competitors to retire their Xitami/Windows NT web server and adopt the more robust Apache. Would you spend your money doing this, or something that actually benefits your company--something like improving performance, adding features, or removing bugs?

  144. Schemas for every program by ttfkam · · Score: 2

    I disagree. No two programs have the same set of configuration needs. Two web servers can have very different configuration options depending upon their focus. While I agree that DTDs are a pain in the ass (DTD entities == XML preprocessor == pain), using something like XML Schema or RELAX-NG would give all the necessary metadata a configuration manager would need. Far more so than some one size fits all or (only slightly better) five sizes fit all.

    If the UI can see that you need parameters A, B, and C, there is sufficient description data for the parameter (relatively simple with judicious use of XML namespaces), and can tell that A is supposed to be an integer from 0-100, B is supposed to me a valid email address, and C is an enumerated list of possible values (all possible with existing XML technology -- no need to reinvent the wheel), you will have your UI while allowing a sufficient amount of individualism by the programmer.

    And you don't need pre-defined schemas to make object mappings. There is previous work in this area already for the generation of object definitions from XML metadata. Of course this is of most use to the actual programs. The config manager needs to process the metadata in addition to the instance document (the config file).

    Come to think of it, a schema document describing UI manager "hints" might not be such a bad idea. It wouldn't tell it what each config entails, but could provide info on how that is to be presented. Nice idea!

    Re: LDAP. LDAP is an interface, nothing more. The LDAP spec says nothing about how the datastore should be implemented. In short, you could have your config data in any form you wanted and, as long as it was consistent and documented, publish the information through an LDAP-compliant gateway process.

    ** mouth waters at the possibilities **

    --

    - I don't need to go outside, my CRT tan'll do me just fine.
  145. Re:Do you really WANT to keep Linux as a niche? Ye by ebbe11 · · Score: 1
    Somebody mod this guy up! No, he does not agree with me but this is one of the best argued entries I have seen on Slashdot for a long time!

    The core of our disagreement is that I would very much like to have an alternative to Microsoft OS'es wheras Mike couldn't care less (I suspect he doesn't use any MS products unless he has to :-).

    With a BSEE and 20+ years professional programming experience I may not be a Joe AOL. But when it comes to Linux, I frequently find myself asking WITFM (Where Is The F**etc.. Manual). I have tried several times but have always ended up with a Linux PC that I can't use it for very much because I cannot get it configured.

    I don't have the patience (or enough spare time) to get to the point where I can get a Linux PC to do what I want the way I can with a Windows PC. And although I do love tinkering with computers and programming, it is unfortunately not a pastime that is compatible with a family life. (insert "why_are_you_always_playing_with_that_computer.wav ")

    --

    My opinion? See above.
  146. XML is not the solution. by Zygo · · Score: 2, Insightful
    I think that people who moan that Unix should be more like Windows or Mac don't really understand Unix, or Windows, or Mac. XML is part of the problem--people who think XML is the solution, or even neutral, are suffering from a specific kind of delusion which I'll cover in more detail later.

    Advocates of auto-detection instead of manual configuration I'll deal with right now: Applications in certain problem domains require explicit human-supplied configuration data. This is unavoidable in any application that has to implement some choice of policy, especially security policy. There are some things you can't ever autodetect, so if you can't configure the application, then you need many different applications, each hard-wired for one possible desirable configuration. Certainly a lot of things that should be auto-detected are not, but auto-detection will not eliminate the configuration problem.

    Windows and Mac are platforms controlled by a single vendor. That vendor has a _lot_ of influence over how applications are designed for that platform. When the vendor designs and implements the platform, the vendor will (intentionally or otherwise) reward applications with an architecture consistent with the vendor's design, and penalize those that don't. Applications tend to comply with the vendor architecture because the cost of non-compliance is greater than the cost of compliance.

    Unix is not a platform controlled by a single vendor. Heck, it's not even a platform; it's a bunch of little standards that were chosen arbitrarily and stitched together. Linux, FreeBSD, SysV, BSD, Solaris, QNX, HP/UX, etc. are not Unix platforms--they are platforms compatible with Unix, implementing parts of the SUS, ANSI, and POSIX standards, with varying degrees of completeness and success. As such, there is no reward for making an application's architecture consistent with the OS vendor's design; contrariwise, there is a compelling reward for an OS vendor to make an OS architecture consistent with a desirable class of application.

    The difference is critical for understanding the configuration file nightmares of both kinds of platform. Windows has a really awful configuration mechanism that nobody would ever use if they weren't compelled to; however, certain parts of Windows are only conveniently accessible via this configuration file format, easy (if not reliable) methods to access the format are provided to all developers and available on all end-user machines, and the configuration schema does not define a lot of policy to get in the way of extensions (need new schema? Add a new DLL!). The Mac has a different architecture and mechanism with the same consequences.

    On the other hand, applications that run on Unix are, in whole or in part, designed for "other" systems. Applications that were designed and written exclusively on Unix-like platform X eventually get ported to some other Unix-like platform Y--those that don't tend to be eventually replaced by similar applications that do. When this happens, the resulting application is an alien on both platforms. The application must find everything it needs on each target platform, or it must bring with it those things that are missing from some target platforms. This means that the application will have translation or interpretation layers (all C apps have at least one translation layer in the C compiler) and replacements for missing functionality in the target platform.

    Now for the delusions. New code written in a language with link-level compatibility with a free, small, fast, easy to use in code, portable, robust configuration mechanism library will have no problems. Note that the status quo is already as free, small, fast, easy to use in code, portable, and robust as it needs to be for applications that already use it, so alternatives which are not all of these do not merit discussion.

    However, there are constraints imposed on this hypothetical library by legacy code:

    1. It would have to be already installed or available on all Unix-like systems with bindings to all Unix-like languages, which rules out nearly everything invented after 1978. Otherwise, every application (and language!) must bring either a copy of the library or their own code. Strangely enough, "open file," "read text line," and "lexically analyze this string" primitives are implemented in nearly all Unix-like languages, and interactive text file editors are shipped on nearly all Unix-like systems...
    2. It would have to be as small and fast as fgets+scanf, or a lex+yacc parser, otherwise it will hurt performance or have a large footprint, and people who care about performance or size won't use it. XML can't do this unless you drop the i18n and character entity and encoding support--at which point it's not really XML any more.
    3. It will have to use small ASCII text files for persistent storage, otherwise you have to implement and force everyone to use either your own editing mechanism (aka "a control panel DLL"), or you implement and force everyone to use replacements for Unix filesystem-crawling tools which allow you to selectively access the data (aka "the registry and regedit", or "replacements for cvs, vi, find and grep")--both of which violate the "once and only once" rule since these facilities exist already in Unix and they are used for this purpose.
    4. It will have to be used directly by the actual applications--otherwise you violate the "once and only once" rule by having either two configuration files and two applications (the real application, and a configuration application), or two configuration file handling mechanisms in one application (for old-style and new-style config files).
    It might be possible, given overwhelming demand, to convince maintainers of significant mature legacy code to adopt the new configuration mechanism, if the XML-based mechanism is more widely ported and better debugged than their own configuration-management code. Good luck, and be prepared to do the work yourself many, many times over until you either change their minds, or they leave the project and you're stuck maintaining the code by default.

    Note that other standardization initiatives, like FHS or the LSB, involve relatively superficial changes which application maintainers were probably willing to make anyway. The FHS and LSB ask application maintainers to change the parameters to a few system calls without affecting the architecture of any part of the application or the semantics of its operation. For example, the application may open()s a file, but after the FHS is implemented that file has a different name. Both names are constant strings, the file is still opened for reading, and it still has the same contents with the same syntax and semantics. A one-line change and a recompile brings the application into compliance, and in an emergency, a symlink will make the application work.

    Other initiatives, such as DNS and PAM, are usually facilities that are not intrinsic to applications. Host name resolution or user access verification involve resources shared by many applications, and there is a real technical penalty for non-compliance.

    Changing the way applications handle configuration is a large architectural change--you're asking people to replace open(), read(), close(), and some code which is intrinsic to the application with new functions that have different semantics, and may even have to be called at different times. Expect resistance.

    The only hope of this ever happening in real life is for a Linux distributor to decide to implement it, and contribute the work to achieve it. Said vendor will have to hack and slash their way through hundreds if not thousands of packages to bring them into compliance. Once all of that is done, all the upstream package maintainers will have to integrate the changes--or all the other Linux vendors will have to repeat the hack-and-slash job.

    --
    -- I avoid spam by accepting only OpenPGP encrypted or signed email at this address. Clear-signed, RFC2015, heck, even
  147. NeXT/Apple Mach OS Simplified by Anonymous Coward · · Score: 0

    NeXTSTEP (NeXT Mach OS 1.x-3.x) was a proprietary, BSD 4.3-based unix running on top of a monolithic implementation of the Mach microkernel. OPENSTEP (NeXT Mach OS 4.x) was an API and a set of libraries conforming to that API, and an implementation of NeXTSTEP incorporating said API and librarie, as MaxVlast so eloquently stated. (Footnote: OPENSTEP also existed as a development environment for NT, and as a gui running on top of Solaris, which, alas, only ran on Sparc.)
    Rhapsody (Apple Mach OS 5.x) was essentially OPENSTEP 4.2 with the platinum gui thrown on top of it. Same for Mac OS Server 1.x.
    Mac OS X (Darwin 5.x) is where things change. Gone is DPS in favor of Quartz, which is roughly but not quite accurately DPDF. Gone is the platinum gui in favor of Aqua. A newer implementation of mach is used, although I believe they still use it as a monolithic kernel. The aging BSD subsystem has been replaced with a BSD4.4-based system that is primarily made up of FreeBSD and NetBSD bits.
    So OS X is the spiritual descendant of the NeXT Mach OS. The BSD system it uses has been updated, and it has a new windowing system and gui. OS X is not OPENSTEP and it isn't FreeBSD, two of the misconceptions that I see someone posting on usenet or slashdot forums. It is GREAT however, and you should check it out if you haven't yet. The user experience crushes anything else available at this time.

  148. Argh! Missed Preview; hit Submit by Joseph+Vigneau · · Score: 1
    An automated tool has no clue what your ipaddress (or whatever) tag means at all. You need to provide additional context for tools to understand the semantics of the configuration data. To make configuration files understandable in a more intelligent sense, you need to either restrict the tags you use to your own configuration language, or you need to provide metadata of some sort.


    This is where XML Namespaces comes in handy. For example, "someone" can create a namespace that contains the ipaddress schema definition, which can then be used in your app's XML configuration file:

    <myapp>
    <server>
    <net:ipaddress>
    <net:protocol>tcp</net:protocol>
    <net:host>127.0.0.1</net:host>
    <net:port>8877</net:port>
    </net:ipaddress>
    </server>
    </myapp>