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…

Mein erster PC war ein Schneider PC1512 (eigentlich Amstrad), der hat bei mir 1989 den CPC464 abgelöst. CGA hatte der sowieso, ich hatte den sogar mit Farb-Bildschirm. Und der war durch eine 20MB-Platte, 640kB RAM und eine NEC V30 CPU aufgerüstet bis an die Zähne. Ein Bolide. :-)
Der hätte den Ur-PC von 1981 locker an die Wand gerechnet. Um so erstaunlicher finde ich diese Demo: 8088 MPH. Unglaublich, was die aus so einer alten Kiste herauskitzeln! Klar, auf C64 wäre das ein alter Hut. Aber der hat für diese spezielle Aufgabe auch die bessere Hardware. PCs waren Anfang der 80er noch alles andere als Spielmaschinen…

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

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

Heutzutage fallen an allen möglichen Stellen irgendwelche Daten im JSON-Format an. Und das ist gut so. Trägt nicht so auf wie XML, ist dafür aber flexibler — und vor allem besser definiert — als irgendwelche selbstausgedachten CSV- oder INI-Formate.

Man ist schlecht beraten, zu versuchen dermassen komplexe Formate mit Shell-Tools wie awk, sed oder grep zu Leibe zu rücken. Reguläre Ausdrücke sind eine tolle Sache, aber in dieser Situation fallen die einem früher oder später auf den Fuß. Bislang habe ich meist eine Sprache mit P bemüht: Python, Perl oder zur Not PHP. Die können JSON importieren, danach arbeitet man auf den gewohnten Datenstrukturen. Also auf Arrays und Objekten, und die kann man schön sauber nach dem durchkämmen was man sucht.

Jetzt hat aber ein neues Tool seinen Weg in meinen Werkzeugkasten gefunden: jq. weiterlesen

Test bestanden

Test bestanden

Ich habe schon viel zu lange vor mir hergeschoben mich mal mit IPv6 zu beschäftigen. Raketentechnik, unumgänglich aber kompliziert.

So kompliziert ist es gar nicht. Zumindest nicht der Einstieg, ich weiß noch nicht welche Fallstricke da noch auf mich zu kommen. Und der Komplexität gegenüber stehen einige Vorteile die man sich — zumindest als Heimanwender — mit IPv4 nur träumen lassen konnte.

Ich habe mir letzte Tage einen Zugang bei SixXS geklickt. Das kostet nichts, und das ist einer der gängigen Wege wenn einem der Provider kein V6 zur Verfügung stellt. Richtig einfach ist das — so habe ich gehört — für DSL-Kunden die beispielsweise eine FritzBox ihr Eigen nennen. Da kann man die Tunnel-Infos einfach reinhacken und ist fertig.

Bei mir hat sich das etwas komplizierter gestaltet. Ich bin LTE-Kunde bei der Telekom. So kann ich als Router nur den mitgelieferten SpeedPort benutzen. Dahinter nutze ich pfSense als Firewall. Die kann ich allgemein sehr empfehlen, aber in diesem Fall fehlt noch ein Feature: die Telekom versteckt mich hinter einem NAT, also kann ich nur einen sogenannten AYIYA-Tunnel benutzen. Den unterstützt pfSense ab Werk nicht, aber mit diesem Forumseintrag konnte ich das Teil so weit hacken dass es doch irgendwie geht.

Tanzende Schildkröte

Tanzende Schildkröte

Das Ergebnis ist: die Schildkröte tanzt! Endlich! :-)

Einer der angesprochenen Vorteile ist jetzt zum Beispiel, dass ich zu Hause ein ganzes Netz von öffentlich gültigen IP-Adressen habe. So kann ich im Firewall beispielsweise einen SSH-Zugang auf einen meiner Heimrechner freigeben und mich auf die Weise jederzeit zu Hause anmelden. Mit einem ansonsten geNATteten Internetzugang erfordert das sonst Tricksereien mit AutoSSH und einem Gegenpunkt im Netz. Geht auch, aber so ist es komfortabler. Und Raketentechnik… :-D

Nur ganz kurz: ich habe schon öfter die Herausforderung gehabt, in Shell-Skripten human-readable Dateigrößen in Bytes umzurechnen, damit man den Wert einfach ans Monitoring übergeben kann.
Bislang habe ich das Problem immer mit einer Hand voll Awk beworfen. Heute habe ich ein passendes Tool gefunden, und man kann sogar einstellen ob man Geek-Kilo oder normale Kilo haben will:

% echo 1234K | numfmt --from=si
1234000
% echo 1234K | numfmt --from=iec
1263616

Auf einem etwas angestaubten Debian (Squeeze) habe ich dieses Tool noch nicht, auf aktuelleren Systemen gehört das aber offenbar zu den coreutils. Kennt jemand eine bessere Lösung?