Clifford's Projects

This is a short overview of the most important technical projects I've been working on so far. It's far away from beeing complete ..

EmbedVM

EmbedVM is a C/C++ library that implemts a simple virtual machine that is optimized for a small memory footprint and can be used on microcontrollers to run user-code in a sandbox environment. The package also contains a compiler for a C-like high level programming language.

OpenSCAD

OpenSCAD is a software for creating solid 3D and 2D CAD objects. It is a "CAD Modeller for Programmers" as is is using a programming language to describe the CAD objects. By writeing OpenSCAD code the designer can create parametric objects using a CSG design methodology.

ROCK Linux

This was my most important project for more than 10 years and it wouldn't be very usefull to list all the ROCK Linux related projects I did work on here. I've started the ROCK Linux project sometime 1996 and did work on it up until 2010.

Contibutions to GNU/Linux and other OSS

Primarly due to my work on ROCK Linux I've contributed code (features as well as bugfixes) to many open source projects, including the Linux Kernel, GNU libc, GNU Compiler Collection, GNU Coreutils, the Coda Filesystem, PostgreSQL, Joe, Patchutils, Parrot, KDE, Mozilla and many many more ...

SPL

SPL is a powerful scripting language. It is very feature-rich (hashes, regular expressions, objects, exceptions, built-in template language, etc. pp.) and has a c-style syntax. The Name "SPL" is a left-recursive acronym and expands to "SPL Programming Language". The name was meant to be pronounced as an acronym, but I've already heard people pronouncing it "spell", which is also fine with me.

STFL

STFL is a library which implements a curses-based widget set for text terminals. The STFL API can be used from C, SPL, Python, Perl and Ruby. A special language (the Structured Terminal Forms Language) is used to describe STFL GUIs. The language is designed to be easy and fast to write so an application programmer does not need to spend ages fiddling around with the GUI and can concentrate on the more interesting programming tasks.

Lib(X)SVF

Lib(X)SVF is a (BSD licensed) library for implementing SVF and XSVF JTAG players. This is something one needs once in a while in embedded systems projects.

Csync2

Csync2 is a cluster synchronization tool. It can be used to keep files on multiple hosts in a cluster in sync. Csync2 can handle complex setups with much more than just 2 hosts, handle file deletions and can detect conflicts. It is expedient for HA-clusters, HPC-clusters, COWs and server farms.

Trapdoor2

Trapdoor2 allows remote users to execute local commands by sending 'magic cookies'. This can e.g. be used to alter local firewalling rules so people can connect to local services after sending the magick cookie. Trapdoor2 is implemented as high-secure https server.

rsbak3

rsbak3 is a backup solution for on-disk backups using rsync. It has support for multi-generation backups and other nice stuff. No real release version so far - but the svn head is more-or-less ready for production use.

SubMaster

SubMaster is a system for distributed software development, based on Subversion.

Tools

Clifford's Tools is a small package wich various tiny helper scripts and programs I wrote. They are primarily ment for my personal use but some of them might also be of value for other people.

Brainf*ck Projects

I've done various Brainf*ck related projects, including stuff such as a CPU, a compiler and a towers of hanoi.

AOP (Ambassador of Pain)

Now this is a plain fun project. Raffi and I wrote a really great game with only 64 non-obfuscated lines of C code. Check it out!