Nach langer Funkstille hier im Blog dachte ich mir, dass ich mal wieder ein Lebenszeichen sende: Ja, Ich lebe noch und mir geht es auch gut. Der letzte Eintrag ist nun fast drei Monate her. Seither habe ich vieles erlebt. Zu viel zum hier mal eben schreiben. Vielleicht werde ich noch einige Erlebnisse außerhalb der Reihenfolge aufschreiben, aber sicher nicht alles. Den Anfang und das Ende möchte ich trotzdem kurz wiedergeben:
Angefangen hat meine Blog-freie Zeit nachdem ich anfang März damit überrascht, oder besser gesagt überrollt wurde, dass ich ein Praktikum anfangen kann. Morgens kam der Anruf, nachmittags gings los. Die folgenden Wochen waren dann anstrengend, da man als Student einfach nicht gewohnt ist täglich morgens um 6 aufzustehen und abends um acht erst wieder nach Hause zu kommen. Zudem waren dei Wochenenden in der Zeit alle gnadenlos verplant und damit auch keine Erholung. Daher hatte ich keine Lust abends noch irgendwelche Blogeinträge schreiben und eigentlich wollte ich alles, was sich „aufgestaut” hat nachholen, was irgendwann ein zu großer „Berg” wurde und erfolgreich verhindert hat, dass ich überhaupt was geschrieben habe
Ende April habe ich mal auf Flickr eine Hand voll Bilder geposted, die ich hier kommentieren wollte, aber beim Hochladen ist es dann auch geblieben.
Ich gebe die wichtigsten Sachen die seither passiert sind oder ich erlebt habe mal Stichpunktartig wieder:
Außerdem gibt es mindestens nochmal so viele Punkte, die ebenfalls erwähnenswert sind, sich aber nicht in ein oder zwei Worte fassen lassen und die ich deshalb in der Liste weggelassen habe.
Heute war der 25. Juni, meine Wenigkeit wurde ein viertel Jahrhundert alt und hat hiermit die Blogpause beendet.
Was mir im Zusammenhang des letzten Artikels auffiel: Der Artikel über Erotikdarsteller und einige andere meiner Artikel lassen sich nicht mehr abrufen. Auf der Suche nach dem Grund bin ich relativ schnell fündig geworden: Der Artikel hatte über 2400 Kommentare. Eine kleine SQL-Abfrage auf der Datenbank hat dann auch andere Kandidaten zum Vorschein gebracht, die nicht mehr Abrufbar sind:
SELECT COUNT( * ) AS `anzahl` , `article_id` FROM `plog_articles_comments` GROUP BY `article_id` ORDER BY `anzahl` DESC
Beim Laden der Seite werden scheinbar alle Kommentare aus der Datenbank ausgelesen, auch die, die als Spam markiert sind. Noch nicht ganz klar ist mir, warum die 3MB Kommentare, die ich jetzt aus der Datenbank gelöscht habe 32MB RAM verbraten und damit das Speicherlimit eines PHP-Prozesses erreichen. Die Kritische Grenze für meine Konfiguration liegt übrigens irgendwo zwischen 2400 und 1200 Kommentaren. Ich habe das ganze nun mal als Anlass genommen, eine „kleine” Aufräumaktion zu machen. Ergebnis: etwa 27.000 oder 90MB weniger Kommentare in der Datenbank. Wenn jemand einen Kommentar geschrieben hatte, der noch nicht veröffentlicht wurde: Pech gehabt ![]()
Jetzt muss ich nur noch einen Bug-Report schreiben, denn es soll schließlich Blogs gegben, die auf einen Artikel über 2000 Antworten bekommen. Außerdem haben nicht alle die Reihenfolge der aktiven Spam-Plugins geändert und bekommen daher auch den Spam, wie ich vor kurzem, in die Datenbank geschrieben.
Dieses Blog bleibt werbefrei. Auch wenn die Chancen gut stehen, dass ich mit meinem Blog ein paar Euros im Monmat verdienen könnte. Die Gründe dafür sind vielfältig. So habe ich persönlich zum Beispiel per Adblock so ziemlich alles an Werbung ausgeblendet, was es so auf dem Werbemarkt gibt, da ich einfach keine Lust auf nervige oder blinkende Banner und andere Werbeformen habe, die mich vom eigentlichen Inhalt ablenken. Jedes mal, wenn ich mit einem Browser surfe, bei dem kein Werbeblocker aktiv ist bemerke ich, was ich nicht vermisse
Aus diesem Grund baue ich auch bei mir keine Werbung ein, da ich meine Besucher nicht damit nerven will. Auch wenn einige diese Einstellung vielleicht nicht verstehen und sowieso nicht für sich übernehmen werden – ich bin der Meinung, dass ich das, was mich nerven würde, auch nicht anderen antuen muss – auch wenns Geld gibt.
Der andere, für mich viel entscheidendere Punkt, sind die Nebenwirkungen, die dadurch entstehen würden: Ich müsste ein Gewerbe beantragen, um die Werbeeinnahmen korrekt beim Finanzamt angeben zu können. Selbst wenn ich das nicht machen würde, gilt eine Webseite, mit der Geld durch Werbung verdient wird, nicht mehr als privates Hobby sondern als kommerziell ausgerichtetes Angebot. Im Falle einer Abmahnung, die heutzutage ja leider nicht mehr unwahrscheinlich ist, führt das zu ganz anderen Einstufungen des Streitwerts, die ich mir einfach nicht leisten kann. Außerdem fällt man damit nicht unter die Deckelung der Abmahnkosten, die Bundesjustizministerin Zypries einführen will. Das Risiko mich in jungen Jahren hoch zu verschulden sind die paar Euros, die ich da verdienen könnte, einfach nicht wert.
Jetzt habe ich seit über einem Monat ein Plugin für Captchas installiert und trotzdem hatte ich im Backend noch dutzende Kommentare die zwar Spam sind, aber trotzdem angezeigt wurden. Ich ging bisher davon aus, dass das Plugin für Captchas „ganz vorne” eingereiht wird, d.h. alle Kommentare, die nicht die richtige Zeichenfolge eingegeben haben werden direkt verworfen. Trotzdem wurden im Backend täglich zwischen 60 und 90 Spam-Kommentare angezeigt. Ich war zwar etwas irritiert, da ich bisher davon ausging, dass die Spammer bisher nur selten die Captchas automatisiert knacken. Da das bisher verwendete Captcha aber sehr schwach war ging ich davon aus, dass es einfach geknackt wurde. Deshalb habe ich heute im Laufe des Tages das Captcha immer schwerer gemacht. Zuerst mehr Zeichenmöglichkeiten, dann verschiedenen Farben, Hintergründe... Es kamen weiterhin Kommentare von Spammern durch. Schließlich habe ich sogar verschiedene Schriften, gedrehte Buchstaben und Linien verwendet. Trotzdem kamen Spamkommentare durch.
Irgendwie konnte es nicht mehr sein. Daher bin ich tiefer eigestiegen und habe mir die einzelnen Requests angeschaut und musste verwundert feststellen, dass die Spammer gar keine Versuche unternahmen, die Captchas zu lösen, sondern die Anfrage einfach ohne die Lösung schickten. Zuerst war ich von dem Plugin bitter enttäuscht – Wäre es so ja vollkommen sinnlos und würde nur die „richtigen” Benutzer drangsalieren. Irgendwie konnte ich mir das aber nicht vorstellen, da es in den letzten anderthalb Monaten funktioniert hatte und auch sonst die Plugins von Lifetype immer von guter Qualität waren.
Bei der Analyse, wie die Kommentare ins System kommen habe ich den Grund schließlich gefunden. Lifetype schickt die Kommentare durch eine Filterpipeline. Das Plugin registriert sich ebenfalls als Filter und verlängert so die Pipeline. Wenn ein andere Filter einen Kommentar bereits zurückgewiesen hat ignoriert das Plugin den Kommentar und prüft nicht weiter. Das Problematische ist nicht das Plugin sondern der Filter, der die Kommentare inhaltlich auf Spam filtert. Er schreibt den Kommentar auch dann in die Datenbank, wenn er Spam ist. Genau das will ich aber verhindern. Zuerst dachte ich, dass es am einfachsten wäre, wenn ich die Reihenfolge der Pipeline ändere, da dann schließlich die Kommentare ohne Authentifizierung zuerst aussortiert würden und somit gar nicht erst von den anderen Filtern bearbeitet wird. Das war leider auch ein Irrtum, da die Kommentare nicht sofort aussortiert werden sonder nur mit einer Markierung versehen werden, ob sie aussortiert sind, der Inhaltfilter diese Markierungen aber nicht beachtet... Das habe ich jetzt geändert und wie es scheint funktioniert es. Zumindest ist in den letzten 2 Stunden kein neuer Spam mehr dazu gekommen.
Momentan bin ich noch unschlüssig, ob ich die Änderungen an der Grafik wieder rückgängig machen soll oder ob ich es lassen soll. Leicht sind die Captchas definitiv nicht mehr und da das Script zur Erzeugung handgeschrieben ist, dürfte sie in absehbarer Zeit auch niemand so einfach knacken. Sollte es noch Probleme geben bitte ich um Meldung
Es sieht zumindest danach aus
In letzter Zeit war es hier im Blog ziemlich still. Vor Weihnachten hatte ich keine Zeit, danach keine Lust. Zwischenzeitlich hatten sich zwar einige Dinge angesammelt, über die ich schreiben wollte, aber die Tab-Leiste war schon zu lang, um es chronologisch ab zu arbeiten und dabei nicht ein viel Zeit zu verlieren – diese brauchte ich aber zum auf eine Klausur lernen, die ich heute geschrieben habe. Letztlich war das ganze ein Teufelskreis. Zu wenig Zeit, um alles wegzuschreiben, aber immer wieder neue Dinge. Zwischenzeitlich haben ich in zwei Browsern so viele Tabs mit Dingen offen, dass sie nicht mehr auf den Bildschirm passen. Es ist also an der Zeit wieder Platz zu schaffen. In nächster Zeit folgen also eine ganze Hand voll „alter” Dinge, die schon hunderte Leute kommentiert haben und nun auch ich meinen Senf dazu geben werde.
Heute morgen hat sich schon abgezeichnet, dass heute ein neuer Rekord-Tag in Sachen Spam wird. Der Zähler steht jetzt, kurz vor 24 Uhr auf 1385 eMails mit fast 13MB. Der bisherige Rekord von von 1240 wurde damit innerhalb von 10 Tagen um 11% überboten. Der durchschnittliche Abstand zwischen zwei Mails war heute knapp über einer Minute: 1:02
Noch viel schlimmer war es hier im Blog. Das was hier in den letzten beiden Stunden abging kann man auch Distributed Denial of Service-Angriff nennen. In 2 Stunden fast 250 Spam-Kommentare, die als solche nicht erkannt wurden, weil sie voll mit sinnfrei aneinander gereihten Wörtern waren, die auch noch größtenteils verlinkt waren. Nachdem ich es bemerkt habe, wollte ich zuerst die IP-Adresse sperren. Dummerweise kam jede Anfrage von einer anderen IP-Adresse. Teilweise stammten die IPs auch noch von großen deutschen Providern, mit denen ich vermutlich die zwei Drtittel meines Blogs versperren würde. Da hat scheinbar jemand sein Botnetz zum spammen angeschaltet.
Kurz vor zwölf war es mir dann zu doof und ich habe das AuthImage-Plugin installiert, obwohl ich absolut kein Freund davon bin. Die Bots sind dummerweise (oder doch glücklicherweise?) dumm und bemerken das nicht. Momentan sind 90% aller Apache-Prozesse damit beschäftigt, die Sppammer mit Fehlermeldungen zu versorgen. Wenns also gerade etwas langsam ist, das wäre der Grund.
Ganz interessant fand ich übrigens, dass es die ganzen letzten Tage extrem ruhig war. Seit anfang der Woche kamen kaum noch Spam-Kommentare rein. Irgendwie hatte da das Gefühl, dass sie der Spam irgendwo angestut hat und jetzt "raus" wollte.
Ich hoffe mal, dass euch das Captcha nicht soo sehr stört, aber momentan ist es einfach notwendig. Leider.
Heute habe ich wieder etwas am Blog-System rumgebastelt. Ab sofort kann ich eine Whitelist für Domains führen, von denen Trackbacks ungeprüft aufgenommen werden.
Ebenso habe ich meine Seite mal wieder durch den HTML-Vaildator gejagt und mit erschrecken feststellen müssen, dass über hundert Fehler ausgworfen wurden. Zum Glück waren viele doppelt, aber es war dennoch einiges. Die meisten habe ich korrigieren können, und bei den verbleibenden habe ich keine Lust zum suchen, weshalb da ein Fehler kommt (was kann an einem u schon nicht stimmen?) bzw weil es hundertfach im Blog so verwendet ist und ich dann etliche Artikel editieren müsste, wozu ich keine Lust habe. Anscheinend ist ein div-Tag innerhalb eines p-Tags nicht erlaubt. So lernt man dazu ![]()
Mein Vorschlag für die Blätterfunktion wurde übrigens aufgenommen und wird wohl schon in Version 1.1.1 verfügbar sein. Mal schauen, ob meine zweite Eingabe, die die Umwandlung von Umlauten in urls betrifft auch aufgenommen wird. Der Original-Code erzeugt etwa aus dem Artikel-Titel "Blätterfunktion" die URL ...bltterfunktion, was irgendwie etwas unschön ist, da man sich dann die sprechenden URLs sparen könnte.
Zuguterletzt sind noch die "letzten Trackbacks" auf der rechten Seite rausgeflogen, da sie seit 1.1 auch in den Kommentaren auftauchen. Dort werden sie nun kenntlich gemacht, indem kursiv "Trackback von" davor steht.
Heute abend habe ich etwas am Template gebastelt und neue Funktionen hinzugefügt.
Mit der Kommentar-Funktion kann man nun direkt auf der Artikelseite auf einen bestimmten Artikel antworten. Allerdings muss dazu JavaScript aktiviert sein. Bei deaktiviertem JavaScript sieht man von der neuen Funktionalität gar nichts. Es war einfach nervig, wenn man auf einen Beitrag antworten wollte und eine neue Seite geladen wurde, auf der man den Beitrag nicht mehr sehen konnte.
Mit dem Update auf Lifetype 1.1 wurde ja endlich eine Blätterfunktion eingeführt. Ich habe nun die Funktion auch ins Template eingebaut, damit sie hier auch wirklich verfügbar ist. Leider hat mir die Ffunktion zur Seitenauslassung nicht gefallen, da man so immer nur um eine Seite blättern kann. Dummerweise kann man die Anzahl der dargestellten Seiten nirgends einstellen. Auf der Suche nach den entsprechenden Parametern bin ich dann auf die Datei gestoßen, in der das ganze fest verdrahtet ist. Nach etwas rumprobieren habe ich nun erreicht, dass man angeben kann, wieviele Seiten am Anfang und am Ende der Liste immer angezeigt werden und wieviele jeweils vor und nach der aktuell angezeigten Seite dargestellt werden sollen. Ich habe den Diff mal im Bugtrack-System von LifeType eingereicht. Vielleicht wandert es ja in die Version 1.2 oder so
. Falls es irgendjemand braucht: Hier das .diff-File ![]()
Heute abend bin ich etwas unverhoff zu einem Update von LifeType, meiner Blog-Software gekommen. Eigentlich wollte ich die neue Version nur antesten. Ich hatte dazu das Verzeichnis und die Datenbank dupliziert. Aus Bequemlichkeit habe ich die Config-Datei mit den Zugangsdaten zur Datenbank einfach rüberkopiert und den Update-Wizard gestartet. Während der Datenbank-Updates ist es mir dann aufgefallen: Ich habe im Config-File vergessen die Datenbank auf das Replikat zu ändern. Es gab also kein Zurück mehr (außer aus den Backups einen alten Stand zu kratzen).
Das Update ging zum Glück glatt. Ebenso gab es die meisten, von mir verwendeten Plugins schon in aktualisierter Form. Mein GeoTag-Plugin dagegen hat im ersten Versuch nicht funktioniert. Nach eine kleine Änderung hat aber das Problem behoben. Ein weiteres Plugin war da etwas wiederspenstiger, hat sich dann aber auch zur Mitarbeit bewegen lassen ![]()
Soweit ich erkennen konnte funktioniert alles wieder ganz normal. Die meisten Verbesserungen sind im Backend geschehen und habe ich schon zu spüren bekommen, die im Frontend sind momentan weniger sichtbar, daich das Template zuerst noch anpassen muss. Die größte Verbesserung wird aber sein, dass es ab sofort keine Beiträge mehr gibt, in denen ich schreibe, dass der Browser abgestürzt ist und deshalb der ach so schöne Beitrag leider einem hässlichen weichen muss. Die neue Version hat eine Auto-Save-Funktion. Schon das war aus meiner Sicht ein Grund für das Update. Auch wenn ich das Update eigentlich vorher erst an einem Test-Objekt getestet hätte, bevor es in den produktiven Betrieb geht