Serendipity geupdated

Eigentlich war es ja schon lange an der Zeit für ein Update – jetzt bin ich endlich mal dazu gekommen. 😉

Soeben habe ich Serendipity (das ist die Software, die dieses Blog antreibt) von der Version 1.0 auf die Version 1.1.2 geupdated. Soweit scheint schonmal alles wieder so zu laufen, wie es soll… das Einzige, was mir momentan nicht so gut gefällt ist die Tatsache, dass ich anscheinend keine Plugins updaten kann. Aber da werde ich mich morgen mal drum kümmern.

[Update] Argh, was sind das denn für Smilies? Das schuat ja aus wieder der Serendipity-Standard. Na gut, muss ich wohl doch nochmal kurz basteln.

Spam: Abmahnung

Du meine Güte, was für lustiger Spam momentan bei mir vorbeikommt: Unter anderem sind dort haufenweise Abmahnungen von einem Anwalt, dessen Name mich irgendwie an einen englischen Panzer erinnert.
Angeblich hätte ich mich bei einer Internetseite mit illegal klingendem Namen angemeldet und solle nun dafür bezahlen – in der einen Mail z.B. 358 Euro. Dazu kommen dann noch Gebühren in Höhe von 96,50 und 6,50 Euro und ich soll damit summa summarum einen Betrag von 846 Euro [sic!] bezahlen.

Auch sehr lustig sind folgende Details:

  • Die Mail ist auf den 31.4.2007 datiert – ich weiß nicht, wann es das letzte Mal einen 31. April gab, aber es wird wohl schon ein paar Jährchen her sein.
  • Ich soll mich mit der IP-Adresse 217.641.073.53 dort angemeldet haben – auch nett, da die vier Teile einer IP nur im Bereich von 0 bis 255 liegen können.
  • Ich soll das Geld spätestens bis zum 9.4.2007 bezahlt haben – wow. Die Mail kam am 10.4. bei mir an, ist auf den 31.4. datiert und bis zum 9.4. muss ich bezahlt haben.

Wer fällt eigentlich noch auf solch einen Mist rein?

H-Bahn-Türen

Der gestrige Tag fing übrigens auch gut an: Ich kam morgens mit der S-Bahn an der Uni an und wollte dann mit der H-Bahn zum Campus Süd fahren. Die Fahrt selber war schon ungewohnt rumpelig, aber solange die H-Bahn sich noch vorwärtsbewegte, war ja kein Grund zum Meckern da.

Dann hielt die H-Bahn aber am Campus Süd an – und öffnete die Türen einfach nicht. Also, die Türen gingen schon auf – aber erst nach etwa 40 Sekunden blöden Herumstehens. Dann fingen die Studenten auch an, auszusteigen – wobei die H-Bahn aber nach etwa 5 Sekunden schon wieder der Meinung war, die Türen schließen zu müssen, um weiterzufahren… 😐

Okay, war jetzt kein großes Problem, aber es ist dennoch erstaunlich, dass bei einem vollautomatischen System solche interessanten „Pannen“ geschehen können…

Umzug fertig

Hui, das ging ja wieder flott: Das, was ihr hier seht, ist fabianonline auf dem neuen (schnelleren, besseren, schöneren etc.) Server. 😉

Und das erste Problem ist auch schon umschifft: Dank eines von mir vergessenen Symlinks war das Blog die letzte halbe Stunde überhaupt nicht erreichbar. 😐
Aber egal, jetzt sollte es wieder funzen… wenn euch noch irgendwelche Fehler auffallen: Bitte meldet euch!

Film: 300

Vorgestern waren wir im Kino: In 300. Ihr wisst schon, dieser Film, der von der Schlacht um Sparta bei den Thermopylen handelt…

Zum Inhalt des Filmes selber: Gemetzel. Fast nur. Nebenbei gibt es auch noch ein paar Dialoge, ansonsten wird eigentlich nur gemetzelt. (Merkt man, dass ich den Film nicht soo toll fand?) Allerdings wird auf einem recht hohen Niveau mit ziemlich guten Special Effects gemetzelt…

Was mir ansonsten aufgefallen ist: Das Bild war zur Abwechslung in unserem Stamm-Kino (Cinepl** Paderborn) mal so richtig schön scharf. Wow. Warum ist das eigentlich nicht immer so?

Film: Mr. Bean macht Ferien

Und gestern waren wir dann nochmal im Kino: Diesmal in „Mr. Bean macht Ferien“. Zur Story selber: Mr. Bean gewinnt eine Reise nach Cannes ans Meer. Dass auf dem Weg dorthin so ziemlich alles schiefgeht, was überhaupt schiefgehen kann, ist dann ja wohl klar…
Mir gefiel dieser Bean auf jeden Fall besser als „Mr. Bean – Der Katastrophenfilm“. Vor allem war Mr. Bean in diesem Film auch wirklich der bekannt-trottelige Mr. Bean und nicht ein „Kunstexperte / Wachmann, der so aussieht wie Mr. Bean“.
Der Film hat einige recht nette Gags, wenngleich ich auch die Gag-Dichte als etwas niedrig empfand – allerdings war ich mit dieser Einschätzung der einzige meiner Gruppe…

Zum Kino: Nachdem ich am Vortag über die Schärfe des Bildes auf der Kinoleinwand so erfreut war, war das Bild dieses Mal (gleiches Kino, nur ein anderer Saal) sehr mies – noch viel unschärfer hätte man es kaum einstellen kann. Ist es denn so schwer, die Schärfe regelmäßig nachzustellen? Da frage ich mich dann doch immer wieder, wofür man da überhaupt bezahlt – man sitzt in meist unbequemen, engen Sitzen und schaut sich unscharfe Filme an… Dazu: Warum müssen in der Tonspur eigentlich immer wieder so komische „Piep“-Töne sein? Die sind mir sowohl in „Mr. Bean“ als auch in „300“ aufgefallen…

Ostern

Ja ja, die letzten zwei Tage waren ohne Blogeintrag. Tut mir ja auch leid. Es gab schon bloggenswerte Ereignisse, ich war (erschreckenderweise) einfach nur zu faul, sie zu bloggen… Aber das hole ich jetzt direkt mal nach. 🙂

Und, bevor ich’s noch vergesse: Frohe Ostern. 😉

Schon wieder H-Bahn-Kontrolleure

Überraschenderweise waren heute morgen schon wieder Kontrolleure in der H-Bahn. Diesmal waren sie nicht an den Fischerwesten erkennbar – aber sie notierten sich gerade die Daten einer potentiellen Schwarzfahrerin, als ich einstieg. Zudem hatten sie diese nicht allzugut tarnbaren Daten-Eingabe-Geräte umhängen (keine Ahnung, wie die Dinger wirklich heißen, die Kontrolleure bei der Bahn haben aber ähnliche Geräte).

Allerdings stiegen außer mir auch noch so viele andere Studenten in die H-Bahn ein, dass die beiden anscheinend spontan keine Luste mehr hatten, sich durch das Gedränge zu wühlen und Studentenausweise zu kontrollieren – sie setzten sich einfach hin und warteten ab, bis die H-Bahn schlagartig wieder leer war. 😉

Was mich aber sehr verwundert: Man hört so selten von Kontrolleuren in der H-Bahn, warum waren sie dann ausgerechnet heute (direkt nach Semesterbeginn) dort anzutreffen? Man könnte ja fast vermuten, dass man damit rechnet, noch viele Studenten finden zu können, die ihren Studentenausweis (und damit das Semesterticket) noch nicht ausgewechselt haben… Soweit ich weiß, muss man in dieser Situation wohl nur einen gewissen Strafbetrag (10 Euro oder so) zahlen, wenn man später noch seinen Semesterausweis vorlegt – aber trotzdem könnte man auf diese Weise bestimmt den einen oder anderen Euro einnehmen…

Sopra, Tag 1

Heute fand das erste Gruppentreffen im Sopra statt (es gibt 7 Gruppen mit je 8 Teilnehmern). Ziel des Sopras ist, uns praktisch näherzubringen, wie Teamarbeit in der Softwareentwicklung ablaufen sollte. Dazu gab es heute eine kleine praktische Demonstration:

Wir bekamen 4 Blätter Schreibmaschinenpapier, 2 Blätter stärkeres Papier und als Werkzeug eine Schere. Aufgabe: Innerhalb von 45 Minuten einen möglichst hohen Turm bauen. Nebenbedingungen: Der Turm muss aus mindestens zwei Teilen bestehen, die in zwei unabhängigen Gruppen gebaut werden und zusammengesetzt und wieder getrennt werden können.
Das Prinzip sowohl beim Turm als auch in der Softwareentwicklung sollte übriegens so aussehen, dass man zunächst Entwürfe bespricht (soll der Turm rund oder viereckig werden usw.), dann eine Schnittstelle vereinbart (die Turmteile müssen am Ende ja irgendwie zusammengesetzt werden) und dann erst den Entwürfen folgend beginnt, den Turm zu bauen. Wenn sich dann alle an die vereinbarten Spezifikationen halten, sollte der Turm am Ende problemlos zusammensetzbar sein (und dann auch noch stehen bleiben 😉 ).
Wobei in unserem heutigen Fall als Besonderheit noch zwei Studenten als „Beobachter“ bestimmt wurden, die nicht mitbauen dürfen, sondern stattdessen die spontane Teamarbeit beobachten und später den anderen davon berichten sollen. Einer dieser beiden Beobachter war ich.

Um die Basteleien kurz zu beschreiben: Chaos ohne Ende, und der Turm wollte am Ende auch nicht wirklich stehen bleiben… wäre er stehen geblieben, hätten wir etwa 2,50 Meter erreicht. Gar nicht mal so schlecht für 6 Blätter Papier…

Gehashte Fragebögen

So, jetzt wird zum ersten Mal hier im Blog (?) ein „informatisches“ Thema angesprochen. Doch dafür müssen wir zunächst mit einer kleinen Lehrstunde anfangen:

Was bedeutet Hashing / was ist eine Hashing-Funktion?
Eine Hash-Funktion ist eine Vorschrift, die befolgt werden muss, um aus einer großen Eingabemenge Werte kleinerer Größe (den sog. Hash) zu erzeugen. Wenn ihr jetzt nur noch „Hääääh?“ denkt, kann ich das durchaus verstehen. Deswegen gleich mal ein Beispiel: Eine Hashing-Funktion könnte z.B. sein: „Verwende nur die letzte Ziffer einer Zahl“. Diese Hashing-Funktion kann ich auf alle möglichen Zahlen anwenden (von denen es ja bekanntermaßen unendlich viele gibt), und erhalte nur einen von zehn möglichen Werten zurück (eine der Zahlen von 0 bis 9).
Daraus folgt natürlich, dass ich aus einem Hashwert normalerweise nicht den Originalwert wiederherstellen kann. Wenn ich eine Zahl suche, von der ich nur weiß, dass ihr Hashwert mit der obigen Vorschrift 7 ist, bringt mir das gar nichts, da sehr viele Zahlen den Hashwert 7 ergeben können (z.B. 7, 17, 167 oder auch 2136504640654684013168463107).
Andere Beispiele wären z.B. die Bildung der Quersumme einer Zahl oder bei Texten z.B. die Anzahl der im Text vorhandenen Wörter.
Wahrscheinlich wundert ihr euch jetzt, warum man solche Hash-Funktionen überhaupt verwendet. Ein Beispiel wäre beispielsweise die Speicherung von langen Texten: Nehmen wir mal an, ich verwalte ein Archiv mit tausenden von Texten. Dann will ich evtl. keine Texte doppelt haben. Das würde für mich bedeuten, dass ich immer, wenn ich einen neuen Text in die Datenbank eintragen möchte, zunächst nachschauen muss, ob dieser exakte Text schon vorhanden ist. Eine Möglichkeit wäre natürlich, den ersten Text aus der Datenbank auszulesen und diesen dann Buchstabe für Buchstabe mit dem neuen Text zu vergleichen. Stimmen alle Buchstaben überein, sind die Texte gleich. Ansonsten lese ich den zweiten Text aus der Datenbank aus und fange hier wieder mit dem Vergleich an. Das ist natürlich ziemlich aufwändig – ich (mein PC) müsste bei einer großen Datenbank tausende von Buchstaben vergleichen, eine Aufgabe, die auch moderne PCs durchaus eine gewisse Zeit beschäftigen kann.
Aber zum Glück gibt es ja Hashing-Funktionen: Einige von ihnen (mit so tollen Namen wie MD5, SHA1 oder CRC32) erzeugen zu beliebig langen Texten Hashwerte von fester Länge, im Fall von MD5 z.B. 32 Zeichen lang. Also könnte ich als Datenbankverwalter einen Trick anwenden: Da ich weiß, dass ein Hashwert eines bestimmten Textes immer gleich bleibt, speichere ich zu einem Text einfach noch den dazugehörigen MD5-Hash mit ab. Wenn ich dann einen neuen Text speichern möchte, berechne ich den zu diesem Text gehörenden MD5-Hash und schaue in der Datenbank nur noch nach, ob dieser Hash-Wert dort schon gespeichert ist. Dieses Vorgehen ist natürlich viel schneller, als die ganzen Texte einzeln zu vergleichen.
Eine Hashing-Funktion wie die oben von mir erdachte „Anzahl aller Wörter“-Funktion würde prinzipiell natürlich auch klappen – allerdings ist die Wahrscheinlichkeit recht hoch, dass irgendwann einmal zwei Texte die genau gleiche Anzahl an Wörtern haben werden und daher durch den reinen Vergleich dieser Hash-Werte als „gleich“ angesehen werden, was natürlich unerwünscht ist. Dabei spricht der Informatiker dann von einer Kollision. Die „richtigen“ Hashing-Verfahren sind natürlich extra für diesen Fall optimiert, möglichst wenige Kollisionen zu erzeugen.

Jetzt kommen wir aber mal wieder zurück zum Bezug zur Uni. Es ist an einer Uni bekannte Tatsache, dass die Anzahl der Hörer einer Vorlesung nach der ersten Woche rapide abnimmt – viele Studenten kommen zur ersten Vorlesung, hören sich den organisatorischen Schnick-Schnack an und kommen dann erst zur Klausur wieder. Der Fachbereich möchte nun gerne die Gründe für dieses Verhalten ergründen. Also wurden Fragebögen verteilt. Da man jedoch die Verändeurng über eine gewisse Zeit beobachten möchte, werden in ein paar Wochen wohl nochmal Fragebögen verteilt (die dann natürlich nur von den noch anwesenden Studenten ausgefüllt werden können). Um jetzt jedoch aus den Bögen ablesen zu können, *welche* Studenten denn noch da sind (und welche halt nicht mehr), muss es da ein Feld geben, welches jeder Student mit einem einzigartigen und bei jedem Fragebogen gleichen Wert füllen soll. Da die Umfrage jedoch anonym stattfinden soll, kann man die Studenten schlecht bitten, ihren Namen oder die Matrikelnummer in dieses Feld einzutragen. Das ist die Stelle, an der eine Hashing-Funktion ins Spiel kam: Auf dem Zettel stand in etwas folgende Anweisung:

1.: Zweiter Buchstabe im Namen des Haustieres
2.: Dritte Ziffer des Geburtsdatums
3.: Fünfte Ziffer der Handynummer
4.: Zweiter Buchstabe des Mädchennamens der Mutter

In meinem Fall und mit dieser Hashing-Funktion würde ich z.B. A02E in dieses Feld schreiben – und beim nächsten Fragebogen, der die gleiche Anweisung enthalten wird, auf genau den gleichen Wert kommen. Dennoch kann man lediglich aus A02E absolut keine Infos über mich gewinnen – oder wer könnte mir jetzt den Mädchennamen meiner Mutter nennen? Um herauszufinden, welcher Fragebogen meiner ist, bräuchte man den Namen meines Haustieres, mein Geburtsdatum, meine Handynummer und den Geburtsnamen meiner Mutter, müsste daraus meinen Hash-Wert bestimmen und den Stapel danach durchsuchen. Und all diesen Aufwand fabrizieren, nur um festzustellen, dass ich meinen Zettel nicht abgegeben habe? 😉
========
Falls es euch noch interessiert: Der MD5-Hash des Textes oberhalb der „Linie“ ist übrigens: 547c5c6a7d8be7b786d7ea29f59e8f6e

Update: Ich habe mal kurz mein Blog als „Testdatenbank“ genommen und die Anzahl der Wörter pro Artikel gemessen (um genau zu sein habe ich es mir einfacher gemacht und die Leerzeichen pro Artikel gezählt). Ergebnis: Es gäbe sehr viele Kollisionen – 15 verschiedene Artikel haben z.B. genau 55 Wörter, je 14 Artikel haben 49 und 53 Wörter usw. Meine spontan erdachte Hashing-Funktion wäre also in diesem Fall nicht allzu sinnvoll anwendbar. 😉