\documentclass{beamer}
\newcommand{\red}[1]{{\color{red!100}#1}}
\newcommand{\orange}[1]{{\color{orange!100}#1}}
\newcommand{\green}[1]{{\color{green!50!black}#1}}
\newcommand{\blue}[1]{{\color{blue!100}#1}}
\mode<presentation>{\usetheme{Warsaw}}
\title{Version Control Virtual Hosting}
\author[Geoffrey Thomas]{Geoffrey Thomas \\ scripts.mit.edu project \\ \texttt{geofft@mit.edu}}
\date[6.UAT]{September 16, 2008}
\begin{document}
\begin{frame}
\titlepage
\end{frame}
\begin{frame}
\frametitle{Why do we want virtual hosting?}
\begin{itemize}
  \item<1-> scripts.mit.edu hosting platform
  \begin{itemize}
     \item<1-> hosts many MIT websites, e.g., debathena.mit.edu
     \item<1-> existing standard for \textit{username}.scripts.mit.edu
  \end{itemize}
  \item<2-> Technical considerations
  \begin{itemize}
     \item<2-> Cleaner URLs (not \texttt{svn://svn.mit.edu/myproject})
     \item<2-> Overhead
     \item<2-> Why not? \textit{Can} we add virtual hosting?
  \end{itemize}
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Existing options}
\begin{itemize}
  \item<1-> git: interpolated paths \\
      git://\green{debathena.mit.edu}/\blue{trunk/} $\Rightarrow$
      /srv/\green{debathena.mit.edu}/svn/\blue{trunk/} \\
      \uncover<2->{Can't look up home directories}
  \item<3-> svn: patch to keep the server name \\
      svn://\orange{debathena.mit.edu/trunk} $\Rightarrow$
      /srv/svn/\orange{debathena.mit.edu/trunk} \\
      \uncover<4->{Even less flexible}
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Our solution}
\begin{itemize}
  \item<1-> Hack for svn, to support set-user-id
  \item<2-> FUSE filesystem with symlinks! \\
      /mnt/ldapfs/\red{git}/\green{debathena.mit.edu}/\blue{trunk} $\Rightarrow$
      \green{/afs/.../debathena}/Scripts/\red{git}/\blue{trunk}
  \begin{itemize}
      \item<3-> Would support SVN too
      \item<4-> Only the filesystem needs intelligence
      \item<5-> Many other applications: dynamically create a directory structure
  \end{itemize}
\end{itemize}
\end{frame}
\end{document}
