docs/uzbl-cccs

annotate 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
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