Fortschritt durch pkill

Fortschritt durch pkill

Letztes Wochenende habe ich wieder mal ein ISO-Image auf eine SD-Karte geschrieben, wie üblich an der Kommandozeile mit dd. Es ging um ein größeres Image, also hatte ich eine Menge Zeit um mich darüber zu ärgern dass ich den Fortschritt nicht sehe.

Heute habe ich einen Tweet gesehen der sagt dass man da in Zukunft eine Option für haben wird. Aber da wurde auch ein Workaround erwähnt den ich noch nicht kannte: mit pkill -USR1 dd kann man dem laufenden Prozess ein freundliches Signal schicken, daraufhin spuckt der seinen aktuellen Fortschritt aus. Wie das aussieht zeigt der Screenshot.

Fortschritt durch Tunnel

Fortschritt durch Tunnel

Eine andere Möglichkeit — optisch schicker, aber man das Tool ist nicht überall installiert — stellt der Pipe Viewer (pv) dar. Da teilt man sein dd auf zwei Kommandos auf und setzt das pv dazwischen.

Technisch ist das vielleicht nicht der optimale Weg, nett ist aber dass man damit universell Pipes überwachen kann, nicht nur für dd. Die Manpage hat ein paar interessante Beispiele.

Eine interessante kleine Aufgabenstellung: ein Skript hat versehentlich tausende von Dateien mit einer verkehrten Extension generiert. Alle Dateien heissen .jpgjpg statt einfach nur .jpg. Gestandene Shell-Benutzer reparieren sowas natürlich mit einem formschönen Einzeiler. Das ist einfach, und eigentlich lohnt es sich nicht da lange drüber nachzudenken. Es sei denn man kommt auf die Idee, das zeitlich zu optimieren…

Im konkreten Fall — es geht um etwa 6000 Dateien — dauert die Optimierung länger als das was an Laufzeitgewinn rauskommt. Wenn wir also schon keine Zeit gewinnen, dann wenigstens Erkenntnis. :-)

Also, mein erster Ansatz ist es intuitiv, alle Dateien zu suchen, für jede Datei den neuen Namen festzulegen und dann umzubenennen. Machen wir eine Trockenübung bei laufender Stopuhr:

Das führt zu einer Laufzeit von erstaunlichen 21,443 Sekunden!

Halbwegs moderne Shells wie die Bash beherrschen Stringmanipulation, dazu muss man nicht zwingend auf sed zurückgreifen. Im TLDP steht wie es geht, so finde ich dort unter ‚Substring Removal‘ den richtigen Ansatz:

Das drückt die Zeit für die gleichen Testdaten schon auf 0,811 Sekunden. Soweit ich weiss haben wir uns damit zwar einen Bashismus eingehandelt, aber das ist heutzutage vielleicht schon egal.

Wenn wir aber schon Kompatibilität aufgeben können wir — schliesslich sind wir in einer hochmodernen Zsh — gleich in die Vollen gehen:

Ich habe noch nie rekursives Globbing (die zsh-lovers-Manpage hat mir verraten wie das geht) benutzt, aber nach nur 0,165 Sekunden war klar: es funktioniert. :-)

Oh, da man hier auch denken könnte dass das Betriebssystem den Dateibaum cached: nein, das ist nicht so. Wenn ich die Einzeiler mehrfach absetze, auch in anderen Reihenfolgen, kommen immer wieder vergleichbare Ergebnisse raus.

Da die effizienteste Methode auch gleichzeitig die am schnellsten zu tippende ist denke ich, dass die — wenn ich auswendig gewusst hätte wie das geht — in jeder Hinsicht die erste Wahl gewesen wäre. Aber ich kenne mich: wenn ich das ein paar Tage nicht benutze muss ich erst wieder recherchieren. Und dann falle ich doch wieder auf das bewährte sed zurück…

Die Sicherheitsabfrage

Die Sicherheitsabfrage

Bei der Arbeit nutze ich Microsoft Outlook Web Access um Mails zu verschicken. Ich weiß: schön ist das nicht (es wird gelegentlich auch liebevoll Outlook Crap Access genannt), aber es gibt schlimmeres. Mittlerweile ist es so brauchbar dass ich keinen Fat Client mehr nutze um Mails zu bearbeiten.

Was mich aber immer etwas genervt hat ist, dass mailto-Links auf Webseiten nicht so richtig funktionieren wollten. Also Links mit denen sich normalerweise direkt ein Mailclient öffnen sollte. Mit externen Anwendungen geht das. Natürlich. Auch mit den voreingestellten Google- und Yahoo-Webanwendungen. Für OWA musste ich eine Weile suchen. Mittlerweile geht es, und vielleicht hilft das ja jemandem:

Man melde sich bei Web Access an. Auf diesem Tab (!) gebe man folgendes in die URL-Zeile ein:

Natürlich mit dem richtigen Servernamen. Achtung bei Copy&Paste: Firefox optimiert — vermutlich aus Sicherheitsgründen — das vorangestellte ‚javascript:‘ weg. Wenn man das nicht manuell nachträgt bekommt man nur eine Fehlermeldung.

Wenn es funktioniert sieht man am oberen Rand des Fensters eine Sicherheitsabfrage. Hier muss man bestätigen dass der Handler tatsächlich eingerichtet werden soll. Fertig. :-)

Was jetzt noch schön wäre: wenn mailto-Links autmatisch in einem neuen Fenster oder in einem neuen Tab geöffnet würden. Aber das steht wohl auf einem anderen Blatt…

Nein, eigentlich ist das kein Spaß. Das ist gruselig (ausprobiert auf einem aktuellen Debian):

Also ist true == false, ja?

Entnommen habe ich das der Diskussion um diesen — nicht minder gruseligen — Bug: md5(‚240610708‘) == md5(‚QNKCDZO‘).

Mehr zu ähnlichen ‚Features‘ hatte ich übrigens letztes Jahr schon: hier und (vor allem) hier.

Früher habe ich wirklich viel mit PHP gemacht. Über die Jahre ist mir die Sprache aber immer suspekter geworden, und ich versuche sie zu vermeiden wo immer es geht. Leider habe ich keine Python-Konkurrenz zu WordPress auf dem Schirm, und selbst für das ‚große‘ CMS sehe ich keine Patentlösung… :-(

Seit einigen Monaten habe ich den Eindruck dass es mir unangenehm sein sollte dass ich mich noch nicht mit Docker beschäftigt habe. Kaum eine IT-Zeitschrift in der das Thema nicht aufgegriffen wird, kaum eine Linux-Distribution die das nicht integriert. Nach meinem bisherigen (oberflächlichen) Verständnis bin ich auch der Ansicht dass ich mich zumindest mal damit beschäftigen muss.

Um so mehr haben mich ein paar Beobachtungen der letzten Tage irritiert.

In der letzten Woche war ich in Berlin, um die Open Source Datacenter Conference und das im Anschluss stattfindende Puppet Camp zu besuchen. In einem Talk („From ConfigManagementSucks to ConfigManagementLove“) hat Kris Buytaert die etwa 150 anwesenden Admins gefragt, wer denn Docker benutzen würde. Das Auditorium war nicht teilnahmslos, aber gemeldet hat sich tatsächlich niemand. Mich hat das echt erstaunt. Am Freitag hatte Nigel Kersten mit der kompletten Besucherschaft des Puppet Camps ein größeres Publikum, trotzdem haben sich auf die gleiche Frage wieder höchstens fünf Besucher geregt. Ich war baff.

Im Gespräch hat Nigel darauf hingewiesen dass es tatsächlich große kulturelle Unterschiede in der IT gibt. Auf eine ähnliche Frage haben beispielsweise nur etwa 10% der Anwesenden angegeben dass sie ihr Business in einer Cloud betreiben. Die Quote läge im Silicon Valley eher bei 90%. So dachte ich mir, dass die Verteilung bei Container-Technologie ähnlich liegen würde.

Bis Heute jemand einen meiner Tweets aus der letzten Woche zitiert hat (sowas ist noch nie passiert, und meine neugierigen Einstellungen haben daraus eine ziemliche Mail-Welle in meinem Postfach gemacht). Als Antwort auf einen Besucher der Interop, der genau die gleiche Beobachtung machen konnte wie ich. Bei einer größeren Veranstaltung, in Las Vegas.

Mit was für Leuten der da zusammen sitzt kann ich natürlich nicht beurteilen. Ich beabsichtige auch weiter, mich mal ernsthaft damit zu beschäftigen. Interessant ist der Ansatz allemal. Aber ich habe nicht mehr den Eindruck dass es mir unangenehm sein muss das noch nicht getan zu haben…

Die echte Manpage

Die echte Manpage

Linux- und Unix-Systeme haben unter anderem den Vorteil, mit Man-Pages eine umfassende Dokumentation mitzubringen. Als Lektüre taugen die wenigsten, aber als Referenz sind sie unabkömmlich.

Wer mit dem Versionsverwaltungssystem git arbeitet hat sich vielleicht schon mal durch git-Manpages gekämpft. Die sind auch umfassend und informativ, wimmeln aber dermaßen von Fach-Chinesisch dass man wirklich eine Menge Vorbildung braucht um die Informationen wirklich abgreifen zu können. Ich persönlich sehe gerne auf diesen Überblick, totalen Einsteigern hilft diese Seite.

Um so lustiger, dass jemand einen Generator gebaut hat um fiktive git-Kommandos zu dokumentieren. So wird man sonst nirgends Beschreibungen von git-drug-tip(1) oder git-proofread-archive(1) bekommen… :-D

Sans Bullshit Sans

Sans Bullshit Sans

Viele kennen, lieben und benutzen das Wort Bullshit-Bingo im Zusammenhang mit Meetings, manchen auch als Buzzword-Bingo bekannt. Einige kennen auch den dazugehörigen Dilbert-Comic von 1994.

Neu ist ein Font namens Sans Bullshit Sans. Der nutzt die Ligatur-Funktion in dem Font, aber nicht um typographisch zusammengehörende Buchstaben zusammenzufassen, sondern er fasst gleich ganze Worte zu Bullshit-Labels zusammen. Wie das aussieht kann man im Screenshot sehen, da habe ich den Satz aus dem genannten Dilbert eingegeben. :-)

Den Font kann man als Systemschriftart installieren, so kann man seinen Browser dahingehend tunen dass Marketing- und Management-Worthülsen stylish weggefiltert werden.

Einstellungen in der App

Einstellungen in der App

Da ich da gerade eine Weile mit gekämpft habe: es ist tatsächlich auch mit der aktuellen Version der WordPress-App auf Android möglich, sich mit einem Blog zu verbinden dessen Administration hinter einer Base Authentication steckt.

Mein Blog wird von einem Nginx-Webserver ausgeliefert, und dem habe ich gesagt dass der Zugriff auf das Verzeichnis /wp-admin/ und die Datei /xmlrpc.php passwortgeschützt sein soll. Ich habe — wie vermutlich jeder andere WordPress-Betreiber auch — sonst erschreckend viele Anmeldeversuche aus aller Welt. Das muss nicht sein.

Aus Gründenâ„¢ habe ich Heute mal versucht, die WordPress-App zu benutzen. Die Anmeldung am Blog war nicht einfach, und die Fehlermeldung war irgendwo zwischen Nichtssagend und nicht vorhanden. In den Logs auf dem Server habe ich gesehen dass es Abrufe gab, aber die wurden nur mit einem 401 quittiert. Die App hat mich nicht nach den Credentials gefragt.

Da das nicht intuitiv ist, und da ich gerade auch nicht mehr die Seite finde die mich darauf hingewiesen hat: es funktioniert wenn man in der App nicht nur die URL des Blogs angibt, sondern den vollen Pfad zur Schnittstelle. Also in meinem Beispiel https://blog.schatenseite.de/xmlrpc.php. Nach dem ersten Verbindungsaufruf wird man dann nach Name und Passwort gefragt, alles ist gut.

Bislang hatte ich echt Glück mit meinen Notebooks. Die Platten sind stabil geblieben, und auch die Software hat mich nicht hängen gelassen. Backups habe ich sträflich vernachlässigt. Ich habe welche gemacht, ja. Aber manuell, und somit nur alle paar Monate mal. Mea Culpa.

OK, jetzt also richtig. Und mit meinem Werkzeugkasten.

Mein Handy sichere ich schon seit ich Android benutze mit rsync. Alle verwertbaren Daten werden so nachts in ein Verzeichnis auf meinem Backup-Server gesynct. Da habe ich also immer eine Kopie des aktuellen Standes. Um auch historische Versionen zu haben sichere ich dieses Verzeichnis auf dem Server nochmal mit dirvish. Das macht sogenannte Hardlink-Backups, so dass ich mehrere historische Stände haben kann in denen identische Dateien nicht mehrfach Plattenplatz brauchen.

So ähnlich machen wir das jetzt auch mit dem Notebook. weiterlesen