summaryrefslogtreecommitdiffstats
path: root/ausarbeitung
diff options
context:
space:
mode:
authorPatrick Hornecker2010-02-26 13:06:10 +0100
committerPatrick Hornecker2010-02-26 13:06:10 +0100
commit53a79046110073bf7d4ead6320794940c9507e5e (patch)
treed6409210f662eccf174d370554c83962fb433c6c /ausarbeitung
parenttex source and code modifications (diff)
downloadfriendfinder-53a79046110073bf7d4ead6320794940c9507e5e.tar.gz
friendfinder-53a79046110073bf7d4ead6320794940c9507e5e.tar.xz
friendfinder-53a79046110073bf7d4ead6320794940c9507e5e.zip
tex source
Diffstat (limited to 'ausarbeitung')
-rw-r--r--ausarbeitung/Anhang.aux8
-rw-r--r--ausarbeitung/Anhang.tex646
-rw-r--r--ausarbeitung/Anhang.tex.backup634
-rw-r--r--ausarbeitung/Anhang.tex~631
-rw-r--r--ausarbeitung/Bilder/graph.pngbin7086 -> 7640 bytes
-rw-r--r--ausarbeitung/Bilder/protocol.pngbin0 -> 70586 bytes
-rw-r--r--ausarbeitung/Einleitung.aux2
-rw-r--r--ausarbeitung/Einleitung.tex18
-rw-r--r--ausarbeitung/Einleitung.tex~22
-rw-r--r--ausarbeitung/Erklaerung.aux2
-rw-r--r--ausarbeitung/Fazit.aux10
-rw-r--r--ausarbeitung/Fazit.tex2
-rw-r--r--ausarbeitung/Fazit.tex~6
-rw-r--r--ausarbeitung/Friend_Finder.aux40
-rw-r--r--ausarbeitung/Friend_Finder.tex147
-rw-r--r--ausarbeitung/Friend_Finder.tex.backup155
-rw-r--r--ausarbeitung/Friend_Finder.tex~149
-rw-r--r--ausarbeitung/Grundlagen.aux3
-rw-r--r--ausarbeitung/Grundlagen.tex51
-rw-r--r--ausarbeitung/Grundlagen.tex.backup116
-rw-r--r--ausarbeitung/Grundlagen.tex~53
-rw-r--r--ausarbeitung/Title.aux2
-rw-r--r--ausarbeitung/Tutorial.aux8
-rw-r--r--ausarbeitung/Tutorial.tex74
-rw-r--r--ausarbeitung/Tutorial.tex.backup62
-rw-r--r--ausarbeitung/Tutorial.tex~76
-rw-r--r--ausarbeitung/literature.bib51
-rw-r--r--ausarbeitung/literature.bib.backup42
-rw-r--r--ausarbeitung/literature.bib~57
-rw-r--r--ausarbeitung/maindoc.aux4
-rw-r--r--ausarbeitung/maindoc.bbl45
-rw-r--r--ausarbeitung/maindoc.blg40
-rw-r--r--ausarbeitung/maindoc.log383
-rw-r--r--ausarbeitung/maindoc.pdfbin1777057 -> 2000482 bytes
-rw-r--r--ausarbeitung/maindoc.tex10
-rw-r--r--ausarbeitung/maindoc.tex.backup18
-rw-r--r--ausarbeitung/maindoc.tex~12
-rw-r--r--ausarbeitung/maindoc.toc22
38 files changed, 1909 insertions, 1692 deletions
diff --git a/ausarbeitung/Anhang.aux b/ausarbeitung/Anhang.aux
index fb73ab2..defc7b4 100644
--- a/ausarbeitung/Anhang.aux
+++ b/ausarbeitung/Anhang.aux
@@ -1,6 +1,6 @@
\relax
\@setckpt{Anhang}{
-\setcounter{page}{34}
+\setcounter{page}{32}
\setcounter{equation}{0}
\setcounter{enumi}{0}
\setcounter{enumii}{0}
@@ -14,13 +14,13 @@
\setcounter{subsubsection}{4}
\setcounter{paragraph}{0}
\setcounter{subparagraph}{0}
-\setcounter{figure}{7}
+\setcounter{figure}{9}
\setcounter{table}{0}
\setcounter{NAT@ctr}{0}
\setcounter{parentequation}{0}
-\setcounter{lstlisting}{0}
-\setcounter{lstnumber}{1}
\setcounter{Item}{0}
+\setcounter{lstlisting}{0}
+\setcounter{lstnumber}{104}
\setcounter{subfigure}{0}
\setcounter{lofdepth}{1}
\setcounter{subtable}{0}
diff --git a/ausarbeitung/Anhang.tex b/ausarbeitung/Anhang.tex
index 878d84b..c869ad1 100644
--- a/ausarbeitung/Anhang.tex
+++ b/ausarbeitung/Anhang.tex
@@ -5,355 +5,363 @@
Um die Pakete \textit{Evil, Eina, Eet, Embryo, Evas, Ecore, Edje} und \textit{Elementary} von Ubuntu nach Windows Mobile zu
portieren, sind die folgenden Schritte nötig:
-
-Im allerersten Schritt muss eine aktuelle Version des \textit{CeGCC's} heruntergeladen und installiert werden. Die benötigten
-Dateien können auf der Projekthomepage gefunden und heruntergeladen werden. Für diese Aufgabe wird der \textit{mingw32ce} für den
-\textit{ARM}-Prozessortyp benötigt. Dieser muss auf der Homepage des CeGCC-Projekts heruntergeladen und in das passende
+Zuerst muss eine aktuelle Version des \textit{CeGCC's} heruntergeladen und installiert werden. Die benötigten
+Dateien können auf der Projekthomepage\footnote{http://cegcc.sourceforge.net/} heruntergeladen werden. Für dieses Tutorial wird
+der \textit{mingw32ce} für den \textit{ARM}-Prozessortyp benötigt. Nach dem heruntergeladen muss dieser in das passende
Systemverzeichniss entpackt werden.\newline
-
Bevor man mit dem nächsten Schritt fortfahren kann, müssen noch ein paar benötigte Packete aus dem Ubuntu-Repository installiert
werden.
-%\begin + end{listings
-\begin{verbatim}
+\begin{lstlisting}
sudo apt-get install build-essential make gcc bison flex subversion
autoconf libtool gettext libfreetype6-dev libpng12-dev zlib1g-dev
libjpeg-dev libtiff-dev libungif4-dev librsvg2-dev xorg-dev
libltdl3-dev libcurl4-dev cvs subversion git-core doxygen proj
libsqlite3-0 libsqlite3-dev
-\end{verbatim}
-
-Nachdem diese Pakete installiert wurden kann man sich nun die einzelnen Packete aus dem \textit{Subversion-Repository} der
-Entwickler herunterladen.\newline
-Nun muss man sich noch ein Verzeichniss anlegen, in welchem die für Windows Mobile kompilierten Dateien abgelegt werden. Des
-weiteren muss noch eine Datei angelegt werden, in welcher die Pfade zu dem genutzten Kompiler liegen und welche dann einmalig
-exportiert werden müssen, damit die benötigten \textit{Header-Files}, textit{Libraries} und \textit{Binaries} auch vom
-Betriebssystem gefunden werden. Diese Datei wird im folgenden ``mingw32ce.env'' benannt.
-
-\begin{verbatim}
- touch mingw32ce.env
-\end{verbatim}
-
-Nun müssen noch in diese Datei die zu exportierenden Pfade geschrieben werden.
-
-\begin{verbatim}
+\end{lstlisting}
+
+% Nachdem diese Pakete installiert wurden kann man sich nun die einzelnen Packete aus dem \textit{Subversion-Repository} der
+% Entwickler herunterladen.\newline
+Nun muss man noch ein Verzeichniss angelegt werden, in welchem die für Windows Mobile kompilierten Dateien gespeichert werden
+können. Des weiteren muss noch eine Datei angelegt werden, in welcher die Pfade zun genutzten Kompiler liegen und welche dann
+einmalig exportiert werden müssen, damit die zum portieren benötigten \textit{Header-Files}, \textit{Libraries} und
+\textit{Binaries} auch vom Betriebssystem gefunden werden. Diese Datei wird im folgenden mit \textit{mingw32ce.env} benannt. Das
+Anlegen der Datei geschieht mit dem Befehl \lstinline{touch mingw32ce.env}.
+%
+% \begin{lstlisting}
+% touch mingw32ce.env
+% \end{lstlisting}
+%
+Nun müssen noch folgende Einträge in der Datei \textit{mingw32ce.env} hinzugefügt werden.
+
+\begin{lstlisting}
export CEGCC_PATH=/opt/cegcc
export MINGW32CE_PATH=/opt/mingw32ce
export WINCE_PATH=$HOME/workspace/wince
export PATH=$CEGCC_PATH/bin:$MINGW32CE_PATH/bin:$PATH
-export CPPFLAGS="-I$WINCE_PATH/include -I$WINCE_PATH/zlib-1.2.3-dev/ \
- include
- -I$WINCE_PATH/libjpeg-6b-dev/include -I$WINCE_PATH/win_iconv-dev/ \
- include
+export CPPFLAGS="-I$WINCE_PATH/include
+ -I$WINCE_PATH/zlib-1.2.3-dev/include
+ -I$WINCE_PATH/libjpeg-6b-dev/include
+ -I$WINCE_PATH/win_iconv-dev/include
-I$WINCE_PATH/freetype-2.3.7-dev/include
-I$WINCE_PATH/libpng-1.2.33-dev/include/libpng12
- -I$WINCE_PATH/win_iconv-dev/include -I/opt/mingw32ce/arm-mingw32ce/ \
- include/"
-export LDFLAGS="-L$WINCE_PATH/lib -L$WINCE_PATH/zlib-1.2.3-dev/lib
+ -I$WINCE_PATH/win_iconv-dev/include
+ -I/opt/mingw32ce/arm-mingw32ce/include/"
+export LDFLAGS="-L$WINCE_PATH/lib
+ -L$WINCE_PATH/zlib-1.2.3-dev/lib
-L$WINCE_PATH/libjpeg-6b-dev/lib
- -L$WINCE_PATH/win_iconv-dev/include -L$WINCE_PATH/freetype-2.3.7-dev/lib
- -L$WINCE_PATH/libpng-1.2.33-dev/lib -L$WINCE_PATH/win_icon-dev/lib
+ -L$WINCE_PATH/win_iconv-dev/include
+ -L$WINCE_PATH/freetype-2.3.7-dev/lib
+ -L$WINCE_PATH/libpng-1.2.33-dev/lib
+ -L$WINCE_PATH/win_icon-dev/lib
-L$CEGCC_PATH/lib"
export LD_LIBRARY_PATH="$WINCE_PATH/bin"
export PKG_CONFIG_PATH="$WINCE_PATH/lib/pkgconfig"
-\end{verbatim}
-
-Der Inhalt dieser Datei muss nun in jeder neu geöffneten Shell neu exportiert werden, da die Variablen durch die hier gewählte
-Methode nur
-in diesen Shell's existieren, in denen sie exportiert wurden.\newline
-Bei den Variablen ``CEGCC\_PATH'' und ``MINGW32CE\_PATH'' ist der Pfad zum Verzeichniss des \textit{cegcc}, beziehungsweiße des
-\textit{mingw32ce}
-Kompilers einzutragen. Unter ``WINCE\_PATH'' muss der Pfad, zu dem Verzeichniss in dem die kompilierten Daten gespeichert werden
-sollen,
-eingetragen werden. Mit ``PATH'' werden die \textit{Binaries}, der zwei Kompiler, in den Systempfad aufgenommen. Des weiteren
-werden unter
-``CPPFLAGS'' die \textit{include}-Pfade und unter ``LDFLAGS'' die \textit{Librarie} Pfade abgelegt. ``LD\_LIBRARY\_PATH'' zeigt
-auf den Ordner
-in welchem die kompilierten \textit{Binaries} liegen. ``PKG\_CONFIG\_PATH'' zeigt schliesslich noch auf den Ordner der die
-Paketinformationen
-der installierten Dateien beinhaltet. Dieses exportieren geschieht mit dem folgenden Aufruf.
-
-\begin{verbatim}
-source <Pfad-zu-der-Datei>/mingw32ce.env
-\end{verbatim}
-
-Im nächsten Schritt muss nun noch ein Ordner angelegt werden, in welchem der \textit{Enlightenment Source-Code} abgelegt wird. Nun
-muss noch in
-dieses Verzeichniss gewechselt werden und es kann mit dem ersten Programm begonnen werden.
+\end{lstlisting}
+
+Der Inhalt dieser Datei muss nun in jeder neu geöffneten \textit{Shell} auf ein neues exportiert werden, da die Variablen durch
+die hier gewählte Methode nur in den \textit{Shells} existieren, in denen sie exportiert wurden.\newline
+Unter den Variablen \textit{CEGCC\_PATH} und \textit{MINGW32CE\_PATH} ist der Pfad zum Verzeichniss des \textit{cegcc},
+beziehungsweiße des \textit{mingw32ce} Kompilers einzutragen. Unter \textit{WINCE\_PATH} muss der Pfad zum Zielverzeichniss, der
+kompilierten Dateien, gespeichert werden. Mit \textit{PATH} werden die \textit{Binaries} des \textit{CeGCC's}, in den
+systemweiten \textit{Binary}-Pfad aufgenommen. Des weiteren werden unter \textit{CPPFLAGS} die \textit{include}-Pfade und
+unter \textit{LDFLAGS} die Pfade zu den benötigten Bibliotheken abgelegt. \textit{LD\_LIBRARY\_PATH} zeigt auf den
+Ordner in welchem die kompilierten und unter Umständen benötigten, ausführbaren Dateien liegen. \textit{PKG\_CONFIG\_PATH}
+zeigt schliesslich noch auf den Ordner der die Paketinformationen der installierten Dateien beinhaltet. Das exportieren dieser
+Werte geschieht mit dem Aufruf \lstinline{source <Pfad-zu-der-Datei>/mingw32ce.env}.\newline
+%
+%\begin{lstlisting}
+%source <Pfad-zu-der-Datei>/mingw32ce.env
+%\end{lstlisting}
+%
+Nun muss noch ein Ordner angelegt werden, in welchem der \textit{Enlightenment Source-Code} gespeichert werden kann.
+Nach dem Wechseln in diesen besagten Ordner kann mit dem nächsten Schritt fortgefahren werden.
\subsubsection*{Evil}
-Als erstes ist es nötig das Programm \textit{Evil} aus dem \textit{SVN}, welches von den Entwicklern bereit gestellt wurde,
-herunterzuladen.
-Das Herunterladen geschieht mit:
-
-\begin{verbatim}
- svn co http://svn.enlightenment.org/svn/e/trunk/evil
-\end{verbatim}
+Als erstes ist es nötig das Programm \textit{Evil} aus dem \textit{SVN}, welches von den Entwicklern bereit gestellt wurde,
+herunterzuladen. Das Herunterladen wird mit \lstinline{svn co http://svn.enlightenment.org/svn/e/trunk/evil}
+ausgeführt.
+%
+%\begin{lstlisting}
+% svn co http://svn.enlightenment.org/svn/e/trunk/evil
+%\end{lstlisting}
+%
Nachdem alle Dateien erfolgreich heruntergeladen wurden muss, falls nicht schon geschen, die Datei mit den
-\textit{Umgebungsvaribalen}
-eingelesen werden. Nachdem dies geschehen ist, kann man nun das Konfigurationsskript starten
-
-\begin{verbatim}
- ./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce
-\end{verbatim}
-
-Durch diesen Aufruf wird der Installationspfad auf den Wert der Variable ``WINCE\_PATH'' gesetzt, als Zielsystem ein
-\textit{ARM-Prozessor} gewählt und der \textit{mingw32ce}-Kompiler als Kompiler gewählt.\newline
-Nachdem dieses Skript erfolgreich durchgeführt wurde, kann man im nächsten Schritt das Programm erstellen.
-
-\begin{verbatim}
- make
-\end{verbatim}
-
-Ist auch dies erfolgreich durchgeführt worden muss man nun noch in einem letzen Schritt die erstellten Dateien im Zielordner
-installieren.
-
-\begin{verbatim}
- make install
-\end{verbatim}
-
-Nun sollte \textit{Evil} erfolgreich im Zielordner installiert worden sein.
+\textit{Umgebungsvaribalen} exportiert werden. Nachdem dies geschehen ist, kann man nun das Konfigurationsskript mit dem Aufruf
+\lstinline|./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce| starten. \newline
+%
+%\begin{lstlisting}
+ %./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce
+%\end{lstlisting}
+%
+Durch das Ausführen des Skriptes mit den obigen Parametern wird der Installationspfad auf den Wert der Variable
+\textit{WINCE\_PATH} gesetzt, als Zielsystem ein \textit{ARM}-Prozessor gewählt und der \textit{mingw32ce}-Kompiler als Kompiler
+festgelegt.\newline
+Nachdem dieses Skript erfolgreich ausgeführt wurde, kann man im nächsten Schritt das Programm durch ausführen von
+\lstinline{make} erstellen und im Anschluss durch \lstinline{make install} installieren. Nach diesem Schritt sollte \textit{Evil}
+erfolgreich im Zielordner, der in der Variable \textit{WINCE\_PATH} festgelegt wurde, installiert worden sein.
+%
+%\begin{lstlisting}
+ %make
+%\end{lstlisting}
+%
+%Ist auch dies erfolgreich durchgeführt worden muss man nun noch in einem letzen Schritt die erstellten Dateien im Zielordner
+%installieren.
+%
+%\begin{lstlisting}
+ %make install
+%\end{lstlisting}
+%
\subsubsection*{Eina}
-Auch hier ist es auch wieder nötig die Dateien aus dem Entwickler-Repository herunterzuladen.
-
-\begin{verbatim}
- svn co http://svn.enlightenment.org/svn/e/trunk/eina
-\end{verbatim}
-
-Danach wird auch hier wieder das ``autogen.sh'' Skript aufgerufen.
-
-\begin{verbatim}
- ./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce --disable-pthread
-\end{verbatim}
-
-Es werden bei diesem Aufruf die gleichen Parameter wie bei \textit{Evil} übergeben. Hinzu kommt noch ``--disable-pthread''. Mit
-diesem
-Parameter wird \textit{threading} beim Erstellen von \textit{Eina} deaktiviert, da \textit{ARM-Prozessoren} dies nicht
-unterstützen.\newline
-Nachdem das Skript durchgelaufen ist, muss man nun auch wieder das Programm erstellen und im Zielverzeichniss installieren.
-
-\begin{verbatim}
- make ; make install
-\end{verbatim}
+Auch hier ist es auch wieder nötig die Dateien aus dem Entwickler-Repository durch
+\lstinline{svn co http://svn.enlightenment.org/svn/e/trunk/eina} herunterzuladen.
+%
+%\begin{lstlisting}
+ %svn co http://svn.enlightenment.org/svn/e/trunk/eina
+%\end{lstlisting}
+%
+Danach wird auch hier wieder das ``autogen.sh'' Skript durch
+\lstinline|./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce --disable-pthread| Skript aufgerufen. \newline
+%
+%\begin{lstlisting}
+ %./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce --disable-pthread
+%\end{lstlisting}
+%
+Es werden bei diesem Aufruf die gleichen Parameter wie bei \textit{Evil} übergeben. Hinzu kommt noch \textit{--disable-pthread}.
+Mit diesem Parameter wird die Nutzung der \textit{POSIX} Bibliothek \textit{pthread} deaktiviert, da diese auf dem Zielsystem
+nicht unterstützt wird.\newline
+Nachdem das Skript ausgeführt wurde, muss nun auch wieder das Programm mit \lstinline{make} erstellt und im Zielverzeichniss
+mit \lstinline{make install} installiert werden.
+
+%\begin{lstlisting}
+ %make ; make install
+%\end{lstlisting}
\subsubsection*{Eet}
-Bevor man \textit{Eet} erstellen kann, muss man noch vier vorgefertigte \textit{tar-Archive} im Verzeichniss, welches in der
-Variable
-``WINCE\_PATH'' gespeichert wurde, entpacken. Diese Archive kann man unter den Links, welche in Anhang 2 zu finden sind,
-herunterladen.
-Nach dem Herunterladen müssen diese nur noch in das ``WINCE\_PATH''-Verzeichniss kopiert und entpackt werden. Nun kann man den
-Quellcode
-für \textit{Eet} herunterladen.
-
-\begin{verbatim}
- svn co http://svn.enlightenment.org/svn/e/trunk/eet
-\end{verbatim}
-
-Nachdem die Dateien heruntergeladen sind, muss wieder das ``autogen.sh``-Skript aufgerufen werden.
-
-\begin{verbatim}
- ./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce
-\end{verbatim}
-
-Im Anschluss muss nun auch wieder kompiliert und installiert werden.
-
-\begin{verbatim}
- make ; make install
-\end{verbatim}
+Bevor man \textit{Eet} erstellen kann, muss man noch vier \textit{tar-Archive} im Verzeichniss, welches in der
+Variable \textit{WINCE\_PATH} gespeichert wurde, entpacken. Diese Archive können unter den Links, welche in Anhang 2 zu finden
+sind, heruntergeladen werden. Im Anschluss müssen diese nur noch in das \textit{WINCE\_PATH}-Verzeichniss kopiert und
+entpackt werden. Nun kann der Quellcode für \textit{Eet} durch ausführen von
+\lstinline{svn co http://svn.enlightenment.org/svn/e/trunk/eet} heruntergeladen werden.
+%
+%\begin{lstlisting}
+% svn co http://svn.enlightenment.org/svn/e/trunk/eet
+%\end{lstlisting}
+Nachdem die \textit{Eet} Dateien vorhanden sind, muss wieder das \textit{autogen.sh}-Skript durch
+\lstinline|./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce| aufgerufen und ausgeführt werden.
+%\begin{lstlisting}
+% ./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce
+%\end{lstlisting}
+%
+Im Anschluss muss nun auch wieder mit \lstinline{make} kompiliert und mit \lstinline{make install} installiert werden.
+%
+%\begin{lstlisting}
+% make ; make install
+%\end{lstlisting}
\subsubsection*{Embryo}
-Der Erste Schritt ist auch hier das Herunterladen des Programmcodes.
-
-\begin{verbatim}
- svn co http://svn.enlightenment.org/svn/e/trunk/embryo
-\end{verbatim}
-
-Nachdem die Dateien heruntergeladen sind auch wieder das Skript aufrufen.
-
-\begin{verbatim}
- ./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce
-\end{verbatim}
-
-Im Anschluss nun auch wieder kompilieren und installieren.
-
-\begin{verbatim}
- make ; make install
-\end{verbatim}
+Der Erste Schritt ist auch hier das Herunterladen des Programmcodes unter der Verwendung von
+\lstinline{svn co http://svn.enlightenment.org/svn/e/trunk/embryo}.
+%
+%\begin{lstlisting}
+% svn co http://svn.enlightenment.org/svn/e/trunk/embryo
+% \end{lstlisting}
+%
+Nachdem die Dateien heruntergeladen wurden, durch \lstinline{./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce} das
+\textit{autogen.sh}-Skript aufrufen.
+%
+% \begin{lstlisting}
+% ./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce
+% \end{lstlisting}
+%
+Im Anschluss nun auch wieder kompilieren mit \lstinline{make} und installieren mit \lstinline{make install}.
+%
+%\begin{lstlisting}
+% make ; make install
+%\end{lstlisting}
\subsubsection*{Evas}
-Auch für \textit{Evas} müssen mehrere \textit{tar-Archive} heruntergeladen werden (siehe Anhang 3). Auch sollten diese in das
-gleiche Verzeichniss, wie die vorhergegangenen Archive, entpackt werden. Nun müssen noch die Dateien, welche die
-Paketinformationen beinhalten, um die heruntergeladen Pakete ergänzt werden:
-
-\begin{verbatim}
- cp $WINCE_PATH/cp libpng-1.2.33-dev/lib/pkgconfig/libpng*
- $WINCE_PATH/lib/pkgconfig/
- cp $WINCE_PATH/freetype-2.3.7-dev/lib/pkgconfig/freetype2.pc
- $WINCE_PATH/lib/freetype2.pc
-\end{verbatim}
-
-Nun müssen diese Packetinformationen noch bearbeitet werden. Dazu müssen diese mit einem beliebigen Editor geöffnet werden und in
-beiden
-Dateien der Wert von ''prefix`` auf ''WINCE\_PATH`` gesetzt werden.
-
-Nachdem dies durchgeführt wurde kann nun \textit{Evas} heruntergeladen werden.
-
-\begin{verbatim}
- svn co http://svn.enlightenment.org/svn/e/trunk/evas
-\end{verbatim}
-
-Nun muss auch hier, wie bei allen anderen Programmen das ''autogen.sh``-Skript aufgerufen werden.
-
-\begin{verbatim}
- ./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce
- --disable-async-events
-\end{verbatim}
-
-Als nächster Schritt muss nun das Programm kompiliert werden.
-
-\begin{verbatim}
- make
-\end{verbatim}
-
-Sollte hierbei die Datei ''ft2build.h`` nicht gefunden werden, so muss diese an die richtige Stelle kopiert werden. Eigentlich
-liegt die
-Datei an folgendem Ort:
-
-\begin{verbatim}
- $WINCE_PATH/freetype-2.3.7-dev/include/freetype2/ft2build.h
-\end{verbatim}
-
-Allerdings wird sie im Ordner ''freetype2`` nicht gefunden. Um dies zu umgehen muss ''ft2build.h`` einfach eine Ordnerebene nach
-oben
-kopiert werden.
-
-\begin{verbatim}
- cp $WINCE_PATH/freetype-2.3.7-dev/include/freetype2/ft2build.h $WINCE_PATH/freetype-2.3.7-dev/include
-\end{verbatim}
-
-Um einen weiteren Fehler von vorneherein zu umgehen, muss man noch den Pfad eines eingebundenen Headers in ''ft2build.h``
-abändern.
-Hierzu öffnet man ''ft2build.h`` mit einem beliebigen Editor und ändert folgendes
-
-\begin{verbatim}
- #include <freetype/config/ftheader.h>
-\end{verbatim}
-
-zu
-
-\begin{verbatim}
- #include <freetype2/freetype/config/ftheader.h>
-\end{verbatim}
-
-ab. Anschliessend muss nun auch der ''freetype``-Ordner um eine Ebene nach oben kopieren werden, da die
-\textit{include}-Pfade in den Headern von ''freetype2`` nicht korrekt sind.\newline
-Falls man nun noch \textit{evas} mit \textit{DirectX-Support} kompilieren möchte, muss man das \textit{DirectX-SDK} herunterladen
-und ''ddraw.h`` in die Verzichnisse ''/opt/cegcc/arm-cegcc/include/w32api/'' und ''/opt/mingw32ce/arm-mingw32ce/include/''
-kopieren.
+Auch für \textit{Evas} müssen mehrere \textit{tar-Archive} heruntergeladen werden (siehe Anhang 3). Diese werden in das
+gleiche Verzeichniss, wie die vorhergegangenen Archive, entpackt. Nun müssen noch die Dateien, welche die Paketinformationen
+beinhalten, um die heruntergeladen Pakete ergänzt werden:
+
+\begin{lstlisting}[breakatwhitespace=true]
+ cp $WINCE_PATH/libpng-1.2.33-dev/lib/pkgconfig/libpng* $WINCE_PATH/lib/pkgconfig/
+ cp $WINCE_PATH/freetype-2.3.7-dev/lib/pkgconfig/freetype2.pc $WINCE_PATH/lib/freetype2.pc
+\end{lstlisting}
+
+Die Packetinformationen müssen noch bearbeitet werden. Dazu werden die zwei Dateien, \textit{freetype2.pc}, \textit{libpng} und
+\textit{libpng12.pc}, mit einem beliebigen Editor geöffnet und in beiden Dateien der Wert der Variable \textit{prefix} auf
+{WINCE\_PATH} gesetzt. Nachdem dies durchgeführt wurde kann nun der Quellcode von \textit{Evas}
+durch ausführen von \lstinline{svn co http://svn.enlightenment.org/svn/e/trunk/evas} heruntergeladen werden.
+%
+% \begin{lstlisting}
+% svn co http://svn.enlightenment.org/svn/e/trunk/evas
+% \end{lstlisting}
+%
+Es muss auch hier, wie bei allen anderen Programmen, das \textit{autogen.sh}-Skript durch
+\lstinline|./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce --disable-async-events| aufgerufen werden.
+%
+% \begin{lstlisting}
+% ./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce --disable-async-events
+% \end{lstlisting}
+%
+Als nächster Schritt muss nun das Programm mit \lstinline{make} kompiliert werden.
+%
+% \begin{lstlisting}
+% make
+% \end{lstlisting}
+%
+Sollte hierbei die Datei \textit{ft2build.h} nicht gefunden werden, so muss diese an die richtige Stelle kopiert werden.
+Ursprünglich liegt diese Datei unter \lstinline|$WINCE_PATH/freetype-2.3.7-dev/include/freetype2/ft2build.h|.
+%
+% \begin{lstlisting}
+% $WINCE_PATH/freetype-2.3.7-dev/include/freetype2/ft2build.h
+% \end{lstlisting}
+%
+Allerdings kann sie in diesem Ordner nicht gefunden werden. Um dies zu umgehen muss \textit{ft2build.h} eine Ordnerebene
+nach oben kopiert werden. Dies geschieht durch den Aufruf von
+\lstinline|cp $WINCE_PATH/freetype-2.3.7-dev/include/freetype2/ft2build.h $WINCE_PATH/freetype-2.3.7-dev/include|. \newline
+%
+%
+% \begin{lstlisting}
+% cp $WINCE_PATH/freetype-2.3.7-dev/include/freetype2/ft2build.h $WINCE_PATH/freetype-2.3.7-dev/include
+% \end{lstlisting}
+%
+Um einen weiteren Fehler von vorneherein zu umgehen, muss noch der Pfad eines eingebundenen Headers in \textit{ft2build.h}
+abgeändert werden.
+Hierzu öffnet man \textit{ft2build.h} mit einem beliebigen Editor und ändert \lstinline{#include <freetype/config/ftheader.h>} zu
+\lstinline{#include <freetype2/freetype/config/ftheader.h>} ab. \newline
+%
+% \begin{lstlisting}
+% % #include <freetype/config/ftheader.h>
+% \end{lstlisting}
+
+% zu
+
+% \begin{lstlisting}
+% #include <freetype2/freetype/config/ftheader.h>
+% \end{lstlisting}
+%
+Anschliessend muss nun auch der \textit{freetype}-Ordner um eine Ebene nach oben kopieren werden, da die
+\textit{include}-Pfade in den Headern von \textit{freetype2} nicht korrekt sind.\newline
+Falls man nun noch \textit{Evas} mit \textit{DirectX-Support} kompilieren möchte, muss man das \textit{DirectX-SDK} herunterladen
+und \textit{ddraw.h} in die Verzichnisse \textit{/opt/cegcc/arm-cegcc/include/w32api/} und
+\textit{/opt/mingw32ce/arm-mingw32ce/include/} kopieren.
\subsubsection*{Ecore}
-Um \textit{Ecore} zu erstellen muss zu erst eine Änderung im ``winnt.h''-Header vorgenommen werden. Dieser liegt im
+Um \textit{Ecore} zu erstellen muss zu erst eine Änderung im \textit{winnt.h}-Header vorgenommen werden. Dieser liegt im
\textit{include}-Verzeichniss des \textit{mingw32ce}-Kompilers.
-\begin{verbatim}
+\begin{lstlisting}
#define PROCESS_SET_QUOTA 0x0100
#define PROCESS_SET_INFORMATION 0x0200
#define PROCESS_QUERY_INFORMATION 0x0400
+#define PROCESS_SUSPEND_RESUME 0x0800
- #define PROCESS_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED| \
+ #define PROCESS_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED|
SYNCHRONIZE|0xfff)
#define THREAD_TERMINATE 0x0001
-\end{verbatim}
-
-Der mit ``+'' gekennzeichnete Eintrag ``PROCESS\_SUSPEND\_RESUME'' muss in die Datei ``winnt.h'' eingefügt werden.\newline
-Nachdem dieser Schritt ausgeführt wurde kann nun auch \textit{Ecore} kompiliert werden. Dazu wird auch hier wieder das
-``autogen.sh'' Skript ausgeführt.
-
-\begin{verbatim}
- ./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce --disable-pthread
-\end{verbatim}
-
-Nachdem dies erfolgreich ausgeführt wurde können nun auch die gleichen zwei Schritte wie bei den vorhergegangenen Programmen
-ausgeführt werden.
+\end{lstlisting}
+
+Der mit \textit{+} gekennzeichnete Eintrag \textit{PROCESS\_SUSPEND\_RESUME} muss in die Datei \textit{winnt.h} eingefügt
+werden.\newline
+Nachdem dieser Schritt ausgeführt wurde kann \textit{Ecore} erstellt werden. Dazu wird auch hier wieder das
+\textit{autogen.sh}-Skript durch den Aufruf von
+\lstinline|./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce --disable-pthread| ausgeführt. \newline
+%
+% \begin{lstlisting}
+% ./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce --disable-pthread
+% \end{lstlisting}
+%
+Nachdem das Skript erfolgreich ausgeführt wurde ,können nun auch die gleichen zwei Schritte wie bei den vorhergegangenen
+Programmen ausgeführt werden. Der Kompilierungsvorgang wird durch \lstinline{make} gestartet. Im Anschluss kann mit
+\lstinline{make install} installiert werden.
\subsubsection*{Edje}
-Auch hier gilt wieder, Dateien herunterladen.
-
-\begin{verbatim}
- svn co http://svn.enlightenment.org/svn/e/trunk/embryo
-\end{verbatim}
-
-Nachdem die Dateien heruntergeladen wurden, muss auch hier wieder das Skript aufgerufen werden.
-
-\begin{verbatim}
- ./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce
-\end{verbatim}
-
-Die letzten beiden Schritte sind auch hier wieder kompilieren und installieren.
-
-\begin{verbatim}
- make ; make install
-\end{verbatim}
+Auch hier müssen zuerst die Dateien durch Aufruf von \lstinline{svn co http://svn.enlightenment.org/svn/e/trunk/embryo}
+heruntergeladen werden.
+%
+% \begin{lstlisting}
+% svn co http://svn.enlightenment.org/svn/e/trunk/embryo
+% \end{lstlisting}
+%
+Nachdem die Dateien heruntergeladen wurden, muss auch hier wieder das Skript durch
+\lstinline|./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce| aufgerufen werden.
+%
+% \begin{lstlisting}
+% ./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce
+% \end{lstlisting}
+%
+Die letzten beiden Schritte sind auch hier wieder kompilieren und Installation durch \lstinline{make} und
+\lstinline{make install} ausführen.
+
+% \begin{lstlisting}
+% make ; make install
+% \end{lstlisting}
\subsubsection*{Elementary}
-Zuerst müssen auch hier die benötigten Daten heruntergeladen werden.
-
-\begin{verbatim}
-svn co http://svn.enlightenment.org/svn/e/trunk/TMP/st/elementary
-\end{verbatim}
-
-Nun muss auch wieder das ``autogen.sh'' Skript heruntergeladen werden.
-
-\begin{verbatim}
- ./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce
- --with-edje-cc=$WINCE_PATH/bin/edje_cc
-\end{verbatim}
-
+Zuerst müssen auch hier der Quellcode und benötigte Daten heruntergeladen werden. Dies geschieht durch den Aufruf von
+\lstinline{svn co http://svn.enlightenment.org/svn/e/trunk/TMP/st/elementary}.
+%
+%
+% \begin{lstlisting}
+% svn co http://svn.enlightenment.org/svn/e/trunk/TMP/st/elementary
+% \end{lstlisting}
+%
+Nun muss auch wieder das \textit{autogen.sh}-Skript mit
+\lstinline|./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce --with-edje-cc=$WINCE_PATH/bin/edje_cc| gestartet und ausgeführt
+werden.
+%
+% \begin{lstlisting}
+% ./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce
+% --with-edje-cc=$WINCE_PATH/bin/edje_cc
+% \end{lstlisting}
+%
Um zwei Fehlern vorzubeugen, welche beim Erstellen der Test-Files von \textit{elementary} auftreten, muss man im in der Datei
-``Makefile.am'' im Ordner ``src/bin/'' alle Vorkommnisse von ``test\_fileselector.c'' entfernen und folgende Zeilen
-auskommentieren.
+\textit{Makefile.am} im Ordner \textit{src/bin/} alle Vorkommnisse von \textit{test\_fileselector.c} entfernen und folgende
+Zeilen auskommentiert werden:
-\begin{verbatim}
+\begin{lstlisting}
bin_PROGRAMS = elementary_test
if BUILD_QUICKLAUNCH
bin_PROGRAMS += elementary_quicklaunch elementary_run elementary_testql
endif
-\end{verbatim}
-
-Nun kann das Programm auf gewohnte Art und Weise erstellt und installiert werden.
+\end{lstlisting}
-\begin{verbatim}
- make ; make install
-\end{verbatim}
-
-\subsubsection*{Weitere Schritte}
-
-Im Anschluss an das Erstellen dieser Programme muss nun noch ein Skript in WINCE\_PATH angelegt und dessen Zugriffsrechte
-abgeändert
+Nun kann das Programm auf gewohnte Art und Weise mit \lstinline{make} und \lstinline{make install} erstellt und installiert
werden.
+%
+% \begin{lstlisting}
+% make ; make install
+% \end{lstlisting}
-\begin{verbatim}
- touch efl_zip.sh
- chmod 774 efl_zip.sh
-\end{verbatim}
+\subsubsection*{Weitere Schritte}
-In dieses Skript wird nun der Code eingefügt, welcher unter Anhang 4 zu finden ist.\newline
+Im Anschluss an das Erstellen dieser Programme muss nun noch ein Skript in \textit{WINCE\_PATH} angelegt und dessen Zugriffsrechte
+abgeändert werden. Das Anlegen des Skriptes erfolgt durch \lstinline{touch efl_zip.sh}. Die Zugriffsrechte werden durch
+\lstinline{chmod 774 efl_zip.sh} abgeändert. \newline
+%
+% \begin{lstlisting}
+% touch efl_zip.sh
+% chmod 774 efl_zip.sh
+% \end{lstlisting}
+%
+In dieses Skript wird nun der Code kopiert, welcher unter Anhang 4 zu finden ist.\newline
Bei Ausführung dieses Skripts werden die vorhandenen \textit{DLL's} nocheinmal komprimiert und alles in einen Ordner mit dem Namen
-``efl'' kopiert. Im Anschluss wird der ganze Ordner noch in einem \textit{Zip-Archiv} komprimiert. Möchte man nun noch eigene
-Anwendungen
-hinzufügen, so muss man diese nur in diesen ``efl'' Ordner hinzufügen und erneut komprimieren. Nun kann dieses Archiv auf das
-Mobile Gerät kopiert und entpackt werden.
+\textit{efl} kopiert. Im Anschluss wird der ganze Ordner noch in einem \textit{Zip-Archiv} zusammengefast und komprimiert. Möchte
+man nun noch eigene Anwendungen hinzufügen, so muss man diese nur in diesen \textit{efl} Ordner hinzufügen und erneut
+komprimieren. Nun kann dieses Archiv auf das Mobile Gerät kopiert und entpackt werden.
\subsection*{Anhang 2}
@@ -386,7 +394,7 @@ Archive für \textit{Evas}:
\subsection*{Anhang 4}
efl\_zip.sh:
-\begin{verbatim}
+\begin{lstlisting}[breakatwhitespace=false]
#!/bin/sh
rm -rf efl/
@@ -440,64 +448,44 @@ arm-mingw32ce-strip efl/eina/mp/eina_fixed_bitmap.dll
arm-mingw32ce-strip efl/eina/mp/eina_pass_through.dll
-cp lib/evas/modules/engines/buffer/mingw32ce-arm/module.dll \
-efl/evas/modules/engines/buffer/mingw32ce-arm/engine_buffer.dll
+cp lib/evas/modules/engines/buffer/mingw32ce-arm/module.dll efl/evas/modules/engines/buffer/mingw32ce-arm/engine_buffer.dll
-cp lib/evas/modules/engines/software_16/mingw32ce-arm/module.dll \
-efl/evas/modules/engines/software_16/mingw32ce-arm/\
-engine_software_16.dll
+cp lib/evas/modules/engines/software_16/mingw32ce-arm/module.dll
+efl/evas/modules/engines/software_16/mingw32ce-arm/engine_software_16.dll
-cp lib/evas/modules/engines/software_16_wince/mingw32ce-arm/module.dll \
-efl/evas/modules/engines/software_16_wince/mingw32ce-arm/\
-engine_software_16_wince.dll
+cp lib/evas/modules/engines/software_16_wince/mingw32ce-arm/module.dll
+efl/evas/modules/engines/software_16_wince/mingw32ce-arm/engine_software_16_wince.dll
-cp lib/evas/modules/engines/software_generic/mingw32ce-arm/module.dll \
-efl/evas/modules/engines/software_generic/mingw32ce-arm/\
-engine_software_generic.dll
+cp lib/evas/modules/engines/software_generic/mingw32ce-arm/module.dll
+efl/evas/modules/engines/software_generic/mingw32ce-arm/engine_software_generic.dll
-cp lib/evas/modules/loaders/eet/mingw32ce-arm/module.dll \
-efl/evas/modules/loaders/eet/mingw32ce-arm/loader_eet.dll
+cp lib/evas/modules/loaders/eet/mingw32ce-arm/module.dll efl/evas/modules/loaders/eet/mingw32ce-arm/loader_eet.dll
-cp lib/evas/modules/loaders/jpeg/mingw32ce-arm/module.dll \
-efl/evas/modules/loaders/jpeg/mingw32ce-arm/loader_jpeg.dll
+cp lib/evas/modules/loaders/jpeg/mingw32ce-arm/module.dll efl/evas/modules/loaders/jpeg/mingw32ce-arm/loader_jpeg.dll
-cp lib/evas/modules/loaders/pmaps/mingw32ce-arm/module.dll \
-efl/evas/modules/loaders/pmaps/mingw32ce-arm/loader_pmaps.dll
+cp lib/evas/modules/loaders/pmaps/mingw32ce-arm/module.dll efl/evas/modules/loaders/pmaps/mingw32ce-arm/loader_pmaps.dll
-cp lib/evas/modules/loaders/png/mingw32ce-arm/module.dll \
-efl/evas/modules/loaders/png/mingw32ce-arm/loader_png.dll
+cp lib/evas/modules/loaders/png/mingw32ce-arm/module.dll efl/evas/modules/loaders/png/mingw32ce-arm/loader_png.dll
-cp lib/evas/modules/loaders/xpm/mingw32ce-arm/module.dll \
-efl/evas/modules/loaders/xpm/mingw32ce-arm/loader_xpm.dll
+cp lib/evas/modules/loaders/xpm/mingw32ce-arm/module.dll efl/evas/modules/loaders/xpm/mingw32ce-arm/loader_xpm.dll
-cp lib/evas/modules/savers/eet/mingw32ce-arm/module.dll \
-efl/evas/modules/savers/eet/mingw32ce-arm/saver_eet.dll
+cp lib/evas/modules/savers/eet/mingw32ce-arm/module.dll efl/evas/modules/savers/eet/mingw32ce-arm/saver_eet.dll
-cp lib/evas/modules/savers/png/mingw32ce-arm/module.dll \
-efl/evas/modules/savers/png/mingw32ce-arm/saver_png.dll
+cp lib/evas/modules/savers/png/mingw32ce-arm/module.dll efl/evas/modules/savers/png/mingw32ce-arm/saver_png.dll
-arm-mingw32ce-strip efl/evas/modules/engines/buffer/\
-mingw32ce-arm/engine_buffer.dll
+arm-mingw32ce-strip efl/evas/modules/engines/buffer/ mingw32ce-arm/engine_buffer.dll
-arm-mingw32ce-strip efl/evas/modules/engines/software_16/\
-mingw32ce-arm/engine_software_16.dll
+arm-mingw32ce-strip efl/evas/modules/engines/software_16/ mingw32ce-arm/engine_software_16.dll
-arm-mingw32ce-strip efl/evas/modules/engines/\
-software_16_wince/mingw32ce-arm/engine_software_16_wince.dll
+arm-mingw32ce-strip efl/evas/modules/engines/ software_16_wince/mingw32ce-arm/engine_software_16_wince.dll
-arm-mingw32ce-strip efl/evas/modules/engines/\
-software_generic/mingw32ce-arm/engine_software_generic.dll
+arm-mingw32ce-strip efl/evas/modules/engines/ software_generic/mingw32ce-arm/engine_software_generic.dll
-arm-mingw32ce-strip efl/evas/modules/loaders/eet/\
-mingw32ce-arm/loader_eet.dll
-arm-mingw32ce-strip efl/evas/modules/loaders/jpeg/\
-mingw32ce-arm/loader_jpeg.dll
-arm-mingw32ce-strip efl/evas/modules/loaders/pmaps/\
-mingw32ce-arm/loader_pmaps.dll
-arm-mingw32ce-strip efl/evas/modules/loaders/png/\
-mingw32ce-arm/loader_png.dll
-arm-mingw32ce-strip efl/evas/modules/loaders/xpm/\
-mingw32ce-arm/loader_xpm.dll
+arm-mingw32ce-strip efl/evas/modules/loaders/eet/ mingw32ce-arm/loader_eet.dll
+arm-mingw32ce-strip efl/evas/modules/loaders/jpeg/ mingw32ce-arm/loader_jpeg.dll
+arm-mingw32ce-strip efl/evas/modules/loaders/pmaps/ mingw32ce-arm/loader_pmaps.dll
+arm-mingw32ce-strip efl/evas/modules/loaders/png/ mingw32ce-arm/loader_png.dll
+arm-mingw32ce-strip efl/evas/modules/loaders/xpm/ mingw32ce-arm/loader_xpm.dll
arm-mingw32ce-strip efl/evas/modules/savers/eet/mingw32ce-arm/saver_eet.dll
arm-mingw32ce-strip efl/evas/modules/savers/png/mingw32ce-arm/saver_png.dll
@@ -510,7 +498,7 @@ cp zlib-1.2.3-bin/bin/zlib1.dll efl/
zip -r -9 efl.zip efl/
-\end{verbatim}
+\end{lstlisting}
\end{appendix}
diff --git a/ausarbeitung/Anhang.tex.backup b/ausarbeitung/Anhang.tex.backup
index 7c77240..fe799b8 100644
--- a/ausarbeitung/Anhang.tex.backup
+++ b/ausarbeitung/Anhang.tex.backup
@@ -5,369 +5,393 @@
Um die Pakete \textit{Evil, Eina, Eet, Embryo, Evas, Ecore, Edje} und \textit{Elementary} von Ubuntu nach Windows Mobile zu
portieren, sind die folgenden Schritte nötig:
-
-Im allerersten Schritt muss eine aktuelle Version des \textit{CeGCC's} heruntergeladen und installiert werden. Die benötigten
-Dateien können auf der Projekthomepage gefunden und heruntergeladen werden. Für diese Aufgabe wird der \textit{mingw32ce} für den
-\textit{ARM}-Prozessortyp benötigt. Dieser muss auf der Homepage des CeGCC-Projekts heruntergeladen und in das passende
+Zuerst muss eine aktuelle Version des \textit{CeGCC's} heruntergeladen und installiert werden. Die benötigten
+Dateien können auf der Projekthomepage\footnote{http://cegcc.sourceforge.net/} heruntergeladen werden. Für dieses Tutorial wird
+der \textit{mingw32ce} für den \textit{ARM}-Prozessortyp benötigt. Nach dem heruntergeladen muss dieser in das passende
Systemverzeichniss entpackt werden.\newline
-
Bevor man mit dem nächsten Schritt fortfahren kann, müssen noch ein paar benötigte Packete aus dem Ubuntu-Repository installiert
werden.
-\begin{verbatim}
+\begin{lstlisting}
sudo apt-get install build-essential make gcc bison flex subversion
autoconf libtool gettext libfreetype6-dev libpng12-dev zlib1g-dev
libjpeg-dev libtiff-dev libungif4-dev librsvg2-dev xorg-dev
libltdl3-dev libcurl4-dev cvs subversion git-core doxygen proj
libsqlite3-0 libsqlite3-dev
-\end{verbatim}
-
-Nachdem diese Pakete installiert wurden kann man sich nun die einzelnen Packete aus dem \textit{Subversion-Repository} der
-Entwickler herunterladen.\newline
-Nun muss man sich noch ein Verzeichniss anlegen, in welchem die für Windows Mobile kompilierten Dateien abgelegt werden. Des
-weiteren muss noch eine Datei angelegt werden, in welcher die Pfade zu dem genutzten Kompiler liegen und welche dann einmalig
-exportiert werden müssen, damit die benötigten \textit{Header-Files}, textit{Libraries} und \textit{Binaries} auch vom
-Betriebssystem gefunden werden. Diese Datei wird im folgenden ``mingw32ce.env'' benannt.
-
-\begin{verbatim}
- touch mingw32ce.env
-\end{verbatim}
-
-Nun müssen noch in diese Datei die zu exportierenden Pfade geschrieben werden.
-
-\begin{verbatim}
+\end{lstlisting}
+
+% Nachdem diese Pakete installiert wurden kann man sich nun die einzelnen Packete aus dem \textit{Subversion-Repository} der
+% Entwickler herunterladen.\newline
+Nun muss man noch ein Verzeichniss angelegt werden, in welchem die für Windows Mobile kompilierten Dateien gespeichert werden
+können. Des weiteren muss noch eine Datei angelegt werden, in welcher die Pfade zun genutzten Kompiler liegen und welche dann
+einmalig exportiert werden müssen, damit die zum portieren benötigten \textit{Header-Files}, \textit{Libraries} und
+\textit{Binaries} auch vom Betriebssystem gefunden werden. Diese Datei wird im folgenden mit \textit{mingw32ce.env} benannt. Das
+Anlegen der Datei geschieht mit dem Befehl \lstinline{touch mingw32ce.env}.
+%
+% \begin{lstlisting}
+% touch mingw32ce.env
+% \end{lstlisting}
+%
+Nun müssen noch folgende Einträge in der Datei \textit{mingw32ce.env} hinzugefügt werden.
+
+\begin{lstlisting}
export CEGCC_PATH=/opt/cegcc
export MINGW32CE_PATH=/opt/mingw32ce
export WINCE_PATH=$HOME/workspace/wince
export PATH=$CEGCC_PATH/bin:$MINGW32CE_PATH/bin:$PATH
-export CPPFLAGS="-I$WINCE_PATH/include -I$WINCE_PATH/zlib-1.2.3-dev/include
- -I$WINCE_PATH/libjpeg-6b-dev/include -I$WINCE_PATH/win_iconv-dev/include
+export CPPFLAGS="-I$WINCE_PATH/include
+ -I$WINCE_PATH/zlib-1.2.3-dev/include
+ -I$WINCE_PATH/libjpeg-6b-dev/include
+ -I$WINCE_PATH/win_iconv-dev/include
-I$WINCE_PATH/freetype-2.3.7-dev/include
-I$WINCE_PATH/libpng-1.2.33-dev/include/libpng12
- -I$WINCE_PATH/win_iconv-dev/include -I/opt/mingw32ce/arm-mingw32ce/include/"
-export LDFLAGS="-L$WINCE_PATH/lib -L$WINCE_PATH/zlib-1.2.3-dev/lib
+ -I$WINCE_PATH/win_iconv-dev/include
+ -I/opt/mingw32ce/arm-mingw32ce/include/"
+export LDFLAGS="-L$WINCE_PATH/lib
+ -L$WINCE_PATH/zlib-1.2.3-dev/lib
-L$WINCE_PATH/libjpeg-6b-dev/lib
- -L$WINCE_PATH/win_iconv-dev/include -L$WINCE_PATH/freetype-2.3.7-dev/lib
- -L$WINCE_PATH/libpng-1.2.33-dev/lib -L$WINCE_PATH/win_icon-dev/lib
+ -L$WINCE_PATH/win_iconv-dev/include
+ -L$WINCE_PATH/freetype-2.3.7-dev/lib
+ -L$WINCE_PATH/libpng-1.2.33-dev/lib
+ -L$WINCE_PATH/win_icon-dev/lib
-L$CEGCC_PATH/lib"
export LD_LIBRARY_PATH="$WINCE_PATH/bin"
export PKG_CONFIG_PATH="$WINCE_PATH/lib/pkgconfig"
-\end{verbatim}
-
-Der Inhalt dieser Datei muss nun in jeder neu geöffneten Shell neu exportiert werden, da sie durch die hier gewählte Methode nur
-in
-eben diesen Shell's gelten wo sie exportiert wurden.\newline
-Bei den Variablen ``CEGCC\_PATH'' und ``MINGW32CE\_PATH'' ist der Pfad zum Verzeichniss des \textit{cegcc}, beziehungsweiße des
-\textit{mingw32ce}
-Kompilers einzutragen. Unter ``WINCE\_PATH'' muss der Pfad, zu dem Verzeichniss in dem die kompilierten Daten gespeichert werden
-sollen,
-eingetragen werden. Mit ``PATH'' werden die \textit{Binaries}, der zwei Kompiler, in den Systempfad aufgenommen. Des weiteren
-werden unter
-``CPPFLAGS'' die \textit{include}-Pfade und unter ``LDFLAGS'' die \textit{Librarie} Pfade abgelegt. ``LD\_LIBRARY\_PATH'' zeigt
-auf den Ordner
-in welchem die kompilierten \textit{Binaries} liegen. ``PKG\_CONFIG\_PATH'' zeigt schliesslich noch auf den Ordner der die
-Packetinformationen
-der installierten Dateien beinhaltet. Dieses exportieren geschieht mit dem folgenden Aufruf.
-
-\begin{verbatim}
-source <Pfad-zu-der-Datei>/mingw32ce.env
-\end{verbatim}
-
-Im nächsten Schritt muss nun noch ein Ordner angelegt werden, in welchem der \textit{Enlightenment Source-Code} abgelegt wird. Nun
-muss noch in
-dieses Verzeichniss gewechselt werden und es kann mit dem ersten Programm begonnen werden.
+\end{lstlisting}
+
+Der Inhalt dieser Datei muss nun in jeder neu geöffneten \textit{Shell} auf ein neues exportiert werden, da die Variablen durch
+die hier gewählte Methode nur in den \textit{Shells} existieren, in denen sie exportiert wurden.\newline
+Unter den Variablen \textit{CEGCC\_PATH} und \textit{MINGW32CE\_PATH} ist der Pfad zum Verzeichniss des \textit{cegcc},
+beziehungsweiße des \textit{mingw32ce} Kompilers einzutragen. Unter \textit{WINCE\_PATH} muss der Pfad zum Zielverzeichniss, der
+kompilierten Dateien, gespeichert werden. Mit \textit{PATH} werden die \textit{Binaries} des \textit{CeGCC's}, in den
+systemweiten \textit{Binary}-Pfad aufgenommen. Des weiteren werden unter \textit{CPPFLAGS} die \textit{include}-Pfade und
+unter \textit{LDFLAGS} die Pfade zu den benötigten Bibliotheken abgelegt. \textit{LD\_LIBRARY\_PATH} zeigt auf den
+Ordner in welchem die kompilierten und unter Umständen benötigten, ausführbaren Dateien liegen. \textit{PKG\_CONFIG\_PATH}
+zeigt schliesslich noch auf den Ordner der die Paketinformationen der installierten Dateien beinhaltet. Das exportieren dieser
+Werte geschieht mit dem Aufruf \lstinline{source <Pfad-zu-der-Datei>/mingw32ce.env}.\newline
+%
+%\begin{lstlisting}
+%source <Pfad-zu-der-Datei>/mingw32ce.env
+%\end{lstlisting}
+%
+Nun muss noch ein Ordner angelegt werden, in welchem der \textit{Enlightenment Source-Code} gespeichert werden kann.
+Nach dem Wechseln in diesen besagten Ordner kann mit dem nächsten Schritt fortgefahren werden.
\subsubsection*{Evil}
-Als erstes ist es nötig das Programm \textit{Evil} aus dem \textit{SVN}, welches von den Entwicklern bereit gestellt wurde,
-herunterzuladen.
-Das herunterladen geschieht mit:
-
-\begin{verbatim}
- svn co http://svn.enlightenment.org/svn/e/trunk/evil
-\end{verbatim}
+Als erstes ist es nötig das Programm \textit{Evil} aus dem \textit{SVN}, welches von den Entwicklern bereit gestellt wurde,
+herunterzuladen. Das Herunterladen wird mit \lstinline{svn co http://svn.enlightenment.org/svn/e/trunk/evil}
+ausgeführt.
+%
+%\begin{lstlisting}
+% svn co http://svn.enlightenment.org/svn/e/trunk/evil
+%\end{lstlisting}
+%
Nachdem alle Dateien erfolgreich heruntergeladen wurden muss, falls nicht schon geschen, die Datei mit den
-\textit{Umgebungsvaribalen}
-eingelesen werden. Nachdem dies geschehen ist, kann man nun das Konfigurationsskript starten
-
-\begin{verbatim}
- ./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce
-\end{verbatim}
-
-Durch diesen Aufruf wird der Installationspfad auf den Wert der Variable ``WINCE\_PATH'' gesetzt und als Zielsystem ein
-\textit{ARM-Prozessor} gesetzt und der \textit{mingw32ce}-Kompiler als Kompiler gewählt.\newline
-Nachdem dieses Skript erfolgreich durchgeführt wurde, kann man im nächsten Schritt das Programm erstellen.
-
-\begin{verbatim}
- make
-\end{verbatim}
-
-Ist auch dies erfolgreich durchgelofen, so muss man nun noch in einem letzen Schritt die erstellten Dateien im Zielordner
-installieren.
-
-\begin{verbatim}
- make install
-\end{verbatim}
-
-Nun sollte \textit{Evil} erfolgreich im Zielordner installiert worden sein.
+\textit{Umgebungsvaribalen} exportiert werden. Nachdem dies geschehen ist, kann man nun das Konfigurationsskript mit dem Aufruf
+\lstinline|./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce| starten. \newline
+%
+%\begin{lstlisting}
+ %./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce
+%\end{lstlisting}
+%
+Durch das Ausführen des Skriptes mit den obigen Parametern wird der Installationspfad auf den Wert der Variable
+\textit{WINCE\_PATH} gesetzt, als Zielsystem ein \textit{ARM}-Prozessor gewählt und der \textit{mingw32ce}-Kompiler als Kompiler
+festgelegt.\newline
+Nachdem dieses Skript erfolgreich ausgeführt wurde, kann man im nächsten Schritt das Programm durch ausführen von
+\lstinline{make} erstellen und im Anschluss durch \lstinline{make install} installieren. Nach diesem Schritt sollte \textit{Evil}
+erfolgreich im Zielordner, der in der Variable \textit{WINCE\_PATH} festgelegt wurde, installiert worden sein.
+%
+%\begin{lstlisting}
+ %make
+%\end{lstlisting}
+%
+%Ist auch dies erfolgreich durchgeführt worden muss man nun noch in einem letzen Schritt die erstellten Dateien im Zielordner
+%installieren.
+%
+%\begin{lstlisting}
+ %make install
+%\end{lstlisting}
+%
\subsubsection*{Eina}
-Auch hier ist es auch wieder nötig die Dateien aus dem Entwickler-Repository herunterzuladen.
-
-\begin{verbatim}
- svn co http://svn.enlightenment.org/svn/e/trunk/eina
-\end{verbatim}
-
-Danach wird auch hier wieder das ``autogen.sh'' Skript aufgerufen.
-
-\begin{verbatim}
- ./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce --disable-pthread
-\end{verbatim}
-
-Es werden bei diesem Aufruf die gleichen Parameter wie bei \textit{evil} übergeben. Hinzu kommt noch ``--disable-pthread''. Mit
-diesem
-Parameter wird \textit{threading} beim erstellen von \textit{eina} deaktiviert, da \textit{ARM-Prozessoren} dies nicht
-unterstützen.\newline
-Nachdem das Skript durchgelaufen ist, muss man nun auch wieder das Programm erstellen und im Zielverzeichniss installieren.
-
-\begin{verbatim}
- make ; make install
-\end{verbatim}
-
-\subsubsection*{eet}
-
-Bevor man \textit{eet} erstellen kann, muss man noch vier vorgefertigte \textit{tar-Archive} im Verzeichniss, welches in der
-Variable
-``WINCE\_PATH'' gespeichert wurde, entpacken. Diese Archive kann man unter den Links, welche in Anhang 2 zu finden sind,
+Auch hier ist es auch wieder nötig die Dateien aus dem Entwickler-Repository durch
+\lstinline{svn co http://svn.enlightenment.org/svn/e/trunk/eina} herunterzuladen.
+%
+%\begin{lstlisting}
+ %svn co http://svn.enlightenment.org/svn/e/trunk/eina
+%\end{lstlisting}
+%
+Danach wird auch hier wieder das ``autogen.sh'' Skript durch
+\lstinline|./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce --disable-pthread| Skript aufgerufen. \newline
+%
+%\begin{lstlisting}
+ %./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce --disable-pthread
+%\end{lstlisting}
+%
+Es werden bei diesem Aufruf die gleichen Parameter wie bei \textit{Evil} übergeben. Hinzu kommt noch \textit{--disable-pthread}.
+Mit diesem Parameter wird die Nutzung der \textit{POSIX} Bibliothek \textit{pthread} deaktiviert, da diese auf dem Zielsystem
+nicht unterstützt wird.\newline
+Nachdem das Skript durchgelaufen ist, muss man nun auch wieder das Programm mit \lstinline{make} erstellen und im Zielverzeichniss
+mit \lstinline{make install} installieren.
+
+%\begin{lstlisting}
+ %make ; make install
+%\end{lstlisting}
+
+\subsubsection*{Eet}
+
+Bevor man \textit{Eet} erstellen kann, muss man noch vier vorgefertigte \textit{tar-Archive} im Verzeichniss, welches in der
+Variable ``WINCE\_PATH'' gespeichert wurde, entpacken. Diese Archive kann man unter den Links, welche in Anhang 2 zu finden sind,
+herunterladen. Nach dem Herunterladen müssen diese nur noch in das ``WINCE\_PATH''-Verzeichniss kopiert und entpackt werden. Nun
+kann man den Quellcode für \textit{Eet} durch ausführen von \lstinline{svn co http://svn.enlightenment.org/svn/e/trunk/eet}
herunterladen.
-Nach dem herunterladen müssen diese nur noch in das ``WINCE\_PATH''-Verzeichniss kopiert und entpackt werden. Nun kann man den
-Quellcode
-für \textit{eet} herunterladen.
-
-\begin{verbatim}
- svn co http://svn.enlightenment.org/svn/e/trunk/eet
-\end{verbatim}
-
-Nachdem die Dateien heruntergeladen sind, muss wieder das ``autogen.sh``-Skript aufgerufen werden.
-
-\begin{verbatim}
- ./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce
-\end{verbatim}
-
-Im Anschluss muss nun auch wieder kompiliert und installiert werden.
-
-\begin{verbatim}
- make ; make install
-\end{verbatim}
-
-\subsubsection*{embryo}
-
-\begin{verbatim}
- svn co http://svn.enlightenment.org/svn/e/trunk/embryo
-\end{verbatim}
-
-Nachdem die Dateien heruntergeladen sind auch wieder das Skript aufrufen.
-
-\begin{verbatim}
- ./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce
-\end{verbatim}
-
-Im Anschluss nun auch wieder kompilieren und installieren.
-
-\begin{verbatim}
- make ; make install
-\end{verbatim}
-
-\subsubsection*{evas}
-
-Auch für \textit{evas} müssen mehrere \textit{tar-Archive} heruntergeladen werden (siehe Anhang 3). Auch sollen diese in das
+%
+%\begin{lstlisting}
+% svn co http://svn.enlightenment.org/svn/e/trunk/eet
+%\end{lstlisting}
+Nachdem die Dateien heruntergeladen sind, muss wieder das ``autogen.sh``-Skript durch
+\lstinline|./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce| aufgerufen werden.
+%\begin{lstlisting}
+% ./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce
+%\end{lstlisting}
+%
+Im Anschluss muss nun auch wieder kompiliert mit \lstinline{make} und mit \lstinline{make install} installiert werden.
+%
+%\begin{lstlisting}
+% make ; make install
+%\end{lstlisting}
+
+\subsubsection*{Embryo}
+
+Der Erste Schritt ist auch hier das Herunterladen des Programmcodes unter der Verwendung von
+\lstinline{svn co http://svn.enlightenment.org/svn/e/trunk/embryo}.
+%
+%\begin{lstlisting}
+% svn co http://svn.enlightenment.org/svn/e/trunk/embryo
+% \end{lstlisting}
+%
+Nachdem die Dateien heruntergeladen sind auch wieder mit \lstinline{./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce} das
+Skript aufrufen.
+%
+% \begin{lstlisting}
+% ./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce
+% \end{lstlisting}
+%
+Im Anschluss nun auch wieder kompilieren mit \lstinline{make} und installieren mit \lstinline{make install}.
+%
+%\begin{lstlisting}
+% make ; make install
+%\end{lstlisting}
+
+\subsubsection*{Evas}
+
+Auch für \textit{Evas} müssen mehrere \textit{tar-Archive} heruntergeladen werden (siehe Anhang 3). Auch sollten diese in das
gleiche Verzeichniss, wie die vorhergegangenen Archive, entpackt werden. Nun müssen noch die Dateien, welche die
-Packetinformationen beinhalten für die heruntergeladen Dateien ergänzt werden:
+Paketinformationen beinhalten, um die heruntergeladen Pakete ergänzt werden:
-\begin{verbatim}
- cp $WINCE_PATH/cp libpng-1.2.33-dev/lib/pkgconfig/libpng* $WINCE_PATH/lib/pkgconfig/
+\begin{lstlisting}[breakatwhitespace=true]
+ cp $WINCE_PATH/libpng-1.2.33-dev/lib/pkgconfig/libpng* $WINCE_PATH/lib/pkgconfig/
cp $WINCE_PATH/freetype-2.3.7-dev/lib/pkgconfig/freetype2.pc $WINCE_PATH/lib/freetype2.pc
-\end{verbatim}
+\end{lstlisting}
Nun müssen diese Packetinformationen noch bearbeitet werden. Dazu müssen diese mit einem beliebigen Editor geöffnet werden und in
-beiden
-Dateien der Wert von ''prefix`` auf ''WINCE\_PATH`` gesetzt werden.
-
-Nachdem dies durchgeführt wurde kann nun \textit{evas} heruntergeladen werden.
-
-\begin{verbatim}
- svn co http://svn.enlightenment.org/svn/e/trunk/evas
-\end{verbatim}
-
-Nun muss auch hier, wie bei allen anderen Programmen das ''autogen.sh``-Skript aufgerufen werden.
-
-\begin{verbatim}
- ./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce --disable-async-events
-\end{verbatim}
-
-Als nächster Schritt muss nun das Programm kompiliert werden.
-
-\begin{verbatim}
- make
-\end{verbatim}
-
-Sollte hierbei die Datei ''ft2build.h`` nicht gefunden werden, so muss diese an die richtige Stelle kopiert werden. Eigentlich
-liegt die
-Datei an folgendem Ort:
-
-\begin{verbatim}
- $WINCE_PATH/freetype-2.3.7-dev/include/freetype2/ft2build.h
-\end{verbatim}
-
+beiden Dateien der Wert von ''prefix`` auf ''WINCE\_PATH`` gesetzt werden. Nachdem dies durchgeführt wurde kann nun \textit{Evas}
+durch ausführen von \lstinline{svn co http://svn.enlightenment.org/svn/e/trunk/evas} heruntergeladen werden.
+%
+% \begin{lstlisting}
+% svn co http://svn.enlightenment.org/svn/e/trunk/evas
+% \end{lstlisting}
+%
+Nun muss auch hier, wie bei allen anderen Programmen das ''autogen.sh``-Skript aufgerufen durch
+\lstinline|./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce --disable-async-events| werden.
+%
+% \begin{lstlisting}
+% ./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce --disable-async-events
+% \end{lstlisting}
+%
+Als nächster Schritt muss nun das Programm mit \lstinline{make} kompiliert werden.
+%
+% \begin{lstlisting}
+% make
+% \end{lstlisting}
+%
+Sollte hierbei die Datei ''ft2build.h`` nicht gefunden werden, so muss diese an die richtige Stelle kopiert werden. Ursprünglich
+ist die Datei an folgendem Ort zu finden: \lstinline|$WINCE_PATH/freetype-2.3.7-dev/include/freetype2/ft2build.h|.
+%
+% \begin{lstlisting}
+% $WINCE_PATH/freetype-2.3.7-dev/include/freetype2/ft2build.h
+% \end{lstlisting}
+%
Allerdings wird sie im Ordner ''freetype2`` nicht gefunden. Um dies zu umgehen muss ''ft2build.h`` einfach eine Ordnerebene nach
-oben
-kopiert werden.
-
-\begin{verbatim}
- cp $WINCE_PATH/freetype-2.3.7-dev/include/freetype2/ft2build.h $WINCE_PATH/freetype-2.3.7-dev/include
-\end{verbatim}
-
+oben kopiert werden. Dies geschieht durch den Aufruf von
+\lstinline|cp $WINCE_PATH/freetype-2.3.7-dev/include/freetype2/ft2build.h $WINCE_PATH/freetype-2.3.7-dev/include|. \newline
+%
+%
+% \begin{lstlisting}
+% cp $WINCE_PATH/freetype-2.3.7-dev/include/freetype2/ft2build.h $WINCE_PATH/freetype-2.3.7-dev/include
+% \end{lstlisting}
+%
Um einen weiteren Fehler von vorneherein zu umgehen, muss man noch den Pfad eines eingebundenen Headers in ''ft2build.h``
abändern.
-Hierzu öffnet man ''ft2build.h`` mit einem beliebigen Editor und ändert folgendes
-
-\begin{verbatim}
- #include <freetype/config/ftheader.h>
-\end{verbatim}
-
-zu
-
-\begin{verbatim}
- #include <freetype2/freetype/config/ftheader.h>
-\end{verbatim}
-
-ab. Anschliessend zu dieser Lösung muss nun einfach der ''freetype``-Ordner um eine Ebene nach oben kopieren werden, da die
-\textit{include}-Pfade in den Headern von ''freetype2`` stellenweiße nicht korrekt sind.\newline
+Hierzu öffnet man ''ft2build.h`` mit einem beliebigen Editor und ändert \lstinline{#include <freetype/config/ftheader.h>} zu
+\lstinline{#include <freetype2/freetype/config/ftheader.h>} ab. \newline
+%
+% \begin{lstlisting}
+% % #include <freetype/config/ftheader.h>
+% \end{lstlisting}
+
+% zu
+
+% \begin{lstlisting}
+% #include <freetype2/freetype/config/ftheader.h>
+% \end{lstlisting}
+%
+Anschliessend muss nun auch der ''freetype``-Ordner um eine Ebene nach oben kopieren werden, da die
+\textit{include}-Pfade in den Headern von ''freetype2`` nicht korrekt sind.\newline
Falls man nun noch \textit{evas} mit \textit{DirectX-Support} kompilieren möchte, muss man das \textit{DirectX-SDK} herunterladen
und ''ddraw.h`` in die Verzichnisse ''/opt/cegcc/arm-cegcc/include/w32api/'' und ''/opt/mingw32ce/arm-mingw32ce/include/''
kopieren.
-\subsubsection*{ecore}
+\subsubsection*{Ecore}
-Um \textit{ecore} zu erstellen muss zu allererst eine Änderung im ``winnt.h''-Header vorgenommen werden. Dieser liegt im
+Um \textit{Ecore} zu erstellen muss zu erst eine Änderung im ``winnt.h''-Header vorgenommen werden. Dieser liegt im
\textit{include}-Verzeichniss des \textit{mingw32ce}-Kompilers.
-\begin{verbatim}
+\begin{lstlisting}
#define PROCESS_SET_QUOTA 0x0100
#define PROCESS_SET_INFORMATION 0x0200
#define PROCESS_QUERY_INFORMATION 0x0400
+#define PROCESS_SUSPEND_RESUME 0x0800
- #define PROCESS_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE|0xfff)
+ #define PROCESS_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED|
+ SYNCHRONIZE|0xfff)
#define THREAD_TERMINATE 0x0001
-\end{verbatim}
+\end{lstlisting}
Der mit ``+'' gekennzeichnete Eintrag ``PROCESS\_SUSPEND\_RESUME'' muss in die Datei ``winnt.h'' eingefügt werden.\newline
-Nachdem dieser Schritt ausgeführt wurde kann nun auch \textit{ecore} kompiliert werden. Dazu wird auch hier wieder zuerst das
-``autogen.sh'' Skript ausgeführt.
-
-\begin{verbatim}
- ./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce --disable-pthread
-\end{verbatim}
-
+Nachdem dieser Schritt ausgeführt wurde kann nun auch \textit{Ecore} kompiliert werden. Dazu wird auch hier wieder das
+``autogen.sh'' Skript ausgeführt durch den Aufruf von
+\lstinline|./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce --disable-pthread|. \newline
+%
+% \begin{lstlisting}
+% ./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce --disable-pthread
+% \end{lstlisting}
+%
Nachdem dies erfolgreich ausgeführt wurde können nun auch die gleichen zwei Schritte wie bei den vorhergegangenen Programmen
-ausgeführt werden.
-
-\subsubsection*{edje}
-
-Auch hier gilt wieder, Dateien herunterladen.
-
-\begin{verbatim}
- svn co http://svn.enlightenment.org/svn/e/trunk/embryo
-\end{verbatim}
-
-Nachdem die Dateien heruntergeladen wurden, muss auch hier wieder das Skript aufgerufen werden.
-
-\begin{verbatim}
- ./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce
-\end{verbatim}
-
-Die letzten beiden Schritte sind auch hier wieder kompilieren und installieren.
-
-\begin{verbatim}
- make ; make install
-\end{verbatim}
-
-\subsubsection*{elementary}
-
-Zuerst müssen auch hier die benötigten Daten heruntergeladen werden.
-
-\begin{verbatim}
-svn co http://svn.enlightenment.org/svn/e/trunk/TMP/st/elementary
-\end{verbatim}
-
-Nun muss auch wieder das ``autogen.sh'' Skript heruntergeladen werden.
-
-\begin{verbatim}
- ./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce --with-edje-cc=$WINCE_PATH/bin/edje_cc
-\end{verbatim}
-
-Um zwei Fehlern vorzubeugen, welche beim erstellen der Test-Files von \textit{elementary} auftreten muss man im in der Datei
+ausgeführt werden. Der Kompilierungsvorgang wird durch \lstinline{make} gestartet. Im Anschluss kann mit \lstinline{make install}
+installiert werden.
+
+\subsubsection*{Edje}
+
+Auch hier gilt wieder, Dateien herunterladen durch Aufruf von \lstinline{svn co http://svn.enlightenment.org/svn/e/trunk/embryo}.
+%
+% \begin{lstlisting}
+% svn co http://svn.enlightenment.org/svn/e/trunk/embryo
+% \end{lstlisting}
+%
+Nachdem die Dateien heruntergeladen wurden, muss auch hier wieder das Skript durch
+\lstinline|./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce| aufgerufen werden.
+%
+% \begin{lstlisting}
+% ./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce
+% \end{lstlisting}
+%
+Die letzten beiden Schritte sind auch hier wieder kompilieren und Installation durch \lstinline{make} und
+\lstinline{make install} ausführen.
+
+% \begin{lstlisting}
+% make ; make install
+% \end{lstlisting}
+
+\subsubsection*{Elementary}
+
+Zuerst müssen auch hier die benötigten Daten heruntergeladen werden. Dies geschieht durch den Aufruf von
+\lstinline{svn co http://svn.enlightenment.org/svn/e/trunk/TMP/st/elementary}.
+%
+%
+% \begin{lstlisting}
+% svn co http://svn.enlightenment.org/svn/e/trunk/TMP/st/elementary
+% \end{lstlisting}
+%
+Nun muss auch wieder das ``autogen.sh'' Skript mit
+\lstinline|./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce --with-edje-cc=$WINCE_PATH/bin/edje_cc| gestartet und ausgeführt
+werden.
+%
+% \begin{lstlisting}
+% ./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce
+% --with-edje-cc=$WINCE_PATH/bin/edje_cc
+% \end{lstlisting}
+%
+Um zwei Fehlern vorzubeugen, welche beim Erstellen der Test-Files von \textit{elementary} auftreten, muss man im in der Datei
``Makefile.am'' im Ordner ``src/bin/'' alle Vorkommnisse von ``test\_fileselector.c'' entfernen und folgende Zeilen
-auskommentieren.
+auskommentieren:
-\begin{verbatim}
+\begin{lstlisting}
bin_PROGRAMS = elementary_test
if BUILD_QUICKLAUNCH
bin_PROGRAMS += elementary_quicklaunch elementary_run elementary_testql
endif
-\end{verbatim}
-
-Nun kann das Programm auf gewohnte Art und Weise erstellt und installiert werden.
+\end{lstlisting}
-\begin{verbatim}
- make ; make install
-\end{verbatim}
+Nun kann das Programm auf gewohnte Art und Weise mit \lstinline{make} und \lstinline{make install} erstellt und installiert
+werden.
+%
+% \begin{lstlisting}
+% make ; make install
+% \end{lstlisting}
\subsubsection*{Weitere Schritte}
Im Anschluss an das Erstellen dieser Programme muss nun noch ein Skript in WINCE\_PATH angelegt und dessen Zugriffsrechte
-abgeändert
-werden.
-
-\begin{verbatim}
- touch efl_zip.sh
- chmod 774 efl_zip.sh
-\end{verbatim}
-
-In dieses Skript wird nun der Code eingefügt, welcher unter Anhang 4 zu finden ist.\newline
+abgeändert werden. Das Anlegen des Skriptes erfolgt durch \lstinline{touch efl_zip.sh}. Die Zugriffsrechte werden durch
+\lstinline{chmod 774 efl_zip.sh} abgeändert. \newline
+%
+% \begin{lstlisting}
+% touch efl_zip.sh
+% chmod 774 efl_zip.sh
+% \end{lstlisting}
+%
+In dieses Skript wird nun der Code kopiert, welcher unter Anhang 4 zu finden ist.\newline
Bei Ausführung dieses Skripts werden die vorhandenen \textit{DLL's} nocheinmal komprimiert und alles in einen Ordner mit dem Namen
-``efl'' kopiert. Im Anschluss wird der ganze Ordner noch in einem \textit{Zip-Archiv} komprimiert. Möchte man nun noch eigene
-Anwendungen
-hinzufügen, so muss man diese nur in diesen ``efl'' Ordner hinzufügen und erneut komprimieren. Nun kann dieses Archiv auf das
-Mobile Gerät kopiert und entpackt werden.
+``efl'' kopiert. Im Anschluss wird der ganze Ordner noch in einem \textit{Zip-Archiv} zusammengefast und komprimiert. Möchte man
+nun noch eigene Anwendungen hinzufügen, so muss man diese nur in diesen ``efl'' Ordner hinzufügen und erneut komprimieren. Nun
+kann dieses Archiv auf das Mobile Gerät kopiert und entpackt werden.
\subsection*{Anhang 2}
-Archive für \textit{eet}:
+Archive für \textit{Eet}:
\begin{itemize}
- \item zlib-1.2.3-bin.tar.bz2: \url{http://sourceforge.net/projects/cegcc/files/ported%20packages/zlib-1.2.3/zlib-1.2.3-bin.tar.bz2/download}
- \item zlib-1.2.3-dev.tar.bz2: \url{http://sourceforge.net/projects/cegcc/files/ported%20packages/zlib-1.2.3/zlib-1.2.3-dev.tar.bz2/download}
- \item libjpeg-6b-bin.tar.bz2: \url{http://sourceforge.net/projects/cegcc/files/ported%20packages/libjpeg-6b/libjpeg-6b-bin.tar.bz2/download}
- \item libjepg-6b-dev.tar.bz2: \url{http://sourceforge.net/projects/cegcc/files/ported%20packages/libjpeg-6b/libjpeg-6b-dev.tar.bz2/download}
+ \item zlib-1.2.3-bin.tar.bz2:
+\newline \url{http://sourceforge.net/projects/cegcc/files/ported%20packages/zlib-1.2.3/zlib-1.2.3-bin.tar.bz2/download}
+ \item zlib-1.2.3-dev.tar.bz2:
+\newline \url{http://sourceforge.net/projects/cegcc/files/ported%20packages/zlib-1.2.3/zlib-1.2.3-dev.tar.bz2/download}
+ \item libjpeg-6b-bin.tar.bz2:
+\newline \url{http://sourceforge.net/projects/cegcc/files/ported%20packages/libjpeg-6b/libjpeg-6b-bin.tar.bz2/download}
+ \item libjepg-6b-dev.tar.bz2:
+\newline \url{http://sourceforge.net/projects/cegcc/files/ported%20packages/libjpeg-6b/libjpeg-6b-dev.tar.bz2/download}
\end{itemize}
\subsection*{Anhang 3}
-Archive für \textit{evas}:
+Archive für \textit{Evas}:
\begin{itemize}
- \item freetype-2.3.7-bin.tar.bz2: \url{http://sourceforge.net/projects/cegcc/files/ported%20packages/freetype-2.3.7/freetype-2.3.7-bin.tar.bz2/download}
- \item freetype-2.3.7-dev.tar.bz2: \url{http://sourceforge.net/projects/cegcc/files/ported%20packages/freetype-2.3.7/freetype-2.3.7-dev.tar.bz2/download}
- \item libpng-1.2.33-bin.tar.bz2: \url{http://sourceforge.net/projects/cegcc/files/ported%20packages/libpng-1.2.33/libpng-1.2.33-bin.tar.bz2/download}
- \item libpng-1.2.33-dev.tar.bz2: \url{http://sourceforge.net/projects/cegcc/files/ported%20packages/libpng-1.2.33/libpng-1.2.33-dev.tar.bz2/download}
+ \item freetype-2.3.7-bin.tar.bz2:
+\newline \url{http://sourceforge.net/projects/cegcc/files/ported%20packages/freetype-2.3.7/freetype-2.3.7-bin.tar.bz2/download}
+ \item freetype-2.3.7-dev.tar.bz2:
+\newline \url{http://sourceforge.net/projects/cegcc/files/ported%20packages/freetype-2.3.7/freetype-2.3.7-dev.tar.bz2/download}
+ \item libpng-1.2.33-bin.tar.bz2:
+\newline \url{http://sourceforge.net/projects/cegcc/files/ported%20packages/libpng-1.2.33/libpng-1.2.33-bin.tar.bz2/download}
+ \item libpng-1.2.33-dev.tar.bz2:
+\newline \url{http://sourceforge.net/projects/cegcc/files/ported%20packages/libpng-1.2.33/libpng-1.2.33-dev.tar.bz2/download}
\end{itemize}
\subsection*{Anhang 4}
efl\_zip.sh:
-\begin{verbatim}
+\begin{lstlisting}[breakatwhitespace=false]
#!/bin/sh
rm -rf efl/
@@ -422,29 +446,43 @@ arm-mingw32ce-strip efl/eina/mp/eina_pass_through.dll
cp lib/evas/modules/engines/buffer/mingw32ce-arm/module.dll efl/evas/modules/engines/buffer/mingw32ce-arm/engine_buffer.dll
-cp lib/evas/modules/engines/software_16/mingw32ce-arm/module.dll efl/evas/modules/engines/software_16/mingw32ce-arm/engine_software_16.dll
-cp lib/evas/modules/engines/software_16_wince/mingw32ce-arm/module.dll efl/evas/modules/engines/software_16_wince/mingw32ce-arm/engine_software_16_wince.dll
-cp lib/evas/modules/engines/software_generic/mingw32ce-arm/module.dll efl/evas/modules/engines/software_generic/mingw32ce-arm/engine_software_generic.dll
+
+cp lib/evas/modules/engines/software_16/mingw32ce-arm/module.dll
+efl/evas/modules/engines/software_16/mingw32ce-arm/engine_software_16.dll
+
+cp lib/evas/modules/engines/software_16_wince/mingw32ce-arm/module.dll
+efl/evas/modules/engines/software_16_wince/mingw32ce-arm/engine_software_16_wince.dll
+
+cp lib/evas/modules/engines/software_generic/mingw32ce-arm/module.dll
+efl/evas/modules/engines/software_generic/mingw32ce-arm/engine_software_generic.dll
cp lib/evas/modules/loaders/eet/mingw32ce-arm/module.dll efl/evas/modules/loaders/eet/mingw32ce-arm/loader_eet.dll
+
cp lib/evas/modules/loaders/jpeg/mingw32ce-arm/module.dll efl/evas/modules/loaders/jpeg/mingw32ce-arm/loader_jpeg.dll
+
cp lib/evas/modules/loaders/pmaps/mingw32ce-arm/module.dll efl/evas/modules/loaders/pmaps/mingw32ce-arm/loader_pmaps.dll
+
cp lib/evas/modules/loaders/png/mingw32ce-arm/module.dll efl/evas/modules/loaders/png/mingw32ce-arm/loader_png.dll
+
cp lib/evas/modules/loaders/xpm/mingw32ce-arm/module.dll efl/evas/modules/loaders/xpm/mingw32ce-arm/loader_xpm.dll
cp lib/evas/modules/savers/eet/mingw32ce-arm/module.dll efl/evas/modules/savers/eet/mingw32ce-arm/saver_eet.dll
+
cp lib/evas/modules/savers/png/mingw32ce-arm/module.dll efl/evas/modules/savers/png/mingw32ce-arm/saver_png.dll
-arm-mingw32ce-strip efl/evas/modules/engines/buffer/mingw32ce-arm/engine_buffer.dll
-arm-mingw32ce-strip efl/evas/modules/engines/software_16/mingw32ce-arm/engine_software_16.dll
-arm-mingw32ce-strip efl/evas/modules/engines/software_16_wince/mingw32ce-arm/engine_software_16_wince.dll
-arm-mingw32ce-strip efl/evas/modules/engines/software_generic/mingw32ce-arm/engine_software_generic.dll
+arm-mingw32ce-strip efl/evas/modules/engines/buffer/ mingw32ce-arm/engine_buffer.dll
+
+arm-mingw32ce-strip efl/evas/modules/engines/software_16/ mingw32ce-arm/engine_software_16.dll
+
+arm-mingw32ce-strip efl/evas/modules/engines/ software_16_wince/mingw32ce-arm/engine_software_16_wince.dll
+
+arm-mingw32ce-strip efl/evas/modules/engines/ software_generic/mingw32ce-arm/engine_software_generic.dll
-arm-mingw32ce-strip efl/evas/modules/loaders/eet/mingw32ce-arm/loader_eet.dll
-arm-mingw32ce-strip efl/evas/modules/loaders/jpeg/mingw32ce-arm/loader_jpeg.dll
-arm-mingw32ce-strip efl/evas/modules/loaders/pmaps/mingw32ce-arm/loader_pmaps.dll
-arm-mingw32ce-strip efl/evas/modules/loaders/png/mingw32ce-arm/loader_png.dll
-arm-mingw32ce-strip efl/evas/modules/loaders/xpm/mingw32ce-arm/loader_xpm.dll
+arm-mingw32ce-strip efl/evas/modules/loaders/eet/ mingw32ce-arm/loader_eet.dll
+arm-mingw32ce-strip efl/evas/modules/loaders/jpeg/ mingw32ce-arm/loader_jpeg.dll
+arm-mingw32ce-strip efl/evas/modules/loaders/pmaps/ mingw32ce-arm/loader_pmaps.dll
+arm-mingw32ce-strip efl/evas/modules/loaders/png/ mingw32ce-arm/loader_png.dll
+arm-mingw32ce-strip efl/evas/modules/loaders/xpm/ mingw32ce-arm/loader_xpm.dll
arm-mingw32ce-strip efl/evas/modules/savers/eet/mingw32ce-arm/saver_eet.dll
arm-mingw32ce-strip efl/evas/modules/savers/png/mingw32ce-arm/saver_png.dll
@@ -457,7 +495,7 @@ cp zlib-1.2.3-bin/bin/zlib1.dll efl/
zip -r -9 efl.zip efl/
-\end{verbatim}
+\end{lstlisting}
\end{appendix}
diff --git a/ausarbeitung/Anhang.tex~ b/ausarbeitung/Anhang.tex~
index 83efac2..f1e3477 100644
--- a/ausarbeitung/Anhang.tex~
+++ b/ausarbeitung/Anhang.tex~
@@ -5,12 +5,10 @@
Um die Pakete \textit{Evil, Eina, Eet, Embryo, Evas, Ecore, Edje} und \textit{Elementary} von Ubuntu nach Windows Mobile zu
portieren, sind die folgenden Schritte nötig:
-
-Im allerersten Schritt muss eine aktuelle Version des \textit{CeGCC's} heruntergeladen und installiert werden. Die benötigten
-Dateien können auf der Projekthomepage gefunden und heruntergeladen werden. Für diese Aufgabe wird der \textit{mingw32ce} für den
-\textit{ARM}-Prozessortyp benötigt. Dieser muss auf der Homepage des CeGCC-Projekts heruntergeladen und in das passende
+Zuerst muss eine aktuelle Version des \textit{CeGCC's} heruntergeladen und installiert werden. Die benötigten
+Dateien können auf der Projekthomepage\footnote{http://cegcc.sourceforge.net/} heruntergeladen werden. Für dieses Tutorial wird
+der \textit{mingw32ce} für den \textit{ARM}-Prozessortyp benötigt. Nach dem heruntergeladen muss dieser in das passende
Systemverzeichniss entpackt werden.\newline
-
Bevor man mit dem nächsten Schritt fortfahren kann, müssen noch ein paar benötigte Packete aus dem Ubuntu-Repository installiert
werden.
@@ -22,337 +20,348 @@ libltdl3-dev libcurl4-dev cvs subversion git-core doxygen proj
libsqlite3-0 libsqlite3-dev
\end{lstlisting}
-Nachdem diese Pakete installiert wurden kann man sich nun die einzelnen Packete aus dem \textit{Subversion-Repository} der
-Entwickler herunterladen.\newline
-Nun muss man sich noch ein Verzeichniss anlegen, in welchem die für Windows Mobile kompilierten Dateien abgelegt werden. Des
-weiteren muss noch eine Datei angelegt werden, in welcher die Pfade zu dem genutzten Kompiler liegen und welche dann einmalig
-exportiert werden müssen, damit die benötigten \textit{Header-Files}, textit{Libraries} und \textit{Binaries} auch vom
-Betriebssystem gefunden werden. Diese Datei wird im folgenden ``mingw32ce.env'' benannt.
-
-\begin{verbatim}
- touch mingw32ce.env
-\end{verbatim}
+% Nachdem diese Pakete installiert wurden kann man sich nun die einzelnen Packete aus dem \textit{Subversion-Repository} der
+% Entwickler herunterladen.\newline
+Nun muss man noch ein Verzeichniss angelegt werden, in welchem die für Windows Mobile kompilierten Dateien gespeichert werden
+können. Des weiteren muss noch eine Datei angelegt werden, in welcher die Pfade zun genutzten Kompiler liegen und welche dann
+einmalig exportiert werden müssen, damit die zum portieren benötigten \textit{Header-Files}, \textit{Libraries} und
+\textit{Binaries} auch vom Betriebssystem gefunden werden. Diese Datei wird im folgenden mit \textit{mingw32ce.env} benannt. Das
+Anlegen der Datei geschieht mit dem Befehl \lstinline{touch mingw32ce.env}.
+%
+% \begin{lstlisting}
+% touch mingw32ce.env
+% \end{lstlisting}
+%
+Nun müssen noch folgende Einträge in der Datei \textit{mingw32ce.env} hinzugefügt werden.
-Nun müssen noch in diese Datei die zu exportierenden Pfade geschrieben werden.
-
-\begin{verbatim}
+\begin{lstlisting}
export CEGCC_PATH=/opt/cegcc
export MINGW32CE_PATH=/opt/mingw32ce
export WINCE_PATH=$HOME/workspace/wince
export PATH=$CEGCC_PATH/bin:$MINGW32CE_PATH/bin:$PATH
-export CPPFLAGS="-I$WINCE_PATH/include -I$WINCE_PATH/zlib-1.2.3-dev/ \
- include
- -I$WINCE_PATH/libjpeg-6b-dev/include -I$WINCE_PATH/win_iconv-dev/ \
- include
+export CPPFLAGS="-I$WINCE_PATH/include
+ -I$WINCE_PATH/zlib-1.2.3-dev/include
+ -I$WINCE_PATH/libjpeg-6b-dev/include
+ -I$WINCE_PATH/win_iconv-dev/include
-I$WINCE_PATH/freetype-2.3.7-dev/include
-I$WINCE_PATH/libpng-1.2.33-dev/include/libpng12
- -I$WINCE_PATH/win_iconv-dev/include -I/opt/mingw32ce/arm-mingw32ce/ \
- include/"
-export LDFLAGS="-L$WINCE_PATH/lib -L$WINCE_PATH/zlib-1.2.3-dev/lib
+ -I$WINCE_PATH/win_iconv-dev/include
+ -I/opt/mingw32ce/arm-mingw32ce/include/"
+export LDFLAGS="-L$WINCE_PATH/lib
+ -L$WINCE_PATH/zlib-1.2.3-dev/lib
-L$WINCE_PATH/libjpeg-6b-dev/lib
- -L$WINCE_PATH/win_iconv-dev/include -L$WINCE_PATH/freetype-2.3.7-dev/lib
- -L$WINCE_PATH/libpng-1.2.33-dev/lib -L$WINCE_PATH/win_icon-dev/lib
+ -L$WINCE_PATH/win_iconv-dev/include
+ -L$WINCE_PATH/freetype-2.3.7-dev/lib
+ -L$WINCE_PATH/libpng-1.2.33-dev/lib
+ -L$WINCE_PATH/win_icon-dev/lib
-L$CEGCC_PATH/lib"
export LD_LIBRARY_PATH="$WINCE_PATH/bin"
export PKG_CONFIG_PATH="$WINCE_PATH/lib/pkgconfig"
-\end{verbatim}
-
-Der Inhalt dieser Datei muss nun in jeder neu geöffneten Shell neu exportiert werden, da die Variablen durch die hier gewählte
-Methode nur
-in diesen Shell's existieren, in denen sie exportiert wurden.\newline
-Bei den Variablen ``CEGCC\_PATH'' und ``MINGW32CE\_PATH'' ist der Pfad zum Verzeichniss des \textit{cegcc}, beziehungsweiße des
-\textit{mingw32ce}
-Kompilers einzutragen. Unter ``WINCE\_PATH'' muss der Pfad, zu dem Verzeichniss in dem die kompilierten Daten gespeichert werden
-sollen,
-eingetragen werden. Mit ``PATH'' werden die \textit{Binaries}, der zwei Kompiler, in den Systempfad aufgenommen. Des weiteren
-werden unter
-``CPPFLAGS'' die \textit{include}-Pfade und unter ``LDFLAGS'' die \textit{Librarie} Pfade abgelegt. ``LD\_LIBRARY\_PATH'' zeigt
-auf den Ordner
-in welchem die kompilierten \textit{Binaries} liegen. ``PKG\_CONFIG\_PATH'' zeigt schliesslich noch auf den Ordner der die
-Paketinformationen
-der installierten Dateien beinhaltet. Dieses exportieren geschieht mit dem folgenden Aufruf.
-
-\begin{verbatim}
-source <Pfad-zu-der-Datei>/mingw32ce.env
-\end{verbatim}
-
-Im nächsten Schritt muss nun noch ein Ordner angelegt werden, in welchem der \textit{Enlightenment Source-Code} abgelegt wird. Nun
-muss noch in
-dieses Verzeichniss gewechselt werden und es kann mit dem ersten Programm begonnen werden.
+\end{lstlisting}
-\subsubsection*{Evil}
-Als erstes ist es nötig das Programm \textit{Evil} aus dem \textit{SVN}, welches von den Entwicklern bereit gestellt wurde,
-herunterzuladen.
-Das Herunterladen geschieht mit:
+Der Inhalt dieser Datei muss nun in jeder neu geöffneten \textit{Shell} auf ein neues exportiert werden, da die Variablen durch
+die hier gewählte Methode nur in den \textit{Shells} existieren, in denen sie exportiert wurden.\newline
+Unter den Variablen \textit{CEGCC\_PATH} und \textit{MINGW32CE\_PATH} ist der Pfad zum Verzeichniss des \textit{cegcc},
+beziehungsweiße des \textit{mingw32ce} Kompilers einzutragen. Unter \textit{WINCE\_PATH} muss der Pfad zum Zielverzeichniss, der
+kompilierten Dateien, gespeichert werden. Mit \textit{PATH} werden die \textit{Binaries} des \textit{CeGCC's}, in den
+systemweiten \textit{Binary}-Pfad aufgenommen. Des weiteren werden unter \textit{CPPFLAGS} die \textit{include}-Pfade und
+unter \textit{LDFLAGS} die Pfade zu den benötigten Bibliotheken abgelegt. \textit{LD\_LIBRARY\_PATH} zeigt auf den
+Ordner in welchem die kompilierten und unter Umständen benötigten, ausführbaren Dateien liegen. \textit{PKG\_CONFIG\_PATH}
+zeigt schliesslich noch auf den Ordner der die Paketinformationen der installierten Dateien beinhaltet. Das exportieren dieser
+Werte geschieht mit dem Aufruf \lstinline{source <Pfad-zu-der-Datei>/mingw32ce.env}.\newline
+%
+%\begin{lstlisting}
+%source <Pfad-zu-der-Datei>/mingw32ce.env
+%\end{lstlisting}
+%
+Nun muss noch ein Ordner angelegt werden, in welchem der \textit{Enlightenment Source-Code} gespeichert werden kann.
+Nach dem Wechseln in diesen besagten Ordner kann mit dem nächsten Schritt fortgefahren werden.
-\begin{verbatim}
- svn co http://svn.enlightenment.org/svn/e/trunk/evil
-\end{verbatim}
+\subsubsection*{Evil}
+Als erstes ist es nötig das Programm \textit{Evil} aus dem \textit{SVN}, welches von den Entwicklern bereit gestellt wurde,
+herunterzuladen. Das Herunterladen wird mit \lstinline{svn co http://svn.enlightenment.org/svn/e/trunk/evil}
+ausgeführt.
+%
+%\begin{lstlisting}
+% svn co http://svn.enlightenment.org/svn/e/trunk/evil
+%\end{lstlisting}
+%
Nachdem alle Dateien erfolgreich heruntergeladen wurden muss, falls nicht schon geschen, die Datei mit den
-\textit{Umgebungsvaribalen}
-eingelesen werden. Nachdem dies geschehen ist, kann man nun das Konfigurationsskript starten
-
-\begin{verbatim}
- ./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce
-\end{verbatim}
-
-Durch diesen Aufruf wird der Installationspfad auf den Wert der Variable ``WINCE\_PATH'' gesetzt, als Zielsystem ein
-\textit{ARM-Prozessor} gewählt und der \textit{mingw32ce}-Kompiler als Kompiler gewählt.\newline
-Nachdem dieses Skript erfolgreich durchgeführt wurde, kann man im nächsten Schritt das Programm erstellen.
-
-\begin{verbatim}
- make
-\end{verbatim}
-
-Ist auch dies erfolgreich durchgeführt worden muss man nun noch in einem letzen Schritt die erstellten Dateien im Zielordner
-installieren.
-
-\begin{verbatim}
- make install
-\end{verbatim}
-
-Nun sollte \textit{Evil} erfolgreich im Zielordner installiert worden sein.
+\textit{Umgebungsvaribalen} exportiert werden. Nachdem dies geschehen ist, kann man nun das Konfigurationsskript mit dem Aufruf
+\lstinline|./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce| starten. \newline
+%
+%\begin{lstlisting}
+ %./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce
+%\end{lstlisting}
+%
+Durch das Ausführen des Skriptes mit den obigen Parametern wird der Installationspfad auf den Wert der Variable
+\textit{WINCE\_PATH} gesetzt, als Zielsystem ein \textit{ARM}-Prozessor gewählt und der \textit{mingw32ce}-Kompiler als Kompiler
+festgelegt.\newline
+Nachdem dieses Skript erfolgreich ausgeführt wurde, kann man im nächsten Schritt das Programm durch ausführen von
+\lstinline{make} erstellen und im Anschluss durch \lstinline{make install} installieren. Nach diesem Schritt sollte \textit{Evil}
+erfolgreich im Zielordner, der in der Variable \textit{WINCE\_PATH} festgelegt wurde, installiert worden sein.
+%
+%\begin{lstlisting}
+ %make
+%\end{lstlisting}
+%
+%Ist auch dies erfolgreich durchgeführt worden muss man nun noch in einem letzen Schritt die erstellten Dateien im Zielordner
+%installieren.
+%
+%\begin{lstlisting}
+ %make install
+%\end{lstlisting}
+%
\subsubsection*{Eina}
-Auch hier ist es auch wieder nötig die Dateien aus dem Entwickler-Repository herunterzuladen.
-
-\begin{verbatim}
- svn co http://svn.enlightenment.org/svn/e/trunk/eina
-\end{verbatim}
-
-Danach wird auch hier wieder das ``autogen.sh'' Skript aufgerufen.
-
-\begin{verbatim}
- ./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce --disable-pthread
-\end{verbatim}
-
-Es werden bei diesem Aufruf die gleichen Parameter wie bei \textit{Evil} übergeben. Hinzu kommt noch ``--disable-pthread''. Mit
-diesem
-Parameter wird \textit{threading} beim Erstellen von \textit{Eina} deaktiviert, da \textit{ARM-Prozessoren} dies nicht
-unterstützen.\newline
-Nachdem das Skript durchgelaufen ist, muss man nun auch wieder das Programm erstellen und im Zielverzeichniss installieren.
-
-\begin{verbatim}
- make ; make install
-\end{verbatim}
+Auch hier ist es auch wieder nötig die Dateien aus dem Entwickler-Repository durch
+\lstinline{svn co http://svn.enlightenment.org/svn/e/trunk/eina} herunterzuladen.
+%
+%\begin{lstlisting}
+ %svn co http://svn.enlightenment.org/svn/e/trunk/eina
+%\end{lstlisting}
+%
+Danach wird auch hier wieder das ``autogen.sh'' Skript durch
+\lstinline|./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce --disable-pthread| Skript aufgerufen. \newline
+%
+%\begin{lstlisting}
+ %./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce --disable-pthread
+%\end{lstlisting}
+%
+Es werden bei diesem Aufruf die gleichen Parameter wie bei \textit{Evil} übergeben. Hinzu kommt noch \textit{--disable-pthread}.
+Mit diesem Parameter wird die Nutzung der \textit{POSIX} Bibliothek \textit{pthread} deaktiviert, da diese auf dem Zielsystem
+nicht unterstützt wird.\newline
+Nachdem das Skript ausgeführt wurde, muss nun auch wieder das Programm mit \lstinline{make} erstellt und im Zielverzeichniss
+mit \lstinline{make install} installiert werden.
+
+%\begin{lstlisting}
+ %make ; make install
+%\end{lstlisting}
\subsubsection*{Eet}
-Bevor man \textit{Eet} erstellen kann, muss man noch vier vorgefertigte \textit{tar-Archive} im Verzeichniss, welches in der
-Variable
-``WINCE\_PATH'' gespeichert wurde, entpacken. Diese Archive kann man unter den Links, welche in Anhang 2 zu finden sind,
-herunterladen.
-Nach dem Herunterladen müssen diese nur noch in das ``WINCE\_PATH''-Verzeichniss kopiert und entpackt werden. Nun kann man den
-Quellcode
-für \textit{Eet} herunterladen.
-
-\begin{verbatim}
- svn co http://svn.enlightenment.org/svn/e/trunk/eet
-\end{verbatim}
-
-Nachdem die Dateien heruntergeladen sind, muss wieder das ``autogen.sh``-Skript aufgerufen werden.
-
-\begin{verbatim}
- ./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce
-\end{verbatim}
-
-Im Anschluss muss nun auch wieder kompiliert und installiert werden.
-
-\begin{verbatim}
- make ; make install
-\end{verbatim}
+Bevor man \textit{Eet} erstellen kann, muss man noch vier \textit{tar-Archive} im Verzeichniss, welches in der
+Variable ``WINCE\_PATH'' gespeichert wurde, entpacken. Diese Archive können unter den Links, welche in Anhang 2 zu finden
+sind, heruntergeladen werden. Im Anschluss müssen diese nur noch in das \textit{WINCE\_PATH}-Verzeichniss kopiert und
+entpackt werden. Nun kann der Quellcode für \textit{Eet} durch ausführen von
+\lstinline{svn co http://svn.enlightenment.org/svn/e/trunk/eet} heruntergeladen werden.
+%
+%\begin{lstlisting}
+% svn co http://svn.enlightenment.org/svn/e/trunk/eet
+%\end{lstlisting}
+Nachdem die \textit{Eet} Dateien vorhanden sind, muss wieder das \textit{autogen.sh}-Skript durch
+\lstinline|./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce| aufgerufen und ausgeführt werden.
+%\begin{lstlisting}
+% ./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce
+%\end{lstlisting}
+%
+Im Anschluss muss nun auch wieder mit \lstinline{make} kompiliert und mit \lstinline{make install} installiert werden.
+%
+%\begin{lstlisting}
+% make ; make install
+%\end{lstlisting}
\subsubsection*{Embryo}
-Der Erste Schritt ist auch hier das Herunterladen des Programmcodes.
-
-\begin{verbatim}
- svn co http://svn.enlightenment.org/svn/e/trunk/embryo
-\end{verbatim}
-
-Nachdem die Dateien heruntergeladen sind auch wieder das Skript aufrufen.
-
-\begin{verbatim}
- ./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce
-\end{verbatim}
-
-Im Anschluss nun auch wieder kompilieren und installieren.
-
-\begin{verbatim}
- make ; make install
-\end{verbatim}
+Der Erste Schritt ist auch hier das Herunterladen des Programmcodes unter der Verwendung von
+\lstinline{svn co http://svn.enlightenment.org/svn/e/trunk/embryo}.
+%
+%\begin{lstlisting}
+% svn co http://svn.enlightenment.org/svn/e/trunk/embryo
+% \end{lstlisting}
+%
+Nachdem die Dateien heruntergeladen wurden, durch \lstinline{./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce} das
+\textit{autogen.sh}-Skript aufrufen.
+%
+% \begin{lstlisting}
+% ./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce
+% \end{lstlisting}
+%
+Im Anschluss nun auch wieder kompilieren mit \lstinline{make} und installieren mit \lstinline{make install}.
+%
+%\begin{lstlisting}
+% make ; make install
+%\end{lstlisting}
\subsubsection*{Evas}
-Auch für \textit{Evas} müssen mehrere \textit{tar-Archive} heruntergeladen werden (siehe Anhang 3). Auch sollten diese in das
-gleiche Verzeichniss, wie die vorhergegangenen Archive, entpackt werden. Nun müssen noch die Dateien, welche die
-Paketinformationen beinhalten, um die heruntergeladen Pakete ergänzt werden:
-
-\begin{verbatim}
- cp $WINCE_PATH/cp libpng-1.2.33-dev/lib/pkgconfig/libpng*
- $WINCE_PATH/lib/pkgconfig/
- cp $WINCE_PATH/freetype-2.3.7-dev/lib/pkgconfig/freetype2.pc
- $WINCE_PATH/lib/freetype2.pc
-\end{verbatim}
-
-Nun müssen diese Packetinformationen noch bearbeitet werden. Dazu müssen diese mit einem beliebigen Editor geöffnet werden und in
-beiden
-Dateien der Wert von ''prefix`` auf ''WINCE\_PATH`` gesetzt werden.
-
-Nachdem dies durchgeführt wurde kann nun \textit{Evas} heruntergeladen werden.
-
-\begin{verbatim}
- svn co http://svn.enlightenment.org/svn/e/trunk/evas
-\end{verbatim}
+Auch für \textit{Evas} müssen mehrere \textit{tar-Archive} heruntergeladen werden (siehe Anhang 3). Diese werden in das
+gleiche Verzeichniss, wie die vorhergegangenen Archive, entpackt. Nun müssen noch die Dateien, welche die Paketinformationen
+beinhalten, um die heruntergeladen Pakete ergänzt werden:
-Nun muss auch hier, wie bei allen anderen Programmen das ''autogen.sh``-Skript aufgerufen werden.
-
-\begin{verbatim}
- ./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce
- --disable-async-events
-\end{verbatim}
-
-Als nächster Schritt muss nun das Programm kompiliert werden.
-
-\begin{verbatim}
- make
-\end{verbatim}
-
-Sollte hierbei die Datei ''ft2build.h`` nicht gefunden werden, so muss diese an die richtige Stelle kopiert werden. Eigentlich
-liegt die
-Datei an folgendem Ort:
-
-\begin{verbatim}
- $WINCE_PATH/freetype-2.3.7-dev/include/freetype2/ft2build.h
-\end{verbatim}
-
-Allerdings wird sie im Ordner ''freetype2`` nicht gefunden. Um dies zu umgehen muss ''ft2build.h`` einfach eine Ordnerebene nach
-oben
-kopiert werden.
-
-\begin{verbatim}
- cp $WINCE_PATH/freetype-2.3.7-dev/include/freetype2/ft2build.h $WINCE_PATH/freetype-2.3.7-dev/include
-\end{verbatim}
-
-Um einen weiteren Fehler von vorneherein zu umgehen, muss man noch den Pfad eines eingebundenen Headers in ''ft2build.h``
-abändern.
-Hierzu öffnet man ''ft2build.h`` mit einem beliebigen Editor und ändert folgendes
-
-\begin{verbatim}
- #include <freetype/config/ftheader.h>
-\end{verbatim}
-
-zu
-
-\begin{verbatim}
- #include <freetype2/freetype/config/ftheader.h>
-\end{verbatim}
+\begin{lstlisting}[breakatwhitespace=true]
+ cp $WINCE_PATH/libpng-1.2.33-dev/lib/pkgconfig/libpng* $WINCE_PATH/lib/pkgconfig/
+ cp $WINCE_PATH/freetype-2.3.7-dev/lib/pkgconfig/freetype2.pc $WINCE_PATH/lib/freetype2.pc
+\end{lstlisting}
-ab. Anschliessend muss nun auch der ''freetype``-Ordner um eine Ebene nach oben kopieren werden, da die
-\textit{include}-Pfade in den Headern von ''freetype2`` nicht korrekt sind.\newline
-Falls man nun noch \textit{evas} mit \textit{DirectX-Support} kompilieren möchte, muss man das \textit{DirectX-SDK} herunterladen
-und ''ddraw.h`` in die Verzichnisse ''/opt/cegcc/arm-cegcc/include/w32api/'' und ''/opt/mingw32ce/arm-mingw32ce/include/''
-kopieren.
+Die Packetinformationen müssen noch bearbeitet werden. Dazu werden die zwei Dateien, \textit{freetype2.pc}, \textit{libpng} und
+\textit{libpng12.pc}, mit einem beliebigen Editor geöffnet und in beiden Dateien der Wert der Variable \textit{prefix} auf
+{WINCE\_PATH} gesetzt. Nachdem dies durchgeführt wurde kann nun der Quellcode von \textit{Evas}
+durch ausführen von \lstinline{svn co http://svn.enlightenment.org/svn/e/trunk/evas} heruntergeladen werden.
+%
+% \begin{lstlisting}
+% svn co http://svn.enlightenment.org/svn/e/trunk/evas
+% \end{lstlisting}
+%
+Es muss auch hier, wie bei allen anderen Programmen, das \textit{autogen.sh}-Skript durch
+\lstinline|./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce --disable-async-events| aufgerufen werden.
+%
+% \begin{lstlisting}
+% ./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce --disable-async-events
+% \end{lstlisting}
+%
+Als nächster Schritt muss nun das Programm mit \lstinline{make} kompiliert werden.
+%
+% \begin{lstlisting}
+% make
+% \end{lstlisting}
+%
+Sollte hierbei die Datei \textit{ft2build.h} nicht gefunden werden, so muss diese an die richtige Stelle kopiert werden.
+Ursprünglich liegt diese Datei unter \lstinline|$WINCE_PATH/freetype-2.3.7-dev/include/freetype2/ft2build.h|.
+%
+% \begin{lstlisting}
+% $WINCE_PATH/freetype-2.3.7-dev/include/freetype2/ft2build.h
+% \end{lstlisting}
+%
+Allerdings kann sie in diesem Ordner nicht gefunden werden. Um dies zu umgehen muss \textit{ft2build.h} eine Ordnerebene
+nach oben kopiert werden. Dies geschieht durch den Aufruf von
+\lstinline|cp $WINCE_PATH/freetype-2.3.7-dev/include/freetype2/ft2build.h $WINCE_PATH/freetype-2.3.7-dev/include|. \newline
+%
+%
+% \begin{lstlisting}
+% cp $WINCE_PATH/freetype-2.3.7-dev/include/freetype2/ft2build.h $WINCE_PATH/freetype-2.3.7-dev/include
+% \end{lstlisting}
+%
+Um einen weiteren Fehler von vorneherein zu umgehen, muss noch der Pfad eines eingebundenen Headers in \textit{ft2build.h}
+abgeändert werden.
+Hierzu öffnet man \textit{ft2build.h} mit einem beliebigen Editor und ändert \lstinline{#include <freetype/config/ftheader.h>} zu
+\lstinline{#include <freetype2/freetype/config/ftheader.h>} ab. \newline
+%
+% \begin{lstlisting}
+% % #include <freetype/config/ftheader.h>
+% \end{lstlisting}
+
+% zu
+
+% \begin{lstlisting}
+% #include <freetype2/freetype/config/ftheader.h>
+% \end{lstlisting}
+%
+Anschliessend muss nun auch der \textit{freetype}-Ordner um eine Ebene nach oben kopieren werden, da die
+\textit{include}-Pfade in den Headern von \textit{freetype2} nicht korrekt sind.\newline
+Falls man nun noch \textit{Evas} mit \textit{DirectX-Support} kompilieren möchte, muss man das \textit{DirectX-SDK} herunterladen
+und \textit{ddraw.h} in die Verzichnisse \textit{/opt/cegcc/arm-cegcc/include/w32api/} und
+\textit{/opt/mingw32ce/arm-mingw32ce/include/} kopieren.
\subsubsection*{Ecore}
-Um \textit{Ecore} zu erstellen muss zu erst eine Änderung im ``winnt.h''-Header vorgenommen werden. Dieser liegt im
+Um \textit{Ecore} zu erstellen muss zu erst eine Änderung im \textit{winnt.h}-Header vorgenommen werden. Dieser liegt im
\textit{include}-Verzeichniss des \textit{mingw32ce}-Kompilers.
-\begin{verbatim}
+\begin{lstlisting}
#define PROCESS_SET_QUOTA 0x0100
#define PROCESS_SET_INFORMATION 0x0200
#define PROCESS_QUERY_INFORMATION 0x0400
+#define PROCESS_SUSPEND_RESUME 0x0800
- #define PROCESS_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED| \
+ #define PROCESS_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED|
SYNCHRONIZE|0xfff)
#define THREAD_TERMINATE 0x0001
-\end{verbatim}
-
-Der mit ``+'' gekennzeichnete Eintrag ``PROCESS\_SUSPEND\_RESUME'' muss in die Datei ``winnt.h'' eingefügt werden.\newline
-Nachdem dieser Schritt ausgeführt wurde kann nun auch \textit{Ecore} kompiliert werden. Dazu wird auch hier wieder das
-``autogen.sh'' Skript ausgeführt.
-
-\begin{verbatim}
- ./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce --disable-pthread
-\end{verbatim}
+\end{lstlisting}
-Nachdem dies erfolgreich ausgeführt wurde können nun auch die gleichen zwei Schritte wie bei den vorhergegangenen Programmen
-ausgeführt werden.
+Der mit \textit{+} gekennzeichnete Eintrag \textit{PROCESS\_SUSPEND\_RESUME} muss in die Datei \textit{winnt.h} eingefügt
+werden.\newline
+Nachdem dieser Schritt ausgeführt wurde kann \textit{Ecore} erstellt werden. Dazu wird auch hier wieder das
+\textit{autogen.sh}-Skript durch den Aufruf von
+\lstinline|./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce --disable-pthread| ausgeführt. \newline
+%
+% \begin{lstlisting}
+% ./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce --disable-pthread
+% \end{lstlisting}
+%
+Nachdem das Skript erfolgreich ausgeführt wurde ,können nun auch die gleichen zwei Schritte wie bei den vorhergegangenen
+Programmen ausgeführt werden. Der Kompilierungsvorgang wird durch \lstinline{make} gestartet. Im Anschluss kann mit
+\lstinline{make install} installiert werden.
\subsubsection*{Edje}
-Auch hier gilt wieder, Dateien herunterladen.
-
-\begin{verbatim}
- svn co http://svn.enlightenment.org/svn/e/trunk/embryo
-\end{verbatim}
-
-Nachdem die Dateien heruntergeladen wurden, muss auch hier wieder das Skript aufgerufen werden.
-
-\begin{verbatim}
- ./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce
-\end{verbatim}
-
-Die letzten beiden Schritte sind auch hier wieder kompilieren und installieren.
-
-\begin{verbatim}
- make ; make install
-\end{verbatim}
+Auch hier müssen zuerst die Dateien durch Aufruf von \lstinline{svn co http://svn.enlightenment.org/svn/e/trunk/embryo}
+heruntergeladen werden.
+%
+% \begin{lstlisting}
+% svn co http://svn.enlightenment.org/svn/e/trunk/embryo
+% \end{lstlisting}
+%
+Nachdem die Dateien heruntergeladen wurden, muss auch hier wieder das Skript durch
+\lstinline|./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce| aufgerufen werden.
+%
+% \begin{lstlisting}
+% ./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce
+% \end{lstlisting}
+%
+Die letzten beiden Schritte sind auch hier wieder kompilieren und Installation durch \lstinline{make} und
+\lstinline{make install} ausführen.
+
+% \begin{lstlisting}
+% make ; make install
+% \end{lstlisting}
\subsubsection*{Elementary}
-Zuerst müssen auch hier die benötigten Daten heruntergeladen werden.
-
-\begin{verbatim}
-svn co http://svn.enlightenment.org/svn/e/trunk/TMP/st/elementary
-\end{verbatim}
-
-Nun muss auch wieder das ``autogen.sh'' Skript heruntergeladen werden.
-
-\begin{verbatim}
- ./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce
- --with-edje-cc=$WINCE_PATH/bin/edje_cc
-\end{verbatim}
-
+Zuerst müssen auch hier der Quellcode und benötigte Daten heruntergeladen werden. Dies geschieht durch den Aufruf von
+\lstinline{svn co http://svn.enlightenment.org/svn/e/trunk/TMP/st/elementary}.
+%
+%
+% \begin{lstlisting}
+% svn co http://svn.enlightenment.org/svn/e/trunk/TMP/st/elementary
+% \end{lstlisting}
+%
+Nun muss auch wieder das \textit{autogen.sh}-Skript mit
+\lstinline|./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce --with-edje-cc=$WINCE_PATH/bin/edje_cc| gestartet und ausgeführt
+werden.
+%
+% \begin{lstlisting}
+% ./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce
+% --with-edje-cc=$WINCE_PATH/bin/edje_cc
+% \end{lstlisting}
+%
Um zwei Fehlern vorzubeugen, welche beim Erstellen der Test-Files von \textit{elementary} auftreten, muss man im in der Datei
-``Makefile.am'' im Ordner ``src/bin/'' alle Vorkommnisse von ``test\_fileselector.c'' entfernen und folgende Zeilen
-auskommentieren.
+\textit{Makefile.am} im Ordner \textit{src/bin/} alle Vorkommnisse von \textit{test\_fileselector.c} entfernen und folgende
+Zeilen auskommentiert werden:
-\begin{verbatim}
+\begin{lstlisting}
bin_PROGRAMS = elementary_test
if BUILD_QUICKLAUNCH
bin_PROGRAMS += elementary_quicklaunch elementary_run elementary_testql
endif
-\end{verbatim}
-
-Nun kann das Programm auf gewohnte Art und Weise erstellt und installiert werden.
-
-\begin{verbatim}
- make ; make install
-\end{verbatim}
-
-\subsubsection*{Weitere Schritte}
+\end{lstlisting}
-Im Anschluss an das Erstellen dieser Programme muss nun noch ein Skript in WINCE\_PATH angelegt und dessen Zugriffsrechte
-abgeändert
+Nun kann das Programm auf gewohnte Art und Weise mit \lstinline{make} und \lstinline{make install} erstellt und installiert
werden.
+%
+% \begin{lstlisting}
+% make ; make install
+% \end{lstlisting}
-\begin{verbatim}
- touch efl_zip.sh
- chmod 774 efl_zip.sh
-\end{verbatim}
+\subsubsection*{Weitere Schritte}
-In dieses Skript wird nun der Code eingefügt, welcher unter Anhang 4 zu finden ist.\newline
+Im Anschluss an das Erstellen dieser Programme muss nun noch ein Skript in \textit{WINCE\_PATH} angelegt und dessen Zugriffsrechte
+abgeändert werden. Das Anlegen des Skriptes erfolgt durch \lstinline{touch efl_zip.sh}. Die Zugriffsrechte werden durch
+\lstinline{chmod 774 efl_zip.sh} abgeändert. \newline
+%
+% \begin{lstlisting}
+% touch efl_zip.sh
+% chmod 774 efl_zip.sh
+% \end{lstlisting}
+%
+In dieses Skript wird nun der Code kopiert, welcher unter Anhang 4 zu finden ist.\newline
Bei Ausführung dieses Skripts werden die vorhandenen \textit{DLL's} nocheinmal komprimiert und alles in einen Ordner mit dem Namen
-``efl'' kopiert. Im Anschluss wird der ganze Ordner noch in einem \textit{Zip-Archiv} komprimiert. Möchte man nun noch eigene
-Anwendungen
-hinzufügen, so muss man diese nur in diesen ``efl'' Ordner hinzufügen und erneut komprimieren. Nun kann dieses Archiv auf das
-Mobile Gerät kopiert und entpackt werden.
+\textit{efl} kopiert. Im Anschluss wird der ganze Ordner noch in einem \textit{Zip-Archiv} zusammengefast und komprimiert. Möchte
+man nun noch eigene Anwendungen hinzufügen, so muss man diese nur in diesen \textit{efl} Ordner hinzufügen und erneut
+komprimieren. Nun kann dieses Archiv auf das Mobile Gerät kopiert und entpackt werden.
\subsection*{Anhang 2}
@@ -385,7 +394,7 @@ Archive für \textit{Evas}:
\subsection*{Anhang 4}
efl\_zip.sh:
-\begin{verbatim}
+\begin{lstlisting}[breakatwhitespace=false]
#!/bin/sh
rm -rf efl/
@@ -439,64 +448,44 @@ arm-mingw32ce-strip efl/eina/mp/eina_fixed_bitmap.dll
arm-mingw32ce-strip efl/eina/mp/eina_pass_through.dll
-cp lib/evas/modules/engines/buffer/mingw32ce-arm/module.dll \
-efl/evas/modules/engines/buffer/mingw32ce-arm/engine_buffer.dll
+cp lib/evas/modules/engines/buffer/mingw32ce-arm/module.dll efl/evas/modules/engines/buffer/mingw32ce-arm/engine_buffer.dll
-cp lib/evas/modules/engines/software_16/mingw32ce-arm/module.dll \
-efl/evas/modules/engines/software_16/mingw32ce-arm/\
-engine_software_16.dll
+cp lib/evas/modules/engines/software_16/mingw32ce-arm/module.dll
+efl/evas/modules/engines/software_16/mingw32ce-arm/engine_software_16.dll
-cp lib/evas/modules/engines/software_16_wince/mingw32ce-arm/module.dll \
-efl/evas/modules/engines/software_16_wince/mingw32ce-arm/\
-engine_software_16_wince.dll
+cp lib/evas/modules/engines/software_16_wince/mingw32ce-arm/module.dll
+efl/evas/modules/engines/software_16_wince/mingw32ce-arm/engine_software_16_wince.dll
-cp lib/evas/modules/engines/software_generic/mingw32ce-arm/module.dll \
-efl/evas/modules/engines/software_generic/mingw32ce-arm/\
-engine_software_generic.dll
+cp lib/evas/modules/engines/software_generic/mingw32ce-arm/module.dll
+efl/evas/modules/engines/software_generic/mingw32ce-arm/engine_software_generic.dll
-cp lib/evas/modules/loaders/eet/mingw32ce-arm/module.dll \
-efl/evas/modules/loaders/eet/mingw32ce-arm/loader_eet.dll
+cp lib/evas/modules/loaders/eet/mingw32ce-arm/module.dll efl/evas/modules/loaders/eet/mingw32ce-arm/loader_eet.dll
-cp lib/evas/modules/loaders/jpeg/mingw32ce-arm/module.dll \
-efl/evas/modules/loaders/jpeg/mingw32ce-arm/loader_jpeg.dll
+cp lib/evas/modules/loaders/jpeg/mingw32ce-arm/module.dll efl/evas/modules/loaders/jpeg/mingw32ce-arm/loader_jpeg.dll
-cp lib/evas/modules/loaders/pmaps/mingw32ce-arm/module.dll \
-efl/evas/modules/loaders/pmaps/mingw32ce-arm/loader_pmaps.dll
+cp lib/evas/modules/loaders/pmaps/mingw32ce-arm/module.dll efl/evas/modules/loaders/pmaps/mingw32ce-arm/loader_pmaps.dll
-cp lib/evas/modules/loaders/png/mingw32ce-arm/module.dll \
-efl/evas/modules/loaders/png/mingw32ce-arm/loader_png.dll
+cp lib/evas/modules/loaders/png/mingw32ce-arm/module.dll efl/evas/modules/loaders/png/mingw32ce-arm/loader_png.dll
-cp lib/evas/modules/loaders/xpm/mingw32ce-arm/module.dll \
-efl/evas/modules/loaders/xpm/mingw32ce-arm/loader_xpm.dll
+cp lib/evas/modules/loaders/xpm/mingw32ce-arm/module.dll efl/evas/modules/loaders/xpm/mingw32ce-arm/loader_xpm.dll
-cp lib/evas/modules/savers/eet/mingw32ce-arm/module.dll \
-efl/evas/modules/savers/eet/mingw32ce-arm/saver_eet.dll
+cp lib/evas/modules/savers/eet/mingw32ce-arm/module.dll efl/evas/modules/savers/eet/mingw32ce-arm/saver_eet.dll
-cp lib/evas/modules/savers/png/mingw32ce-arm/module.dll \
-efl/evas/modules/savers/png/mingw32ce-arm/saver_png.dll
+cp lib/evas/modules/savers/png/mingw32ce-arm/module.dll efl/evas/modules/savers/png/mingw32ce-arm/saver_png.dll
-arm-mingw32ce-strip efl/evas/modules/engines/buffer/\
-mingw32ce-arm/engine_buffer.dll
+arm-mingw32ce-strip efl/evas/modules/engines/buffer/ mingw32ce-arm/engine_buffer.dll
-arm-mingw32ce-strip efl/evas/modules/engines/software_16/\
-mingw32ce-arm/engine_software_16.dll
+arm-mingw32ce-strip efl/evas/modules/engines/software_16/ mingw32ce-arm/engine_software_16.dll
-arm-mingw32ce-strip efl/evas/modules/engines/\
-software_16_wince/mingw32ce-arm/engine_software_16_wince.dll
+arm-mingw32ce-strip efl/evas/modules/engines/ software_16_wince/mingw32ce-arm/engine_software_16_wince.dll
-arm-mingw32ce-strip efl/evas/modules/engines/\
-software_generic/mingw32ce-arm/engine_software_generic.dll
+arm-mingw32ce-strip efl/evas/modules/engines/ software_generic/mingw32ce-arm/engine_software_generic.dll
-arm-mingw32ce-strip efl/evas/modules/loaders/eet/\
-mingw32ce-arm/loader_eet.dll
-arm-mingw32ce-strip efl/evas/modules/loaders/jpeg/\
-mingw32ce-arm/loader_jpeg.dll
-arm-mingw32ce-strip efl/evas/modules/loaders/pmaps/\
-mingw32ce-arm/loader_pmaps.dll
-arm-mingw32ce-strip efl/evas/modules/loaders/png/\
-mingw32ce-arm/loader_png.dll
-arm-mingw32ce-strip efl/evas/modules/loaders/xpm/\
-mingw32ce-arm/loader_xpm.dll
+arm-mingw32ce-strip efl/evas/modules/loaders/eet/ mingw32ce-arm/loader_eet.dll
+arm-mingw32ce-strip efl/evas/modules/loaders/jpeg/ mingw32ce-arm/loader_jpeg.dll
+arm-mingw32ce-strip efl/evas/modules/loaders/pmaps/ mingw32ce-arm/loader_pmaps.dll
+arm-mingw32ce-strip efl/evas/modules/loaders/png/ mingw32ce-arm/loader_png.dll
+arm-mingw32ce-strip efl/evas/modules/loaders/xpm/ mingw32ce-arm/loader_xpm.dll
arm-mingw32ce-strip efl/evas/modules/savers/eet/mingw32ce-arm/saver_eet.dll
arm-mingw32ce-strip efl/evas/modules/savers/png/mingw32ce-arm/saver_png.dll
@@ -509,7 +498,7 @@ cp zlib-1.2.3-bin/bin/zlib1.dll efl/
zip -r -9 efl.zip efl/
-\end{verbatim}
+\end{lstlisting}
\end{appendix}
diff --git a/ausarbeitung/Bilder/graph.png b/ausarbeitung/Bilder/graph.png
index 9f0fcd0..1f6cd7c 100644
--- a/ausarbeitung/Bilder/graph.png
+++ b/ausarbeitung/Bilder/graph.png
Binary files differ
diff --git a/ausarbeitung/Bilder/protocol.png b/ausarbeitung/Bilder/protocol.png
new file mode 100644
index 0000000..72c3218
--- /dev/null
+++ b/ausarbeitung/Bilder/protocol.png
Binary files differ
diff --git a/ausarbeitung/Einleitung.aux b/ausarbeitung/Einleitung.aux
index f3dcbce..06e6eca 100644
--- a/ausarbeitung/Einleitung.aux
+++ b/ausarbeitung/Einleitung.aux
@@ -19,9 +19,9 @@
\setcounter{table}{0}
\setcounter{NAT@ctr}{0}
\setcounter{parentequation}{0}
+\setcounter{Item}{0}
\setcounter{lstlisting}{0}
\setcounter{lstnumber}{1}
-\setcounter{Item}{0}
\setcounter{subfigure}{0}
\setcounter{lofdepth}{1}
\setcounter{subtable}{0}
diff --git a/ausarbeitung/Einleitung.tex b/ausarbeitung/Einleitung.tex
index 6acd457..f4f80e6 100644
--- a/ausarbeitung/Einleitung.tex
+++ b/ausarbeitung/Einleitung.tex
@@ -8,15 +8,15 @@ ermitteln oder per \textit{3G}-Standard Daten zu übertragen.\newline
Aus dieser Fülle an Funktionen und den verschiedenen angebotenen Smartphones ergibt sich somit eine immense Menge an möglichen
Anwendungsgebieten. \newline
Auch positionsabhängige Dienste verbreiten sich, dank \textit{GPS}-Funktionen der
-Smartphones, immer weiter. So ist es mit
-bestimmten Programmen zum Beispiel möglich eine zurückgelegte Strecke zu speichern oder den nächsten Supermarkt in der Nähe
-anzuzeigen. Allerdings kann die so entstehende Datenflut auch anderweitig genutzt werden. So können anhand der Orte, an denen
-sich der Anwender befindet, gezielt Werbung platzieren werden, oder die Positionsdaten können über die Zeit gespeichert und
-Bewegungsprofile des Benutzers erstellt werden.\newline
-Anwendungen dieser Art können also einen nützlichen Dienst erbringen, allerdings können die entstehenden Daten auch
-missbraucht werden. Es ist also wichtig das die Positionsinformationen, die der Benutzer bereitstellt, als ein Teil seiner
-Privatsphäre angesehen werden. \newline
+Smartphones, immer weiter. So ist es mit bestimmten Programmen zum Beispiel möglich eine zurückgelegte Strecke zu speichern oder
+den nächsten Supermarkt in der Nähe anzuzeigen. Des weiteren können diese Positionsdaten für soziale Dienste genutzt
+werden, um die Nutzer auch anhand ihrer Position zu vernetzen. Es bieten sich also eine vielzahl an Möglichkeiten an, um
+diese Daten sinnvoll zu nutzen. Allerdings kann die so entstehende Datenflut auch anderweitig genutzt werden. So kann aufgrund der
+Orte, an denen sich der Anwender befindet, gezielt Werbung platzieren werden, oder die Positionsdaten können über die Zeit
+gespeichert und Bewegungsprofile des Benutzers erstellt werden.\newline
+Es ist somit wichtig das die Positionsinformationen, die der Benutzer bereitstellt, als ein Teil seiner Privatsphäre angesehen
+werden. \newline
Das Ziel dieser Arbeit ist die Implementation einer Anwendung für mobile Geräte, welcher es ermöglicht anderen Benutzern die
eigene Position zu senden, sowie deren anzuzeigen. Hierbei soll für den Benutzer möglichst viel Transparenz geboten sein, so dass
-er immer in der Lage ist nachzuvollziehen was mit seinen Daten geschieht. Diese sollen allerdings trotzdem durch Verschlüsselung
+er immer in der Lage ist nachzuvollziehen was mit seinen Daten geschieht. Diese allerdings trotzdem durch Verschlüsselung
soweit geschützt werden, als das der Anwender bestimmen kann für wenn diese einsehbar sind. \ No newline at end of file
diff --git a/ausarbeitung/Einleitung.tex~ b/ausarbeitung/Einleitung.tex~
index a368adf..3889cf6 100644
--- a/ausarbeitung/Einleitung.tex~
+++ b/ausarbeitung/Einleitung.tex~
@@ -8,15 +8,15 @@ ermitteln oder per \textit{3G}-Standard Daten zu übertragen.\newline
Aus dieser Fülle an Funktionen und den verschiedenen angebotenen Smartphones ergibt sich somit eine immense Menge an möglichen
Anwendungsgebieten. \newline
Auch positionsabhängige Dienste verbreiten sich, dank \textit{GPS}-Funktionen der
-Smartphones, immer weiter. So ist es mit
-bestimmten Programmen zum Beispiel möglich eine zurückgelegte Strecke zu speichern oder den nächsten Supermarkt in der Nähe
-anzuzeigen. Allerdings kann die so entstehende Datenflut auch anderweitig genutzt werden. So können anhand der Orte, an denen
-sich der Anwender befindet, gezielt Werbung platzieren werden, oder die Positionsdaten können über die Zeit gespeichert und
-Bewegungsprofile des Benutzers erstellt werden.\newline
-Anwendungen dieser Art können also einen nützlichen Dienst erbringen, allerdings können die entstehenden Daten auch
-missbraucht werden. Es ist also wichtig das die Positionsinformationen, die der Benutzer bereitstellt, als ein Teil seiner
+Smartphones, immer weiter. So ist es mit bestimmten Programmen zum Beispiel möglich eine zurückgelegte Strecke zu speichern oder
+den nächsten Supermarkt in der Nähe anzuzeigen. Des weiteren können diese Positionsdaten für soziale Dienste genutzt
+werden, um die Nutzer auch anhand ihrer Position zu vernetzen. Es bieten sich also eine vielzahl an Möglichkeiten an, um
+diese Daten sinnvoll zu nutzen. Allerdings kann die so entstehende Datenflut auch anderweitig genutzt werden. So kann aufgrund der
+Orte, an denen sich der Anwender befindet, gezielt Werbung platzieren werden, oder die Positionsdaten können über die Zeit
+gespeichert und Bewegungsprofile des Benutzers erstellt werden.\newline
+Es ist also wichtig das die Positionsinformationen, die der Benutzer bereitstellt, als ein Teil seiner
Privatsphäre angesehen werden. \newline
-Das Ziel dieser Arbeit ist die Implementation eines Dienstes, welcher es ermöglicht anderen Benutzern die eigene Position zu
-senden, sowie deren anzuzeigen. Hierbei soll für den Benutzer möglichst viel Transparenz geboten sein, so dass er immer in der
-Lage ist nachzuvollziehen was mit seinen Daten geschieht. Diese sollen allerdings trotzdem durch Verschlüsselung soweit
-geschützt werden, als das der Anwender bestimmen kann für wenn diese einsehbar sind. \ No newline at end of file
+Das Ziel dieser Arbeit ist die Implementation einer Anwendung für mobile Geräte, welcher es ermöglicht anderen Benutzern die
+eigene Position zu senden, sowie deren anzuzeigen. Hierbei soll für den Benutzer möglichst viel Transparenz geboten sein, so dass
+er immer in der Lage ist nachzuvollziehen was mit seinen Daten geschieht. Diese allerdings trotzdem durch Verschlüsselung
+soweit geschützt werden, als das der Anwender bestimmen kann für wenn diese einsehbar sind. \ No newline at end of file
diff --git a/ausarbeitung/Erklaerung.aux b/ausarbeitung/Erklaerung.aux
index 9de6922..db9382f 100644
--- a/ausarbeitung/Erklaerung.aux
+++ b/ausarbeitung/Erklaerung.aux
@@ -18,9 +18,9 @@
\setcounter{table}{0}
\setcounter{NAT@ctr}{0}
\setcounter{parentequation}{0}
+\setcounter{Item}{0}
\setcounter{lstlisting}{0}
\setcounter{lstnumber}{1}
-\setcounter{Item}{0}
\setcounter{subfigure}{0}
\setcounter{lofdepth}{1}
\setcounter{subtable}{0}
diff --git a/ausarbeitung/Fazit.aux b/ausarbeitung/Fazit.aux
index f3d68a1..7927ef0 100644
--- a/ausarbeitung/Fazit.aux
+++ b/ausarbeitung/Fazit.aux
@@ -1,13 +1,13 @@
\relax
-\@writefile{toc}{\contentsline {section}{\numberline {5}Fazit}{21}{section.5}}
+\@writefile{toc}{\contentsline {section}{\numberline {5}Fazit}{22}{section.5}}
\@setckpt{Fazit}{
-\setcounter{page}{22}
+\setcounter{page}{23}
\setcounter{equation}{0}
\setcounter{enumi}{0}
\setcounter{enumii}{0}
\setcounter{enumiii}{0}
\setcounter{enumiv}{0}
-\setcounter{footnote}{23}
+\setcounter{footnote}{22}
\setcounter{mpfootnote}{0}
\setcounter{part}{0}
\setcounter{section}{5}
@@ -15,13 +15,13 @@
\setcounter{subsubsection}{4}
\setcounter{paragraph}{0}
\setcounter{subparagraph}{0}
-\setcounter{figure}{7}
+\setcounter{figure}{9}
\setcounter{table}{0}
\setcounter{NAT@ctr}{0}
\setcounter{parentequation}{0}
+\setcounter{Item}{0}
\setcounter{lstlisting}{0}
\setcounter{lstnumber}{1}
-\setcounter{Item}{0}
\setcounter{subfigure}{0}
\setcounter{lofdepth}{1}
\setcounter{subtable}{0}
diff --git a/ausarbeitung/Fazit.tex b/ausarbeitung/Fazit.tex
index c9e6dd5..6f6bd82 100644
--- a/ausarbeitung/Fazit.tex
+++ b/ausarbeitung/Fazit.tex
@@ -7,6 +7,6 @@ Struktur stets einsehen kann. Des Weiteren kann er, durch Weitergabe der Schlüs
Positionsinformationen erlangen darf. Der Austausch der Schlüssel wurde mit der Methode der 2D-Barcodes so gelößt, dass dieser
spontan und im mobilen Umfeld stattfinden kann, ohne dabei eine langfristige Vorausplanung zu benötigen. \newline
Es wurde aufgezeigt, dass die Implementierung eines solchen Dienstes mit bereits vorhandenen Algorithmen und Bibliotheken
-sinvoll umsetzbar ist. In der Analyse des Datenverkehrs wurde aufgezeigt, dass das \textit{IRC}-Netzwerk beim versenden von Daten
+sinvoll umsetzbar ist. In der Analyse des Datenverkehrs wurde aufgezeigt, dass das \textit{IRC}-Netzwerk beim Versenden von Daten
nur einen geringen Datenoverhead produziert. Des weiteren eignet es sich für die Kommunikation mit mehreren Teilnehmern, da hier
nur eine Verbindung geöffnet werden muss. \ No newline at end of file
diff --git a/ausarbeitung/Fazit.tex~ b/ausarbeitung/Fazit.tex~
index fd15118..6f6bd82 100644
--- a/ausarbeitung/Fazit.tex~
+++ b/ausarbeitung/Fazit.tex~
@@ -7,6 +7,6 @@ Struktur stets einsehen kann. Des Weiteren kann er, durch Weitergabe der Schlüs
Positionsinformationen erlangen darf. Der Austausch der Schlüssel wurde mit der Methode der 2D-Barcodes so gelößt, dass dieser
spontan und im mobilen Umfeld stattfinden kann, ohne dabei eine langfristige Vorausplanung zu benötigen. \newline
Es wurde aufgezeigt, dass die Implementierung eines solchen Dienstes mit bereits vorhandenen Algorithmen und Bibliotheken
-sinvoll umsetzbar ist. In der Analyse des Datenverkehrs wurde aufgezeigt, dass das \textit{IRC}-Netzwerk beim versenden von Daten
-nur einen geringen Datenoverhead produziert. Des weiteren eignet es sich für die Kommunikation mit mehreren Teilnehmern, ohne das
-dabei zusätzliche Verbindungen eröffnet werden müssen. \ No newline at end of file
+sinvoll umsetzbar ist. In der Analyse des Datenverkehrs wurde aufgezeigt, dass das \textit{IRC}-Netzwerk beim Versenden von Daten
+nur einen geringen Datenoverhead produziert. Des weiteren eignet es sich für die Kommunikation mit mehreren Teilnehmern, da hier
+nur eine Verbindung geöffnet werden muss. \ No newline at end of file
diff --git a/ausarbeitung/Friend_Finder.aux b/ausarbeitung/Friend_Finder.aux
index f5d7ead..5fc1206 100644
--- a/ausarbeitung/Friend_Finder.aux
+++ b/ausarbeitung/Friend_Finder.aux
@@ -1,30 +1,40 @@
\relax
\citation{blowfish}
+\citation{Base64}
\@writefile{toc}{\contentsline {section}{\numberline {4}Friend Finder}{13}{section.4}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.1}Verwendete Verfahren und Bibliotheken}{13}{subsection.4.1}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.1.1}Grafisches Benutzeroberfl\IeC {\"a}che}{13}{subsubsection.4.1.1}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.1.2}Versenden der Nachrichten}{13}{subsubsection.4.1.2}}
\@writefile{lof}{\contentsline {figure}{\numberline {3}{\ignorespaces \textit {Friend Finder} Nachrichtenaustausch}}{14}{figure.3}}
-\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.1.3}Versenden der eigenen Position}{14}{subsubsection.4.1.3}}
+\newlabel{ablauf}{{3}{14}{\textit {Friend Finder} Nachrichtenaustausch\relax }{figure.3}{}}
\@writefile{lof}{\contentsline {figure}{\numberline {4}{\ignorespaces Versenden von Chatnachrichten}}{15}{figure.4}}
-\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.1.4}Empfangen von Positionen}{15}{subsubsection.4.1.4}}
-\@writefile{lof}{\contentsline {figure}{\numberline {5}{\ignorespaces Ausgabe einer Benutzerposition}}{16}{figure.5}}
-\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.1.5}Erzeugen eines 2D-Barcodes}{16}{subsubsection.4.1.5}}
-\@writefile{lof}{\contentsline {figure}{\numberline {6}{\ignorespaces 2D-Barcode mit \textit {Friend Finder}}}{17}{figure.6}}
-\@writefile{toc}{\contentsline {subsection}{\numberline {4.2}Analyse}{17}{subsection.4.2}}
-\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.2.1}Allgemeiner Datenverkehr}{18}{subsubsection.4.2.1}}
-\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.2.2}Versenden und Empfangen von Nachrichten}{18}{subsubsection.4.2.2}}
-\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.2.3}Versenden und Empfangen von Positionen}{18}{subsubsection.4.2.3}}
-\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.2.4}Fazit der Auswertung}{19}{subsubsection.4.2.4}}
-\@writefile{lof}{\contentsline {figure}{\numberline {7}{\ignorespaces Vergleich von $n$-Verbindungen und \textit {Friend Finder}}}{20}{figure.7}}
+\newlabel{chat}{{4}{15}{Versenden von Chatnachrichten\relax }{figure.4}{}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.1.3}Versenden der eigenen Position}{15}{subsubsection.4.1.3}}
+\@writefile{lof}{\contentsline {figure}{\numberline {5}{\ignorespaces Versenden von Chatnachrichten}}{16}{figure.5}}
+\newlabel{protocol}{{5}{16}{Versenden von Chatnachrichten\relax }{figure.5}{}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.1.4}Empfangen von Positionen}{16}{subsubsection.4.1.4}}
+\@writefile{lof}{\contentsline {figure}{\numberline {6}{\ignorespaces Ausgabe einer Benutzerposition}}{17}{figure.6}}
+\newlabel{position}{{6}{17}{Ausgabe einer Benutzerposition\relax }{figure.6}{}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.1.5}Erzeugen eines 2D-Barcodes}{17}{subsubsection.4.1.5}}
+\@writefile{lof}{\contentsline {figure}{\numberline {7}{\ignorespaces 2D-Barcode mit \textit {Friend Finder}}}{18}{figure.7}}
+\newlabel{barcode}{{7}{18}{2D-Barcode mit \textit {Friend Finder}\relax }{figure.7}{}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {4.2}Analyse}{18}{subsection.4.2}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.2.1}Allgemeiner Datenverkehr}{19}{subsubsection.4.2.1}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.2.2}Versenden und Empfangen von Nachrichten}{19}{subsubsection.4.2.2}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.2.3}Versenden und Empfangen von Positionen}{19}{subsubsection.4.2.3}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.2.4}Fazit der Auswertung}{20}{subsubsection.4.2.4}}
+\@writefile{lof}{\contentsline {figure}{\numberline {8}{\ignorespaces Vergleich von $n$-Verbindungen und \textit {Friend Finder}}}{21}{figure.8}}
+\newlabel{graph}{{8}{21}{Vergleich von $n$-Verbindungen und \textit {Friend Finder}\relax }{figure.8}{}}
+\@writefile{lof}{\contentsline {figure}{\numberline {9}{\ignorespaces Versandte Daten \IeC {\"u}ber die Zeit von $n$-Verbindungen und \textit {Friend Finder}}}{21}{figure.9}}
+\newlabel{graph2}{{9}{21}{Versandte Daten über die Zeit von $n$-Verbindungen und \textit {Friend Finder}\relax }{figure.9}{}}
\@setckpt{Friend_Finder}{
-\setcounter{page}{21}
+\setcounter{page}{22}
\setcounter{equation}{0}
\setcounter{enumi}{0}
\setcounter{enumii}{0}
\setcounter{enumiii}{0}
\setcounter{enumiv}{0}
-\setcounter{footnote}{23}
+\setcounter{footnote}{22}
\setcounter{mpfootnote}{0}
\setcounter{part}{0}
\setcounter{section}{4}
@@ -32,13 +42,13 @@
\setcounter{subsubsection}{4}
\setcounter{paragraph}{0}
\setcounter{subparagraph}{0}
-\setcounter{figure}{7}
+\setcounter{figure}{9}
\setcounter{table}{0}
\setcounter{NAT@ctr}{0}
\setcounter{parentequation}{0}
+\setcounter{Item}{0}
\setcounter{lstlisting}{0}
\setcounter{lstnumber}{1}
-\setcounter{Item}{0}
\setcounter{subfigure}{0}
\setcounter{lofdepth}{1}
\setcounter{subtable}{0}
diff --git a/ausarbeitung/Friend_Finder.tex b/ausarbeitung/Friend_Finder.tex
index 727ae69..c5a361c 100644
--- a/ausarbeitung/Friend_Finder.tex
+++ b/ausarbeitung/Friend_Finder.tex
@@ -1,6 +1,6 @@
\section{Friend Finder}
-Die beschriebene Software trägt den Namen \textit{Friend Finder} und wurde im Rahmen dieser Arbeit realisiert. Im folgenden wird
+Die beschriebene Software trägt den Namen \textit{Friend Finder} und wurde im Rahmen dieser Arbeit realisiert. Im Folgenden wird
auf die verwendeten Verfahren sowie Bibliotheken, die zur Realisierung notwendig waren, eingegangen und die Programmstruktur
aufgezeigt.
@@ -14,12 +14,17 @@ Neben dem \textit{Graphical User Interface (GUI)} besteht die Software aus drei
Sender} ist für das Versenden und Empfangen der Textnachrichten zuständig, \textit{Sender} sendet die eigene Position,
\textit{Receiver} empfängt die Positionen der anderen Nutzer und sendet Acknowledgements an die teilnehmenden \textit{Sender}.
Alle drei Teile geben ihre empfangenen Daten an die \textit{GUI} weiter, welche sie mit Hilfe von \textit{Enlightenment} ausgibt.
-\textit{Abbildung 3} zeigt den Kommunikationsaustausch von \textit{Friend Finder}.
+Abbildung \ref{ablauf} zeigt den Kommunikationsaustausch von \textit{Friend Finder}. In dieser Graphik sind die Module zweier
+Instanzen von \textit{Friend Finder} abgebildet. Es ist ersichtlicht, dass die Kommunikation für Positionsdaten zwischen
+\textit{Sender} und \textit{Empfänger} stattfindet. Textnachrichten werden zwischen den \textit{Message Sendern} ausgetauscht.
+Des Weiteren geben \textit{Sender}, \textit{Empfänger} und \textit{Message Sender} die entschlüsselten Daten an die \textit{GUI}
+weiter.
\begin{figure}[!ht]
\centering
\includegraphics[width=10cm]{Bilder/ablauf}
\caption{\textit{Friend Finder} Nachrichtenaustausch}
+ \label{ablauf}
\end{figure}
\subsubsection{Grafisches Benutzeroberfläche}
@@ -27,30 +32,34 @@ Alle drei Teile geben ihre empfangenen Daten an die \textit{GUI} weiter, welche
Um die Modularität zu wahren wird der gesammte Programmcode der Benutzeroberfläche in einer Datei zusammengefast. In dieser Datei
sind alle Funktionen enthalten um die Oberflächenelement zu platzieren. Um die gewünschte Funktionalität der einzelnen Elemente zu
realisieren wurden auch die Aufrufe der benötigten Funktionen aus anderen Modulen in dieser Datei implementiert. \newline
-Zur Darstellung der Karte wurden Daten des offenen Kartenprojekts \textit{OpenStreetMap} \footnote{OpenStreetMap
-\url{http://www.openstreetmap.de/}} genutzt.
+Zur Darstellung der Karte wurden Daten des offenen Kartenprojekts \textit{OpenStreetMap}\footnote{OpenStreetMap
+http://www.openstreetmap.de/ [Online; letzter Aufruf 13.02.2010]} genutzt.
\subsubsection{Versenden der Nachrichten}
Der \textit{Message Sender} kümmert sich um das Versenden von Nachrichten. Um das Versenden und Empfangen der Daten zu
-implementieren wurde \textit{libircclient} \footnote{libircclien \url{http://libircclient.sourceforge.net/}} genutzt. Im ersten
+implementieren wurde \textit{libircclient}\footnote{libircclien http://libircclient.sourceforge.net/ [Online; letzter Aufruf
+25.01.2010]} genutzt. Im ersten
Schritt baut dieser eine Verbindung zum \textit{IRC-Server} auf. Um eine Verbindung mit einem \textit{IRC-Server} zu etablieren,
muss eine \textit{IRC-Session} initialisiert werden. Diese \textit{Session} beinhaltet Informationen wie zum Beispiel
den \textit{Nickname} des Benutzers oder die \textit{IP-Adresse} des Servers. Nachdem diese \textit{Session} gestartet wurde,
können nun Nachrichten versandt werden. Textnachrichten müssen vor dem Versenden in Blöcke aufgeteilt werden, da das genutze
Verschlüsselungsverfahren \textit{Blowfish} \citep{blowfish} maximal 64 Bit lange Zeichenkette verschlüsselt. Das verwendete
-Verfahren stammt aus der \textit{OpenSSL}\footnote{OpenSSL \url{http://www.openssl.org/}} Bibliothek. Diese Implementierung wurde
-wurde Aufgrund der schnellen Verschlüsselungsrate sowie einfachen Implementierung gewählt. Da das \textit{IRC}-Protokoll nicht
-alle Zeichen darstellen kann oder als Präfix vor einem Kommando nutzen werden alle versendeten Daten des Programmes in
-die \textit{Base64} \footnote{Base64 RFC 4648} Darstellung umgewandelt.\newline
+Verfahren stammt aus der \textit{OpenSSL}\footnote{OpenSSL http://www.openssl.org/ [Online; letzter Aufruf 25.01.2010]}
+Bibliothek. Diese Implementierung wurde wurde Aufgrund der schnellen Verschlüsselungsrate sowie einfachen
+Implementierungsmöglichkeiten gewählt. Da das \textit{IRC}-Protokoll nicht alle Zeichen darstellen kann oder bestimmte Zeichen als
+Präfixe vor einem Kommando nutzt werden, alle versendeten Daten des Programmes in die \textit{Base64}\citep{Base64} Darstellung
+umgewandelt.\newline
Wird nun von einer anderen Instanz des \textit{Message Senders} eine Nachricht empfangen, so setzt er die Teilstücke zusammen.
Dies geschieht solange, bis ein vom Nachrichtentext getrennt gesendetes Terminierungszeichen empfangen wird. Wurde dieses Zeichen
-empfangen, so gilt die Textnachricht als wiederhergestellt und wird an die Benutzeroberfläche weitergereicht.
+empfangen, so gilt die Textnachricht als wiederhergestellt und wird an die Benutzeroberfläche weitergereicht. \newline
+In Abbildung \ref{chat} ist das die graphische Darstellung eines Nachrichtenaustausches abgebildet.
\begin{figure}[!ht]
\centering
\includegraphics[width=8cm]{Bilder/chat}
\caption{Versenden von Chatnachrichten}
+ \label{chat}
\end{figure}
\subsubsection{Versenden der eigenen Position}
@@ -58,44 +67,61 @@ empfangen, so gilt die Textnachricht als wiederhergestellt und wird an die Benut
Der \textit{Sender} ist zuständig für das Versenden der Positionsdaten. Auch hier muss vor dem Versenden von Daten eine
\textit{IRC-Session} initialisiert werden. Der Ablauf beim Senden der Positionen erfolgt in einer vorgegebenen Reihenfolge. Zuerst
wird der verschlüsselte Längengrad, danach der verschlüsselte Breitengrade gesendet.
-Allerdings muss auch hier, wie beim Versenden der Textnachrichten, darauf geachtet werden dass maximal eine Zeichenkette der
-Länge von 64 Bit verschlüsselt wird. Somit ist es auch hier nötig Längen- und Breitengrad in zwei Teile aufzuteilen und getrennt
-zu versenden. An jedes Ende, dieser insgesamt vier Fragmente, wird ein zusätzlicher, jeweils unterschiedlicher Buchstaben
-angehängt. Da sich diese vier Buchstaben unterscheiden können die Positionsfragmente später identifiziert und eindeutig
-festgestellt werden ob es sich zum Beispiel um den ersten Teil einer \textit{Longtitude}-Koordinate handelt. Somit werden für das
-Versenden von einer Position insgesamt vier Nachrichten an den \textit{IRC}-Server übermittelt.
+Allerdings muss auch hier, wie beim Versenden der Textnachrichten, darauf geachtet werden, dass maximal eine Zeichenkette der
+Länge 64 Bit verschlüsselt wird. Somit ist es auch hier nötig Längen- und Breitengrad in zwei Teile aufzuteilen und getrennt
+zu versenden. An jedes Ende, dieser insgesamt vier Fragmente, wird ein zusätzlicher, jeweils unterschiedlicher Suffix angehängt.
+Da sich diese vier Suffixe unterscheiden, können die Positionsfragmente später eindeutig zugeordnet werden. Beispielsweise hat
+eine \textit{Latitude}-Koordinate den Wert $47.996578$. Dieser Koordinate wird nun in $47.99$ und $6578$ aufgeteilt. Nach dem
+Anhängen der Suffixe werden $47.99a$ und $6578b$ versendet und können anhand der Suffix ``a'' und ``b'' als erster, bzw zweiter
+Teil der \textit{Longtitude}-Koordinate identifiziert und zugeordnet werden. Somit werden für das Versenden von einer
+Position insgesamt vier Nachrichten an den \textit{IRC}-Server übermittelt.
Wurden diese vier Nachrichten übermittelt, so werden solange keine Daten mehr gesendet, bis der \textit{Empfänger} eine
Bestätigung für jedes Fragment an den \textit{IRC-Channel} sendet. Kommt diese Bestätigung beim \textit{Sender} an, so
-versendet dieser wieder ein \textit{Latitude/Longtitude} Paar.
+versendet dieser wieder ein \textit{Latitude/Longtitude} Paar. Abbildung \ref{protocol} zeigt, das Versenden von Positionsdaten
+des \textit{Senders} über einen \textit{IRC-Channel} an den \textit{Empfänger}. Dieser schickt im Anschluss auf gleichem Weg
+\textit{Acknowledgements} an den \textit{Sender}.
-\subsubsection{Empfangen von Positionen}
+\begin{figure}[!ht]
+\centering
+ \includegraphics[width=10cm]{Bilder/protocol}
+ \caption{Versenden von Chatnachrichten}
+ \label{protocol}
+\end{figure}
+
+\subsubsection{Empfangen von Positionen}
Auch beim \textit{Empfänger} muss im ersten Schritt eine \textit{IRC-Session} initialisiert werden. Da mehrere
Benutzer Positionsdaten senden können legt der \textit{Empfänger} für jeden \textit{Sender} einen Datensatz an. Wird nun ein
Fragment der Positionsdaten empfangen, so kann der dies anhanden des Buchstabensuffix zuordnen. Sind alle Fragmente einer
Position empfangen worden, so werden die benötigten Daten zur Visuallisierung weitergereicht und ein \textit{Acknowledgement}
-gesendet. Dieses \textit{Acknowledgement} beinhaltet, verschlüsselter Form, den Namen des \textit{Senders} der Nachricht. Somit
-kann der \textit{Sender} die für ihn bestimmten \textit{Acknowledgements} zuordnen. Die folgende Abbildung zeigt die Darstellung
+gesendet. Dieses \textit{Acknowledgement} beinhaltet, in verschlüsselter Form, den Namen des \textit{Senders} der Nachricht. Somit
+kann der \textit{Sender} die für ihn bestimmten \textit{Acknowledgements} zuordnen. Abbildung \ref{position} zeigt die Darstellung
einer Position eines anderen Benutzers.
\begin{figure}[!ht]
\centering
\includegraphics[width=8cm]{Bilder/position}
\caption{Ausgabe einer Benutzerposition}
+ \label{position}
\end{figure}
\subsubsection{Erzeugen eines 2D-Barcodes}
Um einen 2D-Barcode zu erstellen wird eine Zeichenkette benötigt. Aus dieser werden durch die Nutzung von \textit{qrencode}
-\footnote{libqrencode \url{http://megaui.net/fukuchi/works/qrencode/index.en.html}} Bilddaten generiert. Diese werden im
-nächsten Schritt durch \textit{libpng} \footnote{libpng \url{http://www.libpng.org/}} gerendert und auf das Speichermedium
-geschrieben. Dieses Bild wird dann durch die \textit{GUI} geladen und ausgegeben. Die folgende Abbildung zeigt einen solchen
-erstellten Barcode, wie er von \textit{Friend Finder} ausgegeben wird.
+\footnote{libqrencode http://megaui.net/fukuchi/works/qrencode/index.en.html\newline[Online; letzter Aufruf 11.02.2010]}
+Bilddaten
+generiert. Diese werden im nächsten Schritt durch \textit{libpng}\footnote{libpng http://www.libpng.org/ [Online; letzter
+Aufruf 11.02.2010]} gerendert und auf das Speichermedium geschrieben. Dieses Bild wird dann durch die \textit{GUI} geladen und
+ausgegeben. Die Abbildung \ref{barcode} zeigt einen solchen erstellten Barcode, wie er von \textit{Friend Finder} ausgegeben wird.
+Wenn nun Schlüssel ausgetauscht werden so kann nun ein anderer Nutzer den ausgegebenen Barcode mit der Kamera seines
+Mobiltelefones fotographieren. Im Anschluss kann aus dem auf dem Foto abgebildeten 2D-Barcode, mit Hilfe von \textit{qrencode},
+wieder eine Zeichenkette erstellt und als Schlüssel genutzt werden.
\begin{figure}[!ht]
\centering
\includegraphics[width=8cm]{Bilder/barcode}
\caption{2D-Barcode mit \textit{Friend Finder}}
+ \label{barcode}
\end{figure}
@@ -103,80 +129,91 @@ erstellten Barcode, wie er von \textit{Friend Finder} ausgegeben wird.
\subsection{Analyse}
-Beim versenden der Daten durch \textit{Friend Finder} soll möglichst wenig Datenoverhead produziert und
+Beim Versenden der Daten durch \textit{Friend Finder} soll möglichst wenig Datenoverhead produziert und
versendet werden. Unter Datenoverhead werden Hintergrunddaten gesehen, welche versendet werden um die Verbindung aufrecht zu
-erhalten oder um die Anzahl der verfügbaren Teilnehmer zu überprüfen. \newline
+erhalten oder um die Anzahl der verfügbaren Teilnehmer zu überprüfen, aber nichts mit den eigentlichen Daten zu tun haben.
+\newline
Im folgenden Teil wird der erzeugte Datenverkehr von \textit{Friend Finder} analysiert. Ein Hauptaugenmerkt wird hierbei vor allem
auf die Packetgröße, sowie die Menge der versendeten Datenpakete geworfen. Ein Interessanter Punkt stellt die Frage dar, wie sich
das versendete Datenaufkommen im Vergleich zu einer Lösung verhält, welche die Daten an jeden Teilnehmer einzeln verschickt.
Hier ist besonders von Interesse, ob der Datenoverhead den Vorteil eines \textit{Broadcast}-Mediums wie ein \textit{IRC}-Channel
revidiert oder nicht. \newline
-Der \textit{Traffic} wurde mit Hilfe des Programmes \textit{Wireshark} \footnote {Wireshark \url{http://www.wireshark.org/}}
-untersucht. Wie bereits erwähnt wird zum Versenden der Nachrichten das \textit{IRC}-Protokoll verwendet. In dieser Testumgebung
-wurde die Software \textit{IRCD-Hybrid} \footnote{IRCD \url{http://www.ircd-hybrid.org/}} genutzt. Der Server lief auf dem
-gleichen Computer wie der Client. Der Client hat sich in diesem Szenario über das \textit{localhost} Interface mit dem Server
-verbunden. \newline
+Der \textit{Traffic} wurde mit Hilfe des Programmes \textit{Wireshark}\footnote {Wireshark http://www.wireshark.org/
+[Online; letzter Aufruf 27.01.2010]} untersucht. Wie bereits erwähnt wird zum Versenden der Nachrichten das \textit{IRC}-Protokoll
+verwendet. In dieser Testumgebung wurde die Software \textit{IRCD-Hybrid}\footnote{IRCD http://www.ircd-hybrid.org/
+[Online; letzter Aufruf 27.01.2010]} genutzt. Der Server lief auf dem gleichen Computer wie der Client. Der Client hat sich in
+diesem Szenario über das \textit{localhost} Interface mit dem Server verbunden. \newline
Die Analyse ist in drei Teile aufgeteilt. Als erstes wird auf den allgemein entstehenden Datenverkehr eingegangen, welcher
bei Verbindungsaufbau, sowie bei Beenden der Verbindung entsteht. Der zweite Teil beschäftigt sich mit dem Versenden sowie
Empfangen von Nachrichten. Im letzten Teil dieser Analyse wird der Datenverkehr beim Versenden und Empfangen von Positionen
-genauer betrachtet. Alle folgenden Größen sich nur auf die Größe des Datenfeldes, exklusiv der Header.
+genauer betrachtet. Alle folgenden Größen beziehen sich nur auf die Größe des Datenfeldes, exklusive der Header.
\subsubsection{Allgemeiner Datenverkehr}
Der Allgemeine Hintergrundverkehr bei \textit{Friend Finder} besteht zum Einen aus \textit{Keep-Alive} Nachrichten, sowie der
Anfrage des Clients nach aktiven Nutzern in den \textit{Channels} in denen er selbst aktiv ist. Die \textit{Keep-Alive}
-Nachrichten werden alle 30 Sekunden zwischen Server und Client ausgetauscht. Die Größe des Datenfeldes einer
-solchen Nachricht beträgt also 24 Byte. Das Datenfeld der Pakete welche von Server an Client gesendet werden hat die Größe von 44
+Nachrichten werden alle 30 Sekunden zwischen Server und Client ausgetauscht. Die Größe einer
+solchen Nachricht beträgt 24 Byte. Das Antwortpaket, welches vom Server an den Client gesendet wird, hat die Größe von 44
Byte. \newline
Die Anfragen nach den anderen Benutzern in einem \textit{Channel} werden alle 60 Sekunden versandt. Die Größe der Pakete welche
von Client zu Server gesandt werden, betragen hierbei 10 Bytes. Die Größe der Antwort des Servers hängt von der Anzahl der
aktiven Benutzer innerhalb eines Channels ab. Für zwei Benutzer ergibt sich ein Datenvolumen von 193 Byte, wobei diese
-Größe auch Abhängig von der Länge der Benutzernamen sowie des Namens des\textit{Channels} ist.
+Größe auch Abhängig von der Länge der Benutzernamen sowie des Namens des \textit{Channels} und Servers ist.
\subsubsection{Versenden und Empfangen von Nachrichten}
Um das Versenden von Nachrichten zu evaluieren wurde ``Hello World`` als Testnachricht benutzt. Der \textit{Blockcipher} von
-\textit{Friend Finder} teilt den Satz ''Hello World`` in zwei Teile auf: ''Hello `` und ''World``. Dieses Paket hat ein Datenfeld
-der Größe von 99 Byte.\newline
+\textit{Friend Finder} teilt den Satz ''Hello World`` in zwei Teile auf: ''Hello `` und ''World``. Das resultierende Paket hat
+eine Größe von 99 Byte.\newline
Die versendete Textnachricht hat im unverschlüsselten Format die Größe von elf Byte. Nach der Verschlüsselung werden beim Senden
noch Informationen bezüglich \textit{Channel} und der Empfänger der Nachricht in das zu versendende \textit{IRC}-Paket
-geschrieben. Nach der \textit{Base64}-Kodierung hat sich die Größe der Nachricht circa um den Faktor $9$ vergrößert.\newline
-Wenn $h$ die Größe des \textit{TCP-Headers} und $t$ die Anzahl der Zeichen der unverschlüsselten Nachricht ist, so ergibt sich die
-ungefähre Größe der zu versendenden Nachricht aus: $h + (t \cdot 9)$.
+geschrieben. Nach der \textit{Base64}-Kodierung hat sich die Größe der Nachricht circa um den Faktor neun vergrößert.\newline
+Wenn $h$ die Größe des \textit{TCP-Headers} und $t$ die Anzahl der Zeichen einer unverschlüsselten Nachricht repräsentiert, so
+ergibt sich die ungefähre Größe der zu versendenden Nachricht aus: $h + (t \cdot 9)$.
\subsubsection{Versenden und Empfangen von Positionen}
-Wie schon erwähnt, werden die Positionsdaten beim Sender aufgeteilt und mit vier unterschiedlichen Nachrichten versandt. Wie
-beim Versenden der Textnachrichten werden diese vier Nachrichten auch hier in ein Paket gepackt. Bei der Messung wurden vier
-Verschiedene Pakete, mit jeweils unterschiedlichen versandten Positionen untersucht. Dabei betrug sich die Größe des Datenfeldes
-um die 430 Byte. Die Anzahl der unverschlüsselten Zeichen, die für ein \textit{Latitude}/\textit{Longtitude}-Paar zu
-senden sind, beträgt 21 Zeichen. Jedes Zeichen ist Byte groß, womit sich in der Summe eine Größe von 21 Byte ergibt.
+Wie schon erwähnt, werden die Positionsdaten beim Sender aufgeteilt und mit vier unterschiedlichen Nachrichten versandt. Bei der
+Messung wurden vier Verschiedene Pakete, mit jeweils unterschiedlichen versandten Positionen untersucht. Dabei betrug sich die
+Größe des Datenfeldes im Mittel um die 430 Byte. Die Anzahl der unverschlüsselten Zeichen, die für ein
+\textit{Latitude}/\textit{Longtitude}-Paar zu
+senden sind, beträgt 21 Zeichen. Jedes Zeichen ist 1 Byte groß, womit sich in der Summe eine Größe von 21 Byte ergibt.
Durch die Verschlüsselung, \textit{Base64}-Kodierung sowie Zusatzinformationen vergrößert sich das Datenvolumen also um circa den
-Faktor zwanzig. Wenn $h$ die Größe des \textit{TCP-Headers} und $t$ die Anzahl der Zeichen der unverschlüsselten Nachricht. Somit
-ergibt sich die Größe der versendeten Nachricht circa durch $h + (t \cdot 20)$. Hinzu kommt noch, das für jedes empfangene
-Positions-Fragmeint ein \textit{Acknowledgement} gesendet wird. Die Größe der eines \textit{Acknowledgment} Paketes beträgt
-zwischen 147 und 153
+Faktor zwanzig. Wenn $h$ die Größe des \textit{TCP-Headers} und $t$ die Anzahl der Zeichen der unverschlüsselten Nachricht
+darstellt, ergibt sich die Größe der versendeten Nachricht circa durch $h + (t \cdot 20)$. Hinzu kommt noch, das für jedes
+empfangene Positions-Fragment ein \textit{Acknowledgement} gesendet wird. Die Größe der eines \textit{Acknowledgment} Paketes
+beträgt zwischen 147 und 153
Byte. In einem solchen Paket werden vier Acknowledgments zusammengefasst.\newline
-Folglich kann Folgende Formel für den Datenverkehr pro versendeter Position, bei $n$ Teilnehmern hergeleitet werden:
+Daraus kann Folgende Formel für den Datenverkehr pro versendeter Position, bei $n$ Teilnehmern hergeleitet werden:
$((h + (t \cdot 20)) + (4 \cdot a))\cdot n$, wobei $a$ die Größe eines Acknowledgement-Paketes ist und $n$ die Anzahl der
versandten Pakete repräsentiert.
\subsubsection{Fazit der Auswertung}
Die Hintergrunddaten welche vom \textit{IRC}-Protokoll versandt werden ergeben einen geringen, in Kauf zu nehmenden Datenoverhead.
-Allerdings ist der große Vorteil von \textit{IRC}, dass die \textit{Channels} als \textit{Broadcast}-Medium genutzt werden können.
+Der große Vorteil von \textit{IRC} ist, dass die \textit{Channels} als \textit{Broadcast}-Medium genutzt werden können.
Diese Tatsache macht es möglich, Daten $n$ Teilnehmer zugänglich zu machen und dabei diese nur einmal, über eine aktive
Verbindung, zu senden. Berücksichtigt man dies, so fällt, der ohnehin geringe Datenoverhead, nicht mehr ins Gewicht. Würde man
diese Daten über $n$ getrennte Verbindungen an die Teilnehmer versenden, so müssten ebensoviele Verbindungen geöffnet werden und
die Daten anstelle von einmal, $n$ Mal versandt werden.\newline
-In der folgenden Graphik wird das Versenden der Daten über $n$ getrennte Verbindungen, sowie die in\textit{Friend Finder}
-implementierte Methode verglichen. Es wird angenommen das die versandten Positionsdaten eine Größe von 430 Byte, und ein
-\textit{Acknowledgement} 150 Byte haben. Des weiteren wird angenommen dass alle Nutzer die Daten
+In der folgenden Graphik \ref{graph} wird das Versenden der Daten über $n$ getrennte Verbindungen, sowie die in \textit{Friend
+Finder} implementierte Methode, zu einem beliebigen Zeitpunkt $t$ verglichen. Es wird angenommen das die versandten Positionsdaten
+eine Größe von 430 Byte, und ein \textit{Acknowledgement} 150 Byte haben. Des weiteren wird angenommen dass alle Nutzer die Daten
empfangen auch Positionsdaten senden und somit auch $4 \cdot n$ \textit{Acknowledgements} versandt werden müssen. Daraus ergibt
-sich die Formel $(n \cdot 430) + (n \cdot 4 \cdot 150)$.
+sich die Formel $(n \cdot 430) + (n \cdot 4 \cdot 150)$, welche als Grundlage für die Abbildung \ref{graph} dient. Die Abbildung
+\ref{graph2} zeigt dass Datenaufkommen der zwei verschiedenen Methoden innerhalb eines Zeitraums von 25 Sekunden, gegeben dass die
+Positionsdaten alle drei Sekunden versandt werden.
\begin{figure}[!ht]
\centering
\includegraphics[width=10cm]{Bilder/graph}
\caption{Vergleich von $n$-Verbindungen und \textit{Friend Finder}}
+ \label{graph}
\end{figure}
+
+\begin{figure}[!ht]
+\centering
+ \includegraphics[width=10cm]{Bilder/graph2}
+ \caption{Versandte Daten über die Zeit von $n$-Verbindungen und \textit{Friend Finder}}
+ \label{graph2}
+\end{figure} \ No newline at end of file
diff --git a/ausarbeitung/Friend_Finder.tex.backup b/ausarbeitung/Friend_Finder.tex.backup
index f354280..cfccdc4 100644
--- a/ausarbeitung/Friend_Finder.tex.backup
+++ b/ausarbeitung/Friend_Finder.tex.backup
@@ -1,6 +1,6 @@
\section{Friend Finder}
-Die beschriebene Software trägt den Namen \textit{Friend Finder} und wurde im Rahmen dieser Arbeit realisiert. Im folgenden wird
+Die beschriebene Software trägt den Namen \textit{Friend Finder} und wurde im Rahmen dieser Arbeit realisiert. Im Folgenden wird
auf die verwendeten Verfahren sowie Bibliotheken, die zur Realisierung notwendig waren, eingegangen und die Programmstruktur
aufgezeigt.
@@ -14,12 +14,17 @@ Neben dem \textit{Graphical User Interface (GUI)} besteht die Software aus drei
Sender} ist für das Versenden und Empfangen der Textnachrichten zuständig, \textit{Sender} sendet die eigene Position,
\textit{Receiver} empfängt die Positionen der anderen Nutzer und sendet Acknowledgements an die teilnehmenden \textit{Sender}.
Alle drei Teile geben ihre empfangenen Daten an die \textit{GUI} weiter, welche sie mit Hilfe von \textit{Enlightenment} ausgibt.
-\textit{Abbildung 3} zeigt den Kommunikationsaustausch von \textit{Friend Finder}.
+Abbildung \ref{ablauf} zeigt den Kommunikationsaustausch von \textit{Friend Finder}. In dieser Graphik sind die Module zweier
+Instanzen von \textit{Friend Finder} abgebildet. Es ist ersichtlicht, dass die Kommunikation für Positionsdaten zwischen
+\textit{Sender} und \textit{Empfänger} stattfindet. Textnachrichten werden zwischen den \textit{Message Sendern} ausgetauscht.
+Des Weiteren geben \textit{Sender}, \textit{Empfänger} und \textit{Message Sender} die entschlüsselten Daten an die \textit{GUI}
+weiter.
\begin{figure}[!ht]
\centering
\includegraphics[width=10cm]{Bilder/ablauf}
\caption{\textit{Friend Finder} Nachrichtenaustausch}
+ \label{ablauf}
\end{figure}
\subsubsection{Grafisches Benutzeroberfläche}
@@ -27,30 +32,34 @@ Alle drei Teile geben ihre empfangenen Daten an die \textit{GUI} weiter, welche
Um die Modularität zu wahren wird der gesammte Programmcode der Benutzeroberfläche in einer Datei zusammengefast. In dieser Datei
sind alle Funktionen enthalten um die Oberflächenelement zu platzieren. Um die gewünschte Funktionalität der einzelnen Elemente zu
realisieren wurden auch die Aufrufe der benötigten Funktionen aus anderen Modulen in dieser Datei implementiert. \newline
-Zur Darstellung der Karte wurden Daten des offenen Kartenprojekts \textit{OpenStreetMap} \footnote{OpenStreetMap
-\url{http://www.openstreetmap.de/}} genutzt.
+Zur Darstellung der Karte wurden Daten des offenen Kartenprojekts \textit{OpenStreetMap}\footnote{OpenStreetMap
+\url{http://www.openstreetmap.de/} [Online; letzter Aufruf 13.02.2010]} genutzt.
\subsubsection{Versenden der Nachrichten}
Der \textit{Message Sender} kümmert sich um das Versenden von Nachrichten. Um das Versenden und Empfangen der Daten zu
-implementieren wurde \textit{libircclient} \footnote{libircclien \url{http://libircclient.sourceforge.net/}} genutzt. Im ersten
+implementieren wurde \textit{libircclient}\footnote{libircclien \url{http://libircclient.sourceforge.net/} [Online; letzter Aufruf
+25.01.2010]} genutzt. Im ersten
Schritt baut dieser eine Verbindung zum \textit{IRC-Server} auf. Um eine Verbindung mit einem \textit{IRC-Server} zu etablieren,
muss eine \textit{IRC-Session} initialisiert werden. Diese \textit{Session} beinhaltet Informationen wie zum Beispiel
den \textit{Nickname} des Benutzers oder die \textit{IP-Adresse} des Servers. Nachdem diese \textit{Session} gestartet wurde,
können nun Nachrichten versandt werden. Textnachrichten müssen vor dem Versenden in Blöcke aufgeteilt werden, da das genutze
Verschlüsselungsverfahren \textit{Blowfish} \citep{blowfish} maximal 64 Bit lange Zeichenkette verschlüsselt. Das verwendete
-Verfahren stammt aus der \textit{OpenSSL}\footnote{OpenSSL \url{http://www.openssl.org/}} Bibliothek. Diese Implementierung wurde
-wurde Aufgrund der schnellen Verschlüsselungsrate sowie einfachen Implementierung gewählt. Da das \textit{IRC}-Protokoll nicht
-alle Zeichen darstellen kann oder als Präfix vor einem Kommando nutzen werden alle versendeten Daten des Programmes in
-die \textit{Base64} \footnote{Base64 RFC 4648} Darstellung umgewandelt.\newline
+Verfahren stammt aus der \textit{OpenSSL}\footnote{OpenSSL \url{http://www.openssl.org/} [Online; letzter Aufruf 25.01.2010]}
+Bibliothek. Diese Implementierung wurde wurde Aufgrund der schnellen Verschlüsselungsrate sowie einfachen
+Implementierungsmöglichkeiten gewählt. Da das \textit{IRC}-Protokoll nicht alle Zeichen darstellen kann oder bestimmte Zeichen als
+Präfixe vor einem Kommando nutzt werden, alle versendeten Daten des Programmes in die \textit{Base64}\citep{Base64} Darstellung
+umgewandelt.\newline
Wird nun von einer anderen Instanz des \textit{Message Senders} eine Nachricht empfangen, so setzt er die Teilstücke zusammen.
Dies geschieht solange, bis ein vom Nachrichtentext getrennt gesendetes Terminierungszeichen empfangen wird. Wurde dieses Zeichen
-empfangen, so gilt die Textnachricht als wiederhergestellt und wird an die Benutzeroberfläche weitergereicht.
+empfangen, so gilt die Textnachricht als wiederhergestellt und wird an die Benutzeroberfläche weitergereicht. \newline
+In Abbildung \ref{chat} ist das die graphische Darstellung eines Nachrichtenaustausches abgebildet.
\begin{figure}[!ht]
\centering
\includegraphics[width=8cm]{Bilder/chat}
\caption{Versenden von Chatnachrichten}
+ \label{chat}
\end{figure}
\subsubsection{Versenden der eigenen Position}
@@ -58,37 +67,61 @@ empfangen, so gilt die Textnachricht als wiederhergestellt und wird an die Benut
Der \textit{Sender} ist zuständig für das Versenden der Positionsdaten. Auch hier muss vor dem Versenden von Daten eine
\textit{IRC-Session} initialisiert werden. Der Ablauf beim Senden der Positionen erfolgt in einer vorgegebenen Reihenfolge. Zuerst
wird der verschlüsselte Längengrad, danach der verschlüsselte Breitengrade gesendet.
-Allerdings muss auch hier, wie beim Versenden der Textnachrichten, darauf geachtet werden dass maximal eine Zeichenkette der
-Länge von 64 Bit verschlüsselt wird. Somit ist es auch hier nötig Längen- und Breitengrad in zwei Teile aufzuteilen und getrennt
-zu versenden. An jedes Ende, dieser insgesamt vier Fragmente, wird ein zusätzlicher, jeweils unterschiedlicher Buchstaben
-angehängt. Da sich diese vier Buchstaben unterscheiden können die Positionsfragmente später identifiziert und eindeutig
-festgestellt werden ob es sich zum Beispiel um den ersten Teil einer \textit{Longtitude}-Koordinate handelt. Somit werden für das
-Versenden von einer Position insgesamt vier Nachrichten an den \textit{IRC}-Server übermittelt.
+Allerdings muss auch hier, wie beim Versenden der Textnachrichten, darauf geachtet werden, dass maximal eine Zeichenkette der
+Länge 64 Bit verschlüsselt wird. Somit ist es auch hier nötig Längen- und Breitengrad in zwei Teile aufzuteilen und getrennt
+zu versenden. An jedes Ende, dieser insgesamt vier Fragmente, wird ein zusätzlicher, jeweils unterschiedlicher Suffix angehängt.
+Da sich diese vier Suffixe unterscheiden, können die Positionsfragmente später eindeutig zugeordnet werden. Beispielsweise hat
+eine \textit{Latitude}-Koordinate den Wert $47.996578$. Dieser Koordinate wird nun in $47.99$ und $6578$ aufgeteilt. Nach dem
+Anhängen der Suffixe werden $47.99a$ und $6578b$ versendet und können anhand der Suffix ``a'' und ``b'' als erster, bzw zweiter
+Teil der \textit{Longtitude}-Koordinate identifiziert und zugeordnet werden. Somit werden für das Versenden von einer
+Position insgesamt vier Nachrichten an den \textit{IRC}-Server übermittelt.
Wurden diese vier Nachrichten übermittelt, so werden solange keine Daten mehr gesendet, bis der \textit{Empfänger} eine
Bestätigung für jedes Fragment an den \textit{IRC-Channel} sendet. Kommt diese Bestätigung beim \textit{Sender} an, so
-versendet dieser wieder ein \textit{Latitude/Longtitude} Paar.
+versendet dieser wieder ein \textit{Latitude/Longtitude} Paar. Abbildung \ref{protocol} zeigt, das Versenden von Positionsdaten
+des \textit{Senders} über einen \textit{IRC-Channel} an den \textit{Empfänger}. Dieser schickt im Anschluss auf gleichem Weg
+\textit{Acknowledgements} an den \textit{Sender}.
-\subsubsection{Empfangen von Positionen}
+\begin{figure}[!ht]
+\centering
+ \includegraphics[width=10cm]{Bilder/protocol}
+ \caption{Versenden von Chatnachrichten}
+ \label{protocol}
+\end{figure}
+
+\subsubsection{Empfangen von Positionen}
Auch beim \textit{Empfänger} muss im ersten Schritt eine \textit{IRC-Session} initialisiert werden. Da mehrere
Benutzer Positionsdaten senden können legt der \textit{Empfänger} für jeden \textit{Sender} einen Datensatz an. Wird nun ein
Fragment der Positionsdaten empfangen, so kann der dies anhanden des Buchstabensuffix zuordnen. Sind alle Fragmente einer
Position empfangen worden, so werden die benötigten Daten zur Visuallisierung weitergereicht und ein \textit{Acknowledgement}
-gesendet. Dieses \textit{Acknowledgement} beinhaltet, verschlüsselter Form, den Namen des \textit{Senders} der Nachricht. Somit
-kann der \textit{Sender} die für ihn bestimmten \textit{Acknowledgements} zuordnen.
+gesendet. Dieses \textit{Acknowledgement} beinhaltet, in verschlüsselter Form, den Namen des \textit{Senders} der Nachricht. Somit
+kann der \textit{Sender} die für ihn bestimmten \textit{Acknowledgements} zuordnen. Abbildung \ref{position} zeigt die Darstellung
+einer Position eines anderen Benutzers.
+
+\begin{figure}[!ht]
+\centering
+ \includegraphics[width=8cm]{Bilder/position}
+ \caption{Ausgabe einer Benutzerposition}
+ \label{position}
+\end{figure}
\subsubsection{Erzeugen eines 2D-Barcodes}
Um einen 2D-Barcode zu erstellen wird eine Zeichenkette benötigt. Aus dieser werden durch die Nutzung von \textit{qrencode}
-\footnote{libqrencode \url{http://megaui.net/fukuchi/works/qrencode/index.en.html}} Bilddaten generiert. Diese werden im
-nächsten Schritt durch \textit{libpng} \footnote{libpng \url{http://www.libpng.org/}} gerendert und auf das Speichermedium
-geschrieben. Dieses Bild wird dann durch die \textit{GUI} geladen und ausgegeben. Die folgende Abbildung zeigt einen solchen
-erstellten Barcode, wie er von \textit{Friend Finder} ausgegeben wird.
+\footnote{libqrencode \url{http://megaui.net/fukuchi/works/qrencode/index.en.html}\newline[Online; letzter Aufruf 11.02.2010]}
+Bilddaten
+generiert. Diese werden im nächsten Schritt durch \textit{libpng}\footnote{libpng \url{http://www.libpng.org/} [Online; letzter
+Aufruf 11.02.2010]} gerendert und auf das Speichermedium geschrieben. Dieses Bild wird dann durch die \textit{GUI} geladen und
+ausgegeben. Die Abbildung \ref{barcode} zeigt einen solchen erstellten Barcode, wie er von \textit{Friend Finder} ausgegeben wird.
+Wenn nun Schlüssel ausgetauscht werden so kann nun ein anderer Nutzer den ausgegebenen Barcode mit der Kamera seines
+Mobiltelefones fotographieren. Im Anschluss kann aus dem auf dem Foto abgebildeten 2D-Barcode, mit Hilfe von \textit{qrencode},
+wieder eine Zeichenkette erstellt und als Schlüssel genutzt werden.
\begin{figure}[!ht]
\centering
\includegraphics[width=8cm]{Bilder/barcode}
\caption{2D-Barcode mit \textit{Friend Finder}}
+ \label{barcode}
\end{figure}
@@ -96,82 +129,82 @@ erstellten Barcode, wie er von \textit{Friend Finder} ausgegeben wird.
\subsection{Analyse}
-Beim versenden der Daten durch \textit{Friend Finder} soll möglichst wenig Datenoverhead produziert und
+Beim Versenden der Daten durch \textit{Friend Finder} soll möglichst wenig Datenoverhead produziert und
versendet werden. Unter Datenoverhead werden Hintergrunddaten gesehen, welche versendet werden um die Verbindung aufrecht zu
-erhalten oder um die Anzahl der verfügbaren Teilnehmer zu überprüfen. \newline
+erhalten oder um die Anzahl der verfügbaren Teilnehmer zu überprüfen, aber nichts mit den eigentlichen Daten zu tun haben.
+\newline
Im folgenden Teil wird der erzeugte Datenverkehr von \textit{Friend Finder} analysiert. Ein Hauptaugenmerkt wird hierbei vor allem
auf die Packetgröße, sowie die Menge der versendeten Datenpakete geworfen. Ein Interessanter Punkt stellt die Frage dar, wie sich
-das versendete Datenaufkommen im Vergleich zu einem Programm verhält, welches die Daten an jeden Teilnehmer einzeln verschickt.
+das versendete Datenaufkommen im Vergleich zu einer Lösung verhält, welche die Daten an jeden Teilnehmer einzeln verschickt.
Hier ist besonders von Interesse, ob der Datenoverhead den Vorteil eines \textit{Broadcast}-Mediums wie ein \textit{IRC}-Channel
revidiert oder nicht. \newline
-Der \textit{Traffic} wurde mit Hilfe des Programmes \textit{Wireshark} \footnote {Wireshark \url{http://www.wireshark.org/}}
-untersucht. Wie bereits erwähnt wird zum Versenden der Nachrichten das \textit{IRC}-Protokoll verwendet. In dieser Testumgebung
-wurde die Software \textit{IRCD-Hybrid} \footnote{IRCD \url{http://www.ircd-hybrid.org/}} genutzt. Der Server lief auf dem
-gleichen Computer wie der Client. Der Client hat sich in diesem Szenario über das \textit{localhost} Interface mit dem Server
-verbunden. \newline
+Der \textit{Traffic} wurde mit Hilfe des Programmes \textit{Wireshark}\footnote {Wireshark \url{http://www.wireshark.org/}
+[Online; letzter Aufruf 27.01.2010]} untersucht. Wie bereits erwähnt wird zum Versenden der Nachrichten das \textit{IRC}-Protokoll
+verwendet. In dieser Testumgebung wurde die Software \textit{IRCD-Hybrid}\footnote{IRCD \url{http://www.ircd-hybrid.org/}
+[Online; letzter Aufruf 27.01.2010]} genutzt. Der Server lief auf dem gleichen Computer wie der Client. Der Client hat sich in
+diesem Szenario über das \textit{localhost} Interface mit dem Server verbunden. \newline
Die Analyse ist in drei Teile aufgeteilt. Als erstes wird auf den allgemein entstehenden Datenverkehr eingegangen, welcher
bei Verbindungsaufbau, sowie bei Beenden der Verbindung entsteht. Der zweite Teil beschäftigt sich mit dem Versenden sowie
Empfangen von Nachrichten. Im letzten Teil dieser Analyse wird der Datenverkehr beim Versenden und Empfangen von Positionen
-genauer betrachtet. Alle folgenden Größen sich nur auf die Größe des Datenfeldes, exklusiv der Header.
+genauer betrachtet. Alle folgenden Größen beziehen sich nur auf die Größe des Datenfeldes, exklusive der Header.
\subsubsection{Allgemeiner Datenverkehr}
Der Allgemeine Hintergrundverkehr bei \textit{Friend Finder} besteht zum Einen aus \textit{Keep-Alive} Nachrichten, sowie der
Anfrage des Clients nach aktiven Nutzern in den \textit{Channels} in denen er selbst aktiv ist. Die \textit{Keep-Alive}
-Nachrichten werden alle 30 Sekunden zwischen Server und Client ausgetauscht. Die Größe des Datenfeldes einer
-solchen Nachricht beträgt also 24 Byte. Das Datenfeld der Pakete welche von Server an Client gesendet werden hat die Größe von 44
+Nachrichten werden alle 30 Sekunden zwischen Server und Client ausgetauscht. Die Größe einer
+solchen Nachricht beträgt 24 Byte. Das Antwortpaket, welches vom Server an den Client gesendet wird, hat die Größe von 44
Byte. \newline
Die Anfragen nach den anderen Benutzern in einem \textit{Channel} werden alle 60 Sekunden versandt. Die Größe der Pakete welche
von Client zu Server gesandt werden, betragen hierbei 10 Bytes. Die Größe der Antwort des Servers hängt von der Anzahl der
aktiven Benutzer innerhalb eines Channels ab. Für zwei Benutzer ergibt sich ein Datenvolumen von 193 Byte, wobei diese
-Größe auch Abhängig von der Länge der Benutzernamen sowie des Namens des\textit{Channels} ist.
+Größe auch Abhängig von der Länge der Benutzernamen sowie des Namens des \textit{Channels} und Servers ist.
\subsubsection{Versenden und Empfangen von Nachrichten}
Um das Versenden von Nachrichten zu evaluieren wurde ``Hello World`` als Testnachricht benutzt. Der \textit{Blockcipher} von
-\textit{Friend Finder} teilt den Satz ''Hello World`` in zwei Teile auf: ''Hello `` und ''World``. Dieses Paket hat ein Datenfeld
-der Größe von 99 Byte.\newline
+\textit{Friend Finder} teilt den Satz ''Hello World`` in zwei Teile auf: ''Hello `` und ''World``. Das resultierende Paket hat
+eine Größe von 99 Byte.\newline
Die versendete Textnachricht hat im unverschlüsselten Format die Größe von elf Byte. Nach der Verschlüsselung werden beim Senden
noch Informationen bezüglich \textit{Channel} und der Empfänger der Nachricht in das zu versendende \textit{IRC}-Paket
-geschrieben. Nach der \textit{Base64}-Kodierung hat sich die Größe der Nachricht circa um den Faktor $9$ vergrößert.\newline
-Wenn $h$ die Größe des \textit{TCP-Headers} und $t$ die Anzahl der Zeichen der unverschlüsselten Nachricht ist, so ergibt sich die
-ungefähre Größe der zu versendenden Nachricht aus: $h + (t \cdot 9)$.
+geschrieben. Nach der \textit{Base64}-Kodierung hat sich die Größe der Nachricht circa um den Faktor neun vergrößert.\newline
+Wenn $h$ die Größe des \textit{TCP-Headers} und $t$ die Anzahl der Zeichen einer unverschlüsselten Nachricht repräsentiert, so
+ergibt sich die ungefähre Größe der zu versendenden Nachricht aus: $h + (t \cdot 9)$.
\subsubsection{Versenden und Empfangen von Positionen}
-Wie schon erwähnt, werden die Positionsdaten beim Sender aufgeteilt und mit vier unterschiedlichen Nachrichten versandt. Wie
-beim Versenden der Textnachrichten werden diese vier Nachrichten auch hier in ein Paket gepackt. Bei der Messung wurden vier
-Verschiedene Pakete, mit jeweils unterschiedlichen versandten Positionen untersucht. Dabei betrug sich die Größe des Datenfeldes
-um die 430 Byte. Die Anzahl der unverschlüsselten Zeichen, die für ein \textit{Latitude}/\textit{Longtitude}-Paar zu
-senden sind, beträgt 21 Zeichen. Jedes Zeichen ist Byte groß, womit sich in der Summe eine Größe von 21 Byte ergibt.
+Wie schon erwähnt, werden die Positionsdaten beim Sender aufgeteilt und mit vier unterschiedlichen Nachrichten versandt. Bei der
+Messung wurden vier Verschiedene Pakete, mit jeweils unterschiedlichen versandten Positionen untersucht. Dabei betrug sich die
+Größe des Datenfeldes im Mittel um die 430 Byte. Die Anzahl der unverschlüsselten Zeichen, die für ein
+\textit{Latitude}/\textit{Longtitude}-Paar zu
+senden sind, beträgt 21 Zeichen. Jedes Zeichen ist 1 Byte groß, womit sich in der Summe eine Größe von 21 Byte ergibt.
Durch die Verschlüsselung, \textit{Base64}-Kodierung sowie Zusatzinformationen vergrößert sich das Datenvolumen also um circa den
-Faktor zwanzig. Wenn $h$ die Größe des \textit{TCP-Headers} und $t$ die Anzahl der Zeichen der unverschlüsselten Nachricht. Somit
-ergibt sich die Größe der versendeten Nachricht circa durch $h + (t \cdot 20)$. Hinzu kommt noch, das für jedes empfangene
-Positions-Fragmeint ein \textit{Acknowledgement} gesendet wird. Die Größe der eines \textit{Acknowledgment} Paketes beträgt
-zwischen 147 und 153
+Faktor zwanzig. Wenn $h$ die Größe des \textit{TCP-Headers} und $t$ die Anzahl der Zeichen der unverschlüsselten Nachricht
+darstellt, ergibt sich die Größe der versendeten Nachricht circa durch $h + (t \cdot 20)$. Hinzu kommt noch, das für jedes
+empfangene Positions-Fragment ein \textit{Acknowledgement} gesendet wird. Die Größe der eines \textit{Acknowledgment} Paketes
+beträgt zwischen 147 und 153
Byte. In einem solchen Paket werden vier Acknowledgments zusammengefasst.\newline
-Folglich kann Folgende Formel für den Datenverkehr pro versendeter Position, bei $n$ Teilnehmern hergeleitet werden:
+Daraus kann Folgende Formel für den Datenverkehr pro versendeter Position, bei $n$ Teilnehmern hergeleitet werden:
$((h + (t \cdot 20)) + (4 \cdot a))\cdot n$, wobei $a$ die Größe eines Acknowledgement-Paketes ist und $n$ die Anzahl der
versandten Pakete repräsentiert.
\subsubsection{Fazit der Auswertung}
Die Hintergrunddaten welche vom \textit{IRC}-Protokoll versandt werden ergeben einen geringen, in Kauf zu nehmenden Datenoverhead.
-Zu beobachten ist, dass das Datenvolumen der Versendeten Daten, sowohl bei Positionsdaten als auch bei Textnachrichten, durch die
-Verschlüsselung und die anschliessende Konvertierung in die \textit{Base64}-Darstellung zunimmt. Allerdings ist der große Vorteil
-von \textit{IRC}, dass die \textit{Channels} als \textit{Broadcast}-Medium genutzt werden. Diese Tatsache macht es möglich, Daten
-an $n$ Teilnehmer zu versenden und dabei die Daten nur einmal, über eine aktive Verbindung, zu senden. Berücksichtigt man dies,
-so fällt, der ohnehin geringe Datenoverhead, nicht mehr ins Gewicht. Würde man diese Daten über $n$ getrennte Verbindungen an die
-Teilnehmer versenden, so müssten ebensoviele Verbindungen geöffnet werden und die Daten anstelle von einmal, $n$ Mal versandt
-werden.\newline
-In der folgenden Graphik wird das Versenden der Daten über $n$ getrennte Verbindungen, sowie die in\textit{Friend Finder}
-implementierte Methode verglichen. Es wird angenommen das die versandten Positionsdaten eine Größe von 430 Byte, und ein
+Der große Vorteil von \textit{IRC} ist, dass die \textit{Channels} als \textit{Broadcast}-Medium genutzt werden können.
+Diese Tatsache macht es möglich, Daten $n$ Teilnehmer zugänglich zu machen und dabei diese nur einmal, über eine aktive
+Verbindung, zu senden. Berücksichtigt man dies, so fällt, der ohnehin geringe Datenoverhead, nicht mehr ins Gewicht. Würde man
+diese Daten über $n$ getrennte Verbindungen an die Teilnehmer versenden, so müssten ebensoviele Verbindungen geöffnet werden und
+die Daten anstelle von einmal, $n$ Mal versandt werden.\newline
+In der folgenden Graphik \ref{graph} wird das Versenden der Daten über $n$ getrennte Verbindungen, sowie die in \textit{Friend
+Finder} implementierte Methode verglichen. Es wird angenommen das die versandten Positionsdaten eine Größe von 430 Byte, und ein
\textit{Acknowledgement} 150 Byte haben. Des weiteren wird angenommen dass alle Nutzer die Daten
empfangen auch Positionsdaten senden und somit auch $4 \cdot n$ \textit{Acknowledgements} versandt werden müssen. Daraus ergibt
-sich die Formel $(n \cdot 430) + (n \cdot 4 \cdot 150)$.
+sich die Formel $(n \cdot 430) + (n \cdot 4 \cdot 150)$, welche als Grundlage für die Abbildung \ref{graph} dient.
\begin{figure}[!ht]
\centering
\includegraphics[width=10cm]{Bilder/graph}
\caption{Vergleich von $n$-Verbindungen und \textit{Friend Finder}}
+ \label{graph}
\end{figure}
diff --git a/ausarbeitung/Friend_Finder.tex~ b/ausarbeitung/Friend_Finder.tex~
index 0cf5f3e..c5a361c 100644
--- a/ausarbeitung/Friend_Finder.tex~
+++ b/ausarbeitung/Friend_Finder.tex~
@@ -1,6 +1,6 @@
\section{Friend Finder}
-Die beschriebene Software trägt den Namen \textit{Friend Finder} und wurde im Rahmen dieser Arbeit realisiert. Im folgenden wird
+Die beschriebene Software trägt den Namen \textit{Friend Finder} und wurde im Rahmen dieser Arbeit realisiert. Im Folgenden wird
auf die verwendeten Verfahren sowie Bibliotheken, die zur Realisierung notwendig waren, eingegangen und die Programmstruktur
aufgezeigt.
@@ -14,12 +14,17 @@ Neben dem \textit{Graphical User Interface (GUI)} besteht die Software aus drei
Sender} ist für das Versenden und Empfangen der Textnachrichten zuständig, \textit{Sender} sendet die eigene Position,
\textit{Receiver} empfängt die Positionen der anderen Nutzer und sendet Acknowledgements an die teilnehmenden \textit{Sender}.
Alle drei Teile geben ihre empfangenen Daten an die \textit{GUI} weiter, welche sie mit Hilfe von \textit{Enlightenment} ausgibt.
-\textit{Abbildung 3} zeigt den Kommunikationsaustausch von \textit{Friend Finder}.
+Abbildung \ref{ablauf} zeigt den Kommunikationsaustausch von \textit{Friend Finder}. In dieser Graphik sind die Module zweier
+Instanzen von \textit{Friend Finder} abgebildet. Es ist ersichtlicht, dass die Kommunikation für Positionsdaten zwischen
+\textit{Sender} und \textit{Empfänger} stattfindet. Textnachrichten werden zwischen den \textit{Message Sendern} ausgetauscht.
+Des Weiteren geben \textit{Sender}, \textit{Empfänger} und \textit{Message Sender} die entschlüsselten Daten an die \textit{GUI}
+weiter.
\begin{figure}[!ht]
\centering
\includegraphics[width=10cm]{Bilder/ablauf}
\caption{\textit{Friend Finder} Nachrichtenaustausch}
+ \label{ablauf}
\end{figure}
\subsubsection{Grafisches Benutzeroberfläche}
@@ -27,30 +32,34 @@ Alle drei Teile geben ihre empfangenen Daten an die \textit{GUI} weiter, welche
Um die Modularität zu wahren wird der gesammte Programmcode der Benutzeroberfläche in einer Datei zusammengefast. In dieser Datei
sind alle Funktionen enthalten um die Oberflächenelement zu platzieren. Um die gewünschte Funktionalität der einzelnen Elemente zu
realisieren wurden auch die Aufrufe der benötigten Funktionen aus anderen Modulen in dieser Datei implementiert. \newline
-Zur Darstellung der Karte wurden Daten des offenen Kartenprojekts \textit{OpenStreetMap} \footnote{OpenStreetMap
-\url{http://www.openstreetmap.de/}} genutzt.
+Zur Darstellung der Karte wurden Daten des offenen Kartenprojekts \textit{OpenStreetMap}\footnote{OpenStreetMap
+http://www.openstreetmap.de/ [Online; letzter Aufruf 13.02.2010]} genutzt.
\subsubsection{Versenden der Nachrichten}
Der \textit{Message Sender} kümmert sich um das Versenden von Nachrichten. Um das Versenden und Empfangen der Daten zu
-implementieren wurde \textit{libircclient} \footnote{libircclien \url{http://libircclient.sourceforge.net/}} genutzt. Im ersten
+implementieren wurde \textit{libircclient}\footnote{libircclien http://libircclient.sourceforge.net/ [Online; letzter Aufruf
+25.01.2010]} genutzt. Im ersten
Schritt baut dieser eine Verbindung zum \textit{IRC-Server} auf. Um eine Verbindung mit einem \textit{IRC-Server} zu etablieren,
muss eine \textit{IRC-Session} initialisiert werden. Diese \textit{Session} beinhaltet Informationen wie zum Beispiel
den \textit{Nickname} des Benutzers oder die \textit{IP-Adresse} des Servers. Nachdem diese \textit{Session} gestartet wurde,
können nun Nachrichten versandt werden. Textnachrichten müssen vor dem Versenden in Blöcke aufgeteilt werden, da das genutze
Verschlüsselungsverfahren \textit{Blowfish} \citep{blowfish} maximal 64 Bit lange Zeichenkette verschlüsselt. Das verwendete
-Verfahren stammt aus der \textit{OpenSSL}\footnote{OpenSSL \url{http://www.openssl.org/}} Bibliothek. Diese Implementierung wurde
-wurde Aufgrund der schnellen Verschlüsselungsrate sowie einfachen Implementierung gewählt. Da das \textit{IRC}-Protokoll nicht
-alle Zeichen darstellen kann oder als Präfix vor einem Kommando nutzen werden alle versendeten Daten des Programmes in
-die \textit{Base64} \footnote{Base64 RFC 4648} Darstellung umgewandelt.\newline
+Verfahren stammt aus der \textit{OpenSSL}\footnote{OpenSSL http://www.openssl.org/ [Online; letzter Aufruf 25.01.2010]}
+Bibliothek. Diese Implementierung wurde wurde Aufgrund der schnellen Verschlüsselungsrate sowie einfachen
+Implementierungsmöglichkeiten gewählt. Da das \textit{IRC}-Protokoll nicht alle Zeichen darstellen kann oder bestimmte Zeichen als
+Präfixe vor einem Kommando nutzt werden, alle versendeten Daten des Programmes in die \textit{Base64}\citep{Base64} Darstellung
+umgewandelt.\newline
Wird nun von einer anderen Instanz des \textit{Message Senders} eine Nachricht empfangen, so setzt er die Teilstücke zusammen.
Dies geschieht solange, bis ein vom Nachrichtentext getrennt gesendetes Terminierungszeichen empfangen wird. Wurde dieses Zeichen
-empfangen, so gilt die Textnachricht als wiederhergestellt und wird an die Benutzeroberfläche weitergereicht.
+empfangen, so gilt die Textnachricht als wiederhergestellt und wird an die Benutzeroberfläche weitergereicht. \newline
+In Abbildung \ref{chat} ist das die graphische Darstellung eines Nachrichtenaustausches abgebildet.
\begin{figure}[!ht]
\centering
\includegraphics[width=8cm]{Bilder/chat}
\caption{Versenden von Chatnachrichten}
+ \label{chat}
\end{figure}
\subsubsection{Versenden der eigenen Position}
@@ -58,44 +67,61 @@ empfangen, so gilt die Textnachricht als wiederhergestellt und wird an die Benut
Der \textit{Sender} ist zuständig für das Versenden der Positionsdaten. Auch hier muss vor dem Versenden von Daten eine
\textit{IRC-Session} initialisiert werden. Der Ablauf beim Senden der Positionen erfolgt in einer vorgegebenen Reihenfolge. Zuerst
wird der verschlüsselte Längengrad, danach der verschlüsselte Breitengrade gesendet.
-Allerdings muss auch hier, wie beim Versenden der Textnachrichten, darauf geachtet werden dass maximal eine Zeichenkette der
-Länge von 64 Bit verschlüsselt wird. Somit ist es auch hier nötig Längen- und Breitengrad in zwei Teile aufzuteilen und getrennt
-zu versenden. An jedes Ende, dieser insgesamt vier Fragmente, wird ein zusätzlicher, jeweils unterschiedlicher Buchstaben
-angehängt. Da sich diese vier Buchstaben unterscheiden können die Positionsfragmente später identifiziert und eindeutig
-festgestellt werden ob es sich zum Beispiel um den ersten Teil einer \textit{Longtitude}-Koordinate handelt. Somit werden für das
-Versenden von einer Position insgesamt vier Nachrichten an den \textit{IRC}-Server übermittelt.
+Allerdings muss auch hier, wie beim Versenden der Textnachrichten, darauf geachtet werden, dass maximal eine Zeichenkette der
+Länge 64 Bit verschlüsselt wird. Somit ist es auch hier nötig Längen- und Breitengrad in zwei Teile aufzuteilen und getrennt
+zu versenden. An jedes Ende, dieser insgesamt vier Fragmente, wird ein zusätzlicher, jeweils unterschiedlicher Suffix angehängt.
+Da sich diese vier Suffixe unterscheiden, können die Positionsfragmente später eindeutig zugeordnet werden. Beispielsweise hat
+eine \textit{Latitude}-Koordinate den Wert $47.996578$. Dieser Koordinate wird nun in $47.99$ und $6578$ aufgeteilt. Nach dem
+Anhängen der Suffixe werden $47.99a$ und $6578b$ versendet und können anhand der Suffix ``a'' und ``b'' als erster, bzw zweiter
+Teil der \textit{Longtitude}-Koordinate identifiziert und zugeordnet werden. Somit werden für das Versenden von einer
+Position insgesamt vier Nachrichten an den \textit{IRC}-Server übermittelt.
Wurden diese vier Nachrichten übermittelt, so werden solange keine Daten mehr gesendet, bis der \textit{Empfänger} eine
Bestätigung für jedes Fragment an den \textit{IRC-Channel} sendet. Kommt diese Bestätigung beim \textit{Sender} an, so
-versendet dieser wieder ein \textit{Latitude/Longtitude} Paar.
+versendet dieser wieder ein \textit{Latitude/Longtitude} Paar. Abbildung \ref{protocol} zeigt, das Versenden von Positionsdaten
+des \textit{Senders} über einen \textit{IRC-Channel} an den \textit{Empfänger}. Dieser schickt im Anschluss auf gleichem Weg
+\textit{Acknowledgements} an den \textit{Sender}.
-\subsubsection{Empfangen von Positionen}
+\begin{figure}[!ht]
+\centering
+ \includegraphics[width=10cm]{Bilder/protocol}
+ \caption{Versenden von Chatnachrichten}
+ \label{protocol}
+\end{figure}
+
+\subsubsection{Empfangen von Positionen}
Auch beim \textit{Empfänger} muss im ersten Schritt eine \textit{IRC-Session} initialisiert werden. Da mehrere
Benutzer Positionsdaten senden können legt der \textit{Empfänger} für jeden \textit{Sender} einen Datensatz an. Wird nun ein
Fragment der Positionsdaten empfangen, so kann der dies anhanden des Buchstabensuffix zuordnen. Sind alle Fragmente einer
Position empfangen worden, so werden die benötigten Daten zur Visuallisierung weitergereicht und ein \textit{Acknowledgement}
-gesendet. Dieses \textit{Acknowledgement} beinhaltet, verschlüsselter Form, den Namen des \textit{Senders} der Nachricht. Somit
-kann der \textit{Sender} die für ihn bestimmten \textit{Acknowledgements} zuordnen. Die folgende Abbildung zeigt die Darstellung
+gesendet. Dieses \textit{Acknowledgement} beinhaltet, in verschlüsselter Form, den Namen des \textit{Senders} der Nachricht. Somit
+kann der \textit{Sender} die für ihn bestimmten \textit{Acknowledgements} zuordnen. Abbildung \ref{position} zeigt die Darstellung
einer Position eines anderen Benutzers.
\begin{figure}[!ht]
\centering
\includegraphics[width=8cm]{Bilder/position}
\caption{Ausgabe einer Benutzerposition}
+ \label{position}
\end{figure}
\subsubsection{Erzeugen eines 2D-Barcodes}
Um einen 2D-Barcode zu erstellen wird eine Zeichenkette benötigt. Aus dieser werden durch die Nutzung von \textit{qrencode}
-\footnote{libqrencode \url{http://megaui.net/fukuchi/works/qrencode/index.en.html}} Bilddaten generiert. Diese werden im
-nächsten Schritt durch \textit{libpng} \footnote{libpng \url{http://www.libpng.org/}} gerendert und auf das Speichermedium
-geschrieben. Dieses Bild wird dann durch die \textit{GUI} geladen und ausgegeben. Die folgende Abbildung zeigt einen solchen
-erstellten Barcode, wie er von \textit{Friend Finder} ausgegeben wird.
+\footnote{libqrencode http://megaui.net/fukuchi/works/qrencode/index.en.html\newline[Online; letzter Aufruf 11.02.2010]}
+Bilddaten
+generiert. Diese werden im nächsten Schritt durch \textit{libpng}\footnote{libpng http://www.libpng.org/ [Online; letzter
+Aufruf 11.02.2010]} gerendert und auf das Speichermedium geschrieben. Dieses Bild wird dann durch die \textit{GUI} geladen und
+ausgegeben. Die Abbildung \ref{barcode} zeigt einen solchen erstellten Barcode, wie er von \textit{Friend Finder} ausgegeben wird.
+Wenn nun Schlüssel ausgetauscht werden so kann nun ein anderer Nutzer den ausgegebenen Barcode mit der Kamera seines
+Mobiltelefones fotographieren. Im Anschluss kann aus dem auf dem Foto abgebildeten 2D-Barcode, mit Hilfe von \textit{qrencode},
+wieder eine Zeichenkette erstellt und als Schlüssel genutzt werden.
\begin{figure}[!ht]
\centering
\includegraphics[width=8cm]{Bilder/barcode}
\caption{2D-Barcode mit \textit{Friend Finder}}
+ \label{barcode}
\end{figure}
@@ -103,80 +129,91 @@ erstellten Barcode, wie er von \textit{Friend Finder} ausgegeben wird.
\subsection{Analyse}
-Beim versenden der Daten durch \textit{Friend Finder} soll möglichst wenig Datenoverhead produziert und
+Beim Versenden der Daten durch \textit{Friend Finder} soll möglichst wenig Datenoverhead produziert und
versendet werden. Unter Datenoverhead werden Hintergrunddaten gesehen, welche versendet werden um die Verbindung aufrecht zu
-erhalten oder um die Anzahl der verfügbaren Teilnehmer zu überprüfen. \newline
+erhalten oder um die Anzahl der verfügbaren Teilnehmer zu überprüfen, aber nichts mit den eigentlichen Daten zu tun haben.
+\newline
Im folgenden Teil wird der erzeugte Datenverkehr von \textit{Friend Finder} analysiert. Ein Hauptaugenmerkt wird hierbei vor allem
auf die Packetgröße, sowie die Menge der versendeten Datenpakete geworfen. Ein Interessanter Punkt stellt die Frage dar, wie sich
-das versendete Datenaufkommen im Vergleich zu einem Programm verhält, welches die Daten an jeden Teilnehmer einzeln verschickt.
+das versendete Datenaufkommen im Vergleich zu einer Lösung verhält, welche die Daten an jeden Teilnehmer einzeln verschickt.
Hier ist besonders von Interesse, ob der Datenoverhead den Vorteil eines \textit{Broadcast}-Mediums wie ein \textit{IRC}-Channel
revidiert oder nicht. \newline
-Der \textit{Traffic} wurde mit Hilfe des Programmes \textit{Wireshark} \footnote {Wireshark \url{http://www.wireshark.org/}}
-untersucht. Wie bereits erwähnt wird zum Versenden der Nachrichten das \textit{IRC}-Protokoll verwendet. In dieser Testumgebung
-wurde die Software \textit{IRCD-Hybrid} \footnote{IRCD \url{http://www.ircd-hybrid.org/}} genutzt. Der Server lief auf dem
-gleichen Computer wie der Client. Der Client hat sich in diesem Szenario über das \textit{localhost} Interface mit dem Server
-verbunden. \newline
+Der \textit{Traffic} wurde mit Hilfe des Programmes \textit{Wireshark}\footnote {Wireshark http://www.wireshark.org/
+[Online; letzter Aufruf 27.01.2010]} untersucht. Wie bereits erwähnt wird zum Versenden der Nachrichten das \textit{IRC}-Protokoll
+verwendet. In dieser Testumgebung wurde die Software \textit{IRCD-Hybrid}\footnote{IRCD http://www.ircd-hybrid.org/
+[Online; letzter Aufruf 27.01.2010]} genutzt. Der Server lief auf dem gleichen Computer wie der Client. Der Client hat sich in
+diesem Szenario über das \textit{localhost} Interface mit dem Server verbunden. \newline
Die Analyse ist in drei Teile aufgeteilt. Als erstes wird auf den allgemein entstehenden Datenverkehr eingegangen, welcher
bei Verbindungsaufbau, sowie bei Beenden der Verbindung entsteht. Der zweite Teil beschäftigt sich mit dem Versenden sowie
Empfangen von Nachrichten. Im letzten Teil dieser Analyse wird der Datenverkehr beim Versenden und Empfangen von Positionen
-genauer betrachtet. Alle folgenden Größen sich nur auf die Größe des Datenfeldes, exklusiv der Header.
+genauer betrachtet. Alle folgenden Größen beziehen sich nur auf die Größe des Datenfeldes, exklusive der Header.
\subsubsection{Allgemeiner Datenverkehr}
Der Allgemeine Hintergrundverkehr bei \textit{Friend Finder} besteht zum Einen aus \textit{Keep-Alive} Nachrichten, sowie der
Anfrage des Clients nach aktiven Nutzern in den \textit{Channels} in denen er selbst aktiv ist. Die \textit{Keep-Alive}
-Nachrichten werden alle 30 Sekunden zwischen Server und Client ausgetauscht. Die Größe des Datenfeldes einer
-solchen Nachricht beträgt also 24 Byte. Das Datenfeld der Pakete welche von Server an Client gesendet werden hat die Größe von 44
+Nachrichten werden alle 30 Sekunden zwischen Server und Client ausgetauscht. Die Größe einer
+solchen Nachricht beträgt 24 Byte. Das Antwortpaket, welches vom Server an den Client gesendet wird, hat die Größe von 44
Byte. \newline
Die Anfragen nach den anderen Benutzern in einem \textit{Channel} werden alle 60 Sekunden versandt. Die Größe der Pakete welche
von Client zu Server gesandt werden, betragen hierbei 10 Bytes. Die Größe der Antwort des Servers hängt von der Anzahl der
aktiven Benutzer innerhalb eines Channels ab. Für zwei Benutzer ergibt sich ein Datenvolumen von 193 Byte, wobei diese
-Größe auch Abhängig von der Länge der Benutzernamen sowie des Namens des\textit{Channels} ist.
+Größe auch Abhängig von der Länge der Benutzernamen sowie des Namens des \textit{Channels} und Servers ist.
\subsubsection{Versenden und Empfangen von Nachrichten}
Um das Versenden von Nachrichten zu evaluieren wurde ``Hello World`` als Testnachricht benutzt. Der \textit{Blockcipher} von
-\textit{Friend Finder} teilt den Satz ''Hello World`` in zwei Teile auf: ''Hello `` und ''World``. Dieses Paket hat ein Datenfeld
-der Größe von 99 Byte.\newline
+\textit{Friend Finder} teilt den Satz ''Hello World`` in zwei Teile auf: ''Hello `` und ''World``. Das resultierende Paket hat
+eine Größe von 99 Byte.\newline
Die versendete Textnachricht hat im unverschlüsselten Format die Größe von elf Byte. Nach der Verschlüsselung werden beim Senden
noch Informationen bezüglich \textit{Channel} und der Empfänger der Nachricht in das zu versendende \textit{IRC}-Paket
-geschrieben. Nach der \textit{Base64}-Kodierung hat sich die Größe der Nachricht circa um den Faktor $9$ vergrößert.\newline
-Wenn $h$ die Größe des \textit{TCP-Headers} und $t$ die Anzahl der Zeichen der unverschlüsselten Nachricht ist, so ergibt sich die
-ungefähre Größe der zu versendenden Nachricht aus: $h + (t \cdot 9)$.
+geschrieben. Nach der \textit{Base64}-Kodierung hat sich die Größe der Nachricht circa um den Faktor neun vergrößert.\newline
+Wenn $h$ die Größe des \textit{TCP-Headers} und $t$ die Anzahl der Zeichen einer unverschlüsselten Nachricht repräsentiert, so
+ergibt sich die ungefähre Größe der zu versendenden Nachricht aus: $h + (t \cdot 9)$.
\subsubsection{Versenden und Empfangen von Positionen}
-Wie schon erwähnt, werden die Positionsdaten beim Sender aufgeteilt und mit vier unterschiedlichen Nachrichten versandt. Wie
-beim Versenden der Textnachrichten werden diese vier Nachrichten auch hier in ein Paket gepackt. Bei der Messung wurden vier
-Verschiedene Pakete, mit jeweils unterschiedlichen versandten Positionen untersucht. Dabei betrug sich die Größe des Datenfeldes
-um die 430 Byte. Die Anzahl der unverschlüsselten Zeichen, die für ein \textit{Latitude}/\textit{Longtitude}-Paar zu
-senden sind, beträgt 21 Zeichen. Jedes Zeichen ist Byte groß, womit sich in der Summe eine Größe von 21 Byte ergibt.
+Wie schon erwähnt, werden die Positionsdaten beim Sender aufgeteilt und mit vier unterschiedlichen Nachrichten versandt. Bei der
+Messung wurden vier Verschiedene Pakete, mit jeweils unterschiedlichen versandten Positionen untersucht. Dabei betrug sich die
+Größe des Datenfeldes im Mittel um die 430 Byte. Die Anzahl der unverschlüsselten Zeichen, die für ein
+\textit{Latitude}/\textit{Longtitude}-Paar zu
+senden sind, beträgt 21 Zeichen. Jedes Zeichen ist 1 Byte groß, womit sich in der Summe eine Größe von 21 Byte ergibt.
Durch die Verschlüsselung, \textit{Base64}-Kodierung sowie Zusatzinformationen vergrößert sich das Datenvolumen also um circa den
-Faktor zwanzig. Wenn $h$ die Größe des \textit{TCP-Headers} und $t$ die Anzahl der Zeichen der unverschlüsselten Nachricht. Somit
-ergibt sich die Größe der versendeten Nachricht circa durch $h + (t \cdot 20)$. Hinzu kommt noch, das für jedes empfangene
-Positions-Fragmeint ein \textit{Acknowledgement} gesendet wird. Die Größe der eines \textit{Acknowledgment} Paketes beträgt
-zwischen 147 und 153
+Faktor zwanzig. Wenn $h$ die Größe des \textit{TCP-Headers} und $t$ die Anzahl der Zeichen der unverschlüsselten Nachricht
+darstellt, ergibt sich die Größe der versendeten Nachricht circa durch $h + (t \cdot 20)$. Hinzu kommt noch, das für jedes
+empfangene Positions-Fragment ein \textit{Acknowledgement} gesendet wird. Die Größe der eines \textit{Acknowledgment} Paketes
+beträgt zwischen 147 und 153
Byte. In einem solchen Paket werden vier Acknowledgments zusammengefasst.\newline
-Folglich kann Folgende Formel für den Datenverkehr pro versendeter Position, bei $n$ Teilnehmern hergeleitet werden:
+Daraus kann Folgende Formel für den Datenverkehr pro versendeter Position, bei $n$ Teilnehmern hergeleitet werden:
$((h + (t \cdot 20)) + (4 \cdot a))\cdot n$, wobei $a$ die Größe eines Acknowledgement-Paketes ist und $n$ die Anzahl der
versandten Pakete repräsentiert.
\subsubsection{Fazit der Auswertung}
Die Hintergrunddaten welche vom \textit{IRC}-Protokoll versandt werden ergeben einen geringen, in Kauf zu nehmenden Datenoverhead.
-Allerdings ist der große Vorteil von \textit{IRC}, dass die \textit{Channels} als \textit{Broadcast}-Medium genutzt werden können.
+Der große Vorteil von \textit{IRC} ist, dass die \textit{Channels} als \textit{Broadcast}-Medium genutzt werden können.
Diese Tatsache macht es möglich, Daten $n$ Teilnehmer zugänglich zu machen und dabei diese nur einmal, über eine aktive
Verbindung, zu senden. Berücksichtigt man dies, so fällt, der ohnehin geringe Datenoverhead, nicht mehr ins Gewicht. Würde man
diese Daten über $n$ getrennte Verbindungen an die Teilnehmer versenden, so müssten ebensoviele Verbindungen geöffnet werden und
die Daten anstelle von einmal, $n$ Mal versandt werden.\newline
-In der folgenden Graphik wird das Versenden der Daten über $n$ getrennte Verbindungen, sowie die in\textit{Friend Finder}
-implementierte Methode verglichen. Es wird angenommen das die versandten Positionsdaten eine Größe von 430 Byte, und ein
-\textit{Acknowledgement} 150 Byte haben. Des weiteren wird angenommen dass alle Nutzer die Daten
+In der folgenden Graphik \ref{graph} wird das Versenden der Daten über $n$ getrennte Verbindungen, sowie die in \textit{Friend
+Finder} implementierte Methode, zu einem beliebigen Zeitpunkt $t$ verglichen. Es wird angenommen das die versandten Positionsdaten
+eine Größe von 430 Byte, und ein \textit{Acknowledgement} 150 Byte haben. Des weiteren wird angenommen dass alle Nutzer die Daten
empfangen auch Positionsdaten senden und somit auch $4 \cdot n$ \textit{Acknowledgements} versandt werden müssen. Daraus ergibt
-sich die Formel $(n \cdot 430) + (n \cdot 4 \cdot 150)$.
+sich die Formel $(n \cdot 430) + (n \cdot 4 \cdot 150)$, welche als Grundlage für die Abbildung \ref{graph} dient. Die Abbildung
+\ref{graph2} zeigt dass Datenaufkommen der zwei verschiedenen Methoden innerhalb eines Zeitraums von 25 Sekunden, gegeben dass die
+Positionsdaten alle drei Sekunden versandt werden.
\begin{figure}[!ht]
\centering
\includegraphics[width=10cm]{Bilder/graph}
\caption{Vergleich von $n$-Verbindungen und \textit{Friend Finder}}
+ \label{graph}
\end{figure}
+
+\begin{figure}[!ht]
+\centering
+ \includegraphics[width=10cm]{Bilder/graph2}
+ \caption{Versandte Daten über die Zeit von $n$-Verbindungen und \textit{Friend Finder}}
+ \label{graph2}
+\end{figure} \ No newline at end of file
diff --git a/ausarbeitung/Grundlagen.aux b/ausarbeitung/Grundlagen.aux
index f81425c..32b2a1f 100644
--- a/ausarbeitung/Grundlagen.aux
+++ b/ausarbeitung/Grundlagen.aux
@@ -10,7 +10,6 @@
\@writefile{toc}{\contentsline {subsection}{\numberline {2.1}Aktuelle Entwicklungen}{3}{subsection.2.1}}
\@writefile{toc}{\contentsline {subsection}{\numberline {2.2}Vorraussetzungen}{4}{subsection.2.2}}
\@writefile{toc}{\contentsline {subsection}{\numberline {2.3}Ziele}{5}{subsection.2.3}}
-\citation{symm}
\citation{bluetooth}
\citation{IRC}
\@writefile{toc}{\contentsline {subsection}{\numberline {2.4}Verfahren}{6}{subsection.2.4}}
@@ -33,9 +32,9 @@
\setcounter{table}{0}
\setcounter{NAT@ctr}{0}
\setcounter{parentequation}{0}
+\setcounter{Item}{0}
\setcounter{lstlisting}{0}
\setcounter{lstnumber}{1}
-\setcounter{Item}{0}
\setcounter{subfigure}{0}
\setcounter{lofdepth}{1}
\setcounter{subtable}{0}
diff --git a/ausarbeitung/Grundlagen.tex b/ausarbeitung/Grundlagen.tex
index bd62571..9871792 100644
--- a/ausarbeitung/Grundlagen.tex
+++ b/ausarbeitung/Grundlagen.tex
@@ -2,7 +2,7 @@
\textit{Location privacy} wird von Duckham und Kulik durch \begin{quote}... a special type of information
privacy which concerns the claim of individuals to determine for themselves when, how, and to what extent location
-information about them is communicated to others. \end{quote} \citep{privacy} definiert. Ein Anwender sollte also in der Lage
+information about them is communicated to others. \citep{privacy}\end{quote} definiert. Ein Anwender sollte also in der Lage
sein den Zeitpunkt, wie und in welchem Umfang Positionsdaten über sie verbreitet werden, selbst festzulegen. Es stellt sich die
Frage, wie der Benutzer in der Lage ist dieser drei Punkte zu kontrollieren. Dabei soll er den
Zeitpunkt frei bestimmen könnnen, wann und auf welche Art und Weiße er die Daten versendet und wieviele andere Benutzer oder
@@ -17,19 +17,21 @@ Da so gut wie alle aktuellen Smartphones mit dem \textit{Global Positioning Syst
verschiedenen Betriebssysteme mittlerweile eine Reihe von Anwendungen die Funktionalitäten rund um die eigene Position bieten. So
gibt es Anwendungen um sich Routen erstellen zu lassen, die eigene Position zu bestimmen oder um \textit{Geocaching}
\citep{geocaching} zu betreiben.\newline
-Zum Beispiel bietet \textit{Google} den Dienst \textit{Google Latitude}
-\footnote{\url{http://www.google.com/intl/en_us/latitude/intro.html}} an. Bei diesem Programm
+Zum Beispiel bietet \textit{Google} den Dienst
+\textit{Google Latitude}\footnote{Google Latitude http://www.google.com/intl/en\_us/latitude/intro.html\newline[Online;
+letzter Aufruf 11.02.2010]} an. Bei diesem Programm
ist es möglich die Position von Freunden, die diesen Dienst auch nutzen, auf einer Karte anzeigen zu lassen. Es besteht hierbei
-die Möglichkeit die eigene Position per \textit{GPS} oder mit Hilfe von Daten der \textit{GSM-Funkzelle} zu bestimmen.\newline
+die Möglichkeit die eigene Position per \textit{GPS} oder mit Hilfe von Daten der \textit{GSM-Funkzellen} zu bestimmen.\newline
Betrachtet man ein solches Programm unter den obigen Gesichtspunkten von Duckham und Kulik,
so stellt man fest dass der Anwender hier nur den Zeitpunkt, zu dem die Positionsinformationen versendet werden, bestimmen kann.
Nutzen Anwender das Programm, so werden die Daten an den Anbieter eines solchen Dienstes gesendet. Diesem Anbieter obliegen die
Rechte über die Daten ab diesem Zeitpunkt. Die einzige Einsicht die der Benutzer in diesen Vorgang hat, ist die dass er
befreundete Teilnehmer auf seinem Display und diese ihn auf ihrem Display sehen. Er hat also keinerlei Kontrolle darüber, was mit
den Daten nach dem Absenden passiert, da diese an den Anbieter gesendet werden, wo sie dann durch ein interenes, ihm
-unbekanntes System an die anderen Nutzern weitergereicht werden. Wie dieses im genauen abläuft, weiß der Anwender nicht. Der
-Benutzer kann also weder festlegen, wie noch in welchem Umfang er die Daten versenden möchte, da er keinen Einblick in diesen Teil
-der Strukturen der Institution, die den Dienst zur Verfügung stellt, hat.\newline
+unbekanntes System an die anderen Nutzern weitergereicht werden. Somit ergibt sich eine Informationsasymmetrie, da der
+Betreiber mehr Informationen über die Verarbeitung der Daten des Anwenders besitzt wohingegen der Anwender nicht im genauen weiß
+wie mit seinen Daten verfahren wird. Der Benutzer kann also weder festlegen, wie noch in welchem Umfang er die Daten versenden
+möchte, da er keinen Einblick in diesen Teil der Strukturen der Institution, die den Dienst zur Verfügung stellt, hat.\newline
An genau diesem Punkt schließt die Arbeit \textit{Spontaneous Privacy-Aware Location Sharing} \citep{SPALS} an. Hier werden die
Daten über ein offenes und frei zugängliches System versendet. Da, dass zum Versenden genutzte, System offen zugänglich ist,
müssen diese Daten zusätzlich verschlüsselt werden, da ansonsten jederman Zugang zu ihnen hätte. \newline
@@ -55,7 +57,7 @@ sowie per \textit{WLAN} zu übertragen. \newline
Wenn nun ein sicherer Austausch von Positionsdaten erfolgen soll, so müssen neben der Hardware, auch andere Rahmenbedingungen
gegeben sein. Da man durch Positionsdaten die aktuelle Position erfahren oder Bewegungsprofile erstellen kann, sollten der Zugang
zu diesen nur dann erlaubt sein wenn der Benutzer der sie versendet damit einverstanden ist. Die Daten müssen also soweit
-entfremdet oder abgeändert werden damit nur eine vom Nutzer bestimmte Gruppe diese wieder rekonstruieren kann. Somit ist gegeben,
+abgeändert werden damit nur eine vom Nutzer bestimmte Gruppe diese wieder rekonstruieren kann. Somit ist gegeben,
dass der Nutzer über das Ausmaß der Verbreitung seiner Daten die Kontrolle bewahren kann.\newline
Der Anwender muss Daten zu jedem von ihm gewünschten Zeitpunkt zu versenden können. Er muss also in der Lage sein
die dafür benötigten Parameter zu sofort zu erstellen und weiterzugeben. Somit kann er den Zeitpunkt, zu welchem er seine Daten
@@ -71,32 +73,32 @@ gegeben so ist der Nutzer in der Lage zu kontrollieren wie seine Daten versandt
\subsection{Ziele}
Zusammenfassend kann also gesagt werden, dass eine Software mit den beschriebenen Eigenschaften die Sicherheit der
-Daten, in Bezug auf Zugänglichkeit, und das Vermeiden von Datenspeicherung zum Ziel hat. Anwender soll es aber trotz allem einfach
-gemacht werden dieses Programm zu nutzen. Die Inhalte der Anwendung müssen also soweit abstrahiert werden, als dass auch ein
+Daten, in Bezug auf Zugänglichkeit, und das Vermeiden von Datenspeicherung zum Ziel hat, ohne dabei die Benutzerfreundlichkeit
+einzuschränken. Die Inhalte der Anwendung müssen also soweit abstrahiert werden, als dass auch ein
Benutzer ohne Fachkenntnis alle Funktionen der Anwendung nutzen kann, ohne dass die obigen Punkte ausser Kraft treten. \newline
Zum Versenden der Daten muss eine offene Struktur genutzt werden, in welche jeder Einsicht hat und welche frei genutzt werden
-kann. Es muss gewährleistet sein das jeder Teilnehmer dieser sofort beitreten kann, ohne das für ihn Restriktionen, wie zum
-Beispiel ein Benutzeraccount, gelten. Diese Struktur sollte über ein Protokoll verfügen das verlässlich, stabil und auch für
+kann. Es ist also bei der Auswahl zu vermeiden, dass diese Struktur Restriktionen wie einen Benutzeraccount mit sich bringt. Diese
+Struktur sollte über ein Protokoll verfügen das verlässlich, stabil und auch für
langsame Netzwerke optimiert ist. Eine reibungslose Kommunikation kann somit garantiert werden. \newline
-Um die Kommunikation zwischen verschiedenen Teilnehmern zu ermöglichen muss es möglich sein Chatnachrichten auszutauschen. Die
+Kommunikation zwischen verschiedenen Teilnehmern kann durch den Austausch von Chatnachrichten ermöglicht werden. Die
Interaktion zwischen den Anwendern und somit der Nutzen des Dienstes kann hierdurch weiter gesteigert werden.\newline
Durch die Nutzung einer, für alle, offene Struktur ist es von Nöten, dass die Daten verschlüsselt werden. Da bei
Verschlüsselungen der Austausch von Schlüsseln voraussetzt wird, muss ein Verfahren genutzt werden welches den Austausch von zwei
-Schlüsseln auf einfache Weise ermöglicht. Da diese Software für mobile Geräte ausgelegt ist, müssen die benötigten Schlüssel
-spontan ausgetauscht werden können, da der Anwender die Nutzung eines solchen Dienstes nicht immer im Vorraus planen möchte und
-kann. Gleichzeitig muss garantiert sein dass die Schlüssel während des Austauschs nicht von unbefugten Personen abgefangen werden.
+Schlüsseln auf einfache Weise ermöglicht. Da diese Software für mobile Geräte ausgelegt ist, ist der spontane Austausch der
+benötigten Schlüssel im Interesse des Benutzers, da der Anwender die Nutzung eines solchen Dienstes nicht immer im Vorraus
+planen möchte und kann. Gleichzeitig muss garantiert sein dass die Schlüssel während des Austauschs nicht von unbefugten Personen
+abgefangen werden.
\newline
Ist ein solches Verfahren gegeben, so kann ein Algorithmus genutzt werden der sowohl sicher ist, als auch mit möglichst geringem
Aufwand die Daten ver- und entschlüsselt. \newline
Da Positionsdaten versendet werden, müssen diese visualisiert werden. Somit muss die Applikation in der Lage sein die Standorte
-anderer Nutzer anzuzeigen. Da aus Gründen der Nutzbarkeit die Positionen der Teilnehmer auf einer Karte dargestellt werden sollen,
-muss ein Format für die Karte genutzt werden, welches auf dem mobilen Gerät darstellbar und einfach auf den neusten Stand zu
-bringen ist.\newline
+anderer Nutzer auf einer Karte anzuzeigen. Es wird also ein Format benötigt, welches auf dem mobilen Gerät darstellbar und einfach
+auf den neusten Stand zu bringen ist.\newline
Benutzer die sich in größeren Entfernungen befinden sind für Programme dieser Art nur begrenzt interessant, da sie mit zunehmender
Entfernung immer schwerer zu erreichen sind. Deshalb werden nur Teilnehmer innerhalb eines bestimmten Radius angezeigt.\newline
Ein weiterer Punkt ist die Plattformunabhängigkeit. Diese steht zwar nicht in Verbindung mit der Privatsphäre der Benutzer,
allerdings sollte ein solches Programm unter möglichst vielen Plattformumgebungen lauffähig sein. Zum Einen wird somit der Aufwand
-der Implementierung verringert, da die Software nicht mehrmals implementiert werden muss. Zum Anderen werden möglichst viele
+der Implementierung verringert, da die mehrfache Ausführung dieser somit vermieden wird. Zum Anderen werden möglichst viele
Benutzer erreicht und es kann auch Kommunikation unter Besitzern von unterschiedlichen Typen von Mobiltelefonen
stattfinden.\newline
Die Struktur der Software muss möglichst modular gehalten werden, damit es auch zu einem späteren Zeitpunkt leicht fällt
@@ -108,17 +110,16 @@ ein anderes Protokoll zum Versenden der Daten, zusätzlich zu implementieren.
Anhand der Anforderungen müssen nun geeignete Verfahren und Protokolle sowohl für Kommunikation als auch für Verschlüsselung
gewählt werden. Da man mit mehreren Benutzern oder auch mehreren Benutzergruppen kommunizieren kann, können mehrere Schlüssel
anfallen. Somit soll der Aufwand, für den Anwender, um diese Schlüssel zu speichern, zu löschen oder neu zuzuordnen möglichst
-gering gehalten werden. Symmetrische Verfahren nicht so berrechnungsintensiv wie asymmetrische \citep{symm}, was einen
-wichtigen Punkt auf mobilen Geräten darstellt. Aufgrund dieser Tatsache wird eine symmetrische Verschlüsselung genutzt.\newline
+gering gehalten werden. Um den Schlüsselaustausch einfach zu gestalten wird eine symmetrische Verschlüsselung genutzt.\newline
Da der Schlüsselaustausch spontan durchführbar sein soll, muss dieser zu jedem Zeitpunkt möglich sein ohne das dafür
Vorbereitungen getroffen werden müssen. So könnte man die Schlüssel per \textit{Bluetooth} übertragen, da eine solche
Verbindung ohne Vorarbeit aufgebaut werden kann. Allerdings stellt \textit{Bluetooth} ein unsicheres Medium dar
\citep{bluetooth}, da der \textit{Bluetooth-Sitzungs-PIN} per \textit{Daten-Phishing} wiederhergestellt werden kann. Eine andere
-Möglichkeit, die ebenfalls keine Vorarbeit benötigt, ist das Erstellen eines 2D-Barcodes \footnote{QR Code
-\url{http://www.denso-wave.com/qrcode/qrstandard-e.html}} aus einer Zeichenkette.
+Möglichkeit, die ebenfalls keine Vorarbeit benötigt, ist das Erstellen eines 2D-Barcodes\footnote{QR Code
+http://www.denso-wave.com/qrcode/qrstandard-e.html [Online; letzter Aufruf 11.02.2010]} aus einer Zeichenkette.
Dieser kann fotographieren und wieder in eine Zeichenkette umwandelt werden. Da keine Kommunikation über einen
unsicheren Kanal zwischen den Geräten stattfindet sind die Barcodes optimal zum Schlüsselaustausch geeignet, da der Schlüssel auf
-diesem Wege nicht abgefangen werden kann. \newline
+diesem Wege nicht abgefangen werden kann.\newline
Aufgrund der Möglichkeit das jeder Nutzer beliebig beitreten und Daten in dieser Struktur austauschen kann, fiel die Wahl zum
versenden der Daten auf das \textit{IRC}-Protokoll. Des weiteren spricht für diese Entscheidung, dass das
\textit{IRC}-Protokoll \citep{IRC} weit verbreitet ist und eine ausgedehnte Serverstruktur zu Grunde liegt. Auch die Stabilität
diff --git a/ausarbeitung/Grundlagen.tex.backup b/ausarbeitung/Grundlagen.tex.backup
index f9647d2..d9d3c36 100644
--- a/ausarbeitung/Grundlagen.tex.backup
+++ b/ausarbeitung/Grundlagen.tex.backup
@@ -2,7 +2,7 @@
\textit{Location privacy} wird von Duckham und Kulik durch \begin{quote}... a special type of information
privacy which concerns the claim of individuals to determine for themselves when, how, and to what extent location
-information about them is communicated to others. \end{quote} \citep{privacy} definiert. Ein Anwender sollte also in der Lage
+information about them is communicated to others. \citep{privacy}\end{quote} definiert. Ein Anwender sollte also in der Lage
sein den Zeitpunkt, wie und in welchem Umfang Positionsdaten über sie verbreitet werden, selbst festzulegen. Es stellt sich die
Frage, wie der Benutzer in der Lage ist dieser drei Punkte zu kontrollieren. Dabei soll er den
Zeitpunkt frei bestimmen könnnen, wann und auf welche Art und Weiße er die Daten versendet und wieviele andere Benutzer oder
@@ -17,34 +17,37 @@ Da so gut wie alle aktuellen Smartphones mit dem \textit{Global Positioning Syst
verschiedenen Betriebssysteme mittlerweile eine Reihe von Anwendungen die Funktionalitäten rund um die eigene Position bieten. So
gibt es Anwendungen um sich Routen erstellen zu lassen, die eigene Position zu bestimmen oder um \textit{Geocaching}
\citep{geocaching} zu betreiben.\newline
-Zum Beispiel bietet \textit{Google} den Dienst \textit{Google Latitude}
-\footnode{\url{http://www.google.com/intl/en_us/latitude/intro.html}} an. Bei diesem Programm
+Zum Beispiel bietet \textit{Google} den Dienst
+\textit{Google Latitude}\footnote{Google Latitude \url{http://www.google.com/intl/en_us/latitude/intro.html}\newline[Online;
+letzter
+Aufruf 11.02.2010]} an. Bei diesem Programm
ist es möglich die Position von Freunden, die diesen Dienst auch nutzen, auf einer Karte anzeigen zu lassen. Es besteht hierbei
-die Möglichkeit die eigene Position per \textit{GPS} oder mit Hilfe von Daten der \textit{GSM-Funkzelle} zu bestimmen.\newline
+die Möglichkeit die eigene Position per \textit{GPS} oder mit Hilfe von Daten der \textit{GSM-Funkzellen} zu bestimmen.\newline
Betrachtet man ein solches Programm unter den obigen Gesichtspunkten von Duckham und Kulik,
so stellt man fest dass der Anwender hier nur den Zeitpunkt, zu dem die Positionsinformationen versendet werden, bestimmen kann.
Nutzen Anwender das Programm, so werden die Daten an den Anbieter eines solchen Dienstes gesendet. Diesem Anbieter obliegen die
Rechte über die Daten ab diesem Zeitpunkt. Die einzige Einsicht die der Benutzer in diesen Vorgang hat, ist die dass er
befreundete Teilnehmer auf seinem Display und diese ihn auf ihrem Display sehen. Er hat also keinerlei Kontrolle darüber, was mit
den Daten nach dem Absenden passiert, da diese an den Anbieter gesendet werden, wo sie dann durch ein interenes, ihm
-unbekanntes System an die anderen Nutzern weitergereicht werden. Wie dieses im genauen abläuft, weiß der Anwender nicht. Der
-Benutzer kann also weder festlegen, wie noch in welchem Umfang er die Daten versenden möchte, da er keinen Einblick in diesen Teil
-der Strukturen der Institution, die den Dienst zur Verfügung stellt, hat.\newline
+unbekanntes System an die anderen Nutzern weitergereicht werden. Somit ergibt sich eine Informationsasymmetrie, da der
+Betreiber mehr Informationen über die Verarbeitung der Daten des Anwenders besitzt. Der Anwender weiß nicht im genauen wie mit
+seinen Daten verfahren wird. Der Benutzer kann also weder festlegen, wie noch in welchem Umfang er die Daten versenden möchte, da
+er keinen Einblick in diesen Teil der Strukturen der Institution, die den Dienst zur Verfügung stellt, hat.\newline
An genau diesem Punkt schließt die Arbeit \textit{Spontaneous Privacy-Aware Location Sharing} \citep{SPALS} an. Hier werden die
Daten über ein offenes und frei zugängliches System versendet. Da, dass zum Versenden genutzte, System offen zugänglich ist,
müssen diese Daten zusätzlich verschlüsselt werden, da ansonsten jederman Zugang zu ihnen hätte. \newline
Zum Verschleiern der Position nutzen Kido u.a. \citep{dummy} Datensätze die falsche Positionsangaben beinhalten. Diese werden
an einen Dienst gesandt, welcher auf all diese Datensätze antwortet, egal ob diese die richtigen oder die falschen Daten
beinhalten. Nur der Client weiß, welche der empfangenen Daten auf der eigentlichen Position basieren. Mit dieser Lösung ist es
-zwar möglich Positionsdaten zu verschleiern, allerdings wird hiermit nicht das Problem gelöst, dass der Nutzer die Kontrolle
+zwar möglich Positionsdaten zu verschleiern, allerdings wird hiermit nicht das Problem gelöst, dass der Nutzer keine Kontrolle
darüber hat, wie seine Daten versendet und genutzt werden.\newline
Einen anderer Ansatz verfolgen Gruteser und Grundwald \citep{kprivacy}. Sie versuchen mit Hilfe von \textit{k-anonymity}
\citep{kanonymity} die Position zu verschleiern. Man versteht unter \textit{k-anonymity}, dass in
einer Menge von $k$ Personen ein Teilnehmer nicht von den anderen $k-1$ Teilnehmern unterschieden werden kann. Gruteser und
Grundwald haben hierfür einen \textit{quadtree} \citep{quadtree} genutzt um bestimmte Bereiche zu erstellen. Diese Bereiche haben
nur eine Vorraussetzung, sie müssen $k$ Personen enthalten. Somit kann nicht festgestellt werden, welche Person
-eines Bereiches die Daten versandt hat. Allerdings kann dieses Vorgehen nicht für einen Dienst mit der Funktionalität von
-eines Dienstes, der gezielt Positionen einzelner andere Benutzer anzeigt, genutzt werden. Der Grund dafür ist, dass es mit diesem
+eines Bereiches die Daten versandt hat. Allerdings kann dieses Vorgehen nicht für eine Anwendung mit der Funktionalität eines
+Dienstes, der gezielt Positionen einzelner andere Benutzer anzeigt, genutzt werden. Der Grund dafür ist, dass es mit diesem
Ansatz nicht möglich ist Positionsdaten von einzelnen Personen zu versenden. Zusätzlich ist auch hier nicht gegeben, dass die
Anwender Einsicht in die Verwendung und Verbreitung ihrer Daten erhalten.
@@ -55,84 +58,79 @@ sowie per \textit{WLAN} zu übertragen. \newline
Wenn nun ein sicherer Austausch von Positionsdaten erfolgen soll, so müssen neben der Hardware, auch andere Rahmenbedingungen
gegeben sein. Da man durch Positionsdaten die aktuelle Position erfahren oder Bewegungsprofile erstellen kann, sollten der Zugang
zu diesen nur dann erlaubt sein wenn der Benutzer der sie versendet damit einverstanden ist. Die Daten müssen also soweit
-entfremdet oder abgeändert werden damit nur eine vom Nutzer bestimmte Gruppe diese wieder rekonstruieren kann. Somit ist gegeben,
+abgeändert werden damit nur eine vom Nutzer bestimmte Gruppe diese wieder rekonstruieren kann. Somit ist gegeben,
dass der Nutzer über das Ausmaß der Verbreitung seiner Daten die Kontrolle bewahren kann.\newline
-Der Anwender sollte in der Lage zu sein Daten zu jedem von ihm gewünschten Zeitpunkt zu versenden. Er muss also in der Lage sein
+Der Anwender muss Daten zu jedem von ihm gewünschten Zeitpunkt zu versenden können. Er muss also in der Lage sein
die dafür benötigten Parameter zu sofort zu erstellen und weiterzugeben. Somit kann er den Zeitpunkt, zu welchem er seine Daten
versenden möchte, frei wählen.\newline
-Ist dies gegeben, sollen die Daten im nächsten Schritt versendet werden. Auch hier sollte ein Weg gefunden werden mit dem der
+Ist dies gegeben, werden die Daten im nächsten Schritt versendet. Auch hier muss ein Weg gefunden werden mit dem der
Nutzer möglichst viel Kontrolle über seine Datensätze inne hat. Um diese Kontrolle zu wahren, müssen die Informationen mit
-einer möglichst transparenten und doch verlässlichen Methode verschickt werden. %ÜBERARBEITEN DU ARSCH
-Zum Weiteren Schutz der verschlüsselten Daten sollte man zum Übertragen der Informationen nicht nur auf einen zentralen Knoten
-angewiesen sein, sondern nutzt im optimalen Fall ein ganzes Netzwerk von solchen Knotenpunkten. Bei diesem Netzwerk sollen
-allerdings alle Knotenpunkt einsehbar sein, damit der Nutzer zu jedem Zeitpunkt weiß, was mit seinen Daten geschieht. Ist dies
-gegeben so ist der Nutzer in der Lage zu kontrollieren wie seine Daten versandt
-werden.
+einer möglichst transparenten und doch verlässlichen Methode verschickt werden.
+Zum Weiteren Schutz der verschlüsselten Daten darf man zum Übertragen der Informationen nicht nur auf einen zentralen Knoten
+angewiesen sein, sondern nutzt im optimalen Fall ein ganzes Netzwerk von solchen Knotenpunkten. Bei diesem Netzwerk sind
+allerdings alle Knotenpunkt einsehbar, damit der Nutzer zu jedem Zeitpunkt weiß, was mit seinen Daten geschieht. Ist dies
+gegeben so ist der Nutzer in der Lage zu kontrollieren wie seine Daten versandt werden.
\subsection{Ziele}
Zusammenfassend kann also gesagt werden, dass eine Software mit den beschriebenen Eigenschaften die Sicherheit der
-Daten, in Bezug auf Zugänglichkeit, und das Vermeiden von Datenspeicherung zum Ziel haben sollte. Dem
-Anwender soll es aber trotz allem einfach gemacht werden dieses Programm zu nutzen. Die Inhalte der Anwendung sollen also soweit
-abstrahiert werden, als dass auch ein Benutzer ohne Fachkenntnis alle Funktionen der Anwendung nutzen kann, ohne dass die obigen
-Punkte ausser
-Kraft treten. \newline
+Daten, in Bezug auf Zugänglichkeit, und das Vermeiden von Datenspeicherung zum Ziel hat, ohne dabei die Benutzerfreundlichkeit
+einzuschränken. Die Inhalte der Anwendung müssen also soweit abstrahiert werden, als dass auch ein
+Benutzer ohne Fachkenntnis alle Funktionen der Anwendung nutzen kann, ohne dass die obigen Punkte ausser Kraft treten. \newline
Zum Versenden der Daten muss eine offene Struktur genutzt werden, in welche jeder Einsicht hat und welche frei genutzt werden
-kann. Es soll gewährleistet sein das jeder Teilnehmer dieser sofort beitreten kann, ohne das für ihn Restriktionen, wie zum
+kann. Es muss gewährleistet sein das jeder Teilnehmer dieser sofort beitreten kann, ohne das für ihn Restriktionen, wie zum
Beispiel ein Benutzeraccount, gelten. Diese Struktur sollte über ein Protokoll verfügen das verlässlich, stabil und auch für
langsame Netzwerke optimiert ist. Eine reibungslose Kommunikation kann somit garantiert werden. \newline
-Um die Kommunikation zwischen verschiedenen Teilnehmern zu ermöglichen soll es möglich sein Chatnachrichten auszutauschen. Die
-Interaktion zwischen den Anwendern und somit der Nutzen des Dienstes kann dadurch weiter gesteigert werden.\newline
+Um die Kommunikation zwischen verschiedenen Teilnehmern zu ermöglichen muss es möglich sein Chatnachrichten auszutauschen. Die
+Interaktion zwischen den Anwendern und somit der Nutzen des Dienstes kann hierdurch weiter gesteigert werden.\newline
Durch die Nutzung einer, für alle, offene Struktur ist es von Nöten, dass die Daten verschlüsselt werden. Da bei
Verschlüsselungen der Austausch von Schlüsseln voraussetzt wird, muss ein Verfahren genutzt werden welches den Austausch von zwei
-Schlüsseln auf einfache Weise ermöglicht. Gleichzeitig muss garantiert sein dass die Schlüssel während des Austauschs nicht von
-unbefugten Personen abgefangen werden. \newline
+Schlüsseln auf einfache Weise ermöglicht. Da diese Software für mobile Geräte ausgelegt ist, müssen die benötigten Schlüssel
+spontan ausgetauscht werden können, da der Anwender die Nutzung eines solchen Dienstes nicht immer im Vorraus planen möchte und
+kann. Gleichzeitig muss garantiert sein dass die Schlüssel während des Austauschs nicht von unbefugten Personen abgefangen werden.
+\newline
Ist ein solches Verfahren gegeben, so kann ein Algorithmus genutzt werden der sowohl sicher ist, als auch mit möglichst geringem
Aufwand die Daten ver- und entschlüsselt. \newline
-Da Positionsdaten versendet werden, sollte die Applikation in der Lage sein die Standorte anderer Nutzer anzuzeigen. Da aus
-Gründen der Nutzbarkeit die Positionen der Teilnehmer auf einer Karte dargestellt werden sollen, muss ein Format für die Karte
-genutzt werden, welches auf dem mobilen Gerät darstellbar und einfach auf den neusten Stand zu bringen ist.\newline
+Da Positionsdaten versendet werden, müssen diese visualisiert werden. Somit muss die Applikation in der Lage sein die Standorte
+anderer Nutzer anzuzeigen. Da aus Gründen der Nutzbarkeit die Positionen der Teilnehmer auf einer Karte dargestellt werden sollen,
+muss ein Format für die Karte genutzt werden, welches auf dem mobilen Gerät darstellbar und einfach auf den neusten Stand zu
+bringen ist.\newline
Benutzer die sich in größeren Entfernungen befinden sind für Programme dieser Art nur begrenzt interessant, da sie mit zunehmender
Entfernung immer schwerer zu erreichen sind. Deshalb werden nur Teilnehmer innerhalb eines bestimmten Radius angezeigt.\newline
Ein weiterer Punkt ist die Plattformunabhängigkeit. Diese steht zwar nicht in Verbindung mit der Privatsphäre der Benutzer,
-allerdings sollt ein solches Programm unter möglichst vielen Plattformumgebungen lauffähig sein. Zum Einen wird somit der Aufwand
+allerdings sollte ein solches Programm unter möglichst vielen Plattformumgebungen lauffähig sein. Zum Einen wird somit der Aufwand
der Implementierung verringert, da die Software nicht mehrmals implementiert werden muss. Zum Anderen werden möglichst viele
Benutzer erreicht und es kann auch Kommunikation unter Besitzern von unterschiedlichen Typen von Mobiltelefonen
stattfinden.\newline
-Die Software möglichst modular gehalten werden, damit es auch zu einem späteren Zeitpunkt leicht fällt Programmteile
-auszutauschen oder zu erweitern. So wäre es zum Beispiel denkbar verschiedene Algorithmen zur Verschlüsselung oder ein anderes
-Protokoll zum Versenden der Daten, zusätzlich zu implementieren.
+Die Struktur der Software muss möglichst modular gehalten werden, damit es auch zu einem späteren Zeitpunkt leicht fällt
+Programmteile auszutauschen oder zu erweitern. So wäre es zum Beispiel denkbar verschiedene Algorithmen zur Verschlüsselung oder
+ein anderes Protokoll zum Versenden der Daten, zusätzlich zu implementieren.
\subsection{Verfahren}
Anhand der Anforderungen müssen nun geeignete Verfahren und Protokolle sowohl für Kommunikation als auch für Verschlüsselung
gewählt werden. Da man mit mehreren Benutzern oder auch mehreren Benutzergruppen kommunizieren kann, können mehrere Schlüssel
-anfallen. Somit sollte der Aufwand, für den Anwender, um diese Schlüssel zu speichern, zu löschen oder neu zuzuordnen möglichst
-gering gehalten werden. Aus
-Gründen der Schlüsselverwaltung ist daher ein symmetrisches Verfahren besser geeignet als ein asymmetrisches. Des Weiteren sind
-symmetrische Verfahren nicht so berrechnungsintensiv wie asymmetrische \citep{symm}, was einen
-wichtigen Punkt auf mobilen Geräten darstellt. \newline
+anfallen. Somit soll der Aufwand, für den Anwender, um diese Schlüssel zu speichern, zu löschen oder neu zuzuordnen möglichst
+gering gehalten werden. Symmetrische Verfahren nicht so berrechnungsintensiv wie asymmetrische \citep{symm}, was einen
+wichtigen Punkt auf mobilen Geräten darstellt. Aufgrund dieser Tatsache wird eine symmetrische Verschlüsselung genutzt.\newline
Da der Schlüsselaustausch spontan durchführbar sein soll, muss dieser zu jedem Zeitpunkt möglich sein ohne das dafür
Vorbereitungen getroffen werden müssen. So könnte man die Schlüssel per \textit{Bluetooth} übertragen, da eine solche
Verbindung ohne Vorarbeit aufgebaut werden kann. Allerdings stellt \textit{Bluetooth} ein unsicheres Medium dar
-\citep{bluetooth}, da der \textit{Bluetooth-Sitzungs-PIN} per Daten-Phishing wiederhergestellt werden kann. Eine andere
-Möglichkeit, die ebenfalls keine Vorarbeit benötigt, ist das Erstellen eines 2D-Barcodes \citep{qrcode} aus einer Zeichenkette.
+\citep{bluetooth}, da der \textit{Bluetooth-Sitzungs-PIN} per \textit{Daten-Phishing} wiederhergestellt werden kann. Eine andere
+Möglichkeit, die ebenfalls keine Vorarbeit benötigt, ist das Erstellen eines 2D-Barcodes\footnote{QR Code
+\url{http://www.denso-wave.com/qrcode/qrstandard-e.html} [Online; letzter Aufruf 11.02.2010]} aus einer Zeichenkette.
Dieser kann fotographieren und wieder in eine Zeichenkette umwandelt werden. Da keine Kommunikation über einen
-unsicheren Kanal zwischen den Geräten stattfindet sind die Barcodes bestens zum Schlüsselaustausch geeignet, da der Schlüssel auf
-diesem Wege nicht abgefangen werden kann. \newline
-Ein vorhandenes, nutzbares Protokoll welches ein aktives Netzwerk bereitstellt ist das \textit{IRC}-Protokoll \citep{IRC}. Es
-stehen bereits mehrere Server zur Verfügung und jeder Nutzer kann einen eigenen Server bereitstellen. Die Server sind in
-Netzwerken organisiert, wodurch der Ausfall eines Servers nicht zum Beenden der gesamten Kommuniktion führt. Nachrichten
-werden innerhalb des Netzwerkes von Server zu Server weitergeleitet bis diese auf dem Zielserver ankommen. Innerhalb der
-\textit{IRC}-Netzwerke werden verschiedene \textit{Channels} bereitgestellt, an welche die Nachrichten gesendet werden können.
-Des weiteren steht es jedem Benutzer frei, eigene \textit{Channels} zu öffnen. Gesendete Nachrichten werden in diesen
-\textit{Channels} ausgegeben. Somit ist zu jedem Zeitpunkt einsehbar was mit versandten Daten passiert.\newline
+unsicheren Kanal zwischen den Geräten stattfindet sind die Barcodes optimal zum Schlüsselaustausch geeignet, da der Schlüssel auf
+diesem Wege nicht abgefangen werden kann.\newline
+Aufgrund der Möglichkeit das jeder Nutzer beliebig beitreten und Daten in dieser Struktur austauschen kann, fiel die Wahl zum
+versenden der Daten auf das \textit{IRC}-Protokoll. Des weiteren spricht für diese Entscheidung, dass das
+\textit{IRC}-Protokoll \citep{IRC} weit verbreitet ist und eine ausgedehnte Serverstruktur zu Grunde liegt. Auch die Stabilität
+und Verlässlichkeit des Protokolles ist gegeben. Da die \textit{IRC}-Server in Netzwerken organisiert sind führt der Ausfall eines
+Servers nicht zur Beendigung der gesamten Kommuniktion. Innerhalb der \textit{IRC}-Netzwerke werden verschiedene \textit{Channels}
+bereitgestellt, an welche Nachrichten gesendet werden können. Ein weiterer Vorteil von \textit{IRC} ist, wenn Daten an
+mehrere Benutzer gesendet werden sollen, diese nur einmal an einen \textit{Channel} versandt werden müssen und jeder Benutzer in
+diesem \textit{Channel} diese Daten empfangen kann. Des weiteren steht es jedem Benutzer frei, eigene \textit{Channels} zu
+öffnen.\newline
In der beschriebenen Software werden die Positionsdaten als Zeichenfolge an einen dieser \textit{Channels} gesendet und können
dort von beliebig vielen anderen Instanzen der Software ausgelesen werden. Diese verarbeiten die Daten im Anschluss, so dass diese
-dann als Position auf einer Karte ausgegeben werden können. Beim Versenden der Textnachrichten ist die vorgehensweiße equivalent.
-\newline
-Durch diesen Lösungsansatz werden die Berechnungszeiten durch ein symmetrisches Verfahren niedrig gehalten. Der
-Verwaltungsaufwand für die Schlüssel ist ebenfalls gering und die Verteilung selbiger kann durch die angesprochenen Barcodes
-erfolgen. Bei der Kommunikation gibt es keinen einzelnen zentralen Server der den gesamten Datenverkehr einsehen kann. Die Daten
-werden nur in verschlüsselter Form über die \textit{IRC}-Server versendet. Folglich kann jedes beliebige \textit{IRC}-Netzwerk zur
-Kommunikation gewählt werden. \ No newline at end of file
+dann als Position auf einer Karte ausgegeben werden können. Beim Versenden der Textnachrichten ist die vorgehensweiße equivalent. \ No newline at end of file
diff --git a/ausarbeitung/Grundlagen.tex~ b/ausarbeitung/Grundlagen.tex~
index c25ccec..fc0c1f9 100644
--- a/ausarbeitung/Grundlagen.tex~
+++ b/ausarbeitung/Grundlagen.tex~
@@ -2,7 +2,7 @@
\textit{Location privacy} wird von Duckham und Kulik durch \begin{quote}... a special type of information
privacy which concerns the claim of individuals to determine for themselves when, how, and to what extent location
-information about them is communicated to others. \end{quote} \citep{privacy} definiert. Ein Anwender sollte also in der Lage
+information about them is communicated to others. \citep{privacy}\end{quote} definiert. Ein Anwender sollte also in der Lage
sein den Zeitpunkt, wie und in welchem Umfang Positionsdaten über sie verbreitet werden, selbst festzulegen. Es stellt sich die
Frage, wie der Benutzer in der Lage ist dieser drei Punkte zu kontrollieren. Dabei soll er den
Zeitpunkt frei bestimmen könnnen, wann und auf welche Art und Weiße er die Daten versendet und wieviele andere Benutzer oder
@@ -17,19 +17,21 @@ Da so gut wie alle aktuellen Smartphones mit dem \textit{Global Positioning Syst
verschiedenen Betriebssysteme mittlerweile eine Reihe von Anwendungen die Funktionalitäten rund um die eigene Position bieten. So
gibt es Anwendungen um sich Routen erstellen zu lassen, die eigene Position zu bestimmen oder um \textit{Geocaching}
\citep{geocaching} zu betreiben.\newline
-Zum Beispiel bietet \textit{Google} den Dienst \textit{Google Latitude}
-\footnote{\url{http://www.google.com/intl/en_us/latitude/intro.html}} an. Bei diesem Programm
+Zum Beispiel bietet \textit{Google} den Dienst
+\textit{Google Latitude}\footnote{Google Latitude http://www.google.com/intl/en\_us/latitude/intro.html\newline[Online;
+letzter Aufruf 11.02.2010]} an. Bei diesem Programm
ist es möglich die Position von Freunden, die diesen Dienst auch nutzen, auf einer Karte anzeigen zu lassen. Es besteht hierbei
-die Möglichkeit die eigene Position per \textit{GPS} oder mit Hilfe von Daten der \textit{GSM-Funkzelle} zu bestimmen.\newline
+die Möglichkeit die eigene Position per \textit{GPS} oder mit Hilfe von Daten der \textit{GSM-Funkzellen} zu bestimmen.\newline
Betrachtet man ein solches Programm unter den obigen Gesichtspunkten von Duckham und Kulik,
so stellt man fest dass der Anwender hier nur den Zeitpunkt, zu dem die Positionsinformationen versendet werden, bestimmen kann.
Nutzen Anwender das Programm, so werden die Daten an den Anbieter eines solchen Dienstes gesendet. Diesem Anbieter obliegen die
Rechte über die Daten ab diesem Zeitpunkt. Die einzige Einsicht die der Benutzer in diesen Vorgang hat, ist die dass er
befreundete Teilnehmer auf seinem Display und diese ihn auf ihrem Display sehen. Er hat also keinerlei Kontrolle darüber, was mit
den Daten nach dem Absenden passiert, da diese an den Anbieter gesendet werden, wo sie dann durch ein interenes, ihm
-unbekanntes System an die anderen Nutzern weitergereicht werden. Wie dieses im genauen abläuft, weiß der Anwender nicht. Der
-Benutzer kann also weder festlegen, wie noch in welchem Umfang er die Daten versenden möchte, da er keinen Einblick in diesen Teil
-der Strukturen der Institution, die den Dienst zur Verfügung stellt, hat.\newline
+unbekanntes System an die anderen Nutzern weitergereicht werden. Somit ergibt sich eine Informationsasymmetrie, da der
+Betreiber mehr Informationen über die Verarbeitung der Daten des Anwenders besitzt wohingegen der Anwender nicht im genauen weiß
+wie mit seinen Daten verfahren wird. Der Benutzer kann also weder festlegen, wie noch in welchem Umfang er die Daten versenden
+möchte, da er keinen Einblick in diesen Teil der Strukturen der Institution, die den Dienst zur Verfügung stellt, hat.\newline
An genau diesem Punkt schließt die Arbeit \textit{Spontaneous Privacy-Aware Location Sharing} \citep{SPALS} an. Hier werden die
Daten über ein offenes und frei zugängliches System versendet. Da, dass zum Versenden genutzte, System offen zugänglich ist,
müssen diese Daten zusätzlich verschlüsselt werden, da ansonsten jederman Zugang zu ihnen hätte. \newline
@@ -55,7 +57,7 @@ sowie per \textit{WLAN} zu übertragen. \newline
Wenn nun ein sicherer Austausch von Positionsdaten erfolgen soll, so müssen neben der Hardware, auch andere Rahmenbedingungen
gegeben sein. Da man durch Positionsdaten die aktuelle Position erfahren oder Bewegungsprofile erstellen kann, sollten der Zugang
zu diesen nur dann erlaubt sein wenn der Benutzer der sie versendet damit einverstanden ist. Die Daten müssen also soweit
-entfremdet oder abgeändert werden damit nur eine vom Nutzer bestimmte Gruppe diese wieder rekonstruieren kann. Somit ist gegeben,
+abgeändert werden damit nur eine vom Nutzer bestimmte Gruppe diese wieder rekonstruieren kann. Somit ist gegeben,
dass der Nutzer über das Ausmaß der Verbreitung seiner Daten die Kontrolle bewahren kann.\newline
Der Anwender muss Daten zu jedem von ihm gewünschten Zeitpunkt zu versenden können. Er muss also in der Lage sein
die dafür benötigten Parameter zu sofort zu erstellen und weiterzugeben. Somit kann er den Zeitpunkt, zu welchem er seine Daten
@@ -71,32 +73,32 @@ gegeben so ist der Nutzer in der Lage zu kontrollieren wie seine Daten versandt
\subsection{Ziele}
Zusammenfassend kann also gesagt werden, dass eine Software mit den beschriebenen Eigenschaften die Sicherheit der
-Daten, in Bezug auf Zugänglichkeit, und das Vermeiden von Datenspeicherung zum Ziel hat. Anwender soll es aber trotz allem einfach
-gemacht werden dieses Programm zu nutzen. Die Inhalte der Anwendung müssen also soweit abstrahiert werden, als dass auch ein
+Daten, in Bezug auf Zugänglichkeit, und das Vermeiden von Datenspeicherung zum Ziel hat, ohne dabei die Benutzerfreundlichkeit
+einzuschränken. Die Inhalte der Anwendung müssen also soweit abstrahiert werden, als dass auch ein
Benutzer ohne Fachkenntnis alle Funktionen der Anwendung nutzen kann, ohne dass die obigen Punkte ausser Kraft treten. \newline
Zum Versenden der Daten muss eine offene Struktur genutzt werden, in welche jeder Einsicht hat und welche frei genutzt werden
-kann. Es muss gewährleistet sein das jeder Teilnehmer dieser sofort beitreten kann, ohne das für ihn Restriktionen, wie zum
-Beispiel ein Benutzeraccount, gelten. Diese Struktur sollte über ein Protokoll verfügen das verlässlich, stabil und auch für
+kann. Es ist also bei der Auswahl zu vermeiden, dass diese Struktur Restriktionen wie einen Benutzeraccount mit sich bringt. Diese
+Struktur sollte über ein Protokoll verfügen das verlässlich, stabil und auch für
langsame Netzwerke optimiert ist. Eine reibungslose Kommunikation kann somit garantiert werden. \newline
-Um die Kommunikation zwischen verschiedenen Teilnehmern zu ermöglichen muss es möglich sein Chatnachrichten auszutauschen. Die
+Kommunikation zwischen verschiedenen Teilnehmern kann durch den Austausch von Chatnachrichten ermöglicht werden. Die
Interaktion zwischen den Anwendern und somit der Nutzen des Dienstes kann hierdurch weiter gesteigert werden.\newline
Durch die Nutzung einer, für alle, offene Struktur ist es von Nöten, dass die Daten verschlüsselt werden. Da bei
Verschlüsselungen der Austausch von Schlüsseln voraussetzt wird, muss ein Verfahren genutzt werden welches den Austausch von zwei
-Schlüsseln auf einfache Weise ermöglicht. Da diese Software für mobile Geräte ausgelegt ist, müssen die benötigten Schlüssel
-spontan ausgetauscht werden können, da der Anwender die Nutzung eines solchen Dienstes nicht immer im Vorraus planen möchte und
-kann. Gleichzeitig muss garantiert sein dass die Schlüssel während des Austauschs nicht von unbefugten Personen abgefangen werden.
+Schlüsseln auf einfache Weise ermöglicht. Da diese Software für mobile Geräte ausgelegt ist, ist der spontane Austausch der
+benötigten Schlüssel im Interesse des Benutzers, da der Anwender die Nutzung eines solchen Dienstes nicht immer im Vorraus
+planen möchte und kann. Gleichzeitig muss garantiert sein dass die Schlüssel während des Austauschs nicht von unbefugten Personen
+abgefangen werden.
\newline
Ist ein solches Verfahren gegeben, so kann ein Algorithmus genutzt werden der sowohl sicher ist, als auch mit möglichst geringem
Aufwand die Daten ver- und entschlüsselt. \newline
Da Positionsdaten versendet werden, müssen diese visualisiert werden. Somit muss die Applikation in der Lage sein die Standorte
-anderer Nutzer anzuzeigen. Da aus Gründen der Nutzbarkeit die Positionen der Teilnehmer auf einer Karte dargestellt werden sollen,
-muss ein Format für die Karte genutzt werden, welches auf dem mobilen Gerät darstellbar und einfach auf den neusten Stand zu
-bringen ist.\newline
+anderer Nutzer auf einer Karte anzuzeigen. Es wird also ein Format benötigt, welches auf dem mobilen Gerät darstellbar und einfach
+auf den neusten Stand zu bringen ist.\newline
Benutzer die sich in größeren Entfernungen befinden sind für Programme dieser Art nur begrenzt interessant, da sie mit zunehmender
Entfernung immer schwerer zu erreichen sind. Deshalb werden nur Teilnehmer innerhalb eines bestimmten Radius angezeigt.\newline
Ein weiterer Punkt ist die Plattformunabhängigkeit. Diese steht zwar nicht in Verbindung mit der Privatsphäre der Benutzer,
allerdings sollte ein solches Programm unter möglichst vielen Plattformumgebungen lauffähig sein. Zum Einen wird somit der Aufwand
-der Implementierung verringert, da die Software nicht mehrmals implementiert werden muss. Zum Anderen werden möglichst viele
+der Implementierung verringert, da die mehrfache Ausführung dieser somit vermieden wird. Zum Anderen werden möglichst viele
Benutzer erreicht und es kann auch Kommunikation unter Besitzern von unterschiedlichen Typen von Mobiltelefonen
stattfinden.\newline
Die Struktur der Software muss möglichst modular gehalten werden, damit es auch zu einem späteren Zeitpunkt leicht fällt
@@ -108,23 +110,22 @@ ein anderes Protokoll zum Versenden der Daten, zusätzlich zu implementieren.
Anhand der Anforderungen müssen nun geeignete Verfahren und Protokolle sowohl für Kommunikation als auch für Verschlüsselung
gewählt werden. Da man mit mehreren Benutzern oder auch mehreren Benutzergruppen kommunizieren kann, können mehrere Schlüssel
anfallen. Somit soll der Aufwand, für den Anwender, um diese Schlüssel zu speichern, zu löschen oder neu zuzuordnen möglichst
-gering gehalten werden. Symmetrische Verfahren nicht so berrechnungsintensiv wie asymmetrische \citep{symm}, was einen
-wichtigen Punkt auf mobilen Geräten darstellt. Aufgrund dieser Tatsache wird eine symmetrische Verschlüsselung genutzt.\newline
+gering gehalten werden. Um den Schlüsselaustausch einfach zu gestalten wird eine symmetrische Verschlüsselung genutzt.\newline
Da der Schlüsselaustausch spontan durchführbar sein soll, muss dieser zu jedem Zeitpunkt möglich sein ohne das dafür
Vorbereitungen getroffen werden müssen. So könnte man die Schlüssel per \textit{Bluetooth} übertragen, da eine solche
Verbindung ohne Vorarbeit aufgebaut werden kann. Allerdings stellt \textit{Bluetooth} ein unsicheres Medium dar
\citep{bluetooth}, da der \textit{Bluetooth-Sitzungs-PIN} per \textit{Daten-Phishing} wiederhergestellt werden kann. Eine andere
-Möglichkeit, die ebenfalls keine Vorarbeit benötigt, ist das Erstellen eines 2D-Barcodes \footnote{QR Code
-\url{http://www.denso-wave.com/qrcode/qrstandard-e.html}} aus einer Zeichenkette.
+Möglichkeit, die ebenfalls keine Vorarbeit benötigt, ist das Erstellen eines 2D-Barcodes\footnote{QR Code
+\url{http://www.denso-wave.com/qrcode/qrstandard-e.html} [Online; letzter Aufruf 11.02.2010]} aus einer Zeichenkette.
Dieser kann fotographieren und wieder in eine Zeichenkette umwandelt werden. Da keine Kommunikation über einen
unsicheren Kanal zwischen den Geräten stattfindet sind die Barcodes optimal zum Schlüsselaustausch geeignet, da der Schlüssel auf
-diesem Wege nicht abgefangen werden kann. \newline
+diesem Wege nicht abgefangen werden kann.\newline
Aufgrund der Möglichkeit das jeder Nutzer beliebig beitreten und Daten in dieser Struktur austauschen kann, fiel die Wahl zum
versenden der Daten auf das \textit{IRC}-Protokoll. Des weiteren spricht für diese Entscheidung, dass das
\textit{IRC}-Protokoll \citep{IRC} weit verbreitet ist und eine ausgedehnte Serverstruktur zu Grunde liegt. Auch die Stabilität
und Verlässlichkeit des Protokolles ist gegeben. Da die \textit{IRC}-Server in Netzwerken organisiert sind führt der Ausfall eines
Servers nicht zur Beendigung der gesamten Kommuniktion. Innerhalb der \textit{IRC}-Netzwerke werden verschiedene \textit{Channels}
-bereitgestellt, an welche Nachrichten gesendet werden können. Ein weiterer Vorteil von \textit{IRC} ist, dass wenn Daten an
+bereitgestellt, an welche Nachrichten gesendet werden können. Ein weiterer Vorteil von \textit{IRC} ist, wenn Daten an
mehrere Benutzer gesendet werden sollen, diese nur einmal an einen \textit{Channel} versandt werden müssen und jeder Benutzer in
diesem \textit{Channel} diese Daten empfangen kann. Des weiteren steht es jedem Benutzer frei, eigene \textit{Channels} zu
öffnen.\newline
diff --git a/ausarbeitung/Title.aux b/ausarbeitung/Title.aux
index 0dc42de..d8d1b2d 100644
--- a/ausarbeitung/Title.aux
+++ b/ausarbeitung/Title.aux
@@ -18,9 +18,9 @@
\setcounter{table}{0}
\setcounter{NAT@ctr}{0}
\setcounter{parentequation}{0}
+\setcounter{Item}{0}
\setcounter{lstlisting}{0}
\setcounter{lstnumber}{1}
-\setcounter{Item}{0}
\setcounter{subfigure}{0}
\setcounter{lofdepth}{1}
\setcounter{subtable}{0}
diff --git a/ausarbeitung/Tutorial.aux b/ausarbeitung/Tutorial.aux
index 1935343..49952c4 100644
--- a/ausarbeitung/Tutorial.aux
+++ b/ausarbeitung/Tutorial.aux
@@ -4,14 +4,16 @@
\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.1.1}Windows Mobile}{9}{subsubsection.3.1.1}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.1.2}Android}{9}{subsubsection.3.1.2}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.1.3}WebOS}{9}{subsubsection.3.1.3}}
-\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.1.4}iPhone OS}{9}{subsubsection.3.1.4}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.1.4}iPhone OS}{10}{subsubsection.3.1.4}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.1.5}Symbian OS}{10}{subsubsection.3.1.5}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.1.6}Zielplattform}{10}{subsubsection.3.1.6}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.2}Softwaregrundlagen}{10}{subsection.3.2}}
-\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.2.1}CeGCC}{10}{subsubsection.3.2.1}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.2.1}CeGCC}{11}{subsubsection.3.2.1}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.2.2}Enlightenment}{11}{subsubsection.3.2.2}}
\@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces Beispiele verschiedener \textit {Elementary} Icons}}{11}{figure.1}}
+\newlabel{efl}{{1}{11}{Beispiele verschiedener \textit {Elementary} Icons\relax }{figure.1}{}}
\@writefile{lof}{\contentsline {figure}{\numberline {2}{\ignorespaces Aufbau von \textit {Enlightenment}}}{12}{figure.2}}
+\newlabel{enl}{{2}{12}{Aufbau von \textit {Enlightenment}\relax }{figure.2}{}}
\@setckpt{Tutorial}{
\setcounter{page}{13}
\setcounter{equation}{0}
@@ -31,9 +33,9 @@
\setcounter{table}{0}
\setcounter{NAT@ctr}{0}
\setcounter{parentequation}{0}
+\setcounter{Item}{0}
\setcounter{lstlisting}{0}
\setcounter{lstnumber}{1}
-\setcounter{Item}{0}
\setcounter{subfigure}{0}
\setcounter{lofdepth}{1}
\setcounter{subtable}{0}
diff --git a/ausarbeitung/Tutorial.tex b/ausarbeitung/Tutorial.tex
index f4ffcc7..52dd368 100644
--- a/ausarbeitung/Tutorial.tex
+++ b/ausarbeitung/Tutorial.tex
@@ -16,7 +16,8 @@ Systemen ausführbar sind. Es wird also ein \textit{Layer} benötigt, mit welche
genutzen werden können. Dabei sollte das zugrundeliegende System unabhängig von diesem \textit{Layer} sein. Es soll also damit vom
zugrundeliegenden
Betriebssystem abstrahiert werden. Ein entsprechender \textit{Layer} stellt der \textit{Portable Operating System Interface for
-Unix Layer (POSIX Layer)} \footnote{POSIX \url{http://standards.ieee.org/regauth/posix/}} dar. Mit diesem \textit{Layer} stehen
+Unix Layer (POSIX Layer)}\footnote{POSIX http://standards.ieee.org/regauth/posix/ [Online; letzter Aufruf 16.02.2010]} dar.
+Mit diesem \textit{Layer} stehen
eine große Menge an aktuellen Bibliotheken aus der \textit{Open-Source} Gemeinde zur Verfügung. Diese haben den Vorteil, dass sie
aktiv
weiterentwickelt werden und auch ständig neue Bibliotheken hinzukommen. Anwendungen, die auf einem \textit{Linux}-System
@@ -29,24 +30,27 @@ nicht immer komplett neu implementieren.
\subsection{Betriebsysteme für mobile Geräte}
Durch die Wahl eines Betriebsystemes wird schon indirekt eine Vorauswahl an Nutzbaren Bibliotheken und Programmiersprachen
-getroffen wird. Im Folgenden werden fünf Betriebssysteme für mobile Plattformen vorgestellt und auf deren Portierungsmöglichkeiten
+getroffen. Im Folgenden werden fünf Betriebssysteme für mobile Plattformen vorgestellt und auf deren Portierungsmöglichkeiten
eingegangen.
\subsubsection{Windows Mobile}
-Das von Microsoft entwickelte \textit{Windows Mobile}
-\footnote{Windows Mobile \url{http://www.microsoft.com/windowsmobile/de-de/default.mspx}} in der aktuellen Version 6.5 verfügbar.
+Das von Microsoft entwickelte \textit{Windows Mobile}\footnote{Windows Mobile
+http://www.microsoft.com/windowsmobile/de-de/default.mspx\newline[Online; letzter Aufruf 25.01.2010]} in der aktuellen
+Version 6.5
+verfügbar.
Das gesamte Betriebssystem basiert
auf der \textit{Windows Win32 API} und lässt Ähnlichkeiten zu den Desktop-Varianten der Windows-Familie erkennen. Es existiert
-ein \textit{Cross-Compiler} names \textit{CeGCC} \footnote{CeGCC \url{http://cegcc.sourceforge.net/}},
-mit welchem Programme die in \textit{C}/\textit{C++} geschrieben wurden für diese Plattform kompiliert werden können.
+ein \textit{Cross-Compiler} names \textit{CeGCC}\footnote{CeGCC http://cegcc.sourceforge.net/ [Online; letzter Aufruf
+24.02.2010]}, mit welchem in \textit{C}/\textit{C++} geschriebene Programme für diese Plattform kompiliert und portiert werden
+können.
\subsubsection{Android}
-Das von \textit{Google} entwickelte \textit{Android} \footnote{Android \url{http://www.android.com/}} setzt auf einen
-\textit{Linux-Kernel} der Version 2.6 auf. Dieser \textit{Kernel} kümmert sich um die Prozess- und Speicherverwaltung,
-Kommunikation sowie um die Hardwareabstraktion. Auf diese Grundlage setzt eine virtuelle Java-Maschine auf, in welcher
-\textit{Android} läuft.\newline
+Das von \textit{Google} entwickelte \textit{Android}\footnote{Android http://www.android.com/ [Online; letzter Aufruf
+25.01.2010]} setzt auf einen \textit{Linux-Kernel} der Version 2.6 auf. Dieser \textit{Kernel} kümmert sich um die Prozess- und
+Speicherverwaltung, Kommunikation sowie um die Hardwareabstraktion. Auf diese Grundlage setzt eine virtuelle Java-Maschine auf, in
+welcher \textit{Android} läuft.\newline
Zum Implementieren von Anwendungen stellt \textit{Google} eigens ein \textit{SDK} bereit. Dieses greift allerdings nur auf
\textit{Java}-Bibliotheken zurück, womit sich die Anzahl der nutzbaren Sprachen im Moment eben auf diese eine beschränkt. Des
weiteren bietet \textit{Google} ein \textit{NDK} an, mit desen Hilfe es auch möglich ist Programme in \textit{C} oder
@@ -54,20 +58,24 @@ weiteren bietet \textit{Google} ein \textit{NDK} an, mit desen Hilfe es auch mö
\subsubsection{WebOS}
-\textit{WebOS} \footnote{WebOS \url{http://palmwebos.org/}} wurde von \textit{Palm} als Nachfolger von \textit{PalmOS}
-\footnote{PalmOS \url{http://www.palm.com/}} entwickelt und ist momentan nur auf zwei Geräten zu finden: Auf dem \textit{Palm Pre}
+\textit{WebOS}\footnote{WebOS http://palmwebos.org/ [Online; letzter Aufruf 25.01.2010]} wurde von \textit{Palm} als
+Nachfolger von \textit{PalmOS}\footnote{PalmOS http://www.palm.com/ [Online; letzter Aufruf 25.01.2010]} entwickelt und ist
+momentan nur auf zwei Geräten zu finden: Auf dem \textit{Palm Pre}
und dem \textit{Palm Pixi}.\newline
Unter der Benutzeroberfläche von \textit{WebOS} arbeitet ein \textit{Linux-Kernel} in der Version 2.6. Somit ist es möglich, wenn
-man Zugriff auf diesen Kernel hat, \textit{POSIX}-kompatible Software unter \textit{WebOS} zu betreiben.
+man Zugriff auf das zugrundeliegende System hat, \textit{POSIX}-kompatible Software unter \textit{WebOS} zu betreiben.
Für dieses Betriebssystem existiert ein \textit{SDK} für \textit{HTML5}, \textit{CSS} und \textit{Java}. Ein weiteres, welches im
März 2010 veröffentlicht wird, soll die \textit{C} und \textit{C++} Entwicklung ermöglichen.
\subsubsection{iPhone OS}
-Bei \textit{iPhoneOS} \footnote{iPhoneOS \url{http://www.apple.com/de/iphone/}} handelt es sich um eine abgeänderte und angepasste
-Version von MacOS. Somit bassiert auch der Kernel von \textit{iPhoneOS} sowohl auf teilen eines \textit{BSD}- \footnote{BSD
-\url{https://www.bsdwiki.de/}} sowie \textit{Mach}-Kernels
-\footnote{Mach \url{http://www.cs.cmu.edu/afs/cs/project/mach/public/www/mach.html}}. Dieses Betriebssystem wurde eigens für das
+Bei \textit{iPhoneOS}\footnote{iPhoneOS http://www.apple.com/de/iphone/ [Online; letzter Aufruf 03.02.2010]} handelt es sich
+um eine abgeänderte und angepasste Version von MacOS. Somit bassiert auch der Kernel von \textit{iPhoneOS} sowohl auf teilen eines
+\textit{BSD}-\footnote{BSD
+https://www.bsdwiki.de/ [Online; letzter Aufruf 24.02.2010]} sowie \textit{Mach}-Kernels\footnote{Mach
+http://www.cs.cmu.edu/afs/cs/project/mach/public/www/mach.html\newline[Online; letzter Aufruf 24.02.2010]}. Dieses
+Betriebssystem
+wurde eigens für das
iPhone entwickelt. Auch für dieses System existiert ein \textit{SDK}, welches allerdings nur die Sprache \textit{Objective-C}
unterstützt. Der größte Kritikpunkt an diesem System ist das Fehlen von \textit{Multitasking}-Unterstützung. Somit ist es nicht
möglich zwei Anwendungen parallel auszuführen, was gerade \textit{location awareness} Anwendungen stark einschränkt, da hier
@@ -75,11 +83,11 @@ häufig weitere Dienste im Hintergrund aktiv sein sollten.
\subsubsection{Symbian OS}
-\textit{SymbianOS} \footnote{SymbianOS \url{http://www.symbian.org/}} ist eine Betriebssystem welches vorzugsweise auf Geräten der
-Firma \textit{Nokia} zum
-Einsatz kommt. Es existiert ein \textit{SDK}, was neben \textit{C}/\textit{C++} auch noch weitere Sprachen wie zum Beispiel
-\textit{Python} oder \textit{Java} unterstützt. Mit dem \textit{SDK} wird auch ein \textit{Cross-Compiler} angeboten, welcher es
-ermöglicht Programme direkt zu portieren. Des weitern besitzt \textit{Symian OS} einen \textit{POSIX Layer}.
+\textit{SymbianOS}\footnote{SymbianOS http://www.symbian.org/ [Online; letzter Aufruf 03.02.2010]} ist eine Betriebssystem
+welches vorzugsweise auf Geräten der Firma \textit{Nokia} zum Einsatz kommt. Es existiert ein \textit{SDK}, was neben
+\textit{C}/\textit{C++} auch noch weitere Sprachen wie zum Beispiel \textit{Python} oder \textit{Java} unterstützt. Mit dem
+\textit{SDK} wird auch ein \textit{Cross-Compiler} angeboten, welcher es ermöglicht Programme direkt zu portieren. Des weitern
+besitzt \textit{Symian OS} einen \textit{POSIX Layer}.
\subsubsection{Zielplattform}
@@ -88,8 +96,9 @@ geplanten Dienst wichtig, da bei diesem Prozesse im Hintergund notwendig sind un
realisierbar wäre. \textit{Android} hat zwar eine \textit{C} Unterstützung, allerdings gibt der Hersteller an das nur die
mit dem \textit{NDK} verfügbaren Bibliotheken zum momentanen Zeitpunkt stabil verfügbar sind. Dies schränkt die
Entwicklung stark ein und ist für das zu entwickelnde Programm nicht geeignet.\newline
+Unter Nutzung des \textit{CeGCC's} wird das Programm für \textit{Windows Mobile} portiert werden.
Aufgrund der Implementierung in \textit{C} ist es auch möglich das Programm für \textit{WebOS} und \textit{SymbianOS} zu
-kompilieren.
+kompilieren und im Anschluss auszuführen.
\subsection{Softwaregrundlagen}
@@ -104,10 +113,11 @@ Mit dem \textit{CeGCC} ist es möglich \textit{C} Programmcode, der unter \texti
ausführbaren Dateien erstellt werden.\newline
Der \textit{CeGCC} kann in zwei unterschiedlichen Versionen genutzt werden. Zum einen bietet der \textit{wince-mingw32ce} eine
Menge an Tools mit welchen man native \textit{Windows Mobile} Applikationen erstellen kann. Hierzu wird eine
-Portierung der \textit{GNU} \footnote{GNU \url{http://www.gnu.org/}} Enwicklungswergzeuge aus dem \textit{MinGW} \footnote{MinGW
-http://mingw.org/} Projekt genutzt. Diese kompilieren und linken Code, um diesen unter \textit{Windows Mobile} ausführbar zu
-machen. Die andere Möglichkeit stellt die Nutzung des \textit{arm-cegcc} dar. Mit diesem kann \textit{POSIX}
-kompatibler Programmcoder nach \textit{Windows Mobile} portiert werden. %verfeinern
+Portierung der \textit{GNU}\footnote{GNU http://www.gnu.org/ [Online; letzter Aufruf 03.02.2010]} Enwicklungswergzeuge aus
+dem \textit{MinGW} \footnote{MinGW http://mingw.org/ [Online; letzter Aufruf 03.02.2010]} Projekt genutzt. Diese
+kompilieren und linken Code, um diesen unter \textit{Windows Mobile} ausführbar zu machen. Die andere Möglichkeit stellt die
+Nutzung des \textit{arm-cegcc} dar. Mit diesem kann \textit{POSIX} kompatibler Programmcoder nach \textit{Windows Mobile} portiert
+werden. %verfeinern
%# arm-mingw32ce : toolset to build native Windows CE applications
%# arm-cegcc : toolset to port unix source to Windows CE
@@ -126,15 +136,16 @@ kompatibler Programmcoder nach \textit{Windows Mobile} portiert werden. %verfein
Neben einem \textit{Cross-Compiler} wird noch ein geeignetes Frontend benötigt, um das Programm auch für den Benutzer
ansprechend darzustellen und eine einfache Bedienbarkeit zu garantieren. Dieses Frontend sollte auch in \textit{C} oder
\textit{C++} geschrieben sein, um auch hier die Portierbarkeit für die gewünschten Plattformen zu erhalten. Genutzt wird das
-freie, seit 1997 existierende, \textit{Enlightenment} \footnote{Elementray \url{http://www.enlightenment.org/}} Projekt. Dieses
-Softwarepaket unterstützt alle gängigen Plattformen wie Windows, Linux, BSD und MacOS. Es beinhaltet einen eigenen
-\textit{Window-Manager} names \textit{Elementary}. \textit{Elementary} bietet ein umfangreiches Paket an grafischen Elementen die
-genutzt und frei angeordnet werden können.
+freie, seit 1997 existierende, \textit{Enlightenment} \footnote{Elementray http://www.enlightenment.org/ [Online; letzter
+Aufruf 20.01.2010]} Projekt. Dieses Softwarepaket unterstützt alle gängigen Plattformen wie Windows, Linux, BSD und MacOS. Es
+beinhaltet einen eigenen \textit{Window-Manager} names \textit{Elementary}. \textit{Elementary} bietet ein umfangreiches Paket an
+grafischen Elementen die genutzt und frei angeordnet werden können.
\begin{figure}[h]
\centering
\includegraphics[width=2.2cm]{Bilder/elm-app-01_2} \includegraphics[width=2.7cm]{Bilder/elm-app-02_2}
\caption{Beispiele verschiedener \textit{Elementary} Icons}
+ \label{efl}
\end{figure}
\textit{Elementary} setzt auf die \textit{Enlightenment Foundation Libraries (EFL)} auf. Diese Bibliotheken werden zum Teil von
@@ -145,6 +156,7 @@ Pakete \textit{Evil, Eina, Eet, Embryo, Evas, Ecore, Edje} und\textit{Elementary
\centering
\includegraphics[width=2.7cm]{Bilder/efl}
\caption{Aufbau von \textit{Enlightenment}}
+ \label{enl}
\end{figure}
Bei \textit{Ecore} handelt es sich um eine Bibliothek, welche das Serialisieren von mehreren Programmteilen ermöglicht und
diff --git a/ausarbeitung/Tutorial.tex.backup b/ausarbeitung/Tutorial.tex.backup
index b838aa8..c42c019 100644
--- a/ausarbeitung/Tutorial.tex.backup
+++ b/ausarbeitung/Tutorial.tex.backup
@@ -1,7 +1,7 @@
\section{Technische Grundlagen}
Die Wahl der Plattform hängt von zwei verschiedenen Faktoren ab. Zum Einen stellt sich die Frage, ob die Handymodelle die
-benötigte Hardware, wie zum Beispiel \textit{GPS} oder eine Kamera besitzen, zum anderen ob Schnittstellen vorhanden sind um das
+benötigte Hardware, wie zum Beispiel \textit{GPS} oder eine Kamera besitzen, zum Anderen ob Schnittstellen vorhanden sind um das
Programm für das System zu entwickeln. \newline
Die Problematik der Plattformwahl aufgrund von vorhandener oder nicht vorhandener Hardware ist nicht allzu groß. Die meisten
aktuellen Geräte haben mittlerweile eine ähnliche Ausstattung was Speicher und Prozessorleistung angeht.Auch erweiterte Features
@@ -16,7 +16,8 @@ Systemen ausführbar sind. Es wird also ein \textit{Layer} benötigt, mit welche
genutzen werden können. Dabei sollte das zugrundeliegende System unabhängig von diesem \textit{Layer} sein. Es soll also damit vom
zugrundeliegenden
Betriebssystem abstrahiert werden. Ein entsprechender \textit{Layer} stellt der \textit{Portable Operating System Interface for
-Unix Layer (POSIX Layer)} \footnote{POSIX \url{http://standards.ieee.org/regauth/posix/}} dar. Mit diesem \textit{Layer} stehen
+Unix Layer (POSIX Layer)}\footnote{POSIX \url{http://standards.ieee.org/regauth/posix/} [Online; letzter Aufruf 16.02.2010]} dar.
+Mit diesem \textit{Layer} stehen
eine große Menge an aktuellen Bibliotheken aus der \textit{Open-Source} Gemeinde zur Verfügung. Diese haben den Vorteil, dass sie
aktiv
weiterentwickelt werden und auch ständig neue Bibliotheken hinzukommen. Anwendungen, die auf einem \textit{Linux}-System
@@ -29,24 +30,26 @@ nicht immer komplett neu implementieren.
\subsection{Betriebsysteme für mobile Geräte}
Durch die Wahl eines Betriebsystemes wird schon indirekt eine Vorauswahl an Nutzbaren Bibliotheken und Programmiersprachen
-getroffen wird. Im Folgenden werden fünf Betriebssysteme für mobile Plattformen vorgestellt und auf deren Portierungsmöglichkeiten
+getroffen. Im Folgenden werden fünf Betriebssysteme für mobile Plattformen vorgestellt und auf deren Portierungsmöglichkeiten
eingegangen.
\subsubsection{Windows Mobile}
-Das von Microsoft entwickelte \textit{Windows Mobile}
-\footnote{Windows Mobile \url{http://www.microsoft.com/windowsmobile/de-de/default.mspx}} in der aktuellen Version 6.5 verfügbar.
+Das von Microsoft entwickelte \textit{Windows Mobile}\footnote{Windows Mobile
+\url{http://www.microsoft.com/windowsmobile/de-de/default.mspx} [Online; letzter Aufruf 25.01.2010]} in der aktuellen Version 6.5
+verfügbar.
Das gesamte Betriebssystem basiert
auf der \textit{Windows Win32 API} und lässt Ähnlichkeiten zu den Desktop-Varianten der Windows-Familie erkennen. Es existiert
-ein \textit{Cross-Compiler} names \textit{CeGCC} \footnote{CeGCC \url{http://cegcc.sourceforge.net/}},
-mit welchem Programme die in \textit{C}/\textit{C++} geschrieben wurden für diese Plattform kompiliert werden können.
+ein \textit{Cross-Compiler} names \textit{CeGCC}\footnote{CeGCC \url{http://cegcc.sourceforge.net/} [Online; letzter Aufruf
+24.02.2010]}, mit welchem in \textit{C}/\textit{C++} geschriebene Programme für diese Plattform kompiliert und portiert werden
+können.
\subsubsection{Android}
-Das von \textit{Google} entwickelte \textit{Android} \footnote{Android \url{http://www.android.com/}} setzt auf einen
-\textit{Linux-Kernel} der Version 2.6 auf. Dieser \textit{Kernel} kümmert sich um die Prozess- und Speicherverwaltung,
-Kommunikation sowie um die Hardwareabstraktion. Auf diese Grundlage setzt eine virtuelle Java-Maschine auf, in welcher
-\textit{Android} läuft.\newline
+Das von \textit{Google} entwickelte \textit{Android}\footnote{Android \url{http://www.android.com/} [Online; letzter Aufruf
+25.01.2010]} setzt auf einen \textit{Linux-Kernel} der Version 2.6 auf. Dieser \textit{Kernel} kümmert sich um die Prozess- und
+Speicherverwaltung, Kommunikation sowie um die Hardwareabstraktion. Auf diese Grundlage setzt eine virtuelle Java-Maschine auf, in
+welcher \textit{Android} läuft.\newline
Zum Implementieren von Anwendungen stellt \textit{Google} eigens ein \textit{SDK} bereit. Dieses greift allerdings nur auf
\textit{Java}-Bibliotheken zurück, womit sich die Anzahl der nutzbaren Sprachen im Moment eben auf diese eine beschränkt. Des
weiteren bietet \textit{Google} ein \textit{NDK} an, mit desen Hilfe es auch möglich ist Programme in \textit{C} oder
@@ -54,21 +57,24 @@ weiteren bietet \textit{Google} ein \textit{NDK} an, mit desen Hilfe es auch mö
\subsubsection{WebOS}
-\textit{WebOS} \footnote{WebOS \url{http://palmwebos.org/}} wurde von \textit{Palm} als Nachfolger von \textit{PalmOS}
-\footnote{PalmOS \url{http://www.palm.com/}} entwickelt und ist momentan nur auf zwei Geräten zu finden: Auf dem \textit{Palm Pre}
+\textit{WebOS}\footnote{WebOS \url{http://palmwebos.org/} [Online; letzter Aufruf 25.01.2010]} wurde von \textit{Palm} als
+Nachfolger von \textit{PalmOS}\footnote{PalmOS \url{http://www.palm.com/} [Online; letzter Aufruf 25.01.2010]} entwickelt und ist
+momentan nur auf zwei Geräten zu finden: Auf dem \textit{Palm Pre}
und dem \textit{Palm Pixi}.\newline
Unter der Benutzeroberfläche von \textit{WebOS} arbeitet ein \textit{Linux-Kernel} in der Version 2.6. Somit ist es möglich, wenn
-man Zugriff auf diesen Kernel hat, \textit{POSIX}-kompatible Software unter \textit{WebOS} zu betreiben.
+man Zugriff auf das zugrundeliegende System hat, \textit{POSIX}-kompatible Software unter \textit{WebOS} zu betreiben.
Für dieses Betriebssystem existiert ein \textit{SDK} für \textit{HTML5}, \textit{CSS} und \textit{Java}. Ein weiteres, welches im
März 2010 veröffentlicht wird, soll die \textit{C} und \textit{C++} Entwicklung ermöglichen.
\subsubsection{iPhone OS}
-Bei \textit{iPhoneOS} \footnote{iPhoneOS \url{http://www.apple.com/de/iphone/}} handelt es sich um eine abgeänderte und angepasste
-Version von MacOS. Es wurde eigens für
-das iPhone entwickelt. Auch für dieses System existiert ein \textit{SDK}, welches allerdings nur die Sprache \textit{Objective-C}
-unterstützt. . Der
-größte Kritikpunkt an diesem System ist das Fehlen von \textit{Multitasking}-Unterstützung. Somit ist es nicht
+Bei \textit{iPhoneOS}\footnote{iPhoneOS \url{http://www.apple.com/de/iphone/} [Online; letzter Aufruf 03.02.2010]} handelt es sich
+um eine abgeänderte und angepasste
+Version von MacOS. Somit bassiert auch der Kernel von \textit{iPhoneOS} sowohl auf teilen eines \textit{BSD}- \footnote{BSD
+\url{https://www.bsdwiki.de/}} sowie \textit{Mach}-Kernels\footnote{Mach
+\url{http://www.cs.cmu.edu/afs/cs/project/mach/public/www/mach.html}}. Dieses Betriebssystem wurde eigens für das
+iPhone entwickelt. Auch für dieses System existiert ein \textit{SDK}, welches allerdings nur die Sprache \textit{Objective-C}
+unterstützt. Der größte Kritikpunkt an diesem System ist das Fehlen von \textit{Multitasking}-Unterstützung. Somit ist es nicht
möglich zwei Anwendungen parallel auszuführen, was gerade \textit{location awareness} Anwendungen stark einschränkt, da hier
häufig weitere Dienste im Hintergrund aktiv sein sollten.
@@ -108,17 +114,17 @@ http://mingw.org/} Projekt genutzt. Diese kompilieren und linken Code, um diese
machen. Die andere Möglichkeit stellt die Nutzung des \textit{arm-cegcc} dar. Mit diesem kann \textit{POSIX}
kompatibler Programmcoder nach \textit{Windows Mobile} portiert werden. %verfeinern
-# arm-mingw32ce : toolset to build native Windows CE applications
-# arm-cegcc : toolset to port unix source to Windows CE
+%# arm-mingw32ce : toolset to build native Windows CE applications
+%# arm-cegcc : toolset to port unix source to Windows CE
- Remember that arm-wince-cegcc implements a unix-like layer on top of Windows CE, and that arm-wince-mingw32ce implements the
-native CE API.
+% Remember that arm-wince-cegcc implements a unix-like layer on top of Windows CE, and that arm-wince-mingw32ce implements the
+%native CE API.
-The unix-like layer is only provided in the arm-wince-cegcc tools, the arm-wince-mingw32ce deliberately lack this as they attempt
-to provide a development environment that is as close to Windows CE as possible.
-Part of the code in this directory is required to be able to create executables that start a program in a consistent way (e.g.
-crt0.o, the startup code in an executable), but another part of this code provides a unix like layer with functionalities absent
-in Windows CE.
+%The unix-like layer is only provided in the arm-wince-cegcc tools, the arm-wince-mingw32ce deliberately lack this as they attempt
+%to provide a development environment that is as close to Windows CE as possible.
+% Part of the code in this directory is required to be able to create executables that start a program in a consistent way (e.g.
+% crt0.o, the startup code in an executable), but another part of this code provides a unix like layer with functionalities absent
+% in Windows CE.
\subsubsection{Enlightenment}
diff --git a/ausarbeitung/Tutorial.tex~ b/ausarbeitung/Tutorial.tex~
index febf0dc..52dd368 100644
--- a/ausarbeitung/Tutorial.tex~
+++ b/ausarbeitung/Tutorial.tex~
@@ -1,7 +1,7 @@
\section{Technische Grundlagen}
Die Wahl der Plattform hängt von zwei verschiedenen Faktoren ab. Zum Einen stellt sich die Frage, ob die Handymodelle die
-benötigte Hardware, wie zum Beispiel \textit{GPS} oder eine Kamera besitzen, zum anderen ob Schnittstellen vorhanden sind um das
+benötigte Hardware, wie zum Beispiel \textit{GPS} oder eine Kamera besitzen, zum Anderen ob Schnittstellen vorhanden sind um das
Programm für das System zu entwickeln. \newline
Die Problematik der Plattformwahl aufgrund von vorhandener oder nicht vorhandener Hardware ist nicht allzu groß. Die meisten
aktuellen Geräte haben mittlerweile eine ähnliche Ausstattung was Speicher und Prozessorleistung angeht.Auch erweiterte Features
@@ -16,7 +16,8 @@ Systemen ausführbar sind. Es wird also ein \textit{Layer} benötigt, mit welche
genutzen werden können. Dabei sollte das zugrundeliegende System unabhängig von diesem \textit{Layer} sein. Es soll also damit vom
zugrundeliegenden
Betriebssystem abstrahiert werden. Ein entsprechender \textit{Layer} stellt der \textit{Portable Operating System Interface for
-Unix Layer (POSIX Layer)} \footnote{POSIX \url{http://standards.ieee.org/regauth/posix/}} dar. Mit diesem \textit{Layer} stehen
+Unix Layer (POSIX Layer)}\footnote{POSIX http://standards.ieee.org/regauth/posix/ [Online; letzter Aufruf 16.02.2010]} dar.
+Mit diesem \textit{Layer} stehen
eine große Menge an aktuellen Bibliotheken aus der \textit{Open-Source} Gemeinde zur Verfügung. Diese haben den Vorteil, dass sie
aktiv
weiterentwickelt werden und auch ständig neue Bibliotheken hinzukommen. Anwendungen, die auf einem \textit{Linux}-System
@@ -29,24 +30,27 @@ nicht immer komplett neu implementieren.
\subsection{Betriebsysteme für mobile Geräte}
Durch die Wahl eines Betriebsystemes wird schon indirekt eine Vorauswahl an Nutzbaren Bibliotheken und Programmiersprachen
-getroffen wird. Im Folgenden werden fünf Betriebssysteme für mobile Plattformen vorgestellt und auf deren Portierungsmöglichkeiten
+getroffen. Im Folgenden werden fünf Betriebssysteme für mobile Plattformen vorgestellt und auf deren Portierungsmöglichkeiten
eingegangen.
\subsubsection{Windows Mobile}
-Das von Microsoft entwickelte \textit{Windows Mobile}
-\footnote{Windows Mobile \url{http://www.microsoft.com/windowsmobile/de-de/default.mspx}} in der aktuellen Version 6.5 verfügbar.
+Das von Microsoft entwickelte \textit{Windows Mobile}\footnote{Windows Mobile
+http://www.microsoft.com/windowsmobile/de-de/default.mspx\newline[Online; letzter Aufruf 25.01.2010]} in der aktuellen
+Version 6.5
+verfügbar.
Das gesamte Betriebssystem basiert
auf der \textit{Windows Win32 API} und lässt Ähnlichkeiten zu den Desktop-Varianten der Windows-Familie erkennen. Es existiert
-ein \textit{Cross-Compiler} names \textit{CeGCC} \footnote{CeGCC \url{http://cegcc.sourceforge.net/}},
-mit welchem Programme die in \textit{C}/\textit{C++} geschrieben wurden für diese Plattform kompiliert werden können.
+ein \textit{Cross-Compiler} names \textit{CeGCC}\footnote{CeGCC http://cegcc.sourceforge.net/ [Online; letzter Aufruf
+24.02.2010]}, mit welchem in \textit{C}/\textit{C++} geschriebene Programme für diese Plattform kompiliert und portiert werden
+können.
\subsubsection{Android}
-Das von \textit{Google} entwickelte \textit{Android} \footnote{Android \url{http://www.android.com/}} setzt auf einen
-\textit{Linux-Kernel} der Version 2.6 auf. Dieser \textit{Kernel} kümmert sich um die Prozess- und Speicherverwaltung,
-Kommunikation sowie um die Hardwareabstraktion. Auf diese Grundlage setzt eine virtuelle Java-Maschine auf, in welcher
-\textit{Android} läuft.\newline
+Das von \textit{Google} entwickelte \textit{Android}\footnote{Android http://www.android.com/ [Online; letzter Aufruf
+25.01.2010]} setzt auf einen \textit{Linux-Kernel} der Version 2.6 auf. Dieser \textit{Kernel} kümmert sich um die Prozess- und
+Speicherverwaltung, Kommunikation sowie um die Hardwareabstraktion. Auf diese Grundlage setzt eine virtuelle Java-Maschine auf, in
+welcher \textit{Android} läuft.\newline
Zum Implementieren von Anwendungen stellt \textit{Google} eigens ein \textit{SDK} bereit. Dieses greift allerdings nur auf
\textit{Java}-Bibliotheken zurück, womit sich die Anzahl der nutzbaren Sprachen im Moment eben auf diese eine beschränkt. Des
weiteren bietet \textit{Google} ein \textit{NDK} an, mit desen Hilfe es auch möglich ist Programme in \textit{C} oder
@@ -54,20 +58,24 @@ weiteren bietet \textit{Google} ein \textit{NDK} an, mit desen Hilfe es auch mö
\subsubsection{WebOS}
-\textit{WebOS} \footnote{WebOS \url{http://palmwebos.org/}} wurde von \textit{Palm} als Nachfolger von \textit{PalmOS}
-\footnote{PalmOS \url{http://www.palm.com/}} entwickelt und ist momentan nur auf zwei Geräten zu finden: Auf dem \textit{Palm Pre}
+\textit{WebOS}\footnote{WebOS http://palmwebos.org/ [Online; letzter Aufruf 25.01.2010]} wurde von \textit{Palm} als
+Nachfolger von \textit{PalmOS}\footnote{PalmOS http://www.palm.com/ [Online; letzter Aufruf 25.01.2010]} entwickelt und ist
+momentan nur auf zwei Geräten zu finden: Auf dem \textit{Palm Pre}
und dem \textit{Palm Pixi}.\newline
Unter der Benutzeroberfläche von \textit{WebOS} arbeitet ein \textit{Linux-Kernel} in der Version 2.6. Somit ist es möglich, wenn
-man Zugriff auf diesen Kernel hat, \textit{POSIX}-kompatible Software unter \textit{WebOS} zu betreiben.
+man Zugriff auf das zugrundeliegende System hat, \textit{POSIX}-kompatible Software unter \textit{WebOS} zu betreiben.
Für dieses Betriebssystem existiert ein \textit{SDK} für \textit{HTML5}, \textit{CSS} und \textit{Java}. Ein weiteres, welches im
März 2010 veröffentlicht wird, soll die \textit{C} und \textit{C++} Entwicklung ermöglichen.
\subsubsection{iPhone OS}
-Bei \textit{iPhoneOS} \footnote{iPhoneOS \url{http://www.apple.com/de/iphone/}} handelt es sich um eine abgeänderte und angepasste
-Version von MacOS. Somit bassiert auch der Kernel von \textit{iPhoneOS} sowohl auf teilen eines \textit{BSD}- \footnote{BSD
-\url{https://www.bsdwiki.de/}} sowie \textit{Mach}-Kernels
-\footnote{Mach \url{http://www.cs.cmu.edu/afs/cs/project/mach/public/www/mach.html}}. Dieses Betriebssystem wurde eigens für das
+Bei \textit{iPhoneOS}\footnote{iPhoneOS http://www.apple.com/de/iphone/ [Online; letzter Aufruf 03.02.2010]} handelt es sich
+um eine abgeänderte und angepasste Version von MacOS. Somit bassiert auch der Kernel von \textit{iPhoneOS} sowohl auf teilen eines
+\textit{BSD}-\footnote{BSD
+https://www.bsdwiki.de/ [Online; letzter Aufruf 24.02.2010]} sowie \textit{Mach}-Kernels\footnote{Mach
+http://www.cs.cmu.edu/afs/cs/project/mach/public/www/mach.html\newline[Online; letzter Aufruf 24.02.2010]}. Dieses
+Betriebssystem
+wurde eigens für das
iPhone entwickelt. Auch für dieses System existiert ein \textit{SDK}, welches allerdings nur die Sprache \textit{Objective-C}
unterstützt. Der größte Kritikpunkt an diesem System ist das Fehlen von \textit{Multitasking}-Unterstützung. Somit ist es nicht
möglich zwei Anwendungen parallel auszuführen, was gerade \textit{location awareness} Anwendungen stark einschränkt, da hier
@@ -75,11 +83,11 @@ häufig weitere Dienste im Hintergrund aktiv sein sollten.
\subsubsection{Symbian OS}
-\textit{SymbianOS} \footnote{SymbianOS \url{http://www.symbian.org/}} ist eine Betriebssystem welches vorzugsweise auf Geräten der
-Firma \textit{Nokia} zum
-Einsatz kommt. Es existiert ein \textit{SDK}, was neben \textit{C}/\textit{C++} auch noch weitere Sprachen wie zum Beispiel
-\textit{Python} oder \textit{Java} unterstützt. Mit dem \textit{SDK} wird auch ein \textit{Cross-Compiler} angeboten, welcher es
-ermöglicht Programme direkt zu portieren. Des weitern besitzt \textit{Symian OS} einen \textit{POSIX Layer}.
+\textit{SymbianOS}\footnote{SymbianOS http://www.symbian.org/ [Online; letzter Aufruf 03.02.2010]} ist eine Betriebssystem
+welches vorzugsweise auf Geräten der Firma \textit{Nokia} zum Einsatz kommt. Es existiert ein \textit{SDK}, was neben
+\textit{C}/\textit{C++} auch noch weitere Sprachen wie zum Beispiel \textit{Python} oder \textit{Java} unterstützt. Mit dem
+\textit{SDK} wird auch ein \textit{Cross-Compiler} angeboten, welcher es ermöglicht Programme direkt zu portieren. Des weitern
+besitzt \textit{Symian OS} einen \textit{POSIX Layer}.
\subsubsection{Zielplattform}
@@ -88,8 +96,9 @@ geplanten Dienst wichtig, da bei diesem Prozesse im Hintergund notwendig sind un
realisierbar wäre. \textit{Android} hat zwar eine \textit{C} Unterstützung, allerdings gibt der Hersteller an das nur die
mit dem \textit{NDK} verfügbaren Bibliotheken zum momentanen Zeitpunkt stabil verfügbar sind. Dies schränkt die
Entwicklung stark ein und ist für das zu entwickelnde Programm nicht geeignet.\newline
+Unter Nutzung des \textit{CeGCC's} wird das Programm für \textit{Windows Mobile} portiert werden.
Aufgrund der Implementierung in \textit{C} ist es auch möglich das Programm für \textit{WebOS} und \textit{SymbianOS} zu
-kompilieren.
+kompilieren und im Anschluss auszuführen.
\subsection{Softwaregrundlagen}
@@ -104,10 +113,11 @@ Mit dem \textit{CeGCC} ist es möglich \textit{C} Programmcode, der unter \texti
ausführbaren Dateien erstellt werden.\newline
Der \textit{CeGCC} kann in zwei unterschiedlichen Versionen genutzt werden. Zum einen bietet der \textit{wince-mingw32ce} eine
Menge an Tools mit welchen man native \textit{Windows Mobile} Applikationen erstellen kann. Hierzu wird eine
-Portierung der \textit{GNU} \footnote{GNU \url{http://www.gnu.org/}} Enwicklungswergzeuge aus dem \textit{MinGW} \footnote{MinGW
-http://mingw.org/} Projekt genutzt. Diese kompilieren und linken Code, um diesen unter \textit{Windows Mobile} ausführbar zu
-machen. Die andere Möglichkeit stellt die Nutzung des \textit{arm-cegcc} dar. Mit diesem kann \textit{POSIX}
-kompatibler Programmcoder nach \textit{Windows Mobile} portiert werden. %verfeinern
+Portierung der \textit{GNU}\footnote{GNU http://www.gnu.org/ [Online; letzter Aufruf 03.02.2010]} Enwicklungswergzeuge aus
+dem \textit{MinGW} \footnote{MinGW http://mingw.org/ [Online; letzter Aufruf 03.02.2010]} Projekt genutzt. Diese
+kompilieren und linken Code, um diesen unter \textit{Windows Mobile} ausführbar zu machen. Die andere Möglichkeit stellt die
+Nutzung des \textit{arm-cegcc} dar. Mit diesem kann \textit{POSIX} kompatibler Programmcoder nach \textit{Windows Mobile} portiert
+werden. %verfeinern
%# arm-mingw32ce : toolset to build native Windows CE applications
%# arm-cegcc : toolset to port unix source to Windows CE
@@ -126,15 +136,16 @@ kompatibler Programmcoder nach \textit{Windows Mobile} portiert werden. %verfein
Neben einem \textit{Cross-Compiler} wird noch ein geeignetes Frontend benötigt, um das Programm auch für den Benutzer
ansprechend darzustellen und eine einfache Bedienbarkeit zu garantieren. Dieses Frontend sollte auch in \textit{C} oder
\textit{C++} geschrieben sein, um auch hier die Portierbarkeit für die gewünschten Plattformen zu erhalten. Genutzt wird das
-freie, seit 1997 existierende, \textit{Enlightenment} \footnote{Elementray \url{http://www.enlightenment.org/}} Projekt. Dieses
-Softwarepaket unterstützt alle gängigen Plattformen wie Windows, Linux, BSD und MacOS. Es beinhaltet einen eigenen
-\textit{Window-Manager} names \textit{Elementary}. \textit{Elementary} bietet ein umfangreiches Paket an grafischen Elementen die
-genutzt und frei angeordnet werden können.
+freie, seit 1997 existierende, \textit{Enlightenment} \footnote{Elementray http://www.enlightenment.org/ [Online; letzter
+Aufruf 20.01.2010]} Projekt. Dieses Softwarepaket unterstützt alle gängigen Plattformen wie Windows, Linux, BSD und MacOS. Es
+beinhaltet einen eigenen \textit{Window-Manager} names \textit{Elementary}. \textit{Elementary} bietet ein umfangreiches Paket an
+grafischen Elementen die genutzt und frei angeordnet werden können.
\begin{figure}[h]
\centering
\includegraphics[width=2.2cm]{Bilder/elm-app-01_2} \includegraphics[width=2.7cm]{Bilder/elm-app-02_2}
\caption{Beispiele verschiedener \textit{Elementary} Icons}
+ \label{efl}
\end{figure}
\textit{Elementary} setzt auf die \textit{Enlightenment Foundation Libraries (EFL)} auf. Diese Bibliotheken werden zum Teil von
@@ -145,6 +156,7 @@ Pakete \textit{Evil, Eina, Eet, Embryo, Evas, Ecore, Edje} und\textit{Elementary
\centering
\includegraphics[width=2.7cm]{Bilder/efl}
\caption{Aufbau von \textit{Enlightenment}}
+ \label{enl}
\end{figure}
Bei \textit{Ecore} handelt es sich um eine Bibliothek, welche das Serialisieren von mehreren Programmteilen ermöglicht und
diff --git a/ausarbeitung/literature.bib b/ausarbeitung/literature.bib
index ee9fcd4..af1c041 100644
--- a/ausarbeitung/literature.bib
+++ b/ausarbeitung/literature.bib
@@ -1,19 +1,25 @@
-@misc{IRC,
-title = {RFC 1459 Internet Relay Chat},
+@article{IRC,
+title = {{RFC 1459 Internet Relay Chat}},
author = {J. Oikarinen and D. Reed},
year = {2003},
}
-@misc{SPALS,
-title = {Spontaneous Privacy-Aware Location Sharing},
-author = {Konstantin Welke and Klaus Rechert},
-organization= {Lehrstuhl für Kommunikationssysteme, Albert-Ludwigs Universität Freiburg},
-year = {2009},
+@article{Base64,
+title = {{RFC 4648 The Base16, Base32, and Base64 Data Encodings}},
+author = {S. Josefsson},
+year = {2006},
}
+@article{SPALS,
+title = {{Spontaneous Privacy-Aware Location Sharing}},
+author = {K. Welke and K. Rechert},
+journal= {In proceedings of the 4th International Conference on Pervasive Computing and Applications (ICPCA 2009)},
+year = {2009},
+}
+2
@article{privacy,
title = {Location privacy and locationaware computing},
-author = {Matt Duckham and Lars Kulik},
+author = {M. Duckham and L. Kulik},
journal = {Dynamic and mobile GIS: investigating change in space and time},
year = {2006},
pages = {34-51},
@@ -21,7 +27,7 @@ pages = {34-51},
@article{bluetooth,
title = {Cracking the Bluetooth PIN},
-author = {Yaniv Shaked and Avishai Wool},
+author = {Y. Shaked and A. Wool},
journal = {Proceedings of the 3rd international conference on Mobile systems, applications, and services},
organization= {School of Electrical Engineering Systems Tel Aviv University},
year = {2005},
@@ -30,31 +36,31 @@ pages = {39-50},
@article{blowfish,
title = {Description of a New Variable-Length Key, 64-Bit Block Cipher (Blowfish)},
-author = {Bruce Schneier},
+author = {B. Schneier},
year = {1994},
journal = {Fast Software Encryption, Cambridge Security Workshop Proceedings},
pages = {191-204},
}
@article{kprivacy,
-title = {Anonymous usage of location based services through spatial and temporal cloacking},
-author = {Marco Gruteser and Dirk Grunwald},
+title = {{Anonymous usage of location based services through spatial and temporal cloacking}},
+author = {M. Gruteser and D. Grunwald},
year = {2003},
journal = {Proceedings of the 1st international conference on Mobile systems, applications and services},
pages = {31-42},
}
@article{kanonymity,
-title = {k-Anonymity},
-author = {Valentina Ciriani and Sabrina De Capitani di Vimercati and Sara Foresti and Pierangela Samarati},
+title = {{k-Anonymity}},
+author = {V. Ciriani and S. De Capitani di Vimercati and S. Foresti and P. Samarati},
year = {2007},
journal = {Secure Data Management in Decentralized Systems},
pages = {323-353},
}
@article{quadtree,
-title = {The Quadtree and Related Hierarchical Data Structures},
-author = {Hanan Samet},
+title = {{The Quadtree and Related Hierarchical Data Structures}},
+author = {H. Samet},
year = {1984},
journal = {ACM Computing Surveys (CSUR)},
pages = {187-260},
@@ -63,24 +69,17 @@ volume = {Volume 16},
@article{dummy,
title = {An anonymous communication technique using dummies for location-based services},
-author = {Hidetoshi Kido and Yutaka Yanagisawa and Tetsuji Satoh},
+author = {H. Kido and Y. Yanagisawa and T. Satoh},
year = {2005},
journal = {ICPS '05. Proceedings. International Conference on Pervasive Services},
pages = {88-97},
}
@article{geocaching,
-title = {Geocaching: hike and seek with your GPS.},
-author = {Erik Sherman},
+title = {{Geocaching: hike and seek with your GPS.}},
+author = {E. Sherman},
year = {2005},
journal = {Computing Reviews},
volume = {Volume 46},
number = {2},
}
-
-@article{symm,
-author = {Günter Müller},
-howpublished = {Vorlesung IT-Sicherheit},
-year = {2009},
-page = {17-18},
-}
diff --git a/ausarbeitung/literature.bib.backup b/ausarbeitung/literature.bib.backup
index 13969e0..904da8b 100644
--- a/ausarbeitung/literature.bib.backup
+++ b/ausarbeitung/literature.bib.backup
@@ -1,19 +1,25 @@
-@misc{qrcode,
-title = {QR Code},
-url = {http://www.denso-wave.com/qrcode/qrstandard-e.html},
-Note = {[Online; letzter Aufruf 11.02.2010]},
+@misc{IRC,
+title = {RFC 1459 Internet Relay Chat},
+author = {J. Oikarinen and D. Reed},
+year = {2003},
+}
+
+@misc{Base64,
+title = {RFC 4648},
+author = {S. Josefsson},
+year = {2006},
}
-@misc{SPALS,
+@article{SPALS,
title = {Spontaneous Privacy-Aware Location Sharing},
-author = {Konstantin Welke and Klaus Rechert},
-organization= {Lehrstuhl für Kommunikationssysteme, Albert-Ludwigs Universität Freiburg},
+author = {K. Welke and K. Rechert},
+journal= {In proceedings of the 4th International Conference on Pervasive Computing and Applications (ICPCA 2009)},
year = {2009},
}
@article{privacy,
title = {Location privacy and locationaware computing},
-author = {Matt Duckham and Lars Kulik},
+author = {M. Duckham and L. Kulik},
journal = {Dynamic and mobile GIS: investigating change in space and time},
year = {2006},
pages = {34-51},
@@ -21,7 +27,7 @@ pages = {34-51},
@article{bluetooth,
title = {Cracking the Bluetooth PIN},
-author = {Yaniv Shaked and Avishai Wool},
+author = {Y. Shaked and A. Wool},
journal = {Proceedings of the 3rd international conference on Mobile systems, applications, and services},
organization= {School of Electrical Engineering Systems Tel Aviv University},
year = {2005},
@@ -30,7 +36,7 @@ pages = {39-50},
@article{blowfish,
title = {Description of a New Variable-Length Key, 64-Bit Block Cipher (Blowfish)},
-author = {Bruce Schneier},
+author = {B. Schneier},
year = {1994},
journal = {Fast Software Encryption, Cambridge Security Workshop Proceedings},
pages = {191-204},
@@ -38,7 +44,7 @@ pages = {191-204},
@article{kprivacy,
title = {Anonymous usage of location based services through spatial and temporal cloacking},
-author = {Marco Gruteser and Dirk Grunwald},
+author = {M. Gruteser and D. Grunwald},
year = {2003},
journal = {Proceedings of the 1st international conference on Mobile systems, applications and services},
pages = {31-42},
@@ -46,7 +52,7 @@ pages = {31-42},
@article{kanonymity,
title = {k-Anonymity},
-author = {Valentina Ciriani and Sabrina De Capitani di Vimercati and Sara Foresti and Pierangela Samarati},
+author = {V. Ciriani and S. De Capitani di Vimercati and S. Foresti and P. Samarati},
year = {2007},
journal = {Secure Data Management in Decentralized Systems},
pages = {323-353},
@@ -54,7 +60,7 @@ pages = {323-353},
@article{quadtree,
title = {The Quadtree and Related Hierarchical Data Structures},
-author = {Hanan Samet},
+author = {H. Samet},
year = {1984},
journal = {ACM Computing Surveys (CSUR)},
pages = {187-260},
@@ -63,7 +69,7 @@ volume = {Volume 16},
@article{dummy,
title = {An anonymous communication technique using dummies for location-based services},
-author = {Hidetoshi Kido and Yutaka Yanagisawa and Tetsuji Satoh},
+author = {H. Kido and Y. Yanagisawa and T. Satoh},
year = {2005},
journal = {ICPS '05. Proceedings. International Conference on Pervasive Services},
pages = {88-97},
@@ -71,7 +77,7 @@ pages = {88-97},
@article{geocaching,
title = {Geocaching: hike and seek with your GPS.},
-author = {Erik Sherman},
+author = {E. Sherman},
year = {2005},
journal = {Computing Reviews},
volume = {Volume 46},
@@ -79,8 +85,8 @@ number = {2},
}
@article{symm,
-author = {Günter Müller},
-howpublished = {Vorlesung IT-Sicherheit},
+author = {G. Müller},
+title = {Vorlesung IT-Sicherheit},
year = {2009},
-page = {17-18},
+pages = {17-18},
}
diff --git a/ausarbeitung/literature.bib~ b/ausarbeitung/literature.bib~
index 3db6531..af1c041 100644
--- a/ausarbeitung/literature.bib~
+++ b/ausarbeitung/literature.bib~
@@ -1,25 +1,25 @@
-@misc{qrcode,
-title = {QR Code},
-url = {http://www.denso-wave.com/qrcode/qrstandard-e.html},
-Note = {[Online; letzter Aufruf 11.02.2010]},
-}
-
-@misc{IRC,
-title = {RFC 1459 Internet Relay Chat},
+@article{IRC,
+title = {{RFC 1459 Internet Relay Chat}},
author = {J. Oikarinen and D. Reed},
year = {2003},
}
-@misc{SPALS,
-title = {Spontaneous Privacy-Aware Location Sharing},
-author = {Konstantin Welke and Klaus Rechert},
-organization= {Lehrstuhl für Kommunikationssysteme, Albert-Ludwigs Universität Freiburg},
-year = {2009},
+@article{Base64,
+title = {{RFC 4648 The Base16, Base32, and Base64 Data Encodings}},
+author = {S. Josefsson},
+year = {2006},
}
+@article{SPALS,
+title = {{Spontaneous Privacy-Aware Location Sharing}},
+author = {K. Welke and K. Rechert},
+journal= {In proceedings of the 4th International Conference on Pervasive Computing and Applications (ICPCA 2009)},
+year = {2009},
+}
+2
@article{privacy,
title = {Location privacy and locationaware computing},
-author = {Matt Duckham and Lars Kulik},
+author = {M. Duckham and L. Kulik},
journal = {Dynamic and mobile GIS: investigating change in space and time},
year = {2006},
pages = {34-51},
@@ -27,7 +27,7 @@ pages = {34-51},
@article{bluetooth,
title = {Cracking the Bluetooth PIN},
-author = {Yaniv Shaked and Avishai Wool},
+author = {Y. Shaked and A. Wool},
journal = {Proceedings of the 3rd international conference on Mobile systems, applications, and services},
organization= {School of Electrical Engineering Systems Tel Aviv University},
year = {2005},
@@ -36,31 +36,31 @@ pages = {39-50},
@article{blowfish,
title = {Description of a New Variable-Length Key, 64-Bit Block Cipher (Blowfish)},
-author = {Bruce Schneier},
+author = {B. Schneier},
year = {1994},
journal = {Fast Software Encryption, Cambridge Security Workshop Proceedings},
pages = {191-204},
}
@article{kprivacy,
-title = {Anonymous usage of location based services through spatial and temporal cloacking},
-author = {Marco Gruteser and Dirk Grunwald},
+title = {{Anonymous usage of location based services through spatial and temporal cloacking}},
+author = {M. Gruteser and D. Grunwald},
year = {2003},
journal = {Proceedings of the 1st international conference on Mobile systems, applications and services},
pages = {31-42},
}
@article{kanonymity,
-title = {k-Anonymity},
-author = {Valentina Ciriani and Sabrina De Capitani di Vimercati and Sara Foresti and Pierangela Samarati},
+title = {{k-Anonymity}},
+author = {V. Ciriani and S. De Capitani di Vimercati and S. Foresti and P. Samarati},
year = {2007},
journal = {Secure Data Management in Decentralized Systems},
pages = {323-353},
}
@article{quadtree,
-title = {The Quadtree and Related Hierarchical Data Structures},
-author = {Hanan Samet},
+title = {{The Quadtree and Related Hierarchical Data Structures}},
+author = {H. Samet},
year = {1984},
journal = {ACM Computing Surveys (CSUR)},
pages = {187-260},
@@ -69,24 +69,17 @@ volume = {Volume 16},
@article{dummy,
title = {An anonymous communication technique using dummies for location-based services},
-author = {Hidetoshi Kido and Yutaka Yanagisawa and Tetsuji Satoh},
+author = {H. Kido and Y. Yanagisawa and T. Satoh},
year = {2005},
journal = {ICPS '05. Proceedings. International Conference on Pervasive Services},
pages = {88-97},
}
@article{geocaching,
-title = {Geocaching: hike and seek with your GPS.},
-author = {Erik Sherman},
+title = {{Geocaching: hike and seek with your GPS.}},
+author = {E. Sherman},
year = {2005},
journal = {Computing Reviews},
volume = {Volume 46},
number = {2},
}
-
-@article{symm,
-author = {Günter Müller},
-howpublished = {Vorlesung IT-Sicherheit},
-year = {2009},
-page = {17-18},
-}
diff --git a/ausarbeitung/maindoc.aux b/ausarbeitung/maindoc.aux
index 90595f5..da8fc5f 100644
--- a/ausarbeitung/maindoc.aux
+++ b/ausarbeitung/maindoc.aux
@@ -28,8 +28,8 @@
\bibcite{kanonymity}{{1}{}{{}}{{}}}
\bibcite{privacy}{{2}{}{{}}{{}}}
\bibcite{kprivacy}{{3}{}{{}}{{}}}
-\bibcite{dummy}{{4}{}{{}}{{}}}
-\bibcite{symm}{{5}{}{{}}{{}}}
+\bibcite{Base64}{{4}{}{{}}{{}}}
+\bibcite{dummy}{{5}{}{{}}{{}}}
\bibcite{IRC}{{6}{}{{}}{{}}}
\bibcite{quadtree}{{7}{}{{}}{{}}}
\bibcite{blowfish}{{8}{}{{}}{{}}}
diff --git a/ausarbeitung/maindoc.bbl b/ausarbeitung/maindoc.bbl
index 6ea8704..b9761a7 100644
--- a/ausarbeitung/maindoc.bbl
+++ b/ausarbeitung/maindoc.bbl
@@ -1,65 +1,68 @@
\begin{thebibliography}{10}
\bibitem{kanonymity}
-Valentina Ciriani, Sabrina De~Capitani di~Vimercati, Sara Foresti, and
- Pierangela Samarati.
-\newblock k-anonymity.
+V.~Ciriani, S.~De~Capitani di~Vimercati, S.~Foresti, and P.~Samarati.
+\newblock {k-Anonymity}.
\newblock {\em Secure Data Management in Decentralized Systems}, pages
323--353, 2007.
\bibitem{privacy}
-Matt Duckham and Lars Kulik.
+M.~Duckham and L.~Kulik.
\newblock Location privacy and locationaware computing.
\newblock {\em Dynamic and mobile GIS: investigating change in space and time},
pages 34--51, 2006.
\bibitem{kprivacy}
-Marco Gruteser and Dirk Grunwald.
-\newblock Anonymous usage of location based services through spatial and
- temporal cloacking.
+M.~Gruteser and D.~Grunwald.
+\newblock {Anonymous usage of location based services through spatial and
+ temporal cloacking}.
\newblock {\em Proceedings of the 1st international conference on Mobile
systems, applications and services}, pages 31--42, 2003.
+\bibitem{Base64}
+S.~Josefsson.
+\newblock {RFC 4648 The Base16, Base32, and Base64 Data Encodings}.
+\newblock 2006.
+
\bibitem{dummy}
-Hidetoshi Kido, Yutaka Yanagisawa, and Tetsuji Satoh.
+H.~Kido, Y.~Yanagisawa, and T.~Satoh.
\newblock An anonymous communication technique using dummies for location-based
services.
\newblock {\em ICPS '05. Proceedings. International Conference on Pervasive
Services}, pages 88--97, 2005.
-\bibitem{symm}
-Günter Müller.
-\newblock 2009.
-
\bibitem{IRC}
J.~Oikarinen and D.~Reed.
-\newblock Rfc 1459 internet relay chat, 2003.
+\newblock {RFC 1459 Internet Relay Chat}.
+\newblock 2003.
\bibitem{quadtree}
-Hanan Samet.
-\newblock The quadtree and related hierarchical data structures.
+H.~Samet.
+\newblock {The Quadtree and Related Hierarchical Data Structures}.
\newblock {\em ACM Computing Surveys (CSUR)}, Volume 16:187--260, 1984.
\bibitem{blowfish}
-Bruce Schneier.
+B.~Schneier.
\newblock Description of a new variable-length key, 64-bit block cipher
(blowfish).
\newblock {\em Fast Software Encryption, Cambridge Security Workshop
Proceedings}, pages 191--204, 1994.
\bibitem{bluetooth}
-Yaniv Shaked and Avishai Wool.
+Y.~Shaked and A.~Wool.
\newblock Cracking the bluetooth pin.
\newblock {\em Proceedings of the 3rd international conference on Mobile
systems, applications, and services}, pages 39--50, 2005.
\bibitem{geocaching}
-Erik Sherman.
-\newblock Geocaching: hike and seek with your gps.
+E.~Sherman.
+\newblock {Geocaching: hike and seek with your GPS.}
\newblock {\em Computing Reviews}, Volume 46(2), 2005.
\bibitem{SPALS}
-Konstantin Welke and Klaus Rechert.
-\newblock Spontaneous privacy-aware location sharing, 2009.
+K.~Welke and K.~Rechert.
+\newblock {Spontaneous Privacy-Aware Location Sharing}.
+\newblock {\em In proceedings of the 4th International Conference on Pervasive
+ Computing and Applications (ICPCA 2009)}, 2009.
\end{thebibliography}
diff --git a/ausarbeitung/maindoc.blg b/ausarbeitung/maindoc.blg
index 4b926ce..0730e47 100644
--- a/ausarbeitung/maindoc.blg
+++ b/ausarbeitung/maindoc.blg
@@ -10,41 +10,41 @@ A level-1 auxiliary file: Fazit.aux
A level-1 auxiliary file: Anhang.aux
The style file: plain.bst
Database file #1: literature.bib
-Warning--empty title in symm
-Warning--empty journal in symm
+Warning--empty journal in Base64
+Warning--empty journal in IRC
You've used 11 entries,
2118 wiz_defined-function locations,
- 566 strings with 5720 characters,
-and the built_in function-call counts, 3574 in all, are:
-= -- 354
+ 567 strings with 5725 characters,
+and the built_in function-call counts, 3590 in all, are:
+= -- 361
> -- 134
< -- 6
-+ -- 55
++ -- 54
- -- 42
-* -- 197
-:= -- 571
-add.period$ -- 30
+* -- 198
+:= -- 586
+add.period$ -- 33
call.type$ -- 11
-change.case$ -- 53
+change.case$ -- 54
chr.to.int$ -- 0
cite$ -- 13
-duplicate$ -- 157
-empty$ -- 286
+duplicate$ -- 163
+empty$ -- 276
format.name$ -- 42
-if$ -- 792
+if$ -- 789
int.to.chr$ -- 0
int.to.str$ -- 11
-missing$ -- 9
-newline$ -- 55
+missing$ -- 11
+newline$ -- 58
num.names$ -- 22
-pop$ -- 64
+pop$ -- 54
preamble$ -- 1
purify$ -- 43
quote$ -- 0
-skip$ -- 143
+skip$ -- 142
stack$ -- 0
-substring$ -- 214
-swap$ -- 56
+substring$ -- 213
+swap$ -- 55
text.length$ -- 6
text.prefix$ -- 0
top$ -- 0
@@ -52,5 +52,5 @@ type$ -- 44
warning$ -- 2
while$ -- 35
width$ -- 13
-write$ -- 113
+write$ -- 118
(There were 2 warnings)
diff --git a/ausarbeitung/maindoc.log b/ausarbeitung/maindoc.log
index d4e694b..a9be6e9 100644
--- a/ausarbeitung/maindoc.log
+++ b/ausarbeitung/maindoc.log
@@ -1,4 +1,4 @@
-This is pdfTeXk, Version 3.141592-1.40.3 (Web2C 7.5.6) (format=pdflatex 2009.12.22) 24 FEB 2010 22:08
+This is pdfTeXk, Version 3.141592-1.40.3 (Web2C 7.5.6) (format=pdflatex 2009.12.22) 26 FEB 2010 12:01
entering extended mode
%&-line parsing enabled.
**maindoc
@@ -333,34 +333,15 @@ LaTeX Font Info: Overwriting math alphabet `\mathit' in version `bold'
(Font) OT1/cmr/bx/it --> OT1/ptm/m/it on input line 35.
LaTeX Info: Redefining \hbar on input line 50.
)
-(/usr/share/texmf-texlive/tex/latex/listings/listings.sty
-\lst@mode=\count113
-\lst@gtempboxa=\box31
-\lst@token=\toks30
-\lst@length=\count114
-\lst@currlwidth=\dimen134
-\lst@column=\count115
-\lst@pos=\count116
-\lst@lostspace=\dimen135
-\lst@width=\dimen136
-\lst@newlines=\count117
-\lst@lineno=\count118
-\c@lstlisting=\count119
-\lst@maxwidth=\dimen137
+(/usr/share/texmf-texlive/tex/latex/graphics/color.sty
+Package: color 2005/11/14 v1.0j Standard LaTeX Color (DPC)
-(/usr/share/texmf-texlive/tex/latex/listings/lstpatch.sty
-File: lstpatch.sty 2004/10/17 1.3b (Carsten Heinz)
+(/etc/texmf/tex/latex/config/color.cfg
+File: color.cfg 2007/01/18 v1.5 color configuration of teTeX/TeXLive
)
-(/usr/share/texmf-texlive/tex/latex/listings/lstmisc.sty
-File: lstmisc.sty 2004/09/07 1.3 (Carsten Heinz)
-\c@lstnumber=\count120
-\lst@skipnumbers=\count121
-\lst@framebox=\box32
+Package color Info: Driver file: pdftex.def on input line 130.
)
-(/usr/share/texmf-texlive/tex/latex/listings/listings.cfg
-File: listings.cfg 2004/09/05 1.3 listings configuration
-))
-Package: listings 2004/10/17 1.3b (Carsten Heinz)
+Package color Info: Redefining color white on input line 45.
(/usr/share/texmf-texlive/tex/latex/eqlist/eqlist.sty
eqlist.sty by M. Vaeth: Revision 2.1
@@ -370,13 +351,13 @@ Package: eqparbox 2004/08/02 v2.1 Create equal-widthed parboxes
\eqp@tempdima=\skip59
\eqp@tempdimb=\skip60
)
-\eql@cnt=\count122
+\eql@cnt=\count113
)
(/usr/share/texmf-texlive/tex/latex/hyperref/hyperref.sty
Package: hyperref 2007/02/07 v6.75r Hypertext links for LaTeX
-\@linkdim=\dimen138
-\Hy@linkcounter=\count123
-\Hy@pagecounter=\count124
+\@linkdim=\dimen134
+\Hy@linkcounter=\count114
+\Hy@pagecounter=\count115
(/usr/share/texmf-texlive/tex/latex/hyperref/pd1enc.def
File: pd1enc.def 2007/02/07 v6.75r Hyperref: PDFDocEncoding definition (HO)
@@ -400,24 +381,53 @@ Package hyperref Info: Backreferencing OFF on input line 2308.
Implicit mode ON; LaTeX internals redefined
Package hyperref Info: Bookmarks ON on input line 2444.
LaTeX Info: Redefining \url on input line 2599.
-\Fld@menulength=\count125
-\Field@Width=\dimen139
-\Fld@charsize=\dimen140
-\Choice@toks=\toks31
-\Field@toks=\toks32
+\Fld@menulength=\count116
+\Field@Width=\dimen135
+\Fld@charsize=\dimen136
+\Choice@toks=\toks30
+\Field@toks=\toks31
Package hyperref Info: Hyper figures OFF on input line 3102.
Package hyperref Info: Link nesting OFF on input line 3107.
Package hyperref Info: Hyper index ON on input line 3110.
Package hyperref Info: backreferencing OFF on input line 3117.
Package hyperref Info: Link coloring ON on input line 3120.
-\Hy@abspage=\count126
-\c@Item=\count127
+\Hy@abspage=\count117
+\c@Item=\count118
)
*hyperref using driver hpdftex*
(/usr/share/texmf-texlive/tex/latex/hyperref/hpdftex.def
File: hpdftex.def 2007/02/07 v6.75r Hyperref driver for pdfTeX
-\Fld@listcount=\count128
+\Fld@listcount=\count119
)
+(/usr/share/texmf-texlive/tex/latex/listings/listings.sty
+\lst@mode=\count120
+\lst@gtempboxa=\box31
+\lst@token=\toks32
+\lst@length=\count121
+\lst@currlwidth=\dimen137
+\lst@column=\count122
+\lst@pos=\count123
+\lst@lostspace=\dimen138
+\lst@width=\dimen139
+\lst@newlines=\count124
+\lst@lineno=\count125
+\c@lstlisting=\count126
+\lst@maxwidth=\dimen140
+
+(/usr/share/texmf-texlive/tex/latex/listings/lstpatch.sty
+File: lstpatch.sty 2004/10/17 1.3b (Carsten Heinz)
+)
+(/usr/share/texmf-texlive/tex/latex/listings/lstmisc.sty
+File: lstmisc.sty 2004/09/07 1.3 (Carsten Heinz)
+\c@lstnumber=\count127
+\lst@skipnumbers=\count128
+\lst@framebox=\box32
+)
+(/usr/share/texmf-texlive/tex/latex/listings/listings.cfg
+File: listings.cfg 2004/09/05 1.3 listings configuration
+))
+Package: listings 2004/10/17 1.3b (Carsten Heinz)
+
(/usr/share/texmf-texlive/tex/latex/base/makeidx.sty
Package: makeidx 2000/03/29 v1.0m Standard LaTeX package
)
@@ -468,21 +478,21 @@ Package: subfigure 2002/03/15 v2.1.5 subfigure package
(./Tutorial.aux) (./Friend_Finder.aux) (./Fazit.aux) (./Anhang.aux))
\openout1 = `maindoc.aux'.
-LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 108.
-LaTeX Font Info: ... okay on input line 108.
-LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 108.
-LaTeX Font Info: ... okay on input line 108.
-LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 108.
-LaTeX Font Info: ... okay on input line 108.
-LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 108.
-LaTeX Font Info: ... okay on input line 108.
-LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 108.
-LaTeX Font Info: ... okay on input line 108.
-LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 108.
-LaTeX Font Info: ... okay on input line 108.
-LaTeX Font Info: Checking defaults for PD1/pdf/m/n on input line 108.
-LaTeX Font Info: ... okay on input line 108.
-LaTeX Font Info: Try loading font information for OT1+ptm on input line 108.
+LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 112.
+LaTeX Font Info: ... okay on input line 112.
+LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 112.
+LaTeX Font Info: ... okay on input line 112.
+LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 112.
+LaTeX Font Info: ... okay on input line 112.
+LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 112.
+LaTeX Font Info: ... okay on input line 112.
+LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 112.
+LaTeX Font Info: ... okay on input line 112.
+LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 112.
+LaTeX Font Info: ... okay on input line 112.
+LaTeX Font Info: Checking defaults for PD1/pdf/m/n on input line 112.
+LaTeX Font Info: ... okay on input line 112.
+LaTeX Font Info: Try loading font information for OT1+ptm on input line 112.
(/usr/share/texmf-texlive/tex/latex/psnfss/ot1ptm.fd
@@ -503,17 +513,9 @@ File: ucsencs.def 2003/11/29 Fixes to fontencodings LGR, T3
\MPscratchDim=\dimen144
\MPnumerator=\count137
\everyMPtoPDFconversion=\toks34
-) (/usr/share/texmf-texlive/tex/latex/graphics/color.sty
-Package: color 2005/11/14 v1.0j Standard LaTeX Color (DPC)
-
-(/etc/texmf/tex/latex/config/color.cfg
-File: color.cfg 2007/01/18 v1.5 color configuration of teTeX/TeXLive
)
-Package color Info: Driver file: pdftex.def on input line 130.
-)
-Package hyperref Info: Link coloring ON on input line 108.
-
-(/usr/share/texmf-texlive/tex/latex/hyperref/nameref.sty
+Package hyperref Info: Link coloring ON on input line 112.
+ (/usr/share/texmf-texlive/tex/latex/hyperref/nameref.sty
Package: nameref 2006/12/27 v2.28 Cross-referencing by name of section
(/usr/share/texmf-texlive/tex/latex/oberdiek/refcount.sty
@@ -521,8 +523,8 @@ Package: refcount 2006/02/20 v3.0 Data extraction from references (HO)
)
\c@section@level=\count138
)
-LaTeX Info: Redefining \ref on input line 108.
-LaTeX Info: Redefining \pageref on input line 108.
+LaTeX Info: Redefining \ref on input line 112.
+LaTeX Info: Redefining \pageref on input line 112.
(./maindoc.out)
(./maindoc.out)
\@outlinefile=\write3
@@ -589,7 +591,7 @@ File: uni-0.def 2004/10/17 UCS: Unicode data U+0000..U+00FF
s been already used, duplicate ignored
<to be read again>
\relax
-l.119 \include{Erklaerung}
+l.123 \include{Erklaerung}
[1
@@ -597,11 +599,17 @@ l.119 \include{Erklaerung}
\openout2 = `Einleitung.aux'.
(./Einleitung.tex)
-Overfull \hbox (28.31004pt too wide) in paragraph at lines 3--120
+Overfull \hbox (28.31004pt too wide) in paragraph at lines 3--124
\OT1/ptm/m/n/12 Durch den fortschre-i-t-en-den En-twick-lung der mod-er-nen Tec
h-nik ist es m[]oglich im-mer leis-tungsst[]arkere,
[]
+
+Overfull \hbox (0.99141pt too wide) in paragraph at lines 3--124
+\OT1/ptm/m/n/12 Strecke zu spe-ich-ern oder den n[]achsten Su-per-markt in der
+N[]ahe anzuzeigen. Des weit-eren k[]onnen
+ []
+
[2
@@ -610,22 +618,29 @@ h-nik ist es m[]oglich im-mer leis-tungsst[]arkere,
(./Grundlagen.tex
LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <10> not available
-(Font) Font shape `OT1/ptm/b/n' tried instead on input line 21.
+(Font) Font shape `OT1/ptm/b/n' tried instead on input line 22.
LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <7.4> not available
-(Font) Font shape `OT1/ptm/b/n' tried instead on input line 21.
+(Font) Font shape `OT1/ptm/b/n' tried instead on input line 22.
LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <6> not available
-(Font) Font shape `OT1/ptm/b/n' tried instead on input line 21.
- [3
+(Font) Font shape `OT1/ptm/b/n' tried instead on input line 22.
+
+Overfull \hbox (0.27818pt too wide) in paragraph at lines 16--52
+\OT1/ptm/m/n/12 Zum Beispiel bi-etet \OT1/ptm/m/it/12 Google \OT1/ptm/m/n/12 de
+n Di-enst \OT1/ptm/m/it/12 Google Lat-i-tude[] \OT1/ptm/m/n/12 an. Bei diesem P
+ro-gramm ist es m[]oglich
+ []
+
+[3
] [4]
-Overfull \hbox (5.40251pt too wide) in paragraph at lines 73--105
+Overfull \hbox (5.40251pt too wide) in paragraph at lines 75--107
\OT1/ptm/m/n/12 fahren genutzt wer-den welch-es den Aus-tausch von zwei Schl[]u
sseln auf ein-fache Weise erm[]oglicht.
[]
[5])
-Overfull \hbox (7.5748pt too wide) in paragraph at lines 108--121
+Overfull \hbox (7.5748pt too wide) in paragraph at lines 110--125
\OT1/ptm/m/n/12 Da der Schl[]usselaustausch spon-tan durchf[]uhrbar sein soll,
muss dieser zu je-dem Zeit-punkt m[]oglich
[]
@@ -634,55 +649,56 @@ muss dieser zu je-dem Zeit-punkt m[]oglich
\openout2 = `Tutorial.aux'.
(./Tutorial.tex
-Overfull \hbox (8.55022pt too wide) in paragraph at lines 37--43
+Overfull \hbox (6.89201pt too wide) in paragraph at lines 3--29
+\OT1/ptm/m/n/12 ohne weit-eres auf ein an-deres, \OT1/ptm/m/it/12 POSIX \OT1/pt
+m/m/n/12 kom-pat-i-bles Sys-tem, portiert wer-den, ohne das die genutzten
+ []
+
+
+Overfull \hbox (16.81418pt too wide) in paragraph at lines 38--47
\OT1/ptm/m/n/12 Desktop-Varianten der Windows-Familie erken-nen. Es ex-istiert
ein \OT1/ptm/m/it/12 Cross-Compiler \OT1/ptm/m/n/12 names \OT1/ptm/m/it/12 CeGC
-C
+C[]\OT1/ptm/m/n/12 ,
[]
[8
] [9]
-Overfull \hbox (0.91805pt too wide) in paragraph at lines 86--93
+Overfull \hbox (0.91805pt too wide) in paragraph at lines 94--102
\OT1/ptm/m/it/12 iPhoneOS \OT1/ptm/m/n/12 wurde auf-grund sein-er man-gel-nden
\OT1/ptm/m/it/12 Mul-ti-task-ing\OT1/ptm/m/n/12 -Unterst[]utzung aus-geschlosse
n. Diese
[]
-[10] <Bilder/elm-app-01_2.png, id=249, 133.35536pt x 185.83714pt>
+[10] <Bilder/elm-app-01_2.png, id=232, 133.35536pt x 185.83714pt>
File: Bilder/elm-app-01_2.png Graphic file (type png)
<use Bilder/elm-app-01_2.png>
-<Bilder/elm-app-02_2.png, id=250, 206.48572pt x 405.22821pt>
+<Bilder/elm-app-02_2.png, id=233, 206.48572pt x 405.22821pt>
File: Bilder/elm-app-02_2.png Graphic file (type png)
-<use Bilder/elm-app-02_2.png> <Bilder/efl.png, id=251, 48.18pt x 72.27pt>
+<use Bilder/elm-app-02_2.png> [11 <./Bilder/elm-app-01_2.png> <./Bilder/elm-app
+-02_2.png>] <Bilder/efl.png, id=242, 48.18pt x 72.27pt>
File: Bilder/efl.png Graphic file (type png)
-
-<use Bilder/efl.png>
-
-LaTeX Warning: `h' float specifier changed to `ht'.
-
-
-Underfull \hbox (badness 10000) in paragraph at lines 150--156
+ <use Bilder/efl.png>
+Underfull \hbox (badness 10000) in paragraph at lines 162--168
[]
-[11 <./Bilder/elm-app-01_2.png> <./Bilder/elm-app-02_2.png>]) [12 <./Bilder/efl
-.png>]
+) [12 <./Bilder/efl.png>]
\openout2 = `Friend_Finder.aux'.
(./Friend_Finder.tex
-Overfull \hbox (12.09158pt too wide) in paragraph at lines 11--18
+Overfull \hbox (12.09158pt too wide) in paragraph at lines 11--22
\OT1/ptm/m/n/12 Mod-ulen. Der \OT1/ptm/m/it/12 Mes-sage Sender \OT1/ptm/m/n/12
ist f[]ur das Versenden und Emp-fan-gen der Textnachricht-en zust[]andig,
[]
-<Bilder/ablauf.png, id=266, 546.54187pt x 597.73312pt>
+<Bilder/ablauf.png, id=250, 546.54187pt x 597.73312pt>
File: Bilder/ablauf.png Graphic file (type png)
<use Bilder/ablauf.png>
-Overfull \hbox (12.08994pt too wide) in paragraph at lines 27--32
+Overfull \hbox (12.08994pt too wide) in paragraph at lines 32--37
\OT1/ptm/m/n/12 er Datei zusam-menge-fast. In dieser Datei sind alle Funk-tio-n
en en-thal-ten um die Ober-fl[]achenelement
[]
@@ -690,189 +706,210 @@ en en-thal-ten um die Ober-fl[]achenelement
[13
-] <Bilder/chat.png, id=276, 338.76563pt x 450.18187pt>
+] <Bilder/chat.png, id=259, 338.76563pt x 450.18187pt>
File: Bilder/chat.png Graphic file (type png)
<use Bilder/chat.png>
-Overfull \hbox (4.14699pt too wide) in paragraph at lines 58--70
+Overfull \hbox (4.14699pt too wide) in paragraph at lines 67--83
\OT1/ptm/m/n/12 Der \OT1/ptm/m/it/12 Sender \OT1/ptm/m/n/12 ist zust[]andig f[]
ur das Versenden der Po-si-tions-dat-en. Auch hi-er muss vor dem Versenden
[]
+
+Overfull \hbox (2.15637pt too wide) in paragraph at lines 67--83
+\OT1/ptm/m/n/12 und ge-tren-nt zu versenden. An jedes Ende, dieser in-s-ge-samt
+ vi-er Frag-mente, wird ein zus[]atzlicher,
+ []
+
[14 <./Bilder/ablauf.png>] [15 <./Bilder/chat.png>]
-<Bilder/position.png, id=289, 338.76563pt x 447.92343pt>
+<Bilder/protocol.png, id=275, 536.0025pt x 605.26125pt>
+File: Bilder/protocol.png Graphic file (type png)
+
+<use Bilder/protocol.png>
+<Bilder/position.png, id=277, 338.76563pt x 447.92343pt>
File: Bilder/position.png Graphic file (type png)
-<use Bilder/position.png> <Bilder/barcode.png, id=292, 337.26pt x 450.9347pt>
+<use Bilder/position.png> [16 <./Bilder/protocol.png>]
+<Bilder/barcode.png, id=286, 337.26pt x 450.9347pt>
File: Bilder/barcode.png Graphic file (type png)
-
-<use Bilder/barcode.png>
-Overfull \hbox (2.70879pt too wide) in paragraph at lines 106--123
+ <use Bilder/barcode.png>
+Overfull \hbox (2.70879pt too wide) in paragraph at lines 132--150
\OT1/ptm/m/n/12 und versendet wer-den. Unter Daten-over-head wer-den Hin-ter-gr
und-dat-en gese-hen, welche versendet
[]
-[16 <./Bilder/position.png>] [17 <./Bilder/barcode.png>]
-Overfull \hbox (15.05054pt too wide) in paragraph at lines 126--135
+[17 <./Bilder/position.png>] [18 <./Bilder/barcode.png>]
+Overfull \hbox (15.05054pt too wide) in paragraph at lines 153--162
\OT1/ptm/m/n/12 Der All-ge-meine Hin-ter-grund-verkehr bei \OT1/ptm/m/it/12 Fri
end Find-er \OT1/ptm/m/n/12 beste-ht zum Einen aus \OT1/ptm/m/it/12 Keep-Alive
\OT1/ptm/m/n/12 Nachricht-
[]
-Overfull \hbox (0.66324pt too wide) in paragraph at lines 138--146
+Overfull \hbox (0.66324pt too wide) in paragraph at lines 165--173
\OT1/ptm/m/n/12 Ver-schl[]usselung wer-den beim Senden noch In-for-ma-tio-nen b
ez[]uglich \OT1/ptm/m/it/12 Chan-nel \OT1/ptm/m/n/12 und der Empf[]anger
[]
-Overfull \hbox (4.52718pt too wide) in paragraph at lines 138--146
-\OT1/ptm/m/n/12 Wenn $\OML/ztmcm/m/it/12 h$ \OT1/ptm/m/n/12 die Gr[]o^^Ye des \
-OT1/ptm/m/it/12 TCP-Headers \OT1/ptm/m/n/12 und $\OML/ztmcm/m/it/12 t$ \OT1/ptm
-/m/n/12 die An-zahl der Ze-ichen der un-ver-schl[]usselten Nachricht
+Overfull \hbox (15.74675pt too wide) in paragraph at lines 176--190
+\OT1/ptm/m/n/12 Wie schon erw[]ahnt, wer-den die Po-si-tions-dat-en beim Sender
+ aufgeteilt und mit vi-er un-ter-schiedlichen
[]
-Overfull \hbox (15.74675pt too wide) in paragraph at lines 149--163
-\OT1/ptm/m/n/12 Wie schon erw[]ahnt, wer-den die Po-si-tions-dat-en beim Sender
- aufgeteilt und mit vi-er un-ter-schiedlichen
+Overfull \hbox (8.2153pt too wide) in paragraph at lines 176--190
+\OT1/ptm/m/n/12 Mit-tel um die 430 Byte. Die An-zahl der un-ver-schl[]usselten
+Ze-ichen, die f[]ur ein \OT1/ptm/m/it/12 Lat-i-tude\OT1/ptm/m/n/12 /\OT1/ptm/m/
+it/12 Longtitude\OT1/ptm/m/n/12 -
[]
-[18] <Bilder/graph.png, id=313, 642.4pt x 481.8pt>
+[19] <Bilder/graph.png, id=307, 642.4pt x 481.8pt>
File: Bilder/graph.png Graphic file (type png)
- <use Bilder/graph.png>)
-[19] [20 <./Bilder/graph.png (PNG copy)>]
+ <use Bilder/graph.png>
+<Bilder/graph2.png, id=308, 642.4pt x 481.8pt>
+File: Bilder/graph2.png Graphic file (type png)
+ <use Bilder/graph2.png>)
+[20] [21 <./Bilder/graph.png (PNG copy)> <./Bilder/graph2.png (PNG copy)>]
\openout2 = `Fazit.aux'.
- (./Fazit.tex) [21
+
+(./Fazit.tex) [22
]
\openout2 = `Anhang.aux'.
- (./Anhang.tex
-Underfull \hbox (badness 10000) in paragraph at lines 9--13
+ (./Anhang.tex [23
+
+]
+Overfull \hbox (7.59068pt too wide) in paragraph at lines 63--80
+\OT1/ptm/m/n/12 unter Umst[]anden ben[]otigten, ausf[]uhrbaren Dateien liegen.
+\OT1/ptm/m/it/12 PKG[]CONFIG[]PATH \OT1/ptm/m/n/12 zeigt schliesslich
[]
-[22
+Overfull \hbox (1.0949pt too wide) in paragraph at lines 120--139
+\OT1/ptm/m/n/12 ``au-to-gen.sh'' Skript durch [][][][][][][][][][][][][][][][][
+][][][][][][][][][][][][][][][][][][][][]
+ []
-] [23] [24] [25]
-Overfull \hbox (13.83946pt too wide) in paragraph at lines 202--205
-\OT1/ptm/m/n/12 be-liebi-gen Ed-i-tor ge[]offnet wer-den und in bei-den Dateien
- der Wert von ''pre-fix`` auf ''WINCE[]PATH``
+[24]
+Overfull \hbox (3.86734pt too wide) in paragraph at lines 146--166
+\OT1/ptm/m/n/12 durch [][][][][][][][][][][][][][][][][][][][][][][][][][][][][
+][][][][][] aufgerufen und aus-gef[]uhrt wer-
[]
-Overfull \hbox (15.93102pt too wide) in paragraph at lines 233--236
-[]\OT1/ptm/m/n/12 Allerdings wird sie im Ord-ner ''freetype2`` nicht ge-fun-den
-. Um dies zu umge-hen muss ''ft2build.h``
+Overfull \hbox (9.95499pt too wide) in paragraph at lines 169--188
+[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][
+]\OT1/ptm/m/n/12 . Nach-dem die Dateien herun-terge-laden
[]
-Overfull \hbox (169.12907pt too wide) in paragraph at lines 239--239
-[] \OT1/cmtt/m/n/12 cp $WINCE_PATH/freetype-2.3.7-dev/include/freetype2/ft2buil
-d.h $WINCE_PATH/freetype-2.3.7-dev/include[]
+Underfull \hbox (badness 10000) in paragraph at lines 200--246
+
[]
-[26] [27]
-Overfull \hbox (40.46509pt too wide) in paragraph at lines 323--326
-\OT1/ptm/m/n/12 muss man im in der Datei ``Make-file.am'' im Ord-ner ``sr-c/bin
-/'' alle Vorkomm-nisse von ``test[]fileselector.c''
+[25] [26]
+Overfull \hbox (10.0347pt too wide) in paragraph at lines 291--307
+\OT1/ptm/m/n/12 muss auch hi-er wieder das Skript durch [][][][][][][][][][][][
+][][][][][][][][][][][][][][][][][][][]
[]
-[28]
-LaTeX Font Info: Try loading font information for OMS+ptm on input line 362.
+
+Overfull \hbox (13.30293pt too wide) in paragraph at lines 314--334
+\OT1/ptm/m/n/12 Zuerst m[]ussen auch hi-er der Quell-code und ben[]otigte Dat-e
+n herun-terge-laden wer-den. Dies geschieht
+ []
+
+
+Overfull \hbox (10.65788pt too wide) in paragraph at lines 314--334
+\OT1/ptm/m/n/12 durch den Aufruf von [][][][][][][][][][][][][][][][][][][][][]
+[][][][][][][][][][][][][][][][][][][][][][][][][][][]. Nun
+ []
+
+[27]
+LaTeX Font Info: Try loading font information for OMS+ptm on input line 370.
(/usr/share/texmf-texlive/tex/latex/psnfss/omsptm.fd
File: omsptm.fd
)
LaTeX Font Info: Font shape `OMS/ptm/m/n' in size <12> not available
-(Font) Font shape `OMS/cmsy/m/n' tried instead on input line 362.
+(Font) Font shape `OMS/cmsy/m/n' tried instead on input line 370.
-Overfull \hbox (7.57867pt too wide) in paragraph at lines 362--364
+Overfull \hbox (7.57867pt too wide) in paragraph at lines 370--372
[][]$\OT1/cmtt/m/n/12 http : / / sourceforge . net / projects / cegcc / files /
ported % 20packages / zlib-[]1 . 2 .
[]
-Overfull \hbox (7.57867pt too wide) in paragraph at lines 364--366
+Overfull \hbox (7.57867pt too wide) in paragraph at lines 372--374
[][]$\OT1/cmtt/m/n/12 http : / / sourceforge . net / projects / cegcc / files /
ported % 20packages / zlib-[]1 . 2 .
[]
-Overfull \hbox (19.92868pt too wide) in paragraph at lines 366--368
+Overfull \hbox (19.92868pt too wide) in paragraph at lines 374--376
[][]$\OT1/cmtt/m/n/12 http : / / sourceforge . net / projects / cegcc / files /
ported % 20packages / libjpeg-[]6b /
[]
-Overfull \hbox (19.92868pt too wide) in paragraph at lines 368--370
+Overfull \hbox (19.92868pt too wide) in paragraph at lines 376--378
[][]$\OT1/cmtt/m/n/12 http : / / sourceforge . net / projects / cegcc / files /
ported % 20packages / libjpeg-[]6b /
[]
-Overfull \hbox (19.92868pt too wide) in paragraph at lines 376--378
+Overfull \hbox (19.92868pt too wide) in paragraph at lines 384--386
[][]$\OT1/cmtt/m/n/12 http : / / sourceforge . net / projects / cegcc / files /
ported % 20packages / freetype-[]2 .
[]
-Overfull \hbox (19.92868pt too wide) in paragraph at lines 378--380
+Overfull \hbox (19.92868pt too wide) in paragraph at lines 386--388
[][]$\OT1/cmtt/m/n/12 http : / / sourceforge . net / projects / cegcc / files /
ported % 20packages / freetype-[]2 .
[]
-[29]
-Overfull \hbox (7.57867pt too wide) in paragraph at lines 380--382
+
+Overfull \hbox (7.57867pt too wide) in paragraph at lines 388--390
[][]$\OT1/cmtt/m/n/12 http : / / sourceforge . net / projects / cegcc / files /
ported % 20packages / libpng-[]1 .
[]
-Overfull \hbox (7.57867pt too wide) in paragraph at lines 382--384
+Overfull \hbox (7.57867pt too wide) in paragraph at lines 390--392
[][]$\OT1/cmtt/m/n/12 http : / / sourceforge . net / projects / cegcc / files /
ported % 20packages / libpng-[]1 .
[]
-[30] [31] [32]
-Overfull \hbox (2.40399pt too wide) in paragraph at lines 513--513
-[]\OT1/cmtt/m/n/12 arm-mingw32ce-strip efl/evas/modules/savers/eet/mingw32ce-ar
-m/saver_eet.dll[]
- []
-
-
-Overfull \hbox (2.40399pt too wide) in paragraph at lines 513--513
-[]\OT1/cmtt/m/n/12 arm-mingw32ce-strip efl/evas/modules/savers/png/mingw32ce-ar
-m/saver_png.dll[]
- []
-
-) [33] (./maindoc.bbl) [34
+[28] [29] [30]) [31] (./maindoc.bbl) [32
-] (./maindoc.aux (./Title.aux) (./Erklaerung.aux)
-(./Einleitung.aux) (./Grundlagen.aux) (./Tutorial.aux) (./Friend_Finder.aux)
-(./Fazit.aux) (./Anhang.aux)) )
+] (./maindoc.aux (./Title.aux)
+(./Erklaerung.aux) (./Einleitung.aux) (./Grundlagen.aux) (./Tutorial.aux)
+(./Friend_Finder.aux) (./Fazit.aux) (./Anhang.aux)) )
Here is how much of TeX's memory you used:
- 8746 strings out of 95086
- 120103 string characters out of 1183254
- 199704 words of memory out of 1500000
- 11564 multiletter control sequences out of 10000+50000
+ 9174 strings out of 95086
+ 124523 string characters out of 1183254
+ 304928 words of memory out of 1500000
+ 11839 multiletter control sequences out of 10000+50000
37618 words of font info for 93 fonts, out of 1200000 for 2000
28 hyphenation exceptions out of 8191
- 35i,11n,46p,303b,538s stack positions out of 5000i,500n,6000p,200000b,5000s
-{/usr/share/texmf-texlive/fonts/enc/dvips/base/8
-r.enc}</usr/share/texmf-texlive/fonts/type1/bluesky/cm/cmr10.pfb></usr/share/te
-xmf-texlive/fonts/type1/bluesky/cm/cmssbx10.pfb></usr/share/texmf-texlive/fonts
-/type1/bluesky/cm/cmsy10.pfb></usr/share/texmf-texlive/fonts/type1/bluesky/cm/c
-mtt10.pfb></usr/share/texmf-texlive/fonts/type1/bluesky/cm/cmtt12.pfb></usr/sha
-re/texmf-texlive/fonts/type1/urw/times/utmr8a.pfb></usr/share/texmf-texlive/fon
-ts/type1/urw/times/utmri8a.pfb>
-Output written on maindoc.pdf (36 pages, 1777057 bytes).
+ 35i,12n,46p,303b,1883s stack positions out of 5000i,500n,6000p,200000b,5000s
+{/usr/share/texmf-texlive/
+fonts/enc/dvips/base/8r.enc}</usr/share/texmf-texlive/fonts/type1/bluesky/cm/cm
+mi10.pfb></usr/share/texmf-texlive/fonts/type1/bluesky/cm/cmr10.pfb></usr/share
+/texmf-texlive/fonts/type1/bluesky/cm/cmssbx10.pfb></usr/share/texmf-texlive/fo
+nts/type1/bluesky/cm/cmsy10.pfb></usr/share/texmf-texlive/fonts/type1/bluesky/c
+m/cmtt10.pfb></usr/share/texmf-texlive/fonts/type1/bluesky/cm/cmtt12.pfb></usr/
+share/texmf-texlive/fonts/type1/urw/times/utmr8a.pfb></usr/share/texmf-texlive/
+fonts/type1/urw/times/utmri8a.pfb>
+Output written on maindoc.pdf (34 pages, 2000482 bytes).
PDF statistics:
- 461 PDF objects out of 1000 (max. 8388607)
- 101 named destinations out of 1000 (max. 131072)
- 302 words of extra memory for PDF output out of 10000 (max. 10000000)
+ 631 PDF objects out of 1000 (max. 8388607)
+ 251 named destinations out of 1000 (max. 131072)
+ 312 words of extra memory for PDF output out of 10000 (max. 10000000)
diff --git a/ausarbeitung/maindoc.pdf b/ausarbeitung/maindoc.pdf
index e4d1e8d..bba079d 100644
--- a/ausarbeitung/maindoc.pdf
+++ b/ausarbeitung/maindoc.pdf
Binary files differ
diff --git a/ausarbeitung/maindoc.tex b/ausarbeitung/maindoc.tex
index 6a43d67..bc32200 100644
--- a/ausarbeitung/maindoc.tex
+++ b/ausarbeitung/maindoc.tex
@@ -39,8 +39,11 @@
\usepackage{theorem}
%\usepackage{mathpazo}
\usepackage{mathptmx}
-\usepackage{listings}
+%\usepackage{listings}
+\usepackage[usenames]{color}
+\definecolor{white}{rgb}{1,1,1}
+%\lstset{language=bash,breaklines=true,showstringspaces=false,backgroundcolor=\color{white}}
%Listen
\usepackage{eqlist}
@@ -58,9 +61,10 @@
}
]{hyperref}
-% programm code
+% programm codestringstyle=\ttfamily,
\usepackage{listings}
-\lstset{basicstyle=\tiny, stringstyle=\ttfamily, backgroundcolor=\color{gray}, numbers=left, numberstyle=\tiny, stepnumber=1, numbersep=5pt}
+\lstset{basicstyle=\ttfamily\footnotesize\mdseries, backgroundcolor=\color{white}, numbers=none, numberstyle=\tiny,
+stepnumber=1, numbersep=5pt, breaklines=true} %breakatwhitespace=true}
%(nummeriert auch \paragraph)
%\setcounter{secnumdepth}{4}
diff --git a/ausarbeitung/maindoc.tex.backup b/ausarbeitung/maindoc.tex.backup
index 5de7032..f5f3b2d 100644
--- a/ausarbeitung/maindoc.tex.backup
+++ b/ausarbeitung/maindoc.tex.backup
@@ -19,12 +19,14 @@
%erlaubt Graphiken einzubinden
\usepackage{graphicx}
\usepackage{url}
+%\usepackage[german]{todonotes}
%erm�glicht verschiedene Stile des Literaturverzeichnises
%\usepackage{jurabib}
%\usepackage{plain}
%weitere Stile auf der
\usepackage[sectionbib,square]{natbib}
+%\usepackage{natbib}
\usepackage{a4wide}
\usepackage{amsfonts}
@@ -37,7 +39,11 @@
\usepackage{theorem}
%\usepackage{mathpazo}
\usepackage{mathptmx}
+%\usepackage{listings}
+\usepackage[usenames]{color}
+\definecolor{white}{rgb}{1,1,1}
+%\lstset{language=bash,breaklines=true,showstringspaces=false,backgroundcolor=\color{white}}
%Listen
\usepackage{eqlist}
@@ -57,7 +63,8 @@
% programm code
\usepackage{listings}
-\lstset{basicstyle=\tiny, stringstyle=\ttfamily, backgroundcolor=\color{gray}, numbers=left, numberstyle=\tiny, stepnumber=1, numbersep=5pt}
+\lstset{basicstyle=\small, stringstyle=\ttfamily, backgroundcolor=\color{white}, numbers=none, numberstyle=\tiny,
+stepnumber=1, numbersep=5pt, breaklines=true, breatatwhitespace=true}
%(nummeriert auch \paragraph)
%\setcounter{secnumdepth}{4}
@@ -84,7 +91,7 @@
%l�scht vordefinierte Einstellungen
\fancyhf{}
-\fancyhead[L]{Mobiler, persönlicher Assistent}
+\fancyhead[L]{Mobiler Friend Finder}
\fancyhead[R]{Patrick Hornecker}
\fancyfoot[C]{\thepage}
@@ -115,15 +122,16 @@
\pagenumbering{arabic}
\include{Erklaerung}
\include{Einleitung}
+\include{Grundlagen}
\include{Tutorial}
\include{Friend_Finder}
-\include{Ausblick}
+\include{Fazit}
\include{Anhang}
%\bibliographystyle{dinat}
%\bibliography{literature}
\bibliography{literature}
-\bibliographystyle{dinat}
-
+%\bibliographystyle{plain}
+\bibliographystyle{plain}
\nocite{*}
\end{document}
diff --git a/ausarbeitung/maindoc.tex~ b/ausarbeitung/maindoc.tex~
index 49d0949..bc32200 100644
--- a/ausarbeitung/maindoc.tex~
+++ b/ausarbeitung/maindoc.tex~
@@ -19,7 +19,7 @@
%erlaubt Graphiken einzubinden
\usepackage{graphicx}
\usepackage{url}
-\usepackage[german]{todonotes}
+%\usepackage[german]{todonotes}
%erm�glicht verschiedene Stile des Literaturverzeichnises
%\usepackage{jurabib}
@@ -39,8 +39,11 @@
\usepackage{theorem}
%\usepackage{mathpazo}
\usepackage{mathptmx}
-\usepackage{listings}
+%\usepackage{listings}
+\usepackage[usenames]{color}
+\definecolor{white}{rgb}{1,1,1}
+%\lstset{language=bash,breaklines=true,showstringspaces=false,backgroundcolor=\color{white}}
%Listen
\usepackage{eqlist}
@@ -58,9 +61,10 @@
}
]{hyperref}
-% programm code
+% programm codestringstyle=\ttfamily,
\usepackage{listings}
-\lstset{basicstyle=\tiny, stringstyle=\ttfamily, backgroundcolor=\color{gray}, numbers=left, numberstyle=\tiny, stepnumber=1, numbersep=5pt}
+\lstset{basicstyle=\ttfamily\footnotesize\mdseries, backgroundcolor=\color{white}, numbers=none, numberstyle=\tiny,
+stepnumber=1, numbersep=5pt, breaklines=true} %breakatwhitespace=true}
%(nummeriert auch \paragraph)
%\setcounter{secnumdepth}{4}
diff --git a/ausarbeitung/maindoc.toc b/ausarbeitung/maindoc.toc
index 25e4e66..4afeee9 100644
--- a/ausarbeitung/maindoc.toc
+++ b/ausarbeitung/maindoc.toc
@@ -10,22 +10,22 @@
\contentsline {subsubsection}{\numberline {3.1.1}Windows Mobile}{9}{subsubsection.3.1.1}
\contentsline {subsubsection}{\numberline {3.1.2}Android}{9}{subsubsection.3.1.2}
\contentsline {subsubsection}{\numberline {3.1.3}WebOS}{9}{subsubsection.3.1.3}
-\contentsline {subsubsection}{\numberline {3.1.4}iPhone OS}{9}{subsubsection.3.1.4}
+\contentsline {subsubsection}{\numberline {3.1.4}iPhone OS}{10}{subsubsection.3.1.4}
\contentsline {subsubsection}{\numberline {3.1.5}Symbian OS}{10}{subsubsection.3.1.5}
\contentsline {subsubsection}{\numberline {3.1.6}Zielplattform}{10}{subsubsection.3.1.6}
\contentsline {subsection}{\numberline {3.2}Softwaregrundlagen}{10}{subsection.3.2}
-\contentsline {subsubsection}{\numberline {3.2.1}CeGCC}{10}{subsubsection.3.2.1}
+\contentsline {subsubsection}{\numberline {3.2.1}CeGCC}{11}{subsubsection.3.2.1}
\contentsline {subsubsection}{\numberline {3.2.2}Enlightenment}{11}{subsubsection.3.2.2}
\contentsline {section}{\numberline {4}Friend Finder}{13}{section.4}
\contentsline {subsection}{\numberline {4.1}Verwendete Verfahren und Bibliotheken}{13}{subsection.4.1}
\contentsline {subsubsection}{\numberline {4.1.1}Grafisches Benutzeroberfl\IeC {\"a}che}{13}{subsubsection.4.1.1}
\contentsline {subsubsection}{\numberline {4.1.2}Versenden der Nachrichten}{13}{subsubsection.4.1.2}
-\contentsline {subsubsection}{\numberline {4.1.3}Versenden der eigenen Position}{14}{subsubsection.4.1.3}
-\contentsline {subsubsection}{\numberline {4.1.4}Empfangen von Positionen}{15}{subsubsection.4.1.4}
-\contentsline {subsubsection}{\numberline {4.1.5}Erzeugen eines 2D-Barcodes}{16}{subsubsection.4.1.5}
-\contentsline {subsection}{\numberline {4.2}Analyse}{17}{subsection.4.2}
-\contentsline {subsubsection}{\numberline {4.2.1}Allgemeiner Datenverkehr}{18}{subsubsection.4.2.1}
-\contentsline {subsubsection}{\numberline {4.2.2}Versenden und Empfangen von Nachrichten}{18}{subsubsection.4.2.2}
-\contentsline {subsubsection}{\numberline {4.2.3}Versenden und Empfangen von Positionen}{18}{subsubsection.4.2.3}
-\contentsline {subsubsection}{\numberline {4.2.4}Fazit der Auswertung}{19}{subsubsection.4.2.4}
-\contentsline {section}{\numberline {5}Fazit}{21}{section.5}
+\contentsline {subsubsection}{\numberline {4.1.3}Versenden der eigenen Position}{15}{subsubsection.4.1.3}
+\contentsline {subsubsection}{\numberline {4.1.4}Empfangen von Positionen}{16}{subsubsection.4.1.4}
+\contentsline {subsubsection}{\numberline {4.1.5}Erzeugen eines 2D-Barcodes}{17}{subsubsection.4.1.5}
+\contentsline {subsection}{\numberline {4.2}Analyse}{18}{subsection.4.2}
+\contentsline {subsubsection}{\numberline {4.2.1}Allgemeiner Datenverkehr}{19}{subsubsection.4.2.1}
+\contentsline {subsubsection}{\numberline {4.2.2}Versenden und Empfangen von Nachrichten}{19}{subsubsection.4.2.2}
+\contentsline {subsubsection}{\numberline {4.2.3}Versenden und Empfangen von Positionen}{19}{subsubsection.4.2.3}
+\contentsline {subsubsection}{\numberline {4.2.4}Fazit der Auswertung}{20}{subsubsection.4.2.4}
+\contentsline {section}{\numberline {5}Fazit}{22}{section.5}