Archiv für July 2005
Uppsala, der letzte Post sollte eigentlich eine Einleitung fuer diesen hier werden, ist dann aber leicht ausgeufert.
Eigentlich wollte ich nur ein paar Ankuendigungen machen (falls ihr euch wundert, ich schreibe gerade auf meiner US-Tastatur am Laptop, deswegen heute keine Umlaute mehr):
kackreiz wird innerhalb der nächsten 48 Stunden von kontent nach Hosteurope umziehen. Das blöde ist, dass ich bis Mittwoch nicht da bin. Es ist zwar alles soweit vorbereitet, aber alles was ab jetzt bis zum Umzug gepostet wird, ist nach dem Umzug möglicherweise futsch. Wenns ganz schlecht läuft ist die Seite bis Mittwoch garnicht erreichbar.
Wenn ich in letzter Zeit nix fuer die Uni getan habe, habe ich mich mit ner Menge interessanter Themen beschaeftigt, hauptsaechlich mit Webprogrammierung, speziell Ruby on Rails, Macs aber auch damit wie’s in meinem Leben weitergehen soll. Dortmund reizt mich nicht, ich spiele mit dem Gedanken fuers Hauptstudium die Uni zu wechseln, am liebsten nach Berlin. Konkrete Plaene existieren aber noch nicht.
Das war sozusagen die Blogvorschau fuer die naechste Zeit, ich hoffe bald auch wieder ein M3 machen zu koennen, aussderdem steht noch ein kleines Gruppenprojekt, initiiert von agitpop an, wie’s damit aussieht weiss ich aber noch nicht, muss ich die Tage mal mailen.
Scheisse, so viel zu tun so wenig Zeit. Den August werde ich im Keller verbringen. Morgen schreibe ich meine letzte Vordiplomsklausur, danach steht Ende August eine schwierige Pruefung in Theoretischer Informatik an, dann hab ich mein Vordiplom.
Auf ebendiese Klausur muss ich mich halt vorbereiten. 4 Wochen. Im Keller.
Kacke
Wenns gut geht hab ich danach anderthalb Monate frei!!! (Zumindest von der Uni)
Mein letzer längerer Rant ist Ewigkeiten her (Es war das Resident Evil 4 Review von Anfang Mai!). Seitdem stand ich in der Uni ziemlich unter Stress.
Das Semester hatte anfangs eigentlich versprochen, ziemlich lässig zu werden mit lediglich 3 Vorlesungen: Informationssysteme, Produktionswirtschaft und Theoretische Informatik. Nun ja, das Versprechen wurde nicht ganz eingehalten.
Viele meiner Kommilitonen empfanden ganz ähnlich, auch ihre Stundenpläne waren recht locker, trotzdem war jeder am jammern, wie wenig er schaffen würde.
Die Schuld an meinem Dilemma schiebe ich jetzt mal allein dem Software-Praktikum in die Schuhe. Dabei handelt es sich um eine Veranstaltung, die laut DPO für das vierte Semster nicht nur empfohlen, sondern vorher garnicht möglich ist und folgendermaßen abläuft:
Zu Semesterbeginn werden Gruppen von 8 Leuten zusammengewürfelt. Diese Gruppen müssen im Semester nach einem festen Zeitplan zwei vorher festgelegte und für alle Gruppen identische Projekte bearbeiten. Wie gesagt, die Veranstaltung ist für das vierte Semester angesetzt, und zwar deshalb weil dabei Dinge angewandt werden sollen, die wir in DAP1 (1. Semester, Java-Programmierung), Betriebssysteme (2./3. Semester, Nebenläufigkeit und Netzwerke) und Softwaretechnik (3. Semester, Software-Konstruktion mit UML). All diese Dinge wurden nicht nur in den Vorlesungen vorgestellt, sondern auch abgeprüft, das entsprechende Wissen also für das Sopra vorausgesetzt.
Mein Glück wollte es aber, dass von den 7 (sieben!) anderen Personen in meiner Gruppe niemand
- Die Grundlagen von Java beherrschte
Mir ist tatsächlich die Frage gestellt worden, was denn Exceptions seien. Ausgerechnet von jemandem, der DAP1 3 mal geschrieben hat! Herrgott, man kann sowas vergessen, ja, aber dann kann man sowas auch wieder nachgucken.
- Die Grundlagen von UML beherrschte
Ich kann verstehen, dass man nicht weiss was oder wofür Stereoptypen in UML dienen; erstens weiss ich es selbst nicht, zweitens hab ich sie auch nie gebraucht. Ich halte eine Menge von dem UML-Zeug für überflüssig, weil viel zu detailliert, aber das eine Assoziation einer Variable/Objektreferenz entspricht und nicht dazu dient anzuzeigen, das Objekt A irgendwann mal mit Objekt B kommuniziert, sollte man schon begriffen haben. Genauso wie die Unterschiede zwischen Aggregation, Komposition und Assoziation
- Überhaupt schon mal irgendwas programmiert hat
Eigentlich hatte ich immer gefürchtet, auf das Gegenteil zu treffen, Typen die programmieren können, aber von Informatik keine Ahnung haben. Hier hatten wir das andere Extrem. Wie kann man Informatik studieren, ohne sich vorher fürs Programmieren zu interessieren? Der Code der dann hinterher rauskam sah auch entsprechend aus. Wüster Stil, keine Kommentare, keine Struktur. Selbst die enorm mächtigen Code-Inspection Funktionen des genialen Eclipse haben mich am Ende nicht mehr durchblicken lassen, welche Methoden denn was machen.
Das schlimmste jedoch waren die folgenden Punkte:
- Einen vorlauten Schaumschläger im Team
Einer der behauptet, Programmiererfahrung zu haben, dessen objektorientierter Javacode aber eher aussieht wie ein zusammengefrickeltes Perl-Script. Der meint “Wir machen das jetzt mit MVC”, aber keinen Schimmer hat, was MVC wirklich bedeutet, die leider völlig ahnungslosen im Team mit falschen Argumenten überzeugt und seinen Standpunkt hartnäckig solange verteidigt, bis sich die Leiterin der ganzen Veranstaltung genötigt sieht, einzuschreiten. Der so schlampig progammiert, dass er hinterher seinen eigenen Code nicht mehr lesen kann.
- Ein absoluter Mangel an der Grundfertigkeit, sich eigenständig Wissen anzueigenen
Da ich vorher auch noch nie in Java gearbeitet habe, halfen mir die rudimentären Kenntnisse aus DAP1 natürlich nicht weiter. Was habe ich also getan? Mich hingesetzt und gelesen. Zu Beginn des Studiums habe ich mir das 1400-seitige Handbuch der Java Programmierung von Guido Krüger gekauft und den Kauf hinterher bereut: Für DAP1 brauchte ich von 1400 vielleicht 300 Seiten, 1100 waren nur Ballast im Rucksack. Im Sopra kam der Rest endlich zum Einsatz. Darüberhinaus war natürlich stundenlanges Suchen in der Java API und dem Sun Java Tutorial angesagt.
Eine Menge Zeit ging also nicht direkt in das Projekt ein, sondern vor allem in das Studium, dem freiwilligen (mehr oder weniger) und selbstständigen Aneignen von Wissen. Ich frage mich, was die anderen aus der Gruppe sich eigentlich unter dem Begriff vorstellen…
Aber nochmal zu der MVC-Geschichte:
Es ging beim ersten Projekt darum eine Umfrage zu modellieren und dann per GUI durchzuführen. Dazu wurde am Anfang ein UML-Modell entwickelt, mit Fragebogen, Frage, Umfrage, Antwort, Benutzer und allem was halt dazugehört. Als das Projekt näher Richtung Implementierung rückte, schlug mein Kollege vor, das Modell doch in MVC umzusetzen. Obwohl MVC zu einem der 3-4 vorgestellten Pattern in der Softwaretechnik-Vorlesung (!) gehörte, konnte mit dem Begriff keiner in der Gruppe etwas anfangen. Seiner Ansicht nach war unser View die GUI, unsere Models waren halt die Models und die Controller, tja, was sind die Controller. Ach ja! Na klar! Controllerklassen. Was macht der Kerl? Rupft sämtliche Methoden aus den Objekten und erzeugt zu jeder Klasse eine entsprechende Controller-Klasse, die wiederum nur Methoden enthielt.
Was wir dann hatten war herrlich, wie früher bei Pascal. Records und Procedures. Daten und Programm. Objektorientierung war ohnehin immerschon irgendwie komisch…
Um das letzte bißchen Objektorientierung also los zu werden, schlug mein Kollege vor, alle Operationen an einem Objekt nur noch vom jeweiligen Controller vornehmen zu lassen und den anderen Controllern keinen Zugriff mehr zu gewähren. Dazu mussten wir nur die Objektreferenzen durch numerische IDs ersetzen. Fertig!
Das Resultat war mitleiderregend. Statt einem objektorientierten Programmes hatten wir jetzt ein klassisches Prozedurales. Statt Zeigern hatten wir Indizes. Hallo Steinzeit.
Mein Kollege verteidigte das ganze immernoch als perfektes MVC, weil ja jetzt Model und Controller entgültig getrennt waren. In mir kamen Bilder von toten siamesischen Zwillingen hoch. Endlich getrennt!
Ich hatte zu dem Zeitpunkt schon lange aufgehört zu argumentieren. Das war mir die Sache einfach nicht wert, und funktioniert hat das Programm. Die Leiterin des Sopras war allerdings ebensowenig von dem Vorgehen angetan, im Gegensatz zu mir konnte sie aber einfach entscheiden, dass wir (dann aber blöderweise erst eine Woche vor der Präsentation) das Programm neu zu schreiben hatten). So denn…
Das sieht hier vielleicht harmlos aus, aber wenn ein Methodenrumpf zu 70% aus solchem Müll besteht, der meistens nichtmal wirklich erklärt was der Spaghetticode da gerade tut, kriegt man schnell Kopfschmerzen.
Jedenfalls. Ich hab sie machen lassen und mich weiter um die GUI gekümmert. 2 andere haben an der KI gefeilt. Mein Kollege und der Rest? Haben irgendwie nix mehr gemacht. Der Netzwerkstack mag vielleicht funktioniert haben, leider war keiner imstande, ihn vernünftig in das Programm zu integrieren. Also wurden per Brute Force alle Methoden der Spielengine (die für den Spielablauf übrigens rekursive Threads (!!! bis zu 600 pro Spiel!!!) statt eines Loops verwendet) in entsprechende Methoden für das Netzwerk gewrappt, so dass wir schließlich auf stattliche 43 Methoden kamen. Am Ende hatte aber irgendwie keiner mehr Lust die zu implementieren. Was übrig blieb erinnerte an das Klonlabor aus Alien 4.
Natürlich hat mein Kollege keinen Finger mehr krumm gemacht, nur gesagt er hätte keine Lust mehr und würde auch durch das Programm nicht mehr duchblicken. Seinen eigenen Code…
Hätte mir ja alles egal sein können, wenn das Hauptprogramm nicht inwischen voll mit Bugs gewesen wäre, die dank komischer Tricks mit Threads auch die GUI beeinträchtigten. Also habe ich die letzten drei Wochen des Semsters jede Nacht vor dem Debugger verbracht.
Schonmal jemand versucht, nebenläufige Programme mit 600 Threads zu debuggen? Es ist theoretisch möglich, aber es ist keine Vergnügen…
Kuhnen
am 26.07.05
in
Rant
Ich habe jetzt einen Genion-Vertrag mit einer Homezone, daher erübrigt sich für mich ein Festnetzanschluss. Da ich aber trotzdem einen Internetanschluss haben möchte, versuchte ich mich im Internet schlau zu machen, jedoch ohne bzw. mäßigen Erfolg. Also nun hier die Frage - gibt es einen Anbieter der eine DSL-Flatrate ohne zusätzlichen Analog- oder ISDN-Anschluss zu einem vernünftigen Preis anbietet?
Fragdieb
am 25.07.05
in
Rant

Noch 3 Stunden bis zur Abfahrt…
Kuhnen
am 23.07.05
in
Rant
Wie vielleicht viele wissen spiele ich in einer Gruppe ‘Das Schwarze Auge’ kurz DSA genannt, hier ein paar weitere Informationen. Alle die selbst DSA spielen und die Kampagne ‘Das Jahr des Feuers’ noch spielen möchten sollten den Text besser nicht lesen.
Im Moment befindet sich diese Welt im Umbruch, denn Galotta, Träger der siebenzackigen Dämonenkrone, Herrscher über Yol’Ghurmak und Transysilien in den Schwarzen Landen, und der Untote Kaiserdrache Razzazor, seinerseits Herrscher in der Heptarchie Warunk, öffnen die Pforten der Trollpforte und entlassen ihren elendig langen Herrwurm bestehend aus Untoten, Ghoulen, Zombies und anderem dämonischem Gezücht, in das Mittelreich.
Doch das Mittelreich scheint vorbereitet zu sein. In Wehrheim, der letzten und einzigen Bastion vor der Hauptstadt Gareth, nur zu dem Zweck erbaut jedwegen Feinden hier das letzte Gefecht zu geben, kommen Kämpfersleut aus allen Gebieten Aventuriens zusammen, um ein Weiterkommen der Dämonenhorden zu verhindern. Das ganze stehende Heer des Mittelreiches, die Königin Rohaja mit ihrer Panthergarde, komplette Garderegimenter, alle erreichbaren Elitetruppen, der Hochkönig der Zwerge Albrax, Sohn des Agam mit seiner 200 Köpfigen Truppe Zwergen-Elite-Söldnern, Hochrangige Geistliche der Rondra-, Praios-, Efferd-, Hesinde- und Phex- Kirche mit ihren Leibwachen und Garden sowie unzählige Bürger- und Landwehrhaufen und Abenteurer, die vor allem ihre Freiheit verteidigen, finden sich in Wehrheim und Umgebung ein. Mehr als 5000 Mann sind es, die hier zusammen kommen - ein Heer welches Aventurien in den letzten Dekaden nicht gesehen hat!
mehr…