|
Da seit circa zwei Jahren Spammer die Gästebücher als lohnendes Medium entdeckt haben stand ich irgendwann vor der Wahl das bisher benutzte flatPHPbook gegen eine mächtigere Software zu ersetzten oder selbst Hand anzulegen. Zum Glück fand ich im Forum der Software Code von Andy Levin, der ein Captcha Skript eingebaut hatte. Aufbauend auf diesem Code habe ich eine inoffizielle Version 1.03 von flatPHPbook zusammegestellt. Die detaillierte Auflistung der Änderungen findet Ihr im Changelog. Eine generelle Beschreibung findet Ihr in der Readme Datei.
Da leider Thomas Hettenhausen (der Entwickler des Paketes) nicht auf meine Mails geantwortet hat gibt es die Dateien nicht auf SourceForge sondern nur direkt hier zum Download: |
|
Durch einen bedauerlichen Zwischenfall kam es auf meiner Pentax Optio
330 Gs im Urlaub zu einem Datenverlust. Die Kamera hatte sich während
einem Foto aufgrund von Strommangel abgeschaltet, und die Integrität
der Compact Flash Karte war dahin. Im folgenden ein kurzer
Erfahrungsbericht wie ich die Fotos (teilweise) retten konnte. Zunächst habe ich diverse kommerzielle Recovery-Tools ausprobiert, die aber allesamt nicht alle Fotos wiederherstellen konnten. Durchschnittlich kosteten die Tools um die 40 €, wobei die Ergebnisse zwischen 40 wiederhergestellten Fotos in 30 Minuten und keinem Foto in 3 Stunden lagen. Obwohl es bei mir kein einziges Foto retten konnte sei hier kurz das Tool von Convar erwähnt, weil es Freeware ist, und ich im Internet von ein paar erfolgreichen Rettungsversuchen mit dem Tool gelesen habe. Da ich nie davon begeistert bin Geld in eine Software zu stecken die mich nicht hundertprozentig überzeugt, habe ich erstmal weiter gesucht, und bin in einer Newsgroup auf einen Verweis auf das Perlskript jpeg-recover gestossen. Auf der zugehörigen Webseite ist das allgemeine Vorgehen beschrieben. Soweit so gut, einziges Problem: das Skript parsed die Datei auf der Suche nach jpeg-headern. Der Autor des Skriptes hat ein paar mögliche Header in sein Skript eingebaut, allerdings waren die Header meiner Kamera nicht dabei. Interessanter Weise hat bei mir jedes Foto einen unterschiedlichen Header. Daher habe ich das Skript abgeändert. Allerdings benutze ich anstelle der 10 Byte Token nur zwei 4 Byte Token. Dadurch läuft das Skript wesentlich schneller, und sollte auch die meisten möglichen Header abgedecken. Nachteil ist allerdings, das eine 4 Byte Sequenz natürlich mit einer höheren Wahrscheinlichkeit im Bytestream des Fotos vorkommen kann, und so die Foto-Suche evtl frühzeitig abbricht. Die beste Lösung wäre es die Suche in eine RegularExpression umzuschreiben, nicht wild, aber dafür fehlt mir leider momentan die Zeit. Meine Version des Skriptes könnt Ihr hier herunterladen. |
Pure Java Implementierung eines password readers für die KonsoleEin großer Kritikpunkt an der JAVA API für consolenbasierte Ein- und Ausgabe ist die fehlende Möglichkeit Ausgabe zu maskieren. Diese Feature wird aber oft bei sicherheitskritischen Anwendungen benötigt, z.B. um zu verhindern, dass der Nebensitzer ein Passwort mitlesen kann. Die bisher einzige Lösung war, mit Hilfe von JNI auf systemspezifische Methoden zurückzugreifen.Die hier vorgestellte Implementierung basiert auf Code von Qusay H. Mahmoud, den er in einem Artikel auf java.sun.com erläutert. Alles was man benötigt sind die zwei Klassen PasswordReader.java und MaskingThread.java. Die Lösung besteht darin, das ein zweiter Thread während der Eingabe immer wieder die Ausgabe überschreibt, und so der Eindruck entsteht, dass nichts geschrieben wird. Da diese Methode stark auf Nebenläufigkeit basiert kann sie auf schwachen Rechner zu ungenügenden Resultaten führen. Die hier zur Verfügung gestellten Klassen sind besser kommentiert als der original Code, und bieten die Möglichkeit die Maskierungsrate zu konfigurieren, und so die CPU-Last zu senken. Es gibt außerdem ein Paket das diese Funktionalität zur Verfügung stellen, welches ich aber noch nicht ausprobiert habe:
|
DiplomarbeitHier könnt Ihr das Texfile downloaden, das ich zur Erstellung meiner Diplomarbeit benutzt habe.Features:
LebenslaufIch habe relativ lange suchen müssen, bis ich ein Paket gefunden habe, dass alle meine Anforderungen erfüllt. Letzten Endes ist meine Wahl auf curve ( CTAN, Author-Homepage ) gefallen.Ein besonderes Feature dieses Paketes ist, dass man sehr einfach verschiedene Versionen seines Lebenslaufes verwenden kann. Das ist gerade dann sehr praktische, wenn man sich bei mehreren Firmen bewerben will, und jeweils einen auf die Stelle angepassten Lebenslauf verschicken will. Auf der Homepage des Authors findet Ihr eine sehr gute Dokumentation mit Beispielen. Einziges Manko des Paketes ist es, dass momentan noch keine Möglichkeit besteht den Lebenslauf automatisch in html umzuwandeln. Probleme mit hyperrefIn meiner Diplomarbeit habe ich das erstemal pdflatex und das hyperref package benützt. Prompt bin ich auf das Problem gestoßen, daß bei einer Änderung des pagestyles oder eines Rücksetzens des pagecounters folgende Fehlermeldung auftaucht:ERROR: pdfTeX warning (ext4): destination with the same identifier (name{page.1})
Die Lösung war für mich drei zusätzliche Optionen für hyperref zu verwenden: plainpages=false,pdfpagelabels,hypertexnames=false Das komplette usepackage Statement für hyperref sieht bei mir dann so aus: \usepackage[pdftex,linkbordercolor=000,citebordercolor=000,
pdfkeywords={keyword1, keyword2, keyword3},pdftitle={Titel},
pdfauthor={Markus Hammori},plainpages=false,pdfpagelabels,
hypertexnames=false]{hyperref}
|