Thursday, December 21, 2006

Projektgruppen im Sommersemester 2007

Mit dem Vorlesungsverzeichnis (Master-Statisik in der Kurzfassung ist hier verfügbar) wurden auch die neuen Projektgruppen angekündigt.

Bisher sind demnach geplannt:

  • Refactor (SWT) von Prof. Wehrheim
  • Computer Vision (SWT) von Prof. Kleine Büning
  • Model Cockpit (SWT) von Prof. Engels
  • Simulationsbegleitende Modellierung von Fertigungssystemen in 3D-Umgebungen (MUA) von Prof. MudH
  • Neue Architekturen kollaborativer Systeme (MMWW) von Hampel
  • Unterstützung des betrieblichen Softwareeinsatzes durch E-Learning (MMWW) von Dohmen
  • Praktische Informatik (SWT) von Kastens
  • AVESTA - Algorithmen für Verkehrssteuerung auf Autobahnen (MUA) von Monien

Das sieht erstmal nach keinem zu schlechen Angebot aus. Aber es gibt keine einzige neue Projektgruppe im Bereich "Eingebettete Systeme und Systemsoftware".

Deshalb hier nochmal mein Aufruf: Bitte, geht in euch und bietet auch dieses Semester Projektgruppen (in ESS) an!

Ansonsten ist meine Entscheidung in welchem Bereich ich vertiefen werde, wohl gefallen. Das Vorlesungsangebot in ESS ist in dem Bereichen Paralelle System/Systemsoftware/Netzwerke also alles aus ESS, dass nicht zu den eingebetteten Systeme gehört, ziemlich mau und es gibt ebenfalls keine Projektgruppe. SWT, ich komme.

Statistik über die Mastermodule im Sommersemester 2007 - Kurzbetrachtung

Heute wurde das vorläufige Vorlesungsverzeichnis für das Sommersemester 2007 veröffentlicht.

Vor dem letzten Semester habe ich eine kleine Statistik über die Mastermodule veröffentlicht, die sehr erfolgreich gewesen ist. Auch durch die Statistik animiert haben sich Professoren des Bereiches MMWW noch einige Veranstaltungen zusätzlich angeboten.

Ich plane natürlich die erfolgreiche Master-Statistik vom letzten Semester zu wiederholen. Hier schon mal die Kurzversion also die Veranstaltungen nur für das nächste Semester:

III.1.1 Softwaretechnik I
- Modelchecking (Kindler)
- Seminar: Software Engineering für Automotive Systeme (Giese)

II.1.2 Softwaretechnik II
keine Veranstaltung

III.1.3 Sprachen und Programmiermethoden
- Generating Software form Specifications (Kastens)
- Prolog mit Anwendungen in Interpreterbau und Sprachverstehen (Böttcher)

III.1.4 Semantik und Verifikation
- Modelchecking (Kindler)
- Petri nets (Kindler)

III.1.5 Datenbanken und Informationssysteme
- Databases and information systems (Böttcher)
- Prolog mit Anwendungen in Interpreterbau und Sprachverstehen (Böttcher)
- Seminar: Kompression, Streaming und Caching von XML-Daten (Böttcher)

III.1.6 Data and Knowledge Engineering
keine Veranstaltung

III.1.7 Wissensbasierte Systeme
- Heuristische Suchverfahren (Lettmann)
- Propositional Proof Systems (Kleine Büning)
- Prolog mit Anwendungen in Interpreterbau und Sprachverstehen (Böttcher)

III.1.8 Intelligente Systeme
- Heuristische Suchverfahren (Lettmann)

III.2.1 Algorithmen I
- Datenverwaltung in Rechnernetzen (MadH)
- Algorithmen in der Computergrafik (Fischer)
- Heuristische Suchverfahren (Lettmann)
- Algorithmische Codierungstheorie (Blömer)
- Graphalgorithmen (Elsässer)
- Seminar: Randomisierte Algorithmen (Fischer, MadH)

III.2.2 Algorithmen II
- Datenverwaltung in Rechnernetzen (MadH)
- Algorithmen in der Computergrafik (Fischer)
- Algorithmische Codierungstheorie (Blömer)
- Graphalgorithmen (Elsässer)
- Seminar: Randomisierte Algorithmen (Fischer, MadH)

III.2.3 Berechenbarkeit und Komplexität
keine Veranstaltung

III.2.4 Algorithmen in Rechnernetzen
- Datenverwaltung in Rechnernetzen (MadH)
- Seminar: Randomisierte Algorithmen (Fischer, MadH)

III.2.5 Codes und Kryptographie
- Cryptographic Protocols (Blömer)
- Algorithmische Codierungstheorie (Blömer)

III.2.6 Optimierung
- Simplex und Graphalgorithmen

MUA ohne Einordnung:
- Algorithmic Game Theory (Mavronicolas)
- Approximationsalgorithmen (Schröder)
- Seminar: Algorithmic Game Theory (Mavronicolas)

III.3.1 Verteilte Rechnersysteme
- Ad hoc und Sensornetze (Karl)

III.3.2 Systemsoftware
keine Veranstaltung

III.3.3 Rechnernetze
- Ad hoc und Sensornetze (Karl)

III.3.4 Eingebettete Systeme
- Real Time Operating Systems (Rammig)
- Intelligenz in eingebetteten Systemen (Kleinjohann)
- Modelchecking (Kindler)
- Algorithmens in Manufacturing Systems (El-Kebbe)

III.3.5 HW/SW-Codesign
keine Veranstaltung

III.3.6 Eingebettete- und Echtzeitsysteme
- Real Time Operating Systems (Rammig)
- Intelligenz in eingebetteten Systemen (Kleinjohann)
- Algorithmens in Manufacturing Systems (El-Kebbe)

III.4.1 Grafische Datenverarbeitung
- Computer Graphics II (Domik)
- Seminar: Rendering von Volumen (Domik)

III.4.2 Informatik und Gesellschaft
- Seminar: Kooperations als Phänomen und Instrument in Wirtschaft und Informatik (Krüger)
- Seminar: Assistierende Technologien (Tauber)

III.4.3 Konzepte digitaler Medien
- Seminar: Kooperations als Phänomen und Instrument in Wirtschaft und Informatik (Krüger)

III.4.4 Computer gestützte kooperative Zusammenarbeit und Lernen
- Softwareergonomie (Keil)
- Seminar: Kooperations als Phänomen und Instrument in Wirtschaft und Informatik (Krüger)

III.4.5 Entwicklung von Benutzungsschnittstellen
keine Veranstaltung

III.4.6 Mensch-Maschine-Wechselwirkung
- Softwareergonomie (Keil)
- Seminar: Assistierende Technologien (Tauber)

III.4.7 Mensch-Computer-Interaktion
- Softwareergonomie (Keil)
- Seminar: Kooperations als Phänomen und Instrument in Wirtschaft und Informatik (Krüger)
- Seminar: Assistierende Technologien (Tauber)

Veranstaltungen ohne erkennbare Einordnung:
- Stufenbezogenen Unterrichtsmodelle - Prolog (Lehner)

Erstes Fazit:
Auf den ersten Blick bin ich natürlich von dem Angebot in MMWW positiv überrascht. Dort sind wirklische Verbesserungen eingetreten. Das Angebot in MUA ist bekannt gut.
Auch in SWT wird subjektiv mehr angeboten als im WS06/07.
Etwas enttäuscht bin ich persönlich (als jemand der zwischen ESS und SWT als Vertiefungsgebiet schwankt) von dem Angebot in ESS. Module III.3.1, III.3.2 und III.3.3 fast leer? Das ist schade.
Mir ist bewußt, dass a) Professor Kao fehlt und b) Professor Karl in diesem Semester extrem viele Veranstaltungen angeboten hat. Trotzdem ist die Entwicklung von 150% auf 0% in diesen Modulen bedauerlich.

Artikel über SQLite und der SQLite ADO.NET Provider

Peter Bromberg (Blog: Peters’ Unblog) stellt in dem Artikel "Experimenting With SQLite and the SQLite ADO.NET Provider" auf eggheadcafe.com seine Erfahrungen mit der Desktop-Datenbank-Enigne SQLite und die Anbindung an .NET-Anwendungen mit einem eigenen ADO.NET-Provider vor.

SQLite ist eine Datenbankengine, die hauptsächlich in Desktop- oder kleinen Webanwendungen eingesetzt wird und im Prozessraum der Anwendung läuft (im Gegensatz zu anderen Datenbanken wie MySQL, die i.d.R. über Sockets angesprochen werden).
Trotzdem sei SQLite ziemlich ausgereift und implementiert auch große Teile des SQL92-Standards.

Über einen eigenen ADO.NET-Provider lässt sich SQLite auch direkt an .NET anbinden. Für .Net-Entwickler ist dies nahezu ein KO-Kriterium.

Peter führt mit einer minimalen Blog-Anwendungen einen kleinen Stresstest für die Datenbank durch und kommt zu dem Schluss

SQLite, combined with the current iteration of the Finisar SQLite.NET Provider, represents an interesting alternative where low to moderate usage stress is likely, and is an attractive alternative to MSAccess, MSDE, MySQL and SQL Server where an open-source, well-supported "low footprint" zero-impact deployment database engine is needed. There is a growing amount of community open-source support, and the engine has had extensive testing. It’s also being released with PHP 5.0 as "part of the package", indicating broad support in the development community. You can expect to see more offerings related to SQLite, as well as possibly a 100% Managed-code implementation. In addition, expect to see the developer community fully implement SQLite for the Compact Framework, making this an attractive and very compact offering for CF applications employing easily - deployable local data stores.

Für die relationale Datenhaltung in Desktop-Anwendungen empfiehlt Microsoft die eigene kostenlose Datenbankengine SQL Server Express, eine Version des SQL Servers aber ohne die Möglichkeit des Remotezugriffes und andere Features für den Server-Betrieb.

SSE besticht natürlich durch eine exzellente Einbindung in Visual Studio, hat aber den großen Nachteil, dass die Software extrem groß und umfangreich ist (60 MB Download entgegen ca. 320 KB für die SQLite-Bibliothek) und als eigenen Service im System installiert wird.

Nach einigen Problemen mit inkonsistenten Datenbankendateien mit SSE in einem Projekt, sieht SQLite für mich als eine sehr gute Alternative zu dem SQL Server Express aus, die ich sobald wie möglich testen möchte.

Bei Google Video gibt es das Video "An Introduction to SQLite" aus der "Google Talks"-Reihe in der die Datenbankengine vorgestellt wird. Freilich ohne auf die Bindung an .NET einzugehen.

Tuesday, December 19, 2006

Architektur von eBay

Auf der Konferenz SD Forum 2006 haben zwei eBay-Architekten mit der Präsentation "The eBay Architecture"(pdf) die Architektur vorgestellt mit der eBay eine Milliarde Page Views pro Tag, 2 Petabytes Daten und und 212 Millionen registrierte Benutzer bewerkstelligt.
Die Slides wurden im Blog "Adding Simplicity - An Engineering Mantra" von eBay-Architekt Dan Pritchett veröffentlicht.

Es ist interessant zu sehen wie eBay diese Aufgaben bewältigt und wie sich die Architektur von eBay im Laufe der Jahre verändert hat.

Besonders interessant finde ich den Abschnitt "Scale the Data Tier", weil eBay bei der Datenhaltung gege viele Dogmen, die man so in Vorlesungen wie "Datenbanken", DBIS und so vermittelt bekommt, verstößt.
eBay verlagert alle CPU-intensiven Arbeiten in die Anwendungsschicht z.B. die Sicherstellung der referentiellen Integrität, Joins und das Sortieren der Daten.
Es werden absolut keine client-seitigen Transaktionen oder verteilte Transaktionen verwendet. Auf diese Weise werden Deadlocks vermieden und Schreiboperationen können verschränkt werden.

Weitere Blog-Einträe über die eBay-Architektur-Präsentation:

Thursday, November 30, 2006

My new DailyWTF

Ich bin ein begeisterter Leser von DailyWTF, einer amerikanischen Webseite auf der jeden Tag Beispiele für falsche oder schlechte Programmierung oder Projektmanagement veröffentlicht werden, wie schon hier geschrieben habe.

So langsam läuft aber das StudiVZ dem DailyWTF den Rank ab.
Auch dort gibt es tälich Beispiele für schlechte Programmierung.
Heute in der Blogbar: Wie melde ich mich bei einer geschlossenen Gruppe an?

Wie man ernsthaft eine Software entwickeln kann und auf Sicherheit so wenig wert legen kann, ist mir immer noch ein Rätsel. Die haben ja wirklich keine andere Sicherheitsvorkehrungen als das Verstecken von Links.

Rolendaten von Microsoft Commerce Server 2007 in ASP.NET nutzen

Mit ASP.NET 2.0 hat Microsoft ein System zur Authentifizierung und Autorisierung von Benutzern eingeführt. Neben Standard-Providern wie die Speicherung von Benutzerdaten in Datenbanken oder XML-Dateien kann das System auch durch eigene Provider erweitert werden.
Grundsätzlich ist das System ähnlich wie die JAAS-API aus der Java-Welt oder den "Plugable Authentication Module" aus der Unix-Welt.

Die E-Commerce-Software Microsoft Commerce Server 2007 stellt standardmäßig schon einen MembershipProvider für ASP.NET 2.0 zur Verfügung.
Es fehlt aber eine Möglichkeit Rolleninformationen von Benutzern im Commerce Server dem ASP.NET Rollensystem bekannt zu machen.
(Die Trennung von Benutzerinformation-Datenquelle und Rolleninformation-Datenquelle in UserProvider und RoleProvider halte ich für einen der großen Vorteil des Microsoft-Prinzips)

Jeff Lynch hat in seinem Blog auf CodeBetter.com einen Role-Provider vorgestellt, der das Profile-System des Commerce Servers mit ASP.NET verbindet.
Es ist eigentlich so einfach, dass es einen doch wundert, dass der Membership-Provider bei CS 2007 mitgeliefert wird, aber der Role-Provider nicht.

Thursday, November 23, 2006

Achtung: Schriftliche Anmeldung zu Prüfungen auch in der Informatik notwendig

Ich habe es bisher auch nicht mitbekommen, deshalb hier noch einmal:

Für Prüfungen nach DPO4 und Informatik(Master) sind seit diesem Semester schriftliche Anmeldungen beim Prüfungsekretariat im Zeitraum vom 4. Dezember bis zum 15. Dezember notwendig.
Zu Bachelor-Veranstaltungen muss man sich im gleichen Zeitraum über das Online-Tool LSF anmelden. (Quelle/Details)

Dieses Vorgehen ist seit langen von den Wirtschaftsinformatikern bekannt und ich habe es immer als einen großen Vorteil empfunden, dass in der Informatik die Anmeldung in der Hand der Dozenten lag.

Im Grunde bedeutet die Regelung nur noch mehr Bürokratie, noch mehr Stress mit sehr regulierenden Verordnungen und noch weniger "Freiheit des Lernen". Und auf Grund der reduzierten Flexibilität in der Tendenz eine höhere Studiendauer ohne das damit inhaltliche Verbesserungen einher gehen.

Bachelorarbeit - Download

Meine Bachelorarbeit, die ich während dem Sommersemster 2006, geschrieben habe, ist nun (nachdem die Ergebnisse da sind) zum Download verfügbar.

Der Titel der Arbeit ist "Kategorisierung und Erfassung von
Testwerkzeugen in einer generischen web-basierten Applikation" und wurde im "Software Quality Lab" der Universität Paderborn bei Prof. Engels geschrieben.

Downloads:

Bis auf dem "Some Rights Reserved"-Hinweis handelt es sich um genau den Text den ich abgegeben habe. Im Abschnitt "Errata" weise auf nachträlich gefundene Fehler hin.

Lizenz:
Im Gegensatz zu den anderen Artikel auf dirkmeister.de ist diese Arbeit nicht unter der Creative Commons-ShareAlike-Lizenz veröffentlicht sondern unter der "Creative
Commons Attribution-NonCommercial-NonDerivs 2.0 Germany"-Lizenz
.
Details zu der Lizenz sind in der Titelei der Arbeit verfügbar oder direkt auf der Webseite der Creative Commons.

Danksagungen:
Diese Arbeit wäre ohne die Unterstützung von vielen Personen nicht möglich gewesen. Besonders hervorheben möchte ich Baris Güldali, meinen Betreuer vom s-lab. Sowie meine Eltern und Marcel M., die meine Rechtschreibfehler ertragen mussten und geholfen habe sie zu minimieren.

Errata:

  • Seite 15: In dem Klassendiagramm hat sich ein Fehler eingeschlichen. Die Kardinalität zwischen Werkzeugklasse und der Katalogdefinition ist "* zu 1″ und nicht "1 zu 1″. In der Präsentation ist der Fehler bereits behoben.

The Rhine Paradox: a great example of how not to conduct scientific research.

The Rhine Paradox: a great example of how not to conduct scientific research.
Joseph Rhine was a parapsychologist in the 1950’s who hypothesized that some
people had Extra-Sensory Perception.

He devised (something like) an experiment where subjects were asked to
guess 10 hidden cards — red or blue. He discovered that almost 1 in 1000 had
ESP — they were able to get all 10 right!

He told these people they had ESP and called them in for another test of the
same type. Alas, he discovered that almost all of them had lost their ESP.

What did he conclude?

He concluded that you shouldn’t tell people they have ESP; it causes them to lose it.

(aus "Data Mining")

Tuesday, November 21, 2006

High-Performance-Computing on Mac OS X

Die Webseite "High-Performance-Computing on Mac OS X" bietet eine gute Übersicht über verschiedene Mac OS X-bezogene Tools für HPC.

Dies umfasst Themen von OpenMP-GCC-Compiler für Mac, Open-Source-MPI-Bibliotheken bis zu Informationen zu Apples XGrid-Software.

Aber es gibt auch Informationen zur AltiVec-Technologie in den G4- und G5-Prozessoren. Stark vereinfacht: Eine Art PowerPC-Version der SEE (Streaming SIMD Extensions).

Die Informationen kann ich im Moment gut gebrauchen, da der PC^2-Cluster gewartet wird und ich so meine Hausaufgaben (Jacobi-Folge per MPI) nicht machen kann.
Die MPI-Implementierung LAM kam mir dann genau richtig.