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
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
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:
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
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
Herunterladen: manni.zip (205 KByte)
Sourcecode dazu (Borland C-Builder): manni_src.zip (6 KByte)
zum Seitenanfang
- die Titelzeilen ändern.
- das Programm im Hintergrund bedienbar machen, so daß gewisse überprüfungs-Programme keinen Taskwechsel mehr feststellen können.
- das Programm permanent in den Vordergrund holen, sein Fenster also über allen anderen schweben lassen.
- all diese Sachen auch in beliebiger Kombination erledigen.
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 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.
Herunterladen: uci_obfus.zip (545 KByte)
zum Seitenanfang
Eine Anleitung liegt bei.
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:
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
wkill Mozillawü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 Chromalle 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
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
zum Seitenanfang
Letzte Aktualisierung am 17.07.2011