Over the years, I have been involved in a number of free software projects that are publicly available for everyone take advantage of. A comprehensive overview is also available at Ohloh, the open source network.
Tools
-
NixOS is my personal favorite of all Linux distributions. It supports atomic upgrades, rollbacks and multi-user package management, and it has a declarative approach to system configuration management that makes it easy to reproduce a configuration on another machine.
-
The Autoconf Archive collects Autoconf macros from friendly contributors all over the world. As of today, it it contains over 300 of them, all categorized and nicely documented.
-
hledger-interest is a small command-line utility based on Simon Michael’s hleder library. Its purpose is to compute interest for a given ledger account. Using command line flags, the program can be configured to use various schemes for day-counting, such as act/act, 30360, 30E360, and 30/360isda. Furthermore, it supports a (small) number of interest schemes, i.e. annual interest with a fixed rate and the scheme mandated by the German BGB288 (Basiszins für Verbrauchergeschäfte).
-
mini-httpd is a small web server designed for optimal performance, high security, and as little use of system resources as possible. It uses the
poll(2)
system call to multiplex an arbitrary number of connections internally, rather than usingfork(2)
or OS threading. The daemon is very portable and should work on any POSIX system. -
mapSoN is an efficient albeit somewhat dated challenge/response spam filter. It consists of a single Unix utility that is hooked into your local mail delivery system via procmail, sendmail’s
$HOME/.forward
mechanism, or a similar mechanism. The Petidomo Mailing List Manager
Petidomo is a a simple mailing list server for the Unix operating system. It is written in C and comes with many features such as moderated mailing lists, challenge/response-style spam protection, and a powerful access-control language.
PGPAmiga 2.6.3 International Version (LHA Archive)
Cryptography for the masses … now we only need to educate the masses where to find an Amiga.
-
The Mail Transport Agent (MTA) of choice for the discriminating Haskell hacker in an unstable alpha release.
C/C++ Libraries
-
The ioxx library provides primitives for asynchronous I/O in C++. That kind of thing is typically useful for people who would like to implement a highly concurrent network service, i.e. an application that performs input/output simultaneously on a great number of sockets. The library’s main components are a socket event dispatcher, a time event dispatcher, and an asynchronous DNS resolver. There is also a class interface to socket programming that offers those wonders of modern C++ such as exception-style error reporting, transparent resource management, type-safety, and support for custom memory allocation strategies. Ioxx is thread-safe in the sense that it is fully re-entrant. The code runs on any POSIX-compliant operating system, most notably Linux, NetBSD, Solaris, AIX, HP/UX, and Windows.
-
This C++ language library provides
sh(1)
-like variable substitution in text buffers. It can do quite a bit more than just »substituting«, though. And for those who don’t trust C++, an ISO-C version is available as well. -
libfastcgi implements a complete system-independent FastCGI protocol driver, which can be used to handle all communications between the web server and the FastCGI application.
Extensible Data Serialization Library
libxds allows application programmers to serialize data structures in a way that can be exchanged between machines of different architectures without worrying about endian conversion or other traps. The library provides a framework, which let’s you plug-in various encoding and decoding backends. mplementations for XDR and XML formats are included. The library is written in C and is expected to be very portable.
RFC2822 Address Parser Library
A collection of C++ parsers for the grammar defined in IETF Request for Comment 2822. There are two versions of this library: an older, simpler variant, librfc822.tar.gz that uses a hand-written recursive descent parsers, and a newer, more powerful version that is based on the Boost.Spirit parser library.
Haskell Libraries
-
On top of the GNU adns library, these Haskell modules implement an asynchronous DNS resolver. On the Haskell side, the concurrency is hidden from the user through the use of an
MVar
. Internet-Message-Format Parsers
This package contains various parsers for the Internet Message Format defined in RFC2822, plus various additional e-mail related things from 2821.
-
An
hsc2hs
module with FFI bindings tosyslog
. -
Functional MetaPost is a Haskell frontend to the MetaPost language by John Hobby. Users write their graphics as Haskell programs, which then emit MetaPost code that can be compiled into encapsulated PostScript files and smoothly included into e.g. LaTeX.
-
A very incomplete collection of functions implemented on top of the OpenSSL library. Currently provides the message digest algorithms MD2, MD5, SHA, SHA1, DSS, DSS1, MDC2, and RIPEMD160 through a unified API.
-
Based on the
Arrow
class, this module implements a generic data stream processor which may be used in theIO
monad or in pure code. -
Halipeto is a Haskell library for generating static HTML pages from XML templates and a file-based value dictionary.