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

Donnerstag, 27. November 2008

das gute alte relationale Schema

Soda, hab meine DTD nach dem letzten Post noch einmal ordentlich überarbeitet und sämtliche 1:n und 1:1 Beziehungen mithilfe von Kindelementen ausgedrückt, so wie das auch von der Leitung empfohlen wurde.. kam auf die Idee, da wir eigentlich in DBS genau das gleiche mit E/R Diagrammen und relationalen Schemata gemacht haben und es war offensichtlich auch genau so erwünscht :) Gut gemacht hab ich das wiedermal *selbstSchulterklopf*

Nur die m:n Beziehung habe ich vermutlich nicht optimal, also als eigenes Element mit den zwei passenden IDREFs gemacht, aber dafür bin ich jetzt um das klüger und mach's beim nächsten Mal besser, oder bessere es vielleicht hier auch noch aus, falls ich die Zeit und Lust dazu finde - was ich momentan aber leider nicht vermute :/

Wie auch immer, habe glaub ich verstanden, worum's geht und die Aufgabe ganz okay gelöst, aber das werde ich vermutlich erst erfahren, wenn ich den Kommentar dazu bekommen habe ;)

Weiter geht's :)

Sonntag, 23. November 2008

Hmja.. es gibt halt schon wieder ein erstes Mal :D

Nachdem wir also bei der dritten Projektabgabe ein weiteres Mal präsentieren durften und uns offensichtlich ganz souverän geschlagen hatten (zumindest hörte es sich in der Einheit so an und der vorläufige Kommentar ging auch in die Richtung :)), bin ich immer besserer Laune im Bezug auf unser Projekt und dementsprechend steigt die Motivation natürlich auch laufend.. wenn ich auch noch immer keinen blassen Schimmer habe, wie wir die eigentliche Implementation angehen sollen, aber ich denke, dafür ist die Lehrveranstaltung ja da :)

Wie auch immer, heute habe ich mich mal drangesetzt, mit der XML/DTD Aufgabe zu beginnen. Soweit war die größte Hürde eigentlich das Überlegen eines passenden Szenarios. Wie es mir schon andere Kollegen wie zum Beispiel der Herr Selig vorgemacht haben, werde auch ich hier mein Klassendiagramm zur Verfügung stellen, sowie die dazugehörige Beschreibung (damit es hier nicht auch noch zu Missverständnissen kommt :D).


Dann habe ich mich mal daran gemacht, die Folien zu DTD zu lesen, weil ich mir diesmal eigentlich ziemlich war, dass es am vernünftigsten sein wird, damit zu beginnen :D
Un dann hab ich eigentlich auch schon losgelegt und meine erste DTD Datei erstellt. Ich frage mich zwar, ob das auch nur annähernd korrekt ist, so wie ich's gemacht habe, aber ich wüsste nicht, wie ich es großartig anders machen sollte. Vielleicht schließe ich mich morgen mit ein paar Kollegen zusammen, wenn sich die Gelegenheit bietet, und werde auf Unzulänglichkeiten hingewiesen oder eben nicht ;)

Jetzt fehlt also eigentlich nur mehr die dazugehörige XML Datei, an die ich mich morgen setzen werde. Und auch diese wird die erste ganz allein von mir geschrieben sein :)

Achja, und ich füge auch sofort noch Links zu unseren/meinen Abgaben zu A2 und P3 in der Sidebar hinzu :)

Sonntag, 16. November 2008

...und gleich noch eine Premiere

Eingeschlossen in mein Kämmerlein, abgeschottet von der Außenwelt, habe ich heute meine ersten php-Dateien gecodet. Nach den typischen Anlaufschwierigkeiten, die wohl auch mit leichter Programmierverrostung meinerseits sehr stark zu tun hatten, kam ich schön langsam wieder in Übung und konnte wirklich jede Stunde Fortschritte bemerken.

Zu Beginn fühlte ich mich etwas überfordert, weil ich nicht so recht wusste, wo ich anfangen sollte. Zum Glück kam mir dann natürlich als erstes gleich mal eine Klassendefinitionsdatei in den Sinn. Aber als diese fertig war, wusste ich auch nicht so recht, wo weiter, weil ich mir noch nicht ganz im Klaren darüber war, wie das ganze an sich aufgebaut sein sollte, mit Eingabemaske, Logik, etc. Im Endeffekt hab ich dann einfach mal mit dem Formular weitergemacht und danach war ich dann schon etwas in Fahr, sodass mir die restlichen Dinge auch schneller von der Hand gingen.
Die Serialisierung habe ich gleich in die Formulardatei miteingebunden und ich war im Endeffekt ziemlich überrascht davon, dass eigentlich fast alles auf Anhieb so geklappt hat, wie ich mir das gewünscht habe, selbst die lässlichen Syntaxfehler hielten sich ziemlich in Grenzen.
Ich wollte ursprünglich ja auch ein ganz neues HTML und CSS Gerüst basteln, aber habe das vorerst unterlassen..

Soweit bin ich ganz zufrieden mit dem, woran ich die letzten 10 Stunden gearbeitet habe, denn das steht mal soweit. Ich habe zwar noch keine speziellen Features eingebaut, aber ja, vielleicht geht sich das noch aus.
So würde ich zum Beispiel lieber die Ausgabe durch eine Schleife machen, sodass ich nicht jeden Track hardcoden brauche und vor allem die Tracklist nur so viele Einträge hat, wie eingegeben wurden. Momentan ist das bei mir noch etwas statisch.

[edit]
Huiuiui, und wie ich gerade beim Chef gesehen habe, könnte ich die übergebenen Tracks statt mit einer for-Schleife vermutlich auch viel einfacher und vor allem sauberer mit einem foreach zum Album hinzufügen. Ich hatte es zuvor schon kurz in Erwägung gezogen, allerdings dann nicht eingängig damit beschäftigt..
[/edit]

Aufgefallen ist mir auf alle Fälle, dass PHP um Welten netter ist als C++ und ich das ziemlich schnell bemerkt habe und deshalb nicht so defensiv programmieren musste, wie ich das bisher meistens tat. Wie auch immer habe ich eigentlich noch quasi keine möglichen Fehlerquellen bei der Eingabe versucht zu korrigieren, so kann man meinem Formular eigentlich alles übergeben, was man will und es wird einfach stupide ausgegeben, ohne zu überprüfen, ob bspw. bei der Tracklänge auch wirklich eine Zeitangabe in (hh:)mm:ss angegeben wird, was ich bisher eigentlich bei allen meinen Programmen immer sehr sorgfältig machte.

Wie auch immer, ich denke, für's erste Mal ist es soweit ganz okay, ich bin zumindest mehr oder weniger zufrieden mit meiner Leistung, allerdings habe ich wohl auch nicht so hohe Maßstäbe gesetzt, wie mein geschätzter Kollege auf der anderen Seite des Donaukanals :D


Achja, wer mein bescheidenes Werk betrachten will, kann das natürlich hier tun :)


*edited: Sun, 16 Nov 2008, 23:47

mein erstes Mal =)

Am Dienstag ist wieder ein großer Abgabetermin. Abgesehen von der PHP Aufgabe, mit der ich noch etwas überfordert bin, steht nämlich auch eine weitere Projektabgabe an, nämlich ein Architekturmodell.
Dieses sollten wir als Komponentenmodell bzw. mehreren Komponentendiagrammen darstellen, was für die meisten von uns vermutlich Neuland war oder immer noch ist ;) Bei uns war es zumindest so..

Wie auch immer, im Endeffekt hatte ich dann das Gefühl, dass wir es eigentlich den Umständen entsprechend ganz gut umsetzen konnten, auch wenn es immer noch ein paar kleine Unklarheiten gab. Wir einigten uns dann aber darauf, dass diese spätestens in den Reengineering-Prozessen der nächsten Arbeitsschritte vermutlich eliminiert würden :D

Auch hier trat teilweise wieder das Problem auf, wie schon bei den Use Cases, dass wir uns etwas schwer taten, das Abstraktionslevel richtig zu wählen und dementsprechend weder zu simpel, noch zu komplex zu werden.
Verwendet haben wir wieder Omnigraffle, das ich jetzt zum ersten mal selbst so wirklich ausführlich in action erlebt habe und das uns die Arbeit ziemlich erleichtert hat, und obendrein noch hübsche Diagramme erzeugt :D

Ein weiteres Mal verbleibe ich also in Spannung auf die Abgabe und darauffolgende Kommentare und Verbesserungsvorschläge :)

Freitag, 7. November 2008

Was bisher geschah (seit 2.Nov, 21:20 :p)...

Zuallererst gibt's natürlich wieder Neuigkeiten, über das, was auch schon in den letzten Beiträgen angesprochen wurde: der Name :D.. und zwar gibt es da eine gute und eine schlechte Nachricht.
Der Tradition aus allen möglichen Filmen, Büchern und Serien folgend, beginne ich natürlich mit der guten Nachricht:
Uns wurde zugesichert, dass wir den Namen unseres Projektes selbstverständlich jederzeit ändern können, was uns sehr zu gute kommt, nicht zuletzt aufgrund dessen, was Inhalt der schlechten Nachricht ist:
Wie Philipp aufmerksamerweise bemerkte, gibt es leider auch schon ein Programm, das auf den von uns so geliebten Namen TaskBuddy hört :/ Deshalb werden wir wohl ein weiteres Mal den Namen ändern und auf TaskCompanion zurückgreifen müssen. Das Logo wurde natürlich auch schon dahingehend verändert, aber sieht jetzt natürlich aufgrund des durch die plötzlich doppelt so große Wortlänge des zweiten Teils entstandenen Ungleichgewichts bei weitem nicht mehr so genial aus, wie zuvor :P
Mal sehen, ob sich da noch etwas ändern wird ;)

Wie auch immer, in der letzten Praktikumseinheit waren wir eines der zwei glücklichen Teams, die ihre Anforderungen präsentieren durften, worüber ich mich freute, da wir ja Arbeit hineingesteckt hatten und ich eigentlich auch sehr zufrieden mit dem, was wir erzeugt hatten, war. Leider war nicht mehr genügend Zeit, dass wir wirklich alles ausführlich hätten vorstellen können, aber ich glaube, wir konnten so in etwa einen Gesamteindruck unserer Vorstellungen vermitteln :)
Kommentar bzw Bewertung haben wir bis dato noch keine erhalten, aber ich bin mal gespannt :)

Als nächstes will ich mich aber PHP widmen, da ich mich damit noch nie wirklich beschäftigt habe. Ich bin allerdings positiv eingestellt, da ich eigentlich spätestens seit dem AlgoDat Praktikum letztes Semester sehr gerne objektorientiert programmiere und ja sowieso sehr motiviert bin, Webprogrammierspezifisches zu lernen =)
Bin also schon sehr gespannt, wie ich mit der laufenden Aufgabe zurechtkommen werde. Ich gehe aber nicht davon aus, dass es sowas wird, wie das, was Werner schon gemacht hat und noch vor hat :D Hab ja schon einige Nightly Builds der Beta-Version seines Tools gesehen und war wirklich sehr beeindruckt ;) Schon allein, weil auch das Interface so hübsch ist :D

... wo ich schon beim nächsten Punkt angelangt werde, der mich wohl noch ein wenig beschäftigen wird. Wie ich ja bereits im Post zur ersten Aufgabe geschrieben habe, hatte ich noch nicht wirklich viel Ahnung von HTML/CSS. Natürlich hatte ich aber schon hier und da gelesen, wie sich Leute darüber mokierten, wenn andere Tabellen zur Anordnung von Elementen bzw allgemeinen Gestaltung der Seite verwendeten. Ich fragte mich aber immer, was es denn für eine Alternative gäbe, da mir einfach nichts Anderes einfiel :P Wie auch immer, hat uns Kollege Klaffenboeck genau das gezeigt. Habe mich jetzt noch nicht wirklich damit auseinandergesetzt, aber die Anordnung mittels floating divs/spans wirkt so auf den ersten Blick eigentlich fast einfacher, als mit einer Tabelle, da das ganze Konstrukt eben nicht so statisch und viel flexibler ist.
Würde gerne, wenn es sich ausgeht, mich genauer damit beschäftigen, und meine Oberfläche für die zweite Abgabe dann so gestalten :)


Zuletzt erwähnter Kollege hat uns heute übrigens auch noch gebeten, unsere Use Case Diagramme von der Präsentation online zu stellen, da er sich dafür interessierte, was uns natürlich gleich mal sehr ehrte und mich daran erinnerte, dass ich ja sowieso sämtlichen Content, den wir im Rahmen unseres Praktikums bereits erzeugt haben und noch erzeugen werden, hier zu verlinken und so für Andere zugänglich zu machen.
Vielleicht folgt ja noch jemand dem Beispiel, ich bin mir sicher, dass es ein paar Leute gibt, die die Lösungen ihrer Kollegen auch interessieren ;)


There you go:

A1 - HTML/CSS

P1 - Projektidee
P1 - Präsentation

P2 - Anforderungen
P2 - Präsentation


Werde glaube ich außerdem noch ein Item in der Sidebar hinzufügen Habe außerdem noch ein Item in der Sidebar hinzugefügt, in dem ich diese Links sammle, damit man gleich eine Übersicht hat.
Vielleicht schaut's sich ja wirklich irgendwer an, hab am almighty ja leider keinen Download-Counter :D Würde mich auf alle Fälle freuen, wenn's wem hilft, und wenn nicht, dann hab ich's halt für mich gemacht, der Dokumentation und Übersicht wegen ;)

Und einen Poll hab ich auch, weil ich mir grad extrem unsicher bin, ob man die Artikel besser linksbündig oder in Blocksatz lesen kann :D Helft mir mal bitte!


*edited: Fri, 07 Nov 2008, 03:27

Sonntag, 2. November 2008

Phase 2 soweit fertig und ein tolles Logo :D

So, meine Bitten an Sun wurden offensichtlich erhört, auf alle Fälle ist die Präsentation jetzt fertig und hochgeladen. Natürlich musste ich aber auch hier in letzter Sekunde noch etwas ändern, Werner hat uns nämlich inzwischen ein Logo zu unserm (noch nichtmal bestätigten) Namen entworfen.. das pimpt die Präsentation natürlich auch gleich nochmal enorm :D
Um so mehr hoffen wir jetzt natürlich inständig, dass unsere Namensänderung abgesegnet wird.
*edit 3.11.08, 10:05: Dank des "beta" im Titel, fügen wir uns noch besser in die trendige web2.0 Brühe und so ein, wie dieser Artikel bestätigt - nun kann unserem Erfolg also nichts mehr im Wege stehen ;D*

Mittlerweile freu ich mich schon so richtig auf die Präsentation am Mittwoch und bin auf die Kommentare danach gespannt :)

weitere Anforderungen und der neue Name (tbc!)

Wie ich im letzten Post geschrieben hab, konnten wir ja zuerst nicht alle Use Cases und Anforderungen einbauen. Allerdings haben wir dann heute noch eine spontane mehrstündige Skype-Konferenz einberufen und sehr viele Ideen miteinander geteilt :D - und unsere Inboxes gegenseitig zugemüllt, da immer wieder irgendjemandem ein Tippfehler oder so hier oder da aufgefallen ist und das natürlich immer erst genau dann, nachdem die nächste Version schon verschickt war :D
So haben sich noch einige Anforderungen (sogar nichtfunktionale =)) finden können und sind uns dementsprechend auch allgemein etwas klarer darüber geworden, was wir eigentlich in etwa machen wollen ;)
Natürlich mussten dann auch die Use Case Diagramme verändert werden bzw. erstellte Werner gleich noch ein ganz neues.

Außerdem haben wir uns alle im Laufe des Tages heute zig Namen überlegt, inbesondere, nachdem mein kongenialer Vorschlag organizr schon von flickr gestohlen wurde und ich am Boden zerstört war. Auch bei unzähligen der weiteren unendlich vielen Namen, die uns einfielen und ganz gut gefielen war das Problem, dass sie oft schon vergeben waren - web2.0 w00tness!

Wie auch immer, im Endeffekt entschieden wir uns für Milenas Vorschlag TaskBuddy und warten und hoffen jetzt auf Absegnung der Namensänderung durch den LV-Leiter :)


So bleibt mir jetzt also für den restlichen Abend noch, die Präsentation, die ich gestern und heute erstellt habe, auf den aktuellsten Stand zu bringen, weshalb ich jetzt inständig darum bitte, dass Sun irgendetwas Tolles macht, damit mein Impress wieder läuft :/

Anforderungen an unser Projekt und was sonst noch geschah

Heute abend müssen wir bekanntgeben, welche Anforderungen wir (vorerst) mal für unsere Application gefunden haben. Dies stellte sich als gar nicht so leicht heraus, da man an bestimmte Use Cases oft gar nicht denkt, weil sie so trivial sind :D Besonders allerdings bei den nichtfunktionalen Anforderungen waren wir etwas verwirrt, da uns vorkam, dass es sich hierbei primär um auf Reengineering bezogene Aspekte geht bzw. um die Eigenschaften des Systems, insbesondere der Hardware, auf die wir ja allerdings bei unserm Projekt keinen Einfluss haben.

Wie auch immer, leider hatten wir nicht genügend Zeit, alle Vorschläge eingehend zu besprechen, weshalb wir jetzt nur die übernommen haben, bei denen wir zu einem (mehr oder weniger) eindeutigen Schluss gekommen sind. Ich hoffe allerdings, dass das eine oder andere im Laufe des Projektes nochmal zur Sprache kommt :)

Des weiteren habe ich mir auch immer weiter Gedanken über einen Namen für unsere WebApp gemacht. Bisher fiel uns leider noch nichts Passendes ein, auch der Web2.0 Name Generator hat bisher noch nichts Vernünftiges ausgespuckt :D
Ich wäre ja dafür, eben die Funktionen ein klein weing auszuweiten und ihm dann einen Namen wie organizr zu geben :D
Mal sehen, was noch kommt ;)

Donnerstag, 30. Oktober 2008

Über die Ideenfindung und Präsentation unseres Projekts und meine Visionen :D

Die erste Aufgabe war - soweit ich das verstanden habe - ja nur als Aufwärmübung zu sehen. Das, was wir im Rahmen dieses Praktikums nämlich eigentlich machen wollen, ist ein Gruppenprojekt, das sich um die Entwicklung einer Webapplication dreht.
Das Thema durften wir dabei frei wählen.

Ins kalte Wasser geworfen standen wir nun natürlich vor einer Unmenge an möglichen Ideen und versuchten deshalb uns in etwa vage vor Auge zu führen, was uns in dieser Lehveranstaltung noch alles erwarten könnte und was wir vermutlich lernen werden - und was mit dementsprechend realisierbar wäre.
Werner und ich hatten schon vor einiger Zeit nach einer simplen aber funktionellen und sharebaren inBrowser ToDo-List gesucht, aber nicht's Entsprechendes (ohne den heutzutage leider überall verbreiteten und überflüssigen Community-Overkill und ähnliches) finden können, also lag das auf der Hand. Milena war damit soweit auch einverstanden, also war das Thema mal gefunden :)


Die Präsentation unserer Idee dürfte wohl nicht ganz so rübergekommen sein, wie wir uns das vorgestellt hatten, was aber vermutlich eben auch daran lag, dass wir nicht genau wussten bzw immer noch nicht genau wissen, was für uns realisierbar sein wird und wir uns offensichtlich unterschätzt hatten, weshalb wir einige Ideen auch (noch) nicht offiziell erwähnen wollten, aus Angst, diese Erwartungen dann nicht erfüllen zu können ;)
Wie auch immer, es wäre wohl halb so wild gewesen, wenn wir das eine oder andere auch vermutlich unrealisierbare Feature erwähnt hätten. Nicht wenige der im Kommentar von Leiter Michael Derntl angesprochenen Fähigkeiten unserer App hatten wir nämlich eigentlich auch irgendwie so im Hinterkopf :)


Da ich diesbezüglich jetzt auch ein wenig aufgelockert bin, will ich hier nun ein paar weitere Visionen, die ich in der letzten Zeit bezüglich des Projektes hatte verraten :D

Vorgestern las ich auf Philipps Blog von seiner Idee, für die einfachere Koordination seines Projektteams inBrowser Groupware zu verwenden. Natürlich war ich davon sofort total begeistert und verbrachte geschätzte 4 Stunden damit, auf englischer und deutscher Wikipedia und Google zig Artikel über collaborative Software zu lesen, mir unzählige Homepages von Herstellern anzuschauen und Demos auszuprobieren. Doch wie auch schon einige Zeit zuvor, als es sich um einfache ToDo Lists handelte, wurde ich auch hier nicht fündig.
Die betrachteten Produkte waren entweder zu komplex, hatten eine abgrundtief hässliche und unübersichtliche GUI, oder unterstützten gewünschte Features nicht, waren teilweise gar nicht frei und allgemein auch nur eher selten auf irgendeinem Hosting-Service verfügbar, sodass wir einfach hätten loslegen können.

Wir haben uns ja schon gleich zu Beginn überlegt, mehr aus dem Projekt zu machen, als nur eine ToDo Liste ;) Nun habe ich mir allerdings konkreter Gedanken darüber gemacht, was wir noch für Features implementieren könnten.
Ich dachte da an so eine Art Bulletin Board, eventuell die Möglichkeit, Dateien und längere Kommentare zu jedem Listeneintrag hinzuzufügen (mir geistert da ein expand/collapse-Button vor meinem inneren Auge herum - das wäre dann ja praktisch mit AJAX, wenn ich das richtig verstanden habe, oder?) und vielleicht auch gleich noch eine Kalenderansicht für die ToDos (bzw allgemein unterschiedliche Ansichten).
Was mich natürlich auch sehr interessieren würde wäre, die einzelnen Listen exportierbar (als .xml - oder gar .ics?) zu machen und vielleicht auch etwas einbauen, das es ermöglicht, Listen zu importieren.
Natürlich sind das jetzt alles nur Vorstellungen, die ich habe und ich habe keine Ahnung, was davon wirklich umsetzbar ist, aber wenn ich bedenke, was mir sonst so durch den Kopf geht, dann sind die oben erwähnten Features vermutlich noch die realistischsten :D


Um es kurz zusammenzufassen: Ich habe da irgendein sehr simples Tool im Kopf, das es ermöglichen soll, die Kommunikation und Koordination für lockere Projekte (wie eben viele Teamarbeiten auf der Uni es sind) etwas zu erleichtern, sodass Mail-Aussendungen auf ein Minimum reduziert werden können, ohne jedoch gleich ein eigenes Forum sich einrichten zu müssen - was nämlich, wenn ich jetzt so an die Dinge, die wir für unsere momentane Zusammenarbeit benötigen, denke, Overkill wäre.



Wie auch immer, im laufenden Arbeitsschritt müssen wir passenderweise ohnehin die geplanten Anforderungen und Features unserer Webapp kurz erklären und präsentieren. Werner hat soweit schonmal kurz das zusammengefasst, was wir bisher besprochen hatten und im Kommentar stand.
Ich werde ihnen jetzt mal meine Ideen offenbaren und bin auf die Reaktionen gespannt :D
Morgen geht's dann voraussichtlich an's Use-Cases modellieren.. Stickmen ftw \o/

Dienstag, 28. Oktober 2008

Von ersten HTML/CSS-Gehversuchen und dem Urteil des Validators

Da saß ich nun also vor der allerersten Aufgabe des Semesters überhaupt und war voll motiviert. Wirklich!
Meine HTML und CSS Kenntnisse beschränkten sich bisher nur auf das, was man als MySpace-Kid und Web2.0-Opfer heutzutage halt so kann, das ist aber nicht viel, und schon gar nicht sauber. Kurz gesagt, meine Aktivitäten auf dem Gebiet waren vor allem von Zusammenkopieren aus diversen Source-Codes bestimmt ;)

Wie auch immer, blutiger Anfänger, der ich also war (und eigentlich mangels Erfahrung und fundierten Wissens immer noch bin, was sich aber hoffentlich bald ändern wird :)), kam mir sofort die immer wieder angesprochene und von mir auch schon früher ab und zu konsultierte Website selfhtml.org in den Sinn. Ich hatte mir ohnehin innerhalb der letzten vier bis fünf Jahre nicht nur einmal vorgenommen, mich einmal dort mehr oder weniger ausführlich einzulesen, um meine HTML Skills zu pimpen.

Gedacht - getan.

Wie auch immer, nachdem ich über die Inhalte der ersten Seiten bereits ziemlich gut bescheid wusste, fing ich an, die Seiten nur mehr zu überfliegen und im weiteren Verlauf dann zu überspringen, bis ich zu dem kam, was mich eigentlich interessierte: Tabellen. Ich wusste, dass ich mich irgendwann mal damit auseinandersetzen müssen würde, und war dementsprechend positiv davon überrascht, wie simpel diese eigentlich zu verwenden sind :).

Das Grundgerüst hatte ich dann also schonmal fertig (obwohl ich doch einige Zeit brauchte, um mich für ein passendes Album zu entscheiden - amüsanterweise war ich kurz davor, das selbe wie ein Kollege zu verwenden), schnell noch ein bisschen im CSS-Kapitel quergelesen und schon stand auch das Grundgerüst für meine .css-Datei. Nach ein paar Stunden hier und da an ein paar Parametern Rumdrehen und vergessene Semikola einsetzen, sah es dann auch in etwa so aus, wie ich es mir vorgestellt hatte :D.


Wunderbar, der Task konnte also als done abgehakt werden, die Dateien wurden gespeichert.... und da blieben sie erstmal auch. Nun ist es bei mir so, dass ich Kalendersoftware sehr dringend benötige, allerdings nicht aus dem Grund, weil ich mir nichts merke, sondern viel mehr, weil sich zwar Daten bei mir schnell einprägen, ich allerdings vergesse, wieso ich sie mir eigentlich gemerkt habe.
So kam es also, dass ich mich plötzlich daran erinnerte, dass am 30. ja irgendeine Deadline für irgendwas war :D Natürlich habe ich in Sunbird aber die Option "hide completed tasks" aktiviert, weshalb ich zunächst etwas verwirrt war, aber zum Glück nach wenigen Sekunden wieder draufkam.

Da ich heute sowieso seltsamerweise außerordentlich motiviert war, irgendetwas zu arbeiten (was man vermutlich mittlerweile auch schon an der Länge dieses Eintrages merkt :P), traf sich das ganz gut, ich jagte meine Datei durch einen HTML Validator und was macht der? - mir gleich mal 2 Warnings und 41 Errors ausspucken :(
Der Schock war groß, war allerdings auch schnell wieder weg, als ich mir das Ergebnis genauer betrachtete:

Die zwei Warnings waren beide mit diesem Kommentar versehen:
The sequence can be interpreted in at least two different ways, depending on the DOCTYPE of the document. For HTML 4.01 Strict, the '/' terminates the tag '). However, since many browsers don't interpret it this way, even in the presence of an HTML 4.01 Strict DOCTYPE, it is best to avoid it completely in pure HTML documents and reserve its use solely for those written in XHTML.

...und waren demnach also eigentlich mehr als korrekt (wie auch immer, hab ich sie jetzt dem Validator zuliebe ausgebessert :P)
Ähnlich sah es mit den 41 Errors aus, welche ebenfalls alle derselben Natur waren:
An "id" is a unique identifier. Each time this attribute is used in a document it must have a different value. If you are using this attribute as a hook for style sheets it may be more appropriate to use classes (which group elements) than id (which are used to identify exactly one element).

Wusste zwar zuvor nicht, dass id prinzipiell nur unique verwendet werden darf, aber das sei mir aufgrund meiner durch Unerfahrenheit bedingen Noobishness verziehen. Wie auch immer, zum Glück hat Notepad++ (wie eigentlich alle mir bekannten Texteditors :P - soll nur dokumentieren, womit ich gearbeitet habe ;)) aber eine "Suchen und Ersetzen" Funktion, somit war auch das kein Problem, das nicht schnell gelöst werden konnte.

Und so hatte ich schon circa 10 Minuten später als Result des Validators Passed und anstatt des bösen roten Favicons nunmehr ein beruhigend grünes :) und bekam obendrauf noch diesen wunderbaren Orden verliehen:


Nun musste ich also nur noch eine superstylishe Index-Datei erstellen, die auf die zwei eigentlichen Dateien verlinkt, um diese im CEWebS hochzuladen und tadaaaa - endlich konnte ich den Task wieder und guten Gewissens als done markieren :D