common in the scientific community and industry, but less so in the
the general consumer market. This means that interfaces between the
digital and analog worlds haven't seen the focused development in the
-FLOSS community that more mainstream problem areas have received. In
-this section I'll discuss a few possible options---both open and
-proprietary---in the context of my experiment control stack.
+open source community that more mainstream problem areas have
+received. In this section I'll discuss a few possible options---both
+open and proprietary---in the context of my experiment control stack.
\subsection{LabVIEW}
\label{sec:labview}
bug in your package, you can use your VCS to determine if that bug
affected the data you gathered six months ago.
-There are a number of FLOSS version control systems in common use
-(Git, Mercurial, and Subversion, \dots), but in order to track and
+There are a number of open source version control systems in common
+use (Git, Mercurial, and Subversion, \dots), but in order to track and
merge \emph{changes}, they need a way to calculate the difference
between two versions of a given file. For textual programming
languages, the line-based textual differences used by VCSs work
extremely well, but for binary file formats, performance decreases
drastically. There are third-party merge tools\citep{ni-merge} for
LabVIEW, but the tools are not officially supported.
-
+%
\nomenclature{VCS}{Version control system. A system for tracking
project development by recording versions of the project in a
repository.}
-\nomenclature{FLOSS}{Free, Libre, and Open Source (software). A
- catch-all for copyleft licensing.}
While National Instruments seems to put a reasonable amount of effort
into maintaining backwards compatibility, long term archival of binary
hardware interface modules was larger than I had na\"{\i}vely
expected. I also had trouble with multithreaded socket code on
Cygwin, and decided to drop Microsoft Windows altogether in favor of
-a FLOSS operating system.
+an open source operating system.
\begin{figure}
\begin{center}
After transitioning to Linux-based systems, I could no longer use
NI-DAQmx (which only supported Microsoft Windows). Luckily, the
-\citetalias{comedi} project already provided FLOSS driver code for our
-DAQ card (an NI-PCI-6052E). Comedi (from ``Control and Measurement
-Device Interface'') is a general purpose library for interacting with
-DAQ devices, and supports a wide range of hardware. When I moved to
-Comedi, it was a stand-alone kernel module, but since November 2008 it
-has been included in the Linux source as a staging driver.
+\citetalias{comedi} project already provided open source driver code
+for our DAQ card (an NI-PCI-6052E). Comedi (from ``Control and
+Measurement Device Interface'') is a general purpose library for
+interacting with DAQ devices, and supports a wide range of hardware.
+When I moved to Comedi, it was a stand-alone kernel module, but since
+November 2008 it has been included in the Linux source as a staging
+driver.
Comedi development goes back to 2000, so by the time I arrived things
were already pretty stable. I submitted