docs/uzbl-cccs

view uzbl.tex @ 0:2de5f65f7617

a lightning talk about sane web browsers at CCCS
author meillo@marmaro.de
date Fri, 14 Aug 2009 14:33:36 +0200
parents
children
line source
1 % @file
2 % @brief speach: uzbl (CCCS)
3 % @author markus schnalke <meillo@marmaro.de>
4 % @since 2009-06-14
7 \documentclass{beamer}
9 \usepackage[utf8]{inputenc}
10 \usepackage{graphicx}
11 \usepackage[automark]{scrpage2}
12 \setlength{\parskip}{2.0ex plus 1.0ex minus 0.5ex}
14 \title{uzbl}
15 \author{markus schnalke}
16 \date{2009-08-13}
18 \begin{document}
21 \frame{
22 \vspace{6em}
23 \begin{center}
24 \includegraphics[scale=0.4]{uzbl-logo.png}
26 {a web browser that adheres to the Unix Philosophy}
28 \vspace{5em}
30 { \tiny
31 markus schnalke \textless{}meillo@marmaro.de\textgreater{}
32 }
33 \end{center}
34 }
38 \frame{ \frametitle{better:}
39 \begin{center}
40 {\huge thoughts on sane web browsers}
41 \end{center}
42 }
48 \frame{ \frametitle{Recap: The Unix Philosophy (1)}
50 \textbf{Gancarz:}
52 -- small is beautiful
54 -- make each program do one thing well
56 -- use software leverage to your advantage
58 -- avoid captive user interfaces
60 -- make every program a filter
62 \dots
64 }
66 \frame{ \frametitle{Recap: The Unix Philosophy (2)}
68 \textbf{McIlroy:}
70 -- write programs that do one thing and do it well
72 -- write programs to work together
74 -- write programs to handle text streams
76 }
80 \frame{ \frametitle{modern web browsers}
82 \dots\ are not small
83 \hfill\ (huge amounts of code)
84 % how many SLOC
86 \pause
88 \dots\ do not do one thing
89 \hfill\ (include lots of stuff)
90 % browse, bookmarks, download, news feeds
92 \pause
94 \dots\ do not use software leverage
95 \hfill\ (do not use available tools)
96 % no use of wget, newsbeuter
98 \pause
100 \dots\ have captive user interfaces
101 \hfill\ (do not fit into the Unix UI)
102 % explains itself, ^U, ^W
104 \pause
106 \dots\ are no filters
107 \hfill\ (what about html2text?)
108 % no combination, they are monolithic blocks
110 \pause
112 \dots\ do not work together
113 \hfill\ (everything's already included)
114 % as above
116 \pause
118 \dots\ do not handle text streams
119 \hfill\ (have no interfaces anyway)
120 % as above
122 \pause
124 \textbf{$\Rightarrow$ They do completely conflict with the Unix Philosophy!}
126 }
129 \frame{ \frametitle{Three problems to solve}
131 1) user interface
133 2) size, simplicity
135 3) software leverage, combination, filters
137 }
141 \frame{ \frametitle{Problem 1: user interface}
143 already addressed (e.g. by vimperator)
145 pretty easy to implement
147 but/only a user-side problem
149 }
153 \frame{ \frametitle{Problem 2: size, simplicity}
155 suckless community's limit: 10k SLOC
156 \pause
159 but:\\
160 -- gecko (xulrunner-1.9: 2.6m SLOC)\\
161 -- webkit (webkit-1.1: 390k SLOC)\\
162 -- khtml (gtkhtml-2.8: 70k SLOC)
164 (now imagine 0.1--10 bugs/KLOC)
165 \pause
167 simplicity is not possible because of today's web ($\rightarrow$ digression)
169 }
174 \frame{ \frametitle{digression: today's web}
176 \dots\ is broken!
177 \pause
179 -- state in a state-less technology (deep-links, back-button)
181 -- misused technologies (flash)
183 -- totally overloaded, much too complex
184 \pause
186 $\Rightarrow$ simple render engines are not possible anymore
188 $\Rightarrow$ web browsers have no chance -- they are essentially complex
190 }
194 \frame{ \frametitle{Problem 3: software leverage, combination, filters}
196 this is the point to put hands on
197 \pause
199 -- why should the bookmark management be \textbf{inside} the browser?
201 -- why does the browser need an \textbf{own} download manager?
202 \pause
204 $\Rightarrow$ better: use external programs that are available!
206 }
210 \frame{ \frametitle{How could it look like}
212 -- take one of the bloated render engines (black box)
213 \pause
215 -- wrap it into a small program with software leverage in mind
216 \pause
218 -- have interfaces to refer to \textbf{external} programs
219 \pause
221 -- add a good user interface
223 }
226 \frame{ \frametitle{Examples (1)}
228 \textbf{uzbl}
230 \texttt{http://uzbl.org}
232 by Dieter Plaetinck (Dieterbe)
234 since 2009-04
236 started as {\small \texttt{http://bbs.archlinux.org/viewtopic.php?id=67463}}
238 2\,700/1\,100 SLOC (2\,300/280 SLOC in May)
240 is quite active (various branches)
242 impressive work was achieved in short time
244 }
247 \frame{ \frametitle{Examples (2)}
249 \textbf{surf}
251 \texttt{http://surf.suckless.org}
253 by Enno Boland (Gottox)
255 since 2009-06
257 500 SLOC
259 minimalistic reimplementation of uzbl !?
261 like uzbl was in the very beginning
263 }
266 \frame{ \frametitle{5 steps to improve the software world}
268 1) understand: the Unix Philosophy!
269 \pause
271 2) realize: a lot of modern software does not comply
272 \pause
274 3) realize: it's mostly the same kinds of problems
275 \pause
277 4) realize: it can be done better
278 \pause
280 5) do it better!
281 \pause
283 $\Rightarrow$ write, help, use sane software!
285 }
291 \frame{
292 software used:\\
293 -- Debian GNU/Linux\\
294 -- LaTeX beamer, latexmk, fbgs\\
295 -- vim, sloccount, mercurial
297 \begin{block}{}
298 \vspace{7ex}
299 \centerline{\textbf{Thanks for your attention}}
300 \vspace{7ex}
301 \end{block}
304 {\scriptsize The slides are available on \texttt{http://marmaro.de/docs} \hfill 2009-08-13 }
306 }
309 \end{document}