Programming is great. Sometimes (although not too often), an interesting project arises from an otherwise stupid idea. This section contains some of these projects. I hope you consider them at least partially useful. However, every program on this page is provided WITHOUT ANY WARRANTY. Terrible things might happen to you and your brethren if you expect these programs to work without any negative side effects. They work under my operating system (FreeBSD) and with some luck, they will work (more or less) under yours, too.
If not mentioned otherwise, the code in this section is licensed under the GPL. Do not download anything from this page if you do not comply with the terms of the GPL.
CipherDagger
My implementation of the CipherSaber algorithm; a small, simple and secure way to encrypt/decrypt your files. It should compile under Linux, FreeBSD and even Windows. Since the algorithm is based upon RC4, the problems with weak initialization vectors apply, too (google for "wep attack weak IV"). Therefore, it is recommended that you use CipherSaber-2 (which permutes the state array).
download (C++ code for FreeBSD)
comphom
comphom is a small demonstration program that allows you to compute homology groups. Given a triangulation (or a whole bunch of them), comphom computes the groups and writes the results to a file.
comphom was developed to learn more about computing homology groups. It contains a (simple) implementation of an algorithm that generates the Smith normal form for a given matrix. The program package also contains a small script that converts triangulations from F. Lutz' manifold page to comphom's (very simple) internal data format.
download (C++ code and README for FreeBSD)
GPSCon (GPS at your Console)
GPSCon is a ncurses-based GPS mapping program. Indeed, it is more or less useless, but it works quite well if you have a spare NMEA-0183 compatible GPS device. The application is also capable of reading data files containing points of interest, which enables you to create text-based maps of your area. I use GPSCon regularly for geocaching. Future versions may contain impressive functions such as saving or loading maps. I will keep you up to date - so stay tuned.
download (C++ code for FreeBSD)
HiFi (Hide Text in Files)
HiFi is a simple steganography application. At present, it can handle .BMP and .WAV files. Use it to hide your data in the most astonishing way. The algorithm is very simple: Each source byte is stored in 1-bit steps using the least significant bit of the destination bytes. Thus, the output file has to be 8 times bigger than the input file. However, this size refers to the actual data (i.e. pixel information) and not to the size of the whole file in bytes.
download (C++ code for FreeBSD)
Huffman Tree
This is the implementation of a Huffman tree, used for compressing data. I guess it was one of the most interesting things I did in Haskell (programming in Haskell was part of a course I took several years ago).
Hyppolyta - The Amazon Queen
Do you strive to catalogue and sort your belongings? Do you own
many books? Hyppolyta is a rather elegant way to sort your
books: Using the Amazon Webservices (AWS), you only need a
barcode scanner, Perl, some
CPAN modules and wget to gather information about
all sorts of products: Books, DVDs, CDs etc.
Sounds interesting? Read the article
in my blog for more details. You can also take a look at the
(rather lengthy) documentation of
Hyppolyta. This document has been generated via
latex2html (without any custom settings. Hence, it does
not look like the rest of this site).
download (Perl code and documentation)
IMR (in medias res)
IMR allows you to perform an ARP attack on two systems by using FreeBSD's Berkeley Packet Filter. However, this is of course purely for educational purposes. Please distribute the sources and "spread the word" if you consider IMR useful. IMR is also a test for POD, Perl's "Plain Old Documentation" format. See README for more details or just run pod2text imr.cpp.
UPDATE-21-07-05: IMR now uses the libpcap file format to store logged data. Thus, you are able to load and study logs with Wireshark, tcpdump or any other program that supports libpcap files.
UPDATE-06-09-08: BPF_WORDALIGN is used correctly now. See my blog post for more details.
download (C++ code for FreeBSD)
PatternSearch
PatternSearch is a pattern search algorithm similar to the famous KMP algorithm that uses shift and other techniques to find the pattern faster. Unfortunately, the code's comments are in German, but that should not keep you from looking at it.