\documentclass{lug}

\title{Penguinitis}
\subtitle{\emph{aka} Why we're addicted to Linux}
\author{Jack Rosenthal}

\newcommand{\tuxdistroheader}{%
    \hskip 0cm plus 1filll
    \raisebox{-5pt}{\includegraphics[height=18pt]{graphics/tux_header_icon}}
    \textbf{Distros}
}

\usepackage{tcolorbox}

\begin{document}

\begin{frame}
    \frametitle{What is Linux?}

    \begin{columns}
        \begin{column}{0.7\textwidth}
        \begin{itemize}[<+->]
            \setlength\itemsep{1em}
            \item Linux is an UNIX-like \textbf{operating system kernel},
                meaning it only provides the core components of the OS
            \item Linux is free and open source software written by developers
                across the world
            \item Linux can be used as a desktop OS, on servers, and Linux even
                powers Android
            \item Linux distributions (\emph{distros}) are complete operating
                systems created by bundling Linux with other software
        \end{itemize}
        \end{column}

        \begin{column}{0.3\textwidth}
            \includegraphics[width=\textwidth]{graphics/TuxFlat}
        \end{column}
    \end{columns}
\end{frame}

\begin{frame}
    \frametitle{Who develops Linux?}

    \begin{figure}
        \includegraphics[width=0.75\textwidth]{graphics/torvaldslinux}

        \bigskip

        \begin{minipage}{0.75\textwidth}
            \centering
            \small
        \emph{Linus Torvalds} (pictured above) started the Linux project, and although
        he has only written 2\% of the code, he has written the most of anyone
        alone.
        \end{minipage}
    \end{figure}

\end{frame}

\begin{frame}
    \frametitle{The UNIX Philosophy}

    \begin{columns}
        \begin{column}{0.8\textwidth}
    UNIX-like operating systems have been traditionally \emph{written by
    programmers, made for programmers}. This means it is easy to
    programmatically work on data.
        \end{column}
        \begin{column}{0.2\textwidth}
            \includegraphics[width=\textwidth]{graphics/ken_dmr}
        \end{column}
    \end{columns}

    \bigskip

    \begin{tcolorbox}[size=fbox,sharp corners=all]
        \small
    \begin{enumerate}
        \setlength\itemsep{2pt}
        \item \small Write programs which do one thing, and one thing well
        \item \small The output of a program should become the input of another
    \end{enumerate}
    \end{tcolorbox}

    \bigskip

    {%
        \bfseries
        \only<1>{$\,$}
        \only<2>{Download a file from a URL and write to terminal}
        \only<3>{Download a file from a URL while uncompressing it}
        \only<4>{Do all that while writing to a disk}
    }

    \medskip

    \visible<2->{\texttt{curl http://site/d.img.gz\visible<3->{\ |
    zcat\visible<4->{\ | dd of=/dev/sdb}}}}
\end{frame}

\begin{frame}
    \frametitle{Package Management}
    \vglue-20pt
    \begin{columns}[T]
        \begin{column}{0.5\textwidth}
            \begin{center}
                \includegraphics[height=3em]{graphics/mswindows}\par
                \textbf{The Windows Way}
            \end{center}
            \vglue-10pt
            \small
            \begin{itemize}
                \item Users get software by visiting a website and downloading
                    the installer program
                \item Developers have to write update managers
                \item Developers have to write an uninstaller program
                \item Dependency resolution is done by sketchy hacks in the
                    installer program
            \end{itemize}
        \end{column}
        \begin{column}{0.5\textwidth}
            \begin{center}
                \includegraphics[height=3em]{graphics/TuxFlat}\par
                \textbf{The Linux Way}
            \end{center}
            \vglue-10pt
            \small
            \begin{itemize}
                \item Distributions include a \textbf{package manager}, a
                    program which is responsible for:
                    \begin{itemize}
                        \item software installation
                        \item dependency resolution
                        \item software updates
                        \item software removal
                    \end{itemize}
            \end{itemize}
        \end{column}
    \end{columns}
\end{frame}



\begin{frame}
    \frametitle{Linux is Ultra Customizable}

    Because Linux is just a kernel, so many software packages exist to run on
    top of it. You get the choice of these packages to make the desktop just
    how you like it.

    \bigskip


    \begin{columns}
        \begin{column}{0.3\textwidth}
            \includegraphics[width=\textwidth]{graphics/gnome} \par
            \vspace*{4pt}
            \includegraphics[width=\textwidth]{graphics/kde} \par
        \end{column}
        \begin{column}{0.3\textwidth}
            \includegraphics[width=\textwidth]{graphics/lxde} \par
            \vspace*{4pt}
            \includegraphics[width=\textwidth]{graphics/xfce} \par
        \end{column}
        \begin{column}{0.3\textwidth}
            \includegraphics[width=\textwidth]{graphics/i3} \par
            \vspace*{4pt}
            \includegraphics[width=\textwidth]{graphics/scwm} \par
        \end{column}
    \end{columns}
\end{frame}

\begin{frame}
    \frametitle{Debian \tuxdistroheader}
    \begin{columns}
        \begin{column}{0.7\textwidth}
        \begin{itemize}[<+->]
            \setlength\itemsep{1em}
            \item Started in 1993, an old, yet reliable, distribution
            \item Installation images with GNOME, Cinnamon, KDE, LXDE,
                MATE, and XFCE
            \item Features the \texttt{apt} package manager
        \end{itemize}
        \end{column}

        \begin{column}{0.3\textwidth}
            \includegraphics[width=\textwidth]{graphics/debian}
        \end{column}
    \end{columns}
\end{frame}

\begin{frame}
    \frametitle{Ubuntu \tuxdistroheader}
    \begin{columns}
        \begin{column}{0.7\textwidth}
        \begin{itemize}[<+->]
            \setlength\itemsep{1em}
            \item A Debian based distribution started in 2004
            \item Many flavors including Kubuntu, Lubuntu, Xubuntu, Ubuntu
                GNOME and more
            \item Very popular and has a large community
            \item Features the \texttt{apt} package manager, as well as a
                ``Software Manager'' GUI
        \end{itemize}
        \end{column}

        \begin{column}{0.3\textwidth}
            \includegraphics[width=\textwidth]{graphics/ubuntu}
        \end{column}
    \end{columns}
\end{frame}

\begin{frame}
    \frametitle{Linux Mint \tuxdistroheader}
    \begin{columns}
        \begin{column}{0.7\textwidth}
        \begin{itemize}[<+->]
            \setlength\itemsep{1em}
            \item A Ubuntu based distribution started in 2006
            \item Comes with an interface that may be very familiar to previous
                users of Microsoft Windows, and because of this, many people
                call it beginner friendly
            \item Basically another Ubuntu
        \end{itemize}
        \end{column}

        \begin{column}{0.3\textwidth}
            \includegraphics[width=\textwidth]{graphics/mint}
        \end{column}
    \end{columns}
\end{frame}

\begin{frame}
    \frametitle{Fedora \tuxdistroheader}
    \begin{columns}
        \begin{column}{0.7\textwidth}
        \begin{itemize}[<+->]
            \setlength\itemsep{1em}
            \item Started in 2003 after the discontinuation of Red Hat Linux
            \item Main distribution features GNOME, although there are
                \emph{spins} of other desktop environments
            \item Includes power user tools like GNOME Boxes and Docker support
                out of the box
            \item Easy for beginners
            \item Features the excellent \texttt{dnf} package manager
        \end{itemize}
        \end{column}

        \begin{column}{0.3\textwidth}
            \includegraphics[width=\textwidth]{graphics/fedora}
        \end{column}
    \end{columns}
\end{frame}

\begin{frame}
    \frametitle{Arch Linux \tuxdistroheader}
    \begin{columns}
        \begin{column}{0.7\textwidth}
        \begin{itemize}[<+->]
            \setlength\itemsep{1em}
            \item Started in 2002 and there hasn't been a new version released
                since
            \item I'm not joking\dots\ Arch Linux is a rolling release. Updating
                your system through \texttt{pacman} brings you to the latest
            \item Comes with basically nothing out of the box, it's up to you
                to install the software you want to use
            \item Software packages are usually bleeding edge
            \item Very helpful and kind community
        \end{itemize}
        \end{column}

        \begin{column}{0.3\textwidth}
            \includegraphics[width=\textwidth]{graphics/arch}
        \end{column}
    \end{columns}
\end{frame}

\begin{frame}
    \frametitle{Choosing a Distro}

    \begin{columns}
        \begin{column}{0.7\textwidth}
        \begin{itemize}[<+->]
            \setlength\itemsep{1em}
            \item Do your own research to see which distro appeals to you the
                most
            \item You may have to install a few different distros and try them
                out
            \item Most Linux distros have a \emph{Live CD} image that allows
                you to try the full desktop from a CD or USB drive before installing
        \end{itemize}
        \end{column}

        \begin{column}{0.3\textwidth}
            \includegraphics[width=\textwidth]{graphics/tux_flag}
        \end{column}
    \end{columns}
\end{frame}

\begin{frame}
    \frametitle{So do you have Penguinitis?}
    \centering
    \includegraphics[height=\paperheight-4em]{graphics/penguinitis}
\end{frame}

\end{document}
