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




