Intro | Stuff I Made | CV
X11 toy in the form of a virtual jumping spider.
A compatibility mod for Minetest mods under the MineClone 2 subgame.
A library for abstract socket networking that seamlessly allows both unencrypted and encrypted connections.
An implementation of websockets version 13 with an easy and convenient C API.
SocialNetwork (work in progress)
A peer-to-peer social network, fully decentralized.
A Tinychat bot for collaborately playing Nintendo DS games, based on tc_client and Desmume.
Webchat (incomplete)
A multi-channel webchat solution with accounts, channel registration and moderation, colors to distinguish users, and options to broadcast cameras and/or microphones.
You can see it in action at chat.ion.nu.
A simple client/server program that wraps around mplayer and keeps videos playing on two separate systems in sync.
A vim plugin that shows the C/C++ preprocessor conditions that need to be met for the currently selected line to be used in the final executable. Bound to 'M'.
A tinychat client implemented in C.
A tool to automate tasks in an X11 environment. Includes features for typing and clicking on targets found on the screen.
A console drop-in replacement for zenity.
Automated package tests for AOS and a web interface for monitoring
The automated package testing system looks for updates in the AOS buildwiki and tries building the packages with the latest instructions.
Package builds are prioritized based on whether the last build succeeded or failed, and whether the update touched a package's instructions directly or just a dependency. Additionally packages' priorities are bumped up if they are a dependency of a package with higher priority and thus needs to be built first.
The workload is distributed to multiple separate buildhosts which can be added or removed without any interruptions.
Upon package builds failing (or succeeding after previously failing) a notification email is sent.
The link above leads to the web interface for monitoring builds, it is written in C and in a way that is as unintrusive as possible, reading the data only from files already used by the testing system itself.
A simple shellscript to record frames of the screen and turn them into an animated gif image.
Optionally takes duration in seconds as an argument, defaults to 10.
Depends on imagemagick and xwd (X11 utility) and possibly bash for a fine-grained sleep command.
A simple and lightweight library for reading configuration files.
Buildsystem for Gish
Gish's code was released as free software, but it was lacking a buildsystem, so I hacked this together (only the Makefile) and re-packaged it as a tarball, as suitable for a game about a ball of tar.
To play it you'll need to get the data (which has a more restrictive license) from one of the binary distributions, either the demo from their site or the full version that you can buy. Easiest is to copy the gish executable to the directory of the binary release.
AOS is my sourcebased GNU+Linux distribution.
Click the link to read more.
I hacked together a little shell-script to track thread points on reddit, showing point updates through zenity notifications and keeping track of the highest points in the terminal.
initchroot is a minimal init program to bootstrap into a GNU+Linux system installed in a subdirectory, chroot'ing into the directory and then passing control to the system's own /sbin/init.
The directory is specified on the kernel command line with the rootsubdir=/path/to/installation argument and init=/path/to/initchroot is used to call initchroot, the root also needs to be mounted read/writable with the rw argument since it cannot be remounted after chroot.
The buildsystem for initchroot is part of the sourcecode, just execute initchroot.c like a shell-script.
CLI client for webbased chat
I like having my chats in terminals, it makes it easier to always stay present and reconnect to sessions running in screen-sessions,
so when the LAN party group's webbased chat became more active again I started experimenting with reading and writing messages without a browser, a few lines of curl commands.
The end result: an ncurses based CLI chat using libcurl.
Ion Images
Ion Images is probably the main reason I got this domainname in the first place. The idea to create Ion Images (and Ion Pics as I've decided to call the software package) was sparked from one of the DJs at headbangersFM.
Learning tools
for the japanese alphabets Hiragana and Katakana.
Genetic-algorithm experiments
During the years I've done several genetic-algorithm experiments, this is one of the first.
A Snake game written in bash.
Code formatter
A small script I wrote before the age of 16 to format code with indentation on spacing.
A really old web game written in javascript.
A webserver written in shell script with GNU nc, complete with CGI support. (not for use in production, just a hack)
Patch to make Gnome/Nautilus' trash icon eject or unmount devices like Mac OSX does. Probably won't work on current Gnome anymore, but maybe Mate with some path fixes.
A script that tries to build a source package automatically from the source directory or source tarball or zip file.
And many more that I didn't remember to include here.