nasauber.de

Blog: Einträge 04.11–23.12.2006

Aufräumaktion

Ich hatte gestern ein bißchen Zeit, also hab ich mal meine Homepage aufgeräumt ;-) Rausgekommen ist dabei folgendes:

Falls einer die alten Seiten als Lesezeichen haben sollte, kommt er per HTTP-Rewrite trotzdem bei den neuen raus. Beispiel: http://www.nasauber.de/downloads/?programm=serienbrief. Der Quellcode-Download von serienbrief (was ja im Portage Tree von Gentoo ist) wird ebenfalls auf die neue URL umgeleitet, so daß es keine Probleme geben sollte.

Sollte ich was vergessen haben oder sollte was nicht gehen, wäre ich für eine E-Mail dankbar :-)


Spam

Ohne mir jetzt selbst auf die Schulter klopfen zu wollen – zum Glück funtioniert mein Spamfilter bayes-php so gut. Mittlerweile kommen am Tag (zum Glück nicht immer) auch schonmal 100 Einträge in meinem Gästebuch und meinem Weblog an, die den arglosen Besucher meiner Homepage netterweise über alle Online-Casinos, Autoversicherungen, Handyklingeltöne, billige Medikamente und andere (nicht jugendfreie) Online-Angebote aufklären, die das Internet so zu bieten hat. Das heißt, sie würden das tun, wenn sie nicht aussortiert würden.

Anfangs war ich der Meinung, man könnte ein ähnliches Ergebnis erzielen wie z. B. mit dem bogofilter, der netterweise meinen E-Mail-Posteingang spamfrei hält. Heißt, irgendwas mit einer Spamwahrscheinlichkeit > 90 % ist Spam, was darunterliegt höchstens Spamverdacht. Aber leider hat bayes-php nicht so viel Futter zur Verfügung wie bogofilter. Der hat, auch wenn im Text quasi nichts steht, immerhin noch die E-Mail-Header. Aber viele der Einträge in meinem Gästebuch sehen ungefähr so aus:

Name:nkumye
E-Mail-Adresse:ophn@kldlfte.com
Homepage:obskure URL
Text:abc123

… dazu noch eine IP-Adresse (mit der man nicht viel anfangen kann), und das war's. Nun ja – was will man groß rausholen? Wenn ein bißchen mehr Text zur Verfügung steht, dann bekomme ich schon meine 99 % Spamwahrscheinlichkeit. Aber so sind's dann oft (verständlicherweise) doch nur 80.

Wenn man aber den Schritt wagt, einfach alles > 70 % Spamwahrscheinlichkeit als Spam zu deklarieren und alles, was mit > 70 % aber < 80 % gewertet wird, dem Autolearn-Filter zum Fraß vorzuwerfen, hat man ein spamfreies Gästebuch als Belohnung! Und keiner der Einträge, die kein Spam waren (egal ob auf Deutsch oder Englisch), wurde mit mehr als ca. 50 % Spamwahrscheinlichkeit gewertet. Die meisten mit deutlich weniger. Ich mußte also bisher keine Angst haben, daß was rausfliegt, was nicht rausfliegen soll!
Anzumerken ist, daß bayes-php nicht selbst eine Autloearn-Funktion bietet. Die paar Zeilen muß man einfach selbst in sein Gästebuch schreiben. Oder man macht sich eine kleine Datei, die eine Funktion mit einem einheitlichen Interface für Gästebuch und Weblog enthält. Ich benutze das hier:

function check_text($text)
{

	require "{$_SERVER['DOCUMENT_ROOT']}/bayes/bayes.php";
	$bayes = new bayes;

	$check_stat['jetzt'] = time();
	$bayescheck['text'] = $text;
	$bayescheck['bewertung'] = $bayes->classify($bayescheck['text']);
	$check_stat['bewertung'] = sprintf("%5f", $bayescheck['bewertung']);

	if($bayescheck['bewertung'] < 0.7)
	{
		$check_stat['status'] = "akzeptiert";
		$check_stat['autolearn'] = "-";
		$check_stat['rating2'] = "";
	}

	else
	{

		$check_stat['status'] = "abgewiesen";

		# Autolearn

		if($bayescheck['bewertung'] < 0.8)
		{
			$bayes->learn($bayescheck['text'], "spam");
			$check_stat['autolearn'] = "Spam; ";
			$check_stat['rating2'] = sprintf("%5f", $bayes->classify($bayescheck['text']));
		}
		else
		{
			$check_stat['autolearn'] = "-";
			$check_stat['rating2'] = "";
		}

	}

	return $check_stat;

}

Wobei ich rating2 und autolearn nur dazu verwende, in der E-Mail, die ich nach jedem Eintrag bekomme, Auskunft darüber zu geben, wie „erfolgreich“ denn das „Lernen“ war.

Egal wie … dank Thomas Bayes und ein paar netten Artikeln über Spambekämpfung (namentlich A Plan for Spam, Spam Detection und Better Bayesian Filtering) konnte ich ein Progrämmchen schreiben, was meinen Weblog und mein Gästebuch weitestgehend frei von Spam hält. Und zwar mit einer Datenbank, die gerade mal gut 200 KB klein ist. Würde das nicht so gut funktionieren, hätte ich die Kommentarfunktion und mein Gästebuch schon lang rausschmeißen müssen. Weil den ganzen Kram per Hand auszusortieren wäre mir eindeutig zu blöd!

Vielleicht sehen die Spammer ja irgendwann mal ein, daß es nichts nützt … so ganz allgemein – aber vermutlich bleibt das Wunschdenken ;-)


Cajon

Cajon Hab ich ganz vergessen, zu erwähnen: Am Ende der Semesterferien habe ich mir ein Cajon gebaut. Wer nicht weiß, was das ist, kann gern bei Wikipedia nachschauen (ja, ich weiß, daß da steht, es hieße „die“ Cajon und nicht „das“ Cajon und überhaupt hieße es „Cajón“ und nicht „Cajon“ – aber auf Französisch heißt es ja z. B. auch „der Garage“ und auf dem Metier ist ein Akzent. Also sehe ich keinerlei Veranlassung, „die Cajón“ zu sagen ;-)

Zurück zum Thema. Ich hab mir ein Cajon gebaut. Warum? Weil ich's irgendwie cool finde. Nicht etwa, weil ich eines bräuchte ;-) Aus Spaß an der Freude sozusagen. Gestern war ich dann bei Music Equipment Grimm, dem Musikgewschäft meines Vertrauens, um meine neue Bassdrum zu bestellen (eine Sonor 3005 20"-Bassdrum in Honey Maple). Und was sehe ich da? Ein Cajon der Firma Meinl, um genau zu sein, ein CAJ1. Spaßeshalber habe ich mich mal draufgesetzt und ein bißchen drauf rumgetrommelt. Und ohne mir selbst auf die Schulter klopfen zu wollen, muß ich sagen, daß meines um Längen besser klingt, als das von Meinl. Hätte ich ehrlich gesagt nicht erwartet. Gut, es wird sicherlich welche geben, die deutlich besser klingen, als meines; aber die werden dann sicherlich auch deutlich teurer sein ;-)


Terminkalender

Es ist soweit. Nach über 24 Jahren erfolgreichem, terminkalenderlosem Dasein hat mich das knallharte Schicksal der meisten Deutschen doch noch eingeholt. Heute habe ich mir aus dem Tchibo-Shop im Kaufland in Hof einen Terminkalender für 7,99 € gekauft. Hart, aber wahr. So geht meine unbeschwerte Jugend dahin …
Es ging einfach nicht mehr anders. Außer den ganzen Klausurterminen, die ohnehin, mit einem dicken roten Stift geschrieben, im Kalender im Flur stehen, habe ich mir jetzt noch Termine für Assistenzdienst, Tagesdienst und natürlich die ganzen Termine für meine eigenen Patienten zu merken … und irgendwann ist die Kapazität dann einfach ausgeschöpft und man vergißt was. So zum Beispiel meinen eigenen Zahnarzttermin zum Einsetzen von Goldinlays (die der Techniker noch gar nicht fertig hatte) am letzten Donnerstag. Dem armen Behandler hab ich sozusagen eine halbe Stunde seines Lebens geklaut, während der er gewartet hat, ob ich nicht doch noch komme … und zwar, weil ich einfach nicht dran gedacht hatte, ihn anzurufen, daß ich die Inlays noch nicht habe.

Also, auch wenn es mich schmerzt – aber ich komme mittlerweile um so einen Terminkalender nicht mehr herum. Aber zumindest um die Armbanduhr. Ohne die werd ich auch in Zukunft leben können. Und das ist doch zumindest was ;-)