Mercurial > docs > uzbl-cccs
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 |