docs/unix-phil

annotate unix-phil-slides2.ms @ 57:840cbc667009

applied corrections by Andrew Antle
author meillo@marmaro.de
date Fri, 16 Apr 2010 11:48:38 +0200
parents
children 38261031d742
rev   line source
meillo@56 1 .ps 11
meillo@56 2 .ce
meillo@56 3 Seminar ``Software Analysis''
meillo@56 4 .TL
meillo@56 5 \fR\s-6Why\s0\fP
meillo@56 6 .br
meillo@56 7 the Unix Philosophy
meillo@56 8 .br
meillo@56 9 .vs -4
meillo@56 10 \fR\s-6still matters\s0\fP
meillo@56 11 .AU
meillo@56 12 .ft R
meillo@56 13 .sp .5i
meillo@56 14 .sp .5i
meillo@56 15 .ps 11
meillo@56 16 markus schnalke <meillo@marmaro.de>
meillo@56 17
meillo@56 18
meillo@56 19 .S "Software design
meillo@56 20 .rs
meillo@56 21 .sp
meillo@56 22 .LP
meillo@56 23 \&... is about quality
meillo@56 24 .I
meillo@56 25 Good design \(-> good quality
meillo@56 26 .I
meillo@56 27 Bad design \(-> problems
meillo@56 28 .sp
meillo@56 29 .LP
meillo@56 30 \&... and consistency
meillo@56 31 .LP
meillo@56 32 .sp 2
meillo@56 33 Unix Phil = guidelines for good design
meillo@56 34
meillo@56 35
meillo@56 36
meillo@56 37 .S "The Unix Phil *itself*
meillo@56 38 .rs
meillo@56 39 .sp
meillo@56 40 .LP
meillo@56 41 Wikipedia:
meillo@56 42 .ce 99
meillo@56 43 .sp
meillo@56 44 The Unix philosophy is
meillo@56 45 a set of cultural norms and philosophical approaches
meillo@56 46 to developing software
meillo@56 47 based on the experience
meillo@56 48 of leading developers of the Unix operating system.
meillo@56 49 .sp
meillo@56 50
meillo@56 51
meillo@56 52 .S "Unix Phil and Software dev processes
meillo@56 53 .rs
meillo@56 54 .sp
meillo@56 55 .LP
meillo@56 56 The Unix Phil:
meillo@56 57 .I
meillo@56 58 mostly *what*
meillo@56 59
meillo@56 60 .sp
meillo@56 61 .LP
meillo@56 62 Software dev processes:
meillo@56 63 .I
meillo@56 64 mostly *how*
meillo@56 65 .sp 2
meillo@56 66 .LP
meillo@56 67 Extreme Programming and the Unix Phil
meillo@56 68 are good friends
meillo@56 69
meillo@56 70
meillo@56 71
meillo@56 72 .S "The Unix Phil by Doug McIlroy (1978)
meillo@56 73 .rs
meillo@56 74 .sp
meillo@56 75 .LP
meillo@56 76 This is the Unix philosophy:
meillo@56 77 .I
meillo@56 78 Write programs that do one thing and do it well.
meillo@56 79 .I
meillo@56 80 Write programs to work together.
meillo@56 81 .I
meillo@56 82 Write programs to handle text streams, because that is a universal interface.
meillo@56 83
meillo@56 84
meillo@56 85 .S "The Unix Phil by Mike Gancarz (1995)
meillo@56 86 .rs
meillo@56 87 .sp .2v
meillo@56 88 .I
meillo@56 89 Small is beautiful.
meillo@56 90 .I
meillo@56 91 Make each program do one thing well.
meillo@56 92 .I
meillo@56 93 Build a prototype as soon as possible.
meillo@56 94 .I
meillo@56 95 Choose portability over efficiency.
meillo@56 96 .I
meillo@56 97 Store data in flat text files.
meillo@56 98 .I
meillo@56 99 Use software leverage to your advantage.
meillo@56 100 .I
meillo@56 101 Use shell scripts to increase leverage and portability.
meillo@56 102 .I
meillo@56 103 Avoid captive user interfaces.
meillo@56 104 .I
meillo@56 105 Make every program a filter.
meillo@56 106 .sp 1
meillo@56 107 .LP
meillo@56 108 Plus ten lesser tenets
meillo@56 109
meillo@56 110
meillo@56 111
meillo@56 112
meillo@56 113 .S "Case studies
meillo@56 114 .LP
meillo@56 115 .B "MH / nmh
meillo@56 116 .LP
meillo@56 117 The only MUA that is a toolchest
meillo@56 118 .LP
meillo@56 119 Makes use of the powerful shell
meillo@56 120 .LP
meillo@56 121 Great example of applied Unix Phil
meillo@56 122
meillo@56 123 .sp 1
meillo@56 124 .LP
meillo@56 125 .B uzbl
meillo@56 126 .LP
meillo@56 127 A web browser that adheres to the Unix Phil
meillo@56 128 .LP
meillo@56 129 Central question:
meillo@56 130 .br
meillo@56 131 What is the one thing a web browser should do well?
meillo@56 132 .LP
meillo@56 133 Makes very visible use of software leverage
meillo@56 134
meillo@56 135
meillo@56 136
meillo@56 137
meillo@56 138
meillo@56 139 .S "Why?
meillo@56 140 .rs
meillo@56 141 .sp
meillo@56 142 .LP
meillo@56 143 .ce
meillo@56 144 We don't need just any solutions, we need good ones
meillo@56 145
meillo@56 146 .sp 3
meillo@56 147 .LP
meillo@56 148 .ce
meillo@56 149 Avoid \fBcomplexity\fP first and foremost!
meillo@56 150 .LP
meillo@56 151 .ce
meillo@56 152 Exploit software \fBleverage\fP!
meillo@56 153
meillo@56 154
meillo@56 155 .S "Further reading
meillo@56 156 .LP
meillo@56 157 The paper to the slides
meillo@56 158 .sp
meillo@56 159 .LP
meillo@56 160 My talk on this topic at the ChaosSeminar of CCC Ulm
meillo@56 161 .CW \s-2http://ulm.ccc.de/ChaosSeminar/2010/03_UnixPhil\s0
meillo@56 162 .sp
meillo@56 163 .LP
meillo@56 164 Mike Gancarz' book
meillo@56 165 \fI``The Unix Philosophy''\fP
meillo@56 166 .sp
meillo@56 167 .LP
meillo@56 168 \fI``cat -v Considered Harmful''\fP
meillo@56 169 by Pike and Kernighan
meillo@56 170 .CW \s-2http://harmful.cat-v.org/cat-v/\s+2
meillo@56 171
meillo@56 172
meillo@56 173 .S Colophon
meillo@56 174 .LP
meillo@56 175 The paper and slides were prepared with:
meillo@56 176 .br
meillo@56 177 .CW "vi sed awk refer troff dpost spell make hg
meillo@56 178
meillo@56 179 .sp
meillo@56 180 .LP
meillo@56 181 Most of the tools are from
meillo@56 182 .CW \s-2http://heirloom.sf.net\s0
meillo@56 183 .LP
meillo@56 184 The `slides' macros are based on
meillo@56 185 .br
meillo@56 186 .CW \s-2http://repo.cat-v.org/troff-slider/\s0
meillo@56 187 .sp 2
meillo@56 188
meillo@56 189 .LP
meillo@56 190 The paper, the slides, and the complete sources are available on my website
meillo@56 191 .CW \s-2http://marmaro.de/docs\s+2
meillo@56 192
meillo@56 193 .sp 3
meillo@56 194 2010-04-16