%===============================================================================
% Zweck:    KTR-Präsentation-Vorlage
% Erstellt: 15.04.2013
% Update:   04.07.2016
% Autor:    M.G.
%===============================================================================

%\newcommand*{\footcite}[1]{\footnote{\autocite{#1}}}

\newcommand\ratio{169}
\documentclass[10pt,aspectratio=\ratio,
%draft,
%handout,
compress
]{beamer}

\newcommand\meta{../meta}
\input{\meta/config/commands}
\newcommand{\backupbegin}{
   \newcounter{finalframe}
   \setcounter{finalframe}{\value{framenumber}}
}
\newcommand{\backupend}{
   \setcounter{framenumber}{\value{finalframe}}
}

\def\signed #1{{\leavevmode\unskip\nobreak\hfil\penalty50\hskip2em
  \hbox{}\nobreak\hfil(#1)%
  \parfillskip=0pt \finalhyphendemerits=0 \endgraf}}

\newsavebox\mybox
\newenvironment{aquote}[1]
  {\savebox\mybox{#1}\begin{fancyquotes}}
  {\signed{\usebox\mybox}\end{fancyquotes}}


\input{\meta/config/hyphenation}

\setbeamertemplate{caption}[numbered]
%\numberwithin{figure}{section}


 %\bibliographystyle{plain}
 \bibliography{../ThesTeX/content/literature.bib}

\begin{document}
  %===============================================================================
  % Zum Kompilieren latexmk ausführen.
  %	Konfiguration in texmaker: Options -> Configure Texmaker -> Quick Build -> Select Latexmk + ViewPD
  %	Entsprechende Informationen in den config/metainfo verändern
  % Zur Auswahl der Sprache im folgenden Befehl
  % ngerman für deutsch eintragen, english für Englisch.
  %===============================================================================
\selectlanguage{english}
\ifnum\ratio<169
\frame{\titlepage}
\else
\frame[plain]{\titlepage}
\fi

%\AtBeginSection[]
%{
%  \frame<handout:0>
%  {
%    \frametitle{Outline}
%    \tableofcontents[currentsection,hideallsubsections]
%  }
%}

%\AtBeginSubsection[]
%{
%  \frame<handout:0>
%  {
%    \frametitle{Outline}
%    \tableofcontents[sectionstyle=show/hide,subsectionstyle=show/shaded/hide,subsubsectionstyle=hide]
%  }
%}

\AtBeginSubsubsection[]
{
  \frame<handout:0>
  {
    \frametitle{Outline}
    \tableofcontents[sectionstyle=show/hide,subsectionstyle=show/shaded/hide,subsubsectionstyle=show/shaded/hide]
  }
}

\newcommand<>{\highlighton}[1]{%
  \alt#2{\structure{#1}}{{#1}}
}

\newcommand{\icon}[1]{\pgfimage[height=1em]{#1}}

\section*{}
\phantomsection
\begin{frame}{Content}
\tableofcontents[hideallsubsections]
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%% Content starts here %%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\section{A Framework for the Analysis of Spatial Game Data}
\begin{frame}{A Framework for the Analysis of Spatial Game Data}
\framesubtitle{Goal definition}
	\begin{columns}
	\column{0.49\linewidth}
		Geogames: Intersection of GIS and gaming technology\footnotemark
		\begin{itemize}
			\item Game actions tied to real-world spatial places ('Break the magic circle')
			\item Locomotion as essential game part
			\item Trade-offs between board and race style games\footnotemark
			\item Foster recognition of environment
			\item Focus through game related tasks
		\end{itemize}
	\column{.49\linewidth}
		Scope of the analysis framework
		\begin{itemize}
			\item Framework for analysis
			\item Two target groups:
				\begin{itemize}
				\item Expert users/researchers
				\item Staging/designing staff
				\end{itemize}
			\item Integration of external data (questionnaire results)
			\item Adaptable for multiple games
		\end{itemize}
	\end{columns}
	\addtocounter{footnote}{-1}
	\footcitetext{Ahlqvist2018}\stepcounter{footnote}
	\footcitetext{1705427}
\end{frame}

\begin{frame}{Framework components}
Prerequisites: Game log
\begin{itemize}
	\item Creation
	\item Storage
\end{itemize}
New components
\begin{itemize}
	\item Per-game importer (Web client, File loader, …)
	\item Analyzer modules (number crunching)
	\item Output \& Visualization (CSV, [Geo]JSON, KML, Graphs, …)
	\item Interface (Configuration)
	\item Cross-game comparisons
\end{itemize}
\end{frame}

\section{Modular map-reduce architecture}

\begin{frame}{Architecture}

Log processing turn-key solutions
\begin{itemize}
	\item Fast update cycles
	\item Low spatial resolution
	\item Query languages as entry barrier
\end{itemize}

Custom stack solution
\begin{itemize}
	\item Based on map-reduce
	\item Map: Analysis
	\begin{itemize}
		\item Iterate Log entries
		\item Feed log entry through analyzer queue
		\begin{itemize}
			\item Augment entries
			\item Filter entries
			\item Sequential order
		\end{itemize}
	\end{itemize}
	\item Reduce: Collect summaries from analyzers
	\begin{itemize}
		\item Rendering
		\item Post-processing, Comparison, …
	\end{itemize}
\end{itemize}
\end{frame}
\begin{frame}{Log processing scheme}
\image{\textwidth}{../../ThesTeX/images/map-reduce.pdf}{Data flows}{img:flow}
\end{frame}

%%%%%%%%%%%%%%%%%55
% PRESENTATION 2
%%%%%%%%%%%%%%%%%%%%


\section{Microservice oriented implementation}

\subsection{Service Composition}
\begin{frame}{Microservice Composition}
\framesubtitle{Dockerize everything!}
	\begin{columns}
	\column{0.45\linewidth}
		\begin{itemize}
			\item Analysis framework: Celery
			\item User interface: Flask
			\item Result server: Nginx
			\item Connection Flask - Celery: Redis
			\item Public frontend: Traefik (external)
			\item Orchestration: Docker-Compose
		\end{itemize}
	\column{0.525\linewidth}
		\image{\textwidth}{../../ThesTeX/images/architecture}{Service structure}{img:microservices}
	\end{columns}
\end{frame}

\subsection{Results}

\begin{frame}{ActivityMapper}
\image{.7\textwidth}{track-fi}{Combined screen activity and spatial progress}{img:trackfi}
\end{frame}
\begin{frame}{Track length evaluation}
	\begin{columns}
	\column{0.49\linewidth}
		\image{\textwidth}{oeb-raw}{Raw track lengths}{img:oeb-raw}
	\column{0.49\linewidth}
		\image{\textwidth}{oeb-simplified}{Simplified track lengths}{img:oeb-simpe}
	\end{columns}
\end{frame}

\section{Evaluation}
\subsection{Setup}

\begin{frame}{Evaluation}
%\begin{itemize}
%	\item Analyse other geogames
%	\item Describe effort
%	\item ?
%	\item Profit
%\end{itemize}
\image{\textwidth}{eval}{Evaluation setup}{img:evalplan}
\end{frame}

\begin{frame}{Evaluation}
Clients
\begin{longtable}[H]{ccp{0.6\textwidth}}
Geogame & Log files & Notes \\
\hline
BioDiv2Go & $\approx430$ & SQLite database with JSON log entries, references to game config; import base case\\
GeoTicTacToe & $\approx13$ & CSV with pipes; no temporal data; events + tracks\\
\caption{Geogame client log data}
\label{tab:logscli}
\end{longtable}

Servers
\begin{longtable}[H]{ccp{0.6\textwidth}}
Geogame & Log files & Notes \\
\hline
GeoTicTacToe & $\approx2$ & intermediate log format\\
GeoTTT & $\approx130$ & fragmented structure: incomplete or splitted?\\
Neocartographer & $\approx400$ & Partly broken GPX: missing description information; one GPX file per player\\
MissingLink & $\approx6$ & Partly broken GPX: missing spatial information; one GPX file per player\\
Equilibrium & $\approx40$ & GPX with missing end tag\\
\caption{Geogame servers log data}
\label{tab:logssrv}
\end{longtable}
\end{frame}

\subsection{Results}
\begin{frame}{Integration of Neocartographer}
Challenges
\begin{itemize}
	\item Corrupted XML files
	\item No game server with API for log retrieval
\end{itemize}

	\begin{longtable}[H]{rl}
	Geogame & Log files \\
	\hline
	missing attribute space & <desc><event message="leaveObject"geoid="9"/></desc>\\
	unclosed tag & <desc><event </desc>\\
	missing attribute name & <trkpt lat="48.3689110.897709">\\
	invalid attribute values & <trkpt lat="UNKNOWN" lon="UNKNOWN">\\
	\caption{Neocartographer GPX log error types}
	\label{tab:xml}
	\end{longtable}
Solutions
\begin{itemize}
	\item Recovery parser \& custom cleanup (new dependency: lxml)
	\item Additional log server (Nginx with JSON autoindex)
\end{itemize}
\end{frame}


\begin{frame}{Evaluation results}
\image{\textwidth}{eval-changes}{Code changes necessary for the integration of another game}{img:eval}
\end{frame}

\section{Demotime}
\begin{frame}{It's time for...}
\huge{...a demo!}
\vspace{2cm}
\pic{.9\textwidth}{demo}
\end{frame}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%% References          %%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section*{}
\begin{frame}[allowframebreaks]{References}
 \def\newblock{\hskip .11em plus .33em minus .07em}
 \scriptsize
 \setbeamertemplate{bibliography item}[text]
 \printbibliography
 \normalsize
\end{frame}

\appendix
\backupbegin



\end{document}
