About me

Being a physicist by training (having mostly worked in the field of
Electron
Spin Resonance (ESR)) I got sidetracked into fiddling with
computers. One of the results is a program for controlling
spectrometers, fsc2 and a number of Linux
device drivers (see below). I also have worked as a member of the web
team of the Free University
Berlin, developed the back-end for
a web site and wrote a software
package for evaluating and visualising neuro-psychological data while
being employed at the
Dept.
of Education and Psychology. In my spare time I'm the maintainer of
the
XForms toolkit library. Some
of the results of what I've been involved with can be downloaded from
the links below.

Software and other stuff

fsc2 is a program for
controlling spectrometers. Its main features are: easy to adapt
to different hardware; running an experiment is controlled by a
simple interpreted language, so it can be used to do basically
all kinds of experiments, i.e. it's not restricted to a certain
built-in set.

A project I'm very much interested in tries to support teachers at
primary schools and kindergardens to do science education via an
inquiry-based learning method (i.e., the children figure out things
by doing experiments themselves, not by having the teacher tell them
how things are supposed to work). I'm one of the collaborators
(mostly taking care of the technical side of things) of the German
mirror-website of the French site
La main à la pâte:

I had the good luck to get asked to do a bit of technical
reviewing for an amazingly good book about system programming
under Linux and UNIX
by Michael Kerrisk
(who's also the maintainer of the
Linux man-pages
project):

If you're interested in programming under Linux/UNIX I strongly
recommend that you take a good look at this book - I consider it to
be the most comprehensive and well written book available and a
worthy successor to Richard Stevens' famous
Advanced
Programming in the UNIX Environment.

sha_digest is a package that
implements the SHA-1, SHA-224, SHA-256, SHA-384 and SHA-512
hash digest algorithms as defined by the
FIPS
180-3 standard (for both byte- and bit-oriented messages).

AES256 is a C++ implementation of
the AES-256 cipher method, supporting a number of block chaining
and padding modes.

Linux device driver and library for the
Meilhaus Electronic GmbH
ME6000 and ME6100 DAC cards for 2.4 and 2.6 kernels. The driver
is an adapted version of an older one (from 2002) supplied by
Meilhaus (under GPL). Please see also the
Meilhaus homepage, they
supply much newer drivers and a library that rather likely is
much superior.

Linux device driver and library for
National Instruments GPIB
cards (AT-GPIB/TNT and PCII(A), but also seems
to work with some other cards based on the µPD 7210 chip)
for kernels 2.0, 2.2 and 2.4 and 2.6:

Also includes a Perl package for talking to the GPIB devices.
Last update: November 4, 2008
Please note: for most cases I would recommend to use drivers
from the
Linux GPIB
Package, which probably is more mature.

Perl module for file locking using fcntl():
Perl's file locking function flock() usually is based on the
flock() system call which has some known shortcomings and,
in contrast to fcntl(), does not allow locks on parts
of a file. Obviously, this module will only work on systems
having a fcntl() system call. Download via CPAN:

Please note: The Linux device drivers you can download here
seem to compile cleanly with 2.6, 3.0 and 3.2 kernels I tried (up
to 3.2.55) but due to the rapid development of the kernel I can't
guarantee that they compile on all kernel version in existence.
And, since I don't have access to all the hardware under all
kernel versions, I also couldn't do tests for all possible
combinations. Please let me know if you encounter problems.