% $Header: /cvsroot/latex-beamer/latex-beamer/solutions/conference-talks/conference-ornate-20min.en.tex,v 1.6 2004/10/07 20:53:08 tantau Exp $

%\documentclass[handout]{beamer}
%\usepackage{pgfpages}
%\pgfpagesuselayout{2 on 1}[a4paper,border shrink=5mm]
\documentclass{beamer}
% This file is a solution template for:

% - Talk at a conference/colloquium.
% - Talk length is about 20min.
% - Style is ornate.



% Copyright 2004 by Till Tantau <tantau@users.sourceforge.net>.
%
% In principle, this file can be redistributed and/or modified under
% the terms of the GNU Public License, version 2.
%
% However, this file is supposed to be a template to be modified
% for your own needs. For this reason, if you use this file as a
% template and not specifically distribute it as part of a another
% package/program, I grant the extra permission to freely copy and
% modify this file as you see fit and even to delete this copyright
% notice. 
\mode<presentation>
{
  \usetheme{Warsaw}
  % or ...

  %\setbeamercovered{highly dynamic}
  % or whatever (possibly just delete it)
}


\usepackage[american]{babel}
% or whatever

\usepackage[utf8x]{inputenc}
% or whatever

\usepackage{textcomp}

%\usepackage{cmbright}
\usepackage[T1]{fontenc}
%\newcommand{\Linux}[0]{Linux\small\textregistered\normal}
% Or whatever. Note that the encoding and the font should match. If T1
% does not look nice, try deleting the line with the fontenc.

\usepackage{hyperref}

%\title[Intro] % (optional, use only with long paper titles)
\title{Debian Secrets}

\subtitle{Power tools for Power users}
%{Include Only If Paper Has a Subtitle}

%\author[Author, Another] % (optional, use only with lots of authors)
%{F.~Author\inst{1} \and S.~Another\inst{2}}
\author{Wouter Verhelst}
\date{FOSDEM 2010}
% - Give the names in the same order as the appear in the paper.
% - Use the \inst{?} command only if the authors have different
%   affiliation.

%\institute[Debian] % (optional, but mostly needed)
%{
%  Debian
%}
% - Use the \inst command only if there are several affiliations.
% - Keep it simple, no one is interested in your street address.

%\date[Oct 2005] % (optional, should be abbreviation of conference name)
%{October 2005}
% - Either use conference name or its abbreviation.
% - Not really informative to the audience, more for people (including
%   yourself) who are reading the slides online

\subject{Debian Secrets}
% This is only inserted into the PDF information catalog. Can be left
% out. 

% If you have a file called "university-logo-filename.xxx", where xxx
% is a graphic format that can be processed by latex or pdflatex,
% resp., then you can add a logo as follows:

\pgfdeclareimage[height=0.5cm]{debianlogo}{openlogo-nd}
\logo{\pgfuseimage{debianlogo}}

% Delete this, if you do not want the table of contents to pop up at
% the beginning of each subsection:
%\AtBeginSubsection[]
%{
%  \begin{frame}<beamer>
%    \frametitle{Overzicht}
%    \tableofcontents[currentsection,currentsubsection]
%  \end{frame}
%}

\begin{document}

\begin{frame}
  \titlepage
\end{frame}

\beamerdefaultoverlayspecification{<+->}

%\begin{frame}
%  \frametitle{Overzicht}
%  \tableofcontents
%  % You might wish to add the option [pausesections]
%\end{frame}

% Structuring a talk is a difficult task and the following structure
% may not be suitable. Here are some rules that apply for this
% solution: 

% - Exactly two or three sections (other than the summary).
% - At *most* three subsections per section.
% - Talk about 30s to 2min per frame. So there should be between about
%   15 and 30 frames, all told.

% - A conference audience is likely to know very little of what you
%   are going to talk about. So *simplify*!
% - In a 20min talk, getting the main ideas across is hard
%   enough. Leave out details, even if it means being less precise than
%   you think necessary.
% - If you omit details that are vital to the proof/implementation,
%   just say so once. Everybody will be happy with that.

\section{About this talk}
\begin{frame}
  \frametitle{About this talk}
  \begin{itemize}
    \item Recycled from DebConf8 DebianDay
    \item Idea: compare Debian-specific features against other distributions'
    features
    \item Help!
  \end{itemize}
\end{frame}

\section{Changing system behaviour}
\subsection{update-alternatives}
\begin{frame}
  \frametitle{update-alternatives}
  \begin{itemize}
    \item multiple packages providing a particular command
    \item \texttt{update-alternatives $--$config x-terminal-emulator}
  \end{itemize}
  \uncover<+->{more info: \texttt{man update-alternatives}}
\end{frame}

\subsection{dpkg-statoverride}
\begin{frame}
  \frametitle{dpkg-statoverride}
  \begin{itemize}
    \item Limit access to \texttt{wodim} to a group of users
    \item \texttt{$-$rwxr$-$x$---$ 1 root cdwriters 401624 May 25 20:12 /usr/bin/wodim}
    \item upgrades?
    \item \texttt{dpkg-statoverride $--$update $--$add root cdwriters 0750 /usr/bin/wodim}
  \end{itemize}
  \uncover<+->{more info: \texttt{man dpkg-statoverride}}
\end{frame}

\section{Searching}
\subsection{debtags}
\begin{frame}
  \frametitle{Searching for packages: debtags}
  \begin{itemize}
    \item apt-cache search: works, but limited.
    \item too difficult search => brain goes banana
    \item debtags: more fine-grained searching
    \item Goplay!
  \end{itemize}
  \uncover<+->{package: debtags, goplay

  more info: \url{http://debtags.alioth.debian.org/}}
\end{frame}

\subsection{grep-available}
\begin{frame}
  \frametitle{Searching for packages: grep-available}
  \begin{itemize}
    \item you know \alert{some} things about the package
    \item searching for packages by control fields
    \item \texttt{grep-available -FMaintainer 'wouter@debian.org' -sPackage}
    \item \texttt{grep-available -FSource 'linux-2.6' -a -FPackage 'image' -sPackage}
    \item \texttt{grep-available -FSource 'linux-2.6' -a -FPackage 'image' -sPackage -sVersion}
  \end{itemize}
  \uncover<+->{package: dctrl-tools

  more info: \texttt{man grep-available}}
\end{frame}

\section{Fooling the package system}
\subsection{dpkg-divert}
\begin{frame}
  \frametitle{dpkg-divert: move files aside}
  \begin{itemize}
    \item Install nVidia binary module from nvidia.com
    \item nVidia wants to install \texttt{/usr/lib/libGL.so}
    \item \texttt{apt-get upgrade}\ldots
    \item instead: \texttt{dpkg-divert $--$divert /usr/lib/libGL.so.Debian
    /usr/lib/libGL.so}
    \item \alert{Then}, and only then, install nVidia binary module and
    software
  \end{itemize}
  \uncover<+->{\alert{Warning}: do NOT use for configuration files}

  \uncover<+->{more info: \texttt{man dpkg-divert}}
\end{frame}

\subsection{dpkg-repack}
\begin{frame}
  \frametitle{dpkg-repack: Re-create a package file from an installed package}
  \begin{itemize}
    \item Install great-game-nonfree from game-writer-company
    \item game-writer-company goes bankrupt, and your CD-ROM is lost
    \item Buy new computer, want to play great-game-nonfree there too
    \item Use dpkg-repack to create new package to install on new
    computer
  \end{itemize}
  \uncover<+->{package: dpkg-repack

  more info: \texttt{man dpkg-repack}}
\end{frame}

\subsection{equivs}
\begin{frame}
  \frametitle{Equivs: NIH}
  \begin{itemize}
    \item Install self-written not-invented-here MTA
    \item \texttt{apt-get install cron} pulls in \texttt{exim4}
    \item install bogus mail-transport-agent package to satisfy depends
  \end{itemize}
  \uncover<+->{package: equivs

  more info: \texttt{man equivs-build} and \texttt{man equivs-control},
  also see \texttt{/usr/share/doc/equivs}}
\end{frame}

\section{Anticipating and correcting problems}
\subsection{Finding problems before installing}
\begin{frame}
  \frametitle{apt-listbugs/apt-listchanges: reviewing before installing}
  \begin{itemize}
    \item install very-buggy-package from unstable
    \item apt-listbugs finds and lists \alert{release-critical} bugs
    \item User can choose to decline downloading/installing
    \item apt-get or aptitude downloads packages
    \item apt-listchanges lists changelog items and/or NEWS.Debian items
    \item User can choose to decline installing
  \end{itemize}
  \uncover<+->{packages: apt-listbugs, apt-listchanges}
\end{frame}

\subsection{Keeping your system tidy}
\begin{frame}
  \frametitle{debfoster, deborphan, aptitude: finding unused packages}
  \begin{itemize}
    \item \texttt{apt-get install warzone2100}
    \item Pulls in several libraries
    \item You don't like the game; \texttt{apt-get $--$purge remove
    warzone2100}
    \item Libraries?
    \item debfoster/aptitude: keep track of what was installed manually or as a
    dependency
    \item deborphan: find unused libraries --- needs to guess, may be
    wrong.
  \end{itemize}
  \uncover<+->{packages: debfoster, deborphan}
\end{frame}

\section{Debian menu}
\begin{frame}
  \frametitle{Changing the Debian menu}
  \begin{itemize}
    \item Standard menu in most window managers (not all desktop environments)
    \item Modify through /etc/menu, ~/.menu
  \end{itemize}
  \uncover<+->{package: menu

  more info: \texttt{/usr/share/doc/menu/html}, chapter 3 (syntaxis), chapter 6
  (how to override)}
\end{frame}
\end{document}
