# HG changeset patch # User meillo@marmaro.de # Date 1250253216 -7200 # Node ID 2de5f65f76179a585c2eac6b4a9aec8fe64e0f89 a lightning talk about sane web browsers at CCCS diff -r 000000000000 -r 2de5f65f7617 .hgignore --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/.hgignore Fri Aug 14 14:33:36 2009 +0200 @@ -0,0 +1,8 @@ +syntax: glob +*~ +*.swp + +*.{aux,log,lof,lot,nav,out,snm,toc,bak} +*.pdf + +*-print.* diff -r 000000000000 -r 2de5f65f7617 gen-print-source.sh --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gen-print-source.sh Fri Aug 14 14:33:36 2009 +0200 @@ -0,0 +1,2 @@ +#!/bin/sh +sed '/\\pause/d' "$1" > "`echo $1 | sed 's/\.tex/-print.tex/'`" diff -r 000000000000 -r 2de5f65f7617 uzbl-logo.png Binary file uzbl-logo.png has changed diff -r 000000000000 -r 2de5f65f7617 uzbl.tex --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/uzbl.tex Fri Aug 14 14:33:36 2009 +0200 @@ -0,0 +1,310 @@ +% @file +% @brief speach: uzbl (CCCS) +% @author markus schnalke +% @since 2009-06-14 + + +\documentclass{beamer} + + \usepackage[utf8]{inputenc} + \usepackage{graphicx} + \usepackage[automark]{scrpage2} + \setlength{\parskip}{2.0ex plus 1.0ex minus 0.5ex} + + \title{uzbl} + \author{markus schnalke} + \date{2009-08-13} + +\begin{document} + + +\frame{ + \vspace{6em} + \begin{center} + \includegraphics[scale=0.4]{uzbl-logo.png} + + {a web browser that adheres to the Unix Philosophy} + + \vspace{5em} + + { \tiny + markus schnalke \textless{}meillo@marmaro.de\textgreater{} + } + \end{center} +} + + + +\frame{ \frametitle{better:} + \begin{center} + {\huge thoughts on sane web browsers} + \end{center} +} + + + + + +\frame{ \frametitle{Recap: The Unix Philosophy (1)} + +\textbf{Gancarz:} + +-- small is beautiful + +-- make each program do one thing well + +-- use software leverage to your advantage + +-- avoid captive user interfaces + +-- make every program a filter + +\dots + +} + +\frame{ \frametitle{Recap: The Unix Philosophy (2)} + +\textbf{McIlroy:} + +-- write programs that do one thing and do it well + +-- write programs to work together + +-- write programs to handle text streams + +} + + + +\frame{ \frametitle{modern web browsers} + +\dots\ are not small +\hfill\ (huge amounts of code) +% how many SLOC + +\pause + +\dots\ do not do one thing +\hfill\ (include lots of stuff) +% browse, bookmarks, download, news feeds + +\pause + +\dots\ do not use software leverage +\hfill\ (do not use available tools) +% no use of wget, newsbeuter + +\pause + +\dots\ have captive user interfaces +\hfill\ (do not fit into the Unix UI) +% explains itself, ^U, ^W + +\pause + +\dots\ are no filters +\hfill\ (what about html2text?) +% no combination, they are monolithic blocks + +\pause + +\dots\ do not work together +\hfill\ (everything's already included) +% as above + +\pause + +\dots\ do not handle text streams +\hfill\ (have no interfaces anyway) +% as above + +\pause + +\textbf{$\Rightarrow$ They do completely conflict with the Unix Philosophy!} + +} + + +\frame{ \frametitle{Three problems to solve} + +1) user interface + +2) size, simplicity + +3) software leverage, combination, filters + +} + + + +\frame{ \frametitle{Problem 1: user interface} + +already addressed (e.g. by vimperator) + +pretty easy to implement + +but/only a user-side problem + +} + + + +\frame{ \frametitle{Problem 2: size, simplicity} + +suckless community's limit: 10k SLOC +\pause + + +but:\\ +-- gecko (xulrunner-1.9: 2.6m SLOC)\\ +-- webkit (webkit-1.1: 390k SLOC)\\ +-- khtml (gtkhtml-2.8: 70k SLOC) + +(now imagine 0.1--10 bugs/KLOC) +\pause + +simplicity is not possible because of today's web ($\rightarrow$ digression) + +} + + + + +\frame{ \frametitle{digression: today's web} + +\dots\ is broken! +\pause + +-- state in a state-less technology (deep-links, back-button) + +-- misused technologies (flash) + +-- totally overloaded, much too complex +\pause + +$\Rightarrow$ simple render engines are not possible anymore + +$\Rightarrow$ web browsers have no chance -- they are essentially complex + +} + + + +\frame{ \frametitle{Problem 3: software leverage, combination, filters} + +this is the point to put hands on +\pause + +-- why should the bookmark management be \textbf{inside} the browser? + +-- why does the browser need an \textbf{own} download manager? +\pause + +$\Rightarrow$ better: use external programs that are available! + +} + + + +\frame{ \frametitle{How could it look like} + +-- take one of the bloated render engines (black box) +\pause + +-- wrap it into a small program with software leverage in mind +\pause + +-- have interfaces to refer to \textbf{external} programs +\pause + +-- add a good user interface + +} + + +\frame{ \frametitle{Examples (1)} + +\textbf{uzbl} + +\texttt{http://uzbl.org} + +by Dieter Plaetinck (Dieterbe) + +since 2009-04 + +started as {\small \texttt{http://bbs.archlinux.org/viewtopic.php?id=67463}} + +2\,700/1\,100 SLOC (2\,300/280 SLOC in May) + +is quite active (various branches) + +impressive work was achieved in short time + +} + + +\frame{ \frametitle{Examples (2)} + +\textbf{surf} + +\texttt{http://surf.suckless.org} + +by Enno Boland (Gottox) + +since 2009-06 + +500 SLOC + +minimalistic reimplementation of uzbl !? + +like uzbl was in the very beginning + +} + + +\frame{ \frametitle{5 steps to improve the software world} + +1) understand: the Unix Philosophy! +\pause + +2) realize: a lot of modern software does not comply +\pause + +3) realize: it's mostly the same kinds of problems +\pause + +4) realize: it can be done better +\pause + +5) do it better! +\pause + +$\Rightarrow$ write, help, use sane software! + +} + + + + + +\frame{ +software used:\\ +-- Debian GNU/Linux\\ +-- LaTeX beamer, latexmk, fbgs\\ +-- vim, sloccount, mercurial + +\begin{block}{} + \vspace{7ex} + \centerline{\textbf{Thanks for your attention}} + \vspace{7ex} +\end{block} + + +{\scriptsize The slides are available on \texttt{http://marmaro.de/docs} \hfill 2009-08-13 } + +} + + +\end{document} +