Alle der folgenden Projekte sind als Open-Source auf meiner GitHub-Seite verfügbar.

Fehlerberichte, Kommentare und Patches sind immer willkommen. Bitte senden Sie diese an Benutzer: „bugs“, Domain: „harnold.org“.

ASTROIDS

C Hommage an einen Videospiel-Klassiker

ASTROIDS ist eine Hommage an den Videospiel-Klassiker Asteroids von Atari.

ASTROIDS-Spielbildschirm

ASTROIDS läuft unter DOS und Windows 9x. Auf modernen Systemen kann es mit einem DOS-Emulator wie DOSEMU oder DOSBox oder in einer virtuellen Maschine mit FreeDOS gespielt werden.

ZIP herunterladen TAR.GZ herunterladen


DUCKS

C Minimalistisches Moorhuhn-Remake

DUCKS ist ein minimalistisches Remake des Spiels Moorhuhnjagd, das trotz (oder gerade wegen) seiner Stupidität in Deutschland Ende der neunziger Jahre so populär war, dass schon behauptet wurde, die von Büroarbeitern damit verschwendeten Arbeitsstunden hätten einen messbaren negativen Effekt auf die Wirtschaftsleistung des Landes. Mit dieser Neuauflage bietet sich nun noch einmal die Gelegenheit, der Produktivität den Kampf anzusagen.

DUCKS-Bildschirmfoto

DUCKS läuft unter DOS und Windows 9x. Auf modernen Systemen kann es mit einem DOS-Emulator wie DOSEMU oder DOSBox oder in einer virtuellen Maschine mit FreeDOS gespielt werden.

ZIP herunterladen TAR.GZ herunterladen


Generic C

C Generische Datenstrukturen und Algorithmen für C

Diese (noch experimentelle) Bibliothek generischer Datenstrukturen und Algorithmen soll einmal generische Programmierung in C ermöglichen. Sie bietet ein Programmierschnittstelle ähnlich der Standard Template Library für C++, mit dem Unterschied, dass die Algorithmen mit Bereichen statt Iteratoren arbeiten (siehe dazu Andrei Alexandrescus Vortrag Iterators Must Go auf der BoostCon-Konferenz 2009).


Magrathea

C++ Objektorientiertes GUI-Framework für C++

Magrathea ist ein in C++ implementiertes, portables objektorientiertes Framework für GUI-Anwendungen. Es wurde mit dem Ziel entwickelt, unter Windows eine Programmierschnittstelle ähnlich der BeOS-API zur Verfügung zu stellen, die wesentlich eleganter war als die APIs damals unter Windows populärer Bibliotheken, wie beispielsweise der MFC.

Das Framework ist noch recht unvollständig und weit davon entfernt, production-ready zu sein. Insbesondere fehlt eine ernsthafte Fehlerbehandlung. Die von einer früheren Version der Bibliothek bereitgestellte Funktionalität war aber immerhin ausreichend für die Entwicklung eines interaktiven 3d-Landschaftseditors und fraktalen Landschaftsgenerators (von dem die Bibliothek auch ihren Namen geerbt hat).


OCaml Base

OCaml Erweiterung der OCaml-Standardbibliothek

Diese Bibliothek ist eine Erweiterung der OCaml-Standardbibliothek. Sie bietet erweiterte Module für die Datentypen Array, Char, List und String, Datenstrukturen für endliche Mengen und endliche Abbildungen, basierend auf binären Suchbäumen mit beschränkter Balancierung, dynamische Arrays, Prioritätswarteschlangen, basierend auf in Arrays eingebetteten Heaps, sowie einige Hilfsfunktionen.

Eine weitere Komponente der Bibliothek ist eine umfangreiche und effiziente Bibliothek monadischer Parser-Kombinatoren, ähnlich der Parsec-Bibliothek für Haskell und der FParsec-Bibliothek für F#.

Herunterladen: ocaml-base-0.2.tar.gz


COBE

C# Codegenerierung mit genetischen Algorithmen

COBE (COmpilation By Evolution) ist ein auf genetischen Algorithmen basierender experimenteller Codegenerator für variable Zielarchitekturen. Dieses Programm diente zur Untersuchung neuartiger Methoden der Codegenerierung, mit denen es einerseits möglich sein sollte, optimierten Code für anwendungsspezifische Prozessoren mit Befehlsparallelismus und komplexen Befehlen zu erzeugen, die aber andererseits allgemein genug sind, um in den Phasen der Entwurfsexploration und der Entwurfsbewertung in einem Hardware-Software-Codesign-System eingesetzt zu werden.


Ants

Java Virtuelle Maschine zur Simulation von Schwarmrobotern

Ants ist ein Programmpaket zur Simulation von Schwärmen einfacher Roboter. Es wurde eingesetzt zur Untersuchung schwarmbasierter Explorations- und Kommunikationsstrategien für Roboter mit extrem beschränkten Fähigkeiten, die in einer unbekannten Umgebung operieren müssen. Inspiriert waren diese Untersuchungen vom Verhalten natürlicher Ameisenkolonien.

Das Projekt enthält einen Compiler zur Übersetzung der in einer Assembler-ähnlichen Sprache geschriebenen „Ameisenprogramme“ in ein Binärformat, einen Decompiler zur Rückübersetzung binärer Programme in Quelltext, sowie eine virtuelle Maschine zur Bereitstellung einer Simulationsumgebung und zur Ausführung der Simulation.


snap

Shell Inkrementelle Backups mit rsync

Snap ist ein Kommandozeilen-Programm, mit dem sich auf einfache Weise inkrementelle Backups erstellen lassen. Jeder Aufruf des Programms erzeugt eine vollständige Kopie der zu sichernden Verzeichnisse, die mit normalen Dateiwerkzeugen inspiziert und bei Bedarf wiederhergestellt werden kann. Um Zeit und Speicherplatz zu sparen, erzeugt snap Dateien, die zwischen aufeinanderfolgenden Backups nicht verändert wurden, als Hard-Links.

Herunterladen: snap-0.3.4.tar.gz


txt2x

Prolog Text-nach-HTML/XML-Konverter

Txt2x ist ein Programm zur Erzeugung von HTML- und XML-Dokumenten aus reinen Textdateien, die mit einfachen und unaufdringlichen Auszeichnungen versehen sind, wie sie zum Beispiel in E-Mails üblich sind. Die Funktionalität von txt2x ist vergleichbar mit der von Markdown oder AsciiDoc, wenn auch nicht ganz so umfassend (tatsächlich ist txt2x bereits einige Jahre älter als diese Werkzeuge).

Design und Programmierung: Holger Arnold