% @file
% @brief   Vortrag: Mein Umzug in die Shell
% @author  markus schnalke <meillo@marmaro.de>
% @since   2007-09-25


\documentclass{beamer}

  \usepackage[utf8]{inputenc}
  \usepackage{ngerman}
  \usepackage{graphicx}
  \usepackage[automark]{scrpage2}

  \title{Gimme Shell(ter)}
  \author{markus schnalke}
  \date{}


	%\markboth{2007-12-11}{}

\begin{document}


\frame{
  %\titlepage
	\vspace{8em}
	\begin{center}
		{\huge Gimme Shell}{\tiny (ter)}

		{Mein Umzug in die Shell}

		\vspace{6em}

		{ \tiny
		markus schnalke \textless{}meillo@marmaro.de\textgreater{}
		}


	\end{center}
}


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





\section{Vorwort}
\frame{ \frametitle{Vorwort}

  \begin{block}{}
		Dass meine Zukunft in der Shell stattfinden soll, war mir schon lange klar.
  \end{block}

  \begin{block}{}
		Bis ich jedoch soweit war, war es ein langer Weg.
  \end{block}

  \begin{block}{}
		Und keinesfalls möchte ich behaupten, dass ich am Ziel wäre, denn es gibt kein Ziel. Es gibt nur vorwärts.
  \end{block}

}



\section{Ziele}
\frame{ \frametitle{Ziele}
	Dieser Vortrag soll zeigen, dass man auch ohne X komfortabel arbeiten kann.

  \vspace{1em}

	Ich möchte motivieren, mal Urlaub in der Shell zu machen.
			
  \vspace{1em}
		
	Ich möchte die ``Angst'' vor der textbasierten Benutzerschnittstelle nehmen. Auch will ich hierzu Einstiegshilfen geben.
			
  \vspace{1em}
		
	Es soll klar werden, dass Kommandozeilenprogramme oft besser als ihre grafischen Pendants sind.
			
  \vspace{1em}
		
	Und als zentrales Ziel soll dieser Vortrag Gründe darstellen, weshalb es sich lohnt, in die Shell umzuziehen.
}





%  \centerline{ \includegraphics[width=20em]{pics/observer_big.png} }



\section{Motivation}
\frame{ \frametitle{Motivation}
    \begin{itemize}
      \item Weil es cool ist {\scriptsize \textit{*hehe*}}
    \end{itemize}
  \pause
    \begin{itemize}
      \item effektiveres Arbeiten möglich
      \item konfigurierbarer
      \item ressourcenschonender
    \end{itemize}
  \pause
    \begin{itemize}
      \item Vorteile von \texttt{screen}
      \item \texttt{ssh} von überall
      \item auch ohne \texttt{X} daheim
    \end{itemize}

	\pause
	\begin{block}{}
		\textbf{Konzentration auf das Wesentliche!}

		Näher an der UNIX-Philosophie
	\end{block}
}





\section{Die UNIX-Philosophie}
\frame{ \frametitle{Die UNIX-Philosophie}
  \begin{block}{}
		DER Grund UNIX$^{\dagger}$ zu verwenden

		``Pro UNIX'' statt ``Anti Windows''
  \end{block}
	
	\pause

  \begin{block}{}
		Welche wirklichen Vorteile bietet Gnome gegenüber der Windows-Oberfläche?

		\vspace{0.3em}

		Richtig, keine!

		\vspace{0.3em}

		An der Basis seid ihr zu UNIX gewechselt, weshalb denn nicht auch an der Oberfläche? \\
		\pause
		An der Oberfläche seid ihr zu UNIX gewechselt, weshalb denn nicht auch an der Basis?
  \end{block}
	
	\pause

  \begin{block}{}
		UNIX ist mehr als Ubuntu!

		\textbf{Um UNIX zu verstehen, muss man seine Philosophie kennen!}
  \end{block}
}



\frame{ \frametitle{Die UNIX-Philosophie}
  \begin{itemize}
		\item 
		\item 
		\item 
		\item 
		\item 
		\item 
		\item 
  \end{itemize}

	\pause

	\begin{block}{siehe auch}
		\begin{itemize}
			\item 
			\item http://cat-v.org
			\item Rob Pike
			\item 
		\end{itemize}
	\end{block}
}




\section{GUI vs. CLI}
\frame{ \frametitle{GUI vs. CLI}
	\begin{block}{GUI-Programme \dots}
		\begin{itemize}
			\item haben hässlichen Code
			\item sind aufgebläht
			\item schränken ein
			\item laufen nur mit X
		\end{itemize}
	\end{block}

	\pause

	\begin{block}{CLI-Programme \dots}
		\begin{itemize}
			\item sind kleiner
			\item sind besser konfigurierbar
			\item sind älter und ausgereifter
			\item sind portabler (und damit auch öfter portiert)
		\end{itemize}
	\end{block}

	\pause

	{ \scriptsize (Natürlich gilt das nicht zwangsläufig, die Wahrscheinlichkeit ist aber groß.) }
}



\section{GUIs als Frontend}
\frame{ \frametitle{GUIs als Frontend}

	\begin{block}{}
		GUIs sollen laut UNIX-Philosophie nur Frontends sein.
	\end{block}

	\pause

	\begin{block}{Beispiele}
		\begin{itemize}
			\item Programm: \texttt{nmap}
			\item Frontends: \texttt{nmapfe} (GTK), \texttt{knmap} (Qt)
		\end{itemize}

		\begin{itemize}
			\item Programm: \texttt{libparted}
			\item Frontends: \texttt{parted} (curses), \texttt{gparted} (GTK), \texttt{qtparted} (Qt)
		\end{itemize}
	\end{block}
}



\section{Größe von User-Interfaces}
\frame{ \frametitle{Größe von User-Interfaces}


	{ \scriptsize
		\begin{itemize}
			\item Package: \textbf{libparted1.7-1}
			\item Size: 198,554
			\item Depends: libc6 ($>$= 2.3.6-6), libuuid1
		\end{itemize}
	}

		\pause


	{ \scriptsize
		\begin{itemize}
			\item Package: \textbf{parted}
			\item Size: 56,268
			\item Depends: libc6 ($>$= 2.3.6-6), libncurses5 ($>$= 5.4-5), libparted1.7-1 ($>$= 1.7.1-1), libreadline5 ($>$= 5.2)
		\end{itemize}
	}

		\pause

	{ \scriptsize
		\begin{itemize}
			\item Package: \textbf{gparted}
			\item Size: 452,616
			\item Depends: libatk1.0-0 ($>$= 1.12.2), libc6 ($>$= 2.3.6-6), libcairo2 ($>$= 1.2.4), libfontconfig1 ($>$= 2.3.0), libfreetype6 ($>$= 2.2), libgcc1 ($>$= 1:4.1.1-12), libglib2.0-0 ($>$= 2.10.0), libglibmm-2.4-1c2a, libgtk2.0-0 ($>$= 2.8.0), libgtkmm-2.4-1c2a, libice6 ($>$= 1:1.0.0), libpango1.0-0 ($>$= 1.12.3), libparted1.7-1 ($>$= 1.7.1-1), libpng12-0 ($>$= 1.2.8rel), libsigc++-2.0-0c2a ($>$= 2.0.2), libsm6, libstdc++6 ($>$= 4.1.1-12), libuuid1, libx11-6, libxcursor1 ($>$$>$ 1.1.2), libxext6, libxfixes3, libxi6, libxinerama1, libxrandr2, libxrender1, zlib1g ($>$= 1:1.2.1), gksu, menu
		\end{itemize}
	}
}





\section{Mein Weg}
\frame{ \frametitle{Mein Weg}
  \begin{block}{2005}
		Fluxbox, Firefox, Kate, Sylpheed Claws, gFTP, Gaim, vlc, k3b, gThumb, OOo, Grip, XMMS, \dots
  \end{block}

	\pause

  \begin{block}{2006}
		Auslöser: \textit{Mein Umzug in die Shell}
  \end{block}

	\pause

  \begin{block}{2007}
		dwm + \textit{screen}, Iceweasel + \textit{w3m},  \textit{vim}, \textit{mutt}, \textit{ncftp}, \textit{weechat + bitlbee}, mplayer, \textit{wodim + growisofs},  gqview + qiv, OOo, \textit{jack}, \textit{cplay}, \dots
  \end{block}

	\pause

	\begin{block}{}
		{\scriptsize Nachzulesen auf http://marmaro.de/lue }
	\end{block}
}


\section{Programme}

\subsection{Editor}
\frame{ \frametitle{Editor}
	\begin{block}{vi}
		\begin{itemize}
			\item Der Editor schlechthin
			\item Auf jedem UNIX-System vorhanden
			\item meist in Form eines Klons vorhanden
		\end{itemize}
	\end{block}

	\pause

	\begin{block}{Alternativen}
		\begin{itemize}
			\item \texttt{vim} (7350k) Der bekannteste (und beste?) vi-Klon.
			\item \texttt{nvi} (290k) Reimplementierung des orginal vi. Weniger Features; u.a. kein Syntax-Highlighting.
			\item \texttt{emacs} (1.4e26k) \dots 
		\end{itemize}
	\end{block}
}



\subsection{Mailclient}
\frame{ \frametitle{Mailclient}
	\begin{block}{mutt}
		\begin{itemize}
			\item ``The mail client that sucks less''
			\item sehr konfigurierbar
			\item Kombination mit \texttt{fetchmail}, \texttt{procmail}, \texttt{masqmail}
			\item \dots
			\item Debian-Paket: 1810k
		\end{itemize}
	\end{block}

	\pause

	\begin{block}{Alternativen}
		\begin{itemize}
			\item \texttt{mailx} (155k) einfaches Mailprogramm
		\end{itemize}
	\end{block}
}



\subsection{Browser}
\frame{ \frametitle{Browser}
	\begin{block}{w3m}
		\begin{itemize}
			\item Textbrowser
			\item kein JavaScript
			\item hat Caret-Navigation
			\item \dots
			\item Debian-Paket: 7350k
		\end{itemize}
	\end{block}

	\pause

	\begin{block}{Alternativen}
		\begin{itemize}
			\item \texttt{lynx} (1860k) der Dinosaurier
			\item \texttt{links} (380k) lynx-Klon
			\item \texttt{elinks} (1190k) hat auch JavaScript-Unterstützung
			\item \texttt{links2} (2080k) bietet textuellen und grafischen Modus
			\item \texttt{dillo} (360k) rein grafisch, layoutet aber wie Textbrowser
		\end{itemize}
	\end{block}
}



\subsection{Musikplayer}
\frame{ \frametitle{Musikplayer}
	\begin{block}{cplay}
		\begin{itemize}
			\item Frontend für mpg123, ogg123, \dots
			\item sehr simpel, aber meist ausreichend
			\item vi-like Bedienung
			\item \dots
			\item Debian-Paket: 41k
		\end{itemize}
	\end{block}

	\pause

	\begin{block}{Alternativen}
		\begin{itemize}
			\item \texttt{moc} (190k) sehr einfach, etwas instabil
			\item \texttt{cmus} (124k) sehr featurereich
			\item \texttt{mpd+ncmpc} (127k+85k) Client-Server-Architektur
		\end{itemize}
	\end{block}
}



\subsection{FTP-Client}
\frame{ \frametitle{FTP-Client}
	\begin{block}{ncftp}
		\begin{itemize}
			\item toller FTP-Client
			\item hatte nur früher ein curses-Interface
			\item ncftp-batch, ncftp-put, \dots
			\item \dots
			\item Debian-Paket: 500k
		\end{itemize}
	\end{block}

	\pause

	\begin{block}{Alternativen}
		\begin{itemize}
			\item \texttt{ftp} (50k) sehr minimal, bietet z.B. keine Readline
			\item \texttt{lftp} (540k) kenne ich leider nicht
			\item \texttt{mc} (2140k) Alleskönner mit schrecklicher Bedienung
		\end{itemize}
	\end{block}
}



\subsection{Chatten}
\frame{ \frametitle{Chatten}
	\begin{block}{weechat}
		\begin{itemize}
			\item ein IRC-Client
			\item weechat ist eine Reimplementierung von irssi
			\item Debian-Paket: 580k
		\end{itemize}
	\end{block}

	\pause

	\begin{block}{Alternativen}
		\begin{itemize}
			\item \texttt{irssi} (1060k) 
			\item \texttt{sic} (6k)
		\end{itemize}
	\end{block}

	\pause

	\begin{block}{bitlbee}
		\begin{itemize}
			\item bitlbee ist ein IM-to-IRC-Gateway
			\item den IRC-Client für ICQ und Jabber verwenden
			\item Debian-Paket: 315k
		\end{itemize}
	\end{block}
}



\subsection{Framebuffer}
\frame{ \frametitle{Framebuffer}
	\begin{block}{fbi}
		\begin{itemize}
			\item \texttt{fbi} zeigt Bilder im Framebuffer
			\item \texttt{fbgs} zeigt PDF- und PS-Dokumente im Framebuffer
			\item Debian-Paket: 54k (enthält \texttt{fbgs})
		\end{itemize}
	\end{block}

	\pause

	\begin{block}{mplayer}
		\begin{itemize}
			\item \texttt{mplayer -vo fbdev} zeigt Filme im Framebuffer
			\item kann auch über libaa, libcaca und Ähnliches ausgeben
			\item Debian-Paket: 4400k
		\end{itemize}
	\end{block}

%	\pause
%
%	\begin{block}{Alternativen}
%		\begin{itemize}
%			\item keine bekannt
%		\end{itemize}
%	\end{block}
}



\subsection{screen}
\frame{ \frametitle{screen}
	\begin{block}{screen}
		\begin{itemize}
			\item Terminal-Multiplexer
			\item Unersetzbares Tool für Shelluser
			\item \dots
			\item Debian-Paket: 590k
		\end{itemize}
	\end{block}
%
%	\pause
%
%	\begin{block}{Alternativen}
%		\begin{itemize}
%			\item keine bekannt
%		\end{itemize}
%	\end{block}
}



\subsection{Window-Manager}
\frame{ \frametitle{Window-Manager}
	\begin{block}{dwm}
		\begin{itemize}
			\item 
			\item 
			\item \dots
			\item Debian-Paket: 20k
		\end{itemize}
	\end{block}

	\pause

	\begin{block}{Alternativen}
		\begin{itemize}
			\item \texttt{larswm} (110k) 
			\item \texttt{ratpoison} (170k) 
			\item \texttt{ion2} (330k) 
			\item \texttt{icewm} (700k) 
		\end{itemize}
	\end{block}
}




\section{Suckless-Projekt}
\frame{ \frametitle{Suckless-Projekt}

}






\section{Zusammenfassung}
\frame{ \frametitle{Zusammenfassung}
  \begin{block}{}
    \begin{itemize}
      \item 
      \item 
      \item 
    \end{itemize}
  \end{block}

}


\section{Fragen}
\frame{ \frametitle{Fragen?}
  \vspace{5ex}
  \centerline{\huge ?}
}


\frame{ \frametitle{Abschließend}
  \begin{block}{Verwendete Software}
  \begin{itemize}
    \item Debian GNU/Linux
    \item \LaTeX-Beamer und \texttt{pdflatex}
    \item Vim
    \item qiv und ImageMagick
    \item Mercurial
  \end{itemize}
  \end{block}

	{ \tiny $\dagger$ \textit{UNIX} ist ein eingetragenes Warenzeichen der OpenGroup. }

  \begin{block}{}
    \vspace{3ex}
    \centerline{\textbf{Danke für eure Aufmerksamkeit}}
  \end{block}
}


\end{document}
