# HG changeset patch
# Parent 9883e23afecaf44cf67a1f956d8bb8a912c6fe23
com: add slides for the Fosdem 2013 presentation

diff --git a/com/images/twitter-bird-dark-bgs.pdf b/com/images/twitter-bird-dark-bgs.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..1d3b305deabc2ca218a4a01ee164d1e9b404d90f
GIT binary patch
diff --git a/com/images/twitter-bird-light-bgs.pdf b/com/images/twitter-bird-light-bgs.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..e2536c220c07922151b4d572827366dac2f8416a
GIT binary patch
diff --git a/com/slides/2013_fosdem/2013_fosdem.tex b/com/slides/2013_fosdem/2013_fosdem.tex
new file mode 100644
--- /dev/null
+++ b/com/slides/2013_fosdem/2013_fosdem.tex
@@ -0,0 +1,176 @@
+\documentclass[xcolor={usenames,svgnames}]{beamer}
+
+\usepackage{rtxslides}
+\usepackage[american]{babel}
+\usepackage{tikz}
+\usetikzlibrary{shapes,fit}
+
+\selectbiblanguage{american}
+
+\title{A DSL for driver development, why \& how?}
+\date{Fosdem 2013}
+\author{Louis Opter \\ \texttt{www.rathaxes.org}}
+
+\definecolor{lightred}{RGB}{147,36,33}
+\tikzset{componentarrow/.style={->, >=stealth, color=rathaxesred, ultra thick}}
+
+\newcommand{\cemph}[1]{{\itshape{\textcolor{rathaxesred}{#1}}}}
+
+\newcommand{\tred}[1]{\textcolor{rathaxesred}{#1}}
+
+\tikzset{warrow/.style={->, >=stealth, color=white, ultra thick}}
+
+\tikzset{graybox/.style={draw,rectangle,rounded corners=3pt,very thick,densely dashed,color=gray!75,text=white}}
+\tikzset{redbox/.style={draw,rectangle,rounded corners=5pt,ultra thick,color=rathaxesred,text=white}}
+\tikzset{redcontainer/.style={draw,rectangle,rounded corners=5pt,ultra thick,color=rathaxesred,text=white,minimum height=3.5cm,minimum width=2.5cm}}
+
+\begin{document}
+
+\begin{frame}
+\titlepage
+\end{frame}
+
+\begin{frame}{About us}
+\Large{
+\begin{itemize}
+\item<1-> Three guys, limited experience;
+\item<2-> Lionel's idea back in 2007;
+\item<3-> Experimentations, POC in 2009;
+\item<4-> A side project for us since 2010.
+\end{itemize}
+}
+\end{frame}
+
+\begin{frame}{Why?}
+\Large{
+\pause
+\begin{itemize}
+\item Learn;
+\item Biggest part of OSes code base;
+\item Dominant cause of crashes;
+\item Complexity/Skills required;
+\pause
+\item \emph{Understanding Modern Device Drivers} \cite{kadavasplos12}.
+\end{itemize}
+\pause
+
+\begin{center}
+How can this be solved/improved?
+\end{center}
+}
+\end{frame}
+
+\begin{frame}{ToC}
+\Large{
+\begin{enumerate}
+\item “State of the art”;
+\item Quick dive into \rtx;
+\item Wrap-up \& next steps.
+\end{enumerate}
+}
+\end{frame}
+
+\begin{frame}
+\begin{center}
+\LARGE{
+\emph{``State of the art''}
+}
+\end{center}
+\end{frame}
+
+\begin{frame}{RAD Tools}
+\Large{
+Jungo's WinDriver: \url{http://youtu.be/-o6M1ljZMQk}
+}
+\end{frame}
+
+\begin{frame}{Static Analysis}
+\Large{
+\only<1>{
+\begin{itemize}
+\item Static Driver Verifier (Windows specific);
+\item Safe Drive (Linux) \cite{safedrive};
+\item SymDrive \cite{symdrive}.
+\end{itemize}
+}
+\only<2>{
+\begin{itemize}
+\item Cover topics we don't cover \cemph{yet};
+\item Doesn't solve code re-usability;
+\item SymDrive is very interesting.
+\end{itemize}
+}
+}
+\end{frame}
+
+\begin{frame}{Interface Description Languages (IDL)}
+\only<1>{
+\Large{
+\begin{itemize}
+\item Devil \cite{Reveillere:these2001};
+\item Hail (similar to Devil).
+\end{itemize}
+}
+}
+\only<2>{
+\large{
+\begin{itemize}
+\item Describe interfaces to access the registers with constraints;
+\item No notion of bus (Devil);
+\item Don't describe the algorithms to access the registers.
+\end{itemize}
+}
+}
+\only<3>{
+\Large{
+\begin{itemize}
+\item Only solve one part of the problematic;
+\item \rtx\ started from Devil.
+\end{itemize}
+}
+}
+\end{frame}
+
+\begin{frame}{Domain Specific Languages (DSL)}
+\Large{
+\begin{itemize}
+\item Termite \cite{Ryzhyk_CKSH_09};
+\item \rtx.
+\end{itemize}
+}
+\end{frame}
+
+\begin{frame}
+\begin{center}
+\LARGE{
+\emph{Quick dive in our WIP}
+}
+\end{center}
+\end{frame}
+
+\begin{frame}
+\begin{center}
+\LARGE{
+\emph{Wrap-up}
+}
+\end{center}
+\end{frame}
+
+\begin{frame}{Questions?}
+\begin{center}
+\Huge{Thanks}
+
+\end{center}
+\vspace{2em}
+\begin{itemize}
+\item \Large{\url{http://www.rathaxes.org/}}
+\item \Large{\texttt{\#rathaxes} on IRC (\texttt{chat.freenode.net})}
+\item \Large{\twitter}
+\end{itemize}
+\end{frame}
+
+\begin{frame}{Bibliography}
+\rtxbibliography
+\end{frame}
+
+\end{document}
diff --git a/com/slides/2013_fosdem/CMakeLists.txt b/com/slides/2013_fosdem/CMakeLists.txt
new file mode 100644
--- /dev/null
+++ b/com/slides/2013_fosdem/CMakeLists.txt
@@ -0,0 +1,6 @@
+RATHAXES_COPY_LATEX_CLASSES()
+
+ADD_LATEX_DOCUMENT(2013_fosdem.tex
+                   BIBFILES
+                   ../../../doc/bibliography.bib
+                   DEFAULT_PDF MANGLE_TARGET_NAMES)
diff --git a/com/slides/CMakeLists.txt b/com/slides/CMakeLists.txt
--- a/com/slides/CMakeLists.txt
+++ b/com/slides/CMakeLists.txt
@@ -1,3 +1,4 @@
 ADD_SUBDIRECTORY(2011_lse)
 ADD_SUBDIRECTORY(2011_lsm)
 ADD_SUBDIRECTORY(2012_lsm)
+ADD_SUBDIRECTORY(2013_fosdem)
diff --git a/doc/bibliography.bib b/doc/bibliography.bib
--- a/doc/bibliography.bib
+++ b/doc/bibliography.bib
@@ -69,3 +69,59 @@
     month           = feb,
     note            = "\url{http://www.gnu.org/licenses/lgpl-2.1.html}"
 }
+
+@InProceedings{kadavasplos12,
+   author           = "{Asim Kadav and Michael M. Swift}",
+   title            = "{U}nderstanding {M}odern {D}evice {D}rivers", 
+   booktitle        = {ASPLOS},
+   address          = {London, UK},
+   month            = {March 3-7},
+   year             = {2012},
+   note             = "\url{http://pages.cs.wisc.edu/~kadav/study/}"
+}
+
+@manual{SDV,
+    title           = "{S}tatic {D}river {V}erifier",
+    organization    = "{M}icrosoft / {M}icrosoft {R}easearch",
+    note            = "\url{http://msdn.microsoft.com/en-us/library/windows/hardware/ff552808.aspx}"
+}
+
+@InProceedings{safedrive,
+    author          = "{Feng Zhou, Jeremy Condit, Zachary Anderson, and Ilya Bagrak; Rob Ennals; Matthew Harren, George Necula, and Eric Brewer}",
+    title           = "SafeDrive: Safe and Recoverable Extensions Using Language-Based Techniques",
+    booktitle       = "OSDI '06",
+    address         = {Seattle, WA},
+    month           = {November 6-8},
+    year            = {2006},
+    note            = "\url{http://ivy.cs.berkeley.edu/safedrive/}"
+}
+
+@InProceedings{symdrive,
+    author          = "{Matthew J. Renzelmann, Asim Kadav, and Michael M. Swift}",
+    title           = "SymDrive: Testing Drivers without Devices",
+    booktitle       = "OSDI '12",
+    address         = {Hollywood, CA},
+    month           = {October 8-10},
+    year            = {2012},
+    note            = "\url{http://research.cs.wisc.edu/sonar/projects/symdrive/index.shtml}"
+}
+
+@phdthesis{Reveillere:these2001,
+    author          = {R\'eveill\`ere, L.},
+    title           = {Approche langage au d\'eveloppement de pilotes de p\'eriph\'eriques robustes},
+    school          = {Universit{\'e} de Rennes~1, France},
+    year            = {2001},
+    type            = {Th\`{e}se de doctorat},
+    month           = {December},
+    note            = {\url{http://www.labri.fr/perso/reveille/publications/papers/reveillere-thesis.pdf}}
+}
+
+@inproceedings{Ryzhyk_CKSH_09,
+   title            = {Automatic Device Driver Synthesis with {Termite}},
+   booktitle        = {Proceedings of the 22\textsuperscript{nd} ACM Symposium on Operating Systems Principles},
+   author           = {Leonid Ryzhyk and Peter Chubb and Ihor Kuz and Le Sueur, Etienne and Gernot Heiser},
+   year             = {2009},
+   month            = {Oct},
+   address          = {Big Sky, MT, USA},
+   note             = {\url{http://ssrg.nicta.com.au/publications/papers/Ryzhyk_CKSH_09.pdf}}
+}
diff --git a/maintainers/latex/rathaxes.sty b/maintainers/latex/rathaxes.sty
--- a/maintainers/latex/rathaxes.sty
+++ b/maintainers/latex/rathaxes.sty
@@ -9,6 +9,7 @@
 \RequirePackage{libertine}
 \RequirePackage{inconsolata}
 \RequirePackage{tabularx}
+\RequirePackage{natbib}
 \RequirePackage[fixlanguage]{babelbib}
 \expandafter\RequirePackage[\@rtxlanguage]{babel}
 
diff --git a/maintainers/latex/rtxslides.sty b/maintainers/latex/rtxslides.sty
--- a/maintainers/latex/rtxslides.sty
+++ b/maintainers/latex/rtxslides.sty
@@ -6,19 +6,31 @@
 \RequirePackage{inconsolata}
 \RequirePackage[utf8]{inputenc}
 \RequirePackage[T1]{fontenc}
+\RequirePackage[fixlanguage]{babelbib}
 
 \newcommand{\rtx}{Rathaxes}
+% Useful in tikz:
+\newcommand{\bgcolor}{black}
+\newcommand{\fgcolor}{white}
+\newcommand{\twitter}{\raisebox{-0.3ex}{\includegraphics[height=1em]{twitter-bird-dark-bgs}} \href{https://twitter.com/rathaxes}{@rathaxes}}
 
 \definecolor{rathaxesred}{RGB}{190,36,31}
 \setbeamercolor{normal text}{fg=white,bg=black}
 \setbeamercolor{structure}{fg=rathaxesred}
 
-\DeclareOption{reverse}{\setbeamercolor{normal text}{fg=black,bg=white}}
+\DeclareOption{reverse}{
+\setbeamercolor{normal text}{fg=black,bg=white}
+\renewcommand{\bgcolor}{white}
+\renewcommand{\fgcolor}{black}
+\renewcommand{\twitter}{\raisebox{-0.3ex}{\includegraphics[height=1em]{twitter-bird-light-bgs}} \href{https://twitter.com/rathaxes}{@rathaxes}}
+}
 \ProcessOptions\relax
 
 \setbeamerfont{abstract}{family=\rmfamily,shape=\itshape}
 
 \useoutertheme{infolines}
+\setbeamertemplate{navigation symbols}{}
+\setbeamertemplate{bibliography item}[text]
 
 \addtobeamertemplate{title page}{%
 \begin{center}%
@@ -27,3 +39,10 @@
 \end{center}}{}
 
 \graphicspath{{@RATHAXES_SOURCE_DIR@/com/images/}}
+
+\newcommand{\rtxbibliography}{%
+\bibliographystyle{abbrv}
+\scriptsize{
+\bibliography{@RATHAXES_SOURCE_DIR@/doc/bibliography}
+}
+}
