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 +