annotate unix-phil-slides2.ms @ 62:ad7c253bdced default tip

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