Fork me on GitHub Fork me on GitHub

uninformativ.de

GNU, Linux, Shell und Co.

lariza goes WebKit2

Pingu-Avatar

2015-01-01, 11:55:34

Im August 2014 hat man sich von WebKit1 verabschiedet. Wenn man die Entwicklung vorher schon verfolgt hat, war das abzusehen. Für meinen Browser lariza hieß das, dass er nun auf einem wirklich wackeligen Fundament stand. Wie bereits bekannt, war WebKit1 ohnehin nicht die allerbeste Wahl aufgrund der vielen Bugs und Abstürze.

Nach WebKit1 kommt WebKit2.

Anfang November habe ich lariza auf WebKit2 portiert, genauer gesagt auf „GTK+ 3 und WebKit2GTK+“. Während sich WebKit2 vor einem halben Jahr, als ich mit lariza angefangen hatte, noch in einem ähnlichen Zustand wie WebKit1 befand (viele Abstürze) und Flash damals nicht ging, so hat sich die Situation bis heute deutlich verbessert. Es stürzt noch ab, ja, aber ziemlich selten. Durch das Modell mit den getrennten Prozessen reißt es auch nicht gleich die ganze lariza in Grund und Boden. Flash geht mittlerweile auch.

lariza v14.08 war also das letzte lariza-Release mit WebKit1. Seit lariza v15.01 hat lariza nun WebKit2 als Backend und damit wieder Hoffnung auf eine Zukunft. Sollte da draußen jemand upgraden wollen, so möge er den Hinweis in der README zum AdBlock-Modul beachten.

inline thumbnail

Mit der neuen lariza bin ich so zufrieden, wie man halt sein kann. Der Browser ist durchaus im Alltag benutzbar und gerade für mich in Sachen Konfiguration und Wartung um Welten angenehmer als Firefox. Und natürlich finde ich es aus Sicht des Minimalismus toll, dass das Ding – auch jetzt noch – nur 810 SLOC hat, plus 69 SLOC für das AdBlock-Modul. Trotzdem ist und bleibt WebKit ein Projekt, das im Vergleich zu den anderen Giganten einfach ein Zwerg ist. Google, die Mozilla-Foundation, Apple und Microsoft, die können einfach viel mehr Energie aufwenden, um dieses unfassbare Monster namens „Web“ bezwingen zu können. Viel besser als mit WebKit2 geht es vermutlich einfach nicht.

Zumindest nicht, solange man nicht hergeht, das ganze momentan existierende Web wegschmeißt und ein neues macht, für das jeder halbwegs fähige Programmierer innerhalb von einem Monat einen kompletten Browser schreiben kann.

Alternative Wecker-Strategie

Pingu-Avatar

2015-01-01, 09:50:11

Das mit dem Wecker zieht sich jetzt schon eine ganze Weile lang hin. Kurz zusammengefasst: Ich war mit keinem Wecker auf dem Markt zufrieden und wollte daher einen selbst bauen. Seit ich mit dem Bau angefangen habe, habe ich – trotzig wie ich bin – gar keinen Wecker mehr benutzt. „Bäh, dann halt nicht!“ Das war vor einem halben Jahr.

Der Witz ist jetzt natürlich, dass ich trotz „fehlenden“ Weckers immer noch pünktlich bin. Ich wache unter der Woche zwischen 5:30 und 6:30 Uhr auf, an freien Tagen schlafe ich auch mal bis 9 Uhr und die Umstellung von Sonntag auf Montag ist auch kein Problem. Im letzten halben Jahr kam ich nicht ein Mal zu spät.

Der zweite Witz ist, dass ich nach wie vor morgens hundemüde bin. Es fällt mir sehr schwer, aufzustehen. Es ist nicht so, dass ich einfach ein Frühaufsteher wäre. Ginge es nach mir, wäre Dienstbeginn um 15 Uhr, frühestens. Wenn ich keine Zwänge von außen habe, dann dauert es nur wenige Tage, bis ich regelmäßig zwischen 2 und 4 Uhr nachts erst schlafen gehe. Wenn ich das tue, fühle ich mich auch deutlich fitter und ausgeglichener. Ob mit oder ohne Wecker, früh aufstehen ist eine Qual. Ich gehe heute auch nicht deutlich früher ins Bett als noch zu Weckerzeiten. Ohne Club Mate oder Kaffee ist im Büro auch nicht allzu viel von mir zu erwarten. ;-)

Wie passt das zusammen? Ich glaube, hier sind zwei Mechanismen am Werk. Zum einen ist es mir schlichtweg wichtig, pünktlich zu sein. Ich empfinde es als ziemlich respektlos und unhöflich, wenn es einen festen Termin gibt und man mich warten lässt, folglich bemühe ich mich meinerseits eben, immer ein paar Minuten vor der ausgemachten Zeit da zu sein. Vermutlich kommt daher die „Motivation“ für den zweiten Mechanismus: Ich habe zwar einen Rollladen und hier scheint morgens nicht die Sonne rein, aber ich habe nach wie vor eine Uhr, die ich nachts leicht ablesen kann. In manchen Nächten fällt mir auf, dass ich nachts immer mal wieder aufwache und auf die Uhr schaue. Ich mutmaße einfach mal, dass das eigentlich immer so ist (und ich vergesse es nur – glaubt man dem Internet, wacht der Mensch ohnehin bis zu 30 Mal pro Nacht kurz auf und vergisst das wieder – keine Ahnung, bin kein Schlafwissenschaftler) und ich daher ein grobes Gefühl für die Zeit habe. Ein zusätzliches Experiment könnte also sein, die Uhr einfach mal ohne mein Wissen falsche Zeiten anzeigen zu lassen. Das traue ich mich dann allerdings doch nicht. ;-)

Wie auch immer das nun funktioniert, es ändert auf jeden Fall meine Anforderungen. Ich brauche keine „custom alarm clock“. Daher beerdige ich dieses Projekt hiermit.

Solange ich das zweite Experiment namens „keine Uhr“ nicht wage, brauche ich zwar nach wie vor immer noch eine Uhr. Die Liste der Anforderungen ist hier aber deutlich geschrumpft, da das Ding halt deutlich weniger können muss. Ob es da am Markt etwas passendes gibt, weiß ich nicht. Und so lange mein alter Radiowecker die Zeit noch anzeigt, spare ich mir die Such nach einem neuen Gerät auch.

So. Jetzt habe ich ’nen Haufen Arduino- und Elektro-Krimskrams zum Rumspielen. :D

Window Managing: „Mal eben ins Meeting“

Pingu-Avatar

2014-12-25, 16:41:53

Ich habe auf der Arbeit einen Laptop und zwei externe Bildschirme, also insgesamt drei Monitore. Die meiste Action findet zwar auf einem Monitor statt und die anderen beiden dienen nur als eine Art „Information Radiator“ (Lust auf Buzzword-Bingo?), aber nichtsdestotrotz sind es drei Monitore, auf denen sich Fenster verteilen. So.

Nun ist es ja so, dass Meetings leider recht häufig stattfinden. Was passiert dann mit all den Fenstern? Sobald ich meine zwei Monitore mit „xrandr“ deaktiviere, werden die Fenster „durcheinandergewürfelt“: Sie landen schlichtweg alle auf einem Monitor und wenn ich später die Bildschirme wieder anschließe, muss ich die Fenster manuell neu verteilen. Sehr lästig. Ich höre auch von anderen Usern – egal, ob Linux oder Mac – häufig, dass sie von diesem Verhalten sehr genervt sind und sich wünschen, dass sich der Computer doch bitte merken solle, wo welches Fenster war.

Ich habe das jetzt jedenfalls. Eigentlich gehört noch dieser Commit dazu, denn das ganze funktioniert so:

  • Der erste Schritt ist, dass dwm-intern alle Monitore immer anhand ihres Offsets auf der x-Achse sortiert werden. Da ich meine Bildschirme immer nur horizontal anordne und nicht vertikal, ergibt das Sinn. Somit ist „Monitor 0“ immer der Bildschirm ganz links, „Monitor 1“ dann der rechts daneben und so weiter. (Man kann sich hier leider nicht auf die Reihenfolge von Xinerama verlassen.)
  • Es gibt einen neuen Knopf für „save placement“. Diesen Knopf drücke ich einmal vor dem Abstöpseln der Monitore. dwm merkt sich dann, welcher Client wo war und welche Tags ich auf welchem Monitor gerade angezeigt habe.
  • Ich hocke dann im Meeting und will da eigentlich nicht wesentlich mehr tun, als ein Browserfenster am Beamer anzuzeigen. Oder eben Slides. Es ist mir also ziemlich egal, wo die ganzen existierenden Fenster durch das Abstöpseln der Monitore gelandet sind.
  • Wenn ich an meinen Platz zurückkomme, stecke ich die Bildschirme wieder an und drücke den Knopf für „restore placement“. Bam! Alles ist wieder wie vorher.

dwm ist dabei egal, welche Auflösungen die einzelnen Monitore haben, wichtig ist nur die Anordnung. Ich kann also auch meinen Rechner schnappen, in ein Rückzugsbüro gehen, dort zwei ganz andere Bildschirme anstöpseln und kann trotzdem die Fensterplatzierung wiederherstellen. Netter Bonus.

Ich hätte ja gerne eine Lösung, die nicht dwm-spezifisch ist. Man könnte da an ein einfaches Skript denken, das ein bisschen „wmctrl“ bedient. Leider ist das nicht sinnvoll machbar, weil sich einerseits das ganze Tagging-Konzept von dwm nicht mit EWMH oder so verträgt, andererseits will ich auch die Anordnung der Fenster pro Monitor wiederherstellen können – also ich will, dass das Terminal von rechts oben auch nach der Wiederherstellung wieder rechts oben ist. dwm-intern ist dafür die Position des Clients in einem Stack verantwortlich. Von diesem Stack hat die „Außenwelt“ keine Ahnung. Von außen könnte ich nur x- und y-Koordinaten setzen, was dwm aber herzlich wenig interessiert.

Wäre es sinnvoll, das Placement persistent zu speichern? Nein, denn dafür gibt es dwm-Regeln. Wäre es sinnvoll, das komplette Problem mit dwm-Regeln zu erschlagen? Nein, denn dann bräuchte ich für jedes Fenster eine Regel, was (für mich) nicht praktikabel ist.

Seit ich diese Funktion habe, machen Meetings jedenfalls deutlich mehr Spaß. ;-)

Frust am Gerät: Defekte Powerslide am Samsung NC10 Plus

Pingu-Avatar

2014-11-29, 08:38:31

Es geht um mein Netbook. Das Gerät ist jetzt gut 3.5 Jahre alt und verrichtet eigentlich ganz gute Dienste. Schon von Anfang habe ich mich über den Schiebeschalter zum Ein- und Ausschalten des Geräts gewundert:

inline thumbnail

Warum nicht einfach ein Drucktaster? Platz dafür wäre gewesen und das Vorgängermodell, also das Samsung NC10 ohne „Plus“, hatte auch noch einen Drucktaster. Mein „Plus“ hat aber eben diesen Schieber.

[…]

Goodbye, Cron

Pingu-Avatar

2014-07-30, 20:53:57

Seit einiger Zeit setzt Arch Linux ziemlich konsequent auf die Benutzung von systemd timers. Ein Basissystem hat gar keinen Cron mehr vorinstalliert, wenn ich mich nicht irre.

Ich habe die letzten Jahre fcron benutzt. Hauptsächlich, weil es Cron und Anacron in einem ist. Es kann also nicht nur Jobs zu festen Zeiten planen, sondern diese auch nachholen, wenn der Rechner zur geplanten Zeit ausgeschaltet war. Das ist ein Feature, was ich auf Desktop-Systemen für unerlässlich halte.

fcron ist allerdings nicht fehlerlos. Immer wieder ist es passiert, dass er Jobs „vergessen“ hat oder bei dessen Ausführung etwas schiefgelaufen ist. Das ist schlecht, weil ich mich auf einen Cron verlassen können will. Mangels Alternative habe ich mich aber damit abgefunden. Kürzlich wurde aber der Leidensdruck zu groß und ich wollte etwas haben, das auch funktioniert.

[…]