\documentclass{beamer}
\usepackage[ngerman]{babel}
\usepackage[utf8x]{inputenc}
%\usepackage{iwona}
\usepackage{palatino}
\usepackage{beamerthemesplit}
\usepackage{url}
\usepackage{graphicx}

\usepackage{listings}
 \lstdefinelanguage{JavaScript}{
     keywords={attributes, class, classend, do, empty, endif, endwhile, fail, function, functionend, if, implements, in, inherit, inout, not, of, operations, out, return, set, then, types, while, use},
     keywordstyle=\color{blue}\bfseries,
     ndkeywords={},
     ndkeywordstyle=\color{yellow}\bfseries,
     identifierstyle=\color{black},
     sensitive=false,
     comment=[l]{//},
     commentstyle=\color{green}\ttfamily,
     stringstyle=\color{red}\ttfamily,
     morestring=[b]",%
  }

\usetheme{Warsaw}
\usefonttheme{professionalfonts}

\title{\emph{\sc Omegle}}
\subtitle{Spiel, Spass und Spannung}
\author{Yves Fischer}
\institute{Übungsvortrag im Fach Vortragstechniken an der\\
DHBW Stuttgart Aussenstelle Horb}
\date{Montag 15. Juni 2009}

\newcommand{\simplesplit}[2][]{
\begin{columns}
  \begin{column}{5cm}
    #1
  \end{column}
  \begin{column}{5cm}
    #2
  \end{column}
\end{columns}
}

\begin{document}
\frame{\titlepage}

\section{Was ist Omegle}
\begin{frame}
  \textbf{Omegle}
  \begin{itemize}
  \item ... verbindet zwei Gesprächspartner zufällig
  \item ... ist ,,Web 2.0''. Setzt mit Ajax auf REST-Interface und
    JSON als Datenformat.
  \item ... ist \emph{nicht} primär eine Cybersex Plattform
  \item Hat angeblich je nach Zeit zwischen 2500 und 4000 Benutzer
  \end{itemize}
\end{frame}

  % \begin{frame}\frametitle{Omegle technisch betrachtet}
  %   asd
  % \end{frame}


  \section{Fun mit Omegle}
  \frame{
    \begin{center}
      {\Huge \it Spass mit Omegle}
    \end{center}
  }
\begin{frame}[fragile]\frametitle{,,Easteregg''} 
  \lstset{language=JavaScript,
    extendedchars=true,
    basicstyle=\scriptsize,
    showstringspaces=false,
  }
  \begin{lstlisting}
if(Q=="stranger" && 
      ( R.indexOf("FBI") !==-1 
        || R.toLowerCase().indexOf("federal bureau")!==-1)) {
  A("If the above message says you "+ 
    "have been reported to the FBI, "+
    "it is not legitimate. Please ignore it.");
}
  \end{lstlisting}
\small
  \begin{itemize}
  \item \url{http://omegle.com/static/omegle.js}
  \end{itemize}
\end{frame}

  
  \begin{frame}\frametitle{Re-Implementation der Omegle
       Plattform}
     \begin{columns}
       \begin{column}{5cm}
     \begin{itemize}\small
       \item Zum testen der eigenen ,,Omegle-Applikationen''
       \item ebenfalls mit python und twisted-Framework
       \item Zurzeit teils funktionsfähig. Weitere funktionen wie Malen oder Bildertausch geplant
       \end{itemize}
     \end{column}
     \begin{column}{7cm}
       \includegraphics[width=\textwidth]{img/chatserver.png}
     \end{column}
     \end{columns}
   \end{frame}

  \begin{frame}\frametitle{eigene Omegle Clients}
  \begin{columns}
    \begin{column}{5cm}
      \begin{itemize}
      \item einfacher Konsolenchat
      \item ncurses chat mit python-urwid
      \end{itemize}
    \end{column}
    \begin{column}{5cm}
      \includegraphics[width=5cm]{img/chat.png}
    \end{column}
  \end{columns}
  \end{frame}

   \begin{frame}\frametitle{Mitschneiden von Inhalten}
     \includegraphics[width=10cm]{img/proxy.pdf}
   \end{frame}

\begin{frame}[fragile]\frametitle{Training eines Bots} 
  \lstset{language=SQL} \tiny
  \begin{lstlisting}
SELECT message
  FROM omegle_messages 
 WHERE ( message ILIKE '%sex%'
      OR message ILIKE '%boob%'
      OR message ILIKE '%horny %'
      OR message ILIKE '%pussy %'
      OR message ILIKE '%ass %'
      OR message ILIKE '%naked%'
      OR message ILIKE '%fuck%'
      OR LENGTH(message) < 7 AND CAST(RANDOM()*10 as integer)=1)
   AND
      LENGTH(message) < 35 
   AND NOT ( message ILIKE '%www.%'
          OR message ILIKE '%http%'
          OR message ILIKE '%@%.%');
  \end{lstlisting}
\small
  \begin{itemize}
  \item Alle Nachrichten in denen die {\it Wörter} vorkommen und keine
    Adressen vorkommen.
  \item keine Nachrichten groesser 34 Zeichen ({\sc ASCII}-Art)
  \end{itemize}
\end{frame}

\begin{frame}[fragile]\frametitle{Erster Chat}\tiny
  \begin{columns}
    \begin{column}{6cm}
 Megahal Connection confirmed\\
\textcolor{red}{Stranger:} Hello\\
 \textcolor{green}{Megahal:} Hello, asl, cybersex.\\
\textcolor{red}{Stranger:} 15/male\\
 \textcolor{green}{Megahal:} L am sexy male man.\\
\textcolor{red}{Stranger:} oh lets cyber\\
 \textcolor{green}{Megahal:} Lets have cyber sex.\\
\textcolor{red}{Stranger:} okay\\
 \textcolor{green}{Megahal:} Do \\
\textcolor{red}{Stranger:} you want to dock\\
 \textcolor{green}{Megahal:} I want to dock.\\
\textcolor{red}{Stranger:} or go in the ass\\
 \textcolor{green}{Megahal:} One guy fucks you in the ass.\\
\textcolor{red}{Stranger:} okay\\
 \textcolor{green}{Megahal:} Fuck that i say what i am haha.\\
\textcolor{red}{Stranger:} no i fuck you in the penis\\
\textcolor{red}{Stranger:} woo that wasd fun\\
 \textcolor{green}{Megahal:} Have fun fucking your mom.\\
\textcolor{red}{Stranger:} okay\\
 \textcolor{green}{Megahal:} What is fuck.\\
\textcolor{red}{Stranger:} im not sure\\
      \end{column}
      \begin{column}{6cm}
\textcolor{red}{Stranger:} yes\\
 \textcolor{green}{Megahal:} Yes we're fucking fggt.\\
\textcolor{red}{Stranger:} mhmm\\
 \textcolor{green}{Megahal:} I'm a horny boy.\\
\textcolor{red}{Stranger:} now put it in my pussy\\
 \textcolor{green}{Megahal:} Just normal sex in my pussy.\\
\textcolor{red}{Stranger:} i won\\
 \textcolor{green}{Megahal:} \emph{I traveled with my class there.} [sic!]\\
\textcolor{red}{Stranger:} haha beat you to it bitch\\
 \textcolor{green}{Megahal:} You want to do sex with you.\\
\textcolor{red}{Stranger:} yes\\
 \textcolor{green}{Megahal:} Yes we're fucking fggt.\\
\textcolor{red}{Stranger:} v\\
 \textcolor{green}{Megahal:} Can i have butt sex with me.\\
\textcolor{red}{Stranger:} wasup\\
 \textcolor{green}{Megahal:} U get an open pussy pic of me.\\
      \end{column}
    \end{columns}
\end{frame}
\begin{frame}\frametitle{Zweiter Chat}\small
\begin{columns}
\begin{column}{6cm}
 Megahal Connection confirmed\\
\textcolor{red}{Stranger:} let's puk\\
 \textcolor{green}{Megahal:} Let's have cyber sex.\\
\textcolor{red}{Stranger:} mmm hellz yea bby\\
 \textcolor{green}{Megahal:} Only if u are boob.\\
\textcolor{red}{Stranger:} oh i am a boob alright\\
 \textcolor{green}{Megahal:} I want to do sex with a girl.\\
\textcolor{red}{Stranger:} well shit son do sex wif me then\\
 \textcolor{green}{Megahal:} Do you have sex with me.\\
\textcolor{red}{Stranger:} -takes off shirt-\\
\end{column}
\begin{column}{6cm}
 \textcolor{green}{Megahal:} And i wanna fuck you.\\
\textcolor{red}{Stranger:} -takes ur pants off- well lets go bby\\
 \textcolor{green}{Megahal:} Well shit son do sex with a girl.\\
 \textcolor{green}{Megahal:} Hey sexy sexy.\\
 \textcolor{green}{Megahal:} Hey, horny girl.\\
\textcolor{red}{Stranger:} mm baby i'm feeling myself right now\\
 \textcolor{green}{Megahal:} I'm so horny right now.\\
\textcolor{red}{Stranger:} i wanna suck ur\\
 \textcolor{green}{Megahal:} Ur a fucken hot pussy.\\
\end{column}
\end{columns}
\end{frame}

\frame{\frametitle{Auswertung}
  \begin{itemize}
    \item Abbruch der Verbindung mit ,,Processing Failed''. Filter?
    \item Asiaten brechen bei {\it sinnlosen} Bot-Aussagen weniger ab
    \item Die allgemein schlechten Englischkentnisse auf Omegle
      begünstigen den Einsatz von Megahal
    \item Megahal ist hin und wieder in der Lage seinem Partner nicht aufzufallen
    \item Das trainieren von Megahal mit Begriffen aus Konversationen rund um Cybersex ist sinnvoll, wenn lange Konversationen gewünscht sind, da hier Fehler des Bots nicht so stark ins Gewicht fallen
    \end{itemize}

}
\frame{\frametitle{Auswertung 2}
    \begin{itemize}
    \item Megahal ist nicht in der Lage ein Gesprächsverlauf zu analysieren sondern betrachet jeweils nur die letzte Aussage seines Gesprächspartners. Daher kommt er leicht al vom Thema ab.
    \item Megahal ist nicht intelligent. Er weiss nicht, dass er nach ,,19M Holland'' nicht ,,19M Finnland'' sonder eher ,,19F'' sagen sollte.
    \item Manchmal fängt Megahal an sich nur zu wiederholen.
    \item Megahal merkt nicht, wenn jemand gemerkt hat, dass er ein Bot ist.
  \end{itemize}
}

\section{Demonstration}
\frame{\frametitle{}
  \begin{center}\Huge Demonstration \end{center}
}

\begin{frame}\frametitle{Quellen}
  \begin{itemize}
  \item omegle \url{http://omegle.com}
  \item megahal \url{http://megahal.alioth.debian.org/}
  \item python-omegle tools \url{http://xapek.org/svn/common/omegle}
  \item Omegle Klon in python \url{http://xapek.org/svn/common/chat}
  \item Perl WWW::Omegle
    \url{http://search.cpan.org/~revmischa/WWW-Omegle-0.02/lib/WWW/Omegle.pm}
  \item Folien
    \url{http://xapek.org/svn/common/omegle/slides/slides.pdf}
  \end{itemize}
\end{frame}

\end{document}
