# HG changeset patch # User meillo@marmaro.de # Date 1271365447 -7200 # Node ID 7678e37ceffcaa41bd3885df1f412977bb59218a # Parent acd63ecc36064baa5ffc5545bf3651018f7ff3fa added presentation slides diff -r acd63ecc3606 -r 7678e37ceffc makefile --- a/makefile Thu Apr 15 23:03:39 2010 +0200 +++ b/makefile Thu Apr 15 23:04:07 2010 +0200 @@ -1,4 +1,4 @@ -all: unix-phil.ps unix-phil.txt unix-phil-slides.ps +all: unix-phil.ps unix-phil.txt unix-phil-slides.ps unix-phil-slides2.ps unix-phil.ps: unix-phil.ms bib . hl ; sed -n '/./p' $< | refer -e -sLAD -P -p bib | troff -ms | dpost >$@ @@ -8,3 +8,6 @@ unix-phil-slides.ps: unix-phil-slides.ms . hl ; sed -n '/./p' $< | troff -ms slides - | dpost | insline 1 "%%BoundingBox: 0 0 600 450" >$@ + +unix-phil-slides2.ps: unix-phil-slides2.ms + . hl ; sed -n '/./p' $< | troff -ms slides - | dpost | insline 1 "%%BoundingBox: 0 0 600 450" >$@ diff -r acd63ecc3606 -r 7678e37ceffc unix-phil-slides2.ms --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/unix-phil-slides2.ms Thu Apr 15 23:04:07 2010 +0200 @@ -0,0 +1,194 @@ +.ps 11 +.ce +Seminar ``Software Analysis'' +.TL +\fR\s-6Why\s0\fP +.br +the Unix Philosophy +.br +.vs -4 +\fR\s-6still matters\s0\fP +.AU +.ft R +.sp .5i +.sp .5i +.ps 11 +markus schnalke + + +.S "Software design +.rs +.sp +.LP +\&... is about quality +.I +Good design \(-> good quality +.I +Bad design \(-> problems +.sp +.LP +\&... and consistency +.LP +.sp 2 +Unix Phil = guidelines for good design + + + +.S "The Unix Phil *itself* +.rs +.sp +.LP +Wikipedia: +.ce 99 +.sp +The Unix philosophy is +a set of cultural norms and philosophical approaches +to developing software +based on the experience +of leading developers of the Unix operating system. +.sp + + +.S "Unix Phil and Software dev processes +.rs +.sp +.LP +The Unix Phil: +.I +mostly *what* + +.sp +.LP +Software dev processes: +.I +mostly *how* +.sp 2 +.LP +Extreme Programming and the Unix Phil +are good friends + + + +.S "The Unix Phil by Doug McIlroy (1978) +.rs +.sp +.LP +This is the Unix philosophy: +.I +Write programs that do one thing and do it well. +.I +Write programs to work together. +.I +Write programs to handle text streams, because that is a universal interface. + + +.S "The Unix Phil by Mike Gancarz (1995) +.rs +.sp .2v +.I +Small is beautiful. +.I +Make each program do one thing well. +.I +Build a prototype as soon as possible. +.I +Choose portability over efficiency. +.I +Store data in flat text files. +.I +Use software leverage to your advantage. +.I +Use shell scripts to increase leverage and portability. +.I +Avoid captive user interfaces. +.I +Make every program a filter. +.sp 1 +.LP +Plus ten lesser tenets + + + + +.S "Case studies +.LP +.B "MH / nmh +.LP +The only MUA that is a toolchest +.LP +Makes use of the powerful shell +.LP +Great example of applied Unix Phil + +.sp 1 +.LP +.B uzbl +.LP +A web browser that adheres to the Unix Phil +.LP +Central question: +.br +What is the one thing a web browser should do well? +.LP +Makes very visible use of software leverage + + + + + +.S "Why? +.rs +.sp +.LP +.ce +We don't need just any solutions, we need good ones + +.sp 3 +.LP +.ce +Avoid \fBcomplexity\fP first and foremost! +.LP +.ce +Exploit software \fBleverage\fP! + + +.S "Further reading +.LP +The paper to the slides +.sp +.LP +My talk on this topic at the ChaosSeminar of CCC Ulm +.CW \s-2http://ulm.ccc.de/ChaosSeminar/2010/03_UnixPhil\s0 +.sp +.LP +Mike Gancarz' book +\fI``The Unix Philosophy''\fP +.sp +.LP +\fI``cat -v Considered Harmful''\fP +by Pike and Kernighan +.CW \s-2http://harmful.cat-v.org/cat-v/\s+2 + + +.S Colophon +.LP +The paper and slides were prepared with: +.br +.CW "vi sed awk refer troff dpost spell make hg + +.sp +.LP +Most of the tools are from +.CW \s-2http://heirloom.sf.net\s0 +.LP +The `slides' macros are based on +.br +.CW \s-2http://repo.cat-v.org/troff-slider/\s0 +.sp 2 + +.LP +The paper, the slides, and the complete sources are available on my website +.CW \s-2http://marmaro.de/docs\s+2 + +.sp 3 +2010-04-16