\documentclass{beamer}

\usepackage{ae,aecompl}
\usepackage[brazil]{babel}
\usepackage[T1]{fontenc}

\usepackage{url}
\usepackage{hyperref}
\usepackage{xcolor}
\usepackage[utf8]{inputenc}
\usepackage{textcomp} % for right arrow

\usetheme{Darmstadt}

\title{30 anos depois, e o que é esse tal GNU?}
\author{Sergio Durigan Junior \\ \url{sergiodj@sergiodj.net}}
\date{\today}

\newcommand{\gnu}{\texttt{GNU}}

\begin{document}

\begin{frame}
	\titlepage
	\begin{center}
		\includegraphics[width=0.3\textwidth]{img/lp-br-sp-logo.png}
	\end{center}
\end{frame}

\section{Licença}
\begin{frame}
	\frametitle{Licença desta Apresentação}
	\begin{itemize}
		\item{Licença: \textbf{Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0)}}
		\item{\url{http://creativecommons.org/licenses/by-sa/3.0/}}
	\end{itemize}
\end{frame}

\section{Tópicos}
\begin{frame}
	\frametitle{Tópicos}
	\begin{itemize}
		% Explicar o que é SL
		\item{Introdução, ou ``O que é Software Livre?''}

		% História breve do UNIX, linguagem C
		\item{Multics, UNIX, e a revolução do S.O.}

		% Carta do Bill Gates aos hobbyistas
		\item{De Bill Gates, para os hobbyistas, em 1976}

		% Explicar como começou o projeto GNU.  Filosofia
		% UNIX, liberdade, sistema operacional completo, etc.
		\item{O \texttt{G} do \gnu{}}

		\item{O que é um S.O.?}

		\item{O Kernel: várias dores, uma adoção}

		\item{GLIBC: Início do território GNU}

		\item{GCC: Compilando o mundo}

		\item{GDB: O melhor amigo do desenvolvedor}

		\item{Bash: O entendedor dos comandos}

		\item{E não acabou!  Tem GNU/mais!}

		\item{O GNU/futuro...}

		\item{... e os GNU/problemas}

		\item{Conclusão}

		\item{Agradecimentos}
	\end{itemize}
\end{frame}

\section{Introdução, ou O que é Software Livre?}
\begin{frame}
	\frametitle{Introdução, ou ``O que é Software Livre?''}
	\centering
	\textbf{Software Livre} é qualquer software que	garanta ao usuário
	a liberdade de usá-lo, distribuí-lo e modificá-lo, de forma a atender
	todas as suas necessidades.
\end{frame}

\begin{frame}{Introdução, ou ``O que é Software Livre?''$^2$}
	\centering
	A definição formal de \textbf{Software Livre} foi proposta por Richard
	M. Stallman e baseia-se em \textbf{4 liberdades}, consideradas
	fundamentais (\textit{GNU Manifesto}):
	\newline
	\begin{itemize}
		\item{\textbf{Liberdade 0}: A liberdade de executar o programa
			para qualquer propósito.}
		\item{\textbf{Liberdade 1}: A liberdade de estudar como o
			programa funciona e alterá-lo para fazê-lo funcionar
			como desejar.}
		\item{\textbf{Liberdade 2}: A liberdade de redistribuir cópias
			do programa.}
		\item{\textbf{Liberdade 3}: A liberdade de melhorar o programa
			e redistribuir a melhoria para toda a comunidade.}
	\end{itemize}
\end{frame}

\begin{frame}{Introdução, ou ``O que é Software Livre?''$^3$}
	\begin{itemize}
		\item{\textbf{Não confunda Software Livre com Open Source}!!}
		\pause
		\item{\textbf{Software Livre} é um movimento técnico, social,
			filosófico e político.  Incentiva uma cultura de
			\textbf{respeito} à liberdade de todos, e não aceita
			imposições e restrições ditadas por empresas,
			entidades ou pessoas com objetivos excusos.
			\textbf{Sua liberdade não lhe dá permissão para tirar a
			liberdade do outro}.}
		\pause
		\item{\textbf{Open Source} é uma metodologia de
			desenvolvimento de software.  Incentiva a
			\textit{abertura do código-fonte} de programas,
			mas não toma partido em questões cruciais como
			privacidade, neutralidade na rede, ou abusos
			contra a liberdade de usuários de software cometidos
			por empresas em nome de uma suposta ``conveniência''.}
	\end{itemize}
\end{frame}


\section{Multics, UNIX, e a revolução do S.O.}
\begin{frame}{Multics, UNIX, e a revolução do S.O.}
	\begin{itemize}
		\item{Ken Thompson, Dennis Ritchie, em 1969.}
		\item{K.I.S.S.}
		\item{Software gratuito, acadêmico, código-fonte
			disponível nos primórdios.}
		\item{\textit{To C, or not to C?}}
	\end{itemize}
\end{frame}


\section{De Bill Gates, para os hobbyistas, em 1976}
\begin{frame}{De Bill Gates, para os hobbyistas, em 1976}
	\begin{center}
		\includegraphics[width=0.55\textwidth]{img/Bill_Gates_Letter_to_Hobbyists.pdf}
	\end{center}
\end{frame}



\section{O G do GNU}
\begin{frame}{O \texttt{G} do \gnu{}}
	\begin{itemize}
		\item{Projeto criado por Richard M. Stallman em 27 de
			Setembro de 1983.}
		\item{Objetivo: um Sistema Operacional completamente
			livre.}
		\item{Ainda estamos na luta :-).}
		\item{Compõe a maior parte do S.O. \textbf{GNU/Linux}.}
	\end{itemize}
\end{frame}



\section{O que é um S.O.?}
\begin{frame}{O que é um S.O.?}
	\begin{itemize}
		\item{Pense num Lego :-)}
		\item{\textbf{Kernel}: Comunica-se com os
			periféricos/\textit{hardwares}, provendo
		        acesso a recursos a partir do \textit{espaço
			de usuário}.}
		\item{\textbf{Biblioteca C}: Abstrai o acesso ao
			\textbf{kernel}, oferecendo funções mais
			complexas para lidar com problemas.}
		\item{\textbf{Toolchain}: Conjunto formado por um
                  \textbf{compilador}, \textbf{linker/loader},
                  \textbf{montador}, \textbf{depurador}, e, por vezes,
                  algumas outras ferramentas.}
		\item{\textbf{Interpretador de comandos}: É o programa
                  que realiza a interface entre o usuário e o S.O.}
	\end{itemize}
	\begin{center}
		Em cima do S.O., temos os aplicativos que utilizamos para
	        nossas tarefas, como um navegador, editor de textos,
	        processador de textos, jogos, etc.
	\end{center}
\end{frame}



\section{O Kernel: várias dores, uma adoção}
\begin{frame}{O Kernel: várias dores, uma adoção}
	\includegraphics[width=0.2\textwidth]{img/hurd_sm_mf.jpg}
	\begin{itemize}
		\item{\textbf{GNU Hurd}: 1990, microkernel, poucos
			desenvolvedores, um tanto desacreditado.}
		\item{Sistema \textit{bootável}, suporta apenas
			\texttt{i386}.}
		\item{Desenvolvimento ainda ativo, apesar de lento.}
	\end{itemize}
\end{frame}

\begin{frame}{O Kernel: várias dores, uma adoção$^2$}
	\includegraphics[width=0.1\textwidth]{img/Tux.jpg}
	\begin{itemize}
		\item{\textbf{Linux}: 1991, kernel monolítico,
			pragmatismo e uma pitada de desrespeito.}
		\item{\emph{Sadly, a kernel by itself gets you
                    nowhere. To get a working system you need a shell,
                    compilers, a library etc. These are separate parts
                    and may be under a stricter (or even looser)
                    copyright. Most of the tools used with linux are
                    GNU software and are under the GNU copyleft.}}
		\item{Situação atual: \textit{blobs} binários,
			desenvolvimento acelerado, \textit{open
                          source}, péssimo exemplo de liberdade.}
		\item{\textbf{Linux-libre!!!!}}
	\end{itemize}
\end{frame}


\section{GLIBC: Início do território GNU}
\begin{frame}{GLIBC: Início do território GNU}
	\begin{itemize}
		\item{Roland McGrath, final da década de 1980,
                  \texttt{GNU LGPL}.}
		\item{Ulrich Drepper mandava desde 2001.  Vários
                  \textit{forks}, xingamentos, também com uma pitada
                  de desrespeito.}
		\item{Em março de 2012, o processo de desenvolvimento
                  foi todo reformulado.  Comunidade em primeiro
                  lugar.}
		\item{Portabilidade extrema.}
	\end{itemize}
\end{frame}


\section{GCC: Compilando o mundo}
\begin{frame}{GCC: Compilando o mundo}
	\includegraphics[width=0.2\textwidth]{img/gccegg-65.png}
	\begin{itemize}
		\item{\textbf{G}NU \textbf{C}ompiler
                  \textbf{C}ollection.}
		\item{Andrew S. Tanenbaum, Amsterdam Compiler Kit,
                  não-livre.  Richard Stallman, 1986-7.}
		\item{\textbf{EGCS} fork, várias otimizações, até que
                  FSF decide usá-lo como o ``próximo'' GCC.}
		\item{Front-ends, plugins (em Python!), melhorias em
                  informação de depuração (com otimização -- Alexandre
                  Oliva), código legado, competição com LLVM...}
	\end{itemize}
\end{frame}


\section{GDB: O melhor amigo do desenvolvedor}
\begin{frame}{GDB: O melhor amigo do desenvolvedor}
	\includegraphics[width=0.3\textwidth]{img/archer.jpg}
	\begin{itemize}
		\item{Richard Stallman, em 1986.  ``Pra começar a
                  escrever o sistema, preciso de um depurador e de um
                  editor de texto.''}
		\item{\textit{Steering Committee}, mantenedores,
                  comunidade pequena, código legado...}
		\item{Suporte a várias linguagens além de C/C++.
                  Pouca competição com LLDB.  Extensões em Python.
                  Grandes refatorações de código!}
	\end{itemize}
\end{frame}


\section{Bash: O entendedor dos comandos}
\begin{frame}{Bash: O entendedor dos comandos}
	\includegraphics[width=0.3\textwidth]{img/bash-org.jpg}
	\begin{itemize}
		\item{Brian Fox, em 1988.  Brian foi contratado pela
                  FSF para o trabalho, tamanha a importância de um
                  shell livre!}
		\item{Grande maioria dos usuários de linha de comando
                  utilizam o Bash.}
		\item{Scriptagem no seu mais alto nível.  Muitas vezes
                  seu programa GUI está usando Bash por baixo :-).}
	\end{itemize}
\end{frame}


\section{E não acabou!  Tem GNU/mais!}
\begin{frame}{E não acabou!  Tem GNU/mais!}
	\begin{itemize}
		\item{Montador (\textit{assembler}), \textit{linker},
                  \textit{loader}...  Tudo isso é GNU.}
		\pause
		\item{Quer ambiente gráfico?  Tem o \textbf{GNOME}.}
		\pause
		\item{Quer editor de texto?  Tem o \textbf{GNU
                    Emacs}.}
		\pause
		\item{Quer editor de imagem?  Tem o \textbf{GIMP}.}
		\pause
		\item{Biblioteca de interação com o usuário pra linha
                  de comando?  Sem problema!  Tem a
                  \textbf{GNU readline}.}
		\pause
		\item{Alternativa pro Android?  \textbf{GNU
                    Replicant}.}
		\pause
		\item{Alternativa pro Flash?  \textbf{Gnash}.}
		\pause
		\item{Quer se libertar do Matlab?  \textbf{GNU
                    Octave}.}
		\pause
		\item{Sua BIOS não é livre, sabia???  Mas o
                  \textbf{GNU coreboot} é!}
	\end{itemize}
\end{frame}

\begin{frame}{E não acabou!  Tem GNU/mais!$^2$}
	\begin{itemize}
		\item{Curte Lisp?  Common Lisp?  \textbf{GNU clisp}!}
		\pause
		\item{Curte linha de comando?  Já usou \texttt{ls},
                  \texttt{cd}, \texttt{cat}, \texttt{sort},
                  \texttt{dd}, \texttt{df}... ?  Todos parte do
                  \textbf{GNU coreutils}!}
		\pause
		\item{Dual boot?  \textbf{GNU GRUB}.}
		\pause
		\item{É desenvolvedor?  Aplica \textit{patches}?
                  \textbf{GNU patch}.}
		\pause
		\item{Vai descompactar um arquivo?  \textbf{GNU tar}.}
		\pause
		\item{Procurar uma palavra em algum texto?
                  \textbf{GNU grep}.}
		\pause
		\item{... ou talvez \textbf{GNU sed}.}
		\pause
		\item{Seu programa está traduzido?  Provavelmente
                  culpa do \textbf{GNU gettext}.}
	\end{itemize}
\end{frame}

\begin{frame}{E não acabou!  Tem GNU/mais!$^3$}
	\begin{itemize}
		\item{Alternativa pro YouTube?  \textbf{GNU
                    Mediagoblin}.}
		\pause
		\item{E pro Twitter?  \textbf{GNU Social}.}
		\pause
		\item{Computação estatística?  \textbf{GNU R}.}
		\pause
		\item{Programação Linear?  \textbf{GNU GLPK}.}
		\pause
		\item{Criptografia?  \textbf{GnuPG}.}
		\item{...}
	\end{itemize}
\end{frame}



\section{O GNU/futuro...}
\begin{frame}{O GNU/futuro}
	\begin{itemize}
		\item{Opinião pessoal :-).}
		\item{Foco em celulares e dispositivos móveis.
                  \textbf{GNU Replicant}.  \textbf{F-Droid} e
                  alternativas.  Quem sabe um GNU para o celular?
                  :-)}
		\item{Mais foco em ``sociais'': \textbf{GNU Social}.
                  Federação, descentralização.  \textbf{Gnunet}.}
	\end{itemize}
\end{frame}



\section{... e os GNU/problemas}
\begin{frame}{... e os GNU/problemas}
	\begin{itemize}
		\item{Stallman insiste em ser o ``Chief GNUisance''
                  (título apropriado).  Decisões arbitrárias e
                  polêmicas.  Alguns projetos conseguiram se
                  desvencilhar disso.}
		\begin{itemize}
			\item{Desistência de alguns desenvolvedores
                          importantes.}
		\end{itemize}
		\item{Pouco reconhecimento por parte da comunidade
                  \textrightarrow{} pouco conhecimento a respeito da
                  liberdade.}
		\item{O projeto GNU e a FSF fecham os olhos pra
                  questões importantíssimas, como hardware livre e, em
                  certo grau, questões de privacidade e neutralidade
                  de rede.}
		\item{Excesso de ``orgulho'' por seus próprios
                  softwares (até que ponto é um problema?).}
	\end{itemize}
\end{frame}



\section{Conclusão}
\begin{frame}{Conclusão}
	\begin{itemize}
		\item{Você usa \textbf{GNU/Linux}.  Ou deveria usar :-).}
		\item{O projeto GNU é muito maior do que a maioria das
                  pessoas pensa.}
		\item{Existem problemas no projeto, mas também existem
                  soluções, e a GNU/esperança ainda vive.}
		\item{A liberdade é algo pelo qual vale a pena lutar
                  :-).  (desculpem a pieguice!)}
	\end{itemize}
\end{frame}



\section{Agradecimentos}
\begin{frame}{Agradecimentos}
	\begin{itemize}
		\item{Ao pessoal da \textbf{SECCOMP}, especialmente ao
                  Marcel!}
		\item{Ao pessoal do \textbf{LibrePlanet São Paulo},
                  por manter vivo um ideal.}
		\item{A vocês, pela audiência e paciência.}
		\item{E ao \textbf{projeto GNU}, pelos 30 anos de luta!}
	\end{itemize}
\end{frame}

\begin{frame}{Dúvidas?}
	\begin{center}\textbf{Dúvidas?}\end{center}
\end{frame}

\begin{frame}{Momento denúncia}
	\begin{center}\alert{\textbf{A FSF USA TWITTER!}}\end{center}
\end{frame}

\end{document}
