My Programming Projects

I want to introduce some of my little programming projects.

ilbot, an IRC Log Bot

ilbot was written for the #perl6 channel on irc.freenode.net, but may of course be used for others.

It has its own project page.

YasSS - Yet another (stupid|simple) Sudoku Solver

Sudoku is a logic based puzzle with growing popularity.

It solves all given Sudokus, generates Sudokus and much more.

Download

You can download YasSS from its project page.

YasSS is listed at Google Code, you can access the subversion archive there.

Canons - Canonical Form for Sudoku

This program finds a canonical form for a give Sudoku.

As described here a Sudoku doesn't change it's logic by certain transformations, for example if you exchange rows within the same 3x3 sub grid.

This program reads Sudokus (one per line) and prints out the canonical form.

This is done internally by generating all possible transformations and applying them one by one to each cell of the Sudoku. If it becomes clear that a transformation doesn't lead to the canonical form, it is discarded.

The canonical form is the Sudoku the one that is the lowest in lexicographic order of all possible transformations.

Two Sudokus that can be solved with the same logic operations will produce identical output.

Notes

This program is written for sparse occupied Sudoku only (~17 given numbers). In principle it works with any Sudoku, but it takes about the double time as usual.

Thanks go to Tobias Preclik who found a memory leak in an older version and submitted a patch to close it.

The project's code has been merged into YasSS, the independent version will not be maintained anymore.

Download

You can get the most recent version here.

mowyw - mowyw writes your webpages

Mowyw is an offline cms. You can learn more about it on the Mowyw Project Page.

Cicq2txt - Human readable form for Centericq Log Files

cicq2txt transforms history files from the centericq instant messenger into a human readable form.

cicq2txt is a collaboratory work with Daniel Michalik. You can find more information and a download possibility on on his project page (German).

cicq2txt is written in Perl.

Log2Sitemap

Log2Sitemap is a Perl script that uses Apache Log files in the "combined" format (that's default) to generate a Google Sitemap.

The priority of each page is determined by the number of succefull accesses in the log files.

Usage is very simple:

  1. Ensure that you have installed a perl interpreter. On nearly all Linux or Unix Systems this is default. On Windows you can get ActivePerl, a free perl distribtion.
  2. Download log2sitemap.pl
  3. Edit this file. You have to put in your hostname as appropriate. Further instructions are in that file.
  4. Run log2sitemap.pl, providing your logfiles as command line arguments. Under Linux/Unix, this might look like that: perl log2sitemap.pl /var/log/apache2/access.log or zcat /var/log/apache2/access.log.*.gz | perl log2sitemap.pl.
  5. Copy the generated sitemap.xml to a directory that can be read by your Webserver.

Freakshell

I'm one of the founders of "freakshell", a shell in a very early development status.

It's aim is to offer a cool feature: change a redirection or pipe at runtime of process ("dynamic repiping").

If you are interested please visit the project page.

Queen - N-Queens-Problem

This is more a backtracking case study then a real programming project.

Please read my backtracking page for further information.