Skip to content

Commit

Permalink
Working on the interface documentation.
Browse files Browse the repository at this point in the history
  • Loading branch information
Rico Leuthold committed Jun 17, 2009
1 parent bc99e4d commit a199610
Show file tree
Hide file tree
Showing 10 changed files with 110 additions and 23 deletions.
Binary file removed out/thesis.pdf
Binary file not shown.
Binary file added src/assets/graffle/app_design_perl.graffle
Binary file not shown.
Binary file modified src/assets/graffle/application_design.graffle
Binary file not shown.
Binary file added src/assets/img/main_menu.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified src/assets/pdf/app_design_perl.pdf
Binary file not shown.
Binary file added src/assets/pdf/application_design.pdf
Binary file not shown.
Binary file added src/assets/pdf/application_design_miceminer.pdf
Binary file not shown.
91 changes: 76 additions & 15 deletions src/data_exploration.tex
Original file line number Diff line number Diff line change
Expand Up @@ -5,39 +5,100 @@
\section{Accessing and exploring the Data }
\label{sec:dataaccessandexp}

%In the field of computer technology the process of scanning a huge pool of data interesting datais called \textit{data mining}.

Data exploration to scan data for interesting aspects.
As seen in the previous sections, the amount of available data in the database is enormous. In the field of computer technology, the process of scanning such a huge pool of data for \textit{potentially interesting} sets of data is called \textit{data mining}. What's \textit{potentially interesting} completely depends on the researchers intention. Therefore, a multitude of filter and visualization options should be available, to facilitate the data exploration. Once a desired set of data has been identified, one should be able to export that data for further analysis.

\subsection{Introducing miceminer}
\label{subsec:dataexp}

\begin{itemize}
\item technology
\item installation
\item usability
\item limitations
\end{itemize}
The \textit{miceminer} application intends to meet exactly these requirements. Written entirely in \textit{Flex}\footnote{Adobe Flex is a software development kit released by Adobe Systems for the development and deployment of cross-platform rich Internet applications based on the Adobe Flash platform \cite{wiki:flex}.}, the application runs within every web browser with the $Flash^{\copyright}$ plug-in version 9 or above installed. Thus, the software is cross platform compatible, meaning that it runs on every operating system for which the $Flash^{\copyright}$ player is available.

Furthermore, the \textit{miceminer} application doesn't need to be installed on every computer, but is stored on a computer accessible over the internet, which is called a server. Every time the application is accessed, it gets downloaded to the inquiring computer, which is called the client. This has the comfortable consequence, that each user always uses the latest version.

Additionaly, \textit{Flex} offers convincing tools to build interactive user interfaces and, in counjunction with third party software, dependable ways to retrieve data from a database. Compared to \textit{Java}\footnote{Java is a programming language.[\ldots] Java application can run on any Java virtual machine (JVM) regardless of computer architecture\cite{wiki:java}.}, which has a immense \ac{API}, the \ac{API} offered by \textit{Flex} is appropriate for our needs.

Additional information about the \textit{miceminer} project, including screencasts which show how to use teh application, \ac{API} documentation, source code and links to resources used, can be found on the project homepage at \href{http://zool-miceminer.uzh.ch/}{http://zool-miceminer.uzh.ch}.

\subsection{Interface}
\label{subsec:miceminer_interface}

This section gives a very short introduction to the user interface. User help can be found on the project homepage. Furthermore, all of the components contain a help button in the upper right corner. Clicking on this button reveals the help text for the component.

Figure \ref{fig:interface_overview} shows a screenshot of the \textit{miceminer} interface and identifies the main parts.

\begin{figure}[!ht]
\begin{center}
\includegraphics[width=\textwidth]{assets/pdf/interface_overview.pdf}
\caption[miceminer interface overview]{Screenshot of the miceminer application displaying data for a mice.}
\label{fig:interface_overview}
\end{center}
\end{figure}

From the \textit{main menu}, the user can choose from the following main components.

\subsubsection*{Browse Data}
This is the core component of the application and contains the functionality to explore the data in the database within a definable date range.

\subsubsection*{Data Overview}
Shows summarized information about all the mice, boxes antennas in the database.

\subsubsection*{Data Analysis}
Offers some simple data analysis and evaluation methods.

\subsubsection*{Graph Data}
Interactive network representation of a possible social network within the mice community.

\subsubsection*{Upload Files}
Components to perform administrative tasks. This component is password protected.

% \begin{figure}[htpb]
% \begin{center}
% \includegraphics[width=0.75\textwidth]{assets/img/main_menu.png}
% \caption[miceminer main components]{The main components of the \textit{miceminer} application.}
% \label{fig:main_components}
% \end{center}
% \end{figure}


\subsection{Software design}
\label{subsec:miceminer_design}

\textit{Flex} itself does not include methods to query a database with \ac{SQL}. Instead the application sends it's request to a \textit{PHP}\footnote{PHP is a scripting language originally designed for producing dynamic web pages\cite{wiki:php}.} file stored on the server, containing the necessary methods. These methods handle the database queries and send the results back to the \textit{Flex} application, which is running on the client computer. An auxiliary software (\textit{AMFPHP}) speeds up the data transfer between the server and the client.

\textit{PHP} offers convincing ways to export the data to different file formats, including \textit{Excel} worksheets. \textit{Excel} export is available within most

These interactions are illustrated in figure \ref{fig:app_design_miceminer}.

\begin{figure}[htpb]
\begin{center}
\includegraphics[width=\textwidth]{assets/pdf/application_design_miceminer.pdf}
\caption[User Interface overview]{Overview of the parts involved in the user interface.}
\label{fig:app_design_miceminer}
\end{center}
\end{figure}


\subsection{Configuration}
\label{subsec:miceminer_config}

\subsubsection{Data Filtering}
\label{subsubsec:datafilter}
\subsection{Data Filtering}
\label{subsec:datafilter}

Shortly explain the filtering possibilities of the program.

\subsubsection{Data Visualization}
\label{subsubsec:datavis}
\subsection{Data Visualization}
\label{subsec:datavis}

Shortly explain the visualization possibilities of the program.

\subsubsection{Exporting Data}
\subsection{Exporting Data}
\label{subsubsec:dataexp}

Shortly explain the export function of the program.

% ----------------------------------------------
% Data analysis
% ----------------------------------------------
\subsection{Data analysis with miceminer}
\subsection{Simple data analysis with miceminer}
\label{subsec:dataana}

Miceminer provides some simple data analysis functionality.
Expand Down
16 changes: 9 additions & 7 deletions src/data_processing.tex
Original file line number Diff line number Diff line change
Expand Up @@ -15,13 +15,15 @@ \section{Data Processing}
\end{center}
\end{figure}

The \textit{Import Scripts} run in a cascade, beginning with the \lstinline|logimport.pl| script, which is reading the data files from the shed, and ending with the \lstinline|counter.pl| script (indicated in figure \ref{fig:app_design_perl} by the green arrows). Each of these scrips writes a transcript file to make their progress traceable. Upon completion of the cascade, the data files are imported and stored in the respective tables as outline in section \ref{subsec:datastorage} on page \pageref{subsec:datastorage}.
The \textit{Import Scripts} run in a cascade, beginning with the \lstinline|logimport.pl| script, which is reading the data files from the shed, and ending with the \lstinline|counter.pl| script (indicated in figure \ref{fig:app_design_perl} by the green arrows). Each of these scrips writes a transcript file to make their progress traceable. Upon completion of the cascade, the data files are imported and stored in the respective tables as outlined in section \ref{subsec:datastorage} on page \pageref{subsec:datastorage}.

A scheduled, daily task checks for new data files uploaded to the server and starts the cascade if needed\footnote{For details about this topic see appendix \ref{app:import_schedule} on page \pageref{app:import_schedule}.}.

The \textit{Reset Scripts} set the database back to a state from where the import cascade can be rerun, starting with the corresponding import script (indicated in figure \ref{fig:app_design_perl} by the orange arrows). If, for example, the \lstinline|searchdirreset.pl| has been executed, the import cascade can be started with the \lstinline|searchdir.pl| script\footnote{It is recommended to start the import cascade by using the import BASH scripts. This is explained in appendix \ref{app:import_schedule} on page \pageref{app:import_schedule}.}.

The \textit{Modules} read out the configuration and make it available for the import and reset scripts (indicated in figure \ref{fig:app_design_perl} by the large grey arrow with the white border). The whole configuration for the application is stored in an XML file. The part of configuration file accountable for the perl part is shown in appendix \ref{app:configperl} on page \pageref{app:configperl}. As the perl scripts are heavily interacting with the database, the database configuration part of the configuration files is read as well by some of the \textit{Modules}\footnote{The database configuration is shown and explained in appendix \ref{app:configdb} on page \pageref{app:configdb}.}.
The \textit{Modules} read out the configuration and make it available for the import and reset scripts (indicated in figure \ref{fig:app_design_perl} by the large grey arrow with the white border). The whole configuration for the application is stored in an XML file. The part of the configuration file accountable for the perl part is shown in appendix \ref{app:configperl} on page \pageref{app:configperl}. As the perl scripts are heavily interacting with the database, the database configuration part of the configuration files is read as well by some of the \textit{Modules}\footnote{The database configuration is shown and explained in appendix \ref{app:configdb} on page \pageref{app:configdb}.}.

The following sections provide details about each script in the import cascade.

\subsection{Importing}
\label{subsec:importing}
Expand Down Expand Up @@ -186,13 +188,13 @@ \subsection{Meeting Results}
\end{center}
\end{figure}

However, the \textit{meeting result} types and explanations above only apply, if we look at the situations from the point of view of transpondered mice Tr. A. When looking at the situations from Tr. B, the types change as follows\footnote{When using the \textit{miceminer Graph Data} interface to retrieve the data, these adjustments are already done (see \ref{sec:netexp})}.
However, the \textit{meeting result} types and explanations above, only apply, if we look at the situations from the point of view of transpondered mice Tr. A. When looking at the situations from Tr. B, the types are swappaed as follows\footnote{When using the \textit{miceminer Graph Data} interface to retrieve the data, these adjustments are already done (see \ref{sec:netexp})}.

\begin{mylist}
\item Type 1 is equivalent to \textbf{Type 2}
\item Type 2 is equivalent to \textbf{Type 1}
\item Type 3 is equivalent to \textbf{Type 4}
\item Type 4 is equivalent to \textbf{Type 3}
\item Type 1 is swapped to \textbf{Type 2}
\item Type 2 is swapped to \textbf{Type 1}
\item Type 3 is swapped to \textbf{Type 4}
\item Type 4 is swapped to \textbf{Type 3}
\end{mylist}

The \textit{meeting results}, including the \textit{type} values are written to the \lstinline|meetings| table as described in paragraph \ref{para:meetings_table} on page \pageref{para:meetings_table}.
26 changes: 25 additions & 1 deletion src/references.bib
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,37 @@
%% http://bibdesk.sourceforge.net/
%% Created for rico at 2009-06-09 18:12:34 +0200
%% Created for rico at 2009-06-17 10:28:20 +0200
%% Saved with string encoding Unicode (UTF-8)
@misc{wiki:php,
Author = {Wikipedia Editors},
Date-Added = {2009-06-17 10:28:04 +0200},
Date-Modified = {2009-06-17 10:28:20 +0200},
Title = {PHP--- Wikipedia{,} The Free Encyclopedia},
Url = {http://en.wikipedia.org/wiki/PHP},
Bdsk-Url-1 = {http://en.wikipedia.org/wiki/RDBMS}}

@misc{wiki:java,
Author = {Wikipedia Editors},
Date-Added = {2009-06-17 10:06:11 +0200},
Date-Modified = {2009-06-17 10:06:30 +0200},
Title = {Java--- Wikipedia{,} The Free Encyclopedia},
Url = {http://en.wikipedia.org/wiki/Java_(programming_language)},
Bdsk-Url-1 = {http://en.wikipedia.org/wiki/RDBMS}}

@misc{wiki:flex,
Author = {Wikipedia Editors},
Date-Added = {2009-06-16 09:44:20 +0200},
Date-Modified = {2009-06-16 09:44:47 +0200},
Title = {Flex--- Wikipedia{,} The Free Encyclopedia},
Url = {http://en.wikipedia.org/wiki/Adobe_Flex},
Bdsk-Url-1 = {http://en.wikipedia.org/wiki/RDBMS}}

@misc{wiki:git,
Author = {Wikipedia Editors},
Date-Added = {2009-06-08 10:34:56 +0200},
Expand Down

0 comments on commit a199610

Please sign in to comment.