SlideShare a Scribd company logo
Unix Philosophy
•Small is beautiful.
•Make each program do one thing well.
•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 shells scripts to increase leverage and
portability.
•Avoid captive user interfaces.
•Make every program a filter.
Small is beautiful.
Small things can be combined in many ways to create useful large things.
Leader/00-23 *****nam##22*****#a#4500
001 <control number>
003 <control number identifier>
005 19920331092212.7 007/00-01 ta
008/00-39 820305s1991####nyu###########001#0#eng##
020 ##$a0845348116 :$c$29.95 (£19.50 U.K.)
020 ##$a0845348205 (pbk.)
040 ##$a[organization code]$c[organization code]
050 14$aPN1992.8.S4$bT47 1991
082 04$a791.45/75/0973$219
100 1#$aTerrace, Vincent,$d1948-
245 10$aFifty years of television :$ba guide to series and pilots, 1937-1988 /$cVincent Terrace.
246 1#$a50 years of television
260 ##$aNew York :$bCornwall Books,$cc1991.
300 ##$a864 p. ;$c24 cm.
500 ##$aIncludes index.
650 #0$aTelevision pilot programs$zUnited States$vCatalogs.
650 #0$aTelevision serials$zUnited States$vCatalogs.
Make each program do one thing
well.
Build a prototype as soon as possible.
Choose portability over efficiency.
Store numerical data in flat ASCII files.
Use software leverage to your
advantage.
Running Symphony on a virtual server
Making electronic resources count using LDAP
Advanced UNIX tips/tricks
Customizing E-Library 3.3 and beyond
Symphony Reports for a lean, mean collection
EDI/9XX
Implementing Credit Card Payments
Enterprise unraveled
Integrating Web 2.0 applications with the OPAC
Implementing SchoolRooms
Shortcuts for inventorying your collection
Cataloging serials without the serials module
Creating custom reports using API
Using Director's Station
UNIX for the Uninitiated
Patron Notification via Text Messaging
Using Selection Lists with Acquisitions
Tips, tricks, and troubleshooting for API
Authority Control
Implementing Portfolio
Web Reporter in Practice
How Other Libraries Have Implemented Bookmyne and/or
Webservices
Use shell scripts to increase
leverage and portability.
$ vi first
#
# My first shell script
#
clear
echo "Knowledge is Power"
#!/bin/bash
# Backs up all files in current directory modified within last 24 hours
#+ in a "tarball" (tarred and gzipped file).
BACKUPFILE=backup-$(date +%m-%d-%Y)
# Embeds date in backup filename.
# Thanks, Joshua Tschida, for the idea.
archive=${1:-$BACKUPFILE}
# If no backup-archive filename specified on command-line,
#+ it will default to "backup-MM-DD-YYYY.tar.gz."
tar cvf - `find . -mtime -1 -type f -print` > $archive.tar gzip $archive.tar
echo "Directory $PWD backed up in archive file "$archive.tar.gz"."
# Stephane Chazelas points out that the above code will fail
#+ if there are too many files found
#+ or if any filenames contain blank characters.
# He suggests the following alternatives:
# -------------------------------------------------------------------
# find . -mtime -1 -type f -print0 | xargs -0 tar rvf "$archive.tar"
# using the GNU version of "find".
# find . -mtime -1 -type f -exec tar rvf "$archive.tar" '{}' ;
# portable to other UNIX flavors, but much slower.
# -------------------------------------------------------------------
exit 0
Avoid captive user interfaces.
Make every program a filter.
Charge User
DB
Item
DB
Charge DB
Lissa Potter
Administrative Office of the U.S. Courts
lissa_potter@ao.uscourts.gov

More Related Content

PDF
Docker včera, dnes a zítra
PDF
Ansible practices
PDF
VSTS/ TFS automated Release Pipelines for Web Applications with Docker
PDF
Virthualenvwrapper
PPTX
Advance discussion on Ansible - Rahul Inti
DOCX
Run a mapreduce job
PDF
Ansible to provision your machines
PPTX
ansible : Infrastructure automation,idempotent and more
Docker včera, dnes a zítra
Ansible practices
VSTS/ TFS automated Release Pipelines for Web Applications with Docker
Virthualenvwrapper
Advance discussion on Ansible - Rahul Inti
Run a mapreduce job
Ansible to provision your machines
ansible : Infrastructure automation,idempotent and more

Viewers also liked (20)

ODP
Circuit breakers for Java: Failsafe, Javaslang-Circuitbreaker, Hystrix and Ve...
PDF
Building ‘Bootiful’ microservices cloud
PPTX
Linux principles and philosophy
PPTX
Linux principles and philosophy
PPTX
Unix philosophy and principles
KEY
Mobile Knife Fighting at JSConf US
PPTX
Eduards Sizovs - Micro Service Architecture
PDF
Vert.X: Microservices Were Never So Easy (Clement Escoffier)
PPTX
Mocking Test - QA Ninja Conf 2016
PDF
Bringing the Unix Philosophy to Big Data
PPTX
Vert.x for Microservices Architecture
PDF
Writing Well-Behaved Unix Utilities
PDF
To Microservices and Beyond
PPTX
Mockito vs JMockit, battle of the mocking frameworks
PPTX
Using Hystrix to Build Resilient Distributed Systems
PPTX
Mocking
PPTX
Vert.x vs akka
PPTX
How we sleep well at night using Hystrix at Finn.no
PDF
Microservice Architecture
PDF
Microservices vs. The First Law of Distributed Objects - GOTO Nights Chicago ...
Circuit breakers for Java: Failsafe, Javaslang-Circuitbreaker, Hystrix and Ve...
Building ‘Bootiful’ microservices cloud
Linux principles and philosophy
Linux principles and philosophy
Unix philosophy and principles
Mobile Knife Fighting at JSConf US
Eduards Sizovs - Micro Service Architecture
Vert.X: Microservices Were Never So Easy (Clement Escoffier)
Mocking Test - QA Ninja Conf 2016
Bringing the Unix Philosophy to Big Data
Vert.x for Microservices Architecture
Writing Well-Behaved Unix Utilities
To Microservices and Beyond
Mockito vs JMockit, battle of the mocking frameworks
Using Hystrix to Build Resilient Distributed Systems
Mocking
Vert.x vs akka
How we sleep well at night using Hystrix at Finn.no
Microservice Architecture
Microservices vs. The First Law of Distributed Objects - GOTO Nights Chicago ...
Ad

Similar to Unix Philosophy (20)

PDF
Dependencies Managers in C/C++. Using stdcpp 2014
PPTX
R sharing 101
PDF
Accessing File-Specific Attributes on Steroids - EuroPython 2008
PDF
Why favour Icinga over Nagios @ FrOSCon 2015
PDF
IBM Index 2018 Conference Workshop: Modernizing Traditional Java App's with D...
PDF
Terraform in deployment pipeline
PDF
Drupal Camp Brighton 2015: Ansible Drupal Medicine show
PPTX
Docker Security workshop slides
PPT
Autoconf&Automake
PDF
"I have a framework idea" - Repeat less, share more.
PDF
SPACK: A Package Manager for Supercomputers, Linux, and MacOS
PDF
Be a better developer with Docker (revision 3)
PDF
TYPO3 Extension development using new Extbase framework
PDF
All in one
PDF
Adrian Mouat - Docker Tips and Tricks
PDF
Scaling Servers and Storage for Film Assets
PDF
'DOCKER' & CLOUD: ENABLERS For DEVOPS
PDF
Docker and Cloud - Enables for DevOps - by ACA-IT
PDF
Incrementalism: An Industrial Strategy For Adopting Modern Automation
PPTX
Writing plugins for Nagios and Opsview - CAPSiDE Tech Talks
Dependencies Managers in C/C++. Using stdcpp 2014
R sharing 101
Accessing File-Specific Attributes on Steroids - EuroPython 2008
Why favour Icinga over Nagios @ FrOSCon 2015
IBM Index 2018 Conference Workshop: Modernizing Traditional Java App's with D...
Terraform in deployment pipeline
Drupal Camp Brighton 2015: Ansible Drupal Medicine show
Docker Security workshop slides
Autoconf&Automake
"I have a framework idea" - Repeat less, share more.
SPACK: A Package Manager for Supercomputers, Linux, and MacOS
Be a better developer with Docker (revision 3)
TYPO3 Extension development using new Extbase framework
All in one
Adrian Mouat - Docker Tips and Tricks
Scaling Servers and Storage for Film Assets
'DOCKER' & CLOUD: ENABLERS For DEVOPS
Docker and Cloud - Enables for DevOps - by ACA-IT
Incrementalism: An Industrial Strategy For Adopting Modern Automation
Writing plugins for Nagios and Opsview - CAPSiDE Tech Talks
Ad

Unix Philosophy

  • 2. •Small is beautiful. •Make each program do one thing well. •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 shells scripts to increase leverage and portability. •Avoid captive user interfaces. •Make every program a filter.
  • 3. Small is beautiful. Small things can be combined in many ways to create useful large things. Leader/00-23 *****nam##22*****#a#4500 001 <control number> 003 <control number identifier> 005 19920331092212.7 007/00-01 ta 008/00-39 820305s1991####nyu###########001#0#eng## 020 ##$a0845348116 :$c$29.95 (£19.50 U.K.) 020 ##$a0845348205 (pbk.) 040 ##$a[organization code]$c[organization code] 050 14$aPN1992.8.S4$bT47 1991 082 04$a791.45/75/0973$219 100 1#$aTerrace, Vincent,$d1948- 245 10$aFifty years of television :$ba guide to series and pilots, 1937-1988 /$cVincent Terrace. 246 1#$a50 years of television 260 ##$aNew York :$bCornwall Books,$cc1991. 300 ##$a864 p. ;$c24 cm. 500 ##$aIncludes index. 650 #0$aTelevision pilot programs$zUnited States$vCatalogs. 650 #0$aTelevision serials$zUnited States$vCatalogs.
  • 4. Make each program do one thing well.
  • 5. Build a prototype as soon as possible.
  • 7. Store numerical data in flat ASCII files.
  • 8. Use software leverage to your advantage. Running Symphony on a virtual server Making electronic resources count using LDAP Advanced UNIX tips/tricks Customizing E-Library 3.3 and beyond Symphony Reports for a lean, mean collection EDI/9XX Implementing Credit Card Payments Enterprise unraveled Integrating Web 2.0 applications with the OPAC Implementing SchoolRooms Shortcuts for inventorying your collection Cataloging serials without the serials module Creating custom reports using API Using Director's Station UNIX for the Uninitiated Patron Notification via Text Messaging Using Selection Lists with Acquisitions Tips, tricks, and troubleshooting for API Authority Control Implementing Portfolio Web Reporter in Practice How Other Libraries Have Implemented Bookmyne and/or Webservices
  • 9. Use shell scripts to increase leverage and portability. $ vi first # # My first shell script # clear echo "Knowledge is Power" #!/bin/bash # Backs up all files in current directory modified within last 24 hours #+ in a "tarball" (tarred and gzipped file). BACKUPFILE=backup-$(date +%m-%d-%Y) # Embeds date in backup filename. # Thanks, Joshua Tschida, for the idea. archive=${1:-$BACKUPFILE} # If no backup-archive filename specified on command-line, #+ it will default to "backup-MM-DD-YYYY.tar.gz." tar cvf - `find . -mtime -1 -type f -print` > $archive.tar gzip $archive.tar echo "Directory $PWD backed up in archive file "$archive.tar.gz"." # Stephane Chazelas points out that the above code will fail #+ if there are too many files found #+ or if any filenames contain blank characters. # He suggests the following alternatives: # ------------------------------------------------------------------- # find . -mtime -1 -type f -print0 | xargs -0 tar rvf "$archive.tar" # using the GNU version of "find". # find . -mtime -1 -type f -exec tar rvf "$archive.tar" '{}' ; # portable to other UNIX flavors, but much slower. # ------------------------------------------------------------------- exit 0
  • 10. Avoid captive user interfaces.
  • 11. Make every program a filter. Charge User DB Item DB Charge DB
  • 12. Lissa Potter Administrative Office of the U.S. Courts lissa_potter@ao.uscourts.gov

Editor's Notes

  • #4: Graphic: LOC
  • #5: Make each program do one thing well. (graphic: Washington University in St. Louis)
  • #6: Graphic: Round Rock Public Library, Texas
  • #7: Picture: LOC
  • #8: Graphic: LOC
  • #9: COSUGI 2012 call for presentations partial list.