docs/unix-phil

changeset 56:7678e37ceffc

added presentation slides
author meillo@marmaro.de
date Thu, 15 Apr 2010 23:04:07 +0200
parents acd63ecc3606
children 840cbc667009
files makefile unix-phil-slides2.ms
diffstat 2 files changed, 198 insertions(+), 1 deletions(-) [+]
line diff
     1.1 --- a/makefile	Thu Apr 15 23:03:39 2010 +0200
     1.2 +++ b/makefile	Thu Apr 15 23:04:07 2010 +0200
     1.3 @@ -1,4 +1,4 @@
     1.4 -all: unix-phil.ps unix-phil.txt unix-phil-slides.ps
     1.5 +all: unix-phil.ps unix-phil.txt unix-phil-slides.ps unix-phil-slides2.ps
     1.6  
     1.7  unix-phil.ps: unix-phil.ms bib
     1.8  	. hl ; sed -n '/./p' $< | refer -e -sLAD -P -p bib | troff -ms | dpost >$@
     1.9 @@ -8,3 +8,6 @@
    1.10  
    1.11  unix-phil-slides.ps: unix-phil-slides.ms
    1.12  	. hl ; sed -n '/./p' $< | troff -ms slides - | dpost | insline 1 "%%BoundingBox: 0 0 600 450" >$@
    1.13 +
    1.14 +unix-phil-slides2.ps: unix-phil-slides2.ms
    1.15 +	. hl ; sed -n '/./p' $< | troff -ms slides - | dpost | insline 1 "%%BoundingBox: 0 0 600 450" >$@
     2.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     2.2 +++ b/unix-phil-slides2.ms	Thu Apr 15 23:04:07 2010 +0200
     2.3 @@ -0,0 +1,194 @@
     2.4 +.ps 11
     2.5 +.ce
     2.6 +Seminar ``Software Analysis''
     2.7 +.TL
     2.8 +\fR\s-6Why\s0\fP
     2.9 +.br
    2.10 +the Unix Philosophy
    2.11 +.br
    2.12 +.vs -4
    2.13 +\fR\s-6still matters\s0\fP
    2.14 +.AU
    2.15 +.ft R
    2.16 +.sp .5i
    2.17 +.sp .5i
    2.18 +.ps 11
    2.19 +markus schnalke <meillo@marmaro.de>
    2.20 +
    2.21 +
    2.22 +.S "Software design
    2.23 +.rs
    2.24 +.sp
    2.25 +.LP
    2.26 +\&... is about quality
    2.27 +.I
    2.28 +Good design \(-> good quality
    2.29 +.I
    2.30 +Bad design \(-> problems
    2.31 +.sp
    2.32 +.LP
    2.33 +\&... and consistency
    2.34 +.LP
    2.35 +.sp 2
    2.36 +Unix Phil = guidelines for good design
    2.37 +
    2.38 +
    2.39 +
    2.40 +.S "The Unix Phil *itself*
    2.41 +.rs
    2.42 +.sp
    2.43 +.LP
    2.44 +Wikipedia:
    2.45 +.ce 99
    2.46 +.sp
    2.47 +The Unix philosophy is
    2.48 +a set of cultural norms and philosophical approaches
    2.49 +to developing software
    2.50 +based on the experience
    2.51 +of leading developers of the Unix operating system.
    2.52 +.sp
    2.53 +
    2.54 +
    2.55 +.S "Unix Phil and Software dev processes
    2.56 +.rs
    2.57 +.sp
    2.58 +.LP
    2.59 +The Unix Phil:
    2.60 +.I
    2.61 +mostly *what*
    2.62 +
    2.63 +.sp
    2.64 +.LP
    2.65 +Software dev processes:
    2.66 +.I
    2.67 +mostly *how*
    2.68 +.sp 2
    2.69 +.LP
    2.70 +Extreme Programming and the Unix Phil
    2.71 +are good friends
    2.72 +
    2.73 +
    2.74 +
    2.75 +.S "The Unix Phil by Doug McIlroy (1978)
    2.76 +.rs
    2.77 +.sp
    2.78 +.LP
    2.79 +This is the Unix philosophy:
    2.80 +.I
    2.81 +Write programs that do one thing and do it well.
    2.82 +.I
    2.83 +Write programs to work together.
    2.84 +.I
    2.85 +Write programs to handle text streams, because that is a universal interface.
    2.86 +
    2.87 +
    2.88 +.S "The Unix Phil by Mike Gancarz (1995)
    2.89 +.rs
    2.90 +.sp .2v
    2.91 +.I
    2.92 +Small is beautiful.
    2.93 +.I
    2.94 +Make each program do one thing well.
    2.95 +.I
    2.96 +Build a prototype as soon as possible.
    2.97 +.I
    2.98 +Choose portability over efficiency.
    2.99 +.I
   2.100 +Store data in flat text files.
   2.101 +.I
   2.102 +Use software leverage to your advantage.
   2.103 +.I
   2.104 +Use shell scripts to increase leverage and portability.
   2.105 +.I
   2.106 +Avoid captive user interfaces.
   2.107 +.I
   2.108 +Make every program a filter.
   2.109 +.sp 1
   2.110 +.LP
   2.111 +Plus ten lesser tenets
   2.112 +
   2.113 +
   2.114 +
   2.115 +
   2.116 +.S "Case studies
   2.117 +.LP
   2.118 +.B "MH / nmh
   2.119 +.LP
   2.120 +The only MUA that is a toolchest
   2.121 +.LP
   2.122 +Makes use of the powerful shell
   2.123 +.LP
   2.124 +Great example of applied Unix Phil
   2.125 +
   2.126 +.sp 1
   2.127 +.LP
   2.128 +.B uzbl
   2.129 +.LP
   2.130 +A web browser that adheres to the Unix Phil
   2.131 +.LP
   2.132 +Central question:
   2.133 +.br
   2.134 +What is the one thing a web browser should do well?
   2.135 +.LP
   2.136 +Makes very visible use of software leverage
   2.137 +
   2.138 +
   2.139 +
   2.140 +
   2.141 +
   2.142 +.S "Why?
   2.143 +.rs
   2.144 +.sp
   2.145 +.LP
   2.146 +.ce
   2.147 +We don't need just any solutions, we need good ones
   2.148 +
   2.149 +.sp 3
   2.150 +.LP
   2.151 +.ce
   2.152 +Avoid \fBcomplexity\fP first and foremost!
   2.153 +.LP
   2.154 +.ce
   2.155 +Exploit software \fBleverage\fP!
   2.156 +
   2.157 +
   2.158 +.S "Further reading
   2.159 +.LP
   2.160 +The paper to the slides
   2.161 +.sp
   2.162 +.LP
   2.163 +My talk on this topic at the ChaosSeminar of CCC Ulm
   2.164 +.CW \s-2http://ulm.ccc.de/ChaosSeminar/2010/03_UnixPhil\s0
   2.165 +.sp
   2.166 +.LP
   2.167 +Mike Gancarz' book
   2.168 +\fI``The Unix Philosophy''\fP
   2.169 +.sp
   2.170 +.LP
   2.171 +\fI``cat -v Considered Harmful''\fP
   2.172 +by Pike and Kernighan
   2.173 +.CW \s-2http://harmful.cat-v.org/cat-v/\s+2
   2.174 +
   2.175 +
   2.176 +.S Colophon
   2.177 +.LP
   2.178 +The paper and slides were prepared with:
   2.179 +.br
   2.180 +.CW "vi sed awk refer troff dpost spell make hg
   2.181 +
   2.182 +.sp
   2.183 +.LP
   2.184 +Most of the tools are from
   2.185 +.CW \s-2http://heirloom.sf.net\s0
   2.186 +.LP
   2.187 +The `slides' macros are based on
   2.188 +.br
   2.189 +.CW \s-2http://repo.cat-v.org/troff-slider/\s0
   2.190 +.sp 2
   2.191 +
   2.192 +.LP
   2.193 +The paper, the slides, and the complete sources are available on my website
   2.194 +.CW \s-2http://marmaro.de/docs\s+2
   2.195 +
   2.196 +.sp 3
   2.197 +2010-04-16