Anfang der Woche war ich auf dem Workshop Molecular Modeling and Simulation. Zwei Tage die ich unter Physikern, Chemikern und Ingenieuren verbracht habe. Ich als Informatiker und Visualisierer war da etwas ein Exot, aber ich fand es sehr spannend zu sehen was in den entsprechenden Forschungsgebieten so aktuell passiert. Andererseits hab ich nach meinem Vortrag auch sehr positive Rückmeldung gekriegt, dass auch meine aktuellen Arbeiten als sehr interessant aufgenommen wurden.

Visualisierungsforschung ist toll. Man kann so viel machen und man sollte auch noch so viel machen. Das einzige Problem ist, es gibt oft Unmengen an technischen Herausforderungen die man lösen muss, bevor man sich an die Forschungsfragestellungen überhaupt herangetastet hat. Hier fließt viel Arbeit und Zeit in Software, die für die eigene Karriere als Forscher kaum etwas beizutragen scheinen. Das frustriert manchmal.

Vermutlich kann man mir (völlig zurecht) vorwerfen ein Windows-Fanboy zu sein. Warum auch nicht. Ich finde das OS einfach gut und Windows 8 überzeugt mich auch je länger ich es benutze, so auch wieder diese Woche:

Jede Software altert. Das ist (irgendwie) einfach so. Ob das jetzt bit-rot ist, oder ob man Software einfach nicht benutzen sollte, sei mal da hingestellt. Da sind auch Betriebssysteme keine Ausnahme. Zu Windows-95-Zeiten war man es ja noch gewohnt, dass man etwa alle zwei Monate sein System neu installiert hat. Und, bevor der erste Linux-Fanboy jetzt aufschreit, wir benutzen geschäftlich auch sehr viel Ubuntu. Das ist ja wirklich auch keinen Deut besser! Durch bloßes Nicht-Benutzen gehen hier Konfigurationen von Hardware kaputt. Eine echte Meisterleistung. Aber: Das geht jetzt nicht gegen Linux. Da sind alle System blöd.

Anfang der Woche wurde die Festplatten IO von meinem Windows 8 auf einmal abartig langsam! Ich habe nach dem Klicken auf eine Datei mehrere Sekunden gewartet bevor das entsprechende schon laufende Programm davon was mitgekriegt hat. Den Schuldigen hab ich nicht gefunden. (Das letzte was ich installiert hatte war ein Update für Java.) Ich hatte schon Angst es könnte tatsächlich der Vorbote für einen Hardware-Defekt sein. Aber, die Erfahrung lehrt: eigentlich ist es immer die Software.

Also hab ich das Windows 8 Feature „PC Auffrischen“ ausprobiert (Neuinstallation-Lite). Und ich muss sagen, ich bin total begeistert. Der Rechner fliegt jetzt wieder. Ok. Ich muss die Programme jetzt nach und nach wieder neu installieren und ich hab bei zweien vergessen meine Einstellungen zu sichern. Aber immerhin ist das System nun sauber. Ich find’s gut.

Ich habe mir dieses Wochenende „Arbeit mit nach hause genommen“. Die Implementierung einer Code-Bibliothek für Forschungsprototypen geht unter der Woche einfach nicht richtig voran. Da gibt es zu viele andere Arbeiten (E-Mails, Meetings, Anträge, Berichte, etc.) die mich in Anspruch nehmen.

Gestern habe ich dann die Quelltexte auseinander genommen und angefangen grundlegend umzubauen. Warum ist es nur so, dass man ein Programm zu mehr als 60% schreiben muss, bevor man weiß wie man es richtig machen muss? Jaja. Ich kenn die ganze Softwaren-Engineering Philosophie. Ich bin selber Softwaretechniker und weiß wie man es richtig macht, aber es klappt trotzdem nicht, wenn das geplante Programm zu komplex ist, bzw. man es zu komplex macht, weil man für die (schon bekannte) Zukunft vorbereitet sein will. Es ist wie eine Variante von Hofstadter’s law: Es gibt immer ein Problem mit einem Softwaredesign, selbst wenn man alle Probleme gelöst glaubt. Es wäre wirklich besser, wenn Software wirklich stinken könnte. Dann würde man früher merken, dass es in die falsche Richtung geht.

Die Arbeit an der TheLib geht weiter.

Eins habe ich in meiner bisherigen Arbeit als Entwickler von Forschungssoftware gelernt: große Softwareprojekte an Universitäten sind extrem schwierig durchzuführen. Hauptsächlich weil alle beteiligen Personen „Forscher“ sind und keine „Entwickler“. Es fehlt die Erfahrung, es fehlen die Prozesse und es fehlen die Strukturen um gemeinsame Ziele (Kompromisse) zu definieren. Gleichzeitig gibt es einfach Aufgaben, die durch kleine Programme nicht zu lösen sind. Als Ergebnis ist die meiste Software die im Rahmen von Forschungsprojekten an Universitäten entstehen nicht praktisch einsetzbar. Ein Zustand, mit dem ich mich nicht abfinden will.

Der Ansatz den wir mit TheLib verfolgen basiert auf der Idee von „Divide and Conquer“. Anstatt eine große Software zu entwickeln und zu warten die alles kann, konzentrieren wir uns auf kleinere Bestandteile der Software und steigern die Nutzbarkeit, Wartbarkeit und dadurch die Wiederverwendbarkeit dieser Komponenten. Die TheLib stellt Basisklassen zur Verfügung. Ich sehe das Projekt als „Ergänzung“ zu den bestehenden Projekten wie die STL oder BOOST an. Es ist keine Konkurenz und will auch keine sein. Darum achten wir auf eine extrem hohe Kompatibilität mit diesen Projekten.

Und, obwohl die TheLib in ihrem Ziel und Umfang recht bescheiden gehalten ist, macht sie uns schon sehr viel Arbeit. Naja. Aber das gehört dazu. Wenn es einfach wäre, dann könnte es ja jeder. ;-)

Da meine Festplatte unangenehm voll geworden ist, habe ich diese Woche eine neue Platte gekauft und eingebaut. Dabei ist mir wieder aufgefallen, wie ungern ich inzwischen an Computern herumbastele. Egal.

Mein Rechner hat als Motherboard das ASUS P8Z77-V, das ich übrigens nur in den höchsten Tönen loben kann. Aber, als ich jetzt meine neue Platte ansteckte und mein Windows gebootet hatte, tauchte eben diese neue Platte bei den Geräten zum sicheren Entfernen hinter dem entsprechenden Icon bei den Notification Icons auf. So ein Unsinn.

Nach etwas googlen kam raus, dass es am ASMedia-Controller liegt, der zwei der acht SATA-Ports steuert. Und ausgerechnet für den Controller kann man dieses Hot-Plug-Verhalten nicht im Bios einstellen. Es gibt im Netz dann einige Lösungsvorschläge, z.B. mit irgendwelchen Registry Hacks die per Scheduler bei Systemstart ausgeführt werden sollen, etc. Was ich im Netz aber nicht gefunden hatte, sondern was ich nach einigem Ausprobieren selber gefunden habe ist die „echte Lösung“. Man kann es einfach am Controller einstellen:

Gerätemanager > IDE ATA/ATAPI-Controller > Asmedia 106x SATA Controller > Eigenschaften > Policies

Was mich irgendwie stört, ist das diese Lösung nicht der erste Treffer bei Google war. …