Linus’ Law nr 76

Don’t claim to have a config option, if you don’t actually have the UI to change it[1]

Um behaupten zu können, dass der Cube konfigurierbar ist, habe ich heute den passenden Dialog geschrieben. Noch ist es nicht viel, aber alle Optionen funktionieren bereits. Ein neues Feature hat dabei auch noch Einzug gehalten: Der Name der aktuell ausgewählten Arbeitsfläche wird angezeigt – natürlich auch ausschaltbar.

Cube Konfiguration

[1]: https://lists.linux-foundation.org/pipermail/desktop_architects/2007-February/002338.html

Rotation

Nachdem ich diese Woche eine Klausur geschrieben hatte, kann ich mich nun wieder voll auf meinen Würfel konzentrieren. Der Würfel wird nun anders gezeichnet. Bisher wurde jede Seite zuerst als Texture gespeichert und danach auf den Würfel angebracht. Dies hab ich nun ausgeschaltet: jede Seite wird direkt gerendert. Das hat den Vorteil, dass es auch auf älterer Hardware läuft und bedeutend schneller ist (nun ca. 25-30 FPS). Aber die Änderung hat auch ein paar Nachteile. So funktioniert das herumklappen der Fenster um die Würfelecken zur Zeit nicht mehr. Leider hab ich aktuell noch keine Idee, wie man dies lösen kann…

Nun hab ich auch begonnen die Rotation zu implementieren. Funktioniert bereits für den Spezialfall von 4 Arbeitsflächen – dem klassischen Würfel. Mit den Cursor Tasten kann der Würfel nach links und rechts rotiert werden; über die Tasten 1-4 (oder größer) kann direkt zu der gewählten Arbeitsfläche rotiert werden und der Effekt wird dann beendet. Selbstverständlich sucht der Effekt den schnellsten Weg zum Rotieren.

Rotierter Würfel
Das neue Standardhintergrundbild von KDE 4.1 ist meines Erachtens nach sehr gelungen.

Das ewige gehupe – oder warum mich die EM solangsam annervt

Wie einige wohl wissen, wohne ich in der Mannheimer Innenstadt. Wie allgemein auch bekannt ist, gibt es in Mannheim sehr viele Mitbürger, die aus anderen europäischen Ländern stammen oder aus Ländern, die man bei bestimmten Wettbewerben zu Europa dazu zählt. Wie auch bekannt, findet zur Zeit solch ein bestimmter Wettbewerb, die Euro 2008, statt.

Nachdem sich die Vorrunde nun zu Ende neigt, beginnen die Spiele um 20:45 Uhr. Also enden sie gegen 22:40 Uhr mit der obligatorischen Nachspielzeit. Der ideale Zeitpunkt um die Autos zu besteigen in die Innenstadt zu fahren und kräftig auf die Hupe zu drücken. Man hat auch Ausdauer: eine halbe Stunde? eine Stunde? zwei Stunden? Alles kein Problem. Interessiert es mich, dass es in Mannheim auch Menschen gibt, die um 01:00 Uhr Nachts schlafen und nicht gehupe hören wollen? Vielleicht, aber unsere Mannschaft hat doch gewonnen!

Angefangen hat alles mit dem Spiel Schweiz gegen Türkei. In der Nachspielzeit erzielen die Türken den Siegtreffer: das ist ein Nationalereignis: “Ja wir haben einen Sieg”. Hat man zu dem Zeitpunkt schon etwas erreicht? Nein – ein Sieg im zweiten Spiel, noch nicht für das Viertelfinale qualifiziert. Trotzdem das muss gefeiert werden.

Dank des italienischen Unentschieden und der deutschen Niederlage hatte man in Mannheim erst mal wieder Ruhe. Bis, nun ja, bis die Türken wieder spielten. Sie lagen bereits 2:0 zurück gegen stark spielende Tschechen. Man freute sich auf eine ruhige Nacht… und was passiert: der tschechische Torwart greift daneben und die Türkei dreht das Spiel und qualifiziert sich für das Viertelfinale. An dem Punkt etwas erreicht? Den Titel gewonnen? Trotzdem ein Grund zu feiern – wieder eine schlaflose Nacht.

Nächster Abend: Deutschland gegen Österreich. Deutschland spielt schlecht, schwach. Das Highlight der Rausschmiss der Trainer auf die Tribüne. Deutschland gewinnt und qualifiziert sich auch für das Viertelfinale. Stellt das Erreichen des Viertelfinales wirklich ein für Deutschland bereits angemessenes Ziel da? Ist alles unter Erreichen (falls Deutschland nicht weiter kommt) des Finales nicht eine Niederlage? Gibt es also einen Grund zu hupen? Dennoch – man muss ja zeigen, dass die deutsche Bevölkerung mit den Türken es aufnehmen kann. Die Herausforderung wurde angenommen – auch wenn beim Lautstärkeduell klar die Türken (noch) vorne sind.

Dienstag: Man freut sich – heute gibt es für keine Minorität einen Grund zu feiern. Holland wird schön brav verlieren (sind ja sicher Gruppensieger) und Italien und Frankreich fahren nach Hause. Tja Rechnung geht nicht auf: Holland gewinnt, Italien gewinnt. Italien qualifiziert sich ebenfalls für das Viertelfinale. Ist das Erreichen des Viertelfinales wirklich ein Grund zu feiern, wenn man von Holland abgeschlachtet wurde (im ersten Spiel) und man amtierender Weltmeister ist? Offensichtlich ja: es wurde wieder gehupt.

Heute: ja heute: Es spielt Griechenland, Spanien, Rußland und Schweden. Meine Hoffnung liegt darin, dass die Minoritäten zu klein sind um mich wach zu halten…

Und die Zukunft: Morgen spielt Deutschland. Übermorgen die Türkei. Hoffnung: der türkische Torwart ist gesperrt – er war gegen Tschechien klar der beste Mann. Ja die Hoffnung stirbt zu Letzt. Liebe Kroaten schmeißt die Türken raus – ich möchte schlafen. Am Sonntag spielt Italien gegen Spanien. Auch hier gibt es Hoffnung – überzeugen konnte ja Italien bei dieser EM noch nicht.

Zum Glück ist am Dienstag – am Tag vor einer Klausur – spielfrei. Da werde ich also schlafen können. Und dann nur noch drei Partien… Es gibt Hoffnung auf ruhige Nächte – und wenn Deutschland gewinnt: dann muss ich auch nicht schlafen 😉

Warum nicht einen Keil?

Ich habe vorhin einige Änderungen am Cube committed. Die Innenwinkel werden nun in Abhängigkeiten der verwendeten Arbeitsflächen errechnet und auch die Texturzugriffe werden errechnet. Dies gibt uns einige weitere Möglichkeiten: wir sind nicht mehr auf einen Würfel beschränkt. So kann man nun auch mit 3 Arbeitsflächen einen Keil erstellen:
Keil

Mehr als 4 Seiten funktioniert leider noch nicht. Bei 5 Seiten treffen sich die zwei hinteren Flächen noch nicht. Aber das wird schon 😉

Ach ja wie man im Screenshot sehen kann ist die Performance nicht gerade die Beste. Das muss ich auch noch in Griff bekommen. Ist aber gerade nicht Prio A nachdem ich am Samstag die FPS Rate vervier bis fünfacht habe.

Wir haben einen Würfel

Heute habe ich meinen bisherigen Stand meines Summer of Code Projektes in das SVN Repository hochgeladen. Wer sich dafür interessiert: ich habe einen Branch angelegt: branches/work/soc-kwin-cube.
Die Quellcode Dateien finden sich in effects/cube.h und effects/cube.cpp. Aktuell ist der Code natürlich noch nicht wirklich gut. So werden nur vier Arbeitsflächen unterstützt und Rotation funktioniert auch noch nicht. Trotzdem kann ich schon einen Screenshot präsentieren:
Wie man sieht werden bereits Fenster um die Ecken herumgeklappt. Das ich dies so früh schon zeigen kann, freut mich besonders.