\documentclass[xcolor=dvipsnames,12pt]{beamer}
% Author: Marc Ronell
% LaTeX2e slide set - Presentation on GNU Linux and why it is important
% Copyright (C) 2015 Marc Ronell
% This program is free software: you can redistribute it and/or modify
% it under the terms of the GNU General Public License as published by
% the Free Software Foundation, either version 3 of the License, or
% (at your option) any later version.
% This program is distributed in the hope that it will be useful,
% but WITHOUT ANY WARRANTY; without even the implied warranty of
% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
% GNU General Public License for more details.
% You should have received a copy of the GNU General Public License
% along with this program. If not, see .
%%%%%%%%%%%%
%%% xcolor=dvipsnames allows the use of colors defined in the global
%%% dvipsnam.def file
%%%%%%%%%%%%
% \usepackage[dvipsnames*]{xcolor}
% \usepackage[svgnames]{xcolor}
% \usepackage[x11names]{xcolor}
\mode
{
%% \usetheme{Berlin}
%% \usetheme{Frankfurt}
%% \usetheme{Luebeck}
%% \usetheme{Montpellier}
%% \usetheme{Antibes}
\usetheme{JuanLesPins}
%% \usetheme{PaloAlto}
}
\usepackage[T1]{fontenc}
\usepackage{graphicx}
\usepackage{calligra}
% \usepackage{pgfpages}
% \pgfpagesuselayout{4 on 1}[letterpaper,border shrink=15mm] % could also use letterpaper
%% \usecolortheme{whale} %%
% \usecolortheme{rose} %%
% \usecolortheme{orchid} %% outer top/bottom dark blue
%% \usecolortheme{albatross} %% inner dark blue
%% \usecolortheme{lily} %% dark blue
\usecolortheme{lily} %% outer top/bottom dark blue
% \usecolortheme{dove} %% outer top/bottom white
%% \usecolortheme{crane} %% outer top/bottom nice yellow
%% \usecolortheme{beetle}
% \usecolortheme{rose}
%% \usecolortheme{seahorse}
%% \usefonttheme[onlylarge]{structuresmallcapsserif}
%% \usefonttheme{structuresmallcapsserif}
%% \usefonttheme[onlysmall]{structurebold}
%% \setbeamercovered{transparent}
% \setbeamercolor{title}{fg=red!80!black,bg=red!20!white}
%% \usecolortheme[named=CornflowerBlue]{structure}
% \usecolortheme[named=ForestGreen]{structure}
\setbeamerfont{subtitle}{shape=\itshape,family=\rmfamily,size=\tiny}
% \title[Aircraft Soft Cert \& Comp Security]{US Aircraft Software
% Certification \& Computer Security.} \author{Marc Ronell}
\title[GNU/Linux the \textbf{Free} Operating System]{Emacs: Editor
MACroS, more than just an editor by Guy Steele and Richard Stallman}
\author[Marc Ronell]{Copyright \copyright \ 2015 Marc Ronell\\
email: \texttt{mronell@alumni.upenn.edu}}
% \date[Boston Security Meetup]{Boston Security Meetup - Google,
% Cambridge, MA \\ June 19, 2013} \author[Marc Ronell]{Marc Ronell \\
% \texttt{mronell@alumni.upenn.edu}} \institute[US FAA]{The Federal
% Aviation Administration\\ Boston Aircraft Certification Office \\
% Burlington, MA, USA}
\date[Newton Free Library]{Newton Free Library\\ October 14, 2015}
\makeatletter
\hypersetup{pdftitle={\@title},pdfauthor={\@author}}
\makeatother
%% \date{June 19, 2013}
% \subtitle{Disclaimer: The opinions expressed in this presentation are
% the views of the author and do not reflect the official policy or
% position of any agency of the U.S. government. }
\subtitle{Disclaimer: The opinions expressed in this presentation are
the views of the author and do not reflect the official policy or
position of any agency of the U.S. government. }
\useoutertheme{infolines}
\begin{document}
\begin{frame}
\titlepage
\end{frame}
\begin{frame}
\frametitle{The GNU Copyleft statement}
\framesubtitle{ \url{http://www.gnu.org/copyleft/copyleft.en.html}}
\begin{verse} \small
This information is free; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This work is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this work; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301, USA.
\end{verse}
\end{frame}
\begin{frame}
\frametitle{GNU/Linux}
\framesubtitle{Emacs keystroke notation conventions}
Emacs notation describes certain specific keystroke combinations
\begin{itemize}
\item ESC then x is the same as M-x
\item Control and x together is annotated as C-x
\item Control and h together followed by t would be C-h t
\begin{itemize}
\item C-h t is the key sequence to start the Emacs tutorial.
\end{itemize}
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{GNU/Linux}
\framesubtitle{Emacs the editor: What is an editor?}
\begin{itemize}
\item Emacs is a development environment for programmers.
\item Emacs helps users:
\begin{itemize}
\item Write Code
\item Read a manual.(C-h i)
\item Browse news. (M-x gnus)
\item Create email.(C-x m)
\item Use an interactive shell. (M-x shell)
\end{itemize}
\begin{itemize}
\item Emacs allows its users to do operations on a file:
\begin{itemize}
\item Open or create a new file. (C-x C-f)
\item Enter characters or material into a new file.
\item Modify an existing file.
\item Search and replace text with a file or set of files.
\item Call other programs to operate on the file.
\end{itemize}
\end{itemize}
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{GNU/Linux}
\framesubtitle{Two common editor choices: Emacs and Vi}
There are 2 common editor choices in the UNIX programming
environment:
\begin{itemize}
\item Emacs
\begin{itemize}
\item Ported everywhere.
\item Extensible and customizable through elisp.
\end{itemize}
\item Vi
\begin{itemize}
\item System rescue environments often use vi.
\item Modal in its interface. Insert mode, append mode.
\end{itemize}
\end{itemize}
Realistically, it is best to learn at minimum a little of both.
\end{frame}
\begin{frame}
\frametitle{GNU/Linux}
\framesubtitle{Emacs Advantages}
\begin{itemize}
\item Emacs has
\begin{itemize}
\item a built in free tutorial. (C-h t)
\item built in free Emacs manual.
\item Display UNIX manual pages also. (M-x man)
\item free documentation system for UNIX.
\item Elisp Interpreter.
\item Code navigation
\item Emacs can compare two files (M-x ediff)
\item File manager integration (M-x dired)
\item Debugger integration.(M-x gdb)
\item Can invoke make (M-x compile)
\item Version control integration
\end{itemize}
\item Emacs has been around for 30+ years and is open source.
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{GNU/Linux}
\framesubtitle{/bin/tcsh emacs like interface}
There is an Emacs like shell.
\begin{itemize}
\item The tcsh has an emacs like interface.
\item Knowing emacs also allows one to transition easily to tcsh.
\end{itemize}
tcsh can be set to act like vi as well, just defaults to emacs.
\end{frame}
\begin{frame}
\frametitle{GNU/Linux}
\framesubtitle{Emacs the editor: What is an editor?}
Modes in Emacs tend to help maintain coding style
\begin{itemize}
\item Most major languages have indentation and spacing standards.
\item Emacs modes tend to help maintain the standards.
\item Completion keys promote mnemonic variable naming.
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{GNU/Linux}
\framesubtitle{Emacs Reference Card}
The Reference Card:
\begin{itemize}
\item 8x11 inch paper, double sided, command listing
\item Broken into logical function areas.
\item Can be used to learn emacs.
\item Free.
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{GNU/Linux}
\framesubtitle{Emacs: initialization, customization through .emacs file}
\begin{itemize}
\item Start-up, initialization file is ~/.emacs
\item Can be used to customize emacs behavior and start-up
\item Written in elisp commands.
\item Can expand functionality.
\item Programmable.
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{GNU/Linux}
\framesubtitle{Editing remote files}
Emacs can edit files on a remote server:
\begin{itemize}
\item Edits the files as if they were local.
\item Uses a feature called Tramp
\item Access remote files by /mylogin@remotehost:/remote/path/to/file
\item Retrieves files securely over ssh or ftp.
\item Saves the file when you are finished on the remote machine.
\item Can also edit another user's files with their permissions locally.
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{GNU/Linux}
\framesubtitle{Emacs the Calendar/Diary mode}
Emacs maintains and international set of calenders
\begin{itemize}
\item Displays a three month calendar.
\item Diary allows the creation of
\begin{itemize}
\item Appointment reminders
\item Anniversary reminders
\item Keeps track of Holidays
\end{itemize}
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{GNU/Linux}
\framesubtitle{Emacs Directory Editor}
Emacs Dired or Directory Editor Mode
\begin{itemize}
\item Allows various directory operations to be performed
\begin{itemize}
\item ls in various formats
\item mv - move files
\item cp - copy files
\item ln - link files
\item operations on files
\item searches
\item Emacs macros allows a wide variety of programmable changes.
\end{itemize}
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{GNU/Linux}
\framesubtitle{Emacs the editor: What is an editor?}
Emacs Summary
\begin{itemize}
\item Acts as an editor.
\item Extendable by adding new features through Elisp functions
\item Provides Integrated Development Environment for coders
\begin{itemize}
\item Modes for programming languages with syntax highlighting
\item Integrated debugger
\item Integrated version control
\item Global search and replace across multiple files
\item Calls compiler via makefiles.
\end{itemize}
\item Composes and reads email.
\item Composes and writes news.
\end{itemize}
\end{frame}
\end{document}
%%% Local Variables:
%%% mode: latex
%%% TeX-master: t
%%% End: