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 |