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