[rkward-cvs] SF.net SVN: rkward:[3586] branches/jss_dec_10/FINAL_JSS_TEX/FINAL_splitted/ technical.tex

tfry at users.sourceforge.net tfry at users.sourceforge.net
Fri May 20 10:42:00 UTC 2011

Revision: 3586
http://rkward.svn.sourceforge.net/rkward/?rev=3586&view=rev
Author:   tfry
Date:     2011-05-20 10:42:00 +0000 (Fri, 20 May 2011)

Log Message:
-----------
Also removing the section on internationalization. This is not terribly interesting from a technical point of view, and we did not find a good place for it in the main article.
So let's ditch it. We have been told to streamline, after all.

Modified Paths:
--------------
branches/jss_dec_10/FINAL_JSS_TEX/FINAL_splitted/technical.tex

Modified: branches/jss_dec_10/FINAL_JSS_TEX/FINAL_splitted/technical.tex
===================================================================
--- branches/jss_dec_10/FINAL_JSS_TEX/FINAL_splitted/technical.tex	2011-05-20 10:21:30 UTC (rev 3585)
+++ branches/jss_dec_10/FINAL_JSS_TEX/FINAL_splitted/technical.tex	2011-05-20 10:42:00 UTC (rev 3586)
@@ -1,12 +1,12 @@
%!TEX root=RKWard_paper.tex
-\section{Technical design}
-\label{sec:technical}
-In this supplement we will give an overview of the selected aspects of \pkg{RKWard}'s
-technical design and development process. We will give slightly more attention to the details of the
+\section{Introduction}
+In this supplement we will give an overview of some key aspects of \pkg{RKWard}'s
+technical design and development process, comparing them briefly to competing GUI solutions, where appropriate.
+We will give slightly more attention to the details of the
plugin framework (Section~\ref{sec:technical_plugins}) used in \pkg{RKWard}, since this is central to the extensibility of
-\pkg{RKWard}.
+\pkg{RKWard}, and we will conclude with an example for extending \pkg{RKWard} by a plugin (Section~\ref{sec:example_plugin}).

-\subsection{Asynchronous command execution}
+\section{Asynchronous command execution}
\label{sec:technical_asynchronous}
One central design decision in the implementation of \pkg{RKWard} is that the
interface to the \proglang{R} engine operates asynchronously. The intention is to
@@ -61,7 +61,7 @@
\label{fig:design_sketch}
\end{figure}

-\subsection{Object modification detection}
+\section{Object modification detection}
\label{sec:technical_omd}
\pkg{RKWard} allows the user to run arbitrary commands in \proglang{R} at any time, even while
editing a \code{data.frame} or while selecting objects for analysis in a GUI dialog. Any user
@@ -119,7 +119,7 @@
and performance overhead. Special handling will be needed for environments and
active bindings.

-\subsection{Choice of toolkit and implementation languages}
+\section{Choice of toolkit and implementation languages}
\label{sec:technical_toolkit}
In addition to \proglang{R}, \pkg{RKWard} is based on the \pkg{KDE} libraries, which are in turn based
on \pkg{Qt}, and implemented mostly in \proglang{C++}. Compared to many competing libraries,
@@ -155,7 +155,7 @@
strings with the \code{+}-operator, as available in \proglang{ECMAScript}, allows for a much
more readable way to perform such basic text manipulation.

-\subsection{On-screen graphics windows}
+\section{On-screen graphics windows}
\label{sec:technical_graphics}
Contrary to the approach used in \pkg{JGR} \citep{JGR2010}, \pkg{RKWard} does
not technically provide a custom on-screen graphics device. \pkg{RKWard} detects when
@@ -197,7 +197,7 @@
for non-sequential browsing (see the section on graphics windows in the main article) providing a very intuitive browsing
interface unlike the native implementations in \code{windows()} and \code{quartz()} devices.

-\subsection{Plugin infrastructure}
+\section{Plugin infrastructure}
\label{sec:technical_plugins}
One of the earliest features of \pkg{RKWard} was the extensibility by plugins.
Basically, plugins in \pkg{RKWard} provide complete GUI dialogs, or re-usable
@@ -215,7 +215,7 @@
especially for item response theory, distributions, and descriptive
statistical analysis.

-\subsubsection{Defining a plugin}
+\subsection{Defining a plugin}
\label{sec:technical_plugins_defining}
Plugins consist of four parts as visualized in Figure~\ref{fig:plugin_structure}
\citep[see Section~\ref{sec:example_plugin} for an example; for a complete
@@ -275,7 +275,7 @@

Changes to the source code of these elements take effect without the requirement to recompile \pkg{RKWard}.

-\subsubsection{Embedding and reuse of plugins}
+\subsection{Embedding and reuse of plugins}
\label{sec:technical_plugins_embedding}
\pkg{RKWard} supports several mechanisms for modularization and re-use of
functionality in plugins. File inclusion is one very simple but effective
@@ -293,7 +293,7 @@
code. Other examples of embedded plugins are options for histograms, barplots,
and empirical cumulative distribution function (ECDF) plots (which in turn embed the generic plot options plugin).

-\subsubsection{Enforcing a consistent interface}
+\subsection{Enforcing a consistent interface}
\label{sec:technical_plugins_consistency}
\pkg{RKWard} tries to make it easy to create a consistent interface in all plugins.
GUI-wise this is supported by providing high-level GUI elements, and embeddable
@@ -334,7 +334,7 @@
too many of them.
\end{itemize}

-\subsubsection[Handling of R package dependencies]{Handling of \proglang{R} package dependencies}
+\subsection[Handling of R package dependencies]{Handling of \proglang{R} package dependencies}
\label{sec:technical_plugins_dependencies}
A wide range of plugins for diverse functionality is present in \pkg{RKWard},
including plots (e.\,g., boxplot) or standard tests (e.\,g., Student's t-test)\footnote{
@@ -386,19 +386,3 @@
The automated testing framework is also useful in testing some aspects of the
application which are not implemented as plugins, but this is currently limited
to very few basic tests.
-
-\subsection{Internationalization}
-\label{sec:technical_internationalization}
-Currently strings in the main application are translated to varying extents in
-Czech (cs), Catalan (ca), Spanish (es), German (de), Chinese (zh\_CN), Turkish
-(tr), Polish (pl), Italian (it), French (fr), Greek (el), and Danish (da).
-Translatable strings are to be found under po/*.po in the sources. These files
-can conveniently be edited with front-ends like Lokalize\footnote{\url{http://i18n.kde.org/tools/}}.
-
-Plugins and help pages in \pkg{RKWard} are not translatable at the time of this
-writing. While it will be technically possible to include the respective strings in
-message catalogs, this is currently not implemented in \pkg{RKWard}. Similarly, any
-output generated by \proglang{R} functions defined for \pkg{RKWard} is currently not
-translatable. Again, however, there is no technical barrier with respect to
-internationalization of \proglang{R} code, as discussed by \cite{Ripley2005a},
-and it is planned to make \pkg{\pkg{RKWard}} fully translatable in future versions.

This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.