t: incorporate p0, add dockerizations
parent
5bfd924ceb
commit
37289a5c9a
|
|
@ -25,3 +25,4 @@
|
||||||
.prepared
|
.prepared
|
||||||
# nano swap files
|
# nano swap files
|
||||||
*.swp
|
*.swp
|
||||||
|
*.lol
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,30 @@
|
||||||
|
FROM alpine:edge
|
||||||
|
|
||||||
|
RUN set -ex &&\
|
||||||
|
echo "http://dl-cdn.alpinelinux.org/alpine/edge/testing/" >> /etc/apk/repositories && \
|
||||||
|
apk upgrade --update &&\
|
||||||
|
apk add --update nodejs proj4-dev \
|
||||||
|
geos-dev \
|
||||||
|
py-geos \
|
||||||
|
gdal \
|
||||||
|
gdal-dev \
|
||||||
|
py-gdal \
|
||||||
|
py-psycopg2 \
|
||||||
|
jpeg-dev \
|
||||||
|
postgresql-dev \
|
||||||
|
bash \
|
||||||
|
py-virtualenv \
|
||||||
|
gcc \
|
||||||
|
zlib-dev \
|
||||||
|
python2-dev \
|
||||||
|
libc-dev \
|
||||||
|
sqlite-dev \
|
||||||
|
postgresql-client
|
||||||
|
|
||||||
|
ADD ["start.sh", "/"]
|
||||||
|
|
||||||
|
VOLUME ["/biogames", "/venv"]
|
||||||
|
EXPOSE 8000
|
||||||
|
|
||||||
|
ENTRYPOINT ["/start.sh"]
|
||||||
|
CMD ["runserver", "0.0.0.0:8000"]
|
||||||
|
|
@ -0,0 +1,48 @@
|
||||||
|
version: "3"
|
||||||
|
|
||||||
|
services:
|
||||||
|
web:
|
||||||
|
build: ./docker2
|
||||||
|
image: biogames:python2
|
||||||
|
volumes:
|
||||||
|
- ./biogames:/biogames
|
||||||
|
- ../gamefield/:/gamefield
|
||||||
|
- ./venv_web/:/venv/
|
||||||
|
- ./gg-data/files/:/biogames/files/
|
||||||
|
- ./gg-data/media/:/biogames/media/
|
||||||
|
restart: on-failure:5
|
||||||
|
depends_on:
|
||||||
|
- db
|
||||||
|
networks:
|
||||||
|
- traefik_net
|
||||||
|
- default
|
||||||
|
labels:
|
||||||
|
- "traefik.enable=true"
|
||||||
|
- "traefik.port=8000"
|
||||||
|
- "traefik.docker.network=traefik_net"
|
||||||
|
- "traefik.http.frontend.rule=Host:biogames.potato.kinf.wiai.uni-bamberg.de"
|
||||||
|
|
||||||
|
celery:
|
||||||
|
image: biogames:python2
|
||||||
|
volumes:
|
||||||
|
- ./biogames:/biogames
|
||||||
|
- ./venv_celery/:/venv/
|
||||||
|
- ./gg-data/files/:/biogames/files/
|
||||||
|
- ./gg-data/media/:/biogames/media/
|
||||||
|
restart: on-failure:5
|
||||||
|
command: ["celery", "worker"]
|
||||||
|
depends_on:
|
||||||
|
- db
|
||||||
|
|
||||||
|
db:
|
||||||
|
image: docker.clkl.de/postgis:9.6-alpine
|
||||||
|
volumes:
|
||||||
|
- ./postgres/:/var/lib/postgresql/data
|
||||||
|
environment:
|
||||||
|
- POSTGRES_PASSWORD=secret
|
||||||
|
restart: on-failure:5
|
||||||
|
|
||||||
|
networks:
|
||||||
|
traefik_net:
|
||||||
|
external:
|
||||||
|
name: traefik_net
|
||||||
|
|
@ -0,0 +1,15 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
if [ ! -f /venv/bin/activate ]; then
|
||||||
|
virtualenv /venv;
|
||||||
|
fi;
|
||||||
|
source /venv/bin/activate;
|
||||||
|
LIBRARY_PATH=/lib:/usr/lib pip install -qr /biogames/requirements.txt;
|
||||||
|
|
||||||
|
until pg_isready -qh db; do
|
||||||
|
echo "Waiting for Postgres@db…";
|
||||||
|
sleep 1;
|
||||||
|
done
|
||||||
|
|
||||||
|
cd /biogames;
|
||||||
|
/biogames/manage.py $@
|
||||||
|
|
@ -0,0 +1,22 @@
|
||||||
|
version: '2'
|
||||||
|
services:
|
||||||
|
kibana:
|
||||||
|
image: docker.elastic.co/kibana/kibana:6.2.1
|
||||||
|
volumes:
|
||||||
|
- ./kibana.yml:/usr/share/kibana/config/kibana.yml
|
||||||
|
environment:
|
||||||
|
- SERVER_HOST=0.0.0.0
|
||||||
|
- ELASTICSEARCH_URL=http://elastic:9200
|
||||||
|
networks:
|
||||||
|
- default
|
||||||
|
- traefik_net
|
||||||
|
labels:
|
||||||
|
- "traefik.enable=true"
|
||||||
|
- "traefik.docker.network=traefik_net"
|
||||||
|
elastic:
|
||||||
|
image: docker.elastic.co/elasticsearch/elasticsearch-basic:6.2.1
|
||||||
|
|
||||||
|
networks:
|
||||||
|
traefik_net:
|
||||||
|
external:
|
||||||
|
name: traefik_net
|
||||||
|
|
@ -0,0 +1,16 @@
|
||||||
|
version: "3"
|
||||||
|
|
||||||
|
services:
|
||||||
|
traefik:
|
||||||
|
image: traefik:1.5
|
||||||
|
command: --logLevel="ERROR" --docker.domain="potato.kinf.wiai.uni-bamberg.de"
|
||||||
|
volumes:
|
||||||
|
- /var/run/docker.sock:/var/run/docker.sock
|
||||||
|
ports:
|
||||||
|
- 80:80
|
||||||
|
networks:
|
||||||
|
- net
|
||||||
|
|
||||||
|
networks:
|
||||||
|
net:
|
||||||
|
driver: bridge
|
||||||
|
|
@ -1,12 +1,29 @@
|
||||||
\section{Auswertung ortsbezogener Spiele}
|
|
||||||
|
\section{Location based Games}
|
||||||
|
\subsection{Put the 'fun' in education}
|
||||||
|
Intersection of GIS and gaming technology\cite{Ahlqvist2018}
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item geogames
|
\item Game actions tied to real-world spatial places ('Break the magic circle')%TODO citation
|
||||||
\item datenspuren, logs
|
\item Locomotion as essential game part
|
||||||
\item erkenntnisgewinn aus spatial logs
|
\item Trade-offs between board and race style games\cite{1705427}
|
||||||
\item geogame analyse (z.b. paper mit auswertung von gg)
|
\item Foster recognition of environment
|
||||||
\item feedback loop: desingers/stagers
|
\item Focus through game related tasks
|
||||||
|
\end{itemize}
|
||||||
|
\image{.5\textwidth}{../../PresTeX/images/gg2}{Geogame map view}{img:gg2}
|
||||||
|
|
||||||
|
\subsection{Research with location based games}
|
||||||
|
|
||||||
|
\begin{itemize}
|
||||||
|
\item Define mission statement
|
||||||
|
\item Build statistical framework
|
||||||
|
\item Questionnaires
|
||||||
|
\begin{itemize}
|
||||||
|
\item Pre
|
||||||
|
\item Post
|
||||||
|
\end{itemize}
|
||||||
|
\item {[Data entry]}
|
||||||
|
\item Statistical processing
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
|
||||||
Beispiel für Auswertung mit Fragebögen vorher/nachher: \cite{Schaal2017}
|
\image{\textwidth}{../../PresTeX/images/biodiv-schaal}{Statistical framework for BioDiv2Go\cite{Schaal2017}}{img:biodiv-schaal}
|
||||||
|
|
||||||
TODO \cite{Ahlqvist2018} %TODO
|
|
||||||
|
|
|
||||||
|
|
@ -1,37 +1,29 @@
|
||||||
|
|
||||||
\section{Analyseframework}
|
\subsection{Goal definition}
|
||||||
|
A Framework for the Analysis of Spatial Game Data
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item built-in analysis=> fixed implementation, no cross-game evaluations (independant results/methods etc)
|
\item Framework for analysis
|
||||||
\item framework
|
\item Two target groups:
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item create + store game log
|
\item Expert users/researchers
|
||||||
\item per-game importer
|
\item Staging/designing staff
|
||||||
\item analyzer modules crunch numbers
|
\end{itemize}
|
||||||
\item output/visualization
|
\item Integration of external data (questionnaire results)
|
||||||
\item interface
|
\item Adaptable for multiple games
|
||||||
\item cross-game comparisons
|
|
||||||
\end{itemize}
|
|
||||||
\end{itemize}
|
|
||||||
|
|
||||||
\section{scope}
|
|
||||||
todo
|
|
||||||
\begin{itemize}
|
|
||||||
\item framework for analysis
|
|
||||||
\item expert users/researcher vs. staging/designing
|
|
||||||
\item integration von externen daten (fragebögen => CSV o.ä.)
|
|
||||||
\item adaptable for multiple games
|
|
||||||
\end{itemize}
|
|
||||||
|
|
||||||
not todo
|
|
||||||
\begin{itemize}
|
|
||||||
\item interpretation
|
|
||||||
\item fragebögen
|
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
|
||||||
|
|
||||||
steps
|
\subsection{Components}
|
||||||
\begin{enumerate}
|
Prerequisites: Game log
|
||||||
\item import data
|
\begin{itemize}
|
||||||
\item analyze data
|
\item Creation
|
||||||
\item store/render/… results
|
\item Storage
|
||||||
\end{enumerate}
|
\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}
|
||||||
|
|
|
||||||
|
|
@ -288,4 +288,70 @@ focus was to look for correlations between variables in the game.}
|
||||||
\item …
|
\item …
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
|
||||||
|
\end{itemize}
|
||||||
|
|
||||||
|
\section{1. vortrag}
|
||||||
|
|
||||||
|
\section{State of research}
|
||||||
|
|
||||||
|
\subsection{Log processing}
|
||||||
|
Modern log processing stacks
|
||||||
|
Technologies: Collection, Time-series databases, Frontend
|
||||||
|
\begin{itemize}
|
||||||
|
\item ELK (Elastic search, Logstash, Kibana)\cite{andreassen2015monitoring} \cite{yang2016aggregated} \cite{steinegger2016analyse} \cite{sanjappa2017analysis}
|
||||||
|
\item Collectd, Influx DB, Grafana \cite{komarek2017metric}
|
||||||
|
\item …
|
||||||
|
\end{itemize}
|
||||||
|
\begin{itemize}
|
||||||
|
\item[+] widely deployed
|
||||||
|
\item[+] powerful query languages %TODO example
|
||||||
|
\item mainly web/container/hardware monitoring
|
||||||
|
\item[-] spatial analysis: heavily anonymized
|
||||||
|
\item[-] fast-paced environment
|
||||||
|
\end{itemize}
|
||||||
|
|
||||||
|
\subsection{Pedestrian traces}
|
||||||
|
Analyzing pedestrian movement … based on GPS logs
|
||||||
|
\begin{itemize}
|
||||||
|
\item GPS overestimates systematically \cite{Ranacher_2015}
|
||||||
|
\item GPS is a suitable instrument for spatio-temporal data\cite{van_der_Spek_2009}
|
||||||
|
\item Activity mining \cite{Gong_2014}
|
||||||
|
\begin{itemize}
|
||||||
|
\item Speed-based Clustering \cite{ren2015mining}
|
||||||
|
%\item \cite{Ferrante_2016} % closed access
|
||||||
|
\item Machine Learning \cite{pattern_recog} %TODO
|
||||||
|
\end{itemize}
|
||||||
|
\item E.g.: Improve tourist management \cite{tourist_analysis2012}
|
||||||
|
\end{itemize}
|
||||||
|
|
||||||
|
|
||||||
|
\image{.81\textwidth}{../../PresTeX/images/strava}{Heatmap: Fitnesstracker\cite{strava}}{img:strava}
|
||||||
|
|
||||||
|
\image{.72\textwidth}{../../PresTeX/images/space-time}{Space-time cube examples\cite{bach2014review}}{img:spacetime}
|
||||||
|
|
||||||
|
\image{\textwidth}{../../PresTeX/images/traj-pattern}{Flock and meet trajectory pattern\cite{jeung2011trajectory}}{img:traj-pattern}
|
||||||
|
|
||||||
|
\image{\textwidth}{../../PresTeX/images/generalization}{Trajectories and generalizations with varying radius parameter \cite{adrienko2011spatial}}{img:generalization}
|
||||||
|
|
||||||
|
|
||||||
|
\subsection{Analyzing games}
|
||||||
|
\begin{itemize}
|
||||||
|
\item there's more than heatmaps
|
||||||
|
\item combine position with game actions
|
||||||
|
\item identify patterns, balancing issues
|
||||||
|
\item manual processes %\citetitle{Drachen2013}\citetitle{AHLQVIST20181}
|
||||||
|
\end{itemize}
|
||||||
|
%\image{.5\textwidth}{game-an}{chat logs with players location \cite{Drachen2013}}{img:chatlogs}
|
||||||
|
%\image{.5\textwidth}{ac3-death}{identify critical sections \cite{Drachen2013}}{img:ac3death}
|
||||||
|
\twofigures{0.5}{../../PresTeX/images/game-an}{Chat logs with players location}{img:chatlogs}{../../PresTeX/images/ac3-death}{Identify critical sections}{img:ac3death}{Game analytics \cite{Drachen2013}}{fig:gameanal}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
\subsection{Summary}
|
||||||
|
\begin{itemize}
|
||||||
|
\item Log processing: Powerful stacks
|
||||||
|
\item Movement analysis: Large field already explored (GPS influence, Patterns, Behavior recognition, …)
|
||||||
|
\item Track rendering: Track (with attributes), Space-time cube, Heatmap, …
|
||||||
|
\item Spatial analysis of digital games with GIS
|
||||||
|
\item Analysis of location based games: Laborious manual process
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
|
@ -1,57 +1,58 @@
|
||||||
\section{modulare auswahl von metriken}
|
|
||||||
|
\subsection{Requirements}
|
||||||
|
Wait, what did I want to do again?
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item base set of analytic functions
|
\item Per-game importer (Web client, File loader, …)
|
||||||
\item extendable for special cases
|
\item Analyzer modules (number crunching)
|
||||||
\item …
|
\item Output \& Visualization (CSV, [Geo]JSON, KML, Graphs, …)
|
||||||
|
\item Interface (Configuration)
|
||||||
|
\begin{itemize}
|
||||||
|
\item Expert users/researchers
|
||||||
|
\item Staging/designing staff
|
||||||
|
\end{itemize}
|
||||||
|
\item Cross-game comparisons
|
||||||
|
\item Integration of external data (questionnaire results)
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
|
||||||
|
|
||||||
\section{spiel unabhängig}
|
\subsection{Experiment: Kibana}
|
||||||
\begin{itemize}
|
… taugt nich
|
||||||
\item log importer/transformer necessary
|
|
||||||
\end{itemize}
|
|
||||||
|
|
||||||
|
|
||||||
\section{log processing taugt nich}
|
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item powerful timeseries database
|
\item powerful timeseries database
|
||||||
\item complex setup
|
\item complex setup
|
||||||
\item fast paced environment
|
\item fast paced environment
|
||||||
\item low spatial resolution => privacy optimized
|
\item low spatial resolution => privacy optimized
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
\image{.85\textwidth}{../../PresTeX/images/kibana}{Game trace in Kibana}{img:kibana}
|
||||||
|
\image{.85\textwidth}{../../PresTeX/images/kibana2}{Game trace in Kibana}{img:kibana2}
|
||||||
|
|
||||||
|
|
||||||
\section{architekturmodell}
|
\subsection{Architecture}
|
||||||
|
Game independance:
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item map-reduce ähnlich
|
\item log importer/transformer necessary
|
||||||
\begin{enumerate}
|
\end{itemize}
|
||||||
\item input transformation
|
\begin{itemize}
|
||||||
\item analysis/extension (looping)
|
\item Based on map-reduce
|
||||||
\item render (image,csv,json,…)
|
\item Map: Analysis
|
||||||
\end{enumerate}
|
\begin{itemize}
|
||||||
\image{.75\textwidth}{flowchart}{arch dlowcahrt}{img:flowchart}
|
\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}
|
||||||
|
|
||||||
\item standalone (indep. of any game)
|
\item standalone (indep. of any game)
|
||||||
\item own client for game server (due to CORS/XSS prevention prohibiting shared use of game server assets in other host)
|
\item own client for game server (due to CORS/XSS prevention prohibiting shared use of game server assets in other host)
|
||||||
\item API for integration
|
\item API for integration
|
||||||
\item allow load distribution
|
\item allow load distribution
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
\image{\textwidth}{map-reduce.pdf}{Data flows}{img:flow}
|
||||||
====
|
|
||||||
\begin{itemize}
|
|
||||||
\item map-reduce like
|
|
||||||
\item map: analyse-läufe
|
|
||||||
\begin{itemize}
|
|
||||||
\item log-eintrags basiert
|
|
||||||
\item reichern log an
|
|
||||||
\item filtern log
|
|
||||||
\item metriken über komplette log => extern gespeichert
|
|
||||||
\item => evtl. Abhängigkeiten in Reihenfolge
|
|
||||||
\item basis-funktionalität || spiel-bezogen
|
|
||||||
\end{itemize}
|
|
||||||
\item reduce: Operieren mit Ergebnissen (über alle verarbeiteten logs hinweg)
|
|
||||||
\begin{itemize}
|
|
||||||
\item render
|
|
||||||
\item verteilung, …
|
|
||||||
\end{itemize}
|
|
||||||
\end{itemize}
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,45 @@
|
||||||
|
\section{klassenstruktur}
|
||||||
|
\section{konfigurierbarkeit (log import)}
|
||||||
|
\section{...}
|
||||||
|
|
||||||
|
\section{1. vortrag}
|
||||||
|
|
||||||
|
\section{Outlook: Implementation}
|
||||||
|
|
||||||
|
\subsection{Implementation}
|
||||||
|
Analysis
|
||||||
|
\begin{itemize}
|
||||||
|
\item Python (3.6)
|
||||||
|
\item Standalone library/CLI tool
|
||||||
|
\item Web based configuration/Runner/API (Flask)
|
||||||
|
\end{itemize}
|
||||||
|
Rendering
|
||||||
|
\begin{itemize}
|
||||||
|
\item Matplotlib, Numpy
|
||||||
|
\begin{itemize}
|
||||||
|
\item Graphs
|
||||||
|
\end{itemize}
|
||||||
|
\item Javascript
|
||||||
|
\begin{itemize}
|
||||||
|
\item Leaflet
|
||||||
|
\item Web visualization: Maps, Tracks, …
|
||||||
|
\end{itemize}
|
||||||
|
\end{itemize}
|
||||||
|
\pic{.5\textwidth}{../../PresTeX/images/matplotlib}
|
||||||
|
\pic{.5\textwidth}{../../PresTeX/images/python}
|
||||||
|
\pic{.4\textwidth}{../../PresTeX/images/flask}
|
||||||
|
\pic{.4\textwidth}{../../PresTeX/images/leaflet}
|
||||||
|
|
||||||
|
|
||||||
|
\subsection{Examples}
|
||||||
|
Configuration \& results
|
||||||
|
\twofigures{0.5}{../../PresTeX/images/oeb-kml}{Analyzer configuration}{img:oebkml}{../../PresTeX/images/oeb-ge}{Result visualized}{img:oebge}{Example: Generate KML tracks (BioDiv2Go; Oberelsbach2016)}{fig:oeb2016}
|
||||||
|
|
||||||
|
{ActivityMapper}
|
||||||
|
\image{.7\textwidth}{../../PresTeX/images/track-fi}{Combined screen activity and spatial progress}{img:trackfi}
|
||||||
|
|
||||||
|
|
||||||
|
{Graphs}
|
||||||
|
\image{\textwidth}{../../PresTeX/images/simu-retries}{Experimentational rounds}{img:retries}
|
||||||
|
\image{\textwidth}{../../PresTeX/images/speed}{Speed distribution}{img:speed}
|
||||||
|
\image{.9\textwidth}{../../PresTeX/images/time-rel}{Time distribution}{img:time}
|
||||||
|
|
@ -0,0 +1,8 @@
|
||||||
|
\section{Setup für Kibana}
|
||||||
|
\lstinputlisting[language=yaml,caption={Docker-compose file for Kibana test setup},label=code:kibana]{code/kibana-docker-compose.yml}
|
||||||
|
\section{Biogames Server Dockerized}
|
||||||
|
\image{\textwidth}{biogames.pdf}{Dockerized setup for biogames}{img:bd2gdocker}
|
||||||
|
\lstinputlisting[language=yaml,caption={Docker-compose file for Biogames server},label=code:bd2s]{code/biogames/docker-compose.yml}
|
||||||
|
\lstinputlisting[language=yaml,caption={Dockerfile for Biogames server},label=code:bd2d]{code/biogames/Dockerfile}
|
||||||
|
\lstinputlisting[language=bash,caption={Entrypoint for Biogames docker container},label=code:bd2e]{code/biogames/start.sh}
|
||||||
|
\lstinputlisting[language=yaml,caption={Dockerfile for Traefik reverse proxy},label=code:bd2t]{code/traefik.yml}
|
||||||
|
|
@ -11,18 +11,23 @@
|
||||||
\input{content/3-solution}
|
\input{content/3-solution}
|
||||||
|
|
||||||
\chapter{umsetzung}
|
\chapter{umsetzung}
|
||||||
%\input{content/4-implementation}
|
\input{content/4-implementation}
|
||||||
\section{klassenstruktur}
|
|
||||||
\section{konfigurierbarkeit (log import)}
|
|
||||||
\section{...}
|
|
||||||
|
|
||||||
\chapter{evaluierung}
|
\chapter{evaluierung}
|
||||||
%\input{content/5-evaluation}
|
%\input{content/5-evaluation}
|
||||||
\section{wie viele metriken umsetzbar?}
|
\section{Portierbarkeit (anderes game)}
|
||||||
\section{erweiterbarkeit}
|
|
||||||
|
|
||||||
|
\begin{verbatim}
|
||||||
|
…
|
||||||
|
\end{verbatim}
|
||||||
|
|
||||||
\chapter{diskussion}
|
\chapter{diskussion}
|
||||||
%\input{content/6-discussion}
|
%\input{content/6-discussion}
|
||||||
|
\begin{verbatim}
|
||||||
|
…
|
||||||
|
\end{verbatim}
|
||||||
|
|
||||||
|
|
||||||
\section{dummies}
|
\section{dummies}
|
||||||
\cite{zheng2011computing}
|
\cite{zheng2011computing}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,11 @@
|
||||||
|
graph{
|
||||||
|
//rankdir="LR";
|
||||||
|
s [label="Web-App\nBiogames"];
|
||||||
|
c [label="Worker\nCelery"];
|
||||||
|
db [label="DB\nPostgres"];
|
||||||
|
t [label="HTTP frontend\nTraefik"];
|
||||||
|
|
||||||
|
s -- db [];
|
||||||
|
c -- db [label="Internal network"];
|
||||||
|
t -- s [label=" External network,\nlabel"];
|
||||||
|
}
|
||||||
|
|
@ -61,7 +61,8 @@
|
||||||
\newpage
|
\newpage
|
||||||
\listoftables
|
\listoftables
|
||||||
\newpage
|
\newpage
|
||||||
\listofalgorithms
|
%\listofalgorithms
|
||||||
|
\lstlistoflistings
|
||||||
\newpage
|
\newpage
|
||||||
%% Falls nur Abkuerzungs- oder Symbolverzeichnis benoetigt wird, folgende Befehle benutzen %%
|
%% Falls nur Abkuerzungs- oder Symbolverzeichnis benoetigt wird, folgende Befehle benutzen %%
|
||||||
%\printnomenclature
|
%\printnomenclature
|
||||||
|
|
@ -108,6 +109,7 @@
|
||||||
\appendix
|
\appendix
|
||||||
\setstretch{1.5}
|
\setstretch{1.5}
|
||||||
\chapter{Anhang}
|
\chapter{Anhang}
|
||||||
|
\input{content/appendix}
|
||||||
\setstretch{1.1}
|
\setstretch{1.1}
|
||||||
|
|
||||||
\cleardoubleemptypage
|
\cleardoubleemptypage
|
||||||
|
|
|
||||||
|
|
@ -277,7 +277,7 @@ Ich erkläre hiermit gemäß § 17 Abs. 2 APO, dass ich die vorstehende \degree
|
||||||
%===============================================================================
|
%===============================================================================
|
||||||
% Listing Styles
|
% Listing Styles
|
||||||
%===============================================================================
|
%===============================================================================
|
||||||
\lstset{basicstyle=\ttfamily,showstringspaces=false,commentstyle=\color{unibagrayI},keywordstyle=\color{unibablueI},breaklines=true}
|
\lstset{basicstyle=\ttfamily,showstringspaces=false,commentstyle=\color{unibagrayI},keywordstyle=\color{unibablueI},breaklines=true,captionpos=b}
|
||||||
\DeclareFixedFont{\ttb}{T1}{txtt}{bx}{n}{9} % for bold
|
\DeclareFixedFont{\ttb}{T1}{txtt}{bx}{n}{9} % for bold
|
||||||
\DeclareFixedFont{\ttm}{T1}{txtt}{m}{n}{9} % for normal
|
\DeclareFixedFont{\ttm}{T1}{txtt}{m}{n}{9} % for normal
|
||||||
\lstset{
|
\lstset{
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue