annotate unix-phil-slides.ms @ 26:b368ff5cdb5f

added literature; some minor rework
author meillo@marmaro.de
date Sun, 07 Mar 2010 22:40:05 +0100
parents e6ac51dc18bf
children e8adc3571e8c
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
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
15 .S "goals of this talk
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
16 .I
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
17 introduce the Unix Phil
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
18 .I
26
b368ff5cdb5f added literature; some minor rework
meillo@marmaro.de
parents: 25
diff changeset
19 show that most modern software is crap
24
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
20 .I
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
21 explain why the Unix Phil leads to better software
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
22 .I
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
23 convince you that good software is of matter
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
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
26 make you think
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
27
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
28
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
29 .S "roadmap
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
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
33 What is the Unix Philosophy?
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
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
43 .S "me and the UP
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
44 .LP
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
45 first contact: through the suckless project
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
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
54 better understanding through digging in the past
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
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
60 .P "historical background
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
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
65 .S "historical background
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
66 .I
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
67 the late 60s and early 70s
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
68 .I
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
69 operating systems are complex
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
70 .I
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
71 MULTICS just failed
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
72 .I
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
73 Brooks' ``The Mythical Man-Month''
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
74 .I
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
75 a lot of different hardware
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
76 .I
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
77 limited computing power
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
78 .I
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
79 textual input and output (line printers)
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
80
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
81
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
82 .S "everything is a file
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
83 .LP
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
84 is the(?) basic concept in Unix (and even more in Plan9)
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
85 .LP
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
86 made simple operating systems possible
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
87 .LP
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
88 it is not covered by the Unix Phil; the Unix Phil is on a different level
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
89 .sp 2
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
90 .LP
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
91 Unix is mainly two things:
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
92 .I
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
93 an operating system (system calls)
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
94 .I
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
95 a toolchest (coreutils)
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
96
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
97
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
98
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
99 .P "What is the Unix Phil
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
100
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
101
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
102
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
103 .S "What is the Unix Phil *itself*?
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
104 .LP
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
105 ``The Unix philosophy is a set of cultural norms and philosophical
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
106 approaches to developing software based on the experience of
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
107 leading developers of the Unix operating system.''
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
108 (wikipedia)
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
109 .sp 2
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
110 .LP
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
111 How the inventors of Unix write software.
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 Common things of classic Unix tools.
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
114 .sp 2
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
115 .LP
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
116 difficult to define
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
117
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
118
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
119 .S "Unix Phil vs. SW dev processes
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
120 .LP
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
121 the Unix Phil
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
122 .I
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
123 much: *what* to program
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 few: *how* to program
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
126
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
127 .LP
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
128 Software developments processes:
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
129 .I
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
130 few: *what* to program
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 much: *how* to program
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
133
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
134 .sp 2
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
135 .LP
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
136 Extreme Programming is like the Unix Phil
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
137 but with more *how* than *what*,
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
138 and with formalisms
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
139
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
140
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 .S "What is the Unix Phil?
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
145 .I
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
146 Doug McIlroy (1978)
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 Mike Gancarz: ``The Unix Philosophy'' (1994)
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 Eric S. Raymond: ``The Art of Unix Programming'' (2003)
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
151 .sp 2
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
152 .I
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
153 Richard Gabriel: ``Worse is Better'' (1989)
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
154
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
155
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
156 .S "Doug McIlroy
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
157 .LP
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
158 This is the Unix philosophy:
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
159 .I
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
160 Write programs that do one thing and do it well.
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 to work together.
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 handle text streams, because that is a universal interface.
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
165
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
166
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
167 .S "Mike Gancarz: ``The Unix Philosophy''
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
168 .I
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
169 Small is beautiful.
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 Make each program do one thing well.
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 Build a prototype as soon as possible.
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 Choose portability over efficiency.
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 Store data in flat text files.
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 Use software leverage to your advantage.
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 shell scripts to increase leverage and portability.
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 Avoid captive user interfaces.
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 Make every program a filter.
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
186 .sp 1
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
187 .LP
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
188 plus ten lesser tenets
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
189
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
190
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 .P "The Unix Phil after Gancarz
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
194
25
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
195
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
196
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
197 .S "Small is beautiful
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
198 .I
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
199 small software is easier to understand, write, maintain
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
200 .I
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
201 less lines of code contain less bugs
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
202 .I
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
203 monsters are large
24
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
204
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
205
25
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
206 .S "Make each program do one thing well
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
207 .I
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
208 programs with many functions are large
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
209 .I
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
210 one thing is easier to understand
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
211 .I
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
212 often straight forward to implement
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
213 .I
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
214 reusable
24
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
215
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
216
25
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
217 .S "Build a prototype as soon as possible
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
218 .I
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
219 shows the quality of the design
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
220 .I
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
221 shows the problems of the software
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
222 .I
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
223 the best way to shape a software
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
224 .I
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
225 users find bugs
24
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
226
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
227
25
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
228 .S "Choose portability over efficiency
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
229 .I
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
230 (comes from incompatible hardware in history)
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
231 .I
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
232 use is most important
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
233 .I
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
234 availability
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
235 .I
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
236 only needs to be fast enough
24
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
237
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
238
25
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
239 .S "Store data in flat text files
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
240 .LP
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
241 binary data is machine dependent
24
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
242 .LP
25
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
243 human readable data is:
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
244 .I
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
245 is very likely supported
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
246 .I
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
247 good to port
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
248 .I
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
249 many tools work on it (Unix toolchest)
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
250 .I
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
251 as generic as possible
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
252 .LP
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
253 processing needs only to be fast enough
24
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
254
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
255
25
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
256 .S "Use software leverage to your advantage
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
257 .LP
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
258 what do we have computers for?
24
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
259 .LP
25
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
260 make best use of computing power
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
261 .LP
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
262 reduce development effort
24
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
263
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
264
25
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
265 .S "Use shell scripts to increase leverage and portability
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
266 .LP
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
267 was very important in history
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
268 .LP
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
269 high level languages
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
270 .LP
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
271 prototyping
24
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
272 .LP
25
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
273 quick hacks
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
274
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
275
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
276 .S "Avoid captive user interfaces
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
277 .LP
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
278 don't assume the user to be human
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
279 .LP
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
280 exclude the user whenever possible
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
281 .LP
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
282 automate
24
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
283
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
284
25
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
285 .S "Make every program a filter
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
286 .LP
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
287 programs transform data
24
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
288 .LP
25
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
289 combine programs
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
290 .LP
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
291 have one common interface
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
292
24
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
293
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
294
25
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
295 .S "a different POV
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
296 .I
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
297 pipes
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
298 .I
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
299 interface design
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
300 .I
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
301 the toolchest approach
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
302 .I
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
303 a powerful shell
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
304 .I
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
305 worse is better
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
306 .I
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
307 upgrowth and survival
24
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
308
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
309
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
310
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
311 .P "real world examples
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
312
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
313
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
314 .S "various
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
315 .LP
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
316 who uses
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
317 .CW "grep -R
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
318 ?
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
319
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
320 .sp 1
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
321 .LP
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
322 .CW "cat -v
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
323
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
324 .sp 1
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
325 .LP
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
326 pagers are taken for granted
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
327
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
328 .sp 1
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
329 .LP
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
330 what about the readline?
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
331
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
332
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
333
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
334 .S "find -printf
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
335 .LP
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
336 How to reformat the output of find(1) to have ``FILENAME PATH''
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
337 instead of ``PATH/FILENAME''?
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
338
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
339 .LP
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
340 the ``easy'' way:
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
341 \f(CWfind /dir -printf "%P %h\en"\fP
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
342
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
343 .LP
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
344 the ``good'' way:
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
345 .br
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
346 .CW "\s-1find /dir | sed 's,\e(.*\e)/\e(.*\e),\e2 \e1,'
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
347
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
348 .LP
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
349 The difference shows off when one wants, for instance,
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
350 the path to be manipulated further.
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
351
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
352
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
353 .S "MH / nmh
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
354 .LP
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
355 a Mail User Agent (MUA)
25
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
356 .LP
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
357 is a toolchest
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
358 .LP
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
359 work with mails like with generic files
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
360 .LP
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
361 the only(?) MUA that follows the Unix Phil
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
362 .LP
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
363 has a very special feeling
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 .S "uzbl
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
367 .LP
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
368 a web browser that adheres to the Unix Phil
25
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
369 .LP
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
370 a young project (about 1 year)
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
371 .LP
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
372 central question: what is the one task a web browser covers?
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
373 .LP
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
374 makes very visible use of software leverage
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
375 .LP
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
376 suffers hard from our broken web
24
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
377
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
378
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
379
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
380
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
381
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
382 .P "more than software dev guidelines
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
383
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
384
25
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
385 .S "say no
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
386 .LP
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
387 in today's computer world, the Unix Phil is much of asceticism
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
388 .LP
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
389 one needs to abjure a lot of ``nice'' features
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
390 .LP
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
391 IMO that leads to a valuable attitude
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
392
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
393
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
394 .S "avoid complexity
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
395 .LP
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
396 avoid complexity first and foremost
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
397 .LP
26
b368ff5cdb5f added literature; some minor rework
meillo@marmaro.de
parents: 25
diff changeset
398 complexity is the ``boss enemy'', software developers fight against
25
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
399 .LP
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
400 strive for simplicity, clarity, generality
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
401
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
402
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
403 .S "good solutions
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
404 .LP
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
405 we don't need just solutions, we need good ones
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
406 .LP
26
b368ff5cdb5f added literature; some minor rework
meillo@marmaro.de
parents: 25
diff changeset
407 today, we can make almost everything possible,
b368ff5cdb5f added literature; some minor rework
meillo@marmaro.de
parents: 25
diff changeset
408 but we still cannot make it good
25
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
409
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
410
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
411 .S "live it
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
412 .LP
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
413 the Unix Phil is not just a few guidelines
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
414 .LP
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
415 you cannot follow just some of the tenets
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
416 .LP
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
417 you will not understand the Unix Phil when you don't engage with it
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
418 .sp 3
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
419 .LP
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
420 .ce
e6ac51dc18bf work on the slides
meillo@marmaro.de
parents: 24
diff changeset
421 it's a philosophy \(en live it!
24
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
422
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
423
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
424
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
425 .P "literature
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
426
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
427
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
428 .S literature
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
429 .I
26
b368ff5cdb5f added literature; some minor rework
meillo@marmaro.de
parents: 25
diff changeset
430 ``\fBThe Unix Philosophy\fP''
b368ff5cdb5f added literature; some minor rework
meillo@marmaro.de
parents: 25
diff changeset
431 by Mike Gancarz
b368ff5cdb5f added literature; some minor rework
meillo@marmaro.de
parents: 25
diff changeset
432 .br
b368ff5cdb5f added literature; some minor rework
meillo@marmaro.de
parents: 25
diff changeset
433 Go and get it!
b368ff5cdb5f added literature; some minor rework
meillo@marmaro.de
parents: 25
diff changeset
434 .I
b368ff5cdb5f added literature; some minor rework
meillo@marmaro.de
parents: 25
diff changeset
435 ``\fBThe Unix Programming Environment\fP''
b368ff5cdb5f added literature; some minor rework
meillo@marmaro.de
parents: 25
diff changeset
436 by Kernighan and Pike
b368ff5cdb5f added literature; some minor rework
meillo@marmaro.de
parents: 25
diff changeset
437 .br
b368ff5cdb5f added literature; some minor rework
meillo@marmaro.de
parents: 25
diff changeset
438 A Bible for Unix-lovers.
24
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
439 .I
26
b368ff5cdb5f added literature; some minor rework
meillo@marmaro.de
parents: 25
diff changeset
440 ``\fBThe Mythical Man-Month\fP''
b368ff5cdb5f added literature; some minor rework
meillo@marmaro.de
parents: 25
diff changeset
441 by Fred Brooks
b368ff5cdb5f added literature; some minor rework
meillo@marmaro.de
parents: 25
diff changeset
442 .br
b368ff5cdb5f added literature; some minor rework
meillo@marmaro.de
parents: 25
diff changeset
443 The case about complexity.
24
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
444 .I
26
b368ff5cdb5f added literature; some minor rework
meillo@marmaro.de
parents: 25
diff changeset
445 ``\fBThe Practice of Programming\fP''
b368ff5cdb5f added literature; some minor rework
meillo@marmaro.de
parents: 25
diff changeset
446 by Kernighan and Pike
b368ff5cdb5f added literature; some minor rework
meillo@marmaro.de
parents: 25
diff changeset
447 .br
b368ff5cdb5f added literature; some minor rework
meillo@marmaro.de
parents: 25
diff changeset
448 How good code should look like.
b368ff5cdb5f added literature; some minor rework
meillo@marmaro.de
parents: 25
diff changeset
449 .I
b368ff5cdb5f added literature; some minor rework
meillo@marmaro.de
parents: 25
diff changeset
450 ``\fBcat -v Considered Harmful\fP''
b368ff5cdb5f added literature; some minor rework
meillo@marmaro.de
parents: 25
diff changeset
451 by Pike and Kernighan
b368ff5cdb5f added literature; some minor rework
meillo@marmaro.de
parents: 25
diff changeset
452 .CW \s-2http://harmful.cat-v.org/cat-v/\s+2
b368ff5cdb5f added literature; some minor rework
meillo@marmaro.de
parents: 25
diff changeset
453 .br
b368ff5cdb5f added literature; some minor rework
meillo@marmaro.de
parents: 25
diff changeset
454 A must-read.
24
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
455
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
456
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
457 .S
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
458 .LP
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
459 this talk was prepared using tools of the Heirloom project:
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
460 .CW \s-2http://heirloom.sf.net\s+2
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
461 .LP
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
462 the slides macros are based on
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
463 .br
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
464 .CW \s-2http://repo.cat-v.org/troff-slider/\s+2
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
465 .sp
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
466
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
467 .LP
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
468 the slides are available on my website
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
469 .CW \s-2http://marmaro.de/docs\s+2
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
470 and on
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
471 .CW \s-2http://ulm.ccc.de/ChaosSeminar/\s+2
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
472 .sp
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
473
2335f5658fca added poster and slides
meillo@marmaro.de
parents:
diff changeset
474 2010-03-08