Programme, die keiner braucht


Was genau ist an Programme, die keiner braucht eigentlich so interessant? Klar, erstmal draufklicken und gucken, was man nicht braucht! Ok ,ok, zugegeben, ich heuchele, warum habe ich das Geraffel denn überhaupt online gestellt, wenn es sowieso keiner brauchen kann? Also, ich präzisiere und präsentiere die Programme, die wahrscheinlich kaum jemand braucht. Zufrieden? Die habe ich mal irgendwann geschrieben, und damit sie nicht auf meiner Festplatte verrotten, sondern wider Erwarten vielleicht irgendeinem der vielen Internetler nützlich sein können, gibt‘s die jetzt hier. In grob alphabetischer Reihenfolge, was egal ist, weil eh alle Phantasienamen tragen. Noch was? Ach ja, es handelt sich um Windows-Programme.

[ Dreher | FTP-Trigger | Gensort | Manni | Replacer | UCI-Obfuscator | Vertragskiller | Zukacker ]

Der Dreher ist ganz bestimmt das sinnloseste Programm, das jemals jemand von mir haben wollte. Der Dreher erzeugt aus einer Originaldatei eine andere Datei, welche sämtliche Bytes in umgekehrter Reihenfolge enthält. Es ist, als würde man die Datei „von hinten“ lesen. Kann man an jeder Textdatei ausprobieren. Auf Wunsch dreht der Dreher die Datei auch bitweise, in jedem Byte werden also sämtliche Bits auch noch getauscht, das achte Bit wird zum ersten, das siebte zum zweiten usw. Das hat natürlich nur bei Binärdateien Sinn. Wenn es denn überhaupt Sinn hat – irgend jemand wollte mal so ein Programm von mir, und ich habe ihm den Gefallen getan. Wofür? Ich habe keine Ahnung ...



Herunterladen: dreher.zip (180 KByte)
Sourcecode dazu (Borland C-Builder): dreher_src.zip (5 KByte)

zum Seitenanfang

FTP-Trigger lädt eine Datei oder mehrere Dateien in regelmäßigen Intervallen per File Transfer Protocol auf einen Internet-Server hoch. Das ergibt natürlich nur Sinn, wenn die Dateien sich regelmäßig ändern. Entstanden ist das Programm, um lokal gespielte Schachpartien live im Internet zu übertragen. Dabei läuft auf dem Server ein Java-Viewer, der eine Schachpartie anzeigen kann, während der FTP-Trigger dafür sorgt, daß die Partien immer aktualisiert werden, wenn ein Zug geschehen ist. Möglicherweise gibt es noch andere Anwendungen für den FTP-Trigger, wer weiß schon, was den Leuten so einfällt? Ich hoffe, es funktioniert alles, den Quelltext habe ich nämlich verschlampt, so daß keine änderungen mehr möglich sind.



Herunterladen: ftptrigger.zip (255 KByte)

zum Seitenanfang

GenSort ist ein Programm, das Sortier-Netzwerke erzeugt. Eine Folge von Zahlen soll mit einer bestimmten Anzahl von Dual-Komparatoren aufsteigend sortiert werden. Die Vergleiche sind dabei vom Ergebnis vorheriger Vergleiche völlig unabhängig -- es werden immer nur zwei Elemente des Array verglichen und eventuell vertauscht.

Es geht darum, mit möglichst wenigen Schritten die Zahlenfolge zu sortieren. Praktische Bedeutung hat sowas in der Hardware-Entwicklung,wo typische Software-Sortierverfahren schwierig oder gar nicht zu implementieren sind. Außerdem sind die Sortiernetzwerke auf Hardware ungeheuer schnell, denn dadurch, daß bereits alle Vergleiche festgeschrieben sind, lassen sie sich sehr gut parallelisieren.

Knuth beschreibt in Band 3 von „The Art of Computer Programming“, „Sorting and Searching“ solche Netzwerke. Für Arrays mit einer Länge <= 8 sind die theoretischen Minimalwerte bekannt, für Netzwerke mit 9 bis 16 Elementen gibt es noch keine bewiesenen Minimalwerte für die Anzahl der nötigen Vergleiche, sondern nur die bislang besten Versuche, solche Netze darzustellen:

Array-Elemente 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Minimale Vergleiche 1 3 5 9 12 16 19 25 29 35 39 46 51 56 60

GenSort soll mittels genetischer Algorithmen solche Sortier-Netzwerke ermitteln. Es arbeitet mir einer festen Populationsgröße von 5000, fast alle anderen denkbaren Parameter sind aber veränderbar. Es ist recht spannend, damit zu experimentieren, weil man mal sieht, wie fragil ein evolutionäres Gleichgewicht ist – eine gut angepaßte Population komplett zu ruinieren geht sehr schnell, es dauert dann viele Generationen, bis sie sich wieder erholt hat.



Herunterladen: gensort.zip (290 KByte)

zum Seitenanfang

Manni kann die Fenster anderer Windows-Programme manipulieren, und zwar auf ganz bestimmte Weise. Er kann Manni entstand, weil ich für einen Artikel mal testen wollte, wie verschiedene Spiele-Server auf des Spielers Rechner herumschnüffeln. Die meisten prüfen mindestens auf Task-Wechsel (eigentlich Fenster-Wechsel), und den sollte Manni eben vor denen verstecken. Das heißt natürlich nicht, daß ich auf Spiele-Servern schummeln würde, es war für mich wie gesagt nur ein Test für einen Artikel.



Herunterladen: manni.zip (205 KByte)
Sourcecode dazu (Borland C-Builder): manni_src.zip (6 KByte)

zum Seitenanfang

Manchmal ändert sich etwas auf vielen Webseiten gleichzeitig. Es wäre ein bißchen mühsam, das in jedem Res-File manuell zu ändern, darum gibt es den Replacer, welches zeilenweise in beliebig vielen Dateien Ersetzungen durchführt, ohne daß man Regular Expressions gefrühstückt haben muß.



Der Replacer geht auf Wunsch rekursiv vor, legt Backups an und zeigt vorher an, welche Dateien er ändern möchte, und hinterher, welche er geändert hat. Filter und Pfade merkt er sich, und sonst tut er nix.

Zur Sicherheit nochmal ganz langsam: Das Teil arbeitet zeilenorientiert, wird also keine Fragmente finden. Nur wenn es alle Zeilen eines zu ersetzenden Blocks exakt so findet, funktioniert es. Der Cursor sollte also zum Beispiel immer hinter dem letzten Zeichen der letzten Zeile stehen, denn eine zusätzliche Zeile ohne Inhalt würde als Leerzeile interpretiert.

Herunterladen: replacer.zip (243 KByte)

zum Seitenanfang

Der UCI-Obfuscator maskiert alles, was eine UCI-Schachengine zur GUI sendet, also sämtliche Startstrings, aber auch Knotenzahl, Bewertung usw. Dazu gehört ein Konfigurator, der über eine grafische Oberfläche die nötigen Einstellungen ermöglicht.

Eine Anleitung liegt bei.

UCI-Obfus Konfigurator

Herunterladen: uci_obfus.zip (545 KByte)
 
zum Seitenanfang

Der Vertragskiller schließt Fenster, und zwar beliebig viele. Es handelt sich um ein kleines Kommandozeilen-Programm, das man aus einer Batch-Datei oder einem Script aufrufen kann. Als Parameter übergibt man Fragmente des Fenstertitels. Beispiel:
wkill Mozilla
würde allen Fenstern mit "Mozilla" in der Titelzeile ein WM_CLOSE schicken, wodurch sie im allgemeinen verschwinden. Man kann auch mehrere Argumente angeben (beliebig viele, theoretisch), also würde z.B.
wkill Moz Internet Safa Opera Chrom
alle Browser schließen (aber zum Beispiel auch ein Notepad-Fenster, in dem die Datei Internet.txt bearbeitet wird; falls das nicht gewünscht ist, muß man die Fenstertitel-Fragmente halt eindeutiger angeben).
Das Progrämmchen entstand als Teil eines automatisierten Testsystems und wird bei mir von einem ahk-Script aufgerufen. Natürlich funktioniert es auch einfach so von der Kommandozeile.

Herunterladen: wkill.zip (205 KByte)
Sourcecode dazu: wkill.cpp (6 KByte)

zum Seitenanfang

Auch der Zukacker entstand, weil ich für einen Artikel ein Testprogramm brauchte. Er belegt Speicher, so viel, wie der Anwender möchte, maximal jedoch so viel, wie gerade frei ist. Weil Windows nicht benutzten Speicher aber schnell wieder freiswappt, greift der Zukacker auf Wunsch regelmäßig auf den von ihm belegten Speicher zu, um Auslagern zu verhindern.



Herunterladen: zukacker.zip (170 KByte)
Sourcecode dazu (Borland C-Builder): zukacker_src.zip (6 KByte)

zum Seitenanfang


Es gibt noch ein paar Programme, die sinnlos bei mir herumlungern; in loser Folge werde ich sie auf dieser Seite anbieten. Weil manche aber ziemlich viel tun und natürlich noch keine Beschreibung existiert, wird es noch dauern.

zum Seitenanfang


Letzte Aktualisierung am 17.07.2011