docs/gimme-shellter

view GimmeShellter.tex @ 7:e50c493cf700

added content for screen, remote working, summary; and more
author meillo@marmaro.de
date Tue, 11 Dec 2007 18:29:18 +0100
parents 52725a5ea7d9
children 2cb225d4329e
line source
1 % @file
2 % @brief Vortrag: Mein Umzug in die Shell
3 % @author markus schnalke <meillo@marmaro.de>
4 % @since 2007-09-25
7 \documentclass{beamer}
9 \usepackage[utf8]{inputenc}
10 \usepackage{ngerman}
11 \usepackage{graphicx}
12 \usepackage[automark]{scrpage2}
14 \title{Gimme Shell(ter)}
15 \author{markus schnalke}
16 \date{}
18 \begin{document}
21 \frame{
22 \vspace{8em}
23 \begin{center}
24 {\huge Gimme Shell}{\tiny (ter)}
26 {Mein Umzug in die Shell}
28 \vspace{6em}
30 { \tiny
31 markus schnalke \textless{}meillo@marmaro.de\textgreater{}
32 }
35 \end{center}
36 }
42 \section{Vorwort}
43 \frame{ \frametitle{Vorwort}
45 \begin{block}{}
46 Dass meine Zukunft in der Shell stattfinden soll, war mir schon lange klar.
47 \end{block}
49 \begin{block}{}
50 Bis ich jedoch soweit war, war es ein langer Weg.
51 \end{block}
53 \begin{block}{}
54 Und keinesfalls möchte ich behaupten, dass ich am Ziel wäre, denn es gibt kein Ziel. Es gibt nur vorwärts.
55 \end{block}
57 }
61 \section{Ziele}
62 \frame{ \frametitle{Ziele}
63 Dieser Vortrag soll zeigen, dass man auch ohne X komfortabel arbeiten kann.
65 \vspace{1em}
66 \pause
68 Ich möchte die ``Angst'' vor der textbasierten Benutzerschnittstelle nehmen. Auch will ich hierzu Einstiegshilfen geben.
70 \vspace{1em}
71 \pause
73 Ich möchte motivieren, mal Urlaub in der Shell zu machen.
75 \vspace{1em}
76 \pause
78 Es soll klar werden, dass und warum Kommandozeilenprogramme oft besser als ihre grafischen Pendants sind.
80 \vspace{1em}
81 \pause
83 Und als zentrales Ziel soll dieser Vortrag Gründe darstellen, weshalb es sich lohnt, in die Shell umzuziehen.
84 }
89 \section{Motivation}
90 \frame{ \frametitle{Motivation}
91 \begin{itemize}
92 \item Weil es cool ist {\scriptsize \textit{*hehe*}}
93 \end{itemize}
94 \pause
95 \begin{itemize}
96 \item effektiveres Arbeiten möglich
97 \item konfigurierbarer
98 \item ressourcenschonender
99 \end{itemize}
100 \pause
101 \begin{itemize}
102 \item Vorteile von \texttt{screen}
103 \item \texttt{ssh} von überall
104 \item auch ohne \texttt{X} daheim
105 \end{itemize}
107 \pause
108 \begin{block}{}
109 \textbf{Konzentration auf das Wesentliche!}
111 Näher an der UNIX-Philosophie
112 \end{block}
113 }
117 \part{UNIX}
118 \frame{
119 \vspace{8ex}
120 \centerline{ \huge UNIX }
121 }
124 \section{Die UNIX-Philosophie}
125 \frame{ \frametitle{Die UNIX-Philosophie}
126 \begin{block}{}
127 DER Grund UNIX$^{\dagger}$ zu verwenden
129 ``Pro UNIX'' statt ``Anti Windows''
130 \end{block}
132 \pause
134 \begin{block}{}
135 Welche wirklichen Vorteile bietet Gnome gegenüber der Windows-Oberfläche?
137 \vspace{0.3em}
139 Richtig, keine!
141 \vspace{0.3em}
143 An der Basis seid ihr zu UNIX gewechselt, weshalb denn nicht auch an der Oberfläche? \\
144 \pause
145 Oder: \textit{An der Oberfläche seid ihr zu UNIX gewechselt, weshalb denn nicht auch an der Basis?}
146 \end{block}
148 \pause
150 \begin{block}{}
151 UNIX ist mehr als Ubuntu!
153 \textbf{Um UNIX zu verstehen, muss man seine Philosophie kennen!}
154 \end{block}
155 }
159 \frame{ \frametitle{Die UNIX-Philosophie}
160 \begin{itemize}
161 \item klein ist schön
162 \item genau eine Sache gut machen
163 \item früher Prototyp
164 \item Portabilität vor Effizienz
165 \item Daten in ASCII-Files speichern
166 \item Code borgen
167 \item alles automatisieren
168 \item CLI statt GUI
169 \item Programme als Filter
170 \end{itemize}
172 \pause
174 \begin{block}{siehe auch}
175 \begin{itemize}
176 \item Mike Gancarz
177 \item Rob Pike
178 \item http://harmful.cat-v.org/cat-v/
179 \item Plan9
180 \end{itemize}
181 \end{block}
182 }
187 \section{GUI vs. CLI}
188 \frame{ \frametitle{GUI vs. CLI}
189 \begin{block}{GUI-Programme \dots}
190 \begin{itemize}
191 \item haben hässlichen Code
192 \item sind aufgebläht
193 \item schränken ein
194 \item laufen nur mit X
195 \end{itemize}
196 \end{block}
198 \pause
200 \begin{block}{CLI-Programme \dots}
201 \begin{itemize}
202 \item sind kleiner
203 \item sind besser konfigurierbar
204 \item sind älter und ausgereifter
205 \item sind portabler (und damit auch öfter portiert)
206 \end{itemize}
207 \end{block}
209 \pause
211 { \scriptsize (Natürlich gilt das nicht zwangsläufig, die Wahrscheinlichkeit ist aber groß.) }
212 }
215 \subsection{CURSES}
216 \frame{ \frametitle{CURSES}
217 \begin{block}{CLI, TUI, GUI}
218 \begin{itemize}
219 \item CLI: \texttt{cat cli.txt | mail -s CLI lugu}
220 \item TUI: \texttt{mutt}
221 \item GUI: \texttt{Menu \textgreater{} Applications \textgreater{} Evolution}
222 \end{itemize}
223 \end{block}
225 \pause
227 \begin{block}{CURSES}
228 \begin{itemize}
229 \item CURSES ist \emph{nicht} CLI
230 \item sondern Text User Interface
231 \item Ich bin hier nicht immer ganz korrekt
232 \item CURSES gehört aber auch zur Shell
233 \end{itemize}
234 \end{block}
235 }
239 \subsection{GUIs als Frontend}
240 \frame{ \frametitle{GUIs als Frontend}
242 \begin{block}{}
243 GUIs sollen laut UNIX-Philosophie nur Frontends sein.
244 \end{block}
246 \pause
248 \begin{block}{Beispiele}
249 \begin{itemize}
250 \item Programm: \texttt{nmap}
251 \item Frontends: \texttt{nmapfe} (GTK), \texttt{knmap} (Qt)
252 \end{itemize}
254 \begin{itemize}
255 \item Programm: \texttt{libparted}
256 \item Frontends: \texttt{parted} (curses), \texttt{gparted} (GTK), \texttt{qtparted} (Qt)
257 \end{itemize}
258 \end{block}
259 }
263 \subsection{Größe von User-Interfaces}
264 \frame{ \frametitle{Größe von User-Interfaces}
267 { \scriptsize
268 \begin{itemize}
269 \item Package: \textbf{libparted1.7-1}
270 \item Size: 198,554
271 \item Depends: libc6 ($>$= 2.3.6-6), libuuid1
272 \end{itemize}
273 }
275 \pause
278 { \scriptsize
279 \begin{itemize}
280 \item Package: \textbf{parted}
281 \item Size: 56,268
282 \item Depends: libc6 ($>$= 2.3.6-6), libncurses5 ($>$= 5.4-5), libparted1.7-1 ($>$= 1.7.1-1), libreadline5 ($>$= 5.2)
283 \end{itemize}
284 }
286 \pause
288 { \scriptsize
289 \begin{itemize}
290 \item Package: \textbf{gparted}
291 \item Size: 452,616
292 \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
293 \end{itemize}
294 }
295 }
300 \section{Programme vergleichen}
301 \frame{ \frametitle{Programme vergleichen}
302 \begin{block}{Weshalb die Programmgröße beachten?}
303 \begin{itemize}
304 \item Kleine Programme sind: flexibler, portabler, einfacher zu verstehen, bugfreier (vgl. UNIX-Philosophie)
305 \item Die Paketgröße gibt indirekt Aufschluss auf den Codeumfang
306 \item Der Codeumfang im Verhältnis zu den Features wirft Überlegungen zur Qualität des Codes auf
307 \end{itemize}
308 \end{block}
310 \begin{block}{}
311 Dies ist nur als Anhaltspunkt zu sehen!
312 \end{block}
313 }
317 \subsection{Messmethoden}
318 \frame{ \frametitle{Messmethoden}
319 \begin{block}{Paketgröße}
320 \begin{itemize}
321 \item \texttt{apt-cache show \textless{}paket\textgreater{} | grep \^{}Size}
322 \item einfach auszulesen
323 \item Problem: Dokumentation ist oft auch im Paket enthalten
324 \end{itemize}
325 \end{block}
327 \pause
329 \begin{block}{Source-Filesizes}
330 \begin{itemize}
331 \item \texttt{du -c *.[ch]} (je nach Sprache)
332 \item Quellcode muss vorliegen (\texttt{apt-get source})
333 \item Problem: \texttt{\{} vs. \texttt{begin}
334 \end{itemize}
335 \end{block}
337 \pause
339 \begin{block}{Source Lines Of Code}
340 \begin{itemize}
341 \item \texttt{sloccount} von David A. Wheeler
342 \item Sprachen werden ``gleicher bewertet''
343 \end{itemize}
344 \end{block}
345 }
349 \part{Die Shell und ich}
350 \frame{
351 \vspace{8ex}
352 \centerline{ \huge Die Shell und ich }
353 }
358 \section{Mein Weg}
359 \frame{ \frametitle{Mein Weg}
360 \begin{block}{2005}
361 Fluxbox, Firefox, Kate, Sylpheed Claws, gFTP, Gaim, vlc, k3b, gThumb, OOo, Grip, XMMS, \dots
362 \end{block}
364 \pause
366 \begin{block}{2006}
367 Auslöser:\\
368 Artikel ``Mein Umzug in die Shell'' von Gregor Oelze auf linuxlog
369 \end{block}
371 \pause
373 \begin{block}{2007}
374 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
375 \end{block}
377 \pause
379 \begin{block}{}
380 {\scriptsize Nachzulesen auf http://marmaro.de/lue }
381 \end{block}
382 }
385 \section{Programme}
387 \subsection{Editor}
388 \frame{ \frametitle{Editor}
389 \begin{block}{vi(m)}
390 \begin{itemize}
391 \item Der Editor schlechthin
392 \item Auf jedem UNIX-System vorhanden
393 \item meist in Form eines Klons
394 \item darf ruhig angepasst werden: \texttt{.vimrc}
395 \item Die meisten User verwenden viel zu wenige seiner Möglichkeiten!
396 \end{itemize}
397 \end{block}
399 \pause
401 \begin{block}{Alternativen}
402 \begin{itemize}
403 \item \texttt{vim} (7350k) Der bekannteste (und beste?) vi-Klon.
404 \item \texttt{nvi} (290k) Reimplementierung des orginal vi. Weniger Features; u.a. kein Syntax-Highlighting.
405 \item \texttt{emacs} (5.89e37) \dots
406 \end{itemize}
407 \end{block}
408 }
412 \subsection{Mailclient}
413 \frame{ \frametitle{Mailclient}
414 \begin{block}{mutt}
415 \begin{itemize}
416 \item ``The mail client, that sucks less''
417 \item sehr konfigurierbar
418 \item Kombination mit \texttt{fetchmail}, \texttt{procmail}, \texttt{masqmail}
419 \item Debian-Paket: 1810k
420 \end{itemize}
421 \end{block}
423 \pause
425 \begin{block}{Alternativen}
426 \begin{itemize}
427 \item \texttt{mailx} (155k) einfaches Mailprogramm
428 \item \texttt{pine} (4M) (nur als Source-Paket verfügbar)
429 \item \texttt{mutt-ng} (1790k) Neue Features für mutt (tot?)
430 \end{itemize}
431 \end{block}
432 }
436 \subsection{Browser}
437 \frame{ \frametitle{Browser}
438 \begin{block}{w3m}
439 \begin{itemize}
440 \item Textbrowser
441 \item hat Caret-Navigation
442 \item kein JavaScript
443 \item Inline-Bilder mit \texttt{w3m-img}
444 \item Debian-Paket: 1100k
445 \end{itemize}
446 \end{block}
448 \pause
450 \begin{block}{Alternativen}
451 \begin{itemize}
452 \item \texttt{lynx} (1860k) der Dinosaurier
453 \item \texttt{links} (380k) lynx-Klon
454 \item \texttt{elinks} (1190k) hat auch JavaScript-Unterstützung
455 \item \texttt{links2} (2080k) bietet textuellen und grafischen Modus
456 \item \texttt{dillo} (360k) rein grafisch, layoutet aber wie Textbrowser
457 \end{itemize}
458 \end{block}
459 }
463 \subsection{Musikplayer}
464 \frame{ \frametitle{Musikplayer}
465 \begin{block}{cplay}
466 \begin{itemize}
467 \item Frontend für mpg123, ogg123, \dots
468 \item sehr simpel, aber meist ausreichend
469 \item vi-like Bedienung
470 \item Remote-Control via FIFO
471 \item Debian-Paket: 41k
472 \end{itemize}
473 \end{block}
475 \pause
477 \begin{block}{Alternativen}
478 \begin{itemize}
479 \item \texttt{moc} (190k) sehr einfach, etwas instabil
480 \item \texttt{cmus} (124k) sehr featurereich
481 \item \texttt{mpd+ncmpc} (127k+85k) Client-Server-Architektur
482 \end{itemize}
483 \end{block}
484 }
488 \subsection{Filemanager}
489 \frame{ \frametitle{Filemanager}
490 \begin{block}{coreutils}
491 \begin{itemize}
492 \item cd, mv, cp, rm, mkdir, rmdir, \dots
493 \item man braucht eine gewisse Übersicht im Filesystem
494 \item letztendlich aber einfach am schnellsten
495 \item überall vorhanden
496 \end{itemize}
497 \end{block}
499 \pause
501 \begin{block}{Alternativen}
502 \begin{itemize}
503 \item \texttt{mc} (2140k) Alleskönner mit schrecklicher Bedienung
504 \item \texttt{vifm} (63k) \texttt{mc} mit vi-Bedienung; noch zu wenige Features
505 \end{itemize}
506 \end{block}
507 }
511 \subsection{FTP-Client}
512 \frame{ \frametitle{FTP-Client}
513 \begin{block}{ncftp}
514 \begin{itemize}
515 \item toller FTP-Client
516 \item hatte nur früher ein curses-Interface (\texttt{ncftp2})
517 \item ncftpget, ncftpput, \dots
518 \item Debian-Paket: 500k
519 \end{itemize}
520 \end{block}
522 \pause
524 \begin{block}{Alternativen}
525 \begin{itemize}
526 \item \texttt{ftp} (50k) wenig Komfort
527 \item \texttt{lftp} (540k) (kenne ich leider nicht)
528 \item \texttt{mc} (2140k) er kann auch ftp
529 \end{itemize}
530 \end{block}
531 }
535 \subsection{Chatten}
536 \frame{ \frametitle{Chatten}
537 \begin{block}{weechat-curses}
538 \begin{itemize}
539 \item ein IRC-Client
540 \item ``\texttt{irssi} von Grund auf neu''
541 \item Debian-Paket: 580k
542 \end{itemize}
543 \end{block}
545 \pause
547 \begin{block}{Alternativen}
548 \begin{itemize}
549 \item \texttt{irssi} (1060k) populärer IRC-Client
550 \item \texttt{sic} (6k) liest stdin, schreibt stdout
551 \item \texttt{centericq} (1260k) sehr bekannter ICQ-Client
552 \end{itemize}
553 \end{block}
555 \pause
557 \begin{block}{bitlbee}
558 \begin{itemize}
559 \item bitlbee ist ein IM-to-IRC-Gateway
560 \item IRC-Client für ICQ und Jabber verwenden
561 \item Debian-Paket: 315k
562 \end{itemize}
563 \end{block}
564 }
568 \subsection{Framebuffer}
569 \frame{ \frametitle{Framebuffer}
570 \begin{block}{fbi}
571 \begin{itemize}
572 \item \texttt{fbi} zeigt Bilder im Framebuffer
573 \item \texttt{fbgs} zeigt PDF- und PS-Dokumente im Framebuffer
574 \item Debian-Paket: 54k (enthält \texttt{fbgs})
575 \end{itemize}
576 \end{block}
578 \pause
580 \begin{block}{mplayer}
581 \begin{itemize}
582 \item \texttt{mplayer -vo fbdev} zeigt Filme im Framebuffer
583 \item kann auch über libaa, libcaca und Ähnliches ausgeben
584 \item Debian-Paket: 4400k
585 \end{itemize}
586 \end{block}
588 }
592 \subsection{screen}
593 \frame{ \frametitle{screen}
594 \begin{block}{screen}
595 \begin{itemize}
596 \item Terminal-Multiplexer
597 \item ein \texttt{must-have} für Shelluser
598 \item Nur noch ein Terminal nötig (ssh)
599 \item Arbeit an beliebiger Stelle unterbrechen und später genau dort fortsetzen
600 \item Wer einmal damit gearbeitet hat kommt nicht mehr davon los!
601 \item Debian-Paket: 590k
602 \end{itemize}
603 \end{block}
605 \pause
607 \begin{block}{Alternativen}
608 \begin{itemize}
609 \item \texttt{dtach} bietet detach-Feature von \texttt{screen}
610 \end{itemize}
611 \end{block}
612 }
616 \section{Remote arbeiten}
617 \frame{ \frametitle{Remote arbeiten}
618 \begin{block}{Server}
619 \begin{itemize}
620 \item Ein Server ist etwas sehr Tolles!
621 \item per dyndns.org aus dem Internet erreichbar
622 \item Upload-Bandbreite sollte nicht zu dünn sein
623 \item (64k sind etwas wenig *heul*)
624 \item Zugang per ssh
625 \end{itemize}
626 \end{block}
628 \pause
630 \begin{block}{Client}
631 \begin{itemize}
632 \item nur Internet und offener Port nötig
633 \item für Windows: PuTTY (gibt's auch für den USB-Stick)
634 \end{itemize}
635 \end{block}
636 }
639 \frame{ \frametitle{Remote arbeiten}
640 \begin{block}{Vorteile}
641 \begin{itemize}
642 \item weniger Wartungs- und Konfigurationsaufwand
643 \item einfache Datensicherung
644 \item von überall im eigenen System arbeiten
645 \end{itemize}
646 \end{block}
648 \pause
650 \begin{block}{Nachteile}
651 \begin{itemize}
652 \item Dateitransfers zum Client nötig
653 \item u.U. etwas lahm
654 \item nicht überall ist ssh erlaubt
655 \end{itemize}
656 \end{block}
657 }
662 \part{dwm}
663 \frame{
664 \vspace{8ex}
665 \centerline{ \huge dwm }
666 }
669 \section{Window-Manager}
670 \frame{ \frametitle{Window-Manager}
671 \begin{block}{dwm}
672 \begin{itemize}
673 \item dynamic window manager
674 \item seit Juli 2006
675 \item von Anselm R. Garbe (wmii)
676 \item http://dwm.suckless.org
677 \item Debian-Paket: 20k
678 \end{itemize}
679 \end{block}
681 \pause
683 \begin{block}{Alternativen}
684 \begin{itemize}
685 \item \texttt{larswm} (110k) hatte Einfluss auf dwm
686 \item \texttt{ratpoison} (170k) soll zu \texttt{screen} passen
687 \item \texttt{ion2} (330k) bekannt für seine Tastatursteuerung
688 \item \texttt{icewm} (700k) wird oft als sehr kleiner ``herkömmlicher'' WM aufgeführt
689 \end{itemize}
690 \end{block}
691 }
696 \frame{ \frametitle{dwm}
697 \begin{block}{Features}
698 \begin{itemize}
699 \item minimalistisch, nur das Nötig(st)e
700 \item Tagging statt Workspaces
701 \item Konfiguration durch Quellcode editieren und neu kompilieren
702 \item Quellcode kann an einem Abend verstanden werden
703 \item aktive Entwicklung
704 \end{itemize}
705 \end{block}
707 \pause
709 \begin{block}{Ziele}
710 \begin{itemize}
711 \item 2kLOC
712 \item portables C
713 \item guter Code (Refactoring)
714 \item sehr standardkonform (aber: broken apps)
715 \item Erweiterung mit Patches
716 \end{itemize}
717 \end{block}
718 }
723 \section{suckless-Projekt}
724 \frame{ \frametitle{suckless-Projekt}
725 \begin{block}{Community}
726 \begin{itemize}
727 \item http://suckless.org
728 \item kleine aktive Community
729 \item Patches als fester Bestandteil
730 \item Mailingliste ist Pflicht
731 \item einfach mitmachen!
732 \end{itemize}
733 \end{block}
735 \pause
737 \begin{block}{Mein dwm}
738 \begin{itemize}
739 \item ein Patchset
740 \item http://prog.marmaro.de/dwm-meillo
741 \end{itemize}
742 \end{block}
743 }
747 \part{Abschluss}
748 \frame{
749 \vspace{8ex}
750 \centerline{ \huge Abschluss }
751 }
755 \section{Soll erfüllt?}
756 \frame{ \frametitle{Soll erfüllt?}
757 Es sollte klar geworden sein, dass man auch ohne X komfortabel arbeiten kann.
759 \pause
760 \vspace{1em}
762 Ich habe Einstiegshilfen gegeben und hoffentlich die ``Angst'' vor der textbasierten Benutzerschnittstelle genommen.
764 \pause
765 \vspace{1em}
767 Jetzt sollte eigentlich jeder von euch dabei sein, einen Ausflug in die Shell zu planen.
769 \pause
770 \vspace{1em}
772 Weshalb die Shell wirklich besser ist, als die grafische Oberfläche, das kann man nur für sich selbst herausfinden \dots
773 }
779 \section{Zusammenfassung}
780 \frame{ \frametitle{Zusammenfassung}
782 Die Shell ist die grundlegende Kommunikationsschnittstelle zum Rechner.
783 Keine GUI ist so mächtig wie die Shell.
785 \pause
786 \vspace{1em}
788 UNIX und die Shell sind wie Yin und Yang.
790 \pause
791 \vspace{1em}
793 Man versteht die Shell erst, wenn man UNIX versteht --- UNIX zu verstehen, heißt seine Philosophie zu verstehen.
795 \pause
796 \vspace{1em}
798 Der entscheidende Teil meines Vortrags ist die UNIX-Philosophie. Versteht man diese, so versteht man was ich meine.
799 Findet man aber nicht seinen Weg zu ihr, so wird man kaum verstehen, um was es hier geht.
801 \pause
802 \vspace{1em}
804 Die Konzepte hinter UNIX haben mich vollkommen überzeugt.
806 \dots und es war eine der besten Entscheidungen meines Lebens, nach ihnen zu leben!
808 }
813 \section{Links}
814 \frame{ \frametitle{Links auf einen Blick}
815 \begin{itemize}
816 \item http://dwm.suckless.org (Website des dwm)
817 \item http://harmful.cat-v.org/cat-v/ (Website von Uriel)
818 \item http://marmaro.de/lue (Mein Computer-Tagebuch)
819 \item http://pimpmyshell.de (Projekt von Gregor Oelze)
820 \item http://prog.marmaro.de/dwm-meillo (Mein dwm-Patchset)
821 \item http://suckless.org (Software which sucks less)
822 \item http://www.cs.bell-labs.com/plan9/ (Das bessere UNIX!?)
823 \end{itemize}
825 \pause
827 \begin{block}{unbedingt lesen!}
828 \textbf{The Command Line --- The Best Newbie Interface}
830 {\scriptsize http://osnews.com/story.php/6282/The-Command-Line--The-Best-Newbie-Interface }
831 \end{block}
832 }
837 \section{Danke}
838 \frame{% \frametitle{Abschließend}
839 \begin{block}{Verwendete Software}
840 \begin{itemize}
841 \item Debian GNU/Linux
842 \item \LaTeX-Beamer und \texttt{pdflatex}
843 \item Vim
844 \item qiv und ImageMagick
845 \item Mercurial
846 \end{itemize}
847 \end{block}
849 { \tiny $\dagger$ UNIX is a registered trademark of The Open Group. }
851 \pause
853 \begin{block}{}
854 \vspace{3ex}
855 \centerline{\textbf{Danke für eure Aufmerksamkeit}}
856 \vspace{7ex}
857 \end{block}
859 \pause
861 {\scriptsize Den Vortrag gibt's online auf http://marmaro.de/docs \hfill 2007-12-11 }
862 }
865 \end{document}