Das Ende des Beendens
Canonicals Designteam hat gesprochen, und mal wieder stehen Änderungen im Raum. In That’s it, we’re quitting (auf den 07.03 datiert, ging an mir allerdings vorbei) wird argumentiert, dass der Beenden-Button (Quit) nicht mehr zeitgemäß sei und verwirre. Daher soll er wo möglich abgeschafft werden.
Ist-Zustand
Üblicherweise haben Programme einen Quit-Button und Fenster haben zusätzlich ein Close (Schließen). An Gimp sieht man das gut:
Die Bedeutung der Buttons dürfte jedem etwas erfahrenen Computernutzer klar sein: "Quit" beendet Gimp komplett, "Close" schließt dieses Fenster, "Close All" schließt alle Fenster.
Nun wird Gimp in dem Artikel als Besonderheit dargestellt, doch auch andere Programme wie Pidgin haben diese Unterscheidung - ein Quit in der Kontaktliste schließt Pidgin komplett, ein Close im Nachrichtenfenster nur dieses Fenster.
Die Kritik
Das Problem daran liege nun z.B. bei Webbrowsern. Diese tragen in sich ggf. verschiedene Unterprogramme, Webseiten in eigenen Browserfenstern, und das Beenden des Webbrowsers in einem Fenster beendet nun auch alle Webprogramme. Doch es werden auch andere Beispiele genannt, nämlich LibreOffice, bei dem das Schließen einer Präsentation in Impress ebenfalls die gleiche Präsentation in Calc mitschließe.
Generell sei Quit immer dann problematisch, wenn Programme im Hintergrund sinnvolle Sachen erledigen. Ein Quit beende dann eben alles, im Gegensatz zu Close, meine damit aber unterschiedliche Dinge: Beim Audioplayer "Spiele keine Musik mehr", beim Chatprogramm "Geh offline". Dies alles an Quit zu binden sei falsch.
Die vorgeschlagene Lösung
Ubuntu hat schon vor einer Weile die Submenüs oben im Tray eingeführt bzw vorgestellt, also das Soundapplet, über das der Audioplayer kontrolliert werden kann, und das Nachrichten-Menü samt dem Me-Menü, über das z.B. neue Chatnachrichten aufgerufen und der Onlinestatus eingesehen werden können.
Die Lösung für die vermeintliche Inkonsistenz von Quit soll nun in diesen Menüs liegen.
Chatprogramme sollen sich schlichtweg nichtmehr über ihre GUI beenden lassen, also nur noch Close statt Quit anbieten. Das Beenden der Oberfläche würde dann den Onlinestatus nicht mehr beeinflussen, sondern dieser über das "Me"-Menü gesteuert werden.
Ähnlich bei Audioplayern, wobei hier unterschieden wird zwischen Jukebox wie Banshee und eigenständigen Fensterprogrammen wie VLC. Erstere sollen sich über das Soundapplet steuern lassen, sogar dort angezeigt werden wenn sie noch gestartet sind, letztere sich beim Schließen Beenden.
Kritik der Kritik
Der Ansatz ist nichtmal verkehrt. Es macht in der Tat wenig Sinn, einen Browser als betriebssystemartigen Träger von Webprogrammen zu betrachten, wenn ein Quit in einem Fenster alle anderen Fenster mitbeendet. Doch ist die vorgeschlagene Lösung nicht zuende gedacht und die Prämisse auch falsch. Denn die Prämisse lautet ja: Nutzer sind zu bescheuert um zu begreifen, dass ein Quit das Programm beendet und damit alles damit verbundene tötet. Sie bekommen es nicht auf die Reihe, zu unterscheiden zwischen Schließen/Close (des Fensters) und Beenden/Quit (des Programms), wobei letzteres erstere beinhaltet. Ich weigere mich, diese Prämisse zu akzeptieren.
Wenig ist so klar wie die Unterscheidung zwischen Schließen und Beenden. Der Browser ist das beste Beispiel: Wie sonst soll man alle Fenster schließen, wenn man den Browser beenden will, z.B. weil er Amok läuft und man nicht Fenster für Fenster Schließen will? Noch dazu: Für dieses vermeintliche Browserproblem gibt es seit kurzem eine eindeutige Lösung, die mit einem einzigen Fenster auskommt, sie nennt sich Tabs und wird von einigen Futuristen sogar schon benutzt.
Wie soll das mit der GUI für das Chatprogramm überhaupt gehen? Wenn das zwei getrennte Programme werden, eines für das Chatsystem und eines für die Anzeige, und man sichergehen will, dass die Chatprogramm-GUI vollständig beendet wird, wie soll das dann gehen ohne Quit und nur mit Close? Bewirkt ein Close auf die GUI dann ein Töten des Programms oder eine Nichtanzeige der Oberfläche?
Und so ganz nebenbei: Schön, wenn Ubuntu Quit verbannen will und dafür dann mit Soundapplet und Me-Menü Kontrollmöglichkeiten vorsieht. Auf meiner alternativen Oberfläche (und wie sieht das bei KDE aus?) habe ich beide nicht zur Verfügung. Sollen die Programme das erkennen und dann wieder Quit anbieten? Schöne neue Konsistenz
Hier führt die Abkehr vom bekannten Konzept von Quit/Close zu vielen weiteren Inkonsistenzen, zu Unsicherheit aufgrund der Aufgabe eines bekannten Standards, sodass bei jedem Programm neu erkannt werden muss wie es funktioniert. Nur noch Close anzubieten wird zu Unsicherheit führen, weil nicht mehr einfach deutlich gesagt werden kann "Beende dich komplett", weil unklar bleibt, ob das Programm in Hintergrund weiter werkelt und Systemressourcen beansprucht. Kann eine Lösung gut sein, wenn sie dazu zwingt, mit Systemmonitoren die Prozessliste zu überwachen um zu prüfen, ob Programme wirklich beendet wurden oder sie nur ihre Fenster nicht mehr anzeigen?
RSA-SHA256-Signatur mit PHP5
Ich dachte ja, ich mag PHP. Aber wenn man in solche Fallen wie heute rennt, hört das ganz schnell auf.
Folgendes Szenario: Ein Server (node.js) soll sich bei einem Client ausweisen. Also erstellt der Server eine Zufallszahl, signiert die, schickt die Zahl und die Signatur an den Client. Im Grunde so:
function generateNonce() { return Math.floor(Math.random()*100001); } function generateSignature(nonce) { var signer = crypto.createSign('RSA-SHA256'); signer.update(""+nonce); var private_key = fs.readFileSync('./privateKey.pem', "utf8"); return signer.sign(private_key, output_format='base64'); }
Jetzt müsste nur noch der PHP-Client das mit dem PublicKey entschlüsseln und schauen, ob die Signatur gilt. Sollte ja nicht wirklich schwer sein, openssl kann das ja - doch die Dokumentation dazu ist unterstes Niveau. Dort wird nichtmal angegeben, in welchem Format (hex, base64?) die Signatur erwartet wird. Dank diesem (Signatur als reiner String, also selbst dekodieren) und diesem Kommentar (erklärt, im Gegensatz zur Dokumentation verständlich, wie man überhaupt Schlüssel lädt) ließ sich das jetzt nach Stunden des Ausprobierens so zusammensetzen:
$nonce = $_POST['nonce']; $sig = base64_decode($_POST['sig']); $publicKey = openssl_get_publickey(file_get_contents(dirname(__FILE__). '/publicKey.pem')); $valid = openssl_verify($nonce, $sig, $publicKey, "RSA-SHA256");
HTML5 statt Flash!
Adobes Flashplugin ist unter Linux schon immer problematisch gewesen. Früher stürzte es oft ab, heute ist es meist nur die Performance, die einfach viel schlechter ist als unter Windows. Videos im Vollbild abspielen ruckelt, Spiele werden viel schneller als unter Windows zur Diashow, und das Wechseln von Vollbild zurück klappte nur manchmal, hinterließ oft einen schwarzen Kasten statt eines kleinen Videos. Auf meiner Todoliste für die letzte LTS-Version stand deswegen auch: Alternativen suchen. Das sollte im Idealfall in einem großspurigen Blogpost mit "Warum nehmt ihr alle Adobe Flash, wenn es doch auch frei geht" als Fazit münden. Den gab es natürlich nie, die freien Flashalternativen swfdec und Gnash spielten mir damals nichtmal Youtube-Videos ab. So blieb Adobe Flash einfach drauf.
Jetzt zwang mich Chromium, Flash doch zu verbannen. Denn es passierte immer wieder, dass Youtubevideos den Browser abstürzen ließen und dabei das komplette System mitnahmen. Das nervte mich irgendwann so, dass ich Flash herunterschmiss und schaute, woran ich nun war. Mein Fazit steht im Titel: HTML5 statt Flash funktioniert.
Wofür nutzt man Flash? Die meisten spielen damit wahrscheinlich einfach Videos ab. Und die meisten Videos sind auf Youtube. Bei Youtube aber kann man HTML5 aktivieren. Nicht jedes Video ist als HTML5-Version vorhanden, aber sehr sehr viele sind es. Auch außerhalb Youtubes finden sich vermehrt HTML5-Videos, Audio abspielen kann der Browser sowieso schon eine Weile (wenn auch die Kontrollen bei mir bisher noch nie funktionierten), selbst Spracheingabe geht.
Der Verzicht auf Flash ist immer noch ein Verzicht, denn natürlich stolpert man ab und an über Flashvideos oder Flashspiele. Doch der Verzicht wird inzwischen durch HTML5 wesentlich geringer. Und es ist auch ein Gewinn, wenn man dafür sich nicht mehr mit Flashproblemen rumärgern muss, der Browser von Flashelementen entlastet wird und ganz nebenbei das eigene System ein unfreies Element weniger hat.
Update für PC-Kombo
Das wichtigste am Update für den Hardwareempfehler ist wahrscheinlich die hinzugefügte Hardware. So sind die ganzen Core iX-2Y00k, also die neuen Intelprozessoren mit Grafikchips, enthalten. Mir wurde das Warten auf shopping.com zu doof und nun greift pc-kombo zusätzlich (aktuelle) Daten von Amazon ab, mit denen die Datenbank gefüttert wird.
Außerdem wurden die Kritikpunkte von Timo umgesetzt, bis auf die Erweiterung um Mainboards. Das heißt: Icons weg, Schriftart geändert (Lato), Impressumslink versperrt nichts mehr. Und Matthias hatte ein paar HTML-Fehler entdeckt.
Was ist noch zu verbessern?
f.lux: Zeitabhängige Farbkontrolle
Man merkt beim Titel dieses Eintrags schon, dass ich noch kein Schlagwort für f.lux gefunden habe. Es ist eine Software, die je nach Tageszeit die Farbtemperatur des Monitors anpasst. Also: Tagsüber bleibt das Bild blau und hell, nachts wird der Bildschirm roter. Die Software gibt es für Windows, Mac und für Linux, wobei bei mir unter Ubuntu 10.04 nur die Kommandozeilenversion funktionierte.
Der Gedanke dahinter ist wohl, dass helles blaues Monitorlicht nicht gerade müde macht. Die Unterseite dazu liest sich ganz lustig.
Von der Idee her ist das Programm verwandt mit izulu, wenn man den Nachtmodus aktiviert hat. Tagsüber helle Bilder, nachts dunkle - das schafft eine ähnliche Atmosphäre wie die Anpassung der Farbtemperatur. Jetzt bin ich am Überlegen, ob ich f.lux als Option in izulu einbauen sollte, also dass es optional automatisch aufgerufen und mit dem Nachtmodus synchronisiert wird. Allerdings ist f.lux keine freie Software... - Meinungen dazu?
Moratorium
Kann mir mal jemand erklären, was ein Moratorium für eine Verlängerung bewirken soll? Moratorium bedeutet "aufschieben". Man kann aber keine Verlängerung aufschieben. Ein Moratorium auf einen Vertrag bedeutet, dass dieser erstmal nicht in Kraft tritt. Wenn er aber nach drei Monaten wieder in Kraft treten soll, kann in diesen drei Monaten nichts grundlegendes passieren, können zum Beispiel keine Kraftwerke (dauerhaft!) abgeschaltet werden.
Entweder ich übersehe etwas grundsätzliches, oder dieses Moratorium ist eine reine Nebelkerze. Und ich bin eigentlich gerne bereit, das zu glauben.
ProxyTube
Ich blogge zurzeit nicht gerne großen Blogs hinterher, aber ProxyTube ist ein so geniales Chrome-Addon, dass es hier erwähnt gehört (und das nicht in die Linkempfehlungen passt). Es lädt von der Contentmafia gesperrte Youtube-Videos über Proxydienste nach. Das funktionierte bei mir bei den ersten Tests nicht und dann mehrmals hintereinander doch, ist aber in jedem Fall besser, als das Video gar nicht sehen zu können oder hidemyass manuell besuchen zu müssen. Das mache ich dann doch nie.
Update: Leider funktioniert Proxytube nach einiger Zeit nicht mehr zuverlässig, weder im Firefox noch in Chrome, egal ob Windows oder Linux. Als Alternative taugt Proxmate (via).
Hardwareempfehler PC-Kombo
Gut, es hat natürlich länger als eine Woche gedauert, mein Projekt online zu stellen. Doch jetzt kann man den Hardwareempfehler austesten.
Die Idee
Man gibt an, wieviel Euro man ausgeben will, und der Empfehler nennt einen dann die für das Geld beste Kombination aus Grafikkarte und Prozessor.
Hintergrund
Ich stelle immer wieder für Freunde PCs zusammen. Und es passiert auch immer wieder, dass man in Foren liest, wie Leute Empfehlungen suchen. Eine der Kernfragen ist immer, was die beste Hardware für das Budget ist - und meistens ist mit "beste" schnellste gemeint.
Natürlich gibt es Ausnahmen, wenn Stromverbrauch oder bestimmte Anschlüsse gefordert werden, doch ändert auch das bei Spielern seltenst den Fokus weg von der Spieleperformance.
Wie machen die Helfer das manuell? Sie verschaffen sich einen Marktüberblick (was wird überhaupt wirklich im Laden angeboten) und vergleichen die Hardware mit irgendwelchen Benchmarks, um schließlich eine zum Budget passende Kombination auszuwählen. Und genau das macht pc-kombo auch.
Funktionsweise
Shopping.com bietet eine API, über die Unmengen an Hardwareangeboten abgerufen werden können. Daraus baut sich der Empfehler eine Liste an Hardware, die es gibt. Mit der Google-Shopsuche wird nach aktuellen Preisen gesucht, denn in dem Punkt ist die Shopping-Api zu unzuverlässing. Die Benchmarks von passmark liefern eine Einschätzung der Performance und schließlich Amazon in Deutschland erhältliche, konkrete Angebote.
Screenshots
Beta!
Die Seite ist noch nicht fertig. Zum einen wurde bisher nur mit der Sandbox von Shopping.com gearbeitet, da sie ja eben noch nicht online war. Die wird nicht so schnell aktualisiert wie wünschenswert wäre, es fehlen also die neuesten Modelle. Zum anderen bin ich kein Webdesigner, was man der Seite vielleicht ansieht (wobei ich mit diesem ersten Designentwurf gar nicht unzufrieden bin). An beiden Stellen ist also noch Potential. Nebenbei: es ist eine HTML5-Seite
Ich brauche hierzu unbedingt Rückmeldung! Anregungen, Kommentare, Designvorschläge, Bugs? Funktioniert es?
Izulu startet langsam
Kleiner Hinweis zu izulu: Das startet in letzter Zeit sehr verzögert. Schuld daran ist nicht das Programm selbst, soweit ich das überblicke, sondern die Yahoo-WOEID-Api. Die braucht einfach auf einmal sehr lange mit ihrer Antwort. Der Start sollte also normal schnell sein, wenn der Nachtmodus nicht aktiviert ist.