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