\documentclass[
	mode=present,
	style=paintings,
	size=14pt,
	paper=screen
]{powerdot}
\usepackage{url}
\pdsetup{
	palette=PearlEarring
}
\title{Fishing for Perl - The New Perl User Experience}
\author{Erez Schatz}
\date {\today}
\begin{document}
\maketitle
\begin{slide}{}
	\vspace*{1in}
	\begin{quotation} ...follow me, and I will show you how to fish for people
		- Matthew 4:19 \end{quotation}
\end{slide}
\section {Marketing}
\begin{slide}{Marketing}
	\vspace*{1in} 
	\begin{center}
	Everyone think Perl is Dead. \par \pause
	Everyone think Ruby is on the rise. \par \pause
	Real-life wise, neither is 100\% true. \par \pause
	Marketing wise, both are 100\% correct. \par \pause
	200\% even.
	\end{center}
\end{slide}
\begin{slide}{Marketing}
	\vspace*{1in} 
	\begin{center}
	Ruby\rq{}s killer app is Ruby on Rails. \par \pause
	Actually, Ruby\rq{}s killer app is Ruby on Rails\rq{} marketing.
	\end{center}
\end{slide}
\begin{slide}{Marketing}
	\vspace*{1in} 
	\begin{center}
	The Perl Foundation Marketing Committee \par \pause
	Create a bait for many users to try Perl \par \pause
	May reel in many new users \par \pause
	But...
	\end{center}
\end{slide}
\begin{slide}{Marketing}
	\vspace*{1in} 
	\begin{center}
	How do we want to be seen?
	\end{center}
\end{slide}
\begin{slide}{Marketing}
	\vspace{1 cm}
	\begin{center}DWM - \url{dwm.suckless.org}\end{center}\pause
	\begin{quotation}
		\lq\lq{}Because dwm is customized through editing its source code, 
		it’s pointless to make binary packages of it. 
		This keeps its userbase small and elitist. 
		No novices asking stupid questions.\rq\rq{}
	\end{quotation}\pause
	\begin{center}Is this Perl?\end{center}
\end{slide}
\section {Context}
\begin{slide}{Context}
	\vspace*{1in} 
	\begin{center}
		Context dictate attitude.
	\end{center}
\end{slide}
\begin{slide}{Context}
\vspace{1 cm}
\begin{itemize}
	\item Meeting \pause
	\item Presentation \pause
	\item Convention Talk \pause
	\item Chat \pause
	\item Mailing List
\end{itemize}
\end{slide}
\section{New User Experience}
\begin{slide}{New User Experience}
	\vspace{1 cm}
	\begin{quote} 
		Give a man a fish; you have fed him for a day.\\
		Teach a man to fish; and you have fed him for a lifetime.
	\end{quote}\par\pause
	\begin{center}
		Can you teach a starving man?\par\pause
		Will he be willing to listen?
	\end{center}
\end{slide}
\begin{slide}{New User Experience}
	\vspace{1 cm}
	\begin{quote}
		Build a man a fire, and he\rq{}ll be warm for a day. \\
		Set a man on fire, and he\rq{}ll be warm for the rest of his life - 
		Terry Pratchett
	\end{quote}\pause
	\begin{center}
		You can only make a first impression once
	\end{center}
\end{slide}
\begin{slide}{New User Experience}	
\vspace{1 cm}
\begin{itemize}
	\item \lq\lq{}This isn\rq{}t a Perl question\rq\rq{} \pause
	\item \lq\lq{}This doesn\rq{}t belong in this forum/list\rq\rq{} \pause
	\item \lq\lq{}Your code fragment is useless\rq\rq{} \pause
	\item \lq\lq{}You should work on your Spelling/Grammar\rq\rq{}
\end{itemize}
\end{slide}
\begin{slide}{New User Experience}	
\vspace{1 cm}
\begin{itemize}
	\item \lq\lq{}Use strictures\rq\rq{}\pause
	\item \lq\lq{}Don\rq{}t use C for-loops\rq\rq{} \pause
	\item \lq\lq{}Your code isn\rq{}t formatted/indented right\rq\rq{} \pause
	\item \lq\lq{}Use a module\rq\rq{}
\end{itemize}
\end{slide}
\begin{slide}{New User Experience}
	\vspace{1 in}
	\begin{quote}
		You can't just make shit up and expect the computer to know what you mean, Retardo! - 
		Mark Jason Dominus
	\end{quote}
\end{slide}
\begin{slide}{New User Experience}	
\vspace{1 cm}
\begin{itemize}
	\item How To Ask Questions The Smart Way\\
		\url{catb.org/~esr/faqs/smart-questions.html} \pause
	\item What is a minimal working example?\\
		\url{minimalbeispiel.de/mini-en.html} \pause
	\item XY Problem \\
		\url {perlmonks.org/index.pl?node_id=542341}
\end{itemize}
\end{slide}
\section{RTFM}
\begin{slide}{RTFM}
\vspace{1 cm}
	Read The Fathomless Manual \par \pause
	\vspace{10 mm}
	\begin{itemize}
	\item \texttt{LWP::UserAgent} $\Downarrow$ \pause
		\begin{itemize}
		\item \texttt{HTTP::Response} $\Downarrow$ \pause
			\begin{itemize}
			\item \texttt{HTTP::Message} $\Downarrow$ \par \pause
				\begin{itemize}
				\item \texttt{HTTP::Headers}
				\end{itemize}
			\end{itemize}
		\end{itemize}
	\end{itemize}
\end{slide}
\begin{slide}{RTFM}
\vspace{0.5 cm}
	Read The Furtive Manual \par\pause
	\vspace{0.3 cm}
	\texttt{perldoc -f open} $\Downarrow$ \\ \par\pause
	\vspace{0.3 cm}
	\texttt{open(FH, "<\$filename")\\
	open(my \$fh, '<', "input.txt")\\
	open(my \$tmp, "+>", undef)\\
	open(my \$dbase, '+<', 'dbase.mine')\\
	open(ARTICLE, '-|', "caesar <\$article")\\
	open my \$oldout, ">\&STDOUT"\\
	open OLDERR, ">\&", *STDERR\\
	open(FILEHANDLE, "<\&=", \$fd)\\
	open(FH, ">>\&=", OLDFH)}\par \pause
	\vspace{0.5 cm}
	There are So Many Different Ways of Doing it!
\end{slide}
\begin{slide}{RTFM}
\vspace{1 cm}
	\begin{center}
	Read The Full-featured Manual\par\pause
\vspace{1 cm}	
	Read The Faithful Manual
	\end{center}	
\end{slide}
\begin{slide}{RTFM}
	\onslide{1-}{Another form of RTFM:}\par
	\vspace{10 mm}
	\onslide{2-}{
		Q: What does this line mean?\\
		\texttt{
		\$\_ **= \$\_ , / \{\$\_\} / for 2 .. 42;
	}}\par
	\vspace{10 mm}
	\onslide*{3}{A: \texttt{perldoc perlvar}}
	\onslide{4}{A: \url{perldoc.perl.org/perlvar.html}}
\end{slide}
\section{The Socratic Method}
\begin{slide}{The Socratic Method}
	\vspace{1 cm}
	Programmers are required to think \par \pause
	\vspace{10 mm}
	Programming is finding answers to questions \par \pause
	\vspace{10 mm}
	Are we doing them harm by giving them the answers they ask for?
\end{slide}
\begin{slide}{The Socratic Method}
	\vspace{1 cm}
	Socrates used only oral communication \par \pause
	\vspace{10 mm}
	With very few students \par \pause
	\vspace{10 mm}
	Who were philosophers like Plato and Xenophon \par \pause
	\vspace{10 mm}
	And was executed by drinking Hemlock.
\end{slide}
\section{What to do?}
\begin{slide}{What to do?}
	\vspace{1 in}
	\begin{center}Give them the bloody answer.\par\pause
	\vspace{10 mm}
	Then give guidance for future reference.\end{center}
\end{slide}
\begin{slide}{What to do?}
\vspace{1 in}
	\begin{center}Sell the solution.\end{center}
\end{slide}
\begin{slide}{Be Positive}
\vspace{1 in}
      \begin{center}Be Positive.\par\pause
	\begin{quote}
		\onslide*{2}{Don\rq{}t use XML::Simple}
		\onslide{3-}{Use XML::Twig}\par
		\onslide*{4}{Don\rq{}t use Regex to parse HTML}
		\onslide{5}{Use an HTML parser}
	\end{quote}\end{center}
\end{slide}
\begin{slide}{Idioms}
	\vspace{1 cm}
	\begin{center}
		Be Idiomatic.\par\pause
	\vspace{10 mm}
		But not Enigmatic.\par\pause
	\vspace{10 mm}		
		Idioms are good. \par\pause
	\vspace{10 mm}		
		Mnemonics less good.
	\end{center}
\end{slide}
\begin{slide}{What to do?}
	\vspace{1 in}
	\begin{center} 
	\onslide{1-}{Treat them as peers.}
		\vspace{10 mm}
	\onslide*{2}{Treat them as beginners.}
	\onslide{3}{Treat them as Perl learners.}
	\end{center}
\end{slide}
\begin{slide}{What to do?}
	\vspace{1 cm}
	\begin{quote}
		\lq\lq{}...don\rq{}t hesitate to be be kind to them, and help them connect ... 
		so that they can grow and bloom into experienced wielders of Perl.\rq\rq{}
	\end{quote}\pause
	\begin{quote}
		\lq\lq{}But don\rq{}t hesitate to call them insane, either, 
		when the situation calls for it.\rq\rq{} - 
		Carl Masak 	\end{quote}
	\url{http://use.perl.org/~masak/journal/40110}
\end{slide}
\begin{slide}{Perl and the newcomer}
	\vspace{1 in}
	\begin{center}
		Perl is not intuitive \pause
		at first.
	\end{center}
\end{slide}
\begin{slide}{Perl and the newcomer}	
\vspace{1 in}
\begin{itemize}
	\item Context\pause
	\item CPAN \pause
	\item References \pause
	\item TIMTOWTDI
\end{itemize}
\end{slide}
\begin{slide}{Perl and the newcomer}
\vspace{1 cm}
	\begin{center}Principle of Least Astonishment\end{center}\pause
	\begin{quotation}
		\lq\lq{}Any language that doesn\rq{}t occasionally surprise the novice 
		will pay for it by continually surprising the expert\rq\rq{} - 
		Larry Wall
	\end{quotation}
\end{slide}
\section{Where to go?}
\begin{slide}{Where to go?}
	\vspace{1 cm}
	\begin{itemize}
		\item \url{learn.perl.org} \pause
		\item \url{nntp.perl.org/group/perl.beginners} \pause
		\item \url{perlmonks.org} \pause
		\item \url{strawberryperl.com} \pause
		\item \url{perldoc.perl.org} \pause
		\item \url{search.cpan.org}
	\end{itemize}
\end{slide}
\section {Thank You}
\end{document}
