\documentclass{beamer}

	\usepackage[ngerman]{babel} % that's not english... gotta fix that for \defalse
	\usepackage[utf8]{inputenc}
	\usepackage[T1]{fontenc}
	\usepackage[pdftex]{color}


\newif\ifde
% Set \detrue for the talk in german.
\defalse
%\detrue
\newif\ifnoob
% Set \noobtrue for basic introduction to GNU/Linux.
\noobtrue
%\noobfalse

\newcommand{\deen}[2]%
{%
	\ifde%
	#1%
	\else
	#2%
	\fi%
}

\definecolor{msgcol}{rgb}{0.5,0.5,0.5}
\newcommand{\talkmsg}[1]%
{%
	{\color{msgcol}#1}%
}

	\title{Source Mage: \deen{eine Linux-Distribution}{a Linux Distribution}}
	\newcommand\theauthor{Thomas Orgis}
	\author{\theauthor}
	\institute{SMGL/Grimoire} % Well, that's how close it gets to a institute, eh?

	\usetheme{Madrid}
	\usecolortheme[named=red]{structure}

	\setlength{\parskip}{1.5ex}
	\setlength{\emergencystretch}{3em}


\begin{document}

\frame{\titlepage}

%\section[Outline]{}
\frame{\tableofcontents}

\section{\deen{Einführung}{Introduction}}
\subsection{Source Mage}
\frame
{
	\frametitle{Source Mage}

	\begin{minipage}{0.5\linewidth}
		\includegraphics[width=\linewidth]{sourcemagelogo.png}
	\end{minipage}
	\begin{minipage}{0.45\linewidth}
	\deen{Voller Name}{Full name}:\\ {\em Source Mage GNU/Linux}
	\begin{itemize}
		\item Linux\deen{ - System}{ kernel}
		\item GNU \deen{- Umgebung}{environment (userspace)}
		\item \deen{Freie}{Free} Software
		\item \deen{Quell-Distribution}{Source distribution} (rolling-release)
		\item \deen
			{Magie-Metapher für Distributionswerkzeuge}
			{Magic theme for distribution tools}
		\item \deen{Maskottchen}{Mascot}: ``Quoth the raven''
	\end{itemize}
	\end{minipage}
}

\ifnoob
{
\subsection{\deen{Linux und Distributionen}{Linux and Distributions}}
\frame
{
	\frametitle{Linux}

	Linux is\deen{t}{}:
	\begin{itemize}
		\item \deen{Betriebssystemkern}{Operating system kernel}
		\item UNIX-\deen{artiges System}{like system}
		\item \deen{Freie}{Free} Software
%		\item \deen
%			{Kondensationspunkt einer Bewegung um freie Software}
%			{Condensation point of a movement around Free Software}
	\end{itemize}
}

\frame
{
	\frametitle{Distribution}

	\deen
	{Eine Distribution ist eine Zusammenstellung von Software mit}
	{A distribution is a collection of software, including}
	\begin{itemize}
		\item \deen{einem Betriebssystemkern (oft}{a kernel (often} Linux),
		\item \deen
			{grundlegende Betriebssoftware (oft GNU-Tools)}
			{basic system software (often GNU tools)},
		\item \deen
			{eine grafische Oberfläche (X-Server, Desktopumgebung / Window-Manager)}
			{graphical Interface (X11, desktop environment / window manager)},
		\item \deen
			{Anwendungssoftware \\ (Browser, Office, \LaTeX, Entwicklungsumgebungen, Grafiksoftware, Spiele, ...)}
			{application software \\ (Browser, Office, \LaTeX, IDEs, graphics, games, ...)}
		\item \deen
			{und Konfigurations- und Installationswerkzeuge für all das vorgenannte}
			{and tools for installing and configuring the above}.
	\end{itemize}
}

\frame
{
	\frametitle{\deen{Vorteile einer Distribution}{Advantages of a Distribution}}

		\textbf{\deen{Vorteile}{Advantages}}
		\deen
		{einer Distribution gegenüber selbstinstallierter Software}
		{of a distribution, compared to installing stuff yourself}:
	\begin{itemize}
		\item \deen
			{einheitliche Oberfläche zur Programminstallation}
			{{\em one} interface for software installation}
		\item \deen
			{einheitliche Konfiguration des Systems (in Maßen)}
			{common, consistent configuration of the whole system (to an extent)}
		\item \deen
			{Einordnung der Anwendungen im Startmenü nach Kategorien statt nach Herstellern}
			{sorting menus of applications for category instead of vendor}
		\item \deen
			{Datenbank verfügbarer Software}
			{database of available software}
		\item \deen
		{Erkennung von Abhängigkeiten und Konflikten verschiedener Softwarepakete}
		{tracking of dependencies and conflicts between software packages}
		\item \deen
			{Werkzeuge zur kompletten Aktualisierung des Systems inklusive installierter Programme}
			{tools to keep the whole system up-to-date -- including application software}
	\end{itemize}
}

\frame
{
	\frametitle{\deen{Nachteile einer Distribution}{Disadvantages of a Distribution}}

	\textbf{\deen{Nachteile}{Disadvantages}}:
	\begin{itemize}
		\item \deen
			{aus Lizenzgründen begrenzte Berücksichtigung kommerzieller Software (deshalb oft Verwendung freier Software (FOSS))}
%			{limited inclusion of (commercial) Software due to licensing issues (usually almost exclusively Free / Open Source Software, FOSS)}
			{not every possible software is included}
		\item \deen
			{oftmals kompliziertere Installation von Software, welche nicht in der Distribution berücksichtigt ist}
			{possibly complicated install of software that is {\em not} in the distribution}
	\end{itemize}
}
}
\else{}\fi

\subsection{\deen{Quell-Distribution}{Source Distribution}}
\frame
{
	\frametitle{\deen{Quell-Distribution}{Source Distribution}}

	\textbf{\deen{Binär-Distributionen}{Binary distributions}:}
	\deen
	{Software wird für eine Klasse von Systemen fertig vorkompiliert und vorkonfiguriert (was bestimme Programmeigenschaften angeht) ausgeliefert.}
	{Software is pre-built and pre-configured (for certain features) for a certain class of computer systems.}

	\textbf{\deen{Quell-Distributionen}{Source Distributions}:}
	\deen
	{Software wird auf dem System des Anwenders kompiliert, mit Eingriff in bestimmte Programmeigenschaften.}
	{Software is built on the user's computer, including change of build-time options.}

	\textbf{\deen{Vorteile}{Pro source}:}
	\begin{itemize}
		\item \deen
			{bessere \textbf{Anpassung} an Bedürfnisse des Benutzers}
			{\textbf{customization} to the user's needs}
		\item \deen
			{teilweise höhere Performance der Anwendungen}
			{possibly better performance of the applications}
	\end{itemize}
	\textbf{\deen{Nachteile}{Contra source}:}
	\begin{itemize}
		\item \deen
			{längere Installationsdauer}
			{more time needed for installation}
		\item \deen
			{evtl. Mehraufwand für Benutzer ohne spezielle Bedürfnisse;-)}
			{possibly more, unwanted, work for users without any special needs;-)}
	\end{itemize}
}

\section{\deen{Beschreibung}{Description}}
\subsection{\deen{Begriffe}{Terms}}
\frame
{
	\frametitle{\deen{Begriffe}{Terms}}

	Source Mage \deen
	{nutzt Magie als Metapher für seine Begrifflichkeiten}
	{uses a magic theme for defining its terms}:
	\begin{description}
		\item[Sorcery] \deen
			{Bezeichnung der Verwaltungssoftware (komplett in Bash)}
			{name of the collection of system management software (written as Bash scripts)}
		\item[Spell] \deen
			{Beschreibung und Installationsskripte für ein Softwarepaket}
			{software package (scripts, metainfo)}
		\item[Grimoire] \deen
			{Sammlungs von Spells, Paketgruppen (die Paketdatenbank)}
			{collection of spells in different sections (the package repository)}
		\item[Mage] An empowered user of Source Mage!
		% Guru, circle of Elders ...?
	\end{description}
}

\subsection{\deen{Werkzeuge}{Tools}}
\frame
{
	\frametitle{\deen{Werkzeuge}{Tools}}
	\deen
	{Systemverwaltung erfolgt mit verschiedenen Programmen}
	{System management tools include}:
	\begin{description}
		\item[sorcery] \deen
			{Konfiguration der Distributionswerkzeuge, Menügesteuerte Oberfläche zu einigen}
			{configuration of the tools, menu-driven interface to some}
		\item[cast] \deen
			{Installation eines Paketes}
			{installation of a package}
		\item[dispel] \deen
			{Entfernen eines Paketes}
			{removal of a package}
		\item[summon] \deen
			{Herunterladen der Paketquelltexte}
			{acquire (download) source code of a package}
		\item[gaze] \deen
			{Abfragen von verschiedenen Informationen}
			{general inspection tool}
		\item[cleanse] \deen
			{Reparatur beschädigter Installationen, Aufräumarbeiten}
			{repair damaged installations, cleanup}
		\item[scribe/scribbler] \deen
			{Verwaltung der Grimoires}
			{grimoire management}
	\end{description}
}

\frame
{
	\frametitle{gaze: \deen{Abfragen von Informationen}{Gather Inpormation}}
	\deen
	{Softwarepaket finden (z.B. eins mit ``mix'' im Namen)}
	{Find a spell (e.g. with ``mix'' in its name)}:
	\begin{itemize}
		\item \texttt{gaze search -name mix}
	\end{itemize}
	\frametitle{cast: \deen{Installation eines Paketes}{Software Installation}}
	(\deen{Eines der Ergebnisse war}{One of the results was} ``dermixd''.)

	\deen
	{Informationen dazu}
	{Read something about it}:
	\begin{itemize}
		\item \texttt{gaze what dermixd}
	\end{itemize}
}

\frame
{
	\frametitle{cast: \deen{Installation eines Paketes}{Software Installation}}
	\begin{itemize}
	\item \deen
		{Build-Konfiguration (wähle optionale Programmeigenschaften)}
		{build-time configuration (choose optional features)}
	\item \deen
		{Auflösen von Abhängigkeiten}
		{resolving dependencies}
	\item \deen
		{Herunterladen und Verifikation (Hashsumme, Signatur) der Quellen}
		{download and verification (hashes, signatures) of sources}
	\item \deen
		{automatisches Übersetzen}
		{automatic build from sources}
	\item \deen
		{eigentliche Installation ins System}
		{actual installation into the system}
	\end{itemize}
	\deen{Nun, all dies passiert auf das Kommando}{Well, all the above is started with}:
	\begin{itemize}
		\item \texttt{cast dermixd}
	\end{itemize}
}

\frame
{
	\frametitle{cast: \deen{Build-Konfiguration und Abhängigkeiten}{Build Configuration and Dependencies}}

% providers?
	\begin{itemize}
		\item \deen
			{Konfiguration erfolgt über Fragen vor Beginn der Installation (automatisch nach Aufruf von \texttt{cast}).}
			{Build configuration with questions before build, asked by \texttt{cast}.}
		\item \deen
			{Fragen werden durch Spellautor vorgegeben.}
			{Spell author defines the questions.}
		\item \deen
			{Abhängigkeiten werden automatisch beachtet.}
			{Dependencies are taken care of.}
		\item \deen
			{{\em Optionale} Abhängigkeiten werden durch Benutzer bestätigt.}
			{{\em Optional} dependencies are confirmed (or not!) by the user.}
		\item[]<2->
			\talkmsg{\theauthor, \deen{bitte zeig das doch mal!}{would you mind showing this process {\em live}?}}
	\end{itemize}
}

\frame
{
	\frametitle{dispel: \deen{Entfernen eines Paketes}{Software Removal}}
	\deen
	{Entfernen}
	{Removal}:
	\begin{itemize}
		\item \texttt{dispel dermixd}
	\end{itemize}
}

\frame
{
	\frametitle{summon: \deen{Kontrolliertes Herunterladen der Quellen}{Controlled download of sources}}
	\deen
		{Normalerweise werden die Quellen während eines \texttt{cast} heruntergeladen, doch wenn man das vorher durchführen will (z.B. weil man nicht dauerhaft Internetverbindung hat)}
		{Normally, downloads are taken care of during \texttt{cast}, but in case you want the downloading to happen in advance (e.g. when you won't have internet connection all the time)}:
	\begin{itemize}
		\item \texttt{summon dermixd}
	\end{itemize}
}

\frame
{
	\frametitle{cleanse: \deen{Putzen!}{Clean up!}}
	\deen
	{Manches geht kaputt, mit der Zeit oder einfach so. Außerdem wird Gesammeltes irgendwann zu Müll.}
	{Some things break, with time or just for the heck of it. Furthermore, some things have to go into the trash can after some time.}

	\texttt{cleanse} \deen{kann}{can}:
	\begin{itemize}
		\item \deen
			{finden/löschen veralteter Log-Dateien (z.B. von \texttt{cast})}
			{find/delete old log files (e.g. from \texttt{cast})}
		\item \deen
			{finden/löschen veralteter Quell/Installations-Archive}
			{find/delete old source and installation archives}
		\item \deen
			{prüfen der Unversehrtheit installierter Dateien und Reparatur durch \texttt{cast} des entsprechenden Paketes}
			{check sanity of installed files, repair through re-\texttt{cast} of the concerned package}
		\item \deen
			{prüfen der Bibliotheksabhängigkeiten (``ldd check''), wiederum \texttt{cast}, wenn notwendig}
			{check library dependencies (``ldd check''), again: \texttt{cast} if necessary}
	\end{itemize}
}

\frame
{
	\frametitle{sorcery: \deen{Das Programm an sich}{The tool as such}}
	\texttt{sorcery}
	\deen{ist das generelle Verwaltungswerkzeug}{is the general management tool}:
	\begin{itemize}
		\item \deen
			{Kommandozeile oder Menü-basiert}
			{command line or menu driven}
		\item \deen
			{Konfiguration (Verhalten der Einzelwerkzeuge, Compiler-Optionen, ...)}
			{configure things (tool behaviour, compiler flags, ... a lot of things)}
		\item \deen
			{Menü für Spell-Verwaltung}
			{menu-driven spell management}
		\item \deen
			{kümmert sich um Aktualisierungen...}
			{handles updates...}
	\end{itemize}
}

\frame
{
	\frametitle{\deen{Ein aktuelles, gesundes System}{A current, healthy System}}
	Recurrent use of the command
	\begin{itemize}
	\item
	\texttt{sorcery system-update}
	\end{itemize}
	ensures that your system is up to date and reasonably sane:
	\begin{itemize}
		\item updates sorcery scripts
		\item updates grimoire
		\item updates installed spells
		\item ensures integrity of installed spells
	\end{itemize}
}

\subsection{Grimoires \& Spells}
\frame
{
	\frametitle{Grimoires}

	\deen
	{Standardgrimoires der Distribution}
	{Standard grimoires}:
	\begin{itemize}
		\item \texttt{stable}
		\item \texttt{games}
		\item \texttt{test}
	\end{itemize}
	\deen{...aber auch}{...but also}:
	\begin{itemize}
		\item \texttt{z-rejected} (\deen{nicht-freie Software bzw. Binärpakete}{certain non-Free software and binary packages})
	\end{itemize}
	
	All in all we have circa \textbf{6500} spells available for you!
	
	\deen
	{Man kann mehrere Grimoires gleichzeitig aktiv haben (es gibt eine Suchreihenfolge für Spells).}
	{You can have several grimoires active at the same time (the first occurence of a spell is used).}
}

\frame
{
	\frametitle{Grimoire Tools}
	\begin{itemize}
		\item \texttt{scribe}
		\begin{itemize}
			\item \deen{neues Grimore hinzufügen}{add new grimoire}:
				\texttt{scribe add \$GRIMOIRE}
			\item \deen{Grimore entfernen}{remove grimoire}:
				\texttt{scribe remove \$GRIMOIRE}
			\item \deen{Grimoires geordnet auflisten}{list grimoires in order}
				\texttt{scribe index}
			\item \deen{Suchreihenfolge verändern}{change search order}:
				\texttt{scribe swap \$ONE \$ANOTHER}
			\item \deen{aktualisieren}{update}:
				\texttt{scribe update \$GRIMOIRE}
			\item \deen{{\em alle} Grimoires aktualisieren}{update {\em all} grimoires}:
				\texttt{scribe update}
		\end{itemize}
		\item scribbler
		\begin{itemize}
			\item \deen{Spells zwischen Grimoires kopieren (hacken!;-)}{copy spells around grimoires (for hacking!;-)}:
			\\
			\texttt{scribbler add \$SPELL \$FROM\_GRIMOIRE \$TO\_GRIMOIRE}
			\item \deen{Spell-Kopie löschen}{delete a spell copy}:
			\\
			\texttt{scribbler remove \$SPELL \$FROM\_GRIMOIRE}
		\end{itemize}
	\end{itemize}
}

\frame
{
	\frametitle{Spells}

	\begin{itemize}
		\item \deen
			{Spells sind imlemetiert als Shell-Skripte.}
			{Spells are implemented naturally as shell scripts}
		\item \deen
			{verschiedene Skripte für Teilaufgaben}
			{different scripts for the steps}:\\
			\texttt{CONFIGURE}, \texttt{DEPENDS}, \texttt{BUILD}, \texttt{INSTALL}, ...
		\item \deen
			{einfach zu modifizieren oder neu zu erstellen \\ (Schritte zur Compilation einfach in ein Skript schreiben)}
			{easy to modify or to create \\ (Just write down the steps as shell commands!)}
		\item
			\deen
				{Standardabfolge}
				{The GNU standard installation } \\
			(\texttt{configure \&\& make \&\& make install}) \\
			\deen
				{wird sogar automatisch gemacht.}
				{is even done implicitly when you omit scripts.}
	\end{itemize}
	\deen
	{Ein Spell kann minimal lediglich aus einer Beschreibungsdatei mit Angabe von Name, Version und Quell-URL bestehen.}
	{A minimal spell consists of only one descriptive file, mainly for name, version and source URL.}
}

% spell example for the advanced...

\section{\deen{Philosophie}{Philosophy}, Community}
\frame
{
	\frametitle{Vision}

	Motto: {\em Linux so advanced, it may as well be magic.}
	\begin{itemize}
		\item \deen
			{Freie Software (\texttt{z-rejected} enthält unfreie Pakete)}
			{Free Software (some non-free software in \texttt{z-rejected})}
		\item	\deen
			{Grimoires und Sorcery lizensiert unter der GPL}
			{grimoires and \texttt{sorcery} licensed under GPL}
		\item \deen
			{keine Limitierung der Eingriffsmöglichkeiten des Endnutzers}
			{no artificial limits on the user's possibilities}
		\item[]<2-> % hack to have the uncover effect without rearrangement of the above
			\begin{center}
				\deen
				{Maxime ist die {\huge Entscheidungsfreiheit des Nutzers} (nicht maximale Leistung durch extreme Compiler-Optionen)!}
				{{\huge \bfseries All the power and control\\ to the user!} \\ \small{(No, performance is not the main issue.)}}
			\end{center}
	\end{itemize}
}

\frame
{
	\frametitle{\deen{Kontakt}{Contact}}

	\begin{itemize}
		\item \deen{Webseite}{Website}: 
			\href{http://sourcemage.org/}{http://sourcemage.org/}
		\item \deen{Mailinglisten (siehe Webseite)}{mailing lists (see website)}
		\item IRC: \texttt{\#sourcemage} \deen{auf}{on} \texttt{irc.freenode.org}
		\item \deen{mich fragen}{ask me};-)
		\item[]<2->
			\tiny
			{
				\deen
				{Heh, \theauthor... das war schon das Ende!}
				{Hey, \theauthor, this {\em already is} the last slide!}
			}
	\end{itemize}
}

\end{document}
