My most ambitious project is UNG, which aims to be a complete implementation of the Single UNIX Specification (aka POSIX).

In a similar vein is a collection of work under the umbrella of Outerix. The aim is to provide strictly conforming tools and libraries to Windows users.

I have several smaller projects mostly hosted on GitLab (and some mirrorred on GitHub):

Convert files into C arrays for easy #include use.
A program to automatically rotate the X display on Linux systems.
An unimaginatevely named blog program. Very much meant for my needs and my needs alone, but it could be a useful starting point for others wanting to write a blog on a BCHS stack (minus the S).
A very small Brainfuck intepreter.
color ls
A small AWK program that wraps the output of a POSIX compliant ls to add color support. I prefer this to needing to replace ls entirely, especially to replacing ls with the GNU version.
A program to read comic book archives on the Progress Technologies eOneBook.
A silly toy that prints random hex characters in different colors to make you look like a l33t h4x0r.
Unit tests for the standard C library as defined by ISO/IEC 9899.
Simple implementations, mostly as very small shell scripts, of the non-POSIX utilities included in GNU's coreutils package. Intended as a sort of coreutils methadone.
pen XOR touch
A program that monitors X inputs to disable the touch screen device when a stylus is in range, and reenable touch when the stylus is removed.
A file copy utility with progress indicator.
Some of my favorite quotes related to computers and computer science.
A little utility to test shellcode.
Roller Derby Scoreboard
A roller derby scoreboard that runs as in a single self-contained HTML page. I wrote this because the common use scoreboard, CRG, runs as a web interface to a buggy Java application. Nobody should be running Java.
A little utility that translates error numbers into their string representation (as determined by the strerror() function) and their symbolic name (e.g. [ERANGE]).

In addition, I have made some contributions to other software:

During my time at The George Washington University, I did a substantial amount of work on this research operating system.
I contributed a patch to enable FreeRDP to parse the "pcb" block in .rdp files, which allows FreeRDP to connect directly to Hyper-V hosted virtual machine consoles.
I honestly have no memory of contributing to this, but according to the ChangeLog, I contributed some code to inetd. My name is even present as an author when you run inetd --version. If I read things right, it looks like my work was focused on adding support for a configuration directory on top of support for a single configuration file.

Finally, long ago (mostly last century), I wrote some programs that I wound up abandoning when I joined the Army. These have seen no attention from me since at least 2001.

A Perl-based webmail client. Very primitive, though it did have basic MIME support. I wrote this well before I had any real understanding of security, and as a consequence it stores user's POP3 passwords in an easily deobfustacted format. You shouldn't use this if you run across it.
Generic Databse Connector (GDBC)
Intended to be a replacement for ODBC following the UNIX philosophy. It had a command line SQL interface and drivers for MySQL and PostgreSQL.
Intended to be a wrapper to multiple user interface toolkits, specifically GTK+ and curses, so that applications could present an appearance that is "native" to the currently running desktop environment (or lack thereof). Didn't get very far at all with this one.
This one is actually still currently maintained, only not by me. I originally wrote the POP3 daemon, which was called IDS POP (IDS standing for "It Doesn't Suck", which got me a threatening email from Bare Bones Software's legal department). I had to change the name around the same time someone (I think Alaine Magloire) floated the proposal for a GNU mail utilities suite. I contributed the POP3 daemon, and extracted its mbox parsing code to form the initial version of libmailutils. I also did a lot of work on the initial implementations of the IMAP4 daemon and the mailx utility.
Originally called minordomo, but renamed due to a conflict with another tool. A lightweight mailing list manager. Included a web interface to archives. Probably one of my better ancient tools, despite being written in Perl.
A tool that should have been a patch to mingetty. Basically, it's mingetty plus the ability to run an arbitrary program instead of login (defaulting to the user nobody, so I guess I wasn't totally security stupid). It also can do auto-logins. This seems to still be packaged in Debian at least.
The intent was to create a TUI/GUI database manager, similar to Microsoft Access but for POSIX systems. It was to use GDBC for database access and GNUTS for the user interface. I didn't get very far before I abandoned the project.
Copyright © 2019 Jakob Kaivo <>