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 +