Some ideas from this strange col­ored book served as inspi­ra­tions for the stuff on http://www.forkable.eu.

The Unix Phi­los­o­phy by Mike Gan­carz ISBN:1–555558-123–4. Copy­right 1995 Butterworth-Heinemann. Copied from here. There: Reprinted with Per­mis­sion of Dig­i­tal Press

  • Small pro­grams are easy to understand.
  • Small pro­grams are easy to maintain.
  • Small pro­grams con­sume fewer sys­tem resources.
  • Small pro­grams are eas­ier to com­bine with other tools.
  • The best program…does but one task in its life and does it well.”
  • The pro­gram is loaded into mem­ory, accom­plishes its func­tion, and then gets out of the way to allow the next single-minded pro­gram to begin.”
  • Pro­to­typ­ing is a learn­ing process.
  • Early pro­to­typ­ing reduces risk.
  • Next —‘s hard­ware will run faster.
  • Don’t spend too much time mak­ing a pro­gram run faster.
  • The most effi­cient way is rarely portable.
  • Good pro­grams never die — they are ported to new hard­ware platforms.
  • ASCII text is a com­mon inter­change format.
  • ASCII text is eas­ily read and edited.
  • ASCII data files sim­plify the use of Unix text tools.
  • Increased porta­bil­ity over­comes the lack of speed (of flat ASCII text files…)
  • The lack of speed is over­come by next year’s machine.
  • Good pro­gram­mers write good code; great pro­gram­mers “bor­row” good code.
  • Avoid the not-invented-here syndrome.
  • Allow other peo­ple to use your code to lever­age their own work.
  • Auto­mate everything.
  • Shell scripts give you awe­some leverage
  • Shell scripts lever­age your time, too.
  • Shell scripts are more portable than C.
  • Resist the desire to rewrite shell scripts in C.
  • CUIs assume that the user is human.
  • CUI com­mand parsers are often big and ugly to write.
  • CUIs tend to adopt a “big is beau­ti­ful” approach.
  • Pro­grams hav­ing CUIs are hard to com­bine with other programs.
  • CUIs do not scale well.
  • CUIs do not take advan­tage of soft­ware leverage.
  • Every pro­gram writ­ten since the dawn of com­put­ing is a filter.
  • Pro­grams do not cre­ate data — peo­ple do.
  • Com­put­ers con­vert data from one form to another.
  • Use stdin for data input;
  • Use std­out for data output;
  • Use stderr for out-of-band information.

Allow the User to tai­lor the envi­ron­ment — Make oper­at­ing sys­tem ker­nels small and light­weight — Use lower case and keep it short — Save Trees — Silence is golden — Think par­al­lel — The sum of the parts is greater than the whole — Look for the 90 per­cent solu­tion — Worse is bet­ter. (I won’t try to explain this one…) — Think hierarchically