Fork me on GitHub Fork me on GitHub

uninformativ.de

GNU, Linux, Shell und Co.

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.

[…]

Für zwischendurch: ASCII-Steuerzeichen

Pingu-Avatar

2014-07-06, 12:40:36

Warum ist an einem gängigen Terminal „^I“, also „<Ctrl + i>“, dasselbe wie ein Druck auf die Tab-Taste? Oder „^M“ dasselbe wie Return?

[…]

Arduino-Wecker – Teil 0: Gehversuche mit Uno und Display

Pingu-Avatar

2014-06-29, 19:44:54

Bisher war ich beim Wecker-Selbstbau etwas zögerlich, weil ich halt überhaupt keine Erfahrung auf dem Gebiet hatte. Wo fängt man an, wie fängt man an und womit? Man will ja auch nicht komplett blind Bauteile kaufen – auch, wenn die einzeln alle billig sind, kosten sie in der Summe schon viel Geld.

Ich bekam dann zum Glück einen Arduino Uno und ein ganzes Kästchen voller Teile zum Spielen ausgeliehen. :) Vielen Dank! Ein bisschen rumprobiert und Zack, angefixt.

Ich will den Wecker schrittweise bauen und ausbauen: Erst eine Uhr, dann eine Funkuhr, dann Buzzer und Knöpfe, schließlich richtiger Ton über einen Lautsprecher und mit entsprechendem Sound-Modul. Schritt Null ist aber erst einmal: Eine 7-Segment-Anzeige über einen Arduino ansteuern.

[…]

foo, bla.c, data, rofl.txt

Pingu-Avatar

2014-06-26, 21:12:09

Das kennt jeder. Man probiert mal was aus, dabei fällt irgendeine Datei an. Mhm, ganz interessant – nächste Woche habe ich aber schon wieder vergessen, dass ich das ausprobiert hatte. Die Datei liegt aber immer noch da. Und weil man ja nur kurz was ausprobieren wollte, hat man der Datei natürlich keinen sinnvollen Namen gegeben.

Ehe man sich versieht, ist die Platte voll mit Müll. Wie geht man damit um?

[…]

Ausflüge ins WebKitGTK+- und XUL-Land

Pingu-Avatar

2014-06-16, 20:46:48

Es gibt keinen einfachen Browser. So ein Ding nur für Nerds und Hippies. Ein Browser, der einfach nur Webseiten anzeigt und nicht noch tausend andere Sachen macht. Ein Browser, dessen Code so kurz ist, dass man ihn tatsächlich lesen, verstehen und verändern kann … Hach, das wäre schön.

Ja, klar, surf ist schon ziemlich dicht dran. War aber auch nicht so ganz das Richtige für mich, ich hätte einige Sachen ändern wollen. luakit hatte ich früher einige Zeit lang benutzt, dann dwb, beide auch deutlich zu dick. Damals waren die aber trotzdem ganz solide. Ich habe dann halt doch wieder lange Zeit Firefox benutzt, bis mir letzte Woche der Geduldsfaden riss. Ich will etwas Einfacheres haben.

Im Hinterkopf hatte ich, dass die genannten Browser alle WebKitGTK+ verwenden, also geschah am Wochenende das Unvermeidliche: lariza, eine Eigenentwicklung, ein wirklich ganz einfacher WebKitGTK+-Browser, der nur das können soll, was ich will und brauche. Möglichst wenig Code. Vermutlich wird dieser Browser für niemand anderen auf diesem Planeten sinnvoll sein, aber es ist auch nicht meine Absicht, das Volk glücklich zu machen. Ich möchte mein ganz persönliches Browser-Problem lösen.

Nachtrag 2014-06-21: Hmmm, eigentlich hat surf durchaus das „Nerd-Hippie-Zertifikat“ verdient und mein Opener ist falsch. Ich glaube, mein Problem mit surf war eher, dass er nicht so funktioniert, wie ich mir das vorstelle. Aber das ist ja kein Problem und auch gar nicht der Knackpunkt. Ich hätte auch surf nehmen und modifizieren können. Naja, egal, jetzt habe ich bei Null angefangen, was einen größeren Lerneffekt hatte.

Das ganze Wochenende habe ich eigentlich nur mit Hacken verbracht und ich hatte lange nicht mehr so einen Spaß. Alles hat prima funktioniert und ich hatte dann gestern Abend einen guten, funktionierenden Prototypen. Noch war nicht alles drin, was ich haben wollte, aber es sah alles sehr vielversprechend aus und eigentlich fehlten nur noch Kleinigkeiten. Zufrieden wie ich war, habe ich das Projekt auf GitHub publiziert.

Fünf Minuten nach dem „git push …“. Hmm, abgestürzt. Wieso denn das? Ein Segfault in libpixman. Kurz rumgesucht und entsprechende Bugreports von 2010 gefunden, die mein Problem beschreiben. Hmm. Okay, erstmal einen Workaround einbauen.

30 Minuten später. Abgestürzt. Was ist denn da los? Naja, es ist Sonntag Abend und auch damals ist luakit einmal im Monat abgestürzt oder so. Auch Firefox segnet manchmal das Zeitliche, wenn auch wirklich sehr selten. Vermutlich nicht weiter tragisch.

Heute auf der Arbeit habe ich dann fast ausschließlich lariza benutzt – bis auf die paar Momente, wo mir noch ein, zwei Features gefehlt haben. Fast bis zum Feierabend hatte ich nicht einen einzigen Absturz – und dann ganz kurz vor Schluss direkt zwei Stück in kurzer Zeit.

Weiter im Netz gesucht und einen Bugreport bei dwb gefunden, der ein ähnliches Problem beschreibt. In diesem Bugreport ist auch eine Webseite verlinkt, die dwb crashen soll. Ausprobiert: dwb crasht. In meinem Browser probiert: Jawohl, crasht. In luakit: Crash. In surf: Crash. Hmm… Ist das ein Arch-Problem? Ubuntu-VM aufgezogen, meinen Code kompiliert, Ergebnis: Crash. In surf unter Ubuntu probiert: Crash. Da lariza sehr klein ist, konnte ich es leicht testen: Auch die Variante „GTK+ 3 und WebKit2GTK+“ statt dem eigentlich sinnvollen „GTK+ 2 und WebKitGTK+“ (sonst geht Flash nicht) stürzt bei genau denselben Webseiten ab. Midori crasht auch. Ugh.

Besser wird’s dadurch, dass der „echte“ WebKit-Browser Safari in einem aktuellen MacOS X nicht abstürzt, irgendwie auch nicht.

Im Arch-Forum gestöbert. Mehrere Threads gefunden, in denen sich Leute über WebKitGTK+-Crashes beklagen.

So langsam dämmert mir jetzt, dass es um WebKitGTK+ derzeit überhaupt gar nicht gut bestellt ist. Zu meinen luakit-Zeiten war das noch anders und auf die Qualität von damals hatte ich mich verlassen, als ich anfing zu programmieren. Hätte ich vorher mal noch ein paar Tage lang dwb benutzt, wäre es mir vielleicht früher aufgefallen. Das ist extrem schade und frustrierend. Eigentlich ist WebKitGTK+ nämlich eine richtig tolle Sache und außerdem verdammt schnell. Ich würde das sehr, sehr gerne verwenden und meine lariza zuende bauen. Aber bei diesen vielen Abstürzen wird mir da etwas mulmig.

Vorhin habe ich mir dann noch kurz Mozillas XULRunner angeschaut. Zuerst war ich davon auch sehr angetan, bis ich einen minimalen „Browser“ (ein Fenster, das eine Webseite anzeigt) mal auf meinem Netbook gestartet hatte. Ergebnis: Eine minimale XUL-Anwendung ist genauso langsam wie der echte Firefox. Heilig’s Blechle! Was für ein Showstopper. Okay, möglicherweise war meine Annahme etwas naiv, dass Firefox der langsame Teil sei und nicht sein Unterbau. Vielleicht kann man XUL trotzdem mal im Hinterkopf behalten. Was den Spaß aber auch trübt, ist, dass ich alles in JavaScript schreiben muss und gar keinen richtigen Zugriff auf das System habe. Ich bin halt mehr so ein C-Mensch.

Tja und jetzt? Ich habe zwei Möglichkeiten: Weiterhin Firefox verwenden oder an WebKitGTK+-Patches arbeiten. Eigentlich war meine Intention ja, dass ich den Aufwand, der durch Firefox entsteht, reduzieren möchte. Wenn ich jetzt anfange, WebKitGTK+ patchen zu wollen, dann muss ich mir die Frage gefallen lassen, ob ich denn nicht mein Ziel verfehlt habe. Auf der anderen Seite ist ein maßgeschneiderter Browser natürlich extrem reizvoll und diesen Aufwand vielleicht wert. Außerdem wäre es der richtige Weg, mich um einen Patch zu bemühen. Ich bin trotzdem unschlüssig.

Meh.