meillo@1: % @file meillo@1: % @brief Vortrag: Mein Umzug in die Shell meillo@1: % @author markus schnalke meillo@1: % @since 2007-09-25 meillo@1: meillo@1: meillo@1: \documentclass{beamer} meillo@1: meillo@1: \usepackage[utf8]{inputenc} meillo@1: \usepackage{ngerman} meillo@1: \usepackage{graphicx} meillo@1: \usepackage[automark]{scrpage2} meillo@1: meillo@1: \title{Gimme Shell(ter)} meillo@1: \author{markus schnalke} meillo@8: \date{2007-12-11} meillo@1: meillo@1: \begin{document} meillo@1: meillo@1: meillo@1: \frame{ meillo@1: \vspace{8em} meillo@1: \begin{center} meillo@2: {\huge Gimme Shell}{\tiny (ter)} meillo@1: meillo@2: {Mein Umzug in die Shell} meillo@1: meillo@1: \vspace{6em} meillo@1: meillo@1: { \tiny meillo@2: markus schnalke \textless{}meillo@marmaro.de\textgreater{} meillo@1: } meillo@1: meillo@1: meillo@1: \end{center} meillo@1: } meillo@1: meillo@1: meillo@1: meillo@1: meillo@1: meillo@1: \section{Vorwort} meillo@1: \frame{ \frametitle{Vorwort} meillo@1: meillo@1: \begin{block}{} meillo@1: Dass meine Zukunft in der Shell stattfinden soll, war mir schon lange klar. meillo@1: \end{block} meillo@1: meillo@1: \begin{block}{} meillo@1: Bis ich jedoch soweit war, war es ein langer Weg. meillo@1: \end{block} meillo@1: meillo@1: \begin{block}{} meillo@1: Und keinesfalls möchte ich behaupten, dass ich am Ziel wäre, denn es gibt kein Ziel. Es gibt nur vorwärts. meillo@1: \end{block} meillo@1: meillo@1: } meillo@1: meillo@1: meillo@1: meillo@2: \section{Ziele} meillo@2: \frame{ \frametitle{Ziele} meillo@2: Dieser Vortrag soll zeigen, dass man auch ohne X komfortabel arbeiten kann. meillo@1: meillo@1: \vspace{1em} meillo@4: \pause meillo@1: meillo@4: Ich möchte die ``Angst'' vor der textbasierten Benutzerschnittstelle nehmen. Auch will ich hierzu Einstiegshilfen geben. meillo@4: meillo@4: \vspace{1em} meillo@4: \pause meillo@4: meillo@2: Ich möchte motivieren, mal Urlaub in der Shell zu machen. meillo@1: meillo@1: \vspace{1em} meillo@4: \pause meillo@1: meillo@4: Es soll klar werden, dass und warum Kommandozeilenprogramme oft besser als ihre grafischen Pendants sind. meillo@1: meillo@1: \vspace{1em} meillo@4: \pause meillo@1: meillo@2: Und als zentrales Ziel soll dieser Vortrag Gründe darstellen, weshalb es sich lohnt, in die Shell umzuziehen. meillo@1: } meillo@1: meillo@1: meillo@1: meillo@1: meillo@1: \section{Motivation} meillo@1: \frame{ \frametitle{Motivation} meillo@1: \begin{itemize} meillo@1: \item Weil es cool ist {\scriptsize \textit{*hehe*}} meillo@1: \end{itemize} meillo@1: \pause meillo@1: \begin{itemize} meillo@1: \item effektiveres Arbeiten möglich meillo@1: \item konfigurierbarer meillo@1: \item ressourcenschonender meillo@1: \end{itemize} meillo@1: \pause meillo@1: \begin{itemize} meillo@1: \item Vorteile von \texttt{screen} meillo@1: \item \texttt{ssh} von überall meillo@1: \item auch ohne \texttt{X} daheim meillo@1: \end{itemize} meillo@1: meillo@1: \pause meillo@1: \begin{block}{} meillo@1: \textbf{Konzentration auf das Wesentliche!} meillo@1: meillo@1: Näher an der UNIX-Philosophie meillo@1: \end{block} meillo@1: } meillo@1: meillo@1: meillo@1: meillo@7: \part{UNIX} meillo@7: \frame{ meillo@8: \vspace{20ex} meillo@7: \centerline{ \huge UNIX } meillo@8: \vspace{16ex} meillo@8: { \tiny UNIX is a registered trademark of The Open Group. } meillo@8: meillo@7: } meillo@1: meillo@1: meillo@1: \section{Die UNIX-Philosophie} meillo@1: \frame{ \frametitle{Die UNIX-Philosophie} meillo@1: \begin{block}{} meillo@8: DER Grund UNIX zu verwenden meillo@1: meillo@1: ``Pro UNIX'' statt ``Anti Windows'' meillo@1: \end{block} meillo@1: meillo@1: \pause meillo@1: meillo@1: \begin{block}{} meillo@1: Welche wirklichen Vorteile bietet Gnome gegenüber der Windows-Oberfläche? meillo@1: meillo@1: \vspace{0.3em} meillo@1: meillo@1: Richtig, keine! meillo@1: meillo@1: \vspace{0.3em} meillo@1: meillo@2: An der Basis seid ihr zu UNIX gewechselt, weshalb denn nicht auch an der Oberfläche? \\ meillo@2: \pause meillo@3: Oder: \textit{An der Oberfläche seid ihr zu UNIX gewechselt, weshalb denn nicht auch an der Basis?} meillo@1: \end{block} meillo@1: meillo@1: \pause meillo@1: meillo@1: \begin{block}{} meillo@1: UNIX ist mehr als Ubuntu! meillo@1: meillo@2: \textbf{Um UNIX zu verstehen, muss man seine Philosophie kennen!} meillo@1: \end{block} meillo@1: } meillo@1: meillo@1: meillo@1: meillo@1: \frame{ \frametitle{Die UNIX-Philosophie} meillo@1: \begin{itemize} meillo@3: \item klein ist schön meillo@3: \item genau eine Sache gut machen meillo@3: \item früher Prototyp meillo@3: \item Portabilität vor Effizienz meillo@3: \item Daten in ASCII-Files speichern meillo@3: \item Code borgen meillo@3: \item alles automatisieren meillo@3: \item CLI statt GUI meillo@3: \item Programme als Filter meillo@1: \end{itemize} meillo@2: meillo@2: \pause meillo@2: meillo@2: \begin{block}{siehe auch} meillo@2: \begin{itemize} meillo@7: \item Mike Gancarz meillo@2: \item Rob Pike meillo@7: \item http://harmful.cat-v.org/cat-v/ meillo@7: \item Plan9 meillo@2: \end{itemize} meillo@2: \end{block} meillo@1: } meillo@1: meillo@1: meillo@1: meillo@1: meillo@1: \section{GUI vs. CLI} meillo@1: \frame{ \frametitle{GUI vs. CLI} meillo@1: \begin{block}{GUI-Programme \dots} meillo@1: \begin{itemize} meillo@1: \item haben hässlichen Code meillo@1: \item sind aufgebläht meillo@1: \item schränken ein meillo@1: \item laufen nur mit X meillo@1: \end{itemize} meillo@1: \end{block} meillo@1: meillo@1: \pause meillo@1: meillo@1: \begin{block}{CLI-Programme \dots} meillo@1: \begin{itemize} meillo@1: \item sind kleiner meillo@1: \item sind besser konfigurierbar meillo@1: \item sind älter und ausgereifter meillo@1: \item sind portabler (und damit auch öfter portiert) meillo@1: \end{itemize} meillo@1: \end{block} meillo@1: meillo@2: \pause meillo@2: meillo@2: { \scriptsize (Natürlich gilt das nicht zwangsläufig, die Wahrscheinlichkeit ist aber groß.) } meillo@1: } meillo@1: meillo@1: meillo@5: \subsection{CURSES} meillo@5: \frame{ \frametitle{CURSES} meillo@5: \begin{block}{CLI, TUI, GUI} meillo@4: \begin{itemize} meillo@4: \item CLI: \texttt{cat cli.txt | mail -s CLI lugu} meillo@5: \item TUI: \texttt{mutt} meillo@4: \item GUI: \texttt{Menu \textgreater{} Applications \textgreater{} Evolution} meillo@4: \end{itemize} meillo@4: \end{block} meillo@1: meillo@7: \pause meillo@7: meillo@4: \begin{block}{CURSES} meillo@4: \begin{itemize} meillo@4: \item CURSES ist \emph{nicht} CLI meillo@4: \item sondern Text User Interface meillo@7: \item Ich bin hier nicht immer ganz korrekt meillo@7: \item CURSES gehört aber auch zur Shell meillo@4: \end{itemize} meillo@4: \end{block} meillo@4: } meillo@4: meillo@4: meillo@4: meillo@4: \subsection{GUIs als Frontend} meillo@1: \frame{ \frametitle{GUIs als Frontend} meillo@1: meillo@1: \begin{block}{} meillo@1: GUIs sollen laut UNIX-Philosophie nur Frontends sein. meillo@1: \end{block} meillo@1: meillo@2: \pause meillo@2: meillo@1: \begin{block}{Beispiele} meillo@1: \begin{itemize} meillo@1: \item Programm: \texttt{nmap} meillo@1: \item Frontends: \texttt{nmapfe} (GTK), \texttt{knmap} (Qt) meillo@1: \end{itemize} meillo@1: meillo@1: \begin{itemize} meillo@1: \item Programm: \texttt{libparted} meillo@1: \item Frontends: \texttt{parted} (curses), \texttt{gparted} (GTK), \texttt{qtparted} (Qt) meillo@1: \end{itemize} meillo@1: \end{block} meillo@1: } meillo@1: meillo@1: meillo@1: meillo@4: \subsection{Größe von User-Interfaces} meillo@1: \frame{ \frametitle{Größe von User-Interfaces} meillo@1: meillo@1: meillo@1: { \scriptsize meillo@1: \begin{itemize} meillo@1: \item Package: \textbf{libparted1.7-1} meillo@1: \item Size: 198,554 meillo@1: \item Depends: libc6 ($>$= 2.3.6-6), libuuid1 meillo@1: \end{itemize} meillo@1: } meillo@1: meillo@1: \pause meillo@1: meillo@1: meillo@1: { \scriptsize meillo@1: \begin{itemize} meillo@1: \item Package: \textbf{parted} meillo@1: \item Size: 56,268 meillo@1: \item Depends: libc6 ($>$= 2.3.6-6), libncurses5 ($>$= 5.4-5), libparted1.7-1 ($>$= 1.7.1-1), libreadline5 ($>$= 5.2) meillo@1: \end{itemize} meillo@1: } meillo@1: meillo@1: \pause meillo@1: meillo@1: { \scriptsize meillo@1: \begin{itemize} meillo@1: \item Package: \textbf{gparted} meillo@1: \item Size: 452,616 meillo@1: \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 meillo@1: \end{itemize} meillo@1: } meillo@1: } meillo@1: meillo@1: meillo@1: meillo@1: meillo@4: \section{Programme vergleichen} meillo@4: \frame{ \frametitle{Programme vergleichen} meillo@4: \begin{block}{Weshalb die Programmgröße beachten?} meillo@3: \begin{itemize} meillo@3: \item Kleine Programme sind: flexibler, portabler, einfacher zu verstehen, bugfreier (vgl. UNIX-Philosophie) meillo@4: \item Die Paketgröße gibt indirekt Aufschluss auf den Codeumfang meillo@3: \item Der Codeumfang im Verhältnis zu den Features wirft Überlegungen zur Qualität des Codes auf meillo@4: \end{itemize} meillo@4: \end{block} meillo@4: meillo@4: \begin{block}{} meillo@4: Dies ist nur als Anhaltspunkt zu sehen! meillo@4: \end{block} meillo@4: } meillo@4: meillo@4: meillo@4: meillo@4: \subsection{Messmethoden} meillo@4: \frame{ \frametitle{Messmethoden} meillo@4: \begin{block}{Paketgröße} meillo@4: \begin{itemize} meillo@4: \item \texttt{apt-cache show \textless{}paket\textgreater{} | grep \^{}Size} meillo@4: \item einfach auszulesen meillo@4: \item Problem: Dokumentation ist oft auch im Paket enthalten meillo@3: \end{itemize} meillo@3: \end{block} meillo@3: meillo@3: \pause meillo@3: meillo@4: \begin{block}{Source-Filesizes} meillo@3: \begin{itemize} meillo@4: \item \texttt{du -c *.[ch]} (je nach Sprache) meillo@4: \item Quellcode muss vorliegen (\texttt{apt-get source}) meillo@4: \item Problem: \texttt{\{} vs. \texttt{begin} meillo@4: \end{itemize} meillo@4: \end{block} meillo@4: meillo@4: \pause meillo@4: meillo@4: \begin{block}{Source Lines Of Code} meillo@4: \begin{itemize} meillo@4: \item \texttt{sloccount} von David A. Wheeler meillo@4: \item Sprachen werden ``gleicher bewertet'' meillo@3: \end{itemize} meillo@3: \end{block} meillo@3: } meillo@3: meillo@3: meillo@3: meillo@7: \part{Die Shell und ich} meillo@7: \frame{ meillo@7: \vspace{8ex} meillo@7: \centerline{ \huge Die Shell und ich } meillo@7: } meillo@7: meillo@1: meillo@4: meillo@4: meillo@1: \section{Mein Weg} meillo@1: \frame{ \frametitle{Mein Weg} meillo@1: \begin{block}{2005} meillo@1: Fluxbox, Firefox, Kate, Sylpheed Claws, gFTP, Gaim, vlc, k3b, gThumb, OOo, Grip, XMMS, \dots meillo@1: \end{block} meillo@1: meillo@1: \pause meillo@1: meillo@1: \begin{block}{2006} meillo@5: Auslöser:\\ meillo@5: Artikel ``Mein Umzug in die Shell'' von Gregor Oelze auf linuxlog meillo@1: \end{block} meillo@1: meillo@1: \pause meillo@1: meillo@1: \begin{block}{2007} meillo@1: 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 meillo@1: \end{block} meillo@2: meillo@2: \pause meillo@2: meillo@2: \begin{block}{} meillo@2: {\scriptsize Nachzulesen auf http://marmaro.de/lue } meillo@2: \end{block} meillo@1: } meillo@1: meillo@1: meillo@2: \section{Programme} meillo@2: meillo@2: \subsection{Editor} meillo@2: \frame{ \frametitle{Editor} meillo@3: \begin{block}{vi(m)} meillo@2: \begin{itemize} meillo@2: \item Der Editor schlechthin meillo@2: \item Auf jedem UNIX-System vorhanden meillo@4: \item meist in Form eines Klons meillo@3: \item darf ruhig angepasst werden: \texttt{.vimrc} meillo@3: \item Die meisten User verwenden viel zu wenige seiner Möglichkeiten! meillo@2: \end{itemize} meillo@2: \end{block} meillo@2: meillo@2: \pause meillo@2: meillo@2: \begin{block}{Alternativen} meillo@2: \begin{itemize} meillo@2: \item \texttt{vim} (7350k) Der bekannteste (und beste?) vi-Klon. meillo@2: \item \texttt{nvi} (290k) Reimplementierung des orginal vi. Weniger Features; u.a. kein Syntax-Highlighting. meillo@4: \item \texttt{emacs} (5.89e37) \dots meillo@2: \end{itemize} meillo@2: \end{block} meillo@2: } meillo@2: meillo@2: meillo@2: meillo@2: \subsection{Mailclient} meillo@2: \frame{ \frametitle{Mailclient} meillo@2: \begin{block}{mutt} meillo@2: \begin{itemize} meillo@3: \item ``The mail client, that sucks less'' meillo@2: \item sehr konfigurierbar meillo@2: \item Kombination mit \texttt{fetchmail}, \texttt{procmail}, \texttt{masqmail} meillo@2: \item Debian-Paket: 1810k meillo@2: \end{itemize} meillo@2: \end{block} meillo@2: meillo@2: \pause meillo@2: meillo@2: \begin{block}{Alternativen} meillo@2: \begin{itemize} meillo@2: \item \texttt{mailx} (155k) einfaches Mailprogramm meillo@5: \item \texttt{pine} (4M) (nur als Source-Paket verfügbar) meillo@7: \item \texttt{mutt-ng} (1790k) Neue Features für mutt (tot?) meillo@2: \end{itemize} meillo@2: \end{block} meillo@2: } meillo@2: meillo@2: meillo@2: meillo@2: \subsection{Browser} meillo@2: \frame{ \frametitle{Browser} meillo@2: \begin{block}{w3m} meillo@2: \begin{itemize} meillo@2: \item Textbrowser meillo@4: \item hat Caret-Navigation meillo@2: \item kein JavaScript meillo@4: \item Inline-Bilder mit \texttt{w3m-img} meillo@3: \item Debian-Paket: 1100k meillo@2: \end{itemize} meillo@2: \end{block} meillo@2: meillo@2: \pause meillo@2: meillo@2: \begin{block}{Alternativen} meillo@2: \begin{itemize} meillo@2: \item \texttt{lynx} (1860k) der Dinosaurier meillo@2: \item \texttt{links} (380k) lynx-Klon meillo@2: \item \texttt{elinks} (1190k) hat auch JavaScript-Unterstützung meillo@2: \item \texttt{links2} (2080k) bietet textuellen und grafischen Modus meillo@2: \item \texttt{dillo} (360k) rein grafisch, layoutet aber wie Textbrowser meillo@2: \end{itemize} meillo@2: \end{block} meillo@2: } meillo@2: meillo@2: meillo@2: meillo@2: \subsection{Musikplayer} meillo@2: \frame{ \frametitle{Musikplayer} meillo@2: \begin{block}{cplay} meillo@2: \begin{itemize} meillo@2: \item Frontend für mpg123, ogg123, \dots meillo@2: \item sehr simpel, aber meist ausreichend meillo@2: \item vi-like Bedienung meillo@3: \item Remote-Control via FIFO meillo@2: \item Debian-Paket: 41k meillo@2: \end{itemize} meillo@2: \end{block} meillo@2: meillo@2: \pause meillo@2: meillo@2: \begin{block}{Alternativen} meillo@2: \begin{itemize} meillo@2: \item \texttt{moc} (190k) sehr einfach, etwas instabil meillo@2: \item \texttt{cmus} (124k) sehr featurereich meillo@2: \item \texttt{mpd+ncmpc} (127k+85k) Client-Server-Architektur meillo@2: \end{itemize} meillo@2: \end{block} meillo@2: } meillo@2: meillo@2: meillo@2: meillo@3: \subsection{Filemanager} meillo@3: \frame{ \frametitle{Filemanager} meillo@3: \begin{block}{coreutils} meillo@3: \begin{itemize} meillo@3: \item cd, mv, cp, rm, mkdir, rmdir, \dots meillo@4: \item man braucht eine gewisse Übersicht im Filesystem meillo@3: \item letztendlich aber einfach am schnellsten meillo@3: \item überall vorhanden meillo@3: \end{itemize} meillo@3: \end{block} meillo@3: meillo@3: \pause meillo@3: meillo@3: \begin{block}{Alternativen} meillo@3: \begin{itemize} meillo@3: \item \texttt{mc} (2140k) Alleskönner mit schrecklicher Bedienung meillo@3: \item \texttt{vifm} (63k) \texttt{mc} mit vi-Bedienung; noch zu wenige Features meillo@3: \end{itemize} meillo@3: \end{block} meillo@3: } meillo@3: meillo@3: meillo@3: meillo@2: \subsection{FTP-Client} meillo@2: \frame{ \frametitle{FTP-Client} meillo@2: \begin{block}{ncftp} meillo@2: \begin{itemize} meillo@2: \item toller FTP-Client meillo@4: \item hatte nur früher ein curses-Interface (\texttt{ncftp2}) meillo@3: \item ncftpget, ncftpput, \dots meillo@2: \item Debian-Paket: 500k meillo@2: \end{itemize} meillo@2: \end{block} meillo@2: meillo@2: \pause meillo@2: meillo@2: \begin{block}{Alternativen} meillo@2: \begin{itemize} meillo@3: \item \texttt{ftp} (50k) wenig Komfort meillo@3: \item \texttt{lftp} (540k) (kenne ich leider nicht) meillo@4: \item \texttt{mc} (2140k) er kann auch ftp meillo@2: \end{itemize} meillo@2: \end{block} meillo@2: } meillo@2: meillo@2: meillo@2: meillo@2: \subsection{Chatten} meillo@2: \frame{ \frametitle{Chatten} meillo@3: \begin{block}{weechat-curses} meillo@2: \begin{itemize} meillo@2: \item ein IRC-Client meillo@7: \item ``\texttt{irssi} von Grund auf neu'' meillo@2: \item Debian-Paket: 580k meillo@2: \end{itemize} meillo@2: \end{block} meillo@2: meillo@2: \pause meillo@2: meillo@2: \begin{block}{Alternativen} meillo@2: \begin{itemize} meillo@4: \item \texttt{irssi} (1060k) populärer IRC-Client meillo@3: \item \texttt{sic} (6k) liest stdin, schreibt stdout meillo@3: \item \texttt{centericq} (1260k) sehr bekannter ICQ-Client meillo@2: \end{itemize} meillo@2: \end{block} meillo@2: meillo@2: \pause meillo@2: meillo@2: \begin{block}{bitlbee} meillo@2: \begin{itemize} meillo@2: \item bitlbee ist ein IM-to-IRC-Gateway meillo@7: \item IRC-Client für ICQ und Jabber verwenden meillo@2: \item Debian-Paket: 315k meillo@2: \end{itemize} meillo@2: \end{block} meillo@2: } meillo@2: meillo@2: meillo@2: meillo@2: \subsection{Framebuffer} meillo@2: \frame{ \frametitle{Framebuffer} meillo@2: \begin{block}{fbi} meillo@2: \begin{itemize} meillo@2: \item \texttt{fbi} zeigt Bilder im Framebuffer meillo@2: \item \texttt{fbgs} zeigt PDF- und PS-Dokumente im Framebuffer meillo@2: \item Debian-Paket: 54k (enthält \texttt{fbgs}) meillo@2: \end{itemize} meillo@2: \end{block} meillo@2: meillo@2: \pause meillo@2: meillo@2: \begin{block}{mplayer} meillo@2: \begin{itemize} meillo@2: \item \texttt{mplayer -vo fbdev} zeigt Filme im Framebuffer meillo@2: \item kann auch über libaa, libcaca und Ähnliches ausgeben meillo@2: \item Debian-Paket: 4400k meillo@2: \end{itemize} meillo@2: \end{block} meillo@2: meillo@2: } meillo@2: meillo@2: meillo@2: meillo@2: \subsection{screen} meillo@2: \frame{ \frametitle{screen} meillo@2: \begin{block}{screen} meillo@2: \begin{itemize} meillo@2: \item Terminal-Multiplexer meillo@7: \item ein \texttt{must-have} für Shelluser meillo@7: \item Nur noch ein Terminal nötig (ssh) meillo@7: \item Arbeit an beliebiger Stelle unterbrechen und später genau dort fortsetzen meillo@7: \item Wer einmal damit gearbeitet hat kommt nicht mehr davon los! meillo@2: \item Debian-Paket: 590k meillo@2: \end{itemize} meillo@2: \end{block} meillo@7: meillo@7: \pause meillo@7: meillo@7: \begin{block}{Alternativen} meillo@7: \begin{itemize} meillo@7: \item \texttt{dtach} bietet detach-Feature von \texttt{screen} meillo@7: \end{itemize} meillo@7: \end{block} meillo@2: } meillo@2: meillo@2: meillo@2: meillo@7: \section{Remote arbeiten} meillo@7: \frame{ \frametitle{Remote arbeiten} meillo@7: \begin{block}{Server} meillo@7: \begin{itemize} meillo@7: \item Ein Server ist etwas sehr Tolles! meillo@7: \item per dyndns.org aus dem Internet erreichbar meillo@7: \item Upload-Bandbreite sollte nicht zu dünn sein meillo@7: \item (64k sind etwas wenig *heul*) meillo@7: \item Zugang per ssh meillo@7: \end{itemize} meillo@7: \end{block} meillo@7: meillo@7: \pause meillo@7: meillo@7: \begin{block}{Client} meillo@7: \begin{itemize} meillo@7: \item nur Internet und offener Port nötig meillo@7: \item für Windows: PuTTY (gibt's auch für den USB-Stick) meillo@7: \end{itemize} meillo@7: \end{block} meillo@7: } meillo@7: meillo@7: meillo@7: \frame{ \frametitle{Remote arbeiten} meillo@7: \begin{block}{Vorteile} meillo@7: \begin{itemize} meillo@7: \item weniger Wartungs- und Konfigurationsaufwand meillo@7: \item einfache Datensicherung meillo@7: \item von überall im eigenen System arbeiten meillo@7: \end{itemize} meillo@7: \end{block} meillo@7: meillo@7: \pause meillo@7: meillo@7: \begin{block}{Nachteile} meillo@7: \begin{itemize} meillo@7: \item Dateitransfers zum Client nötig meillo@7: \item u.U. etwas lahm meillo@7: \item nicht überall ist ssh erlaubt meillo@7: \end{itemize} meillo@7: \end{block} meillo@7: } meillo@7: meillo@7: meillo@7: meillo@7: meillo@7: \part{dwm} meillo@7: \frame{ meillo@7: \vspace{8ex} meillo@7: \centerline{ \huge dwm } meillo@7: } meillo@7: meillo@7: meillo@7: \section{Window-Manager} meillo@2: \frame{ \frametitle{Window-Manager} meillo@2: \begin{block}{dwm} meillo@2: \begin{itemize} meillo@3: \item dynamic window manager meillo@7: \item seit Juli 2006 meillo@3: \item von Anselm R. Garbe (wmii) meillo@3: \item http://dwm.suckless.org meillo@2: \item Debian-Paket: 20k meillo@2: \end{itemize} meillo@2: \end{block} meillo@2: meillo@2: \pause meillo@2: meillo@2: \begin{block}{Alternativen} meillo@2: \begin{itemize} meillo@5: \item \texttt{larswm} (110k) hatte Einfluss auf dwm meillo@5: \item \texttt{ratpoison} (170k) soll zu \texttt{screen} passen meillo@5: \item \texttt{ion2} (330k) bekannt für seine Tastatursteuerung meillo@7: \item \texttt{icewm} (700k) wird oft als sehr kleiner ``herkömmlicher'' WM aufgeführt meillo@2: \end{itemize} meillo@2: \end{block} meillo@2: } meillo@2: meillo@2: meillo@2: meillo@2: meillo@3: \frame{ \frametitle{dwm} meillo@3: \begin{block}{Features} meillo@3: \begin{itemize} meillo@3: \item minimalistisch, nur das Nötig(st)e meillo@3: \item Tagging statt Workspaces meillo@3: \item Konfiguration durch Quellcode editieren und neu kompilieren meillo@3: \item Quellcode kann an einem Abend verstanden werden meillo@3: \item aktive Entwicklung meillo@3: \end{itemize} meillo@3: \end{block} meillo@2: meillo@3: \pause meillo@3: meillo@3: \begin{block}{Ziele} meillo@3: \begin{itemize} meillo@3: \item 2kLOC meillo@3: \item portables C meillo@3: \item guter Code (Refactoring) meillo@4: \item sehr standardkonform (aber: broken apps) meillo@3: \item Erweiterung mit Patches meillo@3: \end{itemize} meillo@3: \end{block} meillo@3: } meillo@3: meillo@3: meillo@3: meillo@3: meillo@3: \section{suckless-Projekt} meillo@3: \frame{ \frametitle{suckless-Projekt} meillo@3: \begin{block}{Community} meillo@3: \begin{itemize} meillo@3: \item http://suckless.org meillo@3: \item kleine aktive Community meillo@3: \item Patches als fester Bestandteil meillo@3: \item Mailingliste ist Pflicht meillo@3: \item einfach mitmachen! meillo@3: \end{itemize} meillo@3: \end{block} meillo@3: meillo@3: \pause meillo@3: meillo@3: \begin{block}{Mein dwm} meillo@3: \begin{itemize} meillo@3: \item ein Patchset meillo@4: \item http://prog.marmaro.de/dwm-meillo meillo@3: \end{itemize} meillo@3: \end{block} meillo@2: } meillo@2: meillo@1: meillo@1: meillo@7: \part{Abschluss} meillo@7: \frame{ meillo@7: \vspace{8ex} meillo@7: \centerline{ \huge Abschluss } meillo@7: } meillo@7: meillo@7: meillo@1: meillo@4: \section{Soll erfüllt?} meillo@4: \frame{ \frametitle{Soll erfüllt?} meillo@7: Es sollte klar geworden sein, dass man auch ohne X komfortabel arbeiten kann. meillo@4: meillo@5: \pause meillo@5: \vspace{1em} meillo@4: meillo@5: Ich habe Einstiegshilfen gegeben und hoffentlich die ``Angst'' vor der textbasierten Benutzerschnittstelle genommen. meillo@5: meillo@5: \pause meillo@5: \vspace{1em} meillo@5: meillo@7: Jetzt sollte eigentlich jeder von euch dabei sein, einen Ausflug in die Shell zu planen. meillo@5: meillo@5: \pause meillo@5: \vspace{1em} meillo@5: meillo@7: Weshalb die Shell wirklich besser ist, als die grafische Oberfläche, das kann man nur für sich selbst herausfinden \dots meillo@5: } meillo@4: meillo@4: meillo@4: meillo@4: meillo@4: meillo@5: \section{Zusammenfassung} meillo@5: \frame{ \frametitle{Zusammenfassung} meillo@4: meillo@7: Die Shell ist die grundlegende Kommunikationsschnittstelle zum Rechner. meillo@7: Keine GUI ist so mächtig wie die Shell. meillo@7: meillo@5: \pause meillo@5: \vspace{1em} meillo@4: meillo@7: UNIX und die Shell sind wie Yin und Yang. meillo@7: meillo@7: \pause meillo@7: \vspace{1em} meillo@7: meillo@7: Man versteht die Shell erst, wenn man UNIX versteht --- UNIX zu verstehen, heißt seine Philosophie zu verstehen. meillo@7: meillo@7: \pause meillo@7: \vspace{1em} meillo@7: meillo@7: Der entscheidende Teil meines Vortrags ist die UNIX-Philosophie. Versteht man diese, so versteht man was ich meine. meillo@7: Findet man aber nicht seinen Weg zu ihr, so wird man kaum verstehen, um was es hier geht. meillo@7: meillo@7: \pause meillo@7: \vspace{1em} meillo@7: meillo@7: Die Konzepte hinter UNIX haben mich vollkommen überzeugt. meillo@7: meillo@7: \dots und es war eine der besten Entscheidungen meines Lebens, nach ihnen zu leben! meillo@7: meillo@4: } meillo@1: meillo@1: meillo@1: meillo@4: meillo@4: \section{Links} meillo@4: \frame{ \frametitle{Links auf einen Blick} meillo@4: \begin{itemize} meillo@7: \item http://dwm.suckless.org (Website des dwm) meillo@7: \item http://harmful.cat-v.org/cat-v/ (Website von Uriel) meillo@7: \item http://marmaro.de/lue (Mein Computer-Tagebuch) meillo@4: \item http://pimpmyshell.de (Projekt von Gregor Oelze) meillo@7: \item http://prog.marmaro.de/dwm-meillo (Mein dwm-Patchset) meillo@7: \item http://suckless.org (Software which sucks less) meillo@7: \item http://www.cs.bell-labs.com/plan9/ (Das bessere UNIX!?) meillo@4: \end{itemize} meillo@7: meillo@7: \pause meillo@7: meillo@7: \begin{block}{unbedingt lesen!} meillo@7: \textbf{The Command Line --- The Best Newbie Interface} meillo@7: meillo@7: {\scriptsize http://osnews.com/story.php/6282/The-Command-Line--The-Best-Newbie-Interface } meillo@7: \end{block} meillo@4: } meillo@4: meillo@4: meillo@4: meillo@4: meillo@4: \section{Danke} meillo@4: \frame{% \frametitle{Abschließend} meillo@1: \begin{block}{Verwendete Software} meillo@1: \begin{itemize} meillo@1: \item Debian GNU/Linux meillo@1: \item \LaTeX-Beamer und \texttt{pdflatex} meillo@1: \item Vim meillo@1: \item qiv und ImageMagick meillo@1: \item Mercurial meillo@1: \end{itemize} meillo@1: \end{block} meillo@1: meillo@3: \pause meillo@3: meillo@1: \begin{block}{} meillo@1: \vspace{3ex} meillo@1: \centerline{\textbf{Danke für eure Aufmerksamkeit}} meillo@7: \vspace{7ex} meillo@1: \end{block} meillo@7: meillo@7: \pause meillo@7: meillo@7: {\scriptsize Den Vortrag gibt's online auf http://marmaro.de/docs \hfill 2007-12-11 } meillo@1: } meillo@1: meillo@1: meillo@1: \end{document}