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
- Convert files into C arrays for easy
- 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
- color ls
- A small
program that wraps the output of a POSIX compliant
to add color support. I prefer this to needing to replace
especially to replacing
ls with the GNU version.
- A program to read
archives on the
- 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
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
to enable FreeRDP to parse the "
pcb" block in
which allows FreeRDP to connect directly to Hyper-V hosted virtual machine
- I honestly have no memory of contributing to this, but according to the
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.
Copyright © 2019 Jakob Kaivo <firstname.lastname@example.org>
- 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
- 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
- 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.