• XBox-Werbespot zurückgezogen

    Beim TechEBlog findet sich ein Werbespot für die XBox360, bei dem man sich dafür entschied, ihn nicht zu senden. Offenbar will man sich nicht dem Vorwurf aussetzen, nicht das Kind, sondern den Terroristen im Erwachsenen anzusprechen. Ich find ihn lustig, denn er erinnert mich an frühere Zeiten auf Baustellen und Spielplätzen.

  • Gott ist die Liebe

    So lautet übersetzt der Titel der ersten Enzyklika Papst Benedikts XVI. Wobei das deutsche Wort "Liebe" mehrdeutig ist: "Sei lieb", "Ich liebe dich" und "Lass uns schmutzig Liebe machen" sprechen von durchaus verschiedenen Dingen. Dementsprechend differenziert auch der Papst in "Deus caritas est" und erklärt, wie er "eros", "agape" und "caritas" verknüpft sieht.

    Die Würdigung der Enzyklika,1518,397245,00.html beim Spiegel hinterlässt bei mir den Eindruck, dass wir mit Joseph Ratzinger vielleicht doch gar kein so schlechtes Kirchenoberhaupt bekommen haben. Der Geist weht, wo er will...

  • Identitätsklau

    Heute war Post vom Amtsgericht im Kasten:

    Beschluss in der Strafsache Jochen Lillich [...] wegen Computerbetruges
    Der Antrag der Staatsanwaltschaft vom 19.10.2005 auf Erlass eines Strafbefehls wird abgelehnt.
    Der Hintergrund:

    Ende 2004 erhielt ich ein Schreiben eines Anwaltsbüros, das im Auftrag von eBay die Provision für die Auktionen eintreiben sollte, die ich als Benutzer "super_hasi446" durchgeführt hätte. Nach einem Antwortschreiben, in dem ich sinngemäß erklärte, dass ich unter diesem dämlichen Pseudonym niemals bei eBay aktiv gewesen sei, war erst mal wieder Ruhe. Doch im Februar 2005 flatterte mir überraschend eine Vorladung der Polizei ins Haus. Es sei nämlich gegen mich Strafanzeige wegen Computerbetrugs erstattet worden.

    Das war dann doch ein Grund, meinen Anwalt einzuschalten. Die Akteneinsicht ergab, das jemand unter meinem Namen und meiner Adresse ein eBay-Benutzerkonto angelegt und damit irgendwelche Porno-Dienstleistungen ersteigert hatte. Das Problem: auch die angegebene Bankverbindung war geklaut und der Dienstleister zog seinen Preis per Lastschrift ein. Die Geschädigte ließ die Buchung stornieren und erstattete Anzeige. Unsere Freunde und Helfer fanden nur eine Spur: den registrierten Namen nebst Adresse.

    Trotz meiner schriftlichen Stellungnahme, in der ich vor allem darauf hinwies, dass jeder, der meinen Namen und mein Geburtsdatum kennt, damit ein eBay-Konto anlegen kann, beantragte die Staatsanwaltschaft Karlsruhe den Erlass eines Strafbefehls gegen mich.

    Wenigstens das Amtsgericht Philippsburg aber kam jetzt zu dem Schluss, dass meine Erklärung nicht zu widerlegen ist und "gegenwärtig keine überwiegende Wahrscheinlichkeit für eine Verurteilung des Angeschuldigten besteht."

    Endlich ist das Thema vom Tisch. Es kostete mich einiges an Nerven und Geld. Zumindest letzteres kann ich jetzt von Vater Staat zurückfordern.

  • Cromagnon

    ich war schon in der Schule, als man noch Werbung für Telefonanschlüsse machen musste. Unfassbar.

  • Hibernate ist ja sowas von faul

    Das O/R-Mapping von Hibernate ist eine feine Sache, insbesondere bei Relationen: Hat eine Klasse Schrank eine 1:n-Beziehung mit einer Klasse Schublade, dann liefert mir einSchrank.getSchubladen() eine Collection von Objekten der Klasse Schublade. So sieht es jedenfalls aus, aber das muss man mit Vorsicht genießen.In Wirklichkeit handelt es sich um Proxy-Objekte, die mir Hibernate unterschiebt. Diese Objekte tun nur so, als wären sie Schubladen. Das Framework muss nämlich vermeiden, durch das Auflösen von Relationen im Endeffekt die gesamte Datenbank einzulesen. Ein gutes Beispiel dafür ist ein Familienstammbaum, in dem alle Personen durch Eltern-, Kind- oder sonstige Relationen verbunden sind. Würde Hibernate die alle auflösen, nur weil ich von einer Person den Namen haben will, hätte ich sofort die ganze Familiengeschichte am Hals.

    Deshalb realisiert Hibernate mittels der erwähnten Proxyobjekte eine sog. "Lazy initialization": Bei der Initialisierung abhängiger Objekte schiebt Hibernate das Nachladen der Daten so lange auf, bis sie von der Anwendung wirklich abgefragt werden. Das SELECT auf die Schubladen-Tabelle wird nicht schon bei einSchrank.getSchubladen abgesetzt, sondern erst, wenn ich auf die Daten einer dieser Schubladen zugreife.

    Und da wartet eine Falle: Dieses "Nachladen auf den letzten Drücker" muss in der gleichen Session passieren wie das Laden des übergeordneten Objekts. Wurde die Session nach getSchubladen geschlossen, können die Daten einzelner Schubladen nicht mehr abgefragt werden. Hibernate wirft dann eine LazyInitializationException.

    Dieses Problem löst man am besten durch eine gekapselte Sessionverwaltung, die für die Anwendung transparent eine Hibernate-Session erzeugt und diese am Leben hält.