
meillo@0: % chaos seminar talk about masqmail
meillo@0: %
meillo@0: % markus schnalke <meillo@marmaro.de>
meillo@0: % since 2009-02-24
meillo@0: 
meillo@0: 
meillo@0: \documentclass{beamer}
meillo@0: 
meillo@0: \title{masqmail}
meillo@0: \author{markus schnalke}
meillo@0: \date{2009-03-09}
meillo@0: 
meillo@0: \usepackage[utf8]{inputenc}
meillo@0: \usepackage{url}
meillo@0: \usepackage{graphicx}
meillo@0: \setlength{\parskip}{2.0ex plus 1.0ex minus 0.5ex}
meillo@0: 
meillo@0: \newcommand{\secframe}[1]{
meillo@0: 	\section{#1}
meillo@0: 	\frame{ \vfill\vfill \centerline{ \huge #1 } \vfill }
meillo@0: }
meillo@0: 
meillo@0: \newcommand{\ft}[1]{
meillo@0: 	\frametitle{#1}
meillo@0: }
meillo@0: 
meillo@1: \newcommand{\oneline}[1]{
meillo@1: 	\frame{
meillo@1: 		\vfill\vfill
meillo@3: 		\centerline{#1}
meillo@1: 		\vfill
meillo@1: 	}
meillo@1: }
meillo@1: 
meillo@1: 
meillo@0: 
meillo@0: \begin{document}
meillo@0: 
meillo@0: 
meillo@0: \frame{
meillo@0: 
meillo@0: \vspace{8em}
meillo@0: \begin{center}
meillo@0: 
meillo@0: {\huge\bf masqmail}
meillo@0: 
meillo@0: a mail transfer agent for workstations and small networks
meillo@0: 
meillo@0: \vspace{6em}
meillo@0: 
meillo@0: { \tiny
meillo@0: markus schnalke \textless{}meillo@marmaro.de\textgreater{}
meillo@0: }
meillo@0: 
meillo@0: \end{center}
meillo@0: }
meillo@0: 
meillo@0: 
meillo@0: 
meillo@2: \secframe{about me}
meillo@0: 
meillo@0: 
meillo@2: \frame{\ft{markus schnalke}
meillo@0: 
meillo@5: past:
meillo@0: 
meillo@5: \qquad Business Information Systems\\
meillo@5: \qquad at University of Applied Sciences, Ulm
meillo@2: 
meillo@5: \qquad Diploma Thesis about masqmail
meillo@2: 
meillo@2: 
meillo@5: future:
meillo@2: 
meillo@5: \qquad Master in Informatics\\
meillo@5: \qquad here at University, Ulm
meillo@0: 
meillo@0: }
meillo@0: 
meillo@0: 
meillo@2: \frame{\ft{I am interested in}
meillo@0: 
meillo@2: Unix Philosophy
meillo@0: 
meillo@2: suckless software
meillo@0: 
meillo@0: Free Software
meillo@0: 
meillo@0: Debian
meillo@0: 
meillo@2: }
meillo@0: 
meillo@2: 
meillo@2: 
meillo@2: 
meillo@2: \secframe{this talk}
meillo@2: 
meillo@2: 
meillo@2: \frame{ \ft{overview}
meillo@2: 
meillo@6: 1) prerequisites (5\%) %3
meillo@2: 
meillo@6: 2) about masqmail (25\%) %15
meillo@2: 
meillo@6: 3) the thesis (60\%) %6 + 9 + 7 + 4 + 6 = 32
meillo@2: 
meillo@6: 4) help wanted (10\%) %5
meillo@6: 
meillo@6: %== 55
meillo@0: 
meillo@0: }
meillo@0: 
meillo@0: 
meillo@0: 
meillo@0: 
meillo@0: 
meillo@0: 
meillo@2: 
meillo@2: 
meillo@3: \secframe{email? MTA? \dots}
meillo@2: 
meillo@2: 
meillo@2: \frame{\ft{What are MTAs}
meillo@2: 
meillo@2: MTA = Mail Transfer Agent
meillo@2: 
meillo@2: the post offices of email
meillo@2: 
meillo@3: MTAs transfer mail from senders to recipients
meillo@2: 
meillo@2: }
meillo@2: 
meillo@2: 
meillo@2: \frame{\ft{mail agents}
meillo@2: 
meillo@2: \begin{center}
meillo@2: \includegraphics[width=0.8\textwidth]{fig/mail-agents.eps}
meillo@2: \end{center}
meillo@2: 
meillo@2: }
meillo@2: 
meillo@2: 
meillo@2: \oneline{questions?}
meillo@2: 
meillo@2: 
meillo@2: 
meillo@2: 
meillo@2: 
meillo@2: 
meillo@3: 
meillo@3: 
meillo@3: 
meillo@3: 
meillo@3: 
meillo@0: \secframe{about masqmail}
meillo@0: 
meillo@0: 
meillo@0: 
meillo@0: \frame{ \ft{what is masqmail}
meillo@0: 
meillo@2: an MTA
meillo@0: 
meillo@1: a small one
meillo@0: 
meillo@2: one for special setups
meillo@0: 
meillo@0: }
meillo@0: 
meillo@0: 
meillo@0: \frame{ \ft{masqmail's niche}
meillo@0: 
meillo@0: non-permanent online connections
meillo@0: 
meillo@0: over multiple providers
meillo@0: 
meillo@1: especially for workstations and small networks
meillo@1: 
meillo@2: also notebooks
meillo@0: 
meillo@0: }
meillo@0: 
meillo@0: 
meillo@0: \frame{ \ft{history}
meillo@0: 
meillo@0: written by Oliver Kurth
meillo@0: 
meillo@2: 1999 -- 2003
meillo@0: 
meillo@2: GPL
meillo@0: 
meillo@5: about 9\,000 lines of C
meillo@0: 
meillo@0: }
meillo@0: 
meillo@0: 
meillo@2: \frame{\ft{guessed}
meillo@2: 
meillo@2: initially written to use masqdialer-controlled online connections
meillo@2: 
meillo@2: thus: source of the name (``masq\dots'') (not ``\dots qmail'')
meillo@2: 
meillo@2: }
meillo@2: 
meillo@2: 
meillo@2: 
meillo@0: \frame{ \ft{masqmail today}
meillo@0: 
meillo@0: development stopped in 2003
meillo@0: 
meillo@0: not maintained
meillo@0: 
meillo@7: even its original website is down
meillo@0: 
meillo@1: but included in Debian, Ubuntu, Arch, Mandriva, FreeBSD
meillo@0: 
meillo@0: }
meillo@0: 
meillo@0: 
meillo@0: \frame{ \ft{value of masqmail}
meillo@0: 
meillo@0: covers a niche
meillo@0: 
meillo@0: has unique features
meillo@0: 
meillo@0: has users!
meillo@0: 
meillo@0: }
meillo@0: 
meillo@0: 
meillo@0: \frame{ \ft{problems of masqmail}
meillo@0: 
meillo@0: no further development
meillo@0: 
meillo@7: emailing has changed
meillo@7: 
meillo@0: unfixed bugs
meillo@0: 
meillo@0: }
meillo@0: 
meillo@0: 
meillo@3: \oneline{questions?}
meillo@0: 
meillo@0: 
meillo@1: 
meillo@2: 
meillo@2: 
meillo@2: 
meillo@2: 
meillo@2: 
meillo@2: 
meillo@2: 
meillo@2: 
meillo@2: 
meillo@2: 
meillo@2: 
meillo@2: 
meillo@2: 
meillo@3: \secframe{when I met masqmail}
meillo@1: 
meillo@1: 
meillo@5: \frame{\ft{Fall 2007}
meillo@0: 
meillo@5: started to use masqmail
meillo@0: 
meillo@7: because of its small size
meillo@7: 
meillo@5: }
meillo@5: 
meillo@5: \frame{\ft{Spring 2008}
meillo@5: 
meillo@5: problem: realized it is unmaintained in Debian
meillo@0: 
meillo@1: A situation to be changed ... but by whom?
meillo@0: 
meillo@5: \dots me? No!
meillo@0: 
meillo@0: }
meillo@0: 
meillo@0: 
meillo@5: \frame{\ft{Summer 2008}
meillo@0: 
meillo@1: problem: find a topic for the diploma thesis
meillo@0: 
meillo@5: }
meillo@5: 
meillo@5: 
meillo@5: \frame{\ft{while lying in bed some night}
meillo@5: 
meillo@7: the great idea: solve both problems at once
meillo@0: 
meillo@5: 1) \textbf{use the diploma thesis to revive masqmail}
meillo@3: 
meillo@5: 2) \textbf{use masqmail to do a great diploma thesis}
meillo@0: 
meillo@0: }
meillo@0: 
meillo@0: 
meillo@1: \frame{\ft{advising professor}
meillo@1: 
meillo@5: professor Markus Sch\"affter
meillo@1: 
meillo@1: thanks!
meillo@1: 
meillo@1: }
meillo@1: 
meillo@1: 
meillo@1: 
meillo@2: 
meillo@5: \frame{\ft{logical decisions}
meillo@2: 
meillo@5: motivation:
meillo@2: 
meillo@5: \qquad for myself
meillo@2: 
meillo@5: \qquad for the community
meillo@2: 
meillo@5: thus:
meillo@2: 
meillo@5: \qquad write in English
meillo@2: 
meillo@5: \qquad make the thesis free available
meillo@2: 
meillo@2: }
meillo@2: 
meillo@2: 
meillo@2: 
meillo@0: \frame{\ft{guiding principle}
meillo@0: 
meillo@0: \begin{center}
meillo@2: \it
meillo@2: Do what you think is interesting,\\
meillo@2: do something that you think is fun and worthwhile,\\
meillo@2: because otherwise you won't do it well anyway.
meillo@0: 
meillo@2: ---Brian~W.\ Kernighan---
meillo@0: \end{center}
meillo@0: 
meillo@0: }
meillo@0: 
meillo@0: 
meillo@0: 
meillo@0: 
meillo@1: 
meillo@1: 
meillo@1: 
meillo@2: \secframe{the thesis in short}
meillo@0: 
meillo@0: 
meillo@0: 
meillo@4: %\frame{\ft{planned was}
meillo@4: %
meillo@4: %1) purpose and structure of an MTA/of masqmail
meillo@4: %
meillo@4: %2) security analysis
meillo@4: %
meillo@4: %3) code improvements
meillo@4: %
meillo@4: %4) documentation, test, distribution
meillo@4: %
meillo@4: %With the goal to release a new version and get it into Debian
meillo@4: %
meillo@4: %}
meillo@4: %
meillo@4: %
meillo@4: %\frame{\ft{however, it resulted in}
meillo@4: %
meillo@4: %1) introduction
meillo@4: %
meillo@4: %2) market analysis
meillo@4: %
meillo@4: %3) mail transfer agents
meillo@4: %
meillo@4: %4) masqmail's present and future
meillo@4: %
meillo@4: %5) improvement plans
meillo@4: %
meillo@4: %Became pretty theoretic (I don't worry)
meillo@4: %
meillo@4: %}
meillo@1: 
meillo@1: 
meillo@1: 
meillo@1: 
meillo@0: 
meillo@0: 
meillo@0: 
meillo@0: \frame{ \ft{ch01: introduction}
meillo@0: 
meillo@0: general prerequisites
meillo@0: 
meillo@0: the masqmail project
meillo@0: 
meillo@0: value and problems of masqmail
meillo@0: 
meillo@1: \textbf{$\Rightarrow$ reasons to do this thesis}
meillo@0: 
meillo@0: }
meillo@0: 
meillo@0: 
meillo@0: 
meillo@0: \frame{ \ft{ch02: market analysis}
meillo@0: 
meillo@0: classification, life cycle, and trends of electronic communication
meillo@0: 
meillo@0: SWOT and trends for email
meillo@0: 
meillo@1: \textbf{$\Rightarrow$ show that email is expected to survive}
meillo@0: 
meillo@0: }
meillo@0: 
meillo@0: 
meillo@0: \frame{ \ft{ch03: mail transfer agents}
meillo@0: 
meillo@0: classification of MTAs
meillo@0: 
meillo@0: masqmail's competitors
meillo@0: 
meillo@0: short comparison
meillo@0: 
meillo@1: \textbf{$\Rightarrow$ provide knowledge for following chapters}
meillo@0: 
meillo@0: }
meillo@0: 
meillo@0: 
meillo@0: 
meillo@0: 
meillo@0: \frame{ \ft{ch04: masqmail's present and future}
meillo@0: 
meillo@0: the goal (revive masqmail)
meillo@0: 
meillo@0: requirements
meillo@0: 
meillo@0: \quad\quad fulfilled requirements
meillo@0: 
meillo@0: \quad\quad work to do
meillo@0: 
meillo@0: ways for further development
meillo@0: 
meillo@0: result
meillo@0: 
meillo@1: \textbf{$\Rightarrow$ the core of the thesis: a plan to revive masqmail}
meillo@0: 
meillo@0: }
meillo@0: 
meillo@0: 
meillo@0: 
meillo@1: \frame{ \ft{ch05: improvement plans}
meillo@1: 
meillo@1: more detailed descriptions of the work tasks
meillo@1: 
meillo@1: \textbf{$\Rightarrow$ recommendations how to do the proposed changes}
meillo@1: 
meillo@1: }
meillo@1: 
meillo@1: 
meillo@1: \oneline{questions?}
meillo@1: 
meillo@1: 
meillo@1: 
meillo@1: 
meillo@1: 
meillo@2: 
meillo@6: \oneline{\it we're half way through :-) }
meillo@2: 
meillo@2: 
meillo@2: 
meillo@2: 
meillo@2: 
meillo@2: 
meillo@2: \secframe{in detail: ch03 MTAs}
meillo@2: 
meillo@2: 
meillo@1: 
meillo@1: \frame{\ft{MTAs}
meillo@1: 
meillo@5: relay-only MTAs (forwarders):
meillo@1: 
meillo@5: \qquad nullmailer, ssmtp
meillo@1: 
meillo@5: groupware:
meillo@5: 
meillo@5: \qquad Lotus Notes, Exchange, opengroupware.org
meillo@5: 
meillo@5: ``real'' MTAs:
meillo@5: 
meillo@5: \qquad sendmail, exim, qmail, postfix, masqmail
meillo@1: 
meillo@1: }
meillo@1: 
meillo@1: 
meillo@1: 
meillo@1: \frame{\ft{market shares}
meillo@1: 
meillo@4: \input{tbl/mta-market-share.tbl}
meillo@4: 
meillo@4: }
meillo@4: 
meillo@4: 
meillo@4: 
meillo@4: \frame{\ft{comparison}
meillo@4: 
meillo@4: \input{tbl/mta-comparison.tbl}
meillo@1: 
meillo@1: }
meillo@1: 
meillo@1: 
meillo@1: 
meillo@1: \frame{\ft{why not sendmail}
meillo@1: 
meillo@1: - too large
meillo@1: 
meillo@1: - too complex
meillo@1: 
meillo@1: - structurally insecure
meillo@1: 
meillo@1: - simply obsolete
meillo@1: 
meillo@1: }
meillo@1: 
meillo@1: \frame{\ft{why not exim}
meillo@1: 
meillo@1: - too large
meillo@1: 
meillo@1: - designed for always online hosts
meillo@1: 
meillo@1: }
meillo@1: 
meillo@1: \frame{\ft{why not qmail}
meillo@1: 
meillo@1: - outdated
meillo@1: 
meillo@1: - designed for always online hosts with fast connections
meillo@1: 
meillo@1: }
meillo@1: 
meillo@1: \frame{\ft{why not postfix}
meillo@1: 
meillo@1: - too large
meillo@1: 
meillo@5: - too complex
meillo@5: 
meillo@1: - not designed for masqmail's scenario
meillo@1: 
meillo@1: }
meillo@1: 
meillo@1: \frame{\ft{in summary}
meillo@1: 
meillo@1: - other MTAs are bad substitutes for masqmail
meillo@1: 
meillo@1: - though they seem to be generally able to be substitutes
meillo@1: 
meillo@1: }
meillo@1: 
meillo@1: 
meillo@1: \oneline{comments and annotations?}
meillo@1: 
meillo@1: 
meillo@1: 
meillo@1: 
meillo@1: 
meillo@1: 
meillo@1: 
meillo@1: 
meillo@1: 
meillo@2: 
meillo@2: 
meillo@2: 
meillo@2: 
meillo@2: 
meillo@2: 
meillo@2: \secframe{in detail: ch04 present and future}
meillo@2: 
meillo@2: 
meillo@2: \frame{\ft{functional requirements}
meillo@2: 
meillo@4: \input{tbl/func-requirements.tbl}
meillo@4: 
meillo@2: }
meillo@2: 
meillo@2: \frame{\ft{non-functional requirements}
meillo@2: 
meillo@4: \input{tbl/nonf-requirements.tbl}
meillo@2: 
meillo@2: }
meillo@2: 
meillo@4: \frame{\ft{work tasks}
meillo@4: 
meillo@4: TODO\,1: Encryption
meillo@4: 
meillo@4: TODO\,2: Authentication
meillo@4: 
meillo@4: TODO\,3: Security
meillo@4: 
meillo@4: TODO\,4: Reliability
meillo@4: 
meillo@4: TODO\,5: Spam handling
meillo@4: 
meillo@4: TODO\,6: Extendability
meillo@4: 
meillo@2: 
meillo@2: }
meillo@2: 
meillo@4: 
meillo@4: \frame{\ft{further development}
meillo@4: 
meillo@5: 1) improve existing code
meillo@4: 
meillo@5: 2) add wrappers and interposition filters
meillo@4: 
meillo@5: 3) redesign and rewrite from scratch
meillo@5: 
meillo@5: \quad
meillo@5: 
meillo@5: $1) + 2) = 13$ \quad vs. \quad $3) = 17$
meillo@2: 
meillo@2: }
meillo@2: 
meillo@2: 
meillo@4: \frame{\ft{architecture}
meillo@4: 
meillo@4: \begin{center}
meillo@4: \includegraphics[width=0.8\textwidth]{fig/callgraph.eps}
meillo@4: \end{center}
meillo@2: 
meillo@2: }
meillo@2: 
meillo@2: 
meillo@4: 
meillo@1: \frame{\ft{the result}
meillo@0: 
meillo@0: ``one fits all'' is not possible
meillo@0: 
meillo@0: hence: different strategies for different goals
meillo@0: 
meillo@0: short-term goal: keep masqmail usable\\
meillo@5: \qquad $\rightarrow$ improve existing code
meillo@0: 
meillo@0: long-term goal: make masqmail future-proof\\
meillo@5: \qquad $\rightarrow$ recreate it from scratch
meillo@0: 
meillo@0: disadvantage: more work
meillo@0: 
meillo@0: }
meillo@0: 
meillo@0: 
meillo@5: \oneline{questions?}
meillo@0: 
meillo@0: 
meillo@0: 
meillo@0: 
meillo@0: 
meillo@0: 
meillo@0: 
meillo@2: \secframe{in detail: ch05.1 existing code}
meillo@2: 
meillo@2: 
meillo@2: 
meillo@2: 
meillo@5: \frame{\ft{TODO 1: Encryption}
meillo@2: 
meillo@5: STARTTLS
meillo@2: 
meillo@5: qmail patch as template
meillo@5: 
meillo@5: affected files: smtp\_in.c, smtp\_out.c, conf.c
meillo@2: 
meillo@2: }
meillo@2: 
meillo@2: 
meillo@2: 
meillo@5: \frame{\ft{TODO 2: Authentication}
meillo@5: 
meillo@5: static: TCP Wrapper
meillo@5: 
meillo@5: dynamic: SMTP-AUTH with SASL
meillo@5: 
meillo@5: affected files: smtp\_in.c, smtp\_out.c, conf.c
meillo@5: 
meillo@5: }
meillo@5: 
meillo@5: 
meillo@5: 
meillo@5: \frame{\ft{TODO 3: Security}
meillo@5: 
meillo@5: mail security layers
meillo@5: 
meillo@5: \begin{center}
meillo@5: \includegraphics[width=\textwidth]{fig/proxy-setup.eps}
meillo@5: \end{center}
meillo@5: 
meillo@5: }
meillo@5: 
meillo@5: 
meillo@5: \oneline{questions?}
meillo@5: 
meillo@2: 
meillo@2: 
meillo@2: 
meillo@2: 
meillo@2: 
meillo@2: 
meillo@2: \secframe{in detail: ch05.2 new design}
meillo@2: 
meillo@5: \frame{\ft{design goals}
meillo@5: 
meillo@5: throughout compartmentalization
meillo@5: 
meillo@5: free internal system from in and out channels
meillo@5: 
meillo@5: single point for scanning
meillo@5: 
meillo@5: concentrate on mail transfer
meillo@5: 
meillo@5: keep it simple, clear, and general
meillo@2: 
meillo@2: }
meillo@2: 
meillo@6: \frame{\ft{incoming and outgoing}
meillo@2: 
meillo@6: in/out:
meillo@2: 
meillo@6: \qquad arbitrary protocol handlers (incoming/outgoing)
meillo@6: 
meillo@6: \qquad one queue-in module; one queue-out module
meillo@6: 
meillo@6: \qquad no own MDA, only a pipe module
meillo@6: 
meillo@6: route management:
meillo@6: 
meillo@6: \qquad the thing special to masqmail
meillo@6: 
meillo@6: \qquad done just before the outgoing modules
meillo@2: 
meillo@5: }
meillo@2: 
meillo@2: 
meillo@6: \frame{\ft{within the queue}
meillo@2: 
meillo@6: mail sanitizing:
meillo@6: 
meillo@6: \qquad qmail: ``don't parse'' $\rightarrow$ parse very carefully
meillo@6: 
meillo@6: \qquad Jon Postel's robustness principle
meillo@6: 
meillo@6: spool files:
meillo@6: 
meillo@6: \qquad preferably in the system's native format
meillo@2: 
meillo@5: }
meillo@5: 
meillo@5: 
meillo@6: \frame{\ft{auth, enc, spam}
meillo@5: 
meillo@6: auth and enc:
meillo@6: 
meillo@6: \qquad in receiving and sending modules (?)
meillo@6: 
meillo@6: \qquad with library code
meillo@6: 
meillo@6: spam and malware:
meillo@6: 
meillo@6: \qquad receiving modules vs. a scanning module
meillo@6: 
meillo@6: \qquad in both places?
meillo@6: 
meillo@6: \qquad malware scanning is not the MTA's job
meillo@5: 
meillo@5: }
meillo@5: 
meillo@5: 
meillo@5: 
meillo@5: \frame{\ft{the proposed architecture}
meillo@5: 
meillo@5: \begin{center}
meillo@5: \includegraphics[width=0.9\textwidth]{fig/masqmail-arch-new.eps}
meillo@5: \end{center}
meillo@5: 
meillo@5: }
meillo@5: 
meillo@5: 
meillo@5: \oneline{questions?}
meillo@5: 
meillo@5: 
meillo@5: 
meillo@5: 
meillo@5: 
meillo@5: \secframe{help wanted!}
meillo@5: 
meillo@5: 
meillo@5: \frame{\ft{work to do}
meillo@5: 
meillo@5: add encryption, authentication, security
meillo@5: 
meillo@5: fix bugs
meillo@5: 
meillo@5: documentation
meillo@5: 
meillo@5: user guides and ``marketing''
meillo@5: 
meillo@5: create the new masqmail
meillo@5: 
meillo@5: }
meillo@5: 
meillo@5: 
meillo@5: \frame{\ft{current team}
meillo@5: 
meillo@5: \tiny me
meillo@5: 
meillo@5: }
meillo@5: 
meillo@5: 
meillo@5: \frame{\ft{}
meillo@5: 
meillo@5: project site:
meillo@5: 
meillo@5: \qquad \url{http://prog.marmaro.de/masqmail}
meillo@5: 
meillo@5: mailing list:
meillo@5: 
meillo@5: \qquad masqmail@marmaro.de
meillo@5: 
meillo@5: }
meillo@5: 
meillo@5: 
meillo@5: \frame{\ft{Debian}
meillo@5: 
meillo@5: I search for a DD to sponsor my masqmail work
meillo@5: 
meillo@5: please contact me!
meillo@5: 
meillo@5: }
meillo@5: 
meillo@5: 
meillo@5: \frame{\ft{you!}
meillo@5: 
meillo@5: I welcome your help!
meillo@5: 
meillo@5: I appreciate your advice!
meillo@5: 
meillo@5: I am thankful for your comments!
meillo@5: 
meillo@5: \quad
meillo@5: 
meillo@5: \textbf{help masqmail}
meillo@2: 
meillo@2: }
meillo@0: 
meillo@0: 
meillo@0: 
meillo@0: 
meillo@0: 
meillo@0: 
meillo@0: 
meillo@0: \frame{
meillo@0: 	\vfill\vfill
meillo@0: 	\centerline{\textbf{Thanks for your attention}}
meillo@0: 	\vfill
meillo@0: }
meillo@0: 
meillo@0: 
meillo@1: \frame{\ft{links}
meillo@1: 
meillo@6: \footnotesize
meillo@6: 
meillo@6: my diploma thesis\\
meillo@6: \qquad \url{http://marmaro.de/docs\#diploma}
meillo@6: 
meillo@6: 
meillo@6: masqmail's website\\
meillo@6: \qquad \url{http://prog.marmaro.de/masqmail}
meillo@6: 
meillo@6: 
meillo@6: masqmail mailing list\\
meillo@6: \qquad \url{masqmail@marmaro.de}\\
meillo@6: \qquad \url{minimalist@marmaro.de?subject=subscribe\%20masqmail}
meillo@6: 
meillo@6: 
meillo@6: suckless software\\
meillo@6: \qquad \url{http://www.suckless.org}
meillo@6: 
meillo@1: 
meillo@1: }
meillo@1: 
meillo@1: 
meillo@1: 
meillo@0: 
meillo@0: \frame{ \ft{software used}
meillo@0: 
meillo@0: Debian GNU/Linux
meillo@0: 
meillo@0: \LaTeX\ with the beamer classes
meillo@0: 
meillo@0: Vim, latexmk, and Mercurial
meillo@0: 
meillo@5: diagrams: PIC and groff
meillo@5: 
meillo@6: call graph: Egypt and dot
meillo@6: 
meillo@0: \vfill
meillo@0: 
meillo@0: {\scriptsize The slides are available on \url{http://marmaro.de/docs} \hfill 2009-03-09 }
meillo@0: 
meillo@0: }
meillo@0: 
meillo@0: 
meillo@0: 
meillo@0: 
meillo@0: \end{document}
meillo@0: 
meillo@0: 
meillo@0: 
meillo@0: 
meillo@0: 
meillo@0: \url{http://ulm.ccc.de/ChaosSeminar/2009/03_masqmail}




