annotate unix-phil-slides.ms @ 27:e8adc3571e8c

rework
author meillo@marmaro.de
date Mon, 08 Mar 2010 12:58:58 +0100
parents b368ff5cdb5f
children faff9ea75591
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
24
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
1 .TL
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
2 \fR\s-6Why\s0\fP
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
3 .br
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
4 the Unix Philosophy
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
5 .br
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
6 .vs -4
26
b368ff5cdb5f added literature; some minor rework
meillo@marmaro.de
parents: 25
diff changeset
7 \fR\s-6still matters\s0\fP
24
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
8 .AU
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
9 .ft R
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
10 .sp 1.2i
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
11 .ps 11
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
12 markus schnalke <meillo@marmaro.de>
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
13
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
14
27
meillo@marmaro.de
parents: 26
diff changeset
15 .S "Goals of this talk
24
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
16 .I
27
meillo@marmaro.de
parents: 26
diff changeset
17 Introduce the Unix Phil
24
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
18 .I
27
meillo@marmaro.de
parents: 26
diff changeset
19 Show that most modern software is crap
24
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
20 .I
27
meillo@marmaro.de
parents: 26
diff changeset
21 Explain why the Unix Phil leads to better software
24
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
22 .I
27
meillo@marmaro.de
parents: 26
diff changeset
23 Convince you that good software is of matter
24
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
24 .sp 2
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
25 .I
27
meillo@marmaro.de
parents: 26
diff changeset
26 Make you think
24
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
27
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
28
27
meillo@marmaro.de
parents: 26
diff changeset
29 .S "Roadmap
24
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
30 .I
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
31 Historical background
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
32 .I
27
meillo@marmaro.de
parents: 26
diff changeset
33 What is the Unix Phil?
24
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
34 .I
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
35 The Unix Phil after Gancarz
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
36 .I
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
37 Discussion on real world examples
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
38 .I
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
39 The Unix Phil is more than software dev guidelines
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
40
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
41
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
42
27
meillo@marmaro.de
parents: 26
diff changeset
43 .S "How I learned about it
24
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
44 .LP
27
meillo@marmaro.de
parents: 26
diff changeset
45 First contact through dwm (suckless project)
24
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
46 .LP
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
47 ``cat -v Considered Harmful''
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
48 .LP
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
49 ``The Unix and the Echo''
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
50 .LP
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
51 ``The Unix Programming Environment''
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
52 .sp 1
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
53 .LP
27
meillo@marmaro.de
parents: 26
diff changeset
54 Better understanding through digging in the past
24
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
55
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
56
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
57
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
58
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
59
27
meillo@marmaro.de
parents: 26
diff changeset
60 .P "Historical background
24
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
61
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
62
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
63
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
64
27
meillo@marmaro.de
parents: 26
diff changeset
65 .S "Historical background
meillo@marmaro.de
parents: 26
diff changeset
66 .LP
meillo@marmaro.de
parents: 26
diff changeset
67 The late 60s and early 70s
meillo@marmaro.de
parents: 26
diff changeset
68 .LP
meillo@marmaro.de
parents: 26
diff changeset
69 Operating systems are complex
meillo@marmaro.de
parents: 26
diff changeset
70 .LP
24
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
71 Brooks' ``The Mythical Man-Month''
27
meillo@marmaro.de
parents: 26
diff changeset
72 .LP
meillo@marmaro.de
parents: 26
diff changeset
73 MULTICS had just failed
meillo@marmaro.de
parents: 26
diff changeset
74 .LP
meillo@marmaro.de
parents: 26
diff changeset
75 A lot of different hardware
meillo@marmaro.de
parents: 26
diff changeset
76 .LP
meillo@marmaro.de
parents: 26
diff changeset
77 Limited computing power
meillo@marmaro.de
parents: 26
diff changeset
78 .LP
meillo@marmaro.de
parents: 26
diff changeset
79 Textual input and output (line printers)
24
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
80
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
81
27
meillo@marmaro.de
parents: 26
diff changeset
82 .S "Everything is a file
24
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
83 .LP
27
meillo@marmaro.de
parents: 26
diff changeset
84 Is the(?) basic concept in Unix (and even more in Plan9)
24
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
85 .LP
27
meillo@marmaro.de
parents: 26
diff changeset
86 Made simple operating systems possible
24
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
87 .LP
27
meillo@marmaro.de
parents: 26
diff changeset
88 It is not covered by the Unix Phil
meillo@marmaro.de
parents: 26
diff changeset
89 .br
meillo@marmaro.de
parents: 26
diff changeset
90 The Unix Phil is on a different level
24
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
91 .sp 2
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
92 .LP
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
93 Unix is mainly two things:
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
94 .I
27
meillo@marmaro.de
parents: 26
diff changeset
95 An operating system (system calls)
24
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
96 .I
27
meillo@marmaro.de
parents: 26
diff changeset
97 A toolchest (coreutils)
24
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
98
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
99
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
100
27
meillo@marmaro.de
parents: 26
diff changeset
101 .P "What is the Unix Phil?
24
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
102
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
103
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
104
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
105 .S "What is the Unix Phil *itself*?
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
106 .LP
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
107 ``The Unix philosophy is a set of cultural norms and philosophical
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
108 approaches to developing software based on the experience of
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
109 leading developers of the Unix operating system.''
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
110 (wikipedia)
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
111 .sp 2
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
112 .LP
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
113 How the inventors of Unix write software.
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
114 .LP
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
115 Common things of classic Unix tools.
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
116 .sp 2
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
117 .LP
27
meillo@marmaro.de
parents: 26
diff changeset
118 Difficult to define
24
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
119
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
120
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
121 .S "Unix Phil vs. SW dev processes
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
122 .LP
27
meillo@marmaro.de
parents: 26
diff changeset
123 The Unix Phil
24
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
124 .I
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
125 much: *what* to program
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
126 .I
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
127 few: *how* to program
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
128
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
129 .LP
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
130 Software developments processes:
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
131 .I
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
132 few: *what* to program
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
133 .I
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
134 much: *how* to program
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
135
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
136 .sp 2
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
137 .LP
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
138 Extreme Programming is like the Unix Phil
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
139 but with more *how* than *what*,
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
140 and with formalisms
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
141
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
142
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
143
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
144
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
145
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
146 .S "What is the Unix Phil?
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
147 .I
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
148 Doug McIlroy (1978)
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
149 .I
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
150 Mike Gancarz: ``The Unix Philosophy'' (1994)
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
151 .I
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
152 Eric S. Raymond: ``The Art of Unix Programming'' (2003)
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
153 .sp 2
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
154 .I
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
155 Richard Gabriel: ``Worse is Better'' (1989)
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
156
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
157
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
158 .S "Doug McIlroy
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
159 .LP
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
160 This is the Unix philosophy:
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
161 .I
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
162 Write programs that do one thing and do it well.
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
163 .I
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
164 Write programs to work together.
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
165 .I
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
166 Write programs to handle text streams, because that is a universal interface.
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
167
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
168
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
169 .S "Mike Gancarz: ``The Unix Philosophy''
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
170 .I
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
171 Small is beautiful.
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
172 .I
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
173 Make each program do one thing well.
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
174 .I
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
175 Build a prototype as soon as possible.
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
176 .I
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
177 Choose portability over efficiency.
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
178 .I
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
179 Store data in flat text files.
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
180 .I
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
181 Use software leverage to your advantage.
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
182 .I
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
183 Use shell scripts to increase leverage and portability.
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
184 .I
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
185 Avoid captive user interfaces.
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
186 .I
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
187 Make every program a filter.
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
188 .sp 1
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
189 .LP
27
meillo@marmaro.de
parents: 26
diff changeset
190 Plus ten lesser tenets
24
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
191
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
192
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
193
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
194
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
195 .P "The Unix Phil after Gancarz
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
196
25
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
197
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
198
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
199 .S "Small is beautiful
27
meillo@marmaro.de
parents: 26
diff changeset
200 .LP
meillo@marmaro.de
parents: 26
diff changeset
201 Small software is easier to understand, write, maintain
meillo@marmaro.de
parents: 26
diff changeset
202 .LP
meillo@marmaro.de
parents: 26
diff changeset
203 Less lines of code contain less bugs
meillo@marmaro.de
parents: 26
diff changeset
204 .LP
meillo@marmaro.de
parents: 26
diff changeset
205 Monsters are large
24
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
206
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
207
25
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
208 .S "Make each program do one thing well
27
meillo@marmaro.de
parents: 26
diff changeset
209 .LP
meillo@marmaro.de
parents: 26
diff changeset
210 Programs with many functions are large
meillo@marmaro.de
parents: 26
diff changeset
211 .LP
meillo@marmaro.de
parents: 26
diff changeset
212 One thing is easier to understand
meillo@marmaro.de
parents: 26
diff changeset
213 .LP
meillo@marmaro.de
parents: 26
diff changeset
214 Often straight forward to implement
meillo@marmaro.de
parents: 26
diff changeset
215 .LP
meillo@marmaro.de
parents: 26
diff changeset
216 Reusable
24
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
217
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
218
25
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
219 .S "Build a prototype as soon as possible
27
meillo@marmaro.de
parents: 26
diff changeset
220 .LP
meillo@marmaro.de
parents: 26
diff changeset
221 Shows the quality of the design
meillo@marmaro.de
parents: 26
diff changeset
222 .LP
meillo@marmaro.de
parents: 26
diff changeset
223 Shows the problems of the software
meillo@marmaro.de
parents: 26
diff changeset
224 .LP
meillo@marmaro.de
parents: 26
diff changeset
225 The best way to shape a software
meillo@marmaro.de
parents: 26
diff changeset
226 .LP
meillo@marmaro.de
parents: 26
diff changeset
227 Users find bugs
24
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
228
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
229
25
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
230 .S "Choose portability over efficiency
27
meillo@marmaro.de
parents: 26
diff changeset
231 .LP
meillo@marmaro.de
parents: 26
diff changeset
232 (Originates in a lot of incompatible hardware in history)
meillo@marmaro.de
parents: 26
diff changeset
233 .LP
meillo@marmaro.de
parents: 26
diff changeset
234 Use is most important
meillo@marmaro.de
parents: 26
diff changeset
235 .LP
meillo@marmaro.de
parents: 26
diff changeset
236 Availability
meillo@marmaro.de
parents: 26
diff changeset
237 .LP
meillo@marmaro.de
parents: 26
diff changeset
238 Only needs to be fast enough
24
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
239
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
240
25
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
241 .S "Store data in flat text files
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
242 .LP
27
meillo@marmaro.de
parents: 26
diff changeset
243 Binary data is machine-dependent
24
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
244 .LP
27
meillo@marmaro.de
parents: 26
diff changeset
245 Human readable data is:
25
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
246 .I
27
meillo@marmaro.de
parents: 26
diff changeset
247 As generic as possible
25
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
248 .I
27
meillo@marmaro.de
parents: 26
diff changeset
249 Is very likely supported
25
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
250 .I
27
meillo@marmaro.de
parents: 26
diff changeset
251 Many tools work on it (Unix toolchest)
25
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
252 .I
27
meillo@marmaro.de
parents: 26
diff changeset
253 Directly editable by humans
25
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
254 .LP
27
meillo@marmaro.de
parents: 26
diff changeset
255 Processing needs only to be fast enough
24
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
256
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
257
25
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
258 .S "Use software leverage to your advantage
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
259 .LP
27
meillo@marmaro.de
parents: 26
diff changeset
260 What do we have computers for?
24
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
261 .LP
27
meillo@marmaro.de
parents: 26
diff changeset
262 Make best use of computing power
25
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
263 .LP
27
meillo@marmaro.de
parents: 26
diff changeset
264 Reduce development effort
24
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
265
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
266
25
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
267 .S "Use shell scripts to increase leverage and portability
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
268 .LP
27
meillo@marmaro.de
parents: 26
diff changeset
269 Was very important in history
25
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
270 .LP
27
meillo@marmaro.de
parents: 26
diff changeset
271 High level languages
25
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
272 .LP
27
meillo@marmaro.de
parents: 26
diff changeset
273 Prototyping
24
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
274 .LP
27
meillo@marmaro.de
parents: 26
diff changeset
275 Quick hacks
25
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
276
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
277
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
278 .S "Avoid captive user interfaces
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
279 .LP
27
meillo@marmaro.de
parents: 26
diff changeset
280 Don't assume the user to be human
25
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
281 .LP
27
meillo@marmaro.de
parents: 26
diff changeset
282 Exclude the user whenever possible
25
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
283 .LP
27
meillo@marmaro.de
parents: 26
diff changeset
284 Automate
24
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
285
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
286
25
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
287 .S "Make every program a filter
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
288 .LP
27
meillo@marmaro.de
parents: 26
diff changeset
289 Programs transform data
25
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
290 .LP
27
meillo@marmaro.de
parents: 26
diff changeset
291 Combine programs
meillo@marmaro.de
parents: 26
diff changeset
292 .LP
meillo@marmaro.de
parents: 26
diff changeset
293 Have one common interface
24
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
294
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
295
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
296
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
297 .P "real world examples
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
298
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
299
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
300 .S "find -printf
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
301 .LP
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
302 How to reformat the output of find(1) to have ``FILENAME PATH''
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
303 instead of ``PATH/FILENAME''?
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
304
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
305 .LP
27
meillo@marmaro.de
parents: 26
diff changeset
306 The ``easy'' way:
24
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
307 \f(CWfind /dir -printf "%P %h\en"\fP
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
308
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
309 .LP
27
meillo@marmaro.de
parents: 26
diff changeset
310 The ``good'' way:
24
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
311 .br
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
312 .CW "\s-1find /dir | sed 's,\e(.*\e)/\e(.*\e),\e2 \e1,'
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
313
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
314 .LP
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
315 The difference shows off when one wants, for instance,
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
316 the path to be manipulated further.
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
317
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
318
27
meillo@marmaro.de
parents: 26
diff changeset
319 .S "various
meillo@marmaro.de
parents: 26
diff changeset
320 .LP
meillo@marmaro.de
parents: 26
diff changeset
321 Who uses
meillo@marmaro.de
parents: 26
diff changeset
322 .CW "grep -R
meillo@marmaro.de
parents: 26
diff changeset
323 ?
meillo@marmaro.de
parents: 26
diff changeset
324 .sp 1
meillo@marmaro.de
parents: 26
diff changeset
325 .LP
meillo@marmaro.de
parents: 26
diff changeset
326 .CW "cat -v
meillo@marmaro.de
parents: 26
diff changeset
327
meillo@marmaro.de
parents: 26
diff changeset
328 .sp 1
meillo@marmaro.de
parents: 26
diff changeset
329 .LP
meillo@marmaro.de
parents: 26
diff changeset
330 Pagers are taken for granted
meillo@marmaro.de
parents: 26
diff changeset
331
meillo@marmaro.de
parents: 26
diff changeset
332 .sp 1
meillo@marmaro.de
parents: 26
diff changeset
333 .LP
meillo@marmaro.de
parents: 26
diff changeset
334 What about the readline?
meillo@marmaro.de
parents: 26
diff changeset
335
meillo@marmaro.de
parents: 26
diff changeset
336
meillo@marmaro.de
parents: 26
diff changeset
337
24
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
338 .S "MH / nmh
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
339 .LP
27
meillo@marmaro.de
parents: 26
diff changeset
340 A Mail User Agent (MUA)
25
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
341 .LP
27
meillo@marmaro.de
parents: 26
diff changeset
342 Is a toolchest
25
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
343 .LP
27
meillo@marmaro.de
parents: 26
diff changeset
344 Work with mails like with generic files
25
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
345 .LP
27
meillo@marmaro.de
parents: 26
diff changeset
346 The only(?) MUA that follows the Unix Phil
25
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
347 .LP
27
meillo@marmaro.de
parents: 26
diff changeset
348 Has a very special feeling
24
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
349
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
350
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
351 .S "uzbl
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
352 .LP
27
meillo@marmaro.de
parents: 26
diff changeset
353 A web browser that adheres to the Unix Phil
25
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
354 .LP
27
meillo@marmaro.de
parents: 26
diff changeset
355 A young project (about 1 year)
25
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
356 .LP
27
meillo@marmaro.de
parents: 26
diff changeset
357 Central question:
meillo@marmaro.de
parents: 26
diff changeset
358 .br
meillo@marmaro.de
parents: 26
diff changeset
359 What is the one task a web browser covers?
25
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
360 .LP
27
meillo@marmaro.de
parents: 26
diff changeset
361 Makes very visible use of software leverage
25
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
362 .LP
27
meillo@marmaro.de
parents: 26
diff changeset
363 Suffers hard from our broken web
24
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
364
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
365
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
366
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
367
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
368
27
meillo@marmaro.de
parents: 26
diff changeset
369 .P "Some final thoughts
24
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
370
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
371
27
meillo@marmaro.de
parents: 26
diff changeset
372 .S "Say no!
meillo@marmaro.de
parents: 26
diff changeset
373 .LP
meillo@marmaro.de
parents: 26
diff changeset
374 In today's computer world, the Unix Phil is often asceticism
25
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
375 .LP
27
meillo@marmaro.de
parents: 26
diff changeset
376 One needs to abjure a lot of ``nice'' features
25
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
377 .LP
27
meillo@marmaro.de
parents: 26
diff changeset
378 Actually it is abjuring the bad solutions
25
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
379 .LP
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
380 IMO that leads to a valuable attitude
27
meillo@marmaro.de
parents: 26
diff changeset
381 .LP
meillo@marmaro.de
parents: 26
diff changeset
382 .sp 2
meillo@marmaro.de
parents: 26
diff changeset
383 Transfer it to your everyday life
25
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
384
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
385
27
meillo@marmaro.de
parents: 26
diff changeset
386 .S "Avoid complexity
25
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
387 .LP
27
meillo@marmaro.de
parents: 26
diff changeset
388 Avoid complexity first and foremost
25
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
389 .LP
27
meillo@marmaro.de
parents: 26
diff changeset
390 Complexity is the ``boss enemy'', software developers fight against
25
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
391 .LP
27
meillo@marmaro.de
parents: 26
diff changeset
392 Strive for simplicity, clarity, generality
meillo@marmaro.de
parents: 26
diff changeset
393 .LP
meillo@marmaro.de
parents: 26
diff changeset
394 .sp 2
meillo@marmaro.de
parents: 26
diff changeset
395 Transfer it to your everyday life
25
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
396
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
397
27
meillo@marmaro.de
parents: 26
diff changeset
398 .S "Good solutions
meillo@marmaro.de
parents: 26
diff changeset
399 .LP
meillo@marmaro.de
parents: 26
diff changeset
400 We don't need just solutions, we need good ones
25
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
401 .LP
27
meillo@marmaro.de
parents: 26
diff changeset
402 Today, we can make almost everything possible,
meillo@marmaro.de
parents: 26
diff changeset
403 but we still cannot make it good
25
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
404 .LP
27
meillo@marmaro.de
parents: 26
diff changeset
405 .sp 2
meillo@marmaro.de
parents: 26
diff changeset
406 Transfer it to your everyday life
25
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
407
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
408
27
meillo@marmaro.de
parents: 26
diff changeset
409 .S "Live it!
25
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
410 .LP
27
meillo@marmaro.de
parents: 26
diff changeset
411 The Unix Phil is not just a few guidelines
25
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
412 .LP
27
meillo@marmaro.de
parents: 26
diff changeset
413 You cannot follow just some of the tenets
25
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
414 .LP
27
meillo@marmaro.de
parents: 26
diff changeset
415 You will not understand the Unix Phil when you don't engage with it
25
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
416 .sp 3
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
417 .LP
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
418 .ce
27
meillo@marmaro.de
parents: 26
diff changeset
419 It's a philosophy \(en live it!
24
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
420
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
421
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
422
27
meillo@marmaro.de
parents: 26
diff changeset
423 .P "Appendix
24
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
424
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
425
27
meillo@marmaro.de
parents: 26
diff changeset
426 .S Literature
24
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
427 .I
26
b368ff5cdb5f added literature; some minor rework
meillo@marmaro.de
parents: 25
diff changeset
428 ``\fBThe Unix Philosophy\fP''
b368ff5cdb5f added literature; some minor rework
meillo@marmaro.de
parents: 25
diff changeset
429 by Mike Gancarz
b368ff5cdb5f added literature; some minor rework
meillo@marmaro.de
parents: 25
diff changeset
430 .br
b368ff5cdb5f added literature; some minor rework
meillo@marmaro.de
parents: 25
diff changeset
431 Go and get it!
b368ff5cdb5f added literature; some minor rework
meillo@marmaro.de
parents: 25
diff changeset
432 .I
b368ff5cdb5f added literature; some minor rework
meillo@marmaro.de
parents: 25
diff changeset
433 ``\fBThe Unix Programming Environment\fP''
b368ff5cdb5f added literature; some minor rework
meillo@marmaro.de
parents: 25
diff changeset
434 by Kernighan and Pike
b368ff5cdb5f added literature; some minor rework
meillo@marmaro.de
parents: 25
diff changeset
435 .br
b368ff5cdb5f added literature; some minor rework
meillo@marmaro.de
parents: 25
diff changeset
436 A Bible for Unix-lovers.
24
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
437 .I
26
b368ff5cdb5f added literature; some minor rework
meillo@marmaro.de
parents: 25
diff changeset
438 ``\fBThe Mythical Man-Month\fP''
b368ff5cdb5f added literature; some minor rework
meillo@marmaro.de
parents: 25
diff changeset
439 by Fred Brooks
b368ff5cdb5f added literature; some minor rework
meillo@marmaro.de
parents: 25
diff changeset
440 .br
b368ff5cdb5f added literature; some minor rework
meillo@marmaro.de
parents: 25
diff changeset
441 The case about complexity.
24
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
442 .I
26
b368ff5cdb5f added literature; some minor rework
meillo@marmaro.de
parents: 25
diff changeset
443 ``\fBThe Practice of Programming\fP''
b368ff5cdb5f added literature; some minor rework
meillo@marmaro.de
parents: 25
diff changeset
444 by Kernighan and Pike
b368ff5cdb5f added literature; some minor rework
meillo@marmaro.de
parents: 25
diff changeset
445 .br
b368ff5cdb5f added literature; some minor rework
meillo@marmaro.de
parents: 25
diff changeset
446 How good code should look like.
b368ff5cdb5f added literature; some minor rework
meillo@marmaro.de
parents: 25
diff changeset
447 .I
b368ff5cdb5f added literature; some minor rework
meillo@marmaro.de
parents: 25
diff changeset
448 ``\fBcat -v Considered Harmful\fP''
b368ff5cdb5f added literature; some minor rework
meillo@marmaro.de
parents: 25
diff changeset
449 by Pike and Kernighan
b368ff5cdb5f added literature; some minor rework
meillo@marmaro.de
parents: 25
diff changeset
450 .CW \s-2http://harmful.cat-v.org/cat-v/\s+2
b368ff5cdb5f added literature; some minor rework
meillo@marmaro.de
parents: 25
diff changeset
451 .br
b368ff5cdb5f added literature; some minor rework
meillo@marmaro.de
parents: 25
diff changeset
452 A must-read.
24
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
453
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
454
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
455 .S
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
456 .LP
27
meillo@marmaro.de
parents: 26
diff changeset
457 This talk was prepared using tools of the Heirloom project:
24
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
458 .CW \s-2http://heirloom.sf.net\s+2
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
459 .LP
27
meillo@marmaro.de
parents: 26
diff changeset
460 The slides macros are based on
24
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
461 .br
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
462 .CW \s-2http://repo.cat-v.org/troff-slider/\s+2
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
463 .sp
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
464
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
465 .LP
27
meillo@marmaro.de
parents: 26
diff changeset
466 The slides are available on my website
24
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
467 .CW \s-2http://marmaro.de/docs\s+2
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
468 and on
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
469 .CW \s-2http://ulm.ccc.de/ChaosSeminar/\s+2
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
470 .sp
27
meillo@marmaro.de
parents: 26
diff changeset
471 .LP
meillo@marmaro.de
parents: 26
diff changeset
472 See my paper on the topic, too.
24
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
473
27
meillo@marmaro.de
parents: 26
diff changeset
474 .sp 2
24
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
475 2010-03-08