\usepackage[latin1]{inputenc}
\usepackage[italian]{babel}
\usepackage[T1]{fontenc}
\usepackage{times}
\usepackage{colortbl}
\usepackage{textcomp}
\usepackage{listings}
\usepackage{tikz}

\colorlet{p}{black!20}

\lstset{extendedchars,numbers=left,numberstyle=\tiny ,numbersep=5pt,language=Perl,showspaces=false,frame=single,framerule=0pt,backgroundcolor=\color{p},basicstyle=\small\ttfamily ,upquote=true,keepspaces=true}

\mode<presentation>
{
\usetheme[hideothersubsections]{Goettingen}
%\usecolortheme{beaver}
\usecolortheme{rose}
\setbeamertemplate{sections/subsections in toc}[ball]
}
\mode<article>{\usepackage{fullpage}}
\mode<handout>{\setbeamercolor{background canvas}{bg=black!5}}

\newcommand{\Perl}{\textsf{Perl}}
\newcommand{\perl}{\texttt{perl}}

\title{\Perl\ --- Tecniche di debugging}
\author[perl.it]{perl.it \url{http://www.perl.it/}}
\date[IPW2008]{Italian Perl Workshop 2008}

\begin{document}

\begin{frame}
\titlepage
\end{frame}

\begin{frame}\frametitle{Grazie a brian d foy}
Questo intervento è ispirato alla ``La guida di brian per la risoluzione di qualsiasi problema sul Perl''
\end{frame}

\begin{frame}\frametitle{Filosofia di debugging}
\begin{itemize}
\item Non è una questione personale
\item Responsabilità personale
\item Cambia il modo in cui fai le cose
\end{itemize}
\end{frame}

\begin{frame}
\begin{center}
{\Huge \texttt{use strict;}}
\end{center}
\end{frame}

\begin{frame}
\begin{center}
{\Huge \texttt{use warnings;}}
\end{center}
\end{frame}

\begin{frame}
\begin{center}
{\LARGE risolvi per primo il primo problema}
\end{center}
\end{frame}

\begin{frame}
\begin{center}
{\LARGE guarda anche prima del numero di linea segnalato}
\end{center}
\end{frame}

\begin{frame}[fragile]
\begin{center}
{\LARGE il valore è quello che tu pensi che sia?}
\end{center}

\begin{itemize}
\item<2> \lstinline|print STDERR "Il valore e` [$valore]\n";|
\item<2> \lstinline|warn "Il valore e` [$valore]\n";|
\item<2> \lstinline|warn Dumper( \%hash );|
\end{itemize}
\end{frame}

\begin{frame}[fragile]
\begin{center}
{\LARGE usa un debugger}
\end{center}

\begin{itemize}
\item<2> \verb|perl -d script|
\item<2> \lstinline|ptkdb|
\item<2> \lstinline|Devel::ebug|
\end{itemize}
\end{frame}

\begin{frame}[fragile]
\begin{center}
{\LARGE stai usando la funzione in maniera corretta?}
\end{center}

\begin{itemize}
\item<2-> \verb|perldoc -f nome_funzione|
\item<2-> \verb|perldoc Nome::Modulo|
\item<3> \emph{non} usate la documentazione in rete: usate quella sul vostro computer
\end{itemize}
\end{frame}

\begin{frame}[fragile]
\begin{center}
{\LARGE stai usando la variabile speciale giusta?}
\end{center}

\begin{itemize}
\item<2> \verb|perldoc perlvar|
\item<2> \lstinline|use English '-no_match_vars';|
\end{itemize}
\end{frame}

\begin{frame}[fragile]
\begin{center}
{\LARGE stai usando la versione giusta del modulo?}
\end{center}

\begin{itemize}
\item<2> \verb|perl -MNome::Modulo -le| \verb|'print Nome::Modulo->VERSION';|
\end{itemize}
\end{frame}

\begin{frame}
\begin{center}
{\Huge hai scritto i test?}
\end{center}
\end{frame}

\begin{frame}
\begin{center}
{\Huge hai eseguito i test?}
\end{center}
\end{frame}

\begin{frame}
\begin{center}
{\Huge quale test fallisce?}
\end{center}
\end{frame}

\begin{frame}[fragile]
\begin{center}
{\Huge hai controllato l'ambiente?}
\end{center}

\begin{itemize}
\item<2> \lstinline|warn Dumper(\%ENV);|
\end{itemize}
\end{frame}

\begin{frame}
\begin{center}
{\Huge hai controllato Google?}
\end{center}

\begin{itemize}
\item<2> o altri motori di ricerca
\item<2> controlla anche Google Groups (ovvero Usenet)
\end{itemize}
\end{frame}

\begin{frame}
\begin{center}
{\Huge hai parlato con l'orsacchiotto?}
\end{center}
\end{frame}

\begin{frame}
\begin{center}
{\Huge il problema sembra differente sulla carta?}
\end{center}
\end{frame}

\begin{frame}
\begin{center}
{\Huge hai fatto una pausa?}
\end{center}
\end{frame}

\begin{frame}
\begin{center}
{\Huge hai cestinato il tuo ego?}
\end{center}
\end{frame}

\end{document}

% - 
% Local Variables:
% mode: outline-minor
% outline-regexp: "\\(. -+ \\)\\|\\\\part\\|\\\\section\\|\\\\subsection"
% coding: iso-8859-1
% tex-command: "pdflatex"
% tex-main-file: "debug.slides.tex"
% End:
