Resident Evil Afterlife

19. September 2010

Als absoluter Resident Evil Fan ließ ich mir den 4. Teil natürlich nicht entgehen. Um so trauriger war ich über die Umsetzung.

Zwar gab es auch inhaltlich ein paar Punkte die ich mir anders vorgestellt hätte, aber dann wäre der Film nach 20 Minuten wahrscheinlich schon vorbei gewesen. Ohne also irgendwas zu verraten sei nur erwähnt: Warum haben die den Resident Evil Main-Theme rausgenommen? Das war bisher in jedem Film dabei und hat die Zwischensequenzen perfekt abgerundet. Dafür haben die jetzt ein neues Lied, welches Actionszenen super unterstützt hätte, aber nein…

Was ja aber mal gar nicht geht ist der Versuch das ganze in 3D auszustrahlen. Neben der dabei leidenden Quallität des Filmmaterials hat man, dank der Technik, von dunklen Actionszenen absolut gar nichts mehr.

Vielleicht wirkts beim 2. Mal ja besser. =)


Endspurt

4. September 2010

Jetzt befinde ich mich auf der Zielgeraden zu meiner Verteidigung und werde die nächsten zwei Wochen keinen Gedanken einem Blog-Post widmen.

Drückt mir die Daumen und bis in zwei Wochen.

Euer liebster r2p2


Universal Machine

29. August 2010

2006 galt es beim ICFP Programming Contest eine virtuelle Maschine zu implementieren. Von einem Kollegen angestachelt habe ich mich mal daran versucht und war, dank ein paar hilfreicher Tipps, auch erfolgreich. Grundsätzlich ist die VM recht simpel aufgebaut und daher auch leicht umzusetzen. Die Herausforderung besteht in der korrekten Deutung der Spezifikation. Außerdem ist es schwer einen Fehler zu finden, wenn man nicht genau weiß wann der mitgelieferte Byte-Code für die VM wann was tut.

Wer mal am Wochenende was zum Knobeln braucht: http://www.boundvariable.org/index.shtml


So viele Veränderungen

15. August 2010

Wie ich bereits in meinem ersten Blog-Post ankündigte, hatte ich Gentoo eine weitere Chance eingeräumt. Lange hat es (bzw. ich) aber nicht durchgehalten, die Compile-Zeiten sind einfach unerträglich. Wer sein System einmal einrichtet und dann in Ruhe lässt, hat damit sicher kein Problem, doch mir fällt jede Woche was neues ein.

Also hatte ich mal wieder Arch-Linux auf meinem Laptop installiert und fühlte mich sogleich heimisch. Im Wiki findet sich eine super Doku, die einem den Umstieg von Debian auf Arch stark erleichtert. Als ganz angenehm empfinde ich die rc.conf, die diverse Einstellungen, wie Netzwerk-Konfiguratoin, zu ladende Kernel-Module…, an einem Ort hält.

Aus lauter Jux hatte ich auf dem Laptop auch KDE installiert und mich dann über die funkelnde Oberfläche gefreut. Als jahrelanger KDE-Zumindest-Nicht-Gut-Finder muss ich aber gestehen, dass es sich recht gut benutzen lässt. Einen Blick Wert ist auf jeden fall die Zusammenarbeit der für Termine und Kontakte zustänigen Programme. Die teilen sich nämlich die Daten, ein wenig Mac-Like nur eben auf meinem eigenen Rechner. Programmiertechnisch bin ich derzeit ja noch hin und her gerissen vom richtig gut dokumentierten Qt und – naja – gtkmm.

Richtig interessant wurde es aber, als Arch nun auch das Ubuntu auf meinem PC ablöste. Geplant war das ja eigentlich nicht so zeitig, aber auf der damals extra für solche Fälle frei gelassenen 400GB-Partition war es recht schnell installiert. Dabei habe ich das System auch erstmals mit LVM aufgesetzt und alle wichtigen Verzeichnisse in ein separates Logical-Volume gesteckt. Jetzt mache ich mir Vorwürfe, dass ich sowas nicht schon viel eher getan habe. Man ist dermaßen flexibel, gerade weil man zu Beginn selten weiß, wie groß die einzelnen Verzeichnisse in 2 Jahren mal werden. (/opt wurde schon 3 Mal vergrößert, was leichter ist als Brötchen backen. [Bemerkt man das vor Freude strahlende Kind in mir?]) Auf dem PC läuft übrigens KDE. *duck*

Es gibt aber auch eine Schattenseite. Eigentlich keine Schatten- sondern eine stumme Seite: Nach der Installation haben nur KDE-Anwendungen Ton ausgegeben. Erst nach der Pulse-Audio-Installation spricht nun auch VLC zu mir. Allerdings vermisse ich noch den Ton von Spielen und Flash. Im Netz gibt es viele Hinweise, geholfen hat aber bisher noch nichts. Ah, durch einen dummen Zufall ist es mir gelungen Flash doch Sprechen zu lassen, allerdings haben sich dann alle KDE-Anwendungen die auch was sagen wollten aufgehängt.

Sachdienliche Hinweise bitte zu mir. =)

Sieht man mal vom Ton ab, bin ich äußerst zufrieden. Ein flexibles System, welches mich nicht einschränkt und stets das neuste dahin installiert, wo ich es vermute. Möge mich Arch mindestens so lange begleiten, wie Ubuntu zuvor.


Oracle – Das fettere MySql

31. Juli 2010

Seid gut 5 Jahren setze ich als RDBMS für kleine und große Projekte PostgreSQL ein. Es lässt sich schnell installieren und hat mir bisher noch jeden Wunsch von der Kommandozeile abgelesen. Bildlich stelle ich mir PostgreSQL als eine stabile Softwarelösung vor, bei der sich die Entwickler viele Gedanken um die ideale Umsetzung machen.

Zuvor habe ich mich etwa ein halbes Jahr im MySql-Umfeld bewegt. Wer es nutzen möchte kann dies natürlich tun, auf mich macht das irgendwie einen wackeligen Eindruck. Vor allem dann, wenn ich an das 5.1er-Release denke. (Schimpft ruhig in den Kommentaren, so bekomme ich wenigstens welche.)

Dank des aktuellen Projektes habe ich das große Glück in das so angepriesene Oracle reinschnuppern zu können. Selbstverständlich könnte ich das auch in meiner Freizeit, doch lagen meine Interessenschwerpunkte bisher auf anderen Gebieten. Meine ersten Kontakte mit Oracle haben mich auch gleich wieder zurückschrecken lassen, weshalb ich nun nach drei Wochen leider noch sehr weit vom Oracle-“Fachmann“ entfernt bin.

Kritik an etwas zu äußern, womit man sich nicht auskennt, ist ja immer eine heikle Angelegenheit und sollte grundsätzlich unterlassen werden. Von der anderen Seite betrachtet könnten sich daraus aber neue Erkenntnisse entwickeln, die mir vielleicht helfen Oracle unter einem anderen Licht zu sehen. Konstruktive Hinweise heiße ich daher herzlich willkommen.

Installation

Begonnen hat alles mit der Installation von Oracle Database 11g, was mich etwa 8 Stunden gekostet hat. Ich weiß bis heute nicht, ob ich überall richtig geklickt habe. Es ist auch aus meiner Sicht fraglich, warum es sich per Default nach /u01 installiert, man stelle sich vor das würde jede Anwendung machen. Zumindest die nach der Installation belegten 3.18 GB sollten einen nicht stören, wenn sich die in der Datenbank zu haltende Datenmenge im Terrabytebereich bewegt. Wenn ich mich nicht total irre, hatte mir das Web-Interface mitgeteilt, dass die Datenbank-Daten um die 2.5 GB belegen. Was halten die da bitte für Daten?

SQL

Wenn ich das richtig sehe, baut Oracle auf ein paar wenigen Grunddatentypen auf und mappt die Standard-Datentypen darauf. Das hat zur Folge, dass aus einem INT ein NUMBER(38) wird und aus einem SMALL ebenfalls eine NUMBER(38). (BOOL übrigens auch.) Die 38 steht dabei für die Anzahl der Ziffern, die vor dem Komma stehen können.

Oracle scheint auch mit Leerzeilen innerhalb eines Statements nicht klar zu kommen.

Auch, wenn es die hohe SQL-Schule nicht gut heißt, kommt doch häufig eine fortlaufende Nummer als Primärschlüssel zum Einsatz. Vor allem dann, wenn eine größere Anzahl an Attributen zu einem Primärschlüssel zusammengefast werden müsste, um die Eindeutigkeit herzustellen. Auf die Möglichkeit der Auto-Generierung muss man in Oracle leider verzichten. Wer das dennoch möchte findet viele Anleitungen zur manuellen Erstellung der Trigger. So ein Datenbanker soll ja schließlich auch was tun für sein Geld.

Einen schönen Überraschungseffekt erlebt man, wenn man nicht weiß, dass grundsätzlich alles in einer Transaktion läuft. Wer sich also wundert, warum das SELECT beim einen Client die frisch eingefügte Zeile anzeigt und beim anderen nicht, sollte zunächst COMMIT ausführen. Ich finde es irgendwie abwegig nicht extra über TRANSACTION darauf hinzuweisen, dass man in einer ist.

Interessiert man sich nur für die ersten drei Zeilen eines SELECTs, bieten einem MySql und PostgreSQL das Schlüsselwort LIMIT. Oracle hingegen führt als eine Art verstecktes Attribut die Zeilennummer mit, welche in der WHERE-Klausel mit einer Bedingung verknüpft werden kann. Wenn man nun die drei besten Ergebnisse haben möchte, darf man das zweite SELECT nicht vergessen.

SELECT * FROM (
   SELECT points FROM MIKANE ORDER BY points DESC
) where rownum <= 3

Gegen Oracles Fehlermeldungen kann man ja fast gar nichts sagen. Zwar wären die Fehlerursachen auch was für den Post, aber zumindest die nummerierten Fehlermeldungen führen einen, dank der Dokumentation, meist zu Lösung. Hin und wieder darf aber gerätselt werden, wenn man Fehlermeldungen liest wie: „line %s, column %s:\n%s“.

Client

An dieser Stelle möchte  möchte ich nicht über den Standard-Kommandozeilen-Client sqlplus meckern. Das Ding sollte man einfach nicht verwenden.

Ziel war es sich über C++ mit Oracle in Verbindung setzen, wobei ich hoffte, die Einbindung des Oracle-Treibers OCCI würde genügen. Grundsätzlich ist das auch völlig ausreichend, wenn man seinen Client auf der gleichen Maschine laufen lässt, wo sich auch die Oracle-Installation befindet. Möchte man diesen Client von seinem kleinen Entwickler-PC aus verwenden, benötigt man eine Oracle-“Mini?“-Installation.  Damit habe ich mich bisher leider nicht näher beschäftigt (Zeitmangel). Wenn ich richtig informiert wurde, wird die Installation benötigt, damit der Client die Datenbank über die Oracle-Eigene Namensauflösung findet.

Fazit

Wenn ich mir meinen eigenen Text zu durchlese, könnte man sich an das meiste eigentlich gewöhnen. Dass viele Dinge in anderen Systemen anders laufen liegt ja in der Natur der Sache. Allerdings bleibt Oracle meiner Ansicht nach eine Datenbank für extrem große Projekte. Damit meine ich so richtig riesen groß und überdimensioniert. Genau genommen habe ich auch diese Features, die sie angeblich für Großprojekte geeignet machen, noch nicht berührt. Da vertraue ich einfach mal auf die Leute die es einsetzen und davon überzeugt sind. Für Projekte in meinen Größenordnungen habe ich allerdings noch nichts entdeckt, was PostgreSQL nicht auch (effektiver) erschlagen würde.


Stöckchen – Sommerfragen

18. Juli 2010
Letzten Samstag saß ich im Gebüsch und beobachtete heimlich Pieprincess und das Llama im Leipziger Zoo. Wahrscheinlich hat mich das Llama bemerkt, denn es warf ein Stöckchen in meine Richtung. Als ich den am Stöckchen hängenden Zettel ausgefüllt hatte, waren die beiden leider schon verschwunden.

Das stand dann drauf:

Ist dir schon aufgefallen dass du im Sommer viel öfter den Frauen hinterher schaust?

Man wird doch wohl träumen dürfen.

Was hältst du von diesen Flip Flops die jetzt ihre Hochsaison haben?

Hochsaison? Trends? Sowas geht an mir irgendwie vorbei. Solange die ihren Zweck erfüllen ist doch alles ok. Ich für meinen Teil bleibe bei Turnschuhen, bei jedem Wetter. oO

Trägst du im Sommer kurze oder lange Hosen?

In meiner alten, alten Schule gab es immer Hitzefrei, wenn der stellvertretende Schulleiter in kurzen Hosen kam. Hätten die das ernst gemeint, wäre dieser Fall nie eingetreten. Ich halte es da ähnlich und bleibe bei langen Hosen. =)

Welchem Sport kommst du hauptsächlich im Sommer nach?

Gehört Schwitzen zu einer anerkannten Sportart? Sonst siehts dünn aus. Eventuell Eisessen oder Dauerliegen?

Wünschst du dir dass der Sommer schnellst möglich wieder vorbei ist?

Oh ja bitte. Sommer kann ich ja generell nicht leiden. Zum einen weil man bei der Wärme nicht schlafen kann und zum anderen wegen der grellen Sonne. Das sind meine Augen nicht gewöhnt. :D

Hoffentlich habe ich bei meinem ersten Stöckchen, welches ich mir selbst holen musste :P, alles richtig gemacht. Ich werfe es dem zu, der den 3. Kommentar schreibt. :D


Was guckst du?

10. Juli 2010

Durch einen guten Freund habe ich vor etwa zwei Jahren das Kino-Gehen wieder für mich entdeckt. Die riesige Leinwand vermittelt doch eine andere Atmosphäre als der Bildschirm zu Hause. Zugegeben, hin und wieder trügt ein seltsamer Geruch im Kinosaal die Stimmung, doch lässt es sich mit netter Gesellschaft durchaus aushalten. Während sich die letzten Besuche über einen längeren Zeitraum ausstreckten, habe ich Angst es in nächster Zeit etwas zu übertreiben. So werden in den nächsten paar Monaten gleich 3 Filme ausgestrahlt, die ich ungern verpassen möchte. (Für die fanatischen Kinogänger unter euch mag das lächerlich klingen.)

  • Vampires Suck (Wahrscheinlich anderer deutscher Titel.)
    Am 9. September startet meine Liste zunächst seicht mit einer Parodie auf Vampirfilme. Ich stehe ja grundsätzlich total auf Vampirfilme, kann aber gut damit leben, wenn sich andere darüber lustig machen.
  • Resident Evil 4 – Afterlife
    Zwei Tage zu spät geht es dann Actionlastig weiter. Zwar scheint das nicht mehr viel mit den Vorgängern am Hut zu haben, doch sind die Szenen aus den Trailern durchaus beeindruckend. Zumal auch hier 3D zum Einsatz kommt. (Schade, dass dabei die Qualität des Bildmaterials leidet.)
  • Tron Legacy
    Zu Tron kann ich eigentlich nicht so viel sagen. Abgesehen von ein paar Ausschnitten aus dem Original von 1982 und einem Spiel habe ich davon recht wenig mitbekommen. Dennoch zieht mich wohl das legendäre Motorradrennen in den Bann. Wir werden sehen… aber erst im Januar 2011.

Auf dass ich nicht alleine gucken muss, gibt ja was zu feiern.


Template-Ritter

3. Juli 2010

In einer Programmiersprache kann ein vernünftiges Typsystem den Entwickler vor Fehlern schützen und ihm dabei auch Arbeit abnehmen. Entwickelt man beispielsweise eine Anwendung in der dynamisch getypten Programmiersprache Ruby (Perl, Python, PHP…), kann erst zur Laufzeit festgestellt werden, ob etwa einer Funktion Variablen des falschen Typs übergeben wurden. Außerdem erfüllt es seinen Beitrag zu einer sinnvollen Dokumentation, da ein Entwickler aus den angegebenen Datentypen wichtige Informationen für die Verwendung einer API ziehen kann.

Verliebt habe ich mich ja in das Typsystem von Haskell, welches durch hohe Typsicherheit glänzt, jedoch enorme Flexibilität bietet, wodurch viel Quelltext gespart werden kann. Dank Type-Inference kann bei trivialen Funktionen auf die Angabe von Typen verzichtet werden. Zur Compile-Zeit kümmert sich der Compiler um die korrekte Auflösung. Es ist dem Entwickler aber freigestellt die Typen direkt anzugeben, falls es die Lesbarkeit des Codes erhöht.

Etwa drei Tage lang habe ich mich nun mit der sauberen Lösung eines Problems in C++ beschäftigt, wobei mir das Typsystem einen Stich durch die Rechnung zieht. Trotz der Untersützung zweier fähiger Kollegen (Danke!), ist kein zufriedenstellendes Ergebnis herausgepurzelt.

Hintergrund

Im aktuellen Projekt müssen sich mehrere Systeme miteinander unterhalten. Für die dabei ausgetauschten Nachrichten gibt es eine Formatbeschreibung, in welcher festgelegt wird wie die in der Nachricht enthaltenen Variablen übertragen werden. Auf das eigentliche Format gehe ich, auf Grund rechtlicher Unklarheiten, nicht näher ein. Vorstellbar wäre das ganze auch im XML-Format, welches etwa so aussehen könnte. (Ist meiner Fantasie entsprungen.)

<myformat>
  <variable name="COUNTER" type="integer">
    12
  </variable>
  <variable name="OBSERVER" type="ascii">
    Max Patternman
  </variable>
</myformat>

Eine solche Nachricht muss nun in C++ geparst und in eine Datenstruktur gepresst werden, welche den einfachen Zugriff auf deren Elemente ermöglicht. So ergeben sich folgende Anforderungen:

  • serialisieren
  • deserialisieren
  • Umwandeln von Datentypen des Nachrichtenformates in C++-kompatible Datentypen
  • Getter- und Setter-Methoden für die Werte der Variablen unterschiedlichen Typs

Polymorphie

Mein erster Gedanke ging in Richtung Polymorphie, was in etwa so aussehen würde wie in Abbildung 1. Die vielen m_value-Attribute ließen sich durch einen void* erschlagen. Um die hohe Anzahl der Getter- und Setter-Methoden in der Basisklasse führt aber kein Weg vorbei, da unter Verwendung von Polymorphie nur Methoden der erbenden Klassen aufgerufen werden können, deren Signatur bereits in der Basisklasse deklariert wurde – eventuell als abstrakte Methode. Ich finde es aber schrecklich, alle möglichen oder benötigten C++-Typen in die Basisklasse zu stecken.

Vereinfachte Lösung durch Polymorphie

Abbildung 1: Vereinfachte Lösung durch Polymorphie

Templates

Die nächste Idee war die Umsetzung unter Verwendung von Templates, wie in Abbildung 2. Mir ist bewusst, dass die Template-Darstellung nicht mit UML 2.x konform ist, aber so lässt sich das angenehmer Darstellen. Diese Lösung hätte den Vorteil, dass nur die Methoden implementiert werden müssen, die tatsächlich benötigt werden. Einem mehr oder weniger geschulten Auge fällt jedoch sofort auf, dass eine solche Realisierung nicht möglich ist. Die schöne Grafik, die das so offensichtlich werden lässt, entstand aber erst nach diversen Versuchen der Realisierung mit Templates und bildet die gemeinsame Grundmenge ab. Templates ermöglichen es zwar (unter anderem) den Typ von Variablen und Funktionen zu einem späteren Zeitpunkt festzulegen, doch entfällt zugleich die Möglichkeit der Polymorphie, da der Template-Parameter in jedem Fall anzugeben ist. Es kann also keine Liste aus Integer- und ASCII-Instanzen erstellt werden, man muss sich für eines entscheiden, was das ganze unbrauchbar macht.

Abgesehen davon, dass innerhalb der nächsten 5 Jahre der C++0X-Standard sowieso noch nicht produktiv eingesetzt werden kann/sollte, scheint auch das neue Schlüsselwort auto nichts an der Template-Geschichte zu ändern. Zwar wird durch Type-Inference der passende Typ ermittelt, dieser gilt jedoch erneut für alle Templates. An dieser Stelle ließe sich aber wahrscheinlich ein Wrapper um die Elemente legen, dessen polymorpher Elemente-Pointer mit einem auto als Template-Parameter ausgestattet ist.

Während ich gerade den letzten Abschnitt zum Testen in Code gieße, stelle ich fest, dass auto wohl gar nicht als Parameter für Templates übergeben werden darf. Das Beispiel ohne Wrapper befindet sich hier, das mit Wrapper dort. (Ich bitte um Nachsicht, da der Quelltext 1:18 entstand.)

Vereinfachte Lösung durch Templates

Vereinfachte Lösung durch Templates... die nicht funktioniert

Kapitulation

Unter der Voraussetzung, dass ich keine weitere saubere, funktionierende Lösung als die Polymorphie übersehen habe, ist verständlich, warum C++ eben nicht als Sprache für ein solches Einsatzgebiet empfohlen wird.

Letzten Endes falle ich wohl auf die Polymorphie zurück, wobei ich mir da noch ein paar Feinheiten ausgedacht habe.

In allen Getter- und Setter-Methoden wird eine Exception geworfen, zum Beispiel WrongTypeException. Die eigentlichen Typ-Klassen überschreiben dann die jeweiligen Getter und Setter und geben eben den gecasteten void* zurück. Ist zum Beispiel durch das Nachrichtenprotokoll festgelegt, dass die im Beispiel erwähnte Variable COUNTER immer ein Integer ist, kann ohne vorherige Prüfung des tatsächlichen Typs der int-Getter aufgerufen werden. Sollte es sich nicht um den erwarteten Typ handeln, würde die Exception geworfen werden. Falls mehrere Typen möglich sind, kann natürlich entweder über RTTI oder ein, in den UML-Grafiken nicht aufgeführtes, Typ-Attribut geregelt werden.

Vorschläge sind gern gesehen.


Auf dass es nicht so endet wie es begonnen hat

27. Juni 2010

Dieses Wochenende wurden Entscheidungen getroffen, von denen es kein Zurück mehr gibt. Zumindest nicht so leicht. Um genau zu sein sind es auch nur zwei und 50% davon betreffen gar nicht mich persönlich. Aber der Reihe nach…

Bachelor-Thesis

Egoistisch wie ich bin, fange ich natürlich bei mir an. Auch wenn ich meine Arbeit bereits Mittwoch habe drucken lassen, hätte ich natürlich die Möglichkeit gehabt noch Veränderungen vorzunehmen. Das habe ich nicht wahr genommen und heute meine Daten-CD fertiggestellt, womit das Gesamtpaket pünktlich zum Abgabetermin (28.06.2010) übergeben werden kann.

Bedauerlicherweise steigert sich dieses ungute Gefühl, dass die Arbeit nicht gut genug ist. Es ist gar nicht so leicht zu akzeptieren, dass man sowieso nichts mehr ändern kann, was einem auch nicht weiter hilft. So bleibt nur zu hoffen, dass ich mich mal wieder maßlos unterschätze. Glauben tue ich daran aber nicht.

Vorsorglich könnt ihr schon mal Ideen für den zweiten Versuch als Kommentar anfügen. Danke! =) Selbstverständlich könntet ihr es auch zunächst mit Daumendrücken für die Verteidigung versuchen. Der Termin steht aber noch nicht fest.

Polterabend

Mein lieber Freund und Arbeitskollege hat mich zu meinem ersten Polterabend eingeladen, der sich gestern (26.06.2010) Abend ereignete. Es war natürlich sein Polterabend, aber der erste dem ich beiwohnen durfte.

Praktischerweise hatte ich auch, mit einem weiteren Arbeitskollegen, einen Gesprächspartner für den Abend. Richtig lustig wurde es aber, als uns jemand vorgestellt wurde, der sich den Rest des Abends für die Gesprächsthemen zweier Vollblutinformatiker interessierte. Solche Personen sind mir immer sehr sympatisch. Es ist nämlich manchmal verdammt schwer jemandem zu erzählen was man macht, wenn man nicht weit genug ausholen darf, weil es das gegenüber dann doch nicht so interessiert. (Hoffentlich wisst ihr worauf ich hinaus will.)

[Die Spiele werden großzügig übersprungen...]

Kurz vor Mitternacht haben die zwei auch den Scherbenhaufen beseitigt, was beim zweiten Anlauf deutlich schneller ging. Anschließend wurde die Mülltonne jedoch streng bewacht. =)

Alles in allem war es ein sehr schöner RL-Abend, für den ich mich noch mal bedanken möchte.

Euch beiden wünsche ich alles Gute…


Es gibt ein Leben nach dem Studium

23. Juni 2010

Zunächst sollte erwähnt werden, dass ich mit selbigem noch nicht fertig bin. Zum heutigen Tag ist aber meine Arbeit zum Drucken und Binden raus gegangen, wodurch ich nun sowieso nichts mehr ändern kann. Anstatt mich also jeden Tag fertig zu machen, was ich in der verbleibenden Zeit noch alles einfügen und umbauen muss, kann ich mir jetzt vorwerfen, dass ich es nicht getan habe. Der dabei entstehende Aufwand fällt jedoch deutlich geringer aus, womit die stressige Zeit überwunden sein sollte. Bis ich mich aber richtig entspannen kann, liegt noch das Gerenne für das Drucken und Binden, die Abgabe und ein Polterabend (nicht meiner) vor mir.

Seltsamerweise fallen einem 1000 Dinge ein, die man viel lieber täte, wenn man gerade absolut keine Zeit dafür hat. Langweilt man sich hingegen, bleiben auch die Ideen fern. Meinem Vorsatz eine Liste zu pflegen bin ich leider nicht nachgekommen. So erhebt die imaginäre Version keinen Anspruch auf Vollständigkeit. Jedoch kann ich mich noch an ein paar Punkte erinnern, die ich noch schnell mit euch teilen möchte.

  • Die offensichtlichste Neuerung ist wohl dieser Blog. Zweifellos wird sich der Ansturm in Grenzen halten, doch bietet er die angenehme Möglichkeit jene, mit denen ich nicht so häufig in direktem Kontakt stehe, mit mehr als 140 Zeichen auf dem Laufenden zu halten. An dieser Stelle möchte ich auf den verweisen, der das ausgelöst und mir mindestens einen Leser versprochen hat. ;)
  • Zu Beginn des Jahres hatte ich geplant mich beim Shinkendo anzumelden. Aus einem mir unbekannten Grund habe ich es dann immer wieder geschafft, mich vor meinem eigenen Wunsch zu drücken. Allerdings bin ich auch bei dem ganzen Stress der letzten drei Monate sehr froh darüber gewartet zu haben. Eventuell habe ich ja jetzt mehr Antrieb, wenn es hier steht.
  • Es gibt auch zwei Programmierprojekte die ich mit einem Kollegen umsetzen möchte. Weil ich nicht weiß wie viel ich schon drüber reden darf/sollte, fasse ich es erst mal kurz: Das eine hat was mit Präsentationen zu tun und das andere mit einem LLVM-Front-End und einer echt verrückten Idee. *Fieser-Schurke-Lachen*
  • Auch in meinem Linux-Leben hat sich etwas verändert. Auf meinem Laptop habe ich Gentoo installiert. Ubuntu entwickelt sich da meiner Ansicht nach in die falsche Richtung. Zumindest entfernt es sich von mir. Da ich auch neben Ubuntu keine Distribution wüsste, die mich glücklich machen würde (evtl. Arch?), habe ich mich mal wieder für Gentoo entschieden. Es wird sich zeigen, wie lange wir es zusammen aushalten.
    Um das ganze noch etwas zu relativieren, auf meinem PC bleibt es vorerst bei Ubuntu. Wie dessen Zukunft aussieht entscheidet mein Laptop. Das hat er schon einmal getan… damals… mit Linux… (Zugegeben, 5 Jahre her und ein anderer Laptop. >.<)
  • Pflege sozialer Kontakte… Da war doch noch was. *grübel*

Follow

Get every new post delivered to your Inbox.