\documentclass{beamer}

\mode<presentation>
{
  \usetheme{Darmstadt}

  \setbeamercovered{transparent}
}

\usepackage{listings}

%\usepackage[english]{babel}
\usepackage[polish]{babel}

\usepackage[MeX]{polski}
\usepackage[utf8]{inputenc}
\usepackage[OT4]{fontenc}

\lstset{ %
language=Octave,                % the language of the code
basicstyle=\small,       % the size of the fonts that are used for the code
tabsize=4,                      % sets default tabsize to 2 spaces
captionpos=b,                   % sets the caption-position to bottom
breaklines=true,                % sets automatic line breaking
breakatwhitespace=true,        % sets if automatic breaks should only happen at whitespace
}

\title[Short Paper Title] % (optional, use only with long paper titles)
{Django i Flask}

\subtitle
{Porównanie frameworków webowych w języku Python} % (optional)

\author[Michał Rudowicz] % (optional, use only with lots of authors)
{Michał Rudowicz\\171047}
% - Use the \inst{?} command only if the authors have different
%   affiliation.

\institute[PWr] % (optional, but mostly needed)
{
  Wydział Elektroniki\\
  Politechnika Wrocławska
}
% - Use the \inst command only if there are several affiliations.
% - Keep it simple, no one is interested in your street address.

\date[Short Occasion] % (optional)
{13 maja 2011}

\subject{Talks}

\begin{document}

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

\begin{frame}{Spis Treści}
  \tableofcontents
  % You might wish to add the option [pausesections]
\end{frame}


% Since this a solution template for a generic talk, very little can
% be said about how it should be structured. However, the talk length
% of between 15min and 45min and the theme suggest that you stick to
% the following rules:  

% - Exactly two or three sections (other than the summary).
% - At *most* three subsections per section.
% - Talk about 30s to 2min per frame. So there should be between about
%   15 and 30 frames, all told.

\section{Ogólne informacje o frameworkach}

\subsection{Django}

\begin{frame}{Cechy Django}
  \begin{itemize}
  \item<1->
    Doskonale nadaje się do tworzenia dużych, skomplikowanych serwisów
  \item<2->
    Duża ilość wbudowanych funkcjonalności
	\begin{itemize}
		\item ORM
		\item System szablonów
		\item Automatycznie generowany panel administracyjny
		\item Zarządzanie użytkownikami
		\item Wiele innych
	\end{itemize}
  \item<3->
    Stosunkowo dużo kodu koniecznego do napisania prostej aplikacji
  \end{itemize}
\end{frame}

\subsection{Python + BaseHTTPServer}

\begin{frame}{Cechy programów napisanych z użyciem BaseHTTPServer}
  \begin{itemize}
  \item<1->
    Całkowita kontrola nad działaniem aplikacji
  \item<2->
    Konieczność pisania dużej ilości kodu
  \item<3->
    Korzysta tylko z bibliotek dodawanych do standardowej instalacji Pythona
  \end{itemize}
\end{frame}

\begin{frame}{Przykładowa aplikacja}
\lstinputlisting[language=Python, basicstyle=\tiny]{hello_basehttp.py}
\end{frame}

\subsection{Werkzeug}

\begin{frame}{Cechy Werkzeug}
  \begin{itemize}
  \item<1->
    Wbudowany debugger wykorzystujący JavaScript
  \item<2->
    Obsługa sesji i podpisanych ciasteczek
  \item<3->
    Nadal dość skomplikowana obsługa
  \end{itemize}
\end{frame}

\begin{frame}{Przykładowa aplikacja}
\lstinputlisting[language=Python]{hello_werkzeug.py}
\end{frame}

\subsection{Flask}

\begin{frame}{Cechy Flaska}
  \begin{itemize}
  \item<1->
    Oparty na Werkzeug, więc posiada wszystkie jego zalety
  \item<2->
    Zintegrowany z systemem szablonów Jinja2
  \item<3->
    Uproszczona obsługa
  \end{itemize}
\end{frame}

\begin{frame}{Przykładowa aplikacja}
\lstinputlisting[language=Python]{hello_flask.py}
\end{frame}

\end{document}