Software
In my career, I have written various kinds of software packages that I released as free and open-source software, such as:
-
Disnix is a Nix-based distributed service deployment tool, allowing users to capture
the components of a service-oriented system and its inter-dependencies, the properties of machines in the network and mappings of
services 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. Disnix has several companion tools, such as
Dysnomia, that can be used to manage units of state in container services.
-
node2nix is a tool capable of automatically generating Nix expressions from
NPM package configuration files. By integrating NPM packages into the Nix-ecosystem it becomes
possible to deploy entire software systems including Node.js applications from a single declarative specification.
-
NiJS is a JavaScript-based internal Domain Specific Language (DSL) for the Nix
package manager. NiJS is particularly useful to construct domain-specific applications in JavaScript (e.g. dashboards) that use
the Nix package manager as a deployment backend.
-
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.
-
A custom web framework that I have been actively
developing between 2002 and 2009. I have used it for a variety of applications, such
as a number of commercial web sites and intranet information systems. I am no longer actively developing this framework, but still
occasionally experiment with it. Despite being old fashioned, the reason why this framework still has some value is that it is
relatively small, has a thin abstraction layer for data handling and all JavaScript functionality is minimized and non-essential.
As a result, web applications based on my custom framework
will work without any problems in environments without JavaScript support including text-oriented web browsers.
In addition to my own projects I also contribute to:
-
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 of packages 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 have been involved in many aspects of the distribution, such as
FHS chroot environments, the Android build environment, the KDE desktop environment, and server software such as Apache Tomcat and Ejabberd.