Slashdot Mirror


Linux and the Unix Philosophy

limbo_14 writes "Mike Gancarz takes his oft'-quoted original book, The Unix Philosophy and spruces it up for the Brave New World of Linux with Linux and the Unix Philosophy. Since The Unix Philosophy was written, Unix has undergone many changes and evolutions. Now with Linux emerging as the new face of Unix, he has updated his book with the same philosophy and tenets that were in the first, but updated the book to include considerations for the Open Source community and the new world of Operating Systems in which we live." Even the old version of The Unix Philosophy is worth finding; it may remind you of Neil Stephenson's In the Beginning Was the Command Line. Read on for the rest of limbo_14's review. Linux and the Unix Philosophy author Mike Gancarz pages 200 publisher Butterworth-Heinemann rating Recommended reviewer limbo_14 ISBN 1555582737 summary An updated and expanded version of Gancarz's original book, The Unix Philosophy.

The good stuff... I enjoyed Mike Gancarz' first book The Unix Philosophy greatly when I was first getting into the Unix world, and was hoping for an updated version. The thing that makes this book stand out in the shelves full of How-To, Dummy, and Administrator guides is the fact that it covers the What and Why of Unix/Linux rather than the How's. I am constantly amazed at Unix books that are mostly printed man files, and things that can easily be googled. This book explains with great precision why Unix is the way it is, and what separates it from other OS paradigms.

I realized the importance of this book after reading it, and being forced to do interviews for a Unix Engineer at my office. Of the 7 candidates, 6 of them seemed to know the textbook stuff. They knew the commands, they knew vi and a handful of scripting languages to a degree of proficiency. Alas, this is what it takes to become a Unix Administrator, not an Engineer that needs to see the whole picture. In this world of "puppy mill" Unix admins who have certifications and know one or two flavors of Unix/Linux, this book really teaches people the core of why Unix/Linux is the way it is, and why it is so attractive to those who really care about which OS to use.

The last chapter -- "Brave New (Unix) World)" -- is the real kicker. Gancarz really drives it home, and shows how the Unix/Linux philosophy has made it into other aspects of technology, and in the world we live in.

The not-so-good stuff ... With every good book, there must be some bad, although this one's errors are quite forgivable. Although I appreciate any book that loosens the RFC style nature of so many technical books, sometimes it can go a little too far. This, however, is for each reader to judge. Some of the puns made me squirm, but for the most part they added a nice touch of levity to the book. So, depending on your threshold for python-esque puns or corny Elvis jokes, the book may not be for you, but knowing the /. Crowd, I don't think it will cause anything more than some groans and giggles. All in All... This is a quality book. It is one that should be re-read every now and then to make sure you do not stray from the Tenets that Gancarz drives home throughout the book via anecdotal evidence.This book can and should be read by anyone from a newbie hacker to a Corporate CEO. It is just technical enough not to make one feel patronized, and eases you into it with general concepts just enough to make it not feel like reading IETF standards. Here are the chapters, which give a good overview of what each is about:
  • Table of Contents
  • The Unix Philosophy: A Cast of Thousand
  • One Small Step for Humankind
  • Rapid Prototyping for Fun and Profit
  • The Portability Priority
  • Now THAT'S Leverage!
  • The Perils of Interactive Programs
  • More Unix Philosophy: Ten Lesser Tenets
  • Making Unix Do One Thing Well
  • Unix and Other Operating System Philosophies
  • Through the Glass Darkly: Linux vs. Windows
  • A Cathedral? How Bizarre!
  • Brave New (Unix) World

Although this is not the cheapest book in the rack, it packs more of a punch than half of the books on my shelf, so I think it is worth it. I found it a great read on the metro on the way to work in the morning, and found myself finishing it well within a week. With 200 pages, and by making it fun to read, Linux and the Unix Philosophy breezes by and makes for a great read.

You can purchase Linux and the Unix Philosophy from bn.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.

234 comments

  1. Wow... by TopShelf · · Score: 1, Funny

    This virus today is so nasty it's knocked /. over to the side! Or did somebody just forget to close that italics tag...

    --
    Stop by my site where I write about ERP systems & more
  2. Tragically, by burgburgburg · · Score: 5, Funny

    SCO has determined that this book has violated it intellectual property. While you can buy the book, you require an additional SCO license to read the book. That'll be $699.

    1. Re:Tragically, by Namaseit · · Score: 2, Funny

      No, thats $699 per page. An honest mistake, that will cost you $200.

      --
      75% of all statistics are made up!
    2. Re:Tragically, by JimPooley · · Score: 3, Insightful

      Tragically, if Slashdot is still around in 10 years, and SCO is not, people will STILL be doing fucking lame jokes about SCO.
      Funny, my arse...

      --

      "Information wants to be paid"
  3. In proper Unix philosophy... by Anonymous Coward · · Score: 0, Funny

    It's the Jungian thing. The duality of the href and the closing tag.

  4. Dental Plan... by Dental+Plan · · Score: 0, Funny

    Linux can't afford braces because it's free!

    1. Re:Dental Plan... by 1nihilist1 · · Score: 1

      You have it all wrong...

      Linux can't afford braces because it trade it's dental plan for a keg of beer!

    2. Re:Dental Plan... by mini+me · · Score: 1

      Linux can't afford braces because it trade it's dental plan for a keg of beer!

      That would explain this: http://www.lbw2000.eu.org/lbw-1999aug10-13_small.j pg

    3. Re:Dental Plan... by illFatedloveMunky · · Score: 0

      lisa needs braces...

    4. Re:Dental Plan... by 1nihilist1 · · Score: 1

      No...

      Linux needs braces.

    5. Re:Dental Plan... by Anonymous Coward · · Score: 1, Funny

      Dental Plan

      This exact comment has already been posted. Try to be more original...

    6. Re:Dental Plan... by Anonymous Coward · · Score: 0

      There is a larger version of that picture here: http://www.lbw2000.eu.org/lbw-1999aug10-13.jpg

  5. HTML and the UNIX commandments... by jared_hanson · · Score: 4, Funny

    1. Though shalt end your italic tags.

    --
    -- Fighting mediocrity one bad post at a time.
    1. Re:HTML and the UNIX commandments... by Anonymous Coward · · Score: 0

      The article was origially posted with a missing tag, and was therefore entirely italicized. It's since been fixed.

    2. Re: HTML and the UNIX commandments... by gidds · · Score: 2, Funny
      If you're going to use archaic English, at least do so properly! The archaic second-person-singular nominative pronoun is spelled thou; and it takes a corresponding singular possessive: thy (or thine before a vowel, as in this case). Not 'your'. (Half a mark for correctly using the corresponding verb form, 'shalt', though.)

      And anyway, what's the problem? All the italics seem properly localised. Has the article been edited since your post?

      --

      Ceterum censeo subscriptionem esse delendam.

    3. Re: HTML and the UNIX commandments... by jared_hanson · · Score: 1

      Thanks for the corrections. You learn something new everyday.

      And, yes, the post was edited to correct the missing end-italic tag. The original post made every other article on the front page italicized. So was the article text on the full story page.

      The other reply to my post was informing people of this prior error. I immediately riduculed him, because I thought he simply did not get my joke. I was then placed in my own shoes by a couple more people. Oh well, a time for everything.

      --
      -- Fighting mediocrity one bad post at a time.
    4. Re: HTML and the UNIX commandments... by gidds · · Score: 1
      Thanks for the corrections.

      No, no, no - that's not the /. way! Accepting correction, let alone being grateful? Goodness, no. At the very least you should have given me a right flaming for my presumption... :)

      Anyway, glad to be of service. At least I couldn't flame you for neglecting to use a spell-checker...

      --

      Ceterum censeo subscriptionem esse delendam.

  6. Please help me... by Anonymous Coward · · Score: 0, Funny

    I'm an "editor" for a popular blog, but I don't know how to close an <I> tag. plzhlpkthx.

  7. Re:I'll take a shot at it by Anonymous Coward · · Score: 1, Informative

    The book is not about business philosophy, it is about the OS itself: the paradigm that Unix/Linux was designed around.

  8. Philosophy how??? by Serapth · · Score: 1, Insightful

    I still fail to understand how Unix and Philosophy relate at all?

    To a lesser degree I can understand why you might relate Linux and Philosophy together... even then I think you would be making a mistake. Now, open source... to a certain degree there is a philosophy aspect there, and even still I think its a bit of a stretch.

    Design principles... sure... Philosophy... um... no.

    Then again, a few years back... it was the Zen of Whatever... maybe Zen was used up, and the publishing world needs a new catch phrase.

    1. Re:Philosophy how??? by Serapth · · Score: 1

      From dictionary.com

      Philosophies. [OE. philosophie, F. philosophie, L. philosophia, from Gr. ?. See Philosopher.] 1. Literally, the love of, including the search after, wisdom; in actual usage, the knowledge of phenomena as explained by, and resolved into, causes and reasons, powers and laws. Note: When applied to any particular department of knowledge, philosophy denotes the general laws or principles under which all the subordinate phenomena or facts relating to that subject are comprehended. Thus philosophy, when applied to God and the divine government, is called theology; when applied to material objects, it is called physics; when it treats of man, it is called anthropology and psychology, with which are connected logic and ethics; when it treats of the necessary conceptions and relations by which philosophy is possible, it is called metaphysics.

      So, actually no. Metaphysics is an application of philosophy or more accurately a subset... too use a geeky parallel... metaphysics is to philosophy as HTML is to SGML.

      Phew... fullfilled my geek analogy quote for the week, and its only tuesday! ;)


      As an asside... trying to post with the phonetic spelling from a dictionary quote, causes Slashdot to trigger a lameness filter for junk characters....

    2. Re:Philosophy how??? by Trurl's+Machine · · Score: 1

      1. No support
      2. No bugfixes
      3. Get the source code for free

      It is a sort of philosophy on approaching software distribution. If you want me to go really deep I could explain your its metaphysics, I hope you'll trust me on that. These three points were the Unix philosophy in the 1970's. Not because the Unix creators wanted them to be like this, just because AT&T was not allowed to sell any software on commercial basis. Oddly enough, these three points - written actually by AT&T lawyers - are quite close to what we can call now GNU philosophy. So the GNU community is fighting the biggest monopoly of our days - Microsoft - using philosophy founded by the lawyers of the biggest monopoly of 1940's-1970's, AT&T.

    3. Re:Philosophy how??? by Anonymous Coward · · Score: 0

      From dictionary.com

      7. A set of ideas or beliefs relating to a particular field or activity; an underlying theory: an original philosophy of advertising.

      Might want to look at all definitions a bit more closely again. The author is not relating Unix to Philosophy, but talking about the Unix Philosophy, thus there is a specific philosophy associated with Unix that the author is relating to Linux, not just the general philosophy one talks of when one says "I have a B.A. in philosophy."

    4. Re:Philosophy how??? by connect4 · · Score: 1

      I'm pretty sure you just agreed with AC's criticism of your original post.

    5. Re:Philosophy how??? by Serapth · · Score: 1

      I still dont see things that way. To use your example above... it would actually be AT&T's philosophy... not Unixes. It was application of a philosophy within AT&T that resulted in Unix, nothing more.

      Actually, I suppose your mention of the way things were at AT&T, are exactly what I meant to say... I should have used your example :). Unix is an end result, or a product... not a philosophy.

    6. Re:Philosophy how??? by lembree · · Score: 2, Informative

      Ahh, then, you really should read the book.

      There really is a philosophy to Unix and Linux,
      and you'll find that when the same philosophy's
      applied to things other than OS design, it
      results in some interesting and elegant ideas.

      This book describes the philosophies embodied in
      Unix (and largely copied and expanded upon by
      Linux) very well, and in such a way as to not
      be religious about it. However, it may give
      "non-believers" some understanding of how
      Unix and Linux folks think, and therefore a
      better sense of why the OSs are the way they are,
      and hopefully, a respect for them.

      So philosophy, ya, I think so. When applied to
      OS design, perhaps you can call them design
      principles, but I think that this book is able
      to abstract it better than that.

    7. Re:Philosophy how??? by crazyphilman · · Score: 1

      What is UP with you guys??? Why are you stuck on the economics of all this??? That's got nothing to do with it.

      The Unix Philosophy is a design philosophy, and it has nothing to do with distribution, or licensing, or anything else like that. I described it more fully in another post, but basically it is an approach to O/S design. And, it has nothing to do with AT+T's lawyers.

      Sheesh.

      At least give the book a shot. It's very well written.

      --
      Farewell! It's been a fine buncha years!
    8. Re:Philosophy how??? by qtp · · Score: 1

      The UNIX philosophy is about design. The book explains some of the ideals behind how UNIX, and UNIX like, operating systems came to be what they are and why they work as well as they do. People who get hung up on the word "philosophy" and think that it only pertains to metaphysics, economics, theology, or morality need to understand that philosophy also applies to design and the creative arts.

      Perhaps they should admit that they really have no idea what philosophy means instead of attempting to deny it's presence in areas of thought where they fail to recognise it.

      Christopher Browne has a good synopsis for those who would like a primer before they run out and buy one of the books.

      --
      Read, L
  9. ESR's new book by unsinged+int · · Score: 0, Offtopic

    Why not just wait for this to come out?

    The Art of Unix Programming

    1. Re:ESR's new book by DrSkwid · · Score: 1

      Eric's chapter on plan9 is particularly weak

      --
      There are places where the networks are not touching,and there are places where they are-Boeing's Lori Gunter
    2. Re:ESR's new book by Goo.cc · · Score: 1

      I don't think that the parent post was off-topic. Indeed, looking at the link presented, I would say that it was on topic. Thanks to "unsinged int" for posting the link.

  10. This guy is crazy.... by Lord_Slepnir · · Score: 3, Funny
    First, you have a book about the philosophy of an operating system. Then I noticed that there was a chapter called "Rapid Prototyping for Fun and Profit". This guy is either brilliant, or burned out his brian on LSD in the 70s.

    Now that I think of it, the two things Berkley is famous for is UNIX and LSD, and I dont' think it's a coincidence.

    1. Re:This guy is crazy.... by Chundra · · Score: 1

      Just a minor quibble... I believe the term is "burned out his bryan on LSD in the 70s".

    2. Re:This guy is crazy.... by notasheep · · Score: 1

      He could always go out and get a new brian, I hear they work cheap and aren't too hard to replace.

      --
      Your mind looks a little cramped. Why don't you stretch it a little?
    3. Re:This guy is crazy.... by SomeoneGotMyNick · · Score: 1

      He could always go out and get a new brian

      Afraid not... Brian's hanging out on a cross somewhere whistling tunes at the moment.

    4. Re:This guy is crazy.... by Archangel+Michael · · Score: 1

      Two things of note have come out of Berkley, LSD and Unix. Coincedence? I think not!

      --
      Agent K: A *person* is smart. People are dumb, stupid, panicky animals, and you know it.
    5. Re:This guy is crazy.... by bigdavex · · Score: 1
      I see a very similar statement attributed to Jeremy Anderston. I don't think it's a coincidence.


      There are two major products that come out of Berkley: LSD and Unix. We
      don't believe this to be a coincidence. -- Jeremy S. Anderson


      --
      -Dave
    6. Re:This guy is crazy.... by Lord_Slepnir · · Score: 1

      You're right. i'll forward him the karma point I got off of this. I didn't know anyone formally claimed this, it was just a half-remembered quote from my old usenet days.

    7. Re:This guy is crazy.... by hamsterboy · · Score: 1
      That's BSD. They're totally different. Well... sorta.

      Hamster

  11. Something I've never been able to figure out. by Anonymous Coward · · Score: 5, Insightful

    Some of the major tenets of the original UNIX philosophy were:

    - Small is beautiful.

    - Make each program do one thing well.

    Why is it then that there are people out there who spend their entire lives with UNIX/Linux, and who ignore this?

    Some of the best examples are sendmail and emacs. And no, this isn't a troll. But I just don't understand why such people just don't get it. Clearly it isn't a lack of intelligence.

    But this paradox is something which I've never been able to figure out.

    1. Re:Something I've never been able to figure out. by Anonymous Coward · · Score: 1, Insightful

      You think sendmail and emacs are big, bloated and don't conform to the UNIX philosophy? Try KDE and gnome... CORBA WTF, we had files and pipes in my day, and gee they worked fine.

      Seriously, I think that KDE, gnome, and even CDE are perversions of the UNIX philosophy.

    2. Re:Something I've never been able to figure out. by Planesdragon · · Score: 2, Interesting

      Why is it then that there are people out there who spend their entire lives with UNIX/Linux, and who ignore this?

      Because it's old and out of date. The new ideals should be:

      - Stable is beautiful

      - Make each program do what it does completely.

      Few folks enjoy puny programs that do one thing very well--when they want to do something slightly different, they wind up using a bunch of differenet tools.

      Also, the advent of windowing, color, and richly formated files has made "small simple programs" too hard to use. A whole new set of "single-task, fast-running" programs would be nice--but they'd have to be designed from the ground up to (1) work together and (2) work with richly formatted (XHTML) files.

      'course, the end-user wouldn't see distinct programs--they'd ideally just see their computer, and do what they want to without ever having to think about tasks, programs, or appellets ever again.

    3. Re:Something I've never been able to figure out. by Anonymous Coward · · Score: 0

      Emacs (and its creators Stallman and arguably Gosling) did not start out on Unix, so why would you expect it to follow Unix philosophy?

      Or are you referring to ESR?

    4. Re:Something I've never been able to figure out. by aussersterne · · Score: 3, Insightful

      when they want to do something slightly different, they wind up using a bunch of differenet tools

      Ah-ha! A light bulb has gone off over your head. That is th point of the Unix philosophy.

      Thanks to the Unix philosophy, when someone wants to do something slightly different, they won't need to install a new, slightly different application; they can select different arrangements of tools from their existing collection to solve almost any problem imaginable.

      With the "one complete tool, one complete problem" philosophy, every I have a new problem, I must acquire an entirely new tool. If I have a problem no one else has ever had before, no tool will exist yet, and I must either create it myself or pay someone to create it for me. I must then learn and/or be trained to use it.

      By attacking problems with small, specialized tools that I am very familiar with, (i.e. by splitting a problem into many smaller, more specialized sub-problems), I can use the same basic Unix toolset to solve arbitrary problems of almost arbitrary complexity.

      Almost anything can be accomplished with bash, perl, awk, and the collection of shell tools and command-line networking tools on a Linux/Unix system. And if you need some functionality that the tools can't provide, you don't need to install a 100% beginning-to-end solution complete with duplicate functionality and learning curve, you install a new small, specialized tool (i.e. gphoto2 to fetch photos from a camera) to solve the 1% of the problem that needed a new tool and use the tools you already know and have for the other 99% of the problem.

      Efficiency and flexibility are key in Unix.

      Some people argue (as you have) that these come at the expense of ease of use, but that is only true for small (admittedly often consumer-oriented) problems. Without doubt, however, past certain threshold values of problem size and complexity, efficiency and flexibility (i.e. small and specialized teams of scriptable tools) drastically increase ease of use relative to other methods, not to mention time and expense to deployment.

      --
      STOP . AMERICA . NOW
    5. Re:Something I've never been able to figure out. by Tet · · Score: 1
      Some of the best examples are sendmail and emacs.

      I'd agree abiout emacs, and indeed tried to convince ESR that emacs goes against the Unix philosophy for his TAOUP book, although he wasn't having any of it. However, I disagree about sendmail. Sendmail isn't huge, and it only does one thing (email routing), and it does it very well. I'm not going to argue about its ease of configuration, or its historical security problems. But in terms of doing what it's designed for, you can't fault it.

      In general, though, I agree with your sentiments. One only has to look at GNOME and KDE to see how much the Unix landscape has been infiltrated by people that just don't get it.

      --
      "The invisible and the non-existent look very much alike." -- Delos B. McKown
    6. Re:Something I've never been able to figure out. by Planesdragon · · Score: 3, Informative

      That is [the] point of the Unix philosophy.

      Sort of. The "UNIX philosophy" has some very good elements in it--but it's not without its flaws.

      The biggest one, IMO, is getting a tool changed and automating multiple computer tasks to one human-task.

      And if you need some functionality that the tools can't provide, you don't need to install a 100% beginning-to-end solution complete with duplicate functionality and learning curve, you install a new small, specialized tool (i.e. gphoto2 to fetch photos from a camera) to solve the 1% of the problem that needed a new tool and use the tools you already know and have for the other 99% of the problem.

      Depends on the problem, what what your current state of learning is. (Don't toss around statistics that you don't have--we have perfectly good words for "majority" and "minority")

      As I said, the problem is the advent of the GUI and the commonality of richly formatted documents--two major elements of modern computer usage that weren't really dealt with when the orignal UNIX system was created. For some modern applications, such as working with pictures, small apps added to the old apps can work. For other applications, such as 3D design, the current suite of small apps don't work.

      Some people argue (as you have) that these come at the expense of ease of use, but that is only true for small (admittedly often consumer-oriented) problems.

      A minority ("1%") of computers are used to solve problems. Most computers in service today are used to replace pen & paper, communicate, or play games. And most of these computers are used in a GUI environment, never (or almost-never) using the command line.

      I would love to see a removal of the division between "command line" and "GUI", just as I would love to see a removal of the user-distinction between "programs" and "tasks" et al.

    7. Re:Something I've never been able to figure out. by drunk_as_in_beer · · Score: 1

      You think sendmail and emacs are big, bloated and don't conform to the UNIX philosophy?

      Regarding Emacs: GNU's not UNIX

      --
      --Drunk as in Beer
    8. Re:Something I've never been able to figure out. by GGardner · · Score: 1
      Almost anything can be accomplished with bash, perl, awk, and the collection of shell tools and command-line networking tools on a Linux/Unix system

      What bash, perl and awk scripts did you use to post this comment with?

    9. Re:Something I've never been able to figure out. by imhotep1 · · Score: 2, Interesting

      There are tradeoffs to using the make each program do one thing vs. make each program do everything technique.

      I am currently working on a small web content management CGI in C, based on the "small is beautiful / Make each program do one thing," paradigm. It is made of several smaller programs, each does one thing (one part is the CGI, and recieves the request and returns the output, one part is an XSLT transform engine, one part is a cacheing engine that will cache the XSLT output and only rerun the XSL transform if the source file has changed, and so on and so fourth)

      I am mostly doing this for self education, but I have noticed that along with the several advantages to my approach (flexibility in application and extensibility,) there are significant drawbacks.

      There is processor overhead to loading each program, and while on a server with few hits this will not be an issue, I am positive that my little CMS will pale in comparison to something like MOD_PERL + some random CMS under Apache. Mine is smaller, simpler, more Unix-like, but not nessecarily better.

      I think the Unix ideals are good design technique, and should be kept in mind when designing any project, but a systems designer needs to be prepared to drop them if they impede in the performace of the final application.

      Think of programs like cars. Formula one race cars are horribly designed taxis. They also absolutly CANNOT handle going off road. Tis doesn't mean they are poorly designed.

    10. Re:Something I've never been able to figure out. by Anonymous Coward · · Score: 1, Funny

      Emacs does do one thing well: it runs elisp code.

    11. Re:Something I've never been able to figure out. by joeytsai · · Score: 2, Funny

      I'd agree abiout emacs, and indeed tried to convince ESR that emacs goes against the Unix philosophy for his TAOUP book, although he wasn't having any of it.


      Well, he at least has a section on that discussion (here) but in line with ESR's other writings, what it lacks in content in makes up in verbosity and self promotion.
      --
      http://www.talknerdy.org
    12. Re:Something I've never been able to figure out. by Anonymous Coward · · Score: 0

      These are good points. But don't forget that a key part of the original UNIX design philosophy is the emphasis on rapid prototyping. This has been a key point.

      Also, one usually worries about efficiency later in any coding project. The original emphasis is to get something up and running quickly.

    13. Re:Something I've never been able to figure out. by Cato · · Score: 2, Insightful

      Actually, virtually anything can be done using just Perl - the whole point of creating it was to have a single tool that could do what people did with awk, shell, sed, and many C programs, without the impedance mismatch problem. Shell scripting is great for whipping up a very quick solution, but you usually reach a point at which Perl/Python would be better. I once wrote a simple 4GL compiler entirely in shell and sed, so I think I went well beyond that point - my only defence is that Perl wasn't available then ...

    14. Re:Something I've never been able to figure out. by anthonyrcalgary · · Score: 1

      In general, though, I agree with your sentiments. One only has to look at GNOME and KDE to see how much the Unix landscape has been infiltrated by people that just don't get it.

      I don't really agree... For any UNIX system to perform well as a desktop system, it needs a powerful desktop environment. It doesn't have to be big, but that helps.

      For a lot of people, probably most of them, a really powerful desktop environment must be able to do what they want transparently. MacOS and yes, Windows, can do this. KDE, Gnome, AfterStep, these can do it, but not as well as MacOS or Windows. Other wm's like fvwm fail. If you like them, fine, but they don't work for a lot of people.

      KDE et all don't infect the rest of the system with complexity, and they're plenty extensible. As a program they're big, but visually it's a lot of small wigits that do one thing well.

      It's no worse than having commands built into the shell, or having one big kernel that does everything. Or, God forbid, busybox. Refusing to use big and powerful even when it's the best way and the complexity doesn't spread doesn't make sense.

      --
      When someone might yell at me, it has to be OpenBSD.
    15. Re:Something I've never been able to figure out. by Cyno · · Score: 1

      Well, the easiest answer is GNU is not UNIX. Perhaps that's what it means. I always thought the UNIX philosophy was keep it simply, stupid, and only use open standards and protocols, if possible.

      Make everything small, easy and well documented. But this does not mean each applications is limitted to 50 lines of code. It just means if you have an application it should not call on 50 libraries to pop up a window or make function calls like myFunkyFunction_GTK++--::_GNOME_blahBlahBLAH(). Again, keep it simple, stupid.

      I think sometimes I just like calling people stupid. :)

    16. Re:Something I've never been able to figure out. by Anonymous Coward · · Score: 0
      Some of the major tenets of the original UNIX philosophy were: - Small is beautiful. - Make each program do one thing well. Why is it then that there are people out there who spend their entire lives with UNIX/Linux, and who ignore this?

      Because it's wrong.

    17. Re:Something I've never been able to figure out. by einhverfr · · Score: 1

      A minority ("1%") of computers are used to solve problems.

      What problems are you referring to?

      Most computers in service today are used to replace pen & paper,

      Problem solved: Inefficiency and inaccessibility of information.

      communicate,

      Problems solved: In a business environment: Easy flow of information, shortening effective physical distance between parties, etc.

      or play games.

      Not sure if this is solving or creating a problem ;-)

      And most of these computers are used in a GUI environment, never (or almost-never) using the command line.

      Have you ever used xsane? the GUI for Gphoto2? Fileroller? GnoRPM?

      Do you know that these all are are GUI tools that wrap cli frontends?

      Rather than having to write a program to do all of these things, or even putting the common features in a redistributable library with a documented API, we use scriptable programs and then write front-end.

      Why is this important?

      It is important because the cost of developing a small tool that does part of the solution very well is distributed much wider. It means that we get much better, more flexible tools, so that if you want to write a script to download a certain set of files, make an ISO image, and burn it to disk while you sleep, you can do this without needing anything else :-)

      I think it is important to note that interactivity is for wrapper scripts, IMO. The backend processing is all done using reusable tools which you can run manually if you need to, or accessed by scripting them.

      --

      LedgerSMB: Open source Accounting/ERP
    18. Re:Something I've never been able to figure out. by pmz · · Score: 1

      For some modern applications, such as working with pictures, small apps added to the old apps can work. For other applications, such as 3D design, the current suite of small apps don't work.

      This is because 3D design (e.g., CAD) is perhaps one of the most complex problem domains I can imagine. Capturing, dimensioning, tolerancing, and finishing a part in Pro/ENGINEER, for example, requires calling hundreds of different aspects of the UI into action. Pro/ENGINEER itself--in all its massive glory--is the simple tool that can, then, be chained with other tools, such as quality control or process planning tools. The UNIX pipeline could work, here, too, but imagine "big_ass_proe | big_ass_qa | big_ass_cam" rather than "cat file.txt | grep foo | wc -l".

    19. Re:Something I've never been able to figure out. by rgmoore · · Score: 1

      I don't think that EMACS is an inherently big program. Fundamentally it's nothing but a LISP interpreter. The thing is that it's infinitely extensible by writing new LISP routines, and people have spent the past couple of decades extending it. That means that there's a huge amount of baggage around it, but the core is not some awful, everything-including-the-kitchen-sink monstrosity.

      --

      There's no point in questioning authority if you aren't going to listen to the answers.

    20. Re:Something I've never been able to figure out. by pmz · · Score: 1

      ...a simple 4GL compiler entirely in shell and sed...

      If a geek goes to hell, this project will be their eternal punishment.

    21. Re:Something I've never been able to figure out. by cant_get_a_good_nick · · Score: 1

      Some of the best examples are sendmail and emacs.

      <FLAMEBAIT>Emacs would be a great OS if someone would just write a decent text editor for it</FLAMEBAIT>

      Jokes aside, I agree with this point, in that it defies the "smaller is better" UNIX philosophy. I never use it, but i'm pseudo-admin and last install I did of xemacs was over 100Mb, I still remember 20Mb hard drives and single 800Kb floppy Macs. But there is an overarching "the right tool for the job" philosphy, and for certain people, the bulk that is emacs is the right tool for the job. I wouldn't deny them their tool just to satisfy my ego about maintaining philosophical purity.

    22. Re:Something I've never been able to figure out. by grumbel · · Score: 1

      The problem is that Unix failed to provide a way to create 'small and beautiful' things that do a little bit more than just read a stream of bytes and output it again. As soon as it comes to GUIs or well, anything that is a bit more complicated, the programs always had to develop there own huge framework, before they could even start developing small and beautifull. Emacs is small and beatifull in its own sense, dozens of small Elisps scripts at work, unlukily huge framework below that. Same with Perl, KDE, Gnome, Gimp and lots of other stuff, all come with there own more or less incompatible framework.

      Unix did a lot of things right, but it kind of stalled 20 years ago and now we are stuck with dozens of incompatible duplicate frameworks around us...

    23. Re:Something I've never been able to figure out. by Anonymous Coward · · Score: 0

      The problem with having numerous one use tools, is that it becomes very difficult to know what does what. And half the programs start with a 'g' or a 'k', which is irritating as well. Developers don't even know what tool does what, and because of this there are duplicates of just about every tool. Check out the default install most Linux distributions.

      There are definitely advantages to having a tighter set of more versatile tools.

    24. Re:Something I've never been able to figure out. by crucini · · Score: 3, Insightful
      One only has to look at GNOME and KDE to see how much the Unix landscape has been infiltrated by people that just don't get it.

      While I understand where you're coming from, that isn't quite fair. KDE and Gnome appear to be attempts to produce a Windows-style GUI atop Linux. This doesn't mean the developers don't get it - it could mean that they get it and yet prefer a Windows-style GUI for some or all tasks. Or that they see a need for such a GUI to let "normal" people use Linux.

      Subjectively, I feel the same alienation you are expressing from KDE and Gnome.
    25. Re:Something I've never been able to figure out. by janeil · · Score: 1

      I'm going out on a limb here, but I'm betting there will always be a division between using a command line and a GUI. Sort of by definition, eh?

    26. Re:Something I've never been able to figure out. by nathanh · · Score: 1

      Because it's old and out of date. The new ideals should be:

      • Stable is beautiful
      • Make each program do what it does completely.

      Few folks enjoy puny programs that do one thing very well--when they want to do something slightly different, they wind up using a bunch of differenet tools.

      Think of it this way. A carpenter's workshop is packed with 100s of small tools that do small and simple things. A hammer to drive nails. A saw to cut wood. A chisel to shape joints. No single tool will "build a box" or "make a table". The carpenter needs to combine the output from many tools.

      Sure, this requires the carpenter to have skill with and knowledge of many tools. The carpenter's job is much harder than simply pushing the "Make Another Box" button on the gigantic Box Building Machine. However the carpenter is more flexible because he can quickly adapt his tools to make new and original products. The button pusher can only make more boxes.

      What I've just described is the Tool Philosophy and it's well emulated in traditional command line UNIX. You're right that most people prefer to be a button pusher. I prefer the freedom to adapt. That's why I prefer UNIX.

    27. Re:Something I've never been able to figure out. by Planesdragon · · Score: 1

      No. God, no. Not as currently concieved.

      Now, one _could_ argue that a CLI is a specific thing, and a GUI is "anything else that's graphical"--but that's missing the actual method of interaction.

      In my ideal system, a computer would watch the QWERTY keys, and pressing a key would ALWAYS do something. Only when the focus is on a textarea would the keys equate to text; ANYWHERE else, pressing a key would bring up a "command window", into which commands would be ran.

      An intelligent system would keep the command window small but distinct (I'm picturing a bright neon floating window, that pops to the center of the dispay when used and then slides off to the bottom left corner....) and have all the results open in new windows. We could even have the current "active" path always on the screen...

      There's a lot of rather intersting bits that could be done, but they need to be done at the basic level, not as a nosebleed-level hack.

    28. Re:Something I've never been able to figure out. by Planesdragon · · Score: 1

      What I've just described is the Tool Philosophy and it's well emulated in traditional command line UNIX. You're right that most people prefer to be a button pusher. I prefer the freedom to adapt. That's why I prefer UNIX.

      Stop.

      You are not a carpenter. A carpenter works in the real world with physical goods. AND, a modern carpenter uses several tools that automate dozens of their steps--and I'm not just talking power tools here.

      Furthermore, a carpenter has immediate feedback to how their tools are working, what their tools will do, and what the final product will look like. "Traditional command line UNIX" does not. It requires arcane (and somewhat archaic) knowledge, and the only real feedback you get is what you specfically ask for.

      ure, this requires the carpenter to have skill with and knowledge of many tools. The carpenter's job is much harder than simply pushing the "Make Another Box" button on the gigantic Box Building Machine. However the carpenter is more flexible because he can quickly adapt his tools to make new and original products. The button pusher can only make more boxes.

      You're wrong on two fronts.

      Firstly, not all carpenters are able to quickly adapt their tools--and not all carpenters use guild-style contruction methods. Oh, there are a few holdouts, and a few who do extra work so they can charge more, but by and large carpentry work is automated today--and the real craftsmen work on figuring out better ways to build a table, rather than fancier ways to use their tools.

      Secondly, not all "button pushers" want to make the same old, same old. For any task that can be done on a CLI, a GUI can do just as or nearly as well as... with the added bonus of a shorter learning curve.

    29. Re:Something I've never been able to figure out. by janeil · · Score: 1
      In my ideal system, a computer would watch the QWERTY keys, and pressing a key would ALWAYS do something.

      I agree wholeheartedly with your keyboard ideas, absolutely! Though I think every key should do something obvious (hopefully) unless text-entry was expected. That is, q would always quit, h would always give help, with of course language adaptations as needed. All keys could be mapped. Not ctl-alt-key, but ... key. I've always liked one letter batch files myself. x.

    30. Re:Something I've never been able to figure out. by nathanh · · Score: 1
      Stop. You are not a carpenter. A carpenter works in the real world with physical goods.

      That's why it's called an analogy. It's only supposed to show essential similarities. Your pedantry is amusing but completely irrelevant.

      For any task that can be done on a CLI, a GUI can do just as or nearly as well...

      I said nothing about CLI vs GUI. I talked about the Tool Philosophy. Please pay attention.

    31. Re:Something I've never been able to figure out. by Planesdragon · · Score: 1

      Actually, I'd prefer that pressing an alphanumeric key (silly me--Ctl Alt etc are QWERTY) brings up a "command window" rather than running a direct command.

      And a few hundred real-word mappings to commands would be nice. If I type "quit" and the command is "exit", the darn thing can say "quit mapped to EXIT command; exiting." or something.

    32. Re:Something I've never been able to figure out. by Planesdragon · · Score: 1

      Please pay attention.

      Sheesh. I'm disagreeing with you, not stubbornly refusing to learn your lesson. I stand by my original statement: the UNIX philosophy is out of date, and should be updated.

      The UNIX philosophy was constructed at a time when all computers were (essentially) mainframes, all computer work was computing, and all users were experts. They were the computer-equivalent of early machine builders: if an early computer staff wanted to do something, they almost always had to create it in-house.

      The world of today is vastly different, with varying file formats, (spoken) languages, and purposes. The computer is a notebook, reference tool, and communications medium far more than it is a computing device. (To continue the machinist analogy, most machine builders today don't work with the gears and pullies of one machine at a time--they create markets and assembly lines to make machines en masse.)

      Given this shift in the use of computers, a shift in design philosophy is rather appropriate. It doesn't matter if it's small, so long as it's stable. It doesn't matter if each executable is focused, so long as the end product does its tasks well.

      (Last analogy note: Yes, there are still prototypes created with maunal fabrication and assembly of components. But the average user of a computer isn't a kernel hacker, and so the tools of a computer shouldn't--and don't--assume that they are.)

      (Also, note that I don't care if the end product is a single monolithic program or a bundled set of seperate programs, just so long as it does the task I want it to do 'completely.')

      We have more-abstract languages, more-abstract machine design, and more-abstract computer usage today than we did thirty years ago. We should have a more-abstract program contsruction philosophy to match.

    33. Re:Something I've never been able to figure out. by macshit · · Score: 1

      I think the point is that emacs isn't a tool, it's the whole toolset. If you're an emacs user, you write little lisp functions and macros to do everything that a unix user might use pipelines to do.

      Of course an emacs user can also use unix tools as part of his toolset, because emacs is fairly deft with processes. The reverse isn't as easy, which is why some people flame endlessly about emacs being `inappropriate' -- but honestly, real emacs users don't care; they've got the toolkit they need.

      --
      We live, as we dream -- alone....
    34. Re:Something I've never been able to figure out. by nathanh · · Score: 1

      There's a lot more meat here, so I'll reply to your comments this time.

      Sheesh. I'm disagreeing with you, not stubbornly refusing to learn your lesson. I stand by my original statement: the UNIX philosophy is out of date, and should be updated.

      I partially agree. The UNIX implementation of the Tool Philosophy is antiquated. Pipes and bytestreams are showing their age. Stringing UNIX tools together typically requires a command line and that isn't adequate by any stretch of the imagination.

      However I disagree with you that the Tool Philosophy itself is out of date. As I tried to explain with my analogy, the Tool Philosophy is about using several small tools to achieve the desired outcome. As an end user I use the Tool Philosophy on a regular basis. For example:

      • Load Outlook. First tool.
      • Compose mail. Microsoft Word loads with a blank page. Second tool.
      • I decide I want a diagram. Insert Picture. Visio loads with a blank page. Third tool.
      • Picture looks OK. I need an attachment. I decide to ZIP it. Start WinZip. Fourth tool.

      Four tools. Each tool did a single purpose and did it well. Outlook read email. Word wrote words. Visio drew pictures. WinZip created ZIP files. No program tried to do everything.

      I think the fault here is that you think the Tool Philosophy is the same thing as the UNIX command line. This would explain why you started comparing GUIs to CLIs.

      The UNIX philosophy was constructed at a time when all computers were (essentially) mainframes, all computer work was computing, and all users were experts. They were the computer-equivalent of early machine builders: if an early computer staff wanted to do something, they almost always had to create it in-house.

      For somebody who was obviously distressed when somebody tried to teach you a "lesson", you seem very eager to assume the role of a lecturer. You might like to contemplate that I have nothing to learn about UNIX history from you.

    35. Re:Something I've never been able to figure out. by Viol8 · · Score: 1

      Not all problems can be solved efficiently by stringing a load of sub programs together in a batch file or on the command line using
      pipes! If you don't believe me try writing an editor or mail server program that way. I think you'll find it next to impossible.

    36. Re:Something I've never been able to figure out. by wobblie · · Score: 1

      Think of emacs as a OS inside of unix, it has it's own philosophy too.

    37. Re:Something I've never been able to figure out. by Planesdragon · · Score: 1

      For somebody who was obviously distressed when somebody tried to teach you a "lesson", you seem very eager to assume the role of a lecturer. You might like to contemplate that I have nothing to learn about UNIX history from you.

      Let's settle this before we go on.

      I have absolutly no problem with you, me or a lurker using a historical reference to make a point. What i objected to was your "I'm telling you something, so you had better pay attention" remark--it struck me as a horribly condescending attitude, and added nothing to the conversation.

      That said...

      # Load Outlook. First tool.
      # Compose mail. Microsoft Word loads with a blank page. Second tool.
      # I decide I want a diagram. Insert Picture. Visio loads with a blank page. Third tool.
      # Picture looks OK. I need an attachment. I decide to ZIP it. Start WinZip. Fourth tool.


      All of the programs you noted, with the exception of WinZip, violate the UNIX Tool Philosophy. They do many, many things, and they have grown exponentially in size since their first incarnation. They're great examples of my modified "Tool Philosophy", though: (fairly) stable and they do their job sufficiently completely. (And, with the exception of Winzip, you can use all of them by launching a single application, and then performing tasks from that single app to call the others.)

      A better example of the classic "Tool Philosophy":

      * Use "edit" to compose e-mail and save as text file. (first tool)
      * Run "spellcheck" on text file. (second tool)
      * Use "chartmaker" to create your diagram (third tool)
      * Open "gview" to check diagram. (fourth tool)
      * Run "zip" to compress graphic. (fifth tool)
      * Run PINE to send e-mail. (sixth tool.)

      And this is assuming that all of your programs have a common format, and "chartmaker" can save as the right graphics file; if not, you might need to run "convert" to change the chart to an acceptable format for your audience.

      If you would rather do the same task (send an e-mail with a chart), you can do it with one program (MS Word or Outlook) on a properly setup machine.

    38. Re:Something I've never been able to figure out. by javamutt · · Score: 2, Insightful

      While I do agree that there has been a lot of infiltration of people who "don't get it" in the *NIX space, I don't agree with you when this argument is applied to the desktop space.

      I find that having a desktop that works in an intuitive way, unifies commonly used utilities, and makes common tasks (DnD) more efficient enhances my productivity and acts as a "blanket" around the normal activities I do.

      I don't think any one philosophy dominates in ALL situations. CHOICE dominates in my opinion. In other words, on my GNOME linux box I can use a terminal to create a really efficient set of logins where I automate things and pipe lots of small tools together. BUT I can also run Evolution to read mail instead of using Perl scripts to parse my mail spool.

      Of course, I can do nearly the same things on WindowMaker instead of GNOME/KDE, but I think the two are close enough in this context not to kill my point.

      What's important in mastering an OS is learning its strengths and weaknesses. I think this is Linux's strength - it's like the OS Borg - assimilating the cool features of all platforms. From your statement I would suggest that you may have taken too much of an extremist stance to objectively review the pros/cons.

    39. Re:Something I've never been able to figure out. by finallyHasANickname · · Score: 1
      I'm going way out on a limb here, but I like the huge old input devices from circa 1980. You see similar things rarely in legacy CAD I suppose???

      Anyway, I think a huge 2-D array of real or almost real pushbuttons outside the keyboard is neat. Dropdown menu hierarchies have their (self-storing) place, obviously enough, and I have no significant complaints about any of the GUI's I have used (WFW 3.1 included). All This And More! That's the "philosophy". Why? For one reason... let me shove off from shore with an example. A campaign office gets a flood of untrained volunteers. The trainer says, "Hit the Answer button to answer the phone. Hit the Call Next button to call the next person in the list. Hit the Social Policy button to get the message for today on social policy and the URL for details if the voter has specific questions. Hit the pizza button when you're hungry. Hit..." Meanwhile, another "trainer" hands out hardcopies of a cheat sheet, and everything works. (Never_mind *= 0.5)

      I don't know. Sometimes I get into these Luddite K.I.S.S. moods. Complications bad, primative good. Anyway, at the API, this should be cushy, cheapening app software. Mumble mumble...

    40. Re:Something I've never been able to figure out. by Planesdragon · · Score: 1

      Darn, that would be spiffy. Wordperfect, back when it was the king of the PC, used to have a "function key reference" card, that neatly spelled out all of the commands; same thing, but eaiser on the hardware budget.

      GUIs are good, but they could be done a LOT better--and CLIs tend to be limitd by their "ask a question, get an answer" model.

    41. Re:Something I've never been able to figure out. by finallyHasANickname · · Score: 1
      Darn, that would be spiffy. Wordperfect, back when it was the king of the PC, used to have a "function key reference" card, that neatly spelled out all of the commands; same thing, but eaiser on the hardware budget.

      :-D

      Yay! A fellow nostalic high tech Luddite is out there! I loved those cards. Sometimes I look down at the F3 key or whatever and "see" the shift of its use written in tiny green letters. Lessee... Blue letters were the Ctrl key stuff, right? (Sigh.) I still have a luxuriously packaged WordPerfect 6.0 for DOS in a box. (Gotta love Grammatik, which was way ahead of its time, doing the whole thing right at 10 MHz in the 8086 instruction set.) The manual is about an inch and a half thick of this bulletproof super-smooth paper... (Digression alert! Digression alert! Bail out fast!)

      GUIs are good, but they could be done a LOT better--and CLIs tend to be limitd by their "ask a question, get an answer" model.

      GUI's room for improvement: You really think so? I could be accused of too much limitation on my imagination, but it appears to me that the userfriendliness on the y axis with time on the x axis is starting to look like a logarithmic curve. It's been--what?--6 years since mainstream users have whined seriously about feature bloat and silly crowded dropdown menus. Less is more? Hmm. That's a bad sign for the marketroids in their evil plots, etc. etc.

      CLI's limitd room for improvement: Hmm...

      limitd(8)

      NAME limitd - Apache lugubrious insolence mitigation initiation transfer protocol server

      SYNOPSIS limitd [ -X ] [ -R libexecdir ] [ -d serverroot ] [ -f con- fig ][ -C directive ] [ -c directive ] [ -D parameter ]

      limitd [ -h ] [ -l ] [ -L ] [ -v ] [ -V ] [ -S ]

      DESCRIPTION limitd is the Apache lugubrious indexing mitigation initiation transfer (LIMIT) server program. It is designed to be run as a standalone daemon process. When used like this is will create a pool of child processes to handle requests. To stop it, send a TERM signal to the initial (parent) process. The PID of this process is written to a file as given in the configu- ration file. Alternatively limitd may be invoked by the Internet daemon inetd(8) each time a connection to the LIMIT service is made. This manual page only lists the command line arguments. For details of the directives necessary to configure limitd see...

      Just funnin'. I didn't mean this (joke) in a mean way. :-)

  12. Good For Geeks-In-Training by Talia+Starhawke · · Score: 1

    This sounds like an awesome read, especially should be considered by the "geeks-in-training". Someone who has friends into *nix, hears them raving about it, but doesn't completely understand why. I've been involved with the computing community for a long time, and even consider myself a geek, but when it comes right down to the real nitty-gritty of why Linux is A Good Thing(tm), I don't know that much (other than a cute mascot).

    --
    +5, Female ;)
    1. Re:Good For Geeks-In-Training by alex_ant · · Score: 2, Interesting

      Linux is a good thing because it allows you to be a part of a small clique that is able to feel superior to everyone else by virtue of your fiddling about with a system that was designed by the programmer, for the programmer rather than by the programmer for the user (Windows) or by the user for the user (Apple). The fact that non-geeks find it very difficult to e.g. burn a CD using the Linux command line is a great source of pride to dejected geeks everywhere who reason that, if they can't be accepted by mainstream society (due to their obvious massive intelligence of course, not their shocking lack of social skills), they can at least construct their own alternate reality in which they are of superior intelligence (even if that "intelligence" translates into nothing more than the ability to control a computer using cryptic textual commands).

    2. Re:Good For Geeks-In-Training by Anonymous Coward · · Score: 0

      The fact that non-geeks find it very difficult to e.g. burn a CD using the Linux command line is a great source of pride to dejected geeks everywhere ... I know a lot of geeks who have trouble burning a CD using the Linux command line!

    3. Re:Good For Geeks-In-Training by drunk_as_in_beer · · Score: 1

      Linux is a good thing because it allows you to be a part of a small clique that is able to feel superior to everyone else

      Oh ok, so people use Linux to be elite? That's a new argument that we haven't heard before.

      And here I always thought Linux was so popular because it was a free UNIX work-alike which has seen a rapid amount of growth.

      --
      --Drunk as in Beer
    4. Re:Good For Geeks-In-Training by Anonymous Coward · · Score: 0

      Nice username, nice sig

    5. Re:Good For Geeks-In-Training by Anonymous Coward · · Score: 0

      people use Linux to be elite?

      people use linux to be 31337 ub3|2 h4x0|25

      duh.

    6. Re:Good For Geeks-In-Training by Anonymous Coward · · Score: 0

      rather than by the programmer for the user (Windows)

      Windows is more like designed by the idiot for the idiot.

  13. Re:I'll take a shot at it by tuffy · · Score: 4, Informative
    UNIX = Commercial way of thinking and doing business from a software standpoint, extended to the hardware aspect (by tieing the commercial, closed software to certain hardware). The old way, it is no doubt dying.

    Unix started as a way to run a non-vender-supported OS on cheap PDP-11s. Unix eventually became highly commercialized and proprietized, but it started life as a hobbyist project (of sorts).

    --

    Ita erat quando hic adveni.

  14. Different Philisophies? by cnb · · Score: 1

    The UNIX philisophy part is mostly technical
    while the Linux part is mostly non techical
    with emphasis on GNU, Free Software and
    Open Source.

    A detailed technical differences list
    alongwith a idealogical difference (eg
    *BSD vs Linux) list would have been useful.

    1. Re:Different Philisophies? by utmecheng · · Score: 1

      I can't really agree. If you ever listen to RMS speak, GNU and the FSF have heavy non-technical philosophies but it is important to note that the Linux kernel does not. They like to stay out of the fight and value software over philosophy etc.. Open source, some would say, is a politically devoid ideal and the only real ideal is a technical one.

    2. Re:Different Philisophies? by cant_get_a_good_nick · · Score: 1

      A lot of early UNIX philosphy was open source and non technical (think BSD more than USL).

  15. Submission guidelines? by garcia · · Score: 2, Insightful

    Some of the puns made me squirm, but for the most part they added a nice touch of levity to the book. So, depending on your threshold for python-esque puns or corny Elvis jokes, the book may not be for you, but knowing the /. Crowd, I don't think it will cause anything more than some groans and giggles.

    This is a quality book. It is one that should be re-read every now and then to make sure you do not stray from the Tenets that Gancarz drives home throughout the book via anecdotal evidence.

    Are these two items REQUIRED for book reviews on Slashdot? The word "andecdotal" and "puns"?

    Doesn't seem like it. :)

  16. Where's the Beef? by TTop · · Score: 4, Informative

    This review basically consisted of one paragraph describing the book and a table of contents. I didn't get a real good feel of what to expect from the book. Why is it like In The Beginning?

    I guess I was hoping for a little more detail about why this book is good other than "it's not man pages or RFCs."

    1. Re:Where's the Beef? by Tom7 · · Score: 1

      This is why they hire real writers to do book reviews for, like, the New York Times.

  17. EveryThing2 by vasqzr · · Score: 4, Informative

    Mike Gancarz's book The UNIX Philosophy (Digital Press, 1995) describes many of the ideas and conventions that have made unix a great sytem. It starts with a short run down of the history, quickly getting to the meat of things, discussion of the major ideas of Unixdom and illustrations of why they are such good ideas. While many of the ideas may seem relatively obvious to anyone who's worked with the system before, it makes an excellent introduction to the traditions of the Unix world, as well as an excelent bit of advocacy for why the Unix way is the Right Way.

    Listed in the first chapter, the following nine points are the key tenets:

    Small is beautiful
    Make each program do one thing
    Build a prototype as soon as possible
    Choose portability over efficiency
    Store numerical data in flat ASCII files
    Use software leverage to your advantage
    Use shell scripts to increase leverage and portability
    Avoid captive user interfaces
    Make every program a filter ...and the ten lesser points:
    Allow the user to tailor the environment:
    Make operating system kernels small and lightweight:
    Use lower case and keep it short
    Save trees
    Silence is golden
    Think parallel
    The sum of the parts is greater than the whole
    Look for the 90 percent solution
    Worse is better
    Think hierarchiacally

    1. Re:EveryThing2 by Jon+Peterson · · Score: 5, Funny

      Small is beautiful
      All program names 4 chars please

      Make each program do one thing
      But provide for it to do that thing in 52 different ways.

      Build a prototype as soon as possible
      And then stop.

      Choose portability over efficiency
      Remember that you are only interested in porting to other Unix systems.

      Store numerical data in flat ASCII files
      So much for small being beautiful

      Use software leverage to your advantage
      Err, whatever.

      Use shell scripts to increase leverage and portability
      While simultaneously decreasing maintainability!

      Avoid captive user interfaces
      Preferably by not having any user interfaces.

      Make every program a filter
      Especially the 'shutdown' command. ...and the ten lesser points:

      Allow the user to tailor the environment:
      Sure saves you having to figure out what works.

      Make operating system kernels small and lightweight:
      But keep them monolithic, Linus!

      Use lower case and keep it short
      Keep those commands under 5 characters!

      Save trees
      And don't bother with manuals!

      Silence is golden
      Don't waste time with error output. Or other human beings.

      Think parallel
      Yeah, don't chain those commands together with pipes, run them all at once. Oh, hang on...

      Look for the 90 percent solution
      And then quit your job. Heh, let the next guy finish it.

      Worse is better
      0 is 1, too.

      --
      ----- .sig: file not found
    2. Re:EveryThing2 by Anonymous Coward · · Score: 0
      Build a prototype as soon as possible And then stop.

      Look for the 90 percent solution

      These two sound like 90% of opensource projects.

    3. Re:EveryThing2 by LarryRiedel · · Score: 1

      Make each program do one thing
      ... But provide for it to do that thing in 52 different ways.
      Or as many ways as that one thing can be done.

      Choose portability over efficiency
      ... Remember that you are only interested in porting to other Unix systems.
      Systems with available Unix interfaces, eg Linux, Windows/Cygwin, OS X, ...

      Store numerical data in flat ASCII files
      ... So much for small being beautiful
      Small scope/complexity.

      Use shell scripts to increase leverage and portability
      ... While simultaneously decreasing maintainability!
      Python shell scripts...

      Avoid captive user interfaces
      ... Preferably by not having any user interfaces.
      Since they can be provided independently.

      Make operating system kernels small and lightweight:
      ... But keep them monolithic, Linus!
      Monolithic and small and lightweight.

      Silence is golden
      ... Don't waste time with error output. Or other human beings.
      Instead return well documented error values.

      Look for the 90 percent solution
      ... And then quit your job. Heh, let the next guy finish it.
      Or recognize that the 90 percent solution is solution enough.

      Worse is better
      ... 0 is 1, too.
      Often better than the alternatives.

      Larry

  18. Dental Plan by Dr.+Nick+Riviera,+Ph · · Score: 0

    If you need braces, I can take care of the operation cheap. I even use Linux so I can keep the costs low for you, the consumer.

    And as an added benifit you don't have to worry about a blue screen during the middle of an operation. Or even worse, a RPC exploit which leads to a paddling in Soviet Russia.

    1. Re:Dental Plan by Anonymous Coward · · Score: 0

      Lisa needs Braces!

    2. Re:Dental Plan by Anonymous Coward · · Score: 0

      I can see by your ID number that you are new to slashdot. However, you have already picked up on the lame jokes and worked them into even lamer ones. For this, you deserve congratulations.

      However, as a tip, it is best to post replys to a thread in the same thread, rather than starting a new one.

      Also, if you're going to format you're post, as I just did, it is best to end all your tags. However, this offense can be forgiven as the editors don't seem to follow the rule. Which is also, by the way, why you are free to mak all the spelling mistakes you want.

  19. Don't EVER point out errors with the site by doc_traig · · Score: 0, Offtopic

    Don't you see what happens? Either the Slashbot apologists or the editors themselves slap you around, picking "Offtopic" and smashing that Moderate button with fury. That'll learn ya!

    Your post was a funny way of pointing out a goof, but these days, the only posts deemed funny have SCO or M$ in them...

    --
    So long, michael. Don't let the door hit you...
  20. Understanding the Linux Kernel, 2nd Edition by ChiefArcher · · Score: 1

    What about this book:


    http://www.oreilly.com/catalog/linuxkernel2/

    It has linux kernel 2.4 snippets?

    That's DEFINATELY violating SCO's (fake) IP.

    ChiefArcher

  21. Linux vs Unix on Philosophy a question by ACK!! · · Score: 1

    All of us old-timer Unix folks love to fuss over the worst trangession of a commercial Unix or Linux distro or project makes when it comes to Unix philosophy.

    Whether it is Sun throwing things in /opt that should be in /usr or the other way around or maybe its a linux distro dumping everything in /usr or a project creating these huge programs that should be split into smaller utilities maybe with a unifying gui.

    We all have our complaints.

    What are yours?

    --
    ACK /ak/ interj. 2. [from the comic strip "Bloom County"] An exclamation of surprised disgust, esp. i
  22. The Unix Philosophy by cperciva · · Score: 4, Insightful

    The Unix Philosophy can be stated in several ways:

    "Small interconnecting components"
    "Never use one program where you could use several"
    "Plumbing is good"

    If is a continual source of amazement to me that GNU tools (eg, tar -AcdrtuxbBCfFGhijykKlLmMnNoOpPRsSTIUvVwWXZz7) are widely used despite this.

    1. Re:The Unix Philosophy by AveryT · · Score: 2, Insightful

      Tell me about it. I remember practically being flamed on a mailing list for proposing the use of find and grep to recursively search for a pattern in a hierarchy of files. Sure grep -r would have done the job in that particular case but once you add the slightest variation you have to go to find.

      I definitely feel that GNU/Linux has moved away from the "true" Unix philosophy with this kitchen sink mentality.

    2. Re:The Unix Philosophy by Drakonian · · Score: 1

      It's quite easily explainable: GNU's Not Unix.

      --
      Random is the New Order.
    3. Re:The Unix Philosophy by Anonymous Coward · · Score: 0
      "Never use one program where you could use several"

      I've heard dumber mottos before... but not many.

    4. Re:The Unix Philosophy by pmz · · Score: 1

      If is a continual source of amazement to me that GNU tools (eg, tar -AcdrtuxbBCfFGhijykKlLmMnNoOpPRsSTIUvVwWXZz7) are widely used despite this.

      Agreed. However, it isn't just GNU who are guilty of violating UNIX philosophy, but also commands like rpm, from Red Hat.

      The title of this article should be "Linux and the UNIX Philosophy: where did Linux go awry?".

      I think it stems from something a wise man said once: "Why? Well, because!".

  23. In the beginning... by MalcalypseTheYounger · · Score: 1

    ...there was an author named Neal Stephenson who also wrote a book called "In the Beginning Was The Command Line"

    Neil should have had his editor check up on that.

  24. Is the Unix philosophy real? by GGardner · · Score: 5, Interesting
    I've been using Unix for 20 years, and can write some mean shell scripts. I've read all the original papers which talk about how great it is to have many small tools and little languages which you can hook up via pipes. That sounds great on paper, but I've never really seen it work out in practice.

    Sure, we've all writing massively pipeline shell one-liners to do day-to-day tasks, but these are just one-time, throw-away code. All of my real Unix apps that I use every day are huge monolithic applications, not a composition of many tiny apps connected by pipes. My web browser is a monolithic app, not connected by pipes. GCC is a couple of monolithic applications, optionally connected by pipes, but never reconnected in any useful way (cpp notwithstanding). My newsreader and mailreader again, monolithic applications. My MTA, again, a monolithic application. Not one large program I use is a shell script, or collection of small, interchangeable programs.

    So, is this Unix tool philosophy useful for real applications, or just for little shell scripts?

    1. Re:Is the Unix philosophy real? by dodell · · Score: 3, Informative

      Does IPC count as a pipe? Do you run any filters on your email? How many times have you run | grep (granted that this is a one time thing)? I have a good number of shell scripts I use (for sed scripts, for instance) that make use of pipes (not extensively though). I'd suggest that pipes are used much more than you give credit for here.

    2. Re:Is the Unix philosophy real? by pongo000 · · Score: 1

      So, is this Unix tool philosophy useful for real applications, or just for little shell scripts?

      qmail and cbb come immediately to mind. Small apps, all do one thing well, communicate with others via pipes.

    3. Re:Is the Unix philosophy real? by Ed+Avis · · Score: 3, Insightful

      Your post sounds a lot like Miguel's 'Unix sucks' talk where he explains that Unix does not (or did not) have much reusable code and components at a level finer than whole processes - apart from a few libraries like libc and libX11 which are mostly static. Microsoft Office, sometimes the canonical Slashdot example of an ugly monolithic application, is in fact built from many small components (though for legal reasons it is hard to reuse them). The GNOME project set out to change this, although nowadays the emphasis is more on the GUI than on the component architecture.

      Part of the problem is that nobody can agree on anything. So a MIME parsing library has to be written one in Emacs Lisp for Emacs, once as a Perl module, once in Python, as a C library (probably several C libraries), in Java, etc etc. Nobody can agree to write a reusable component once to a common interface (the implementation could be in any language, as long as the interface is usable from others) and just wrap that. On the other hand some libraries, often those coming later in Unix history, do have a single shared implementation, eg libpng.

      --
      -- Ed Avis ed@membled.com
    4. Re:Is the Unix philosophy real? by Anonymous Coward · · Score: 0

      It's too bad that you've spent 3 more years in unix then me, and been stuck only with throw away scripts or shrinkwrap integration.

      I've spent most of my career working on apps written from the ground up, at least half of them mine alone, or as a Project lead. Perl and C are my preferred tools, and it's great getting payed to do what you like. basic scripts (sh/csh/ksh) are useless unless required for init of some sort - Perl5 and regular expressions is the path to enlightment.

      Long live Unix/Linux/BSD (there isn't a choice since windows sucks)

      w

    5. Re:Is the Unix philosophy real? by GGardner · · Score: 1

      I use pipes all the time, but this is what I was trying to say in my initial post -- pipes are very handy for day-to-day things. But, the Unix philosophy is that pipes and small programs are suitable to build large applications. And we just don't see that.

    6. Re:Is the Unix philosophy real? by dodell · · Score: 1

      Ah, I see. I'm sorry; I must have just misinterpreted your post. Thanks for this clarification.

    7. Re:Is the Unix philosophy real? by GGardner · · Score: 1
      Your post sounds a lot like Miguel's 'Unix sucks' talk where he explains that Unix does not (or did not) have much reusable code and components at a level finer than whole processes

      Indeed. But this isn't an accident -- The Unix Philosophy (such as it is), is that the level of granularity of a resuable component is a process, connected via a pipe.

      Interestingly, I recently attended a lecture by a Plan 9 luminary who railed against shared libraries. His view is that there should be no shared libraries, rather separate processes and IPC. Therefore, there should be no MIME parsing library, rather one program running which can be asked to parse MIME, and returns the parsed results. The removes some of the limitations of pipes, but keeps the "process as atomic unit of reusability". I'm not sure how that's going to play out in real life.

    8. Re:Is the Unix philosophy real? by sholden · · Score: 1

      My web browser is a monolithic app, not connected by pipes.

      Your web browser probably wasn't implemented by people following the unix philosophy. The Unix GUI environment doesn't support small tools as well as the command line environment.

      GCC is a couple of monolithic applications, optionally connected by pipes, but never reconnected in any useful way (cpp
      notwithstanding).


      GCC is GNU software. GNU software does not follow the unix philosophy. GNU software follows the add a command line option for everything and the kitchen sink philosophy.

      My newsreader and mailreader again, monolithic applications.

      My newsreader, runs my prefered editor when I need to write a post. For a little while I used my own hacked up newsreader which had seperate unix commands for most actions.

      My mail client consists of 57 individual command line programs (one for listing messages, one for changing folders, one for showing messages, one for marking messages, etc.)

      My MTA, again, a monolithic application.

      Mine is a collection of programs that each do one thing, and do it well.

      Not one large program I use is a shell script, or collection of small, interchangeable programs.

      But they do exist, and are more useful in my opinion, but have a steeper learning curve.

    9. Re:Is the Unix philosophy real? by Cyno · · Score: 1

      Then I think there should be a distinction between UNIX and GNU/Linux here. Sharing of more than binary algorithms via pipes is possible when all the libraries are open and available.

      But Miguel's 'Unix sucks' talk makes me question why he'd use so many different libraries to develope applications like evolution, if they suck so much. Isn't what sucks the dependency nightmare we've created out of GNOME? That could have been prevented if we used pipes instead of shared libraries and morons who don't understand forwards and backwards compatibility, system libraries, etc.

      I think there is no singular UNIX philosophy anymore with all this confusion and diversity. Do whatever you want and hope nobody bitches about how bad it sucks, is my philosophy. Oh, and keep it simple, stupid, and try to learn from the masters, y'know, the guys who designed this system 30 years ago. Not the punk kid who thinks he knows it all.

    10. Re:Is the Unix philosophy real? by asdfghjklqwertyuiop · · Score: 1

      My mail client consists of 57 individual command line programs (one for listing messages, one for changing folders, one for showing messages, one for marking messages, etc.)

      What is the name of this mail client?

    11. Re:Is the Unix philosophy real? by booch · · Score: 1

      Agreed. While Miguel was in some ways right, I don't think CORBA/Bonobo (or KParts for that matter) really solves the problem. It's too heavy an API. A better solution would be to provide an API to every (large/GUI) application that could be used by any scripting language to control the program. In other words, a universal scripting API to any language.

      You could script things inside or outside of the application. So you could write a script something like this:

      aw = start AbiWord
      aw.load("file1.abw")
      aw.selectAll()
      aw. setStyle("large print")
      aw.save()

      ARexx on the Amiga was a powerful example. Unfortunately, the Amiga platform died soon after ARexx started to gain ground. VBA (Visual BASIC for Application) in Microsoft Office is another good example. TrollTech has introduced QtScript, which should work well, but it's limited to Qt (or KDE) apps and JavaScript. I'd like to see something that can be applied to all applications and can use any scripting language (JavaScript, Perl, Python, and Ruby at the least).

      --
      Software sucks. Open Source sucks less.
    12. Re:Is the Unix philosophy real? by Electrum · · Score: 1

      My MTA, again, a monolithic application.

      Then switch to qmail, an MTA that follows the UNIX philosophy. Every part of qmail is a separate program that does one task and has a well documented interface. As such, you can easily replace a single component without changing anything else.

    13. Re:Is the Unix philosophy real? by Ed+Avis · · Score: 1

      Miguel was not arguing that shared libraries suck; rather that Unix sucks because it doesn't use them enough, and every app reinvents the wheel. Take some of the most often cited examples of popular free software or Unix applications: Mozilla, Emacs, TeX, StarOffice. Common code between them: pretty much zilch. libc and libX11, some image handling libraries like libpng, and that's about it.

      Using pipes instead of shared libraries would not help with forwards or backwards compatibility. You still have to decide on what protocol to use over the pipe, what the API is, which messages return what results and in what format. At least with shared libraries you have header files which provide a basic sanity check at compile time.

      FWIW this is pretty much what the GNOME people did with Bonobo - code APIs using CORBA so that you can communicate with them over Unix pipes or sockets or other stream mechanisms.

      --
      -- Ed Avis ed@membled.com
    14. Re:Is the Unix philosophy real? by Cyno · · Score: 1

      Miguel was not arguing that shared libraries suck; rather that Unix sucks because it doesn't use them enough, and every app reinvents the wheel.

      Duh. I'm arguing that he then went and reinvented the wheel and made it a really ugly wheel that's difficult to use. But I guess it does work for some people. And so does UNIX for others.

      Why reinvent the wheel if you're not going to do it the right way the first time? Don't we have enough wheels already?

      GNOME vs. KDE and Mozilla vs. KHTML are perfect examples of what I'm talking about. There are ways to do it right and use shared libraries, and there are other ways to make a mess of things.

      I dunno, why do I even attempt to explain it? It doesn't matter, I'll just use the easy training wheels.

    15. Re:Is the Unix philosophy real? by Ed+Avis · · Score: 1

      I don't think you've given any good examples of Miguel-wheel-reinventing. Arguably GTK when we already had Lesstif (and the whole Xt layers underneath it built on).

      It's true that GNOME duplicated lots of work done by KDE, but remember that back in those days KDE depended on a non-free library. So GNOME was reinventing the wheel only in the same sense that GNU duplicated work already done on Unix. In other words from a purely technical point of view it was duplicated work, but there were other considerations than technical, just as when rms set out to write a clone of Unix.

      Mozilla vs KHTML: yes, I guess these two could have worked together better. I think they both developed at roughly the same time. Netscape of course was around long before KHTML, but the Mozilla people rewrote the renderer from scratch. But anyway, Mozilla is not part of GNOME and neither is KHTML.

      I think you have to recognize that 'the right way' is a rather subjective matter. The GNOME developers, just like the KDE developers or the GNUstep developers or the ROX developers, did set out to do it the right way first time. If you you don't think they succeeded, it's unfortunate they weren't able to meet your expectations; it's not an argument against trying.

      --
      -- Ed Avis ed@membled.com
    16. Re:Is the Unix philosophy real? by sholden · · Score: 1

      mh or nmh, depending on which machine I happen to be logged into.

    17. Re:Is the Unix philosophy real? by Ed+Avis · · Score: 1

      (Though GTK was developed before GNOME, as you know, and was already there when the GNOME desktop started.)

      --
      -- Ed Avis ed@membled.com
    18. Re:Is the Unix philosophy real? by GGardner · · Score: 1
      Your web browser probably wasn't implemented by people following the unix philosophy.

      The Unix GUI environment doesn't support small tools as well as the command line environment.

      GCC is GNU software. GNU software does not follow the unix philosophy. GNU software follows the add a command line option for everything and the kitchen sink philosophy.

      This is exactly my point. There are many web browsers out there, and not one is built from program components connected linearly via pipes. Is this because everyone building a web browser is an idiot who just doesn't understand this magical Unix Philosophy? Or is it because this design strategy of small commands interconnected by linear pipes does not scale to the implementation of modern, large programs?

      Ditto for compilers. A compiler is a very common, useful, complicated tool, and of the hundreds I've used (GNU or otherwise), not one has been implemented by a set of small programs interconnected by pipes. I've never seen a register allocator connected to an interference graph calculator connected to a register spiller, etc. etc. Every single compiler is a monolithic application, whether written by the GNU project or not.

    19. Re:Is the Unix philosophy real? by pmz · · Score: 1

      That sounds great on paper, but I've never really seen it work out in practice.

      Sure, we've all writing massively pipeline shell one-liners to do day-to-day tasks, but these are just one-time, throw-away code.


      You just contradicted yourself, here. The fact that a quick one-liner can solve a modest problem in short order is a testament to the success of UNIX. For example, I once needed a one-time list of all calls to a particular API in a particluar program (find, egrep, and sed saved the day).

      My newsreader and mailreader again, monolithic applications.

      The major differentiating factor, here, is whether a program is interactive. Some smaller programs have a simple pipe interface but then become much more monolithic in nature when used stand-alone (take the "mail" program, for example). Even vi is monolithic, but it is a tool to a different type of end (creating and changing text interactively).

    20. Re:Is the Unix philosophy real? by sholden · · Score: 1

      This is exactly my point. There are many web browsers out there, and not one is built from program components connected linearly via pipes. Is this because everyone building a web browser is an idiot who just doesn't understand this magical Unix Philosophy? Or is it because this design strategy of small commands interconnected by linear pipes does not scale to the implementation of modern, large programs?

      I don't know of a GUI environment that supports such development. Web browsers use plugins, those plugins could be seperate programs which communicate with the browser via pipes - but that makes drawing to the appropriate locations on the screen difficult.

      I never claimed the unix philosophy was magical. It's just nice from a user point of view. Wouldn't it be nice to be able to tell your web browser to execute "favourite editor" inside the text area you type things like these comments in. That's harder than it is with a terminal program since it has to know where to draw itself. It could be done, but require a different GUI windowing practice. Doing it now is too difficult, the ground work doesn't exist and hence there's no benefit.

      Ditto for compilers. A compiler is a very common, useful, complicated tool, and of the hundreds I've used (GNU or otherwise), not one has been implemented by a set of small programs interconnected by pipes. I've never seen a register allocator connected to an interference graph calculator connected to a register spiller, etc. etc. Every single compiler is a monolithic application, whether written by the GNU project or not.

      Compilers are one of the few application which need to be fast - they don't wait on user input or on the network. Converting representations of the data structures generated by compilers into text, piping them, and then converting the text back into data structures would be slow.

      The unix philosophy doesn't mean you can't optimise the things that actually need optimising.

      Compilers use multiple processes, preprocessors, compiler proper, assembler, and linker in most cases - these can be bundled in one binary, but you still get access to the pieces. Which allows you to combine them in other ways (starting at the assembler for example).

      The compiler does one thing and does it well. It compiles a programming language into assembler. Now GCC is internally modular allowing different languages and yes it would be nice if those modules were seperate processes so you could add a new language via a filter program (though the FSF wouldn't want that since it would be an end run around the GPL).

      The philosophy isn't "break everything down into the smallest reusable modules and make them seperate programs". It's just "programs should do one thing only and deal with text if at all possible".

      And it isn't the fastest way of doing things, but for lots of tasks it is fast enough. CGI scripts are examples of the unix philosophy - the web server runs other programs to do other tasks. Of course it's more efficient to avoid the fork and exec, so we have things like mod_perl and mod_php these days.

    21. Re:Is the Unix philosophy real? by Bob+Uhl · · Score: 1

      Postfix does the same, and doesn't have a screwy installation scheme...

    22. Re:Is the Unix philosophy real? by chickenwing · · Score: 1

      I think the Unix philosophy is real. The ability to slap together tools to create a prototype or first iteration is something lacking in other operating systems.

      When monolithic applications are created (except most GUI ones), most are at least keeping with the spirit of Unix so that they can be used to some extent in scripts and pipelines.

      A previous poster wondered why Emacs does not follow the Unix design philosophy. Remember that Emacs has its roots in the culture previous operating systems.

    23. Re:Is the Unix philosophy real? by phallstrom · · Score: 1

      Isn't postfix or qmail a bunch of smaller apps/scripts? Never used either, but seem to remember this being one of the benefits over sendmail...

    24. Re:Is the Unix philosophy real? by po8 · · Score: 1

      Me (use mh) too. (BTW, mh is technically a MUA, not an MTA, but WTF.)

      I've also scripted the living daylights out of it. I've written scripts to filter my incoming e-mail, handle multiple mail drops, mass e-mail homework grades, etc. This kind of scripting is really easy with MH, and would be basically impossible with any other MUA I've ever used: you'd either have the functionality already, or you'd never get it.

    25. Re:Is the Unix philosophy real? by sholden · · Score: 1

      I never claimed it was an MTA. I claimed that the email client I use (mh/nmh) was very much a collection of small programs. I claimed my MTA was too, but I was referring to qmail (it's no where near as split up as mh, though).

      I suspect everyone who uses mh writes lots of scripts for it, it makes it so easy that it's hard not to get carried away.

      You'd expect the a message is a file thing to slow everything down, and it does in some cases, but I currently have 1.7GB of email in over 250,000 messages under mh - and it runs just fine...

    26. Re:Is the Unix philosophy real? by Viol8 · · Score: 1

      I don't know much about Plan 9 but that sounds a pretty dumb idea since what you would end up with
      is dozens if not hundreds of processes sitting idling on a system on the off chance that some application may require for example MIME parsing etc
      . Unless these apps kick off these processes themselves with all the overhead that would entail. Besides , IPC isn't as efficient as calling a libray function
      direct. This to me sounds like one of those nice aesthtically pleasing ideas that ivory tower types come up with periodically but in reality have more holes
      than a swiss cheese.

    27. Re:Is the Unix philosophy real? by Ed+Avis · · Score: 1

      I don't think that idle processes on the system are any worse than shared libraries loaded into memory (or swap) waiting for for someone to call them. The problem is more one of getting an easy and efficient interface between the different processes; a C function call is much more efficient than a context switch to a different process, and lets you pass complex data structures and pointers without having to define an encoding.

      --
      -- Ed Avis ed@membled.com
  25. Re:I'll take a shot at it by Trurl's+Machine · · Score: 1

    Unix started as a way to run a non-vender-supported OS on cheap PDP-11s.

    Also its creators did a lot to encourage independent porting on VAXen and other 70's machines.

    Unix eventually became highly commercialized and proprietized, but it started life as a hobbyist project (of sorts).

    I'd rather not use the term "hobbyist". AT&T was bound by anti-trust regulations to supply their inventions to universities. Scientists took it the way they like the best - with emphasis on peer review and free circulation of information (free as in beer and as in speech). I think that "scientific" or "academic" is a better description. After all, they weren't amateurs.

  26. When is it Unix and Not Unix? by peter303 · · Score: 2, Interesting

    Avoiding Stallman's pun, what exactly is UNIX? Does Linux qualify? Apple OS X+? Exotic OS's like Mach?

    In the mid-1980s an industrial/governemnt consortium tried to defined an unified UNIX API, called Posix. Then it would be straight forward to implement the UNIX utilities, command user interfaces, and apps on top this. I recall some companies layering Posix on top of VMS, MVS, and other non-UNIX kernals. Are these UNIX?

    Another approach was extending the UNIX philosophy of a simple machine image to more modern computers than those in the early 1970s. Mach assumed a computer model with multiple CPUs and memory subsystems. BeOS assumed a computer model where multimedia was the norm. So are these OS's "more UNIX-like than UNIX" then?

  27. Buy this book by rnd() · · Score: 0

    Why? So the writer and publisher can make money!

    --

    Amazing magic tricks

  28. Lacking -- I have (many) more questions by dodell · · Score: 3, Interesting

    I found this review to be lacking in content. It doesn't discuss the content of the book to any extent; instead it talks about how it got him a job promotion to UNIX Engineer. How did it do this? What did you learn from the book that gave you such an additional skillset to be promoted to UNIX Engineer? What are the differences between the UNIX Administrator and the UNIX Engineer you are referring to?

    I am constantly amazed at Unix books that are mostly printed man files, and things that can easily be googled. This book explains with great precision why Unix is the way it is, and what separates it from other OS paradigms.

    I've not found any books that are mostly printed man pages. Nor have I found any circumstances where the man pages don't cover things I need to know. In any case, what parts of UNIX does it explain? Is it explaining Linux or UNIX? What OS "paradigms" are you referring to? You are going by this definition aren't you?

    I realized the importance of this book after reading it, and being forced to do interviews for a Unix Engineer at my office.

    What importance did you realize this book serving after you had read it? Are you sure this gave you applicable knowledge to separate "UNIX Administrators" from "UNIX Engineers"? What is the difference here?

    Although I appreciate any book that loosens the RFC style nature of so many technical books, sometimes it can go a little too far.

    Why? If it's discussing that you need to know an RFC to understand why something works the way it does (you've stated that this book talks more about the why than how), how does it make it "not-so-good"?

    So, depending on your threshold for python-esque puns or corny Elvis jokes, the book may not be for you...

    Do the few puns in the book really take that much of the quality away?

    I don't think that this book should be re-read from time to time. I think new editions should be published as UNIX and Linux continue to evolve in their own separate directions (yes, they're going in somewhat separate directions).

    Your listing of the TOC didn't give me any idea about what was covered? WTF is "Now THAT'S Leverage" about? What "Lesser Tenants" are being referred to? What "One Thing" does UNIX do well?

    You've left me with more questions about this book than I would have had otherwise. Please try to do a more thorough review next time.

    And, to get on a technicality that will probably cost me this comment as a Troll, Linux IS NOT THE NEW FACE OF UNIX. Most distributions also don't even come close to being something that would compare to a UNIX certified system.

    Finally, please excuse my harshness. I just feel you could have done a better, much more descriptive job. Don't take it personally.

    1. Re:Lacking -- I have (many) more questions by limbo_14 · · Score: 1

      I found this review to be lacking in content. It doesn't discuss the content of the book to any extent;
      This is how I review things. I didn't want to write a summary of the whole book, because that is not how I feel reviews should be done. To each his own
      instead it talks about how it got him a job promotion to UNIX Engineer. How did it do this? What did you learn from the book that gave you such an additional skillset to be promoted to UNIX Engineer? What are the differences between the UNIX Administrator and the UNIX Engineer you are referring to?
      I believe you are misreading. I was interviewing other people. My definition for admin = someone who does day to day unix operations. An engineer is someone who designs software and systems for unix.
      I am constantly amazed at Unix books that are mostly printed man files, and things that can easily be googled. This book explains with great precision why Unix is the way it is, and what separates it from other OS paradigms. I've not found any books that are mostly printed man pages. Nor have I found any circumstances where the man pages don't cover things I need to know. In any case, what parts of UNIX does it explain? Is it explaining Linux or UNIX? What OS "paradigms" are you referring to? You are going by this definition aren't you?
      I have a handful of Solaris books that pretty much are manfiles. I was just referring to books that tell you what commands meant, nothing more.
      What importance did you realize this book serving after you had read it? Are you sure this gave you applicable knowledge to separate "UNIX Administrators" from "UNIX Engineers"? What is the difference here?
      Why? If it's discussing that you need to know an RFC to understand why something works the way it does (you've stated that this book talks more about the why than how), how does it make it "not-so-good"?
      My "went too far" comment was about the bad puns. Not the non-technical nature.
      Do the few puns in the book really take that much of the quality away?
      No, it doesn't, I just pointed it out because some people do not like this type of humor
      .... Finally, please excuse my harshness. I just feel you could have done a better, much more descriptive job. Don't take it personally
      I dont ;-)

    2. Re:Lacking -- I have (many) more questions by aastanna · · Score: 1
      An engineer is someone who designs software and systems for unix.
      I don't want to be pedantic, but that's not what an engineer is. In most countries it is illegal to call yourself an engineer if you aren't. Unfortunantly the united states is not one of those countries.
    3. Re:Lacking -- I have (many) more questions by Roadkills-R-Us · · Score: 1
      Overall, you raised some good points. I have to take issue with a couple of things, though:

      I've not found any books that are mostly printed man pages.

      How many UNIX books have you read? I've seen a couple that were literally just man pages, and quite a few that may as well have been. There are hundreds, fi not thousands, of books out there on various OSes that are a complete waste of money. Including books of this sort for *nix.

      Nor have I found any circumstances where the man pages don't cover things I need to know.

      That's interesting. I've been using *nix for almost 20 years, and I still find gaping holes in man pages, both new and old, in areas I'm concerned about. This has been true of almost every flavor of *nix. I think AIX 3.2 and later were some of the most complete I have seen. Whereas Linux still has some huge holes (although it has plugged others). Nevermind the commands that don't even have man pages...

      I wish I could recall which command I tried man on the other day. The syntax shown was something like "command_name options ..." The whole thing was maybe 2-3 paragraphs. I tried "-h" or "-?" or "--help" (I forget which worked), and got a list of the options - but no clue as to what they really did. While this isn't super common, it is out there. And no, I don't recall whether this was on Linux or Solaris (the most prevalent ysstems here).

  29. Re:Philosophy my arse by fruey · · Score: 2, Insightful
    Mission statements are wanky, I'll agree with that.

    However, in creating 'just a fucking operating system' you do need to have some guiding principles, which become a philosophy. Nothing to do with wanky paragraphs of a few words which cost millions to 'brainstorm'.

    --
    Conversion Rate Optimisation French / English consultant
  30. Re:I'll take a shot at it by Chalst · · Score: 4, Informative
    UNIX = Commercial way of thinking and doing business from a software standpoint, extended to the hardware aspect (by tieing the commercial, closed software to certain hardware). The old way, it is no doubt dying.

    Perhaps you have heard of BSD Unix...?

  31. Has anything changed? by Chalst · · Score: 1

    Does Gancarz think the advent of linux and large open source projects provides anything for the UNIX philosophers to learn from, or is his book meant to be old wisdom for the new kids? It's hard to tell from the review.

    1. Re:Has anything changed? by cant_get_a_good_nick · · Score: 1

      Not sure what Gancarz says (haven't read the book) but UNIX philosophy, to a great extent, has consistently been open source. Much of the coolness in UNIX today came out of Berkeley. Termcap, vi, virtual memory, a lot of the coolness that makes up UNIX today was created at Bezerkely and distributed by tape to the world. Sun made SunOS from BSD and later released NFS to an unsuspecting public. Major changes in the philosophy now aren't so much changes that open source is new, but much easier to get because 1) no need to charge for tapes - Internet gives you the source for no (incremental) cost and 2) you no longer need an AT&T source license to get the code, you can just get it.

  32. THIS is the book he's talking about ... by B0mbtruck · · Score: 2, Informative
    Linux and the UNIX philosophy

    Thought i'd let you know ...
    B0mbtruck, one base at a time

  33. Re:I'll take a shot at it by tuffy · · Score: 1
    I'd rather not use the term "hobbyist". AT&T was bound by anti-trust regulations to supply their inventions to universities. Scientists took it the way they like the best - with emphasis on peer review and free circulation of information (free as in beer and as in speech). I think that "scientific" or "academic" is a better description. After all, they weren't amateurs.

    The people involved certainly weren't amateurs, but the project itself started as an attempt to get the "Space Travel" game working on a PDP-7 and eventually crept into use through the "back door" of the company as Unix become more and more feature-rich. It took over minicomputer land, eventually, but started out as a small OS with small goals but with lots of portability behind it - quite similar to Linux. AT&T eventually supplied Unix to scientists (thanks to anti-trust requirements) and universities, but only after its worth had been established.

    --

    Ita erat quando hic adveni.

  34. $5 cheaper and FREE shipping by Anonymous Coward · · Score: 0
  35. Philosophies no longer apply by Junks+Jerzey · · Score: 3, Insightful

    One of the core tenets of UNIX was that you have small, simple tools and you glue them together. But now the popular programming languages under Linux are C++, Python, and Perl, none of which follow this philosophy. And to get to the point where Linux is a true alternative to Windows on the desktop, you have to put a massive X server on top of the kernel, and put a massive window manager and desktop environment on top of that. In the end, "Linux" is not a simple thing (and arguably even the kernel is not simple, but the API is), because you are looking at the combination of X+Qt+KDE, and that pretty much throws all philosophy out the Window. (Yes, I know you can use Blackbox or something else instead, but then don't go arguing that it's a suitable replacement for Windows.)

    Have you ever read code from some of the original UNIX team, such as Kernhigan's Software Tools? Wow, can that man write clean and clear code. The original C compiler is similarly concise. But then look at the sources to just about any Open Source project and see that (1) there's a massive amount of code, and (2) it's mostly very ugly. Unfortunately, even though it's illogical, "open source" and "simplicity" aren't as intimately tied together as one would expect.

    1. Re:Philosophies no longer apply by mackstann · · Score: 1
      And to get to the point where Linux is a true alternative to Windows on the desktop, you have to put a massive X server on top of the kernel, and put a massive window manager and desktop environment on top of that. In the end, "Linux" is not a simple thing (and arguably even the kernel is not simple, but the API is), because you are looking at the combination of X+Qt+KDE, and that pretty much throws all philosophy out the Window. (Yes, I know you can use Blackbox or something else instead, but then don't go arguing that it's a suitable replacement for Windows.)

      Huh? Make up your mind! If you want it Unix-like, then USE "Blackbox or something else." If you want it Windows-like, use KDE. How are you supposed to have something that can be an alternative to Windows (which would require it to be at least somewhat similar), while at the same time, staying Unix-like? There are plenty of window managers that I would say are fairly in line with the Unix philosophy.

      I'm not sure that Python goes against the Unix Philosophy, either. It's perfectly fine, and not at all difficult, to pipe together shell commands in Python. You can also use Python to create said shell commands; nothing is forcing you to use Python to write another Bit Torrent or pyslsk or whatever. It's also worthy to mention that some tasks are just beyond the reasonable limits of shell scripting. So, assuming that your little program is too big for a (sane) shell script (or scripts), you should then write it in C? Why? You could write it faster, and easier, in Python (assuming your C skills aren't disproportionately better than your Python skills).

    2. Re:Philosophies no longer apply by Anonymous Coward · · Score: 0

      You are quite right - you can pipe commands together in Python. His point was, like a couple of other posters, that a huge quantity of applications (i.e. things people use computers for) nowadays are big, GUId, office apps. Even developer tools are huge, powerful IDEs (like KDevelop, Eclipse) and things like KCacheGrind.
      You simply cannot create a large app like that from command-line tools.
      The emphasis for large apps now is component-oriented construction. It is possible to re-use huge chunks of these large apps (cf. SWT, QT) - the unit of reuse is no longer to command line tool, but the class library.

      This is, of course, a consequence of the popularization of OOP (even GTK+ fakes objects in C).

  36. Re:I'll take a shot at it by Tragedy4u · · Score: 2, Insightful

    I don't feel that Unix will ever "die" as you state, despite all the Oracle propaganda Linux is the still the new kid on the block in the *nix sector and has a long way to go in terms of enterprise features which commercial UNIX variants have. Not to mention, some business managers only feel safe with a product if they've paid good money for it (the whole you get what you pay for philosophy and having a vendor to point the finger at) I know that sounds odd but its often true as I've worked for a few very large companies that refuse to adopt UNIX because it's free.

    There's nothing wrong with using commercial closed business model's, it all depends on your particular situation, you need to use whichever philosophy and technology is best in your situation. Sometimes having something that is open to the world can be a bad thing.

  37. Re:I'll take a shot at it by Tragedy4u · · Score: 1

    I've worked for a few very large companies that refuse to adopt UNIX because it's free.
    Substitute UNIX = Linux my mind must be failing in my old age. ;P

  38. Maybe... by Anonymous Coward · · Score: 0

    Because the old UNIX philosophy is NO LONGER APPLICABLE to a huge new range of computing tasks that we put our machines through today.

    We need a lot MORE from our machines now in almost infinately more complex ways than they were put through when the "UNIX philosophy" was born.

    Times change and "UNIX" had better change with it or it truly will be a dead OS, or at least relegated to niche/embedded single purpose markets. Actually sounds like the UNIX philosophy applied to the USE of the OS itself! Small, single purpose devices :)

    1. Re:Maybe... by Anonymous Coward · · Score: 0

      This is a rehash of the old big-is-beautiful, go bloatware, argument.
      Unfortunately, no other programming philosophy has stood
      the test of time as well as the original UNIX philosophy.

      And to this, you add the old UNIX is dead argument. Oh please, people have been saying that since 1985 at least.

      Next.

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

      OpenOffice, Mozilla, Gnome, KDE, Evolution, Nautilus... Looks like the UNIX Philosophy is pretty much dead even on Unix. Sorry you had to hear it from me.

    3. Re:Maybe... by thogard · · Score: 1

      Since when can open office produce a document that looks as nice as TeX?

    4. Re:Maybe... by Tony-A · · Score: 1

      Because the old UNIX philosophy is NO LONGER APPLICABLE to a huge new range of computing tasks that we put our machines through today.

      We need a lot MORE from our machines now in almost infinately more complex ways than they were put through when the "UNIX philosophy" was born.


      You've got that almost exactly backwards. It is precisely because we need a lot MORE from our machines now that UNIX has outlived its betters. It's hard enough to get the simpler things somewhere aproaching "right". The "small is beautiful" is about the things combined, not the ways in which those things can be combined.
      The odds of getting everything right in something large and complex is vanishingly small.

  39. really? by jared_hanson · · Score: 1

    I already know this. That is what my joke was making reference to. I will spell it out for you: oh - bee - vee - eye - oh - you - es.

    --
    -- Fighting mediocrity one bad post at a time.
    1. Re:really? by Anonymous Coward · · Score: 0

      Your joke makes no sense to anybody who reads it after the fix. That's why he was pointing it out, dorkmonger.

    2. Re:really? by Anonymous Coward · · Score: 0

      you're a dumbass. dee - you - em - bee - aye - es - es

  40. linux the new face of unix? by Anonymous Coward · · Score: 0

    linux is linux
    unix is unix

    Linux is a unix like operating system, but it is not based on either BSD or System V, thus it is most certainly not 'unix'

    1. Re:linux the new face of unix? by sloanster · · Score: 1

      Linux is absolutely positively unix - the pedigree is unmistakable for anyone with any understanding of the unix nature.

      As lawyers and non tech savvy managers are quick to remind us, linux is not UNIX (TM) - but it is certainly unix.

  41. Works too well for its own good... by Dr.+Zowie · · Score: 2, Insightful
    All those little pipeline shell one-liners are inconsequential precisely because the UNIX philosophy works. Some applications (the monolithic ones) don't fit that ideal very well, but many others (all those little one-liners you use, without thinking much about it) do.

    If text manipulation and piping didn't work well in UNIX, you'd know about it -- all those tasks would be a real thorn in your side. As it is, you have the right tools, so they're no big deal.

  42. Re:Philosophy my arse by harrkev · · Score: 3, Insightful
    So Unix has a 'philosophy' then? And I thought it was just a fucking operating system.


    Everything that is designed has a philosophy. For example, imaging a bunch of guys standing around trying to design a four-wheeled vehicle. Here are examples of different philosophies:

    1) The car should become a part of the driver. Getting into the car should feel like putting on a running shoe.

    2) The car should be functional, yet inexpensive.

    3) The car should haul lots of stuff.

    4) The car should haul.

    Each "philosophy" will produce a very different result. *NIX DOES have a very different feel from Windows.

    In Windows, everything is centralized. This is why there is a registry -- one place to keep all data. The web browser is also tightly integrated into the core OS.

    In Linux, everything is a little piece. If you want to build your own system, you can pick and choose which packages to install. No GUI, no problem. Every program sticks its configuration into separate little text files.

    Which is better is a matter of opinion, and both have their strengths and weaknesses. Both Linux and Microsoft have managed to make some rather good operating systems. In fact, I kind of like Windows (at times). All you have to do is get rid of all Microsoft management and lawyers, and you could have a pretty good company. Then, hire some programmers who know something about security, and you could have the perfect desktop OS. Install a *NIX kernel, and you would have something perfect for the server market ;)
    --
    "-1 Troll" is the apparently the same as "-1 I disagree with you."
  43. Please... by CausticWindow · · Score: 1

    Don't perpetuate the myth that LSD burns out your brian.

    Tryptamines are good for you.

    --
    How small a thought it takes to fill a whole life
  44. Another book on 'Unix philosophy' by jpkunst · · Score: 1

    Intended for people with computer experience who are new to Unix (no "For Dummies" nonsense). I found it illuminating when I first started using Linux: Think Unix, by Jon Lasser.

    JP

  45. fuck this life by Anonymous Coward · · Score: 0

    Wenn Nordlichter heulen am Himmel
    ist Haut gegen Haut schon Bedeutung
    an sich, unter der Decke,
    das Fenster zolldick beschlagen mit Eis,
    wir warmen einander unterm Magnetsturm
    Geknister am Himmel

    Vor diesem Aufenthalt hier
    glaubte ich noch an tintenfleckige Lehren:
    daB Todesverachtung
    Liebe zum Leben ist,
    und andres und unter andrem,
    eine klamme Hand schreibt sowas nicht,
    20C signiert das Fenster

    Wir brauchen nicht Lehren
    nur Schneeschuhe, gegen Morgen seh ich
    den Himmel anders, hore mich um:
    der ambulante Laden kommt einmal die Woche
    falls er sich uberhaupt zu fahren bequemt

  46. Re:Yeah, well... by sloanster · · Score: 1

    Look Pa, come quick! You won't beleive this!

    We finally found some fool that actually fell for that SCO nonsense!

  47. Re:Philosophy my arse by WWWWolf · · Score: 1
    So Unix has a 'philosophy' then? And I thought it was just a fucking operating system. This is just as wanky as companies talking about their 'mission statement'.

    Huh?

    Well, most people who create something usually think what is their goal, their guiding idea; they need to think what the hell they're trying to accomplish by creating the thing.

    So operating systems, like everything else, have been built based on the design principles. A philosophy, if you will.

    Most people do not realize the simple truth that things you do are often easier to do if you know what you're supposed to be doing. Profound thought, eh?

  48. Re:I'll take a shot at it by crazyphilman · · Score: 4, Informative

    That's NOT what he's talking about.

    The "Unix Philosophy" is the philosophy behind Unix-like O/S'es LIKE LINUX. It's a design philosophy, NOT a marketing one, or even an economic one. Vastly oversimplifying,

    1. Don't create huge monolithic programs if you can help it. Create small, elegant programs that each do one specific thing well. Use a scripting language to pipe them together, amplifying their usefulness.

    2. Because you want to be able to pipe small programs together to aggregate their usefulness, avoid "captive user interfaces", i.e. interactivity. Lean towards writing software that is comfortable running in batch, on a pipe, in a script. Use command line arguments.

    3. Don't reinvent the wheel. If there's already a tool that does what you want to do, use it. If you need to extend its functionality, script it with another tool or tools.

    4. Lean towards command line programming, because then everything you've got can be scripted, run in crontab, run in batch, etc. The command line is your friend.

    5. Everything is a file. This lets you interact with hardware directly, in your software.

    6. Store data as flat text whenever possible, so that down the road, if you want to use it with another program, you'll be able to. This also lets you sift through your data using grep and awk.

    7. Use text streams whenever you can, for similar reasons to #6. Got a socket? Pass flat text, not binary. Unless you really MUST pass binary.

    I've probably left a whole lot out, but this is the basic gist of it. It's why Linux, Unix, and the *BSDs are so much more useful than Windows.

    --
    Farewell! It's been a fine buncha years!
  49. Re:I'll take a shot at it by crazyphilman · · Score: 1

    Plus, I like the built-in multilayer pun:

    Whereas Multics (which wouldn't run on their PDP) was multiplexed, Unix (which would) was not -- and you've got that whole "Eunuchs/Unix" joke, where the boss says, "I need more Unix programmers, the company nurse will be by later..."

    --
    Farewell! It's been a fine buncha years!
  50. Re:I'll take a shot at it by qtp · · Score: 4, Insightful

    UNIX = Commercial way of thinking

    The UNIX philosophy has nothing to do with commercial vs Free, or closed vs open and has everything to do with design and problem solving. The comercial aspects of UNIX culture were imposed upon UNIX by shareholders and corporations with little or no regard for who had designed the product, whether they had been compensated, or how future maintainance and development would be accomplished. The development of the EMACS editor, the GNU project, and the GPL license were a reaction to these changes in UNIX development. The GPL was not created as an economic "weapon", nor was it created with money in mind at all. It was motivated by a desire to have the source code available to anybody with an idea and the know-how to implement it.

    Many posters here seem to be obsessed with money, and it can't be good for thier thinking. Whether they are dogmatic about giving away for free or about charging for every last thought, it betrays an unwillingness to view subjects and viewpoints as other than economically based. I admit that the economics of software development need be considered in any project, but my opinion is that making design decisions based on monetary arguments is putting the cart before the horse and will often result in poorly designed and inferior software.

    The UNIX philosophy is not incompatible with the GPL, nor is it incompatible with comercial licensing In fact, the GPL has very little to do wih money in any way whatsoever. In other words, read the book, come back and discuss philosophy when you're prepared.

    --
    Read, L
  51. Excellent job! by Anonymous Coward · · Score: 0

    1) Give the slashbots a bunch of pablum that they want to hear, for karma whoring goodness.

    2) Wrap the whole thing with a "misunderstanding" of what the author was trying to say, for a good reply count.

    3) Getting first post.

    Keep up the good work! I salute you, sir.

  52. qmail is a great example by GGardner · · Score: 1

    Qmail is a great example of the Unix philosophy. It is a large, powerful system built with many smaller programs which do one thing well, and communicate via pipes (or the filesystem). I'm not familiar with cbb. But Qmail is almost the exception that proves the rule -- I can't think of any other large application that is built with this Unix philosophy, almost every other is one big program with IPC done via function calls.

  53. the unix pestilence by Anonymous Coward · · Score: 0
  54. Too true by TheLastUser · · Score: 1

    But I find that sendmail is easy to confiure, it has a very small (1-2) page m4 configuration file (sendmail.mc), and its incredibly powerful. Most people just don't understand that they will in all likelyhood never have to edit the sendmail.cf file. Its only there to support exotic configurations. Buy the bat book and read a couple chapters. After that, you can sell the book, because you will know enough to set up 99.99% of all mail servers.

    As for security issues, it seems to have fewer cert's than the Linux kernel, so patch quickly and you should be ok.

    And as for Gnome and KDE, well.... Yeah. But then most of the machines I manage don't even have X installed. What irritates me is that most of the common distro's (I use RedHat) are moving to brain dead desktops that are about as configurable as a Microsoft EULA. I don't mind them "unifying" the desktops but the glaring lack of choice and then the removal of the configuration tools means that I have to do a lot of post install, install so that I can fix things. Hell, you can't even set the background color without running Nautilus.

  55. Ye of little faith... by sleepingsquirrel · · Score: 1
    Looks like someone hasn't visited CPAN in a while...
    #!/usr/bin/perl
    use HTTP::Request::Common qw(POST);
    use LWP::UserAgent;

    $ua=LWP:UserAgent->new();
    my req = POST 'http://books.slashdot.org', [sid => '74463', cid =>6677408', etc...]
    $content = $ua->request($req)->as_string
    ...and that's all without telnet to port 80!
    1. Re:Ye of little faith... by macshit · · Score: 1

      Since when was Perl `small' (or for that matter `beautiful')?

      Really Perl's much closer to emacs than to grep...

      --
      We live, as we dream -- alone....
  56. Re:I'll take a shot at it by Arandir · · Score: 2, Insightful

    There were two main branches of UNIX. The first was the commercialized AT&T/USL UNIX, which SCO know apparently owns. The other branch of BSD UNIX. From day one this was noncommercial. It was BSD UNIX that made UNIX a success. Without BSD, UNIX would be down and out in the gutter sharing a bottle of Ripple with Multics and cursing its fortunes.

    BSD might not be allowed to call itself a "UNIX" today, but the fact remains that it is still UNIX and it is Free Software.

    --
    A Government Is a Body of People, Usually Notably Ungoverned
  57. It's on the same subject people...sigh by unsinged+int · · Score: 1

    nt

  58. Source for "In The Beginning..." by bryane · · Score: 4, Informative

    The text for Neal Stephenson's book "In the Beginning..." can be downloaded here. Haven't read it yet, but when did that stop anyone here :-)

  59. Interesting perspective, but wondering.... by einhverfr · · Score: 1

    1. Don't create huge monolithic programs if you can help it. Create small, elegant programs that each do one specific thing well. Use a scripting language to pipe them together, amplifying their usefulness.

    Absolutely. Of course the corrolary of 1-4 above is that if you need interactivity, write a script to do this for you :-)

    6. Store data as flat text whenever possible, so that down the road, if you want to use it with another program, you'll be able to. This also lets you sift through your data using grep and awk.

    This is connected with the idea of text as a universal data format. This is true to a large extent and is something I use when it is the best solution, but let me offer a different aspect here:

    This point seems to exist because the text-processing tools (sed, awk, grep, even Perl) are extremely powerful and well developed so that writing the data to a text file genreally provides a great deal of flexibility. But what if your data is more complex? Shouldn't you store it in an RDBMS instead?

    In fact, by storing the data in an RDBMS aren't you accomplishing the same thing by abstracting the data from the tools used to process it? (RDBMS are much more UNIX-like in their approach than OO DBMS). Can't you write a perl script to take that data, pipe it out as text to STDOUT and then pipe that through Awk, Sed, etc. if you really want (for backwards compatibility).

    In fact the only thing that the text file gives you at this point is human readibility which is still important but IMO this should be weighed against the RDBMS approach...

    --

    LedgerSMB: Open source Accounting/ERP
    1. Re:Interesting perspective, but wondering.... by Mryll · · Score: 1

      Do you find XML a fair compromise between human and machine readability? In my recent experience, it's the cleanest interface I've actually been asked to code for an RDBMS-based product. Doing arbitrary parsing on text is a coding hassle unless there is simple structure in the flat text.

    2. Re:Interesting perspective, but wondering.... by einhverfr · · Score: 1

      Do you find XML a fair compromise between human and machine readability? In my recent experience, it's the cleanest interface I've actually been asked to code for an RDBMS-based product. Doing arbitrary parsing on text is a coding hassle unless there is simple structure in the flat text.

      I agree that it is a good compromise where appropriate. I think that the goal should always be abstraction of the data from the tools, and XML does this very well, as does the RDBMS style system, or even LDAP.

      --

      LedgerSMB: Open source Accounting/ERP
    3. Re:Interesting perspective, but wondering.... by crazyphilman · · Score: 1

      Well, I mostly do applications programming, so I use a database a lot; it's perfect for certain types of data, especially data which has to be shared among numbers of users or which has to be searchable. And, that's cool. Another tenet of Unix has always been "there's more than one way to skin a cat".

      But for data like, for instance, application presets, you definitely want to use flat files. Let me give you an example. Let's say I'm writing a level editor program for a game engine (unfortunately, this would probably be a GUI-based monolithic program, not a "small-is-beautiful" program, but it would probably be using small programs behind the scenes). I want to enable myself to build templates, and presets for most of my editor settings, so I'm not typing in stuff over and over again. I'd put it in a flat file, and maybe while the program is running, I'd keep it in some kind of data structure. This is a nice way to do it; if my system crashes, I can restore my presets by loading the text file from a floppy disk. If I had put them in a database (the way windows programs seem to love using the registry) I'd have a lot more work to do to recover it (or I'd have to rebuild the presets by hand).

      Another thing is, using a database for everything isn't efficient. It's much more efficient to store application data in flat files, and read them on initialization, than it is to store them in a database and have to look them up when you need them.

      So I think my basic approach is, databases for data I have to share with other computers and search on, and flat files for static data I want to keep handy, like presets and bookmarks and such. What do you think?

      Phil

      --
      Farewell! It's been a fine buncha years!
    4. Re:Interesting perspective, but wondering.... by crazyphilman · · Score: 2, Interesting

      In terms of flat files, XML is a great idea. It makes parsing easy, it aids readability, and it can be matched with stylesheets when you want a nice-looking printout of your data. I wouldn't use anything BUT XML for flat files... :)

      --
      Farewell! It's been a fine buncha years!
    5. Re:Interesting perspective, but wondering.... by einhverfr · · Score: 1

      In terms of flat files, XML is a great idea. It makes parsing easy, it aids readability, and it can be matched with stylesheets when you want a nice-looking printout of your data. I wouldn't use anything BUT XML for flat files... :)

      I would. Logs are a great example and if well designed are extremely easy to parse and read. Logs in XML seems like overkill to me.

      --

      LedgerSMB: Open source Accounting/ERP
    6. Re:Interesting perspective, but wondering.... by crazyphilman · · Score: 1

      Yeah, but I meant for program data, not logs. Like settings and such. Logs are a totally separate thing.

      --
      Farewell! It's been a fine buncha years!
    7. Re:Interesting perspective, but wondering.... by einhverfr · · Score: 1

      Yeah, but I meant for program data, not logs. Like settings and such. Logs are a totally separate thing.

      Fair enough. And I agree, for the most part. One of the last programs I wrote used an XML hierarchy as a user directory and a flat text file as a log.

      That being said I wrote a different program whose configuration file looked much more like the fstab... It works great too. But its data is much simpler.

      --

      LedgerSMB: Open source Accounting/ERP
    8. Re:Interesting perspective, but wondering.... by Viol8 · · Score: 1

      I would agree , the only proviso being that with lots of applications you can tend to find the
      number of flat files spiralling out of control , whereas if they're database applications anyway they might as well
      have their static stored on the database too and have everything in one central repository. Unless of course part of the static data
      is which database they should connect to in the first place! :)

    9. Re:Interesting perspective, but wondering.... by crazyphilman · · Score: 1

      I see where you're coming from; I think the ideal is where you limit the amount of static data you have to save. After all, if you have so much that your files are out of control, how much are you going to have to stuff in some database table if you convert to using a database for it? And, how are you going to maintain it? Eventually it gets out of hand.

      Then again, maybe limiting this sort of data creep is part of the art, eh? ;)

      --
      Farewell! It's been a fine buncha years!
    10. Re:Interesting perspective, but wondering.... by crazyphilman · · Score: 1

      That's cool... But I think that nowadays, I'd still want to put any kind of configuration info in XML, if for no other reason than that I can mix it with a stylesheet and use it in other apps, or in creating a human-friendly version, etc. I figure, it's not that much extra work, and it gives you such a benefit... :)

      --
      Farewell! It's been a fine buncha years!
  60. UNIX vs Windows by einhverfr · · Score: 1


    Some people argue (as you have) that these come at the expense of ease of use, but that is only true for small (admittedly often consumer-oriented) problems. Without doubt, however, past certain threshold values of problem size and complexity, efficiency and flexibility (i.e. small and specialized teams of scriptable tools) drastically increase ease of use relative to other methods, not to mention time and expense to deployment.


    I could not have put it better myself. Have you ever really tried to learn UNIX and Windows? The first three steps with Windows are easy. But as the complexity of the problems grows, the learning curve gets steeper and steeper. This is a horrible problem with Windows. Imagine playing find-the-dialog box 50 times in a row ;-)

    With UNIX, the learning curve is very steep at first. But as the problems become more complex, the added difficulty becomes less because you already know *most* of the tools you will use to solve the problem. You can go read a man page or two and now you are ready to rock and roll. But it is harder to get there.

    --

    LedgerSMB: Open source Accounting/ERP
  61. Re:I'll take a shot at it by Microsofts+slave · · Score: 1

    IF you could afford your own PDP-11, then you were the king hobbist. Unix started out as someones fork of MULTACS and then progressed from there .

    --

    Tragek

  62. Attempt at not trolling by einhverfr · · Score: 1

    A detailed technical differences list
    alongwith a idealogical difference (eg
    *BSD vs Linux) list would have been useful.


    Any answer to this will probably be seen as a troll, but here is my attempt:

    BSD:
    1: Developers are brought to it because they are excited about trying to develop new ideas, and they are flattered when commercial vendors use their ideas in software.

    2: Developers don't tend to be as willing to help newbie driver developers as they are in Linux. Not that this is good or bad, but it reflects a greater level of the RTFM mentality among the core developers.

    3: Busineses see BSD as a starting point for building certain implimentations of things (TCP/IP, f. ex.)

    Linux:
    1: Many developers are drawn to Linux for a diversity of reasons including profit, sometimes technical innovation, sometimes just for fun.

    2: Businesses see Linux as an attempt to undercut their competition because other businesses can't use their contributions as a reference for their proprietary implimentations.

    3: The Linux community tends to be more grateful for the contributions of people with limited know-how regarding programming assistance. It is easier to get help regarding a driver you are developing and there is less of an RTFM attitute in the LKML. Not that this is good or bad, just that it is an observation.

    Where things go from here:
    I think that as Linux kills proprietary UNIX, that BSD will grow as well because there won't be the same sort of reverse incentive to contribute for commercial developers.

    --

    LedgerSMB: Open source Accounting/ERP
  63. Re:The Linux Philosophy by Anonymous Coward · · Score: 0

    For 2 to come true, 1 would have to be "Steal BSD code". (SCO was never alive).

  64. Re:I'll take a shot at it by pmz · · Score: 1

    Don't reinvent the wheel.

    Who has the courage to tell this to all the "me too" projects hosted on Sourceforge?

  65. Interesting quote by gerardrj · · Score: 1
    Sure some will consider this a flame/troll.

    ...Now with Linux emerging as the new face of Unix...


    I disagree. Linux (the Kernel) has been available since about 1992 (roughly). (GNU much earlier @ 1984)

    From the few reports I see online (like linux counter, RedHat, etc). One can guess there are about 22 million active Gnu/Linux installs out there. One could also guess 100 million or 50 thousand, it's a guesser's market out there. In any case, lets go with 22 million Gnu/Linux installations over 10 years for the system.

    MacOS (BSD based) has been out for about two years and Apple claims over 7 million users, and from looking at the charts in the Stevenotes, the adoption rate has been accelerating rather nicely.

    22mil/10yrs = 2.2mil new users per year for Gnu/Linux
    7mil/2yrs = 3.5mil new users per year

    And yes, a lot of people will argue that GNU/Linus is free and/or cheaper than Mac OS, and runs on lower cost hardware. But that argument is iinvalid. Do you drive the lowest cost car on the market? Do you live in a small tent? Do you only eat nothing but guel and vegetables? No. You drive the most capable and stylish car you could afford, you live in the largest housing you can afford in the best area you can afford and that is reasonably close to where you generally want to be, and you probably eat rather well.

    Why do people think that computer users (home desktop users) are suddenly going to ignore style, usability and convenience when choosing a desktop operating system? Price only becomes a factor once the other factors are met or balanced, and Mac OS X will run on $800 hardware(new eMac) quite nicely.

    --
    Article X: The powers not delegated... by the Constitution...are reserved...to the people
    1. Re:Interesting quote by Anonymous Coward · · Score: 0

      What are you talking about? MacOS has been out for far longer than 2 years. It's not like Apple sprung up overnight a couple of years ago. They've been there since the beginning.

    2. Re:Interesting quote by Anonymous Coward · · Score: 0

      I eat guel and veggies, live in a small tent and walk to 3 miles to work. I am an Indian vegitarian programmer. btw - I need just $10 a day to survive.

    3. Re:Interesting quote by gerardrj · · Score: 1

      I didn't say that MacOS or Apple sprung up 2 years ago. I said that "MacOS(BSD based)" was launched about 2 years ago.
      The only BSD version of MacOS is MacOS X. MacOS 8 &9 were not BSD based. Versions of the OS before 8 were simply called "System", such as "System 7 or System 6".

      --
      Article X: The powers not delegated... by the Constitution...are reserved...to the people
    4. Re:Interesting quote by Anonymous Coward · · Score: 0

      Butthey built from the earlier MacOS users. They have a pretty captive market.

  66. Something I've never been able to figure out-CORBA by Anonymous Coward · · Score: 0

    That's were things like CORBA, RPC (and like DCOP), come into play. Sort of a higher-level pipe.

  67. OK, Linux is not Unix... by gatkinso · · Score: 1

    ...but is Linus a eunuch?

    ??

    --
    I am very small, utmostly microscopic.
  68. Re:I'll take a shot at it by crazyphilman · · Score: 1

    Woah... Not me, bud. I'll let someone else do it. But, you know... If we stay in the vicinity, the fireworks ought to be interesting!

    --
    Farewell! It's been a fine buncha years!
  69. Re:I'll take a shot at it by Jellybob · · Score: 1
    Perhaps you have heard of BSD Unix...?

    Did you read the OP?

    He already *said* it's dying, what more do you want, an obituary?
  70. Yes, I know by Anonymous Coward · · Score: 0

    It's a quote of the freely available Unix-Haters Handbook. I made a remark on the quote when the an article on the book was posted on Slashdot. I was not able to find it back, unfortunately, mostly because there were so many dupes of that article on Slashdot.