docs/uzbl-cccs
diff 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 diff
1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/uzbl.tex Fri Aug 14 14:33:36 2009 +0200 1.3 @@ -0,0 +1,310 @@ 1.4 +% @file 1.5 +% @brief speach: uzbl (CCCS) 1.6 +% @author markus schnalke <meillo@marmaro.de> 1.7 +% @since 2009-06-14 1.8 + 1.9 + 1.10 +\documentclass{beamer} 1.11 + 1.12 + \usepackage[utf8]{inputenc} 1.13 + \usepackage{graphicx} 1.14 + \usepackage[automark]{scrpage2} 1.15 + \setlength{\parskip}{2.0ex plus 1.0ex minus 0.5ex} 1.16 + 1.17 + \title{uzbl} 1.18 + \author{markus schnalke} 1.19 + \date{2009-08-13} 1.20 + 1.21 +\begin{document} 1.22 + 1.23 + 1.24 +\frame{ 1.25 + \vspace{6em} 1.26 + \begin{center} 1.27 + \includegraphics[scale=0.4]{uzbl-logo.png} 1.28 + 1.29 + {a web browser that adheres to the Unix Philosophy} 1.30 + 1.31 + \vspace{5em} 1.32 + 1.33 + { \tiny 1.34 + markus schnalke \textless{}meillo@marmaro.de\textgreater{} 1.35 + } 1.36 + \end{center} 1.37 +} 1.38 + 1.39 + 1.40 + 1.41 +\frame{ \frametitle{better:} 1.42 + \begin{center} 1.43 + {\huge thoughts on sane web browsers} 1.44 + \end{center} 1.45 +} 1.46 + 1.47 + 1.48 + 1.49 + 1.50 + 1.51 +\frame{ \frametitle{Recap: The Unix Philosophy (1)} 1.52 + 1.53 +\textbf{Gancarz:} 1.54 + 1.55 +-- small is beautiful 1.56 + 1.57 +-- make each program do one thing well 1.58 + 1.59 +-- use software leverage to your advantage 1.60 + 1.61 +-- avoid captive user interfaces 1.62 + 1.63 +-- make every program a filter 1.64 + 1.65 +\dots 1.66 + 1.67 +} 1.68 + 1.69 +\frame{ \frametitle{Recap: The Unix Philosophy (2)} 1.70 + 1.71 +\textbf{McIlroy:} 1.72 + 1.73 +-- write programs that do one thing and do it well 1.74 + 1.75 +-- write programs to work together 1.76 + 1.77 +-- write programs to handle text streams 1.78 + 1.79 +} 1.80 + 1.81 + 1.82 + 1.83 +\frame{ \frametitle{modern web browsers} 1.84 + 1.85 +\dots\ are not small 1.86 +\hfill\ (huge amounts of code) 1.87 +% how many SLOC 1.88 + 1.89 +\pause 1.90 + 1.91 +\dots\ do not do one thing 1.92 +\hfill\ (include lots of stuff) 1.93 +% browse, bookmarks, download, news feeds 1.94 + 1.95 +\pause 1.96 + 1.97 +\dots\ do not use software leverage 1.98 +\hfill\ (do not use available tools) 1.99 +% no use of wget, newsbeuter 1.100 + 1.101 +\pause 1.102 + 1.103 +\dots\ have captive user interfaces 1.104 +\hfill\ (do not fit into the Unix UI) 1.105 +% explains itself, ^U, ^W 1.106 + 1.107 +\pause 1.108 + 1.109 +\dots\ are no filters 1.110 +\hfill\ (what about html2text?) 1.111 +% no combination, they are monolithic blocks 1.112 + 1.113 +\pause 1.114 + 1.115 +\dots\ do not work together 1.116 +\hfill\ (everything's already included) 1.117 +% as above 1.118 + 1.119 +\pause 1.120 + 1.121 +\dots\ do not handle text streams 1.122 +\hfill\ (have no interfaces anyway) 1.123 +% as above 1.124 + 1.125 +\pause 1.126 + 1.127 +\textbf{$\Rightarrow$ They do completely conflict with the Unix Philosophy!} 1.128 + 1.129 +} 1.130 + 1.131 + 1.132 +\frame{ \frametitle{Three problems to solve} 1.133 + 1.134 +1) user interface 1.135 + 1.136 +2) size, simplicity 1.137 + 1.138 +3) software leverage, combination, filters 1.139 + 1.140 +} 1.141 + 1.142 + 1.143 + 1.144 +\frame{ \frametitle{Problem 1: user interface} 1.145 + 1.146 +already addressed (e.g. by vimperator) 1.147 + 1.148 +pretty easy to implement 1.149 + 1.150 +but/only a user-side problem 1.151 + 1.152 +} 1.153 + 1.154 + 1.155 + 1.156 +\frame{ \frametitle{Problem 2: size, simplicity} 1.157 + 1.158 +suckless community's limit: 10k SLOC 1.159 +\pause 1.160 + 1.161 + 1.162 +but:\\ 1.163 +-- gecko (xulrunner-1.9: 2.6m SLOC)\\ 1.164 +-- webkit (webkit-1.1: 390k SLOC)\\ 1.165 +-- khtml (gtkhtml-2.8: 70k SLOC) 1.166 + 1.167 +(now imagine 0.1--10 bugs/KLOC) 1.168 +\pause 1.169 + 1.170 +simplicity is not possible because of today's web ($\rightarrow$ digression) 1.171 + 1.172 +} 1.173 + 1.174 + 1.175 + 1.176 + 1.177 +\frame{ \frametitle{digression: today's web} 1.178 + 1.179 +\dots\ is broken! 1.180 +\pause 1.181 + 1.182 +-- state in a state-less technology (deep-links, back-button) 1.183 + 1.184 +-- misused technologies (flash) 1.185 + 1.186 +-- totally overloaded, much too complex 1.187 +\pause 1.188 + 1.189 +$\Rightarrow$ simple render engines are not possible anymore 1.190 + 1.191 +$\Rightarrow$ web browsers have no chance -- they are essentially complex 1.192 + 1.193 +} 1.194 + 1.195 + 1.196 + 1.197 +\frame{ \frametitle{Problem 3: software leverage, combination, filters} 1.198 + 1.199 +this is the point to put hands on 1.200 +\pause 1.201 + 1.202 +-- why should the bookmark management be \textbf{inside} the browser? 1.203 + 1.204 +-- why does the browser need an \textbf{own} download manager? 1.205 +\pause 1.206 + 1.207 +$\Rightarrow$ better: use external programs that are available! 1.208 + 1.209 +} 1.210 + 1.211 + 1.212 + 1.213 +\frame{ \frametitle{How could it look like} 1.214 + 1.215 +-- take one of the bloated render engines (black box) 1.216 +\pause 1.217 + 1.218 +-- wrap it into a small program with software leverage in mind 1.219 +\pause 1.220 + 1.221 +-- have interfaces to refer to \textbf{external} programs 1.222 +\pause 1.223 + 1.224 +-- add a good user interface 1.225 + 1.226 +} 1.227 + 1.228 + 1.229 +\frame{ \frametitle{Examples (1)} 1.230 + 1.231 +\textbf{uzbl} 1.232 + 1.233 +\texttt{http://uzbl.org} 1.234 + 1.235 +by Dieter Plaetinck (Dieterbe) 1.236 + 1.237 +since 2009-04 1.238 + 1.239 +started as {\small \texttt{http://bbs.archlinux.org/viewtopic.php?id=67463}} 1.240 + 1.241 +2\,700/1\,100 SLOC (2\,300/280 SLOC in May) 1.242 + 1.243 +is quite active (various branches) 1.244 + 1.245 +impressive work was achieved in short time 1.246 + 1.247 +} 1.248 + 1.249 + 1.250 +\frame{ \frametitle{Examples (2)} 1.251 + 1.252 +\textbf{surf} 1.253 + 1.254 +\texttt{http://surf.suckless.org} 1.255 + 1.256 +by Enno Boland (Gottox) 1.257 + 1.258 +since 2009-06 1.259 + 1.260 +500 SLOC 1.261 + 1.262 +minimalistic reimplementation of uzbl !? 1.263 + 1.264 +like uzbl was in the very beginning 1.265 + 1.266 +} 1.267 + 1.268 + 1.269 +\frame{ \frametitle{5 steps to improve the software world} 1.270 + 1.271 +1) understand: the Unix Philosophy! 1.272 +\pause 1.273 + 1.274 +2) realize: a lot of modern software does not comply 1.275 +\pause 1.276 + 1.277 +3) realize: it's mostly the same kinds of problems 1.278 +\pause 1.279 + 1.280 +4) realize: it can be done better 1.281 +\pause 1.282 + 1.283 +5) do it better! 1.284 +\pause 1.285 + 1.286 +$\Rightarrow$ write, help, use sane software! 1.287 + 1.288 +} 1.289 + 1.290 + 1.291 + 1.292 + 1.293 + 1.294 +\frame{ 1.295 +software used:\\ 1.296 +-- Debian GNU/Linux\\ 1.297 +-- LaTeX beamer, latexmk, fbgs\\ 1.298 +-- vim, sloccount, mercurial 1.299 + 1.300 +\begin{block}{} 1.301 + \vspace{7ex} 1.302 + \centerline{\textbf{Thanks for your attention}} 1.303 + \vspace{7ex} 1.304 +\end{block} 1.305 + 1.306 + 1.307 +{\scriptsize The slides are available on \texttt{http://marmaro.de/docs} \hfill 2009-08-13 } 1.308 + 1.309 +} 1.310 + 1.311 + 1.312 +\end{document} 1.313 +