view unix-phil-slides2.ms @ 56:7678e37ceffc

added presentation slides
author meillo@marmaro.de
date Thu, 15 Apr 2010 23:04:07 +0200
parents
children 38261031d742
line wrap: on
line source

.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 <meillo@marmaro.de>


.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