All of the following projects are available as open source on my GitHub page.

Bug reports, comments, and patches are welcome. Please send them to User: “bugs”, Domain: “harnold.org”.

ASTROIDS

C An homage to a classic arcade video game

ASTROIDS is an homage to the classic arcade video game Asteroids by Atari.

ASTROIDS game screenshot

ASTROIDS runs under DOS and Windows 9x. On modern systems, you can play it using a DOS emulator, such as DOSEMU or DOSBox, or in a virtual machine running FreeDOS.

Download ZIP Download TAR.GZ


DUCKS

C Remake of a classic duck hunting game

DUCKS is a minimalistic remake of the game Crazy Chicken, a game which, despite (or because of) its stupidity, was so popular in Germany in the late 1990s that it was jokingly accused of having a measurable negative impact on the national economy due to the numerous work hours wasted by office employees playing the game. This remake gives you the chance to counter productivity once again.

DUCKS screenshot

DUCKS runs under DOS and Windows 9x. On modern systems, you can play it using a DOS emulator, such as DOSEMU or DOSBox, or in a virtual machine running FreeDOS.

Download ZIP Download TAR.GZ


Generic C

C Generic data structures and algorithms for C

This library of generic data structures and algorithms (which should still be considered experimental) shall eventually enable generic programming in C. It provides a programming interface similar to the Standard Template Library for C++, but with algorithms based on ranges instead of iterators (see Andrei Alexandrescu’s presentation Iterators Must Go from the 2009 BoostCon conference for an explanation).


Magrathea

C++ Object-oriented GUI framework for C++

Magrathea is an object-oriented framework for GUI applications, implemented in C++. It has been developed as an attempt to provide a programming interface similar to the beautiful (at least when compared to then popular libraries such as MFC) BeOS API on Windows.

The framework is far from being complete and is in no way production ready. In particular, it lacks serious error handling. Nevertheless, an earlier version has been successfully used to build an interactive 3d landscape editor and fractal landscape generator (from which the framework also inherited its name).


OCaml Base

OCaml Standard library extension for OCaml

This library is an extension of the OCaml standard library. It provides extended Array, Char, List, and String modules, data structures for finite sets and finite maps based on binary trees of bounded balance, dynamic arrays, priority queues based on array-embedded heaps, and some utilities.

Additionally, OCaml Base contains a rather complete and efficient monadic parser combinator library, similar to the Parsec library for Haskell and the FParsec library for F#.

Download: ocaml-base-0.2.tar.gz


COBE

C# Code generation with genetic algorithms

COBE (COmpilation By Evolution) is an experimental retargetable code generator based on genetic algorithms. This program has been used in the investigation of novel code generation methods that are able to produce optimized code for application-specific processors with instruction-level parallelism and complex instructions, while being sufficiently generic to support design exploration and design evaluation in a hardware/software codesign system.


Ants

Java Virtual machine for simulating swarms of simple robots

Ants is a set of tools providing the foundation for simulating swarms of simple robots. It has been used to investigate swarm-based exploration and communication strategies for robots with extremely limited abilities operating in an unknown environment, inspired by the behavior of natural ant colonies.

The project contains a compiler for translating “ant programs” written in an assembly-like language to a binary format, a decompiler for translating binary ants back to source form, and a virtual machine for setting-up a simulation environment and executing the simulation.


snap

Shell Simple backup tool based on rsync

Snap is a command-line program for creating incremental backups. Every run of the program creates a full copy of the directory tree to be backed up, which can be explored and restored using normal file commands and tools. To save time and disk space, snap uses hard links to store files that have not changed between subsequent backups.

Download: snap-0.3.4.tar.gz


txt2x

Prolog Text-to-HTML/XML converter

Txt2x is a tool for generating HTML and XML documents from plain text files written using a simple and unobtrusive markup. It is similar in function to Markdown or AsciiDoc, but not quite as comprehensive as these tools (actually, it predates both programs by a few years).

Design and Programming: Holger Arnold