Donnerstag, 25. Dezember 2008

ein Versuch, etwas Ordnung im vermeintlichen Chaos zu finden

Die letzte abzugebende Einzelaufgabe für mich war XSD/XSLT.
Da meine Motivation zugegebenermaßen schon ziemlich abgeflaut war und noch einiges anderes zu tun war, entschied ich mich, nur das Nötigste zu machen, weshalb ich mich auch für das XML Schema XSD entschied, da mir dies auf den ersten Blick einfacher erschien (offensichtlich war ich auch nicht der Einzige mit dieser Vermutung, auf alle Fälle gab es in unserer Gruppe wohl nur einen Kollegen, der XSLT gewählt hatte).

Ich tat mir am Anfang ehrlich gesagt ziemlich schwer, da die Folien und sonstigen Unterlagen mir ziemlich unstrukturiert erschienen, was aber wohl, nachdem ich das Ganze Konzept so in etwa ganz grob verstanden hatte (so vermute ich zumindest :D), daran liegt, dass das XML Schema an sich eher etwas unstrukturiert und unlogisch erscheint, wenn man DTD gewöhnt ist.
So ist XML Schema viel flexibler, es spielt nicht bei allen Elementen eine Rolle, wo genau im Dokument sie definiert werden, etc.

Ich setzte mich also hin, tippte meine Datei herunter und versuchte immer wieder hier und da ein paar Feinheiten einzubauen. Als ich dann nach einiger Zeit fertig war, war es leider schon ziemlich spät, ich schon mindestens genau so ziemlich erschöpft und leider spuckte mir das Validationstool vor allem für meine ausgeklügelten Feinheiten diverse Fehler aus. Die während des Codens gekommene Motivation wurde also von einer Sekunde auf die andere zerschmettert, meine Laune dem Erschöpfungsgrad entsprechend.
Also verunschönerte ich meiner Meinung nach das Dokument wieder dahingehend, dass ich vieles vereinfachte, was mir Fehler erzeugt hatte, und siehe da - es funktionierte alles einwandfrei.

Die Moral der Geschichte also.. ja.. keine Ahnung, denkt euch was aus, irgendwo kommt auf alle Fälle das Wort meh vor :P

Meine Abgabe dazu findet ihr natürlich wieder in der Sidebar :)

Freitag, 12. Dezember 2008

Der Tag des Gerichts

Diese Woche gab es ja keinen Übungstermin, stattdessen lud Herr Derntl die Teams einzeln zu sich ins Büro, um genauer auf die einzelnen Probleme, mit denen sich die Teams für die auf sie zu kommende Implementiernug ihres Projekts konfrontiert sehen, eingehen zu können.
Im Rahmen dieser Audienz stimmten wir auch dem Vorschlag zu, den TaskCompanion als Webservice im CEWebS zu implementieren. Ich habe den Vorschlag gleich sehr begrüßt, da wir so ein bereits fertiges und gut funktionierendes Framework zur Verfügung gestellt bekommen, auch inklusive Stylesheets, etc und auch um die Userverwaltung brauchen wir uns eigentlich kaum Gedanken machen. Im Endeffekt brauchen wir uns jetzt wohl wirklich fast nur mehr um die Logik dahinter kümmern.
Außerdem spielt sicher auch der Fame-Aspekt eine kleine Rolle :D, denn ich muss schon sagen, dass ich etwas stolz darauf wäre, wenn unsere App in Zukunft im CEWebS integriert und auch verwendet würde :P Wie auch immer, das ist glaub ich momentan noch eher ein weit entfernter Traum, da wir noch nichtmal angefangen haben, zu programmieren ;)

An meinen Einzelabgaben gab's soweit offensichtlich nichts auszusetzen und ich bin mal sehr gespannt, wie das Projekt nun weiterverlaufen wird :)

Nun geht's ans Eingemachte

In der fünften Projektphase mussten wir nun explizit spezifizieren, welche Use Cases wir tatsächlich bis zum Abgabetermin glauben, implementieren zu können. Hier war ich glaub ich primär die Euphorie-Handbremse, da ich versuchte, meine Kollegen darauf hinzuweisen, dass wir uns besser nicht übernehmen sollten und ja trotzdem immer noch mehr implementieren könnten, als wir spezifiziert haben.
Wir haben nämlich auch so trotz allem immer noch genügend Use Cases ;) Ebenso haben wir noch unsere ungefähren konkreteren Vorstellungen der Datenverwaltung und Architektur miteingebracht.

Natürlich bekamen wir ungefähr eine halbe Stunde, nachdem wir unsere Abgabe fertig hatten, viel genauere Anweisungen wie diese auszusehen habe und sogar ein Template, das wir eigentlich nur mehr hätten ausfüllen müssen. Wie auch immer haben wir dann doch unser bereits erstelltes Dokument abgegeben und dem Kommentar nach zu urteilen, sollte das auch soweit ganz in Ordnung sein :)

Das Dokument findet ihr übrigens hier

XPath und seine Funktionen

Als nächstes machte ich mich dran, die XPath Aufgabe zu lösen. Hierfür mussten wir 3 vernünftige Abfragen für unser in A3 erstelltes XML Dokument sowie für eine neu zu erstellende XML Datei zu einer bereits vorgegeben DTD formulieren.

Leider verstand ich - trotz des expliziten Hinweises darauf vom Chef - nicht von Anfang an, dass bei einer Vergleichsoperation wirklich nur der Wert der jeweils zu vergleichenden Attribute verwendet wird, da nämlich bei einer Navigation zu einem der Attribute immer der komplette String, also auch der Name des Attributes markiert wurden.
Also dachte ich, bin ich schlau, und befrage mal w3.org nach XPath Funktionen und fand natürlich auch ganz schnell die Funktion string(), die genau das zurücklieferte, was ich wollte: nämlich den Wert des Attributs.
Haha ja, allerdings brauchte ich auch eine Weile, bis ich das entdeckte, denn das Ergebnis von Funktionen, markiert unser Tool nicht - wie bei normalen Navigationen - einfach im Dokument rot, sondern gibt es oberhalb des Dokumentes klein zurück :P
Wie auch immer, nachdem diese Hürden also überwunden waren, bemerkte ich den nächsten Mangel an meiner Arbeitstechnik, nämlich, dass string() ja immer nur ein Ergebnis zurückliefert. So konnte ich dann eben nicht mehrere IDREFs zurückverfolgen oder ähnliche Anfragen machen.

Mittlerweile bin ich zum Glück etwas klüger geworden und weiß, dass der Vergleichsoperator sofort string() verwendet, und ich ansonsten auch die Funktion contains() hätte benutzen können :)

Trotz allem hat mir diese Aufgabe eigentlich ziemlich Spaß gemacht und meine Abfragen findet ihr hier

CRV-TVS FTW!

Wie ich gerade bemerkt habe, war ich einige Zeit lang sehr inaktiv, was den Blog anging, deshalb schreib ich jetzt mal ein bisschen was nach :D

Nungut zuerst mal war da das die vierte Aufgabe im Projektteil, nämlich das Review der Architektur einer anderen Gruppe. Wir haben hier Team 4 (David, Andi und Ronny) und ihr unglaubliches TerminVereinbarungsSystem für das ComputerReferat des Studentenheims Vindobona (oder kurz CRV-TVS) zugeteilt bekommen :)
Soweit gab's eigentlich auch nicht viel zu bemängeln, da die Kollegen ihre Arbeit eigentlich eh ziemlich gut gemacht haben, weshalb es nach einigen Diskussionen innerhalb meines Teams auch 7,5 Punkte gab (ich war für 8, die andern für 7 :P).

Genaueres dazu, könnt ihr unserem gesamten Review entnehmen :)