docs/uzbl-cccs

changeset 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 8888f8bb4697
files .hgignore gen-print-source.sh uzbl-logo.png uzbl.tex
diffstat 4 files changed, 320 insertions(+), 0 deletions(-) [+]
line diff
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/.hgignore	Fri Aug 14 14:33:36 2009 +0200
     1.3 @@ -0,0 +1,8 @@
     1.4 +syntax: glob
     1.5 +*~
     1.6 +*.swp
     1.7 +
     1.8 +*.{aux,log,lof,lot,nav,out,snm,toc,bak}
     1.9 +*.pdf
    1.10 +
    1.11 +*-print.*
     2.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     2.2 +++ b/gen-print-source.sh	Fri Aug 14 14:33:36 2009 +0200
     2.3 @@ -0,0 +1,2 @@
     2.4 +#!/bin/sh
     2.5 +sed '/\\pause/d' "$1" > "`echo $1 | sed 's/\.tex/-print.tex/'`"
     3.1 Binary file uzbl-logo.png has changed
     4.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     4.2 +++ b/uzbl.tex	Fri Aug 14 14:33:36 2009 +0200
     4.3 @@ -0,0 +1,310 @@
     4.4 +% @file
     4.5 +% @brief	 speach: uzbl (CCCS)
     4.6 +% @author	markus schnalke <meillo@marmaro.de>
     4.7 +% @since	 2009-06-14
     4.8 +
     4.9 +
    4.10 +\documentclass{beamer}
    4.11 +
    4.12 +	\usepackage[utf8]{inputenc}
    4.13 +	\usepackage{graphicx}
    4.14 +	\usepackage[automark]{scrpage2}
    4.15 +	\setlength{\parskip}{2.0ex plus 1.0ex minus 0.5ex}
    4.16 +
    4.17 +	\title{uzbl}
    4.18 +	\author{markus schnalke}
    4.19 +	\date{2009-08-13}
    4.20 +
    4.21 +\begin{document}
    4.22 +
    4.23 +
    4.24 +\frame{
    4.25 +	\vspace{6em}
    4.26 +	\begin{center}
    4.27 +		\includegraphics[scale=0.4]{uzbl-logo.png}
    4.28 +
    4.29 +		{a web browser that adheres to the Unix Philosophy}
    4.30 +
    4.31 +		\vspace{5em}
    4.32 +
    4.33 +		{ \tiny
    4.34 +		markus schnalke \textless{}meillo@marmaro.de\textgreater{}
    4.35 +		}
    4.36 +	\end{center}
    4.37 +}
    4.38 +
    4.39 +
    4.40 +
    4.41 +\frame{ \frametitle{better:}
    4.42 +	\begin{center}
    4.43 +		{\huge thoughts on sane web browsers}
    4.44 +	\end{center}
    4.45 +}
    4.46 +
    4.47 +
    4.48 +
    4.49 +
    4.50 +
    4.51 +\frame{ \frametitle{Recap: The Unix Philosophy (1)}
    4.52 +
    4.53 +\textbf{Gancarz:}
    4.54 +
    4.55 +-- small is beautiful
    4.56 +
    4.57 +-- make each program do one thing well
    4.58 +
    4.59 +-- use software leverage to your advantage
    4.60 +
    4.61 +-- avoid captive user interfaces
    4.62 +
    4.63 +-- make every program a filter
    4.64 +
    4.65 +\dots
    4.66 +
    4.67 +}
    4.68 +
    4.69 +\frame{ \frametitle{Recap: The Unix Philosophy (2)}
    4.70 +
    4.71 +\textbf{McIlroy:}
    4.72 +
    4.73 +-- write programs that do one thing and do it well
    4.74 +
    4.75 +-- write programs to work together
    4.76 +
    4.77 +-- write programs to handle text streams
    4.78 +
    4.79 +}
    4.80 +
    4.81 +
    4.82 +
    4.83 +\frame{ \frametitle{modern web browsers}
    4.84 +
    4.85 +\dots\ are not small
    4.86 +\hfill\ (huge amounts of code)
    4.87 +% how many SLOC
    4.88 +
    4.89 +\pause
    4.90 +
    4.91 +\dots\ do not do one thing
    4.92 +\hfill\ (include lots of stuff)
    4.93 +% browse, bookmarks, download, news feeds
    4.94 +
    4.95 +\pause
    4.96 +
    4.97 +\dots\ do not use software leverage
    4.98 +\hfill\ (do not use available tools)
    4.99 +% no use of wget, newsbeuter
   4.100 +
   4.101 +\pause
   4.102 +
   4.103 +\dots\ have captive user interfaces
   4.104 +\hfill\ (do not fit into the Unix UI)
   4.105 +% explains itself, ^U, ^W
   4.106 +
   4.107 +\pause
   4.108 +
   4.109 +\dots\ are no filters
   4.110 +\hfill\ (what about html2text?)
   4.111 +% no combination, they are monolithic blocks
   4.112 +
   4.113 +\pause
   4.114 +
   4.115 +\dots\ do not work together
   4.116 +\hfill\ (everything's already included)
   4.117 +% as above
   4.118 +
   4.119 +\pause
   4.120 +
   4.121 +\dots\ do not handle text streams
   4.122 +\hfill\ (have no interfaces anyway)
   4.123 +% as above
   4.124 +
   4.125 +\pause
   4.126 +
   4.127 +\textbf{$\Rightarrow$ They do completely conflict with the Unix Philosophy!}
   4.128 +
   4.129 +}
   4.130 +
   4.131 +
   4.132 +\frame{ \frametitle{Three problems to solve}
   4.133 +
   4.134 +1) user interface
   4.135 +
   4.136 +2) size, simplicity
   4.137 +
   4.138 +3) software leverage, combination, filters
   4.139 +
   4.140 +}
   4.141 +
   4.142 +
   4.143 +
   4.144 +\frame{ \frametitle{Problem 1: user interface}
   4.145 +
   4.146 +already addressed (e.g. by vimperator)
   4.147 +
   4.148 +pretty easy to implement
   4.149 +
   4.150 +but/only a user-side problem
   4.151 +
   4.152 +}
   4.153 +
   4.154 +
   4.155 +
   4.156 +\frame{ \frametitle{Problem 2: size, simplicity}
   4.157 +
   4.158 +suckless community's limit: 10k SLOC
   4.159 +\pause
   4.160 +
   4.161 +
   4.162 +but:\\
   4.163 +-- gecko (xulrunner-1.9: 2.6m SLOC)\\
   4.164 +-- webkit (webkit-1.1: 390k SLOC)\\
   4.165 +-- khtml (gtkhtml-2.8: 70k SLOC)
   4.166 +
   4.167 +(now imagine 0.1--10 bugs/KLOC)
   4.168 +\pause
   4.169 +
   4.170 +simplicity is not possible because of today's web ($\rightarrow$ digression)
   4.171 +
   4.172 +}
   4.173 +
   4.174 +
   4.175 +
   4.176 +
   4.177 +\frame{ \frametitle{digression: today's web}
   4.178 +
   4.179 +\dots\ is broken!
   4.180 +\pause
   4.181 +
   4.182 +-- state in a state-less technology (deep-links, back-button)
   4.183 +
   4.184 +-- misused technologies (flash)
   4.185 +
   4.186 +-- totally overloaded, much too complex
   4.187 +\pause
   4.188 +
   4.189 +$\Rightarrow$ simple render engines are not possible anymore
   4.190 +
   4.191 +$\Rightarrow$ web browsers have no chance -- they are essentially complex
   4.192 +
   4.193 +}
   4.194 +
   4.195 +
   4.196 +
   4.197 +\frame{ \frametitle{Problem 3: software leverage, combination, filters}
   4.198 +
   4.199 +this is the point to put hands on
   4.200 +\pause
   4.201 +
   4.202 +-- why should the bookmark management be \textbf{inside} the browser?
   4.203 +
   4.204 +-- why does the browser need an \textbf{own} download manager?
   4.205 +\pause
   4.206 +
   4.207 +$\Rightarrow$ better: use external programs that are available!
   4.208 +
   4.209 +}
   4.210 +
   4.211 +
   4.212 +
   4.213 +\frame{ \frametitle{How could it look like}
   4.214 +
   4.215 +-- take one of the bloated render engines (black box)
   4.216 +\pause
   4.217 +
   4.218 +-- wrap it into a small program with software leverage in mind
   4.219 +\pause
   4.220 +
   4.221 +-- have interfaces to refer to \textbf{external} programs
   4.222 +\pause
   4.223 +
   4.224 +-- add a good user interface
   4.225 +
   4.226 +}
   4.227 +
   4.228 +
   4.229 +\frame{ \frametitle{Examples (1)}
   4.230 +
   4.231 +\textbf{uzbl}
   4.232 +
   4.233 +\texttt{http://uzbl.org}
   4.234 +
   4.235 +by Dieter Plaetinck (Dieterbe)
   4.236 +
   4.237 +since 2009-04
   4.238 +
   4.239 +started as {\small \texttt{http://bbs.archlinux.org/viewtopic.php?id=67463}}
   4.240 +
   4.241 +2\,700/1\,100 SLOC (2\,300/280 SLOC in May)
   4.242 +
   4.243 +is quite active (various branches)
   4.244 +
   4.245 +impressive work was achieved in short time
   4.246 +
   4.247 +}
   4.248 +
   4.249 +
   4.250 +\frame{ \frametitle{Examples (2)}
   4.251 +
   4.252 +\textbf{surf}
   4.253 +
   4.254 +\texttt{http://surf.suckless.org}
   4.255 +
   4.256 +by Enno Boland (Gottox)
   4.257 +
   4.258 +since 2009-06
   4.259 +
   4.260 +500 SLOC
   4.261 +
   4.262 +minimalistic reimplementation of uzbl !?
   4.263 +
   4.264 +like uzbl was in the very beginning
   4.265 +
   4.266 +}
   4.267 +
   4.268 +
   4.269 +\frame{ \frametitle{5 steps to improve the software world}
   4.270 +
   4.271 +1) understand: the Unix Philosophy!
   4.272 +\pause
   4.273 +
   4.274 +2) realize: a lot of modern software does not comply
   4.275 +\pause
   4.276 +
   4.277 +3) realize: it's mostly the same kinds of problems
   4.278 +\pause
   4.279 +
   4.280 +4) realize: it can be done better
   4.281 +\pause
   4.282 +
   4.283 +5) do it better!
   4.284 +\pause
   4.285 +
   4.286 +$\Rightarrow$ write, help, use sane software!
   4.287 +
   4.288 +}
   4.289 +
   4.290 +
   4.291 +
   4.292 +
   4.293 +
   4.294 +\frame{
   4.295 +software used:\\
   4.296 +-- Debian GNU/Linux\\
   4.297 +-- LaTeX beamer, latexmk, fbgs\\
   4.298 +-- vim, sloccount, mercurial
   4.299 +
   4.300 +\begin{block}{}
   4.301 +	\vspace{7ex}
   4.302 +	\centerline{\textbf{Thanks for your attention}}
   4.303 +	\vspace{7ex}
   4.304 +\end{block}
   4.305 +
   4.306 +
   4.307 +{\scriptsize The slides are available on \texttt{http://marmaro.de/docs} \hfill 2009-08-13 }
   4.308 +
   4.309 +}
   4.310 +
   4.311 +
   4.312 +\end{document}
   4.313 +