rev |
line source |
meillo@0
|
1 % @file
|
meillo@0
|
2 % @brief speach: uzbl (CCCS)
|
meillo@0
|
3 % @author markus schnalke <meillo@marmaro.de>
|
meillo@0
|
4 % @since 2009-06-14
|
meillo@0
|
5
|
meillo@0
|
6
|
meillo@0
|
7 \documentclass{beamer}
|
meillo@0
|
8
|
meillo@0
|
9 \usepackage[utf8]{inputenc}
|
meillo@0
|
10 \usepackage{graphicx}
|
meillo@0
|
11 \usepackage[automark]{scrpage2}
|
meillo@0
|
12 \setlength{\parskip}{2.0ex plus 1.0ex minus 0.5ex}
|
meillo@0
|
13
|
meillo@0
|
14 \title{uzbl}
|
meillo@0
|
15 \author{markus schnalke}
|
meillo@0
|
16 \date{2009-08-13}
|
meillo@0
|
17
|
meillo@0
|
18 \begin{document}
|
meillo@0
|
19
|
meillo@0
|
20
|
meillo@0
|
21 \frame{
|
meillo@0
|
22 \vspace{6em}
|
meillo@0
|
23 \begin{center}
|
meillo@0
|
24 \includegraphics[scale=0.4]{uzbl-logo.png}
|
meillo@0
|
25
|
meillo@0
|
26 {a web browser that adheres to the Unix Philosophy}
|
meillo@0
|
27
|
meillo@0
|
28 \vspace{5em}
|
meillo@0
|
29
|
meillo@0
|
30 { \tiny
|
meillo@0
|
31 markus schnalke \textless{}meillo@marmaro.de\textgreater{}
|
meillo@0
|
32 }
|
meillo@0
|
33 \end{center}
|
meillo@0
|
34 }
|
meillo@0
|
35
|
meillo@0
|
36
|
meillo@0
|
37
|
meillo@0
|
38 \frame{ \frametitle{better:}
|
meillo@0
|
39 \begin{center}
|
meillo@0
|
40 {\huge thoughts on sane web browsers}
|
meillo@0
|
41 \end{center}
|
meillo@0
|
42 }
|
meillo@0
|
43
|
meillo@0
|
44
|
meillo@0
|
45
|
meillo@0
|
46
|
meillo@0
|
47
|
meillo@0
|
48 \frame{ \frametitle{Recap: The Unix Philosophy (1)}
|
meillo@0
|
49
|
meillo@0
|
50 \textbf{Gancarz:}
|
meillo@0
|
51
|
meillo@0
|
52 -- small is beautiful
|
meillo@0
|
53
|
meillo@0
|
54 -- make each program do one thing well
|
meillo@0
|
55
|
meillo@0
|
56 -- use software leverage to your advantage
|
meillo@0
|
57
|
meillo@0
|
58 -- avoid captive user interfaces
|
meillo@0
|
59
|
meillo@0
|
60 -- make every program a filter
|
meillo@0
|
61
|
meillo@0
|
62 \dots
|
meillo@0
|
63
|
meillo@0
|
64 }
|
meillo@0
|
65
|
meillo@0
|
66 \frame{ \frametitle{Recap: The Unix Philosophy (2)}
|
meillo@0
|
67
|
meillo@0
|
68 \textbf{McIlroy:}
|
meillo@0
|
69
|
meillo@0
|
70 -- write programs that do one thing and do it well
|
meillo@0
|
71
|
meillo@0
|
72 -- write programs to work together
|
meillo@0
|
73
|
meillo@0
|
74 -- write programs to handle text streams
|
meillo@0
|
75
|
meillo@0
|
76 }
|
meillo@0
|
77
|
meillo@0
|
78
|
meillo@0
|
79
|
meillo@0
|
80 \frame{ \frametitle{modern web browsers}
|
meillo@0
|
81
|
meillo@0
|
82 \dots\ are not small
|
meillo@0
|
83 \hfill\ (huge amounts of code)
|
meillo@0
|
84 % how many SLOC
|
meillo@0
|
85
|
meillo@0
|
86 \pause
|
meillo@0
|
87
|
meillo@0
|
88 \dots\ do not do one thing
|
meillo@0
|
89 \hfill\ (include lots of stuff)
|
meillo@0
|
90 % browse, bookmarks, download, news feeds
|
meillo@0
|
91
|
meillo@0
|
92 \pause
|
meillo@0
|
93
|
meillo@0
|
94 \dots\ do not use software leverage
|
meillo@0
|
95 \hfill\ (do not use available tools)
|
meillo@0
|
96 % no use of wget, newsbeuter
|
meillo@0
|
97
|
meillo@0
|
98 \pause
|
meillo@0
|
99
|
meillo@0
|
100 \dots\ have captive user interfaces
|
meillo@0
|
101 \hfill\ (do not fit into the Unix UI)
|
meillo@0
|
102 % explains itself, ^U, ^W
|
meillo@0
|
103
|
meillo@0
|
104 \pause
|
meillo@0
|
105
|
meillo@0
|
106 \dots\ are no filters
|
meillo@0
|
107 \hfill\ (what about html2text?)
|
meillo@0
|
108 % no combination, they are monolithic blocks
|
meillo@0
|
109
|
meillo@0
|
110 \pause
|
meillo@0
|
111
|
meillo@0
|
112 \dots\ do not work together
|
meillo@0
|
113 \hfill\ (everything's already included)
|
meillo@0
|
114 % as above
|
meillo@0
|
115
|
meillo@0
|
116 \pause
|
meillo@0
|
117
|
meillo@0
|
118 \dots\ do not handle text streams
|
meillo@0
|
119 \hfill\ (have no interfaces anyway)
|
meillo@0
|
120 % as above
|
meillo@0
|
121
|
meillo@0
|
122 \pause
|
meillo@0
|
123
|
meillo@0
|
124 \textbf{$\Rightarrow$ They do completely conflict with the Unix Philosophy!}
|
meillo@0
|
125
|
meillo@0
|
126 }
|
meillo@0
|
127
|
meillo@0
|
128
|
meillo@0
|
129 \frame{ \frametitle{Three problems to solve}
|
meillo@0
|
130
|
meillo@0
|
131 1) user interface
|
meillo@0
|
132
|
meillo@0
|
133 2) size, simplicity
|
meillo@0
|
134
|
meillo@0
|
135 3) software leverage, combination, filters
|
meillo@0
|
136
|
meillo@0
|
137 }
|
meillo@0
|
138
|
meillo@0
|
139
|
meillo@0
|
140
|
meillo@0
|
141 \frame{ \frametitle{Problem 1: user interface}
|
meillo@0
|
142
|
meillo@0
|
143 already addressed (e.g. by vimperator)
|
meillo@0
|
144
|
meillo@0
|
145 pretty easy to implement
|
meillo@0
|
146
|
meillo@0
|
147 but/only a user-side problem
|
meillo@0
|
148
|
meillo@0
|
149 }
|
meillo@0
|
150
|
meillo@0
|
151
|
meillo@0
|
152
|
meillo@0
|
153 \frame{ \frametitle{Problem 2: size, simplicity}
|
meillo@0
|
154
|
meillo@0
|
155 suckless community's limit: 10k SLOC
|
meillo@0
|
156 \pause
|
meillo@0
|
157
|
meillo@0
|
158
|
meillo@0
|
159 but:\\
|
meillo@0
|
160 -- gecko (xulrunner-1.9: 2.6m SLOC)\\
|
meillo@0
|
161 -- webkit (webkit-1.1: 390k SLOC)\\
|
meillo@0
|
162 -- khtml (gtkhtml-2.8: 70k SLOC)
|
meillo@0
|
163
|
meillo@0
|
164 (now imagine 0.1--10 bugs/KLOC)
|
meillo@0
|
165 \pause
|
meillo@0
|
166
|
meillo@0
|
167 simplicity is not possible because of today's web ($\rightarrow$ digression)
|
meillo@0
|
168
|
meillo@0
|
169 }
|
meillo@0
|
170
|
meillo@0
|
171
|
meillo@0
|
172
|
meillo@0
|
173
|
meillo@0
|
174 \frame{ \frametitle{digression: today's web}
|
meillo@0
|
175
|
meillo@0
|
176 \dots\ is broken!
|
meillo@0
|
177 \pause
|
meillo@0
|
178
|
meillo@0
|
179 -- state in a state-less technology (deep-links, back-button)
|
meillo@0
|
180
|
meillo@0
|
181 -- misused technologies (flash)
|
meillo@0
|
182
|
meillo@0
|
183 -- totally overloaded, much too complex
|
meillo@0
|
184 \pause
|
meillo@0
|
185
|
meillo@0
|
186 $\Rightarrow$ simple render engines are not possible anymore
|
meillo@0
|
187
|
meillo@0
|
188 $\Rightarrow$ web browsers have no chance -- they are essentially complex
|
meillo@0
|
189
|
meillo@0
|
190 }
|
meillo@0
|
191
|
meillo@0
|
192
|
meillo@0
|
193
|
meillo@0
|
194 \frame{ \frametitle{Problem 3: software leverage, combination, filters}
|
meillo@0
|
195
|
meillo@0
|
196 this is the point to put hands on
|
meillo@0
|
197 \pause
|
meillo@0
|
198
|
meillo@0
|
199 -- why should the bookmark management be \textbf{inside} the browser?
|
meillo@0
|
200
|
meillo@0
|
201 -- why does the browser need an \textbf{own} download manager?
|
meillo@0
|
202 \pause
|
meillo@0
|
203
|
meillo@0
|
204 $\Rightarrow$ better: use external programs that are available!
|
meillo@0
|
205
|
meillo@0
|
206 }
|
meillo@0
|
207
|
meillo@0
|
208
|
meillo@0
|
209
|
meillo@0
|
210 \frame{ \frametitle{How could it look like}
|
meillo@0
|
211
|
meillo@0
|
212 -- take one of the bloated render engines (black box)
|
meillo@0
|
213 \pause
|
meillo@0
|
214
|
meillo@0
|
215 -- wrap it into a small program with software leverage in mind
|
meillo@0
|
216 \pause
|
meillo@0
|
217
|
meillo@0
|
218 -- have interfaces to refer to \textbf{external} programs
|
meillo@0
|
219 \pause
|
meillo@0
|
220
|
meillo@0
|
221 -- add a good user interface
|
meillo@0
|
222
|
meillo@0
|
223 }
|
meillo@0
|
224
|
meillo@0
|
225
|
meillo@0
|
226 \frame{ \frametitle{Examples (1)}
|
meillo@0
|
227
|
meillo@0
|
228 \textbf{uzbl}
|
meillo@0
|
229
|
meillo@0
|
230 \texttt{http://uzbl.org}
|
meillo@0
|
231
|
meillo@0
|
232 by Dieter Plaetinck (Dieterbe)
|
meillo@0
|
233
|
meillo@0
|
234 since 2009-04
|
meillo@0
|
235
|
meillo@0
|
236 started as {\small \texttt{http://bbs.archlinux.org/viewtopic.php?id=67463}}
|
meillo@0
|
237
|
meillo@0
|
238 2\,700/1\,100 SLOC (2\,300/280 SLOC in May)
|
meillo@0
|
239
|
meillo@0
|
240 is quite active (various branches)
|
meillo@0
|
241
|
meillo@0
|
242 impressive work was achieved in short time
|
meillo@0
|
243
|
meillo@0
|
244 }
|
meillo@0
|
245
|
meillo@0
|
246
|
meillo@0
|
247 \frame{ \frametitle{Examples (2)}
|
meillo@0
|
248
|
meillo@0
|
249 \textbf{surf}
|
meillo@0
|
250
|
meillo@0
|
251 \texttt{http://surf.suckless.org}
|
meillo@0
|
252
|
meillo@0
|
253 by Enno Boland (Gottox)
|
meillo@0
|
254
|
meillo@0
|
255 since 2009-06
|
meillo@0
|
256
|
meillo@0
|
257 500 SLOC
|
meillo@0
|
258
|
meillo@0
|
259 minimalistic reimplementation of uzbl !?
|
meillo@0
|
260
|
meillo@0
|
261 like uzbl was in the very beginning
|
meillo@0
|
262
|
meillo@0
|
263 }
|
meillo@0
|
264
|
meillo@0
|
265
|
meillo@0
|
266 \frame{ \frametitle{5 steps to improve the software world}
|
meillo@0
|
267
|
meillo@0
|
268 1) understand: the Unix Philosophy!
|
meillo@0
|
269 \pause
|
meillo@0
|
270
|
meillo@0
|
271 2) realize: a lot of modern software does not comply
|
meillo@0
|
272 \pause
|
meillo@0
|
273
|
meillo@0
|
274 3) realize: it's mostly the same kinds of problems
|
meillo@0
|
275 \pause
|
meillo@0
|
276
|
meillo@0
|
277 4) realize: it can be done better
|
meillo@0
|
278 \pause
|
meillo@0
|
279
|
meillo@0
|
280 5) do it better!
|
meillo@0
|
281 \pause
|
meillo@0
|
282
|
meillo@0
|
283 $\Rightarrow$ write, help, use sane software!
|
meillo@0
|
284
|
meillo@0
|
285 }
|
meillo@0
|
286
|
meillo@0
|
287
|
meillo@0
|
288
|
meillo@0
|
289
|
meillo@0
|
290
|
meillo@0
|
291 \frame{
|
meillo@0
|
292 software used:\\
|
meillo@0
|
293 -- Debian GNU/Linux\\
|
meillo@0
|
294 -- LaTeX beamer, latexmk, fbgs\\
|
meillo@0
|
295 -- vim, sloccount, mercurial
|
meillo@0
|
296
|
meillo@0
|
297 \begin{block}{}
|
meillo@0
|
298 \vspace{7ex}
|
meillo@0
|
299 \centerline{\textbf{Thanks for your attention}}
|
meillo@0
|
300 \vspace{7ex}
|
meillo@0
|
301 \end{block}
|
meillo@0
|
302
|
meillo@0
|
303
|
meillo@0
|
304 {\scriptsize The slides are available on \texttt{http://marmaro.de/docs} \hfill 2009-08-13 }
|
meillo@0
|
305
|
meillo@0
|
306 }
|
meillo@0
|
307
|
meillo@0
|
308
|
meillo@0
|
309 \end{document}
|
meillo@0
|
310
|