nasauber.de

Blog: Einträge 16.12.2006–19.01.2007

bayes-php oder b8?

Derzeit mache ich mir gesteigerte Gedanken darüber, meinen Bayesschen Spamfilter bayes-php umzubenennen. Warum? Es gibt zwei Gründe. Zum einen steht folgendes in der PHP-Lizenz:

Products derived from this software may not be called "PHP", nor may "PHP" appear in their name, without prior written permission from group@php.net. You may indicate that your software works in conjunction with PHP by saying "Foo for PHP" instead of calling it "PHP Foo" or "phpfoo"

… was sich jetzt ja nur auf Programme beziehen würde, die den PHP-Quellcode direkt benutzen, darauf aufbauen, etc. (was bayes-php ja nicht tut, weil ja lediglich in php geschrieben ist, nicht aber den php-Code beinhaltet). Aber in den oft gestellten Fragen zur php-Lizenz kann man folgendes lesen:

We cannot really stop you from using PHP in the name of your project unless you include any code from the PHP distribution, in which case you would be violating the license. But we would really prefer if people would come up with their own names independent of the PHP name.

Ist auch irgendwie berechtigt, wenn man die Argumentation dazu liest:

[...] by using the PHP name you are explicitly linking your efforts to those of the entire PHP development community and the years of work that has gone into the PHP project. Every time a flaw is found in one of the thousands of applications out there that call themselves "PHP-Something" the negative karma that generates reflects unfairly on the entire PHP project. We had nothing to do with PHP-Nuke, for example, and every bugtraq posting on that says "PHP" in it.

Sehe ich irgendwie ein. Naja … ich würde mir glaub ich trotzdem keine gesteigerten Gedanken darüber machen, meinen Spamfilter umzubenennen, wenn da nicht in meinem Gästebuch von Tobias Lang eine Alternative zum äußerst kreativen derzeitigen Namen vorgeschlagen worden wäre: „b8“

b8? Was soll denn das?! Mutet zunächst merkwürdig an, aber der Name hat tatsächlich einen richtig „tiefen Sinn“:

  1. „bayes-php“ ist ein „b“ gefolgt von 8 weiteren Buchstaben
  2. „b8“, also englisch ausgesprochen „bate“ ist kurz, knackig und klingt nicht schlecht, abgesehen davon, daß es noch kein Programm gibt, das „b8“ oder „bate“ heißt.
  3. Das englische Verb „to bate“ bedeutet auf Deutsch „schwächen“, „vermindern“ oder „verringern“, was zum einen die Tätigkeit des Spamfilters beschreibt, nämlich das Spam-Aufkommen zu verringern, und zum anderen ja wirklich den tieferen Sinn des Namens erschließt :-)
  4. „b8“ klingt kreativer, cooler, etc. als „bayes-php“ ;-)

Also ehrlich gesagt wäre ich auf den Namen (der außerdem ganz unauffällig an den des Spamfilters K9 angelehnt wäre ;-) nicht gekommen! Und er gefällt mir wirklich gut … also vielleicht heißt bayes-php (für die älteren Semester unter uns: in Raider-heißt-jetzt-Twix-Manier *g*) bald „b8“, frei nach dem Künstler, der mal Prince hieß dann also „The b8 Spam Filter Formerly Known as bayes-php“ ;-)


StasiVZ

Update vom 20.12.2007

Nur weil mein Weblog der erste Treffer bei Google ist, wenn man da nach „StasiVZ“ sucht, heißt das nicht, daß dieser Beitrag, der vor fast einem Jahr geschrieben wurde, die zentrale Anlaufstelle für Kritik an meiner Meinung und meiner Person und die Abladestelle für sämtlichen Frust rund ums StudiVZ ist.
Wer mit der hier geschilderten Meinung nicht übereinstimmt (das tue ich mittlerweile selbst nicht mehr ganz, ich verweise hier auf einen späteren Eintrag), dem sei seine Meinung freigestellt – bloß möge er mit bitte meine Meinung auch freistellen.

Bitte erst denken und/oder die bisherigen Kommentare lesen, bevor hier irgendwas gepostet wird. Danke.


„Wie, du bist nicht im StudiVZ?!“ Heutzutage ist man nicht mehr gesellschaftsfähig, wenn man nicht im StudiVZ ist. StudiVZ – das Markenzeichen einer neuen, hippen, iPod-Web-2.0-Generation (warum das „i“ nicht im StudiVZ ist, wundert mich ehrlichgesagt).
Was ist das eigentlich für ein Laden? Nach dem, was ich so gehört habe, ein „soziales Netzwerk“ für Abiturienten, Absolventen und Studenten. Na gut. Also eine Seite, wo hunderte (tausende? Millionen?) arglose, nichtswissende und -ahnende Abiturienten, etc., ihre persönlichen Daten preisgeben und auf einem Server speichern, der irgendwo steht und von irgendwelchen Leuten betrieben wird. Soweit meine eingefahrene, vorurteilsbehaftete, konservative CSU-Stammtisch-Meinung. Ohne das StudiVZ bis dahin gesehen zu haben, wohlgemerkt.

Davon lassen wir mal die Finger. Was lese ich also vor kurzem auf heise? „Datenleck beim StudiVZ“. Um nur ein Beispiel zu nennen, was mir gerade so einfällt. Ich zitiere (unter Angabe der Quelle – Heise, bitte verklag mich nicht ;-):

Wie der Paderborner Blogger Jörg-Olaf Schäfers berichtet, lassen sich auch die explizit als nicht öffentlich gekennzeichneten Profildaten der StudiVZ-Mitglieder abrufen. Es genügt eine leichte Änderung der URL des gesperrten Profils, um auf Freundeslisten, Gästebücher und andere Daten zugreifen.

Mittlerweile wurde die Lücke geschlossen. Aber sollte einen sowas nicht ins Grübeln bringen, wenn man nicht schon vorher darüber nachgedacht hat?!

Nun gut, mittlerweile hat die Neugier gesiegt, und ich habe mich auch – wohlgemerkt nur, um ab jetzt mit Grundlage über diese Seite schimpfen zu können – beim StudiVZ angemeldet. Gestern. Heute habe ich den Account wieder gelöscht. Weil was da abgeht, geht mir eindeutig zu weit. StasiVZ eben.

Es ist zwar schön und gut, wenn man sich nur mit Namen und Hochschule anmeldet, den mindestens erforderlichen Daten eben. Aber Was ist dann? Ein Foto. Na gut, da kann man ja eines nehmen, wo man nicht so ganz eindeutig drauf sichtbar ist. Aber dann? Gehen wir doch in die Gruppe „Schiller-Gymnasium Hof“. Da hab ich Abi gemacht. Und gleich noch in die Gruppe „Abi 2002 am Schiller“. Schön – diese Daten über mich sind ohnehin frei zugänglich, schließlich gibt es ja unsere Abihomepage http://www.abi2002amschiller.de/.
Aber wenn man die Geschichte mal weiterspinnt … wo kommt man dann hin? Man geht in viele Gruppen, die einem gefallen, gibt vielleicht noch ein paar persönliche Daten an … und Stück für Stück entsteht ein für jeden nachvollziehbarer Eindruck meines Charakters, meiner Interessen, und was ungleich gefährlicher ist: der Kontakte zu Leuten, mit denen ich was zu tun habe.

Was bitte geht das irgendwen an?!

Meine Freunde und Bekannte wissen das ohnehin. Welchen Grund habe ich also, das ganze noch im Internet zu dokumentieren? Auf einem obskuren Server von irgendwelchen obskuren Leuten?
Nein Danke. Und wenn man nochmal ein bißchen weiterdenkt … es ist zwar schön, wenn man ein „unscheinbares“ Foto hochlädt. Aber wer hält jemanden davon ab, das Foto von der letzten Party, wo ich in meiner eigenen Kotze liege mit einem unanständigen Spruch auf dem Rücken, der da mit Lippenstift hingeschrieben wurde? Und das ganze mit meinem Namen und meiner Telefonnummer verlinkt? Das Häkchen über dem Upload-Knopf, das versichert, daß das Bild „keine fremden Urheberrechte verletzt und kein unanständiges Bild ist“? Sicher nicht.

Dazu wird sauber alles mitgeloggt, was ich auf der Seite tue. Welche Seiten ich mir angeschaut habe, was ich geschrieben habe, was ich bekommen habe … ich will gar nicht wissen, was da alles so „auf Vorrat“ gespeichert wird. StasiVZ.

Alle schimpfen über „Polizeistaat“ und den „Gläsernen Bürger“. Das ist ja wohl die Höhe! Wo bleibt meine Privatspäre?! Aber auf so einer Seite stellen sich tausende Leute freiwillig bloß und versorgen die ganze Welt haarklein mit allen möglichen Informationen.
„Elektronischer Exibitionismus“ und „virtueller Voyeurismus“ in Reinkultur (wie es Tobias Böhm so passend ausgedrückt hat, als ich gerade mit ihm gechattet habe ;-)

Man sollte sich wirklich mal Gedanken darüber machen, was man mit seiner Privatsphäre anstellt. Ganz besonders im Bezug aufs Internet. Schließlich hängt ja an seine Haustür auch keiner eine Liste mit allen seinen Freunden und Interessen.

Aber zumindest die Personalabteilungen von Firmen werden das StasiVZ begrüßen. Weil da kann man – wohlgemerkt ohne irgendwas gehackt zu haben; einfach nur aufgrund der „harmlosen Daten“, die für jeden einsehbar sind, sich ein wunderbares Bild von einem Bewerber machen. Die kann man wunderbar von Bots sammeln und aktualisieren lassen. Vielleicht gibt's ja mittlerweile schon eine Firma, die das macht?
Allein die Gruppen, in denen man ist, die Freunde, die man hat, wieviele es sind, wo sie sind … „ganz harmlose Daten“ also, dann vielleicht noch ein paar Bilder? Was man auf seine „Pinwand“ schreibt … da kann man einiges zusammentragen, oder?
Sehr treffend faßt das ein netter Weblog-Eintrag zusammen, den ich gerade geschickt bekommen habe. Nicht übers StasiVZ übrigens.

Denkt mal drüber nach, Leute …

Update:

Wie ich gerade auf der Stern-Homepage gelesen habe, wurde das StudiVZ an die Verlagsgruppe Georg von Holtzbrinck verkauft. Siehe hierzu auch den Artikel auf Heise oder Spiegel Online. Je nach Quelle für 80 bis 120 Millionen (!) €.
Dazu sag ich nur Honny soit qui mal y pense – oder zu gut Deutsch: Ein Schelm, der Böses dabei denkt!

Na, dann „gruschelt“ mal schön weiter …


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 ;-)