Univention Absolventenpreis 2010 [Update]

Für unsere Diplomarbeit [siehe Update!] haben mein Kommilitone und ich den 1. Platz des Univention Absolventenpreises 2010 erhalten. Der Preis wurde im Rahmen der Auftaktveranstaltung zu den LinuxTagen 2010 in Berlin vergeben. Kriterien für den Preis waren u.a. innovative und praxisnahe Open-Source-Software-Lösungen.

Update: Unter einer neuen Adresse erreichbar: www.visualdependencies.de (11.11.2010)

Presse & Co.

Veröffentlichung der Diplomarbeit

Bereits in einigen Beiträgen der letzten Monate hatte ich Themen aufgegriffen, die im Zusammenhang mit meiner Diplomarbeit standen. Diese ist nun fertig, bewertet und kann nun veröffentlicht werden. Die Diplomarbeit von von einem Kommilitonen und mir zusammen ausgearbeitet. Eine Downloadmöglichkeit der Diplomarbeit ist nun vorhanden.

Die Arbeit beschäftigt sich mit dem Thema der Visualisierung von Datenbankobjekten, also Tabellen, Views und Trigger. Dabei geht es jedoch nicht um die Objekte selber, sondern vielmehr um eine geeignete Darstellung der Abhängigkeiten. Diese können sowohl wechselseitig (Trigger) als auch nur „einfach“ komplex sein (Viewhierarchien). Als Produkt entwickelten wir das Produkt „visualDependencies“, welches ebenfalls derzeit kostenfrei zum Herunterladen verfügbar ist.

Database Exporter: Database Structure and Naming Analyzer

Mit dem Database Exporter 1.0 kann man die Struktur und die Namensgebung seiner Datenbank (mitsamt aller Tabellen und Feldern) analysieren.

Dabei reicht es, die Zugangsdaten (Host, Benutzername, Password) anzugeben, und man kann eine komplette Datenbank (hier: DATABASENAME) in ein Verzeichnis (hier: xml) zu exportieren.

$dbexporter->exportDbStructureToXML('DATABASENAME', 'xml');

Während des Schemaexports wird auch die Struktur analysiert und nach einigen Gesichtspunkten bewertet:

  • Fremdschlüsselabhängigkeiten werden automatisch gefunden, wenn Fremdschlüssel einmalig heißen; d.h. beispielsweise in der Tabelle postings heißt es user_id und nicht poster_id, wenn damit eigentlich auf users.user_id verwiesen wird (id wie in ROR wird nicht verwendet)
  • gefundene Abhängigkeiten werden zudem mit ihren Typen verglichen, wobei davon ausgegangen wird, dass der Typ im Hauptschlüssel (Primary Key) der richtige ist

Antipeil Howto [link inside]

Verpeilen und Konjunktivitis sind enge Freunde. “Müsste man mal.” “Sollte ich heute machen.” “Ich muss endlich xy erledigen.” “Ich habe verschlafen.” “Ich habs vergessen.” Wenn solche Sätze bestimmend für dein Leben sind, könnte es sein, dass du willkommen im engeren Kreis der Verpeiler bist. Auf der einen Seite entbehrt es nicht einem gewissen Humor, jemanden während der Diplomarbeit geradezu manisch die Wohnung putzen zu sehen – auf der anderen Seite bedeutet Verpeiler zu sein, immer unzufrieden mit sich zu sein und von anderen als unzuverlässig eingestuft zu werden. Es bedeutet, mit zunehmendem Alter immer mehr zu kapieren, welche Chance man nicht wahrgenommen hat – nicht, weil man nicht wollte, sondern weil man es schlicht nicht gebacken bekommen hat.

Hier gehts weiter.

Kann ich nur empfehlen!

PHP 5.2 – Und mein Weihnachtsgeschenk schon erhalten.

„Es gibt ein Anzeigeproblem. Wir haben das Problem eingekreist, die Log spinnt.“

Damit wurde ich konfrontiert, als Entwickler bei dem Browserspiel Gangwars. Konkret ging es um falsche Abbuchungen bei einem Geld-Transaktions-Modul.

 

Okay, dachte ich mir.. das kann ja nicht so schwer sein. Zeitgleich mit dem Auftreten des Problems wurde die PHP Version von 5.1 auf 5.2 aktualisiert, naheliegend, das dort irgendwo ‚was im argen lag.

 

Nach einigen kleinen Versuchen und der Analyse der Daten in der Datenbank kam ich zum Ergebnis, das die Ausgabe zwar falsch war, die Buchungen tatsächlich aber korrekt waren. Da die Log aber auch falsch war, konnte das Problem nur in der Logerstellung sein.

Es dauerte dann doch einiges, bis ich mich an den Buch herangetastet hatte – leider kein ordentlicher Debugger zu Hand 🙁 – und das Problem hatte. Vielmehr: Ich wusste, wo das Problem ist, aber nicht wieso.

 

Ab einer Zahl mit mehr als vier Nullen (beispielsweise 100000) verhält sich PHP 5.2 neuerdings wie folgt: Wird diese Zahl mit einem String (zum Beispiel zu einem Query) konnektiert, dann „wird“ der Wert in wissenschaftlicher Schreibweise genommen (expontieller Wert, Basis 10). Aus 100000 wird also 1.0E05. Die Datenbank, wie schlau sie doch ist, konnte damit jedoch in einem INT-Feld nichts anfangen, und kürzte so verständlicherweise auf das nächste logische – nämlich 1.

 

Das Problem zu beheben indes war nicht das Problem, ein String-Cast auf die entsprechende Variable wirkt schnell Wunder. Aber mir bleibt des fade Beigeschmack, bei dieser „Lösung“ irgendwie nicht kapiert zu haben, was und weshalb ich da eingreifen musste.

Turbo Force

 Ich war eigentlich noch nie auf ’ner richtigen Kirmes.. das ist mir in den Sinn gekommen, als ich heute die Kölner Herbstkirmes 2006 besucht habe. Irgendwie schon lustig, eine Bude versucht die andere zu übertönen, sei es mit Musik oder Endlosem Gerede. Dazu noch die abenteuerlichsten Lichtfeuerwerke oder -batterien.. nicht übel.

 

Ich hab dann auch Nägel mit Köpfen gemacht, und den „Turbo Force“ besucht.

 

 Eine richtige Schleuder.. zunächst dreht sich alles um die Mittelachse, was an für sich schon ausreichend wäre.. doch zusätzlich sind die Gondeln (an den Enden) auch beweglich. Damit dreht man sich dann zusätzlich durch den Schwung um sich selbst und schaukelt „schön“ aus..

 

Es ist ein einmaliges Erlebnis, wenn man Kopfunter auf den Boden rast, und dann wieder zurück.. ähmm. nach oben, also hinten.. ach lassen wirs 🙂

Bildquellen: 1, 2 (über Google)

Neues Style.

So, ich habe eben mal mein neues Theme für den Blog installiert. An einigen Ecken (Bereiche Kommentare) ist es noch nicht so ganz optimal, aber sonst bin ich ganz zufrieden. Da ich XHTML+CSS2 eingesetzt habe, wird der IE6 und Konsorten wohl Probleme machen.. damit kann ich aber leben.

 

Erfolgreich getestet habe ich es mit dem aktuellen Mozilla Firefox 1.5 sowie dem aktuellen IE7 (Windows Internet Explorer Version 7, RC1).

Brauche Geld für ’nen Mac!

Ja.. so ein Apple Mac mini ist schon ’ne feine Sache.

Kostet er in der G4-Version nur knapp 600 Euro, kostet die Intel Core Duo Version bereits mindestens 780 Euro. Da man aber dann noch ne größere Festplatte braucht, etwas mehr Arbeitsspeicher.. kommt man schnell auf einen vierstelligen Betrag. Da ist es zwar schön, das es einen Studentenrabatt gibt – aber mal ehrlich: Da kann ich mir grad die Tastatur/Maus von leisten 😉

Einzig alleine die Grafikkarte ist gewöhnungsbedürftig – reicht sie doch nicht für aktuelle Spiele wirklich aus. Okay, es ist nun halt nur ein knapp 17x17x5cm kleines Wunderwerk, aber ein etwas besserer Grafikchip hätts doch sein können – meinetwegen auch als Upgrade. Denn der integrierte Onboardchip ist super und hält lange durch.. aber im Endeffekt scheitert er dann doch an den aktuellen Spieltiteln und den aktuellen Grafiktreibern/funktionalitäten. Da hilf auch kein Windows per Bootcamp mehr.

Das kann mich aber nicht davon abhalten, das Gerät zu loben. Und mit dem neuen Betriebssystem Mac OS X 10.5 Codename Leopard geht es weiter.. das was Vista uns dann im Frühling 2007 gibt, wird dann in Leopard bereits wieder durch etwas Neues/Zusätzliches ersetzt.. da staunt der gemeine Windowsnutzer wie ich 🙂

Mal sehen, ich werde mir bei Zeiten das Gerät live angucken – aber Leopard warte ich erstmal ab. Vielleicht ist es bis dahin billiger geworden – oder jemand hat mir etwas gespendet *g*