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 wrap: on
line diff
--- /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.*
--- /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/'`"
Binary file uzbl-logo.png has changed
--- /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 <meillo@marmaro.de>
+% @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}
+