Jon Aquino's Mental Garden

Engineering beautiful software jon aquino labs | personal blog

Saturday, June 07, 2008

Insightful Book: The Art of UNIX Programming

I am finally reading The Art of UNIX Programming, and am really enjoying it. In the past, I had been put off by the title ("Hmm...I don't program Unix utilities in C"), but it's not about that at all. It's about Unix design patterns and programming wisdom.

Check out these tantalizing chapter titles:
  • 1.1 Culture? What Culture?

  • 1.3 What Unix Gets Wrong

  • 1.5 What Unix Gets Right

  • 1.6.5 Rule of Simplicity: Design for simplicity; add complexity only where you must

  • 1.6.6 Rule of Parsimony: Write a big program only when it is clear by demonstration that nothing else will do

  • 1.6.10 Rule of Least Surprise: In interface design, always do the least surprising thing

  • 1.6.11 Rule of Silence: When a program has nothing surprising to say, it should say nothing

  • 1.6.12 Rule of Repair: Repair what you can—but when you must fail, fail noisily and as soon as possible

  • 2.1.1 Genesis: 1969–1971

  • 2.1.2 Exodus: 1971–1980

  • 2.1.4 Blows against the empire: 1991–1995

  • 5.1 The Importance of Being Textual

  • 5.1.3 Case Study: The PNG Graphics File Format

  • 7.3.3 Threads—Threat or Menace?

  • 8 Minilanguages: Finding a Notation That Sings

  • 8.2.10 Case Study: bc and dc

  • 8.3.4 Macros—Beware!

  • 10.2 Where Configurations Live

  • 10.7 On Breaking These Rules

  • 12.3 Nonlocality Considered Harmful

  • 13.2 A Tale of Five Editors

  • 13.3.3 Is Emacs an Argument against the Unix Tradition?

  • 16.7.3 Licensing Issues: When You Need a Lawyer

  • 20.6 Reasons to Believe

Love it!

1 Comments:

  • Good book. I quoted the bit about the delimiter-separated values file format being being better than CSV to a co-worker once and it turned out he'd contributed the section when ESR had it up on his website for comments/additions/corrections. Kudos!

    By Blogger Thomas David Baker, at 6/08/2008 5:03 a.m.  

Post a Comment

<< Home