comparison uzbl.tex @ 0:2de5f65f7617 final version

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