docs/unix-phil

diff 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 diff
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/unix-phil-slides2.ms	Thu Apr 15 23:04:07 2010 +0200
     1.3 @@ -0,0 +1,194 @@
     1.4 +.ps 11
     1.5 +.ce
     1.6 +Seminar ``Software Analysis''
     1.7 +.TL
     1.8 +\fR\s-6Why\s0\fP
     1.9 +.br
    1.10 +the Unix Philosophy
    1.11 +.br
    1.12 +.vs -4
    1.13 +\fR\s-6still matters\s0\fP
    1.14 +.AU
    1.15 +.ft R
    1.16 +.sp .5i
    1.17 +.sp .5i
    1.18 +.ps 11
    1.19 +markus schnalke <meillo@marmaro.de>
    1.20 +
    1.21 +
    1.22 +.S "Software design
    1.23 +.rs
    1.24 +.sp
    1.25 +.LP
    1.26 +\&... is about quality
    1.27 +.I
    1.28 +Good design \(-> good quality
    1.29 +.I
    1.30 +Bad design \(-> problems
    1.31 +.sp
    1.32 +.LP
    1.33 +\&... and consistency
    1.34 +.LP
    1.35 +.sp 2
    1.36 +Unix Phil = guidelines for good design
    1.37 +
    1.38 +
    1.39 +
    1.40 +.S "The Unix Phil *itself*
    1.41 +.rs
    1.42 +.sp
    1.43 +.LP
    1.44 +Wikipedia:
    1.45 +.ce 99
    1.46 +.sp
    1.47 +The Unix philosophy is
    1.48 +a set of cultural norms and philosophical approaches
    1.49 +to developing software
    1.50 +based on the experience
    1.51 +of leading developers of the Unix operating system.
    1.52 +.sp
    1.53 +
    1.54 +
    1.55 +.S "Unix Phil and Software dev processes
    1.56 +.rs
    1.57 +.sp
    1.58 +.LP
    1.59 +The Unix Phil:
    1.60 +.I
    1.61 +mostly *what*
    1.62 +
    1.63 +.sp
    1.64 +.LP
    1.65 +Software dev processes:
    1.66 +.I
    1.67 +mostly *how*
    1.68 +.sp 2
    1.69 +.LP
    1.70 +Extreme Programming and the Unix Phil
    1.71 +are good friends
    1.72 +
    1.73 +
    1.74 +
    1.75 +.S "The Unix Phil by Doug McIlroy (1978)
    1.76 +.rs
    1.77 +.sp
    1.78 +.LP
    1.79 +This is the Unix philosophy:
    1.80 +.I
    1.81 +Write programs that do one thing and do it well.
    1.82 +.I
    1.83 +Write programs to work together.
    1.84 +.I
    1.85 +Write programs to handle text streams, because that is a universal interface.
    1.86 +
    1.87 +
    1.88 +.S "The Unix Phil by Mike Gancarz (1995)
    1.89 +.rs
    1.90 +.sp .2v
    1.91 +.I
    1.92 +Small is beautiful.
    1.93 +.I
    1.94 +Make each program do one thing well.
    1.95 +.I
    1.96 +Build a prototype as soon as possible.
    1.97 +.I
    1.98 +Choose portability over efficiency.
    1.99 +.I
   1.100 +Store data in flat text files.
   1.101 +.I
   1.102 +Use software leverage to your advantage.
   1.103 +.I
   1.104 +Use shell scripts to increase leverage and portability.
   1.105 +.I
   1.106 +Avoid captive user interfaces.
   1.107 +.I
   1.108 +Make every program a filter.
   1.109 +.sp 1
   1.110 +.LP
   1.111 +Plus ten lesser tenets
   1.112 +
   1.113 +
   1.114 +
   1.115 +
   1.116 +.S "Case studies
   1.117 +.LP
   1.118 +.B "MH / nmh
   1.119 +.LP
   1.120 +The only MUA that is a toolchest
   1.121 +.LP
   1.122 +Makes use of the powerful shell
   1.123 +.LP
   1.124 +Great example of applied Unix Phil
   1.125 +
   1.126 +.sp 1
   1.127 +.LP
   1.128 +.B uzbl
   1.129 +.LP
   1.130 +A web browser that adheres to the Unix Phil
   1.131 +.LP
   1.132 +Central question:
   1.133 +.br
   1.134 +What is the one thing a web browser should do well?
   1.135 +.LP
   1.136 +Makes very visible use of software leverage
   1.137 +
   1.138 +
   1.139 +
   1.140 +
   1.141 +
   1.142 +.S "Why?
   1.143 +.rs
   1.144 +.sp
   1.145 +.LP
   1.146 +.ce
   1.147 +We don't need just any solutions, we need good ones
   1.148 +
   1.149 +.sp 3
   1.150 +.LP
   1.151 +.ce
   1.152 +Avoid \fBcomplexity\fP first and foremost!
   1.153 +.LP
   1.154 +.ce
   1.155 +Exploit software \fBleverage\fP!
   1.156 +
   1.157 +
   1.158 +.S "Further reading
   1.159 +.LP
   1.160 +The paper to the slides
   1.161 +.sp
   1.162 +.LP
   1.163 +My talk on this topic at the ChaosSeminar of CCC Ulm
   1.164 +.CW \s-2http://ulm.ccc.de/ChaosSeminar/2010/03_UnixPhil\s0
   1.165 +.sp
   1.166 +.LP
   1.167 +Mike Gancarz' book
   1.168 +\fI``The Unix Philosophy''\fP
   1.169 +.sp
   1.170 +.LP
   1.171 +\fI``cat -v Considered Harmful''\fP
   1.172 +by Pike and Kernighan
   1.173 +.CW \s-2http://harmful.cat-v.org/cat-v/\s+2
   1.174 +
   1.175 +
   1.176 +.S Colophon
   1.177 +.LP
   1.178 +The paper and slides were prepared with:
   1.179 +.br
   1.180 +.CW "vi sed awk refer troff dpost spell make hg
   1.181 +
   1.182 +.sp
   1.183 +.LP
   1.184 +Most of the tools are from
   1.185 +.CW \s-2http://heirloom.sf.net\s0
   1.186 +.LP
   1.187 +The `slides' macros are based on
   1.188 +.br
   1.189 +.CW \s-2http://repo.cat-v.org/troff-slider/\s0
   1.190 +.sp 2
   1.191 +
   1.192 +.LP
   1.193 +The paper, the slides, and the complete sources are available on my website
   1.194 +.CW \s-2http://marmaro.de/docs\s+2
   1.195 +
   1.196 +.sp 3
   1.197 +2010-04-16