Animierter BoxSwitch Effekt

Heute habe ich in den Entwicklungszweig der KDE eine Überarbeitung des BoxSwitch Fensterwechsel (Alt+Tab) Effekt eingespielt. Nun gibt es auch eine Animation wie in dem bei Compiz bekannten Effekt. Jedoch erst in KDE 4.2.

Worte sagen nicht viel daher ein Video:

Bei YouTube
Wer Flash nicht mag: es gibt auch eine hochauflösende Version.

Sehr interessant war heute übrigens die Erfahrung wie schnell ein Server in die Knie gehen kann. Ich hab das Video auch auf Planet KDE veröffentlicht, was sehr viele Zugriffe verursachte. Irgendwann hat Apache nicht mehr mitgemacht 🙁 Nach einer Umkonfiguration sollte jetzt alles wieder funktionieren.

KWin in Intrepid Ibex

Gute Nachrichten für alle Freunde des *BLING*. Mir ist zu Ohren gekommen (OK eher per Mail in mein Postfach), dass in Kubuntu Intrepid Ibex der OpenSuSE 11.1 Branch von KWin verwendet wird. Das ist richtig toll. Lubos Lunak (mein Mentor bei GSoC und Maintainer von KWin) hat richtig tolle Arbeit geleistet und alle bis jetzt existierenden Neuerungen und Verbesserungen für KDE 4.2 auf KDE 4.1 zurückportiert. Ich hatte schon ernsthaft mit dem Gedanken gespielt mir den openSUSE Build Service anzuschauen um mir selbst das Paket zu bauen. Die Verbesserungen sind so toll, dass ich sie selber haben will.

Ich muss auch sagen ich finde es richtig toll, dass openSUSE so stark Upstream ihre Distribution bauen. Alle Änderungen werden direkt im KDE SVN Repository gemacht und sind somit von Anfang an transparent. Davon kann dann zum Beispiel auch Kubuntu profitieren und deren Branch übernehmen. In diesem Fall ist ja klar, dass die SuSE Leute Ahnung haben, schließlich wird der Branch vom KWin Maintainer gepflegt. Wer jetzt denkt, dass hier Kubuntu mal wieder nur nimmt und nicht gibt: wir Kubuntu User spielen ja jetzt im Prinzip den Beta-Tester für SuSE. Bugs die jetzt in Kubuntu auftreten, sind dann in openSUSE 11.1 behoben. Also mal wieder win-win für alle – so läuft richtig gutes Open Source 😉

So jetzt mal was gibt es denn tolles neues im Vergleich zu KDE 4.1:

  • Compositing Selbsttest
  • Würfel/Zylinder/Kugel Effekt
  • Verbesserter PresentWindows (Exposé) Effekt. Natürliche Anordnung und die Möglichkeit als Alt+Tab Wechsler zu verwenden
  • Verbesserte Konfiguration: einfaches Auswählen des Alt+Tab Effekts über ein Dropdown
  • Performance Verbesserungen

Auf jeden Fall mal ein Grund mein Laptop am Wochenende auf Intrepid upzugraden. Ich glaube als ich gerade die Liste durchgeschaut habe, was in dem Branch so enthalten ist, auch gleich mal einen Fehler entdeckt zu haben. Wird dann mal überprüft und gemeldet 😉

Update:Es sieht so aus, als ob der openSUSE Branch wieder deaktiviert wurde, da es Probleme verursachte. Ich weiß jetzt nicht, ob es bis zum final Release wieder aktiviert wird, fürchte aber nicht. Quelle

Mozilla gesteht Fehler ein

Mozilla hat wohl mittlerweile eingesehen, dass die Forderung der EULA in Ubuntu suboptimal verlaufen ist. Nun kein Wunder: liest man sich den Bugreport durch, sieht man, dass die meisten Kommentare entweder eine Umbenennung wie in Debian fordern und Firefox nach Multiverse oder Restricted verschoben werden soll oder man doch gleich auf Epiphany/WebKit in Ubuntu wechseln soll, schließlich ist in Kubuntu auch der KDE Browser der Default. Nur wenige Kommentierende schreiben, dass ihnen die EULA egal ist. Nicht überraschend. So ein Bugreport ist natürlich selektive Wahrnehmung: wen es nicht interessiert, der geht nicht drauf und trägt einen Kommentar ein. Dennoch ist die Anzahl der Kommentare mit mehr als 300 Kommentare für die kurze Zeit sehr beeindruckend.

Nun Mozilla hat dies natürlich auch bemerkt und nun Fehler eingestanden. Jedoch was mich überrascht, ist dass sie nicht die EULA an für sich als Fehler ansehen, sondern, dass es ein falscher Text wäre. Den neuen EULA-Text findet man hier.

Ich frage mich, ob es jetzt nicht schon zu spät ist. Selbst wenn Mozilla auf das Präsentieren der EULA verzichtet: der Schaden ist angerichtet. Für mich ist nach Debian/IceWeasel und nun der EULA jegliches Vertrauen in die Firma Mozilla verloren gegangen. Das hat nichts mit meinen Kritikpunkten an der Software Firefox zu tun. Für mich ist es schon fraglich, ob Mozilla eine Firma ist, die sich ihrer OpenSource Herkunft und Verpflichtung gegenüber der Community bewusst ist. Ich fürchte nein und das ist mehr als Schade. Die Frage ist ja wie sieht es in der Zukunft aus? Wird man wieder auf die Community zugehen oder sie auch in Zukunft verärgern? Ich meine, die Diskussion jetzt mit der EULA war ja vorherzusehen, wenn man die Community etwas kennt.

Außerdem frage ich mich: wie hoch ist noch die Bereitschaft der Community Mozilla zu unterstützen, wenn Aktionen wie IceWeasel und EULA der Dank an die Community sind? Werden die Leute, die nun verärgert sind weiterhin Bugreports erstellen, vllt. Patches erstellen? Wie werden sie auf andere Browser Projekte reagieren? Was ist wenn Chrome ein freies Community Projekt wird? Oder Arora schafft Aufmerksamkeit auf sich zu lenken? Werden die jetzt verärgerten dann bei Firefox bleiben oder das Lager wechseln?

Ich denke Mozilla hat sich ganz schön selbst gestraft. Es gibt so viel wofür es sich zu kämpfen lohnt und so gute proprietäre Gegner und sie verärgern einen der wichtigsten Verbündeten. Eigentlich ist das einfach nur Schade. Ich sehe leider keine gute Zukunft für Firefox voraus.

Rant zu Firefox und Intrepid

Wer mich kennt, weiß, dass ich ein ganz besonderes Verhältnis zu Mozilla und ihrem Firefox habe. Vor allem wegen der nicht existierenden Integration in den Desktop benutze ich einen anderen Browser. Aber auch die Iceweasel Geschichte, das SSL-broken-by-design in FF 3 und den Verfall der “Garantie”, wenn man about:config verwendet, haben mich sehr stark von Mozilla abrücken lassen.

Nun gibt es einen neuen Hammer. In Intrepid Ibex 8.10 wird man bei der ersten Firefox Nutzung einer EULA zustimmen müssen. Siehe: https://bugs.edge.launchpad.net/ubuntu/+source/firefox-3.0/+bug/269656

Sorry, aber geht’s noch? Dass ihr keine freie Software seit wissen wir ja schon lange. Ihr seit ja “organic”. Dass ihr euch für andere OpenSource Projekte nicht interessiert, sieht man ja auch am Umgang mit KDE. Aber das ist ja einfach nur der Hammer. Kein FF für mich in Intrepid. Ich stimme einer EULA bestimmt nicht zu. Ich hoffe doch sehr, dass Canonical sich nicht so unter Druck setzen lässt und die Pakete wie in Debian in Iceweasel umbenennt. Am Besten ziehen alle Distributoren nach. Vllt. kapiert Mozilla ja dann, dass sie nichts diktieren können und nicht mit anderen Regeln spielen.

Wenn ich so etwas lese, dann steigt bei mir doch wieder die Hoffnung, dass irgendwann ein anderer OpenSource Browser kommt, der FF von der Bildfläche verschwinden lässt. Da ist mir sogar Chrome lieber. Ein OpenSource Projekt, das mit jedem Release OpenSource neu definiert, brauchen wir wirklich nicht; nächster Schritt “Quellcode offenlegen ist Sicherheitsrisiko”. Willkommen in der Welt des FF von morgen: proprietär. Ich werde FF keine Träne nachweinen. Benutzt hab ich den Browser eh nur zu Zeiten von 0.x. Da war er auch noch einigermaßen in KDE integriert. Aber seit langen wird ja jede neue Version schlechter 🙁

Meine Hoffnung liegt ja in Arora. Ein schöner QtWebKit Browser. Ach ja und natürlich liegt meine Hoffnung auf WebKitKDE und eine Benutzbarkeit mit Qt 4.5 und vllt. schon KDE 4.2

Assembler

Ich denke darüber nach den Wasser Effekt für KWin zu implementieren. Da Compiz so einen Effekt hat, dachte ich mir: schau doch mal in denen ihren Code und schau dir an wie die das machen. Mir ist klar, dass ich einen Shader brauche und Compiz auch einen benutzen muss. Im besten Fall wäre es also möglich den Shader eins zu eins zu übernehmen und den Effekt recht schnell zu haben.

Also in das Quellcodeverzeichnis gegangen und nach einem Shader gesucht. Kann aber keine Shader Datei finden. Da sind überall nur c-Dateien. Schaut man halt in die c-Datei um den Pfad zum Shader zu finden – muss ja schließlich zur Laufzeit geladen werden. Und was stellt man fest? Der Shader ist in Assembler direkt im Quellcode geschrieben! Assembler! Kein Shader in der OpenGL Shading Language. Also keine Möglichkeit den Shader wiederzuverwenden, nein ich kann den Code nicht mal lesen. Wirklich Schade. Es gibt eine Hochsprache dafür und Compiz verwendet Assembler. Ich möchte hier jetzt Compiz nicht kritisieren. Es ist durchaus denkbar, dass zu dem Zeitpunkt als der Effekt geschrieben wurde, man Shader noch in Assembler schreiben musste.

Kugel mit Caps

Nachdem ich eine Woche nicht daran hab arbeiten können, da der Ati Chip in meinem Laptop keine Shader unterstützt, hab ich mich heute wieder an die Kugel gemacht und konnte die Caps fertigstellen. Wird auch langsam Zeit: übermorgen ist Code Freeze für die Abgabe bei Summer of Code. Das Ergebnis sieht nun so aus:

Die Kugel wurde etwas nach hinten vorschoben um vollständig auf den Monitor zu passen und die Spiegelung wurde deaktviert, da sie mit der unteren Cap überschneiden würde. Kugel und auch Zylinder können übrigens nicht verwendet werden um den Wechsel der Arbeitsfläche zu animieren. Dafür gibt es nur den Würfel. Alles andere würde das Bild bei einer Animation von ca. einer halben Sekunde zu stark stören.

Leider sind meine Versuche Zylinder und Kugel andere Tastenkürzel zu geben erst einmal gescheitert. Irgendwie scheint mir die Vererbung in C++ doch nicht so ausgereift zu sein wie in Java. Eigentlich ja nicht überraschend, da C++ ja auch gelinkt werden muss. Da die Tastenkürzel im Konstruktor festgelegt werden und der Konstruktor von Cube als Elternklasse zuerst ausgeführt wird, hat auch Zylinder und Kugel dessen Tastenkürzel reserviert. Daher bleibt es vorerst dabei, dass man Cube nicht starten kann, wenn Zylinder oder Kugel aktiviert ist. Die Einstellungen sollten sich jedoch noch ändern lassen. Werde ich mir morgen mal anschauen 😉

aKademy vorbei

Es war eine tolle Woche und leider ging sie viel zu schnell vorbei. Aber man freut sich schon auf nächstes Jahr in Gran Canaria zusammen mit den Leuten von Gnome. Fällt leider voll in die Klausuren- und Lernphase.

Die KDE Community ist einfach umwerfend. Alle Leute sind super nett. Generell war es riesig. Wir 350 Leute haben ja nicht mal mehr auf das Gruppenfoto gepasst, daher hab ich mich auch noch nicht darauf entdeckt.

Die ersten zwei Tage waren geprägt von Konferenzen. Sehr viele Talks und Keynotes. Die meisten richtig interessant und manchmal gab es auch zwei Talks die ich gerne gleichzeitig gehört hätte. Zum Glück wurde aufgezeichnet 😉 Sehr interessant war natürlich die Keynote von Nokia, unseren neuen besten Freunden. Für die, die es nicht wissen: Nokia hat am Anfang des Jahres Trolltech übernommen und ist nun die Firma hinter Qt und somit KDEs wichtigster Partner. Von der Keynote her denke ich nun noch mehr, dass Nokia sich der Verantwortung gegenüber KDE bewusst ist und das Verhältnis noch weiter ausbauen will und KDE stärker fördern wird. Wäre natürlich sehr erfreulich.

Zwischen den Talk wurden auch die aKademy Awards verliehen. Ich denke Amarok, Oxygen und Aaron Seigo für Plasma sind passende Gewinner für diese Auszeichnungen. Amarok ist einfach eine geile Anwendung, Oxygen ist mit das schönste was ich je auf dem freien Desktop gesehen habe und Aaron hat die Auszeichnung für seine Arbeit und seine Ideen an Plasma durchaus verdient.

Am Samstag Abend war das Social Event in einer Brauerei mit Freibier gesponsort von Nokia. Hier hatte man so richtig die Gelegenheit neue KDE-ler kennenzulernen und sich mit ihnen über ihre Projekte und Arbeit auszutauschen. Um es einfacher zu machen hatte jeder KDE-ler ein Namensschild umhängen. Sonntag morgen waren die ersten Vorträge doch etwas träge. Eigentlich verständlich bei Bier mit 9 % – und keiner hat uns gewarnt 😉

Montag war die Hauptversammlung des KDE e.V. Das hat die meisten aKademy Teilnehmer beschäftigt. Da ich kein Mitglied bin, durfte ich nicht hingehen und habe mich stattdessen dem Coding gewidtmet. Es ist auch ein bißchen was darbei herumgekommen 😉

Dienstag war der Thementag zu Mobile Devices. Dieser stand natürlich unter dem Einfluss der 100 N810 die Nokia an die KDE Entwickler verschenkt hatte. Die Akkus waren zum Glück schon geladen und die Mac Adressen waren in der Firewall freigeschaltet. So kam es, dass man den ganzen Tag über Leute über ihr neues Spielzeug gebeugt gesehen hatte, die ihre ersten Gehversuche mit Gnome machen. Bin ja mal gespannt, was die Community für diese Geräte leisten wird. Denke aber mal schon, dass es bald die ersten KDE 4 Pakete für Maemo geben wird. Wäre schön. Natürlich müssen die Anwendungen auch ein bißchen angepasst werden. Aber das sollte ja nicht so schwer sein. Ich weiß noch nicht, ob das Gerät einen 3D-Chip hat, daher hab ich noch keine Ahnung ob meine Effekte laufen werden 😉

Am Dienstag konnte ich mich auch einmal mit meinem GSoC Mentor und KWin Maintainer (wer Planetkde liest: der mit den blauen Haaren) zusammensetzen und über unsere Pläne für 4.2 reden. War meiner Meinung nach ein sehr fruchtbares Gespräch und ich werde mich nun stärker in KWin einarbeiten und mich auch mal mit den Bereichen abseits der Effekte beschäftigen.

Die letzen Tage waren geprägt von Hackathon und BoF Sessions. Ich selber habe keine der BoFs besucht. Wollte zu Usability gehen, aber Essen hatte länger gedauert als erwartet und als ich ankam war der Raum bereits überfüllt. Daher habe ich ein bißchen programmiert. Present Windows Effekt (aka Expose) ist nun ein Window Switcher (Alt+Tab). Ist sehr praktisch, da er sehr gut skaliert für eine große Anzahl von Fenstern. Ob ich ihn selber in 4.2 nutzen werde, weiß ich noch nicht, da ich meistens nur so viele Fenster offen habe, dass Coverswitch noch gut skaliert. Eine weitere Neuerung (noch nicht committed) konnte ich in den Einstellungen einbauen. Nun gibt es ein Dropdown um den Window switcher und eins für den Desktop switcher auszuwählen. Das sollte es dem User bedeutend erleichtern, den für sich perfekten Effekt zu finden ohne die Einstellungen verschiedener Effekte durchzuprobieren um herauszufinden, dass der Effekt auch als Window Switcher verwendet werden kann. Ja das zeigt: wir brauchen ein Handbuch.

Btw: ich werde wohl eine englische Kategorie einführen und meine Blogposts zu KDE in Zukunft in Englisch verfassen, da ich mehrmals gebeten wurde auch auf planetkde zu posten. Ich denke, dass ich weiterhin kurze deutsche und nicht so technische Posts schreiben werde.l

Nokia N 810

Ich schreibe diesen Artikel gerade auf meinem neuen Nokia N 810. Vielen Dank an Nokia fuer dieses nette Geschenk an die KDE Entwickler hier auf der akademy.

Vorfreude

  • Reisetasche gepackt
  • Laptop geupdated
  • Home Partition auf Laptop verschlüsselt
  • KDE 4.2 (trunk) wird auf Laptop gebaut
  • SSH-Schlüssel auf Laptop kopiert
  • KDE-Wallet auf Laptop kopiert

Und warum das ganze?

Und ich freue mich schon riesig. Morgen geht es endlich los. Endlich lerne ich mal richtig viele der KDE Entwickler kennen. Sehr interessante Vorträge sind geplant und auf den Hackathon freue ich mich auch schon, auch wenn programmieren auf meinem Laptop nicht wirklich Spass macht.

Lesson learned

Gestern habe ich meine Änderungen der letzten Wochen mit dem KDE SVN zusammengeführt. Unter anderem war auch meine Änderung zum Verhalten von multi-Monitor-Setups enthalten.

Bis dahin sah es so aus: ein riesiger Würfel, der über alle Monitore geht. Das war eher ein Zufallsprodukt als irgendwie geplant. Für mich war eigentlich klar, dass das falsch ist. Würfel über mehrere Monitore? Ne ergibt keinen Sinn. Mann stelle sich vor der zweite Monitor steht abgewinkelt zum ersten – das wäre ja komplett falsch. (bei mir ist es übrigens so, weil ich den zweiten Monitor irgendwo auf den Schreibtisch gequätscht habe – benutze eigentlich nur einen).

Also habe ich die meiner Meinung nach einzig praktikable Lösung umgesetzt: der Würfel wird nur auf einem Monitor gezeichnet und so skaliert, dass beide Monitore auf den Wüfel auf einem Monitor passt. Ist meines Erachten nach die einzige wirklich saubere Lösung.

Nun anscheinend gibt es User, die mir nicht zustimmen. Kurz nach dem Commit bekam ich eine E-Mail, in der ein User meinte, dass es nicht so gut wäre und heute wurde auch ein Bug dazu aufgemacht. Tja so ist das halt mit OpenSource: Änderungen werden sofort wahrgenommen.

Also werde ich den einen großen Würfel wieder implementieren und als Config-Option anbieten. Sollte kein großes Problem sein, da ich nur die Sonderbehandlung für Multi-Monitor-Setups ausschalten muss.

Es gäbe noch die Möglichkeit auf jedem Monitor einen eigenen Würfel zu zeichnen. Anscheinend macht Compiz das so. Leider will Compiz bei mir warum auch immer nicht starten und ich kann es mir daher nicht anschauen. Diese Möglichkeit wäre sehr kompliziert und würde den Code sehr unschön machen. Ich müsste an sehr vielen Stellen darauf überprüfen und das will ich natürlich nicht 😉