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.

So, die Vorlesungszeit hat diese Woche begonnen.

Zusammen mit einem Kollegen halte ich dieses Semester die Vorlesung „Wissenschaftliche Visualisierung“. Ich freu mich, aber es ist halt auch viel Arbeit, die Folien und Übungen zu überarbeiten und zu aktualisieren. Entsprechend kam ich diese Woche zu kaum etwas anderen. Tja. Gehört halt auch zu meiner Arbeit dazu.

Das Artikelbild ist übrigens ein Teils des „Visible Human“ Datensatzes, dargestellt mittels direktem Volumenrendering.

Ich sehe mich selbst als Windows-Fanboy und Early Adopter. So sehe ich mich wirklich. (Bitte, verwechselt mich nicht mit einem Microsoft-Fanboy. Das ist was komplett anderes.)

Durch reinen Zufall habe ich diese Woche auf meinem DreamSpark Account Windows 8.1 gesehen. Bisher war ich schlau genug die Preview des Updates to ignorieren, aber nachdem der DreamSpark Download überhaupt nicht nach „Preview“ aussah, dachte ich, es ist mal wieder ein früherer Release für die Spark-Dreamers, was Microsoft ja schon öfters so gemacht hat. Also habe ich das Ding herunter gelanden und auf meinem Laptop ausprobiert.

Spoiler: Während ich gerade eben diesen Artikel schreibe installiere ich Windows 8(.0) auf meinem Laptop neu.

Ich hatte mich sehr schnell an Windows 8 gewöhnt, als ich von Windows 7 wechselte, und ich finde einige Funktionen sehr gut gelungen. Natürlich, ein Startknopf wäre schön und der Startbildschirm (aka Vollbildstartmenü) ist merkwürdig (un-)organisiert, aber ich arbeite sehr effizient mit dem System.

Dann habe ich Windows 8.1 ausprobiert. … Ich will nicht „noch einen Flame-Post“ schreiben, also beschränke ich mich auf ein einziges Features: Lokale Accounts.

Ich habe einen lokalen PC (ausgesprochen: „personal“ Computer). Wenn ich diesen PC benutze nehme ich mehrere Rollen ein, z.B. bin ich Ich wenn ich online einkaufe, ich bin mein Arbeits-Ich beim beantworten bestimmter E-mails aus einem meiner (augenblicklich 5 aktiven) E-Mail-Accounts, ich bin mein Spieler-Ich wenn ich online spiele, etc. Diese Liste könnte ich noch lange fortsetzen. Was jedoch hier wichtig ist: ich erfülle zwar unterschiedliche Rollen, aber ich bin immer ich und mache daher all das parallel, nebeneinander mit meinem einen Computer in meinem einen Account. Und dieser eine Account ist mein lokaler Benutzeraccount und nicht ein Microsoft Account der fest mit einer E-Mail-Addresse verbunden ist.

Ich will keinen Microsoft Account auf meinem lokalen Personal Computer benutzen.

Ich will keinen Microsoft Account auf meinem lokalen Personal Computer benutzen.

Ich will keinen Microsoft Account auf meinem lokalen Personal Computer benutzen.

Nach einigem Probieren konnte ich mir endlich einen lokalen Benutzeraccount auf Windows 8.1 einrichten, nur um dann festzustellen, dass ettliche Funktionen jetzt nicht mehr zur Verfügung stehen. Mehrere Apps funktionieren nicht mehr. Klar, kann ich mich in diese meist noch einzeln per Microsoft Account einloggen, aber bei einigen funktioniert das einfach nicht.

Was aber noch viel wichtiger ist: SkyDrive funktioniert nicht mit einem lokalen Benutzerkonto.

Zumindest war ich nicht in der Lage irgendeine Möglichkeit zu finden die Integration von SkyDrive mit einem lokalen Benutzerkonto zu verbinden. Das geht mal gar nicht. Die verbesserte Integration von SkyDrive garantiert mir, dass ich immer genügen Speicherplatz in meiner Cloud zur Verfügung habe, da ich diesen ja nicht füllen kann. Das ist einfach nur armseelig, erbärmlich und traurig.

Wie oben geschrieben wechsele ich wieder zurück auf Windows 8(.0) und werde meine Early-Adopter-Triebe unterdrücken, bis mir jemand beweisen kann, dass lokale Benutzerkonten wieder funktionstüchtig sind.

Wer zu der ganze Misere mehr lesen möchte findet z.B. hier einen sehr interessanten Artikel: http://www.tweakguides.com/Windows81_1.html (Seite 3 fand ich besonders gut).