Diese Woche hatte so viele tolle Ereignisse. Eines möchte ich nun hier zum Besten geben:

Ich hatte bis letzten Dienstag auf einem Android-Tablet Simpsons Springfield gespielt. Nettes kleines, sinnloses Spiel zum angenehmen Zeitvertreib. Es ist Free-to-play mit Micropayments, die ich nie in Anspruch genommen hatte (mein Glück!). Dienstagabend will ich das Spiel starten, fordert er mich auf mein Origin-Login und Passwort neu einzugeben. Vor mir aus. Aber, siehe da, ich krieg die Meldung das E-Mail-Adresse oder Passwort falsch seien. Nach mehrmaligem Probieren hab ich die Faxen dicke, geh an den PC und log mich über die Webseite bei Origin ein. Dort hab ich meine Daten im bekannten KeePass, kann mich also weder irren noch vertippen. Weiterhin kein Erfolg. Ich geh auch Passwort-Recovery. Die E-Mail-Adresse wird einfach ignoriert. Ich gebe meine Origin-ID ein, angeblich wird mir eine E-Mail für den Passwort-Reset geschickt … kommt nie. Ich hab schon so unglaublich viel Spaß und Freude und innere Glückseligkeit angehäuft, dass ich schier platze. Ein letzter, verzweifelter Versuch, ich probiere die Hotline. Nach erträglicher Wartezeit in der Warteschlange mit zu lauter Dudelmusik klage ich der netten Frau mein Anliegen. Nach kurzem Gespräch lautet die Antwort „Hmm. Ich habe da eine schlechte Nachricht für Sie.“ Meine Identität kann nicht verifiziert werden. Natürlich habe ich bei dem Spaß-Account nur das absolute Minimum an Daten angegeben. Und die reichen jetzt wohl halt leider nicht. Nun gut. Dann halt nicht. „Springfield“ hab ich deinstalliert und „Origin“ wäre ich solange ich mich an diese Aktion erinnere nicht mehr nutzen.

Was habe ich falsch gemacht: Ich habe EA nicht genügend personenbezogene, private Informationen über meiner Person in den Rachen gestopft.

Was hat der chinesische Hacker-Arsch falsch gemacht: er hat einen Account ohne echtes Geld geklaut. Der Idiot.

Was hat EA falsch gemacht: Gar nichts! Die sind fein raus. Ich als einzelner Kunde bin ja egal.

Tolle Wurst.

Diese Woche habe ich an einem Workshop zu paralleler Programmierung teilgenommen. Durchgeführt wurde er von einem Mitarbeiter des HLRS. Da ich selber ja vor 2012 an der Uni Stuttgart gearbeitet habe, kamen schon etwas nostalgische Gefühle auf. Aber nicht viel.

Der Workshop selbst war ziemlich gut. MPI und OpenMP zusammen mit einigen Tools für die Entwicklung. An sich, alles kein Hexenwerk, aber es ist gut, das Ganze in gut vorbereiteten praktischen Übungen ausprobieren zu können und Schritt für Schritt die Funktionen und Besonderheiten kennen zu lernen.

Und wieder bin ich knapp zu spät und hab meinen Sonntag verpasst. Naja. Diejenigen die tatsächlich meine Posts lesen dürften wissen, dass ich zwar jeden Sonntag poste, aber nur vielleicht jeden dritten Sonntag etwas interessantes. Oder so.

Neues gibt es von der VISlib zu berichten: die VISlib hat nun ihren Release 1.0 erreicht!

Damit hat sie auch ihren finalen Entwicklungsstand erreicht. Auf Basis des Release 1.0 werden wir lediglich Bugs fixen. Neue Funktionalität werden wir keine mehr einführen. Stattdessen führen wir im Trunk des VISlib-Repositories das The.Vislib.Legacy-Project durch. Dahinter verbirgt sich eine stufenweise Migration zur TheLib.

Ok, ok, ich weiß, das Jahr ist noch nicht ganz vorüber, aber es ist jetzt der letzte Sonntag 2013 und daher Zeit für einen Post zum Ende des Jahres.

Jahresrückblicke sind etwas furchtbares, vor allem wenn das Jahr gar nicht so richtig gut war. Naja. Wirklich schlecht war es auch nicht, aber es hätte schon noch deutlich viel besser sein können. Immerhin gab es kurz vor Weihnachten noch eine angenehme Überraschung (mehr dazu werde ich aber wohl erst im neuen Jahr schreiben).

Nun wird es Zeit den Blick in die Zukunft zu richten. Für 2014 Pläne zu schmieden und deren Verwirklichung anzugehen. Beruflich kommt jetzt einiges ins Rollen und ich bin gespannt was davon auch erfolgreich sein wird. Dazu will ich aber auch noch nicht mehr schreiben. Nur so viel, ich habe Ideen für unterschiedliche Publikationen und Förderanträge. Wenn genug davon auch wirklich klappt, dann bleibt die Wissenschaft für mich interessant.

Was meine privaten Programmier-Projekte betrifft, so ist bisher nicht sehr viel passiert; und das ist noch übertrieben. Mal sehen wie es an der Front weitergehen wird.

Nun wünsche ich allen aber zunächst einmal einen guten Rutsch ins neue Jahr!

So, es passiert nicht viel für meine Webseite. Überraschend wie jedes Jahr auf’s neue kommt Weihnachten um die Ecke.

Daher wünsche ich euch einfach schon einmal: Frohe Weihnachten!

(P.S.: Ja, ich bin bekennender LEGO-Fan)

Dieses Wintersemster besuche ich eine Vorlesung von Dr. Frank Furrer zum Thema Future Proof Software Systems. Sehr interessantes Thema und eine tolle Vorlesung. Neben der eigentlichen Vorlesung nutze ich die Gelegenheit auch im mit Dr. Furrer Themen zu diskutieren die in meinem persönlichen Forschungsfeld liegen. Dabei kommen schöne Weisheiten vervor. Beispielsweise die Entwicklungsstadien eines Software-Architekten:

  1. Der Software-Architekt wird ignoriert.
    Tatsächlich bin ich noch immer in dieser Stufe.
  2. Man nimmt dem Software-Architekten seinen Schlüssel weg und ändert die Passwörter seiner Zugangsdaten.
    Soweit bin ich noch nicht.
  3. Der Software-Architekt wird in einer dunklen Gasse erschossen.
    . . .

*seufz*

(Artikelbild-Quelle)

Letzte Woche hab ich schon über Legacy-Code geschrieben. Das Thema ist beständig.

Eigentlich gibt es zwei Sichtweise auf Legacy-Code:

  1. Die Einen halten Legacy-Code für einen Schrotthaufen den man unbedingt los werden muss.
  2. Die Anderen halten Legacy-Code für eine Goldgrube die man unbedingt nutzbar machen muss.

Die Wahrheit ist nicht, wie so oft, irgendwo dazwischen, sondern schlicht und ergereifend: beides ist wahr! Legacy-Code ist ein Schrotthaufen voller Gold! Das Gold muss man nutzbar machen und den Schrott muss man los werden. Das ist natürlich aufwändig und so darf man nicht gierig werden. Mit jedem Projekt sollte man ein kleines bisschen Schrott los werden und ein kleines bisschen Gold freilegen. So wird mit der Zeit alles gut.

Für die TheLib haben wir dieses Problem natürlich auch! Um die „kleinen Schritte“ durchzuführen, von denen ich grad geschrieben habe, haben wir das Projekt the.vislib.legacy gestartet.

Immer wenn man an einer Software arbeitet die nicht trivial oder klein ist, dann arbeitet man unweigerlich auch mit Legacy-Code. Damit meine ich Quelltexte die alt sind. Entweder will man sie ersetzen oder auch nicht, aber sie mit dem neu entstehenden Code zu verheiraten ist nie einfach. Im Besonderen, wenn man Interfaces nach außen hat, z.B. zu anderer Software, welche zumindest Teile der eigenen Software benutzt. Bei solchen Aufgaben zeigt sich, ob man sein Handwerk versteht. Damit meine ich nicht programmieren. Das ist einfach und kann praktisch jeder lernen. Ich meine Software-Entwicklung, Design und Architektur.

Ich arbeite zusammen mit Freunden an dem Aufbau der THElib, als Nachfolger und Ersatz der VISlib. Vor allem wollen wir einige Design-Fehler beheben die in der VISlib drin sind und wir auch nicht mehr raus kriegen, eben wegen zu starken Abhängigkeiten zu weiterer Software. Natürlich schreiben wir die THElib nicht komplett neu. Sie basiert zu sehr großen Teilen auf dem Code der VISlib, lediglich entschlackt und korrigiert. Aber hier sehen wir uns einer sehr großen Basis von Legacy-Code gegenüber die wir behandeln müssen. Es ist einfach nicht einfach.

Ich hab die letzte Woche auf meinen Rechner auf Windows 8.1 aktualisiert. Die verbesserte Skydrive-Integration ist zwar immer noch völlig unbrauchbar, aber zum Glück gibt es auch externe Tools für den Job.

Wie dem auch sei. Dann wollte ich heute mal wieder ein paar Dateien auf meinen Backup-Server schieben und wurde vom Kopieren-Dialogfenster mit ca. 2 bk/s beleidigt. Der Vollständigkeit halber: ich wollte 5 Dateien kopieren, jeweils über 500 MB und zusammen etwas über 18 GB. Also nicht der üblich „Kleine Dateien sind halt langsam“ Unsinn. Nach ca. einem halben Tag, den ich damit verbracht habe diverse Einstellungen meines Servers zu testen und meiner anderen Rechner zu testen und semi-gezieltem rumgegoogle, fand ich endlich die Antwort:

Large Send Offload v2 (IPv4) – Disable
Large Send Offload v2 (IPv6) – Disable

Was mich aber wirklich nervt an der ganzen Geschichte: ich wusste das schon mal. Ich wusste, dass genau das die Lösung bei ranziger Netzwerkgeschwindigkeit sein kann. *gnampf* Ich werde wohl alt.