<html>
  <head>
    <meta content="text/html; charset=windows-1252"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    Many years ago (back when it was new in '94-95), I picked up Mike
    Gancarz "The Unix Philosophy"
    (<a class="moz-txt-link-freetext" href="http://www.amazon.com/UNIX-Philosophy-Mike-Gancarz/dp/1555581234">http://www.amazon.com/UNIX-Philosophy-Mike-Gancarz/dp/1555581234</a>). 
    I thought it was a great read that went along quite well with the
    classic Kernigan/Pike and Sobell books.  I see he updated it in 2003
    to catch the Linux wave
    (<a class="moz-txt-link-freetext" href="http://www.amazon.com/Linux-Unix-Philosophy-Mike-Gancarz/dp/1555582737/">http://www.amazon.com/Linux-Unix-Philosophy-Mike-Gancarz/dp/1555582737/</a>). 
    <br>
    <br>
    Gancarz broke down the philosophy in 9 tenets:<br>
    <span style="color: rgb(17, 17, 17); font-family: Arial, sans-serif;
      font-size: 13px; font-style: normal; font-variant: normal;
      font-weight: normal; letter-spacing: normal; line-height: 19px;
      orphans: auto; text-align: start; text-indent: 0px;
      text-transform: none; white-space: normal; widows: 1;
      word-spacing: 0px; -webkit-text-stroke-width: 0px; display: inline
      !important; float: none; background-color: rgb(255, 255, 255);">1.
      Small is beautiful.</span><br style="box-sizing: border-box;
      color: rgb(17, 17, 17); font-family: Arial, sans-serif; font-size:
      13px; font-style: normal; font-variant: normal; font-weight:
      normal; letter-spacing: normal; line-height: 19px; orphans: auto;
      text-align: start; text-indent: 0px; text-transform: none;
      white-space: normal; widows: 1; word-spacing: 0px;
      -webkit-text-stroke-width: 0px; background-color: rgb(255, 255,
      255);">
    <span style="color: rgb(17, 17, 17); font-family: Arial, sans-serif;
      font-size: 13px; font-style: normal; font-variant: normal;
      font-weight: normal; letter-spacing: normal; line-height: 19px;
      orphans: auto; text-align: start; text-indent: 0px;
      text-transform: none; white-space: normal; widows: 1;
      word-spacing: 0px; -webkit-text-stroke-width: 0px; display: inline
      !important; float: none; background-color: rgb(255, 255, 255);">2.
      Make each program do one thing well.</span><br style="box-sizing:
      border-box; color: rgb(17, 17, 17); font-family: Arial,
      sans-serif; font-size: 13px; font-style: normal; font-variant:
      normal; font-weight: normal; letter-spacing: normal; line-height:
      19px; orphans: auto; text-align: start; text-indent: 0px;
      text-transform: none; white-space: normal; widows: 1;
      word-spacing: 0px; -webkit-text-stroke-width: 0px;
      background-color: rgb(255, 255, 255);">
    <span style="color: rgb(17, 17, 17); font-family: Arial, sans-serif;
      font-size: 13px; font-style: normal; font-variant: normal;
      font-weight: normal; letter-spacing: normal; line-height: 19px;
      orphans: auto; text-align: start; text-indent: 0px;
      text-transform: none; white-space: normal; widows: 1;
      word-spacing: 0px; -webkit-text-stroke-width: 0px; display: inline
      !important; float: none; background-color: rgb(255, 255, 255);">3.
      Build a prototype as soon as possible.</span><br
      style="box-sizing: border-box; color: rgb(17, 17, 17);
      font-family: Arial, sans-serif; font-size: 13px; font-style:
      normal; font-variant: normal; font-weight: normal; letter-spacing:
      normal; line-height: 19px; orphans: auto; text-align: start;
      text-indent: 0px; text-transform: none; white-space: normal;
      widows: 1; word-spacing: 0px; -webkit-text-stroke-width: 0px;
      background-color: rgb(255, 255, 255);">
    <span style="color: rgb(17, 17, 17); font-family: Arial, sans-serif;
      font-size: 13px; font-style: normal; font-variant: normal;
      font-weight: normal; letter-spacing: normal; line-height: 19px;
      orphans: auto; text-align: start; text-indent: 0px;
      text-transform: none; white-space: normal; widows: 1;
      word-spacing: 0px; -webkit-text-stroke-width: 0px; display: inline
      !important; float: none; background-color: rgb(255, 255, 255);">4.
      Choose portability over efficiency.</span><br style="box-sizing:
      border-box; color: rgb(17, 17, 17); font-family: Arial,
      sans-serif; font-size: 13px; font-style: normal; font-variant:
      normal; font-weight: normal; letter-spacing: normal; line-height:
      19px; orphans: auto; text-align: start; text-indent: 0px;
      text-transform: none; white-space: normal; widows: 1;
      word-spacing: 0px; -webkit-text-stroke-width: 0px;
      background-color: rgb(255, 255, 255);">
    <span style="color: rgb(17, 17, 17); font-family: Arial, sans-serif;
      font-size: 13px; font-style: normal; font-variant: normal;
      font-weight: normal; letter-spacing: normal; line-height: 19px;
      orphans: auto; text-align: start; text-indent: 0px;
      text-transform: none; white-space: normal; widows: 1;
      word-spacing: 0px; -webkit-text-stroke-width: 0px; display: inline
      !important; float: none; background-color: rgb(255, 255, 255);">5.
      Store data in flat text files.</span><br style="box-sizing:
      border-box; color: rgb(17, 17, 17); font-family: Arial,
      sans-serif; font-size: 13px; font-style: normal; font-variant:
      normal; font-weight: normal; letter-spacing: normal; line-height:
      19px; orphans: auto; text-align: start; text-indent: 0px;
      text-transform: none; white-space: normal; widows: 1;
      word-spacing: 0px; -webkit-text-stroke-width: 0px;
      background-color: rgb(255, 255, 255);">
    <span style="color: rgb(17, 17, 17); font-family: Arial, sans-serif;
      font-size: 13px; font-style: normal; font-variant: normal;
      font-weight: normal; letter-spacing: normal; line-height: 19px;
      orphans: auto; text-align: start; text-indent: 0px;
      text-transform: none; white-space: normal; widows: 1;
      word-spacing: 0px; -webkit-text-stroke-width: 0px; display: inline
      !important; float: none; background-color: rgb(255, 255, 255);">6.
      Use software leverage to your advantage.</span><br
      style="box-sizing: border-box; color: rgb(17, 17, 17);
      font-family: Arial, sans-serif; font-size: 13px; font-style:
      normal; font-variant: normal; font-weight: normal; letter-spacing:
      normal; line-height: 19px; orphans: auto; text-align: start;
      text-indent: 0px; text-transform: none; white-space: normal;
      widows: 1; word-spacing: 0px; -webkit-text-stroke-width: 0px;
      background-color: rgb(255, 255, 255);">
    <span style="color: rgb(17, 17, 17); font-family: Arial, sans-serif;
      font-size: 13px; font-style: normal; font-variant: normal;
      font-weight: normal; letter-spacing: normal; line-height: 19px;
      orphans: auto; text-align: start; text-indent: 0px;
      text-transform: none; white-space: normal; widows: 1;
      word-spacing: 0px; -webkit-text-stroke-width: 0px; display: inline
      !important; float: none; background-color: rgb(255, 255, 255);">7.
      Use shell scripts to increase leverage and portability.</span><br
      style="box-sizing: border-box; color: rgb(17, 17, 17);
      font-family: Arial, sans-serif; font-size: 13px; font-style:
      normal; font-variant: normal; font-weight: normal; letter-spacing:
      normal; line-height: 19px; orphans: auto; text-align: start;
      text-indent: 0px; text-transform: none; white-space: normal;
      widows: 1; word-spacing: 0px; -webkit-text-stroke-width: 0px;
      background-color: rgb(255, 255, 255);">
    <span style="color: rgb(17, 17, 17); font-family: Arial, sans-serif;
      font-size: 13px; font-style: normal; font-variant: normal;
      font-weight: normal; letter-spacing: normal; line-height: 19px;
      orphans: auto; text-align: start; text-indent: 0px;
      text-transform: none; white-space: normal; widows: 1;
      word-spacing: 0px; -webkit-text-stroke-width: 0px; display: inline
      !important; float: none; background-color: rgb(255, 255, 255);">8.
      Avoid captive user interfaces.</span><br style="box-sizing:
      border-box; color: rgb(17, 17, 17); font-family: Arial,
      sans-serif; font-size: 13px; font-style: normal; font-variant:
      normal; font-weight: normal; letter-spacing: normal; line-height:
      19px; orphans: auto; text-align: start; text-indent: 0px;
      text-transform: none; white-space: normal; widows: 1;
      word-spacing: 0px; -webkit-text-stroke-width: 0px;
      background-color: rgb(255, 255, 255);">
    <span style="color: rgb(17, 17, 17); font-family: Arial, sans-serif;
      font-size: 13px; font-style: normal; font-variant: normal;
      font-weight: normal; letter-spacing: normal; line-height: 19px;
      orphans: auto; text-align: start; text-indent: 0px;
      text-transform: none; white-space: normal; widows: 1;
      word-spacing: 0px; -webkit-text-stroke-width: 0px; display: inline
      !important; float: none; background-color: rgb(255, 255, 255);">9.
      Make every program a filter.</span><br>
    <br>
    It is enlightening to see him take a program like "ls" and show how
    20 years ago it had already broken some of the philosophy.<br>
    <br>
    -spp<br>
    <br>
    <div class="moz-cite-prefix">On 6/16/2015 11:07 AM, Rick Hornsby
      wrote:<br>
    </div>
    <blockquote
      cite="mid:D0A30AC7-69AF-4797-A125-01F1026EEBFB@gmail.com"
      type="cite">
      <pre wrap="">Came across the "Basics of the Unix Philosophy" linked in one of the puppet docs Scott posted a few days ago.  What I'm finding so fascinating is that while I've never seen this document before, I can see how these ideas still heavily influence and guide us today, nearly 40 years later.  I've learned much of this just through experience and observing UNIX's elegant design patterns.

I've said many of these things to my green system engineers who are just starting to get into Linux and writing their first shell scripts.  I tend to emphasize something along these lines when starting to explain pipes, redirects, etc.

"This is the Unix philosophy: Write programs that do one thing and do it well. Write programs to work together. Write programs to handle text streams, because that is a universal interface."

<a class="moz-txt-link-freetext" href="http://www.faqs.org/docs/artu/ch01s06.html">http://www.faqs.org/docs/artu/ch01s06.html</a>


_______________________________________________
colug-432 mailing list
<a class="moz-txt-link-abbreviated" href="mailto:colug-432@colug.net">colug-432@colug.net</a>
<a class="moz-txt-link-freetext" href="http://lists.colug.net/mailman/listinfo/colug-432">http://lists.colug.net/mailman/listinfo/colug-432</a>
</pre>
    </blockquote>
    <br>
  </body>
</html>