Currently, I am involved in the following software projects:
Nix, a purely functional package manager which provides some distinct features
compared to regular package managers, such as complete dependencies, declarative build expressions, atomic upgrades and the
option of having multiple versions or variants installed at the same time. Forget about RPM, APT, Gentoo etc. :-)
NixOS, a GNU/Linux distribution which uses Nix as its package manager and allows deploying
entire systems from one declarative specification. I maintain various parts of the NixOS distribution, most notably
the KDE desktop and related applications and VirtualBox.
Moreover, I also maintain infrastructure components to run Java EE applications.
Disnix. I am also developing a distributed deployment extension to Nix, which allows users to capture
components of a distributed system and its inter-dependencies, properties of machines in the network and mappings of components to machines.
Disnix also provides extension mechanisms which can be used to activate/deactivate services and
to make the upgrade process of a distributed system atomic.
WebDSL is a domain specific language implemented with Stratego/XT
to develop web application with a rich data model. The WebDSL language consists of several sublanguages each
addressing a seperate concern such as Access Control, Work Flow and Data Entities.
In WebDSL, I am mainly working on software deployment abstractions, in order to hide implementation details of the
deployment of a WebDSL application.
This abstraction mechanism uses Nix and Disnix to perform deployment operations
and Acoda to perform data migrations between different versions
of a deployed WebDSL application.
I also wrote serveral useful and some entertaining pieces of software in the past and in my spare time:
- IFF file format experiments, a set of portable free and
open source libraries and tools to view, parse, write and check various IFF application formats on modern
platforms as well as on the AmigaOS, where these file formats were originally designed for.