\documentclass{beamer}

\usepackage{beamerthemeprogressbar}
\usepackage[spanish]{babel}
\usepackage{fix-cm}
\usepackage{color}

% the following is for unicode
\usepackage{fontspec}
\setmainfont[Mapping=tex-text]{DejaVu Sans}
\usepackage{xunicode}
\usepackage{xltxtra}

\usepackage{fancyvrb}

\setbeamersize{text margin left=20pt }
\setbeamersize{text margin right=20pt }
\setbeamertemplate{itemize item}[triangle]
\setbeamertemplate{itemize subitem}[triangle]

\title{Python en el mundo real}
\author{Facundo Batista}
\date{\today}

\begin{document}

\frame[plain] {
\begin{picture}(0,0)
  \put(0,-135){\includegraphics[scale=.25]{images/realpython.jpg}}
  \fontsize{28}{0}\selectfont
  \put(0,70){\textbf{\textit{Python en el mundo real}}}
  \fontsize{30}{0}\selectfont
  \put(210,20){Facundo}
  \put(215,-10){Batista}
  \put(220,-80){\includegraphics[scale=.24]{images/logo-pyar.png}}
  \fontsize{7}{0}\selectfont
  \put(0,-150){Foto: Creativity+ Timothy K Hamilton (http://www.flickr.com/photos/22017189@N00/60842961/)}
\end{picture}
}

\frame {
\frametitle{¿En el mundo real?}

\begin{itemize}
    \setlength{\itemsep}{8pt}
    \setlength{\parskip}{3pt}
    \item Algunos proyectos hechos en Python
    \item En qué framework o lib importante nos apoyamos
    \begin{itemize}
        \setlength{\itemsep}{2pt}
        \item Obviamente, además usamos la Biblioteca Estándar
    \end{itemize}
    \item Público usuario del sistema
    \item Complejidad desde distintos puntos de vista
    \item Ventaja de usar Python en el proyecto
    \item Inconvenientes encontrados
    \begin{itemize}
        \setlength{\itemsep}{2pt}
        \item Por haber usado Python
        \item O por el tipo de proyecto en sí
    \end{itemize}

\end{itemize}
}


% =========== w3af-gui

\frame[plain] {
\begin{picture}(0,0)
  \fontsize{40}{0}\selectfont
  \put(30,40){w3af-gui}
  \fontsize{20}{0}\selectfont
  \put(30,0){Web Application Attack}
  \put(30,-25){and Audit Framework}
  \put(250,-155){\includegraphics[scale=.5]{images/w3af-logo.png}}
\end{picture}
}

\frame[plain] {
\begin{picture}(0,0)
  \put(10,-145){\includegraphics[scale=.45]{images/w3af-ss1.png}}
\end{picture}
}

\frame[plain] {
\begin{picture}(0,0)
  \put(10,-145){\includegraphics[scale=.5]{images/w3af-ss2.png}}
\end{picture}
}

\frame[plain] {
\begin{picture}(0,0)
  \put(10,-155){\includegraphics[scale=.45]{images/w3af-ss3.png}}
\end{picture}
}

\frame[plain] {
\begin{picture}(0,0)
  \put(0,-120){\includegraphics[scale=.4]{images/w3af-ss4.png}}
\end{picture}
}

\frame[plain] {
\begin{picture}(0,0)
  \put(0,-145){\includegraphics[scale=.52]{images/w3af-ss5.png}}
\end{picture}
}

\frame[plain] {
\begin{picture}(0,0)
  \put(0,-140){\includegraphics[scale=.55]{images/w3af-ss6.png}}
\end{picture}
}

\frame {
\frametitle{w3af-gui}
\begin{itemize}
    \setlength{\itemsep}{8pt}
    \setlength{\parskip}{3pt}
    \item \textbf{Biblioteca:} pygtk, w3af
    \item \textbf{Público:} usuario final con un nivel técnico; aplicación de escritorio
    \item \textbf{Complejidad:} usabilidad; robustez; portabilidad
    \item \textbf{Ventaja:} prototipado => calidad final
    \item \textbf{Dificultad:} pygtk y threading en Linux y Windows; usabilidad
\end{itemize}
}



% =========== NCBS

\frame[plain] {
\begin{picture}(0,0)
  \fontsize{40}{0}\selectfont
  \put(30,40){NCBS}
  \fontsize{20}{0}\selectfont
  \put(30,00){New Cyclelogic Billing System}
\end{picture}
}

\frame[plain] {
\begin{picture}(0,0)
  \put(0,-130){\includegraphics[scale=.4]{images/ncbs.png}}
\end{picture}
}

\frame {
\frametitle{NCBS}
\begin{itemize}
    \setlength{\itemsep}{8pt}
    \setlength{\parskip}{3pt}
    \item \textbf{Biblioteca:} ninguna
    \item \textbf{Público:} otros sistemas vía HTTP
    \item \textbf{Complejidad:} velocidad; seguridad; robustez; escalabilidad
    \item \textbf{Ventaja:} simplicidad => seguridad/robustez; reacción ante cambios
    \item \textbf{Dificultad:} file descriptors por threading/gc; throttling
\end{itemize}
}



% =========== SD

\frame[plain] {
\begin{picture}(0,0)
  \fontsize{40}{0}\selectfont
  \put(20,40){Cliente de}
  \put(80,-10){Ubuntu One}
  \fontsize{24}{0}\selectfont
  \put(110,-55){(Sync Daemon)}
  \put(245,-150){\includegraphics[scale=2]{images/u1-logo.png}}
\end{picture}
}

\frame[plain] {
\begin{picture}(0,0)
  \put(00,-145){\includegraphics[scale=.40]{images/u1-bigplan.jpeg}}
\end{picture}
}

\frame[plain] {
\begin{picture}(0,0)
  \put(0,-145){\includegraphics[scale=.40]{images/u1-bigplan_withcontext.jpeg}}
\end{picture}
}

\frame[plain] {
\begin{picture}(0,0)
  \put(-2,-145){\includegraphics[scale=.39]{images/u1-states.png}}
\end{picture}
}

\frame[plain] {
\begin{picture}(0,0)
  \put(50,-145){\includegraphics[scale=.30]{images/u1-fsfsm.png}}
\end{picture}
}

\frame[plain] {
\begin{picture}(0,0)
  \put(0,-130){\includegraphics[scale=.5]{images/u1-spreadsheet.png}}
\end{picture}
}

\frame {
\frametitle{Sync Daemon}

\begin{itemize}
    \setlength{\itemsep}{8pt}
    \setlength{\parskip}{3pt}
    \item \textbf{Biblioteca:} twisted; pyinotify
    \item \textbf{Público:} usuario final; centenares de miles (¡millones!); distribuido en todos los ubuntus
    \item \textbf{Complejidad:} seguridad; robustez; sin sorpresas
    \item \textbf{Ventaja:} tiempo de desarrollo
    \item \textbf{Dificultad:} integración con Nautilus (tuvo que ser en C), supervisar filesystem y apps
\end{itemize}
}



% =========== File Storage server

\frame[plain] {
\begin{picture}(0,0)
  \fontsize{40}{0}\selectfont
  \put(20,40){Server de}
  \put(80,-10){Ubuntu One}
  \fontsize{24}{0}\selectfont
  \put(115,-55){(File Storage)}
  \put(245,-150){\includegraphics[scale=2]{images/u1-logo.png}}
\end{picture}
}

\frame {
\frametitle{File Storage Server de Ubuntu One}
\begin{itemize}
    \setlength{\itemsep}{8pt}
    \setlength{\parskip}{3pt}
    \item \textbf{Biblioteca:} twisted; storm
    \item \textbf{Público:} usuarios del cliente
    \item \textbf{Complejidad:} velocidad; seguridad; escalabilidad
    \item \textbf{Ventaja:} tiempo de desarrollo
    \item \textbf{Dificultad:} procesamiento multiserver
\end{itemize}
}



% =========== CDPedia

\frame[plain] {
\begin{picture}(0,0)
  \fontsize{40}{0}\selectfont
  \put(30,40){CDPedia}
  \put(180,-155){\includegraphics[scale=.5]{images/cdpedia-logo.jpg}}
\end{picture}
}

\frame[plain] {
\begin{picture}(0,0)
  \put(0,-140){\includegraphics[scale=.4]{images/cdpedia-ss.png}}
\end{picture}
}

\frame {
\frametitle{CDPedia}
\begin{itemize}
    \setlength{\itemsep}{8pt}
    \setlength{\parskip}{3pt}
    \item \textbf{Biblioteca:} ninguna
    \item \textbf{Público:} usuario final; distribución física
    \item \textbf{Complejidad:} procesamiento de datos; facilidad de uso; portabilidad
    \item \textbf{Ventaja:} portabilidad
    \item \textbf{Dificultad:} índice; compresión de datos
\end{itemize}
}



% =========== Typus Pocus

\frame[plain] {
\begin{picture}(0,0)
  \fontsize{40}{0}\selectfont
  \put(30,40){Typus Pocus}
  \put(220,-140){\includegraphics[scale=.7]{images/typuspocus-logo.png}}
\end{picture}
}

\frame[plain] {
\begin{picture}(0,0)
  \put(3,-135){\includegraphics[scale=.4]{images/typuspocus-ss1.png}}
\end{picture}
}

\frame[plain] {
\begin{picture}(0,0)
  \put(3,-135){\includegraphics[scale=.4]{images/typuspocus-ss2.png}}
\end{picture}
}

\frame[plain] {
\begin{picture}(0,0)
  \put(3,-135){\includegraphics[scale=.4]{images/typuspocus-ss3.png}}
\end{picture}
}

\frame {
\frametitle{Typus Pocus}
\begin{itemize}
    \setlength{\itemsep}{8pt}
    \setlength{\parskip}{3pt}
    \item \textbf{Biblioteca:} pygame
    \item \textbf{Público:} final
    \item \textbf{Complejidad:} facilidad de uso; portabilidad;
    \item \textbf{Ventaja:} en 7 días!
    \item \textbf{Dificultad:} jugabilidad
\end{itemize}
}



% =========== SACLLA

\frame[plain] {
\begin{picture}(0,0)
  \fontsize{40}{0}\selectfont
  \put(30,40){SACLLA}
  \fontsize{20}{0}\selectfont
  \put(30,5){Sistema de Armado y}
  \put(30,-17){Clasificación de LLAmadas}
  \put(220,-145){\includegraphics[scale=.26]{images/saclla-logo.png}}
\end{picture}
}

\frame[plain] {
\begin{picture}(0,0)
  \put(80,-145){\includegraphics[scale=.28]{images/saclla-esquema.png}}
\end{picture}
}

\frame {
\frametitle{SACLLA}
\begin{itemize}
    \setlength{\itemsep}{8pt}
    \setlength{\parskip}{3pt}
    \item \textbf{Biblioteca:} MySQLdb
    \item \textbf{Público:} admin
    \item \textbf{Complejidad:} velocidad; procesamiento de datos; escalabilidad; robustez
    \item \textbf{Ventaja:} adaptabilidad
    \item \textbf{Dificultad:} uptime crítico; no specs
\end{itemize}
}


% =========== Conclusiones

\frame[plain] {
\begin{picture}(0,0)
  \fontsize{40}{0}\selectfont
  \put(30,40){Conclusiones}
  \put(220,-145){\includegraphics[scale=.26]{images/viborita.png}}
\end{picture}
}

\frame[plain] {
\begin{picture}(0,0)
  \put(0,-140){\includegraphics[scale=.41]{images/cierre-educacion.jpg}}
\end{picture}
}

\frame[plain] {
\begin{picture}(0,0)
  \put(0,-145){\includegraphics[scale=.3]{images/cierre-futuro.jpg}}
\end{picture}
}

\frame {
\frametitle{Conclusiones}
\begin{itemize}
    \setlength{\itemsep}{8pt}
    \setlength{\parskip}{3pt}
    \item No es la herramienta ideal para todos los casos
    \begin{itemize}
        \setlength{\itemsep}{2pt}
        \item Es suficiente la mayor parte del tiempo
    \end{itemize}
    \item Es la mejor para prototipar, y entender el problema
    \begin{itemize}
        \setlength{\itemsep}{2pt}
        \item \textit{"Premature optimization is the root of all evil"} (Donald Knuth)
    \end{itemize}
    \item Hay que usar Python
    \begin{itemize}
        \setlength{\itemsep}{2pt}
        \item Pero siempre hay que saber C (aunque no lo usemos)
    \end{itemize}
    \item Y sus bibliotecas, incluídas o no
    \begin{itemize}
        \item ¡No reinventar la rueda!
    \end{itemize}
\end{itemize}
}


\frame
{
\begin{picture}(0,0)
  \fontsize{30}{0}\selectfont
  \put(60,50){¡Muchas gracias!}
  \fontsize{16}{0}\selectfont
  \put(90,9){\color{blue}¿Preguntas?}
  \put(150,-15){\color{blue}¿Sugerencias?}

  \fontsize{18}{0}\selectfont
  \put(105,-60){Facundo Batista}
  \fontsize{9}{0}\selectfont
  \put(112,-75){\color{blue}facundo@taniquetil.com.ar}
  \put(106,-88){\color{blue}http://www.taniquetil.com.ar}

  \put(65,-132){\includegraphics[scale=.6]{images/cc-byncsa.png}}
  \fontsize{5}{0}\selectfont
  \put(125,-117){\textbf{Licencia}: Creative Commons }
  \put(125,-124){Atribución-NoComercial-CompartirDerivadasIgual 2.5 Argentina}
  \put(125,-131){http://creativecommons.org/licenses/by-nc-sa/2.5/deed.es\_AR}
\end{picture}
}

\end{document}
