\documentclass[12pt]{beamer}

\usetheme{Oxygen}
\usepackage{thumbpdf}
\usepackage{wasysym}
\usepackage{ucs}
\usepackage[utf8x]{inputenc}
\usepackage{pgf,pgfarrows,pgfnodes,pgfautomata,pgfheaps,pgfshade}
\usepackage{verbatim}

\pdfinfo
{
  /Title       (The long road to KDE in Debian)
  /Creator     (TeX)
  /Author      (Sune Vuorela <sune@vuorela.dk>)
}


\title{The long road to new KDE in Debian}
\subtitle{Why you need Java and MySQL for a proper desktop}
\author{Sune Vuorela}
\date{February 8th 2009}

\begin{document}

\frame{\titlepage}

\section*{}
\begin{frame}
  \frametitle{Outline}
  \tableofcontents[section=1,hidesubsections]
\end{frame}

\AtBeginSection[]
{
  \frame<handout:0>
  {
    \frametitle{Outline}
    \tableofcontents[currentsection,hideallsubsections]
  }
}

\AtBeginSubsection[]
{
  \frame<handout:0>
  {
    \frametitle{Outline}
    \tableofcontents[sectionstyle=show/hide,subsectionstyle=show/shaded/hide]
  }
}

\newcommand<>{\highlighton}[1]{%
  \alt#2{\structure{#1}}{{#1}}
}

\newcommand{\icon}[1]{\pgfimage[height=1em]{#1}}



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%% Content starts here %%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%



\section{Build system}

\begin{frame}
  \frametitle{Build system}
  \framesubtitle{KDE - linking the world together}
  \begin{block}{CMake good}
  \begin{itemize}
    \item No libtool mess
    \item No autotools timestamp issues, no .in files to regenerate
  \end{itemize}
  \end{block}

  \begin{block}{CMake sucks}
  \begin{itemize}
    \item for i in /usr/lib/lib*.so ; do LINKLINE+=" -L\$i" ; done ; echo \$LINKLINE
    \item \highlighton{Recursive} linking
  \end{itemize}
  \end{block}

  \begin{block}{CMake good}
  \begin{itemize}
    \item Fix it
    \item Big patch sets
    \item Push upstream 
  \end{itemize}
  \end{block}
\end{frame}

\section{File tagging}
\begin{frame}
  \frametitle{Tagging files}
  \framesubtitle{Learning new things}

  \begin{itemize}
    \item Flickr, blogs, debtags
    \item Sematic desktop is coming - tagging files
  \end{itemize}

  \begin{block}{Resource Description Framework}
  \begin{itemize}
    \item Meta data model
    \item Stored in relational databases or in dedicated stores
  \end{itemize}
  \end{block}

  \begin{block}{Storage}
  \begin{itemize}
    \item Soprano - storage layer with pluggable backend
    \begin{itemize}
      \item Redland
      \item Sesame2
      \item More coming!
    \end{itemize}
  \end{itemize}
  \end{block}
     
\end{frame}

\begin{frame}
  \frametitle{Tagging - actions in place}
  \includegraphics[scale=0.20]{nepomuk-dolphin-adapted}
\end{frame}

\section{Data caching}
\begin{frame}
  \frametitle{Data everywhere}
  \framesubtitle{From everywhere to everywhere}
  \begin{block}{Issues}
  \begin{itemize}
    \item \highlighton{All} apps wants to access \highlighton{all} data at the \highlighton{same} time
    \item many apps reading contacts, many apps reading calendar
    \item many apps contacting imap server
  \end{itemize}
  \end{block}
  \begin{alertblock}{Concurrency}
    Your data everywhere at the same time
  \end{alertblock}

\end{frame}
\begin{frame}
  \frametitle{Data everywhere - solution}
  \framesubtitle{Databases}

  \begin{block}{Akonadi}
  \begin{itemize}
    \item Data cache server framework
    \item Caches stuff in database for easy access
    \item Simple dbus api
    \item With "Agents" to serialize and store data in correct standard format
  \end{itemize}
  \end{block}

  \begin{block}{Database}
  \begin{itemize}
    \item QtSQL - abstracts most things away
    \highlighton{\item MySQL - the current chosen thing}
    \item SQLite - doesn't currently scale
    \item PostgreSQL - rumors says someones working on it
  \end{itemize}
  \end{block}

\end{frame}

\section{Old farts}
\begin{frame}
  \frametitle{Fancyness}
  \framesubtitle{Too fancy?}
  \includegraphics[scale=0.45]{desktopcube}

\end{frame}

\begin{frame}
  \frametitle{Less bling}
  \framesubtitle{Windows 95}
  \includegraphics[scale=0.20]{win95}

\end{frame}

\begin{frame}
  \frametitle{I want KDE3}
  \framesubtitle{Really old \ldots}

   \highlighton{\huge JUST KEEP USING LENNY}

\end{frame}

\section{Status}
\begin{frame}
  \frametitle{Casualties}
  \framesubtitle{Some old things must go}
  \begin{block}{Let go of}
  \begin{itemize}
    \item Third party plugins to KDE applications
    \item Window decorations to KDE3
    \item Some features in unported applications
    \item Non-c++ apps
  \end{itemize}
  \end{block}
  
\end{frame}

\begin{frame}
  \frametitle{Issues}

  Perl-qt might need to go and with that one of the debconf frontends. We need a Qt4 based one.

\end{frame}

\begin{frame}
  \frametitle{Roadmap \&\& Policy}

  \begin{block}{TODO}
  \begin{itemize}
    \item Finalize a exact list of actions to be done before pushing new KDE to unstable
    \item Finalize writing up a packaging and policy document for third party application maintainers
  \end{itemize}
  \end{block}
 
\end{frame}

\section{Code}
\begin{frame}
  \frametitle{Packaging for CDBS lovers}
  \framesubtitle{I sometimes fall in this group}

  Build-depend on pkg-kde-tools and cdbs

  \begin{example}
  \#! /usr/bin/make -f 

  include /usr/share/pkg-kde-tools/makefiles/1/cdbs/kde.mk

  include /usr/share/cdbs/1/rules/debhelper.mk
  \end{example}

\end{frame}
\begin{frame}
  \frametitle{Packaging for normal people}
  \framesubtitle{I sometimes fall in this group}

  Build-depend on pkg-kde-tools

  \begin{example}
  \#!/usr/bin/make -f

  include /usr/share/pkg-kde-tools/makefiles/1/variables.mk

  builddir/Makefile:

  mkdir -p builddir

  cd builddir \&\& cmake .. \$(DEB\_CMAKE\_KDE4\_FLAGS)
  
  \#continue with make -C builddir and so on
  \end{example}

\end{frame}

\section{End}
\begin{frame}
  \frametitle{Help?}
  \framesubtitle{Yes please}

  \begin{block}{What's needed?}
  \begin{itemize}
    \item Go over your own bugs with new KDE and update test if they still apply
    \item If you have interest in the "niche" applications or cornercase setups, we might need you
    \item If you maintain a application using KDE libraries, please update to new, updated edition
  \end{itemize}
  \end{block}

\end{frame}
\begin{frame}
  \frametitle{Questions?}

  {\huge Questions?}
  \begin{block}{Info}
    Debian Qt/KDE: http://pkg-kde.alioth.debian.org

    Me: Sune Vuorela $<$sune@vuorela.dk$>$
  \end{block}

\end{frame}

\end{document}
