Clifford's Projects

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

Project IceStorm

Project IceStorm aims at reverse engineering and documenting the bitstream format of Lattice iCE40 FPGAs and providing simple tools for analyzing and creating bitstream files. The IceStorm flow (Yosys, Arachne-pnr, and IceStorm) is a fully open source Verilog-to-Bitstream flow for iCE40 FPGAs.

Yosys

Yosys is a framework for Verilog RTL synthesis. It has extensive Verilog-2005 support and provides a basic set of synthesis algorithms for various application domains, including ASIC and FPGA synthesis and various formal verification tasks.

EmbedVM

EmbedVM is a C/C++ library that implements 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 writing 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 useful 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.

Contributions to GNU/Linux and other OSS

Primarily 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 magic 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 which various tiny helper scripts and programs I wrote. They are primarily meant 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!