Hier möchte stelle ich eigene Projekte vor, meistens sind es nur sehr kleine Programme
Sudoku ist ein Logikrätsel, das sich in letzter Zeit recht grosser Beliebtheit erfreut. Ein paar Interessante Dinge über Sudoku sind auf meiner Sudoku-Seite zu finden.
YasSS ist ein Programm, das Sudokus löst, erzeugt und ihren Schwierigkeitsgrad ausgeben kann.
Die Kommandozeilenoptionen sind dem Programm A Su Doku Solver von Bill Dupree nachempfunden.
Mehr Details gibt es auf der YasSS-Projektseite
Hier gibt es die aktuelle Version von YasSS
YasSS ist auf Google Code aufgeführt, dort ist auch der Zugang zum SVN-Archiv erklärt.
topDiese Programm bringt Sudoku auf eine kanoninische Form.
Wie auf meiner Sudoku-Seite beschrieben verändert sich an der Logik eines Sudoku nichts, wenn man Zeilen oder Spalten innerhalb eines Blocks vertauscht, Blöck Zeilen-und Spaltenweise vertauscht, das Sudoku transponiert oder die Zahlen durch andere ersetzt.
Dieses Programm liest pro Zeile in Sudoku ein, wobei das Rätsel zeilenweise eingelesen wird und Leere Stellen als Null gewertet werden.
Dann werden solange die oben beschriebenen Transformationen angewandt, bis die niedrigst mögliche Zahl mit diesem Rätsel erzeugt wurde. Diese Möglichkeit wird ausgegeben.
Damit kann man Sudokus vergleichen, da zwei Sudokus, die durch Transformationen auseinander hervorgehen, die gleiche Ausgabe erzeugen.
Im Juli 2006 habe ich das Programm komplett neu geschrieben.
Während ältere Versionen diese Programms alle Möglichkeiten durchprobiert haben, berechnet die aktuelle Version auf Anregung von Gordon Royle nur die tatsächlich benötigten Position.
Damit konnte ich die Laufzeit pro minimalem Sudoku von 1,2 bis 1,5 Sekunden auf etwa 0,27 Sekunden reduzieren. Testsystem war ein Laptop mit Pentium M 1.5 GHz.
Der Speicherverbrauch ist sehr gering und fällt kaum ins Gewicht.
Diese Programm ist nur für spärlich besetzte Sudoku gedacht (<20 Einträge ungleich Null), bei voller besetzten kann die Laufzeit stark ansteigen.
Bedanken möchte ich mich bei Tobias Preclik, der für mich in der alten Version ein Memory leak gefunden und beseitigt hat.
Version 0.7.0 ist in den Sudoku Solver YasSS eingeflossen, der nun diese Funktionalität bietet. Canons wird nicht mehr eigentständig weiterentwickelt.
Hier gibt es die aktuelle Version herunterzuladen. Der Sourcecode der neuesten Version kann auf der Projektseite auf Google Code eingesehen werden.
Log2Sitemap ist ein einfaches Perlskript, dass aus Apache-Logdateien im "combined"-Format (das ist default) xml-Sitemap-Dateien erstellt, die für die "Google Webmaster Tools" verwendet werden können.
Dabei wird die Priorität innerhalb der Sitemap automatisch durch die Anzahl der erfolgreichen Aufrufe in den Logdateien berechnet.
Und so geht's:
cicq2txt wandelt history-files, in denen die Konversationen mit einzelnen Kontakten gespeichert sind, ein ein wesentlich leichter lesbareres Format um.
cicq2txt entstand in Zusammenarbeit mit Daniel "Argafål" Michalik. Hier ist seine Projektseite mit der aktuellen Version zum Herunterladen.
Programmiersprache: perl.
Ich bin einer der "Mitgründer" der Freakshell, einer noch nicht impelementierten Shell mit ganz tollen Features - wenn sie mal fertig wird ;-).
Die Freakshell soll es z.B. erlauben, die Ausgabe von bereits laufenden Jobs zu anderen Programmen umzuleiten ("repiping").
Für Details gibt es die Freakshell Projektseite.
Das ist eigentlich mehr eine Fallstudie in Backtracking als ein richtiges Programmierprojekt.
Genaueres gibt es auf meiner Seite zu Backtracking.