Knapp zwei Jahren wurde dieses Blog durch HHVM angetrieben. Obwohl die Unterstützung vieler PHP-Funktionen in der Vergangenheit nicht immer zufriedenstellend war, so war die Geschwindigkeit doch immer ein Hauptvorteil von HHVM. Mit zunehmender Serviceanzahl, drängte sich jedoch ein Problem immer mehr in den Vordergrund: viele Dienste benötigen einen Cronjob, welche ebenfalls in PHP realisiert sind. HHVM per CLI ist einfach zu speicherhungrig. Den Speicherhunger kann man schön in folgender Grafik erkennen:
[Mehr]pfSense: Update auf Version 2.3.1_5 schlägt fehl
Speziell auf NanoBSD, der auf ALIX-Boards eingesetzten pfSense-Variante schlägt das Update auf die Version 2.3.1_5 über die Verwaltungswebseite und auch über die Shell fehlt. Nach dem Duplizieren des Slice scheint der Updateprozess zu hängen, es dauert sehr lange, bis einfach nur ein “Failed” ausgegeben wird.
Der Updateprozess startet das Update im Slice als chroot-Umgebung. Durch einen Bug ist dort manchmal unter NanoBSD keine resolv.conf vorhanden, welche zum Auflösen von Hostnamen erforderlich ist. Downloads können dann nicht ausgeführt werden. Der Fehler ist mittlerweile bekannt.
[Mehr]Löffelsprache mit sed
Vielleicht kennen einige die sogenannte Löffelsprache, bei der es sich um eine spielerische Modifikation der Sprache handelt. Die Regeln sind einfach: hinter jeden Vokal wird “lef” gesetzt und der Vokal wiederholt (andere Variationen benutzen “lew” oder auch “low”). Diphthonge werden insgesamt behandelt. Hinter sie wird ebenfalls ein “lef” gesetzt und der Diphthong wiederholt. Ein Beispiel: Aus “Jens Tautenhahn” wird “Jelefens Taulefautelefenhalefahn”. Die Vokale und Diphthonge hinter denen “lef” eingefügt wird sind fett markiert.
[Mehr]WordPress Themes: leere Live-Vorschau neuer Themen
Bei der Live-Vorschau von neuen Themen in WordPress kann es vorkommen, dass zwar die linke Sidebar für die Themeneinstellungen angezeigt wird, die eigentliche Anzeige aber leer bleibt.
Dieses Verhalten kann folgende Ursache haben:
- das Plugin Widget Logic wird verwendet
- im neuen Vorschau-Theme werden vorhandene Widgets angezeigt
- in den Widget-Logic-Einstellungen dieser Widgets wird eine eigene Funktion aus der functions.php verwendet, welche aber im Vorschau-Theme nicht vorhanden ist
Dadurch tritt ein Fehler auf und die Vorschau wird nicht angezeigt, der Vorschaubereich bleibt leer.
[Mehr]Besucher-IP über WebRTC ermittelbar
Mit WebRTC und Browsern, die dieses Protokoll implementieren (aktuell Firefox und Chrome) ist es sehr einfach möglich, die IP-Adressen der Besucher zu ermitteln. Kleine Demo gefällig? Bitteschön:
Deine lokalen IP-Adressen:
(Skript funktioniert nicht mehr)
Deine öffentliche IP-Adresse:
(Skript funktioniert nicht mehr)
Deine IPv6-Adressen:
(Skript funktioniert nicht mehr)
Diese Abfrage kann nicht durch Ghostery oder Adblocker verhindert werden. Sie wird ebenfalls ausserhalb der normalen XMLHttpRequest-Prozedur ausgeführt und ist in der Developer-Console von Firefox oder Chrome nicht sichtbar. Das Abschalten von JavaScript hilft, macht jedoch viele Webseiten mittlerweile unbenutzbar.
[Mehr]Gezähmter HHVM
HHVM ist eine virtuelle Maschine für HipTop, welches PHP-Skripte in Maschinencode übersetzt und anschließend ausführt. Die übersetzten Skripte werden gespeichert und bei wiederholtem Aufrufwerden die bereits übersetzte Programm ausgeführt. Dadurch ergibt sich eine extreme Leistungssteigerung gegenüber der bisher üblichen Methode, PHP-Skripte durch mod_php oder PHP per FastCGI immer wieder neu zu analysieren und auszuführen.
[Mehr]Verbessertes Ranking durch HSTS
Nach der Umstellung auf Zertifikate von Let’s Encrypt hat sich das Ranking des Blogs in Bezug auf sichere Transportverschlüsselung gegenüber der vorherigen Konfiguration weiter erhöht. Gründe dafür sind der verwendete Signaturalgorithmus SHA256 für den Zertifikatskey und der Einsatz von HSTS.
HSTS kann in Nginx ganz einfach mit einer einzigen Zeile an entsprechender Stelle aktivieren werden:
add_header Strict-Transport-Security max-age=31536000;
Dadurch wird festgelegt, dass der Browser für den angegebenen Zeitraum (hier 31536000 Sekunden = 365 Tage) ausschließlich verschlüsselte Verbindungen mit dieser Domain nutzt. Da diese Einstellung im Browser des Besuchers gespeichert wird, sollte vor der Aktivierung unbedingt getestet werden, ob auf der Webseite auch wirklich nur Ressourcen eingebunden sind, die per HTTPS abgerufen werden können.
[Mehr]EdgeRouter am Telekom-Internetanschluss mit Entertain und IPv6
Die Telekom stellt bei bei neuen Internetanschlüssen IPv4 und IPv6 im Dualstack-Betrieb bereit. Der Internet-Verkehr läuft komplett über VLAN 7. Entertain, der IPTV-Dienst der Telekom, wird hauptsächlich über VLAN 8 betrieben. Im folgenden Beispiel möchte ich die Konfiguration eines EdgeRouter lite mit IPv4 über PPPOE, IPv6 und IPTV beschreiben.
Meine Konfiguration für die nachfolgenden Beispiele am EdgeRouter:
- EdgeRouter lite Firmware Version 1.7.0
- eth0 … interne Netzwerkschnittstelle (LAN)
- eth1 … externe Netzwerkschnittstelle zum DSL-Modem (WAN)
Backup der VMs im laufenden Betrieb mit libvirt
Mit libvirt bzw. deren Kommandozeilen-Interface virsh kann ein Backup der VMs im laufenden Betrieb durchgeführt werden. Das nachfolgende Script stellt ein Grundgerüst, angeregt durch einen Artikel von Christian Rößner, für ein Backup nach der folgenden Methode zur Verfügung:
Es wird zuerst ein Snapshot aller Volumes einer VM angelegt. Dadurch besteht jedes Volume aus (mindestens) zwei Dateien: eine Datei mit den originalen Daten und eine zweite Datei, welche alle Änderungen gegenüber dem Originalvolume ab dem Erstellen des Snapshots enthält. Das Originalvolume wird bei aktivem Snapshot nicht mehr beschrieben, es kann nun problemlos gesichert werden. Zum Kopieren kann “cp -f –sparse=always …” oder, sofern verfügbar, “rsync –sparse …” zum Einsatz kommen. Beide Kommandos behandeln freien Platz in den Volumes optimal, rsync ist jedoch um einiges schneller, wenn im Backup-Verzeichnis bereits vom vorherigen Backup schon die gleiche Datei vorhanden ist, da dann nur die Änderungen kopiert werden. Anschließend werden mit einem sogenannten Blockcommit die im Snapshot als Änderungen geschriebene Blöcke in das Originalvolume wieder eingearbeitet. Das alles kann im laufenden Betrieb vom Host der VMs aus durchgeführt werden.
[Mehr]Seitenumbruch in WordPress
Beim Schreiben von längeren Artikeln ist es hilfreich, den Inhalt mit einem Seitenumbruch auf mehrere Seiten aufzuteilen. Das verhindert auf der einen Seite ein endloses Scrollen durch einen langen Text und auf der anderen Seite wird damit auch die Absprungrate gesenkt, da zum Lesen des ganzen Artikels mindestens eine weitere Seite des Artikels angezeigt werden muss.
WordPress beinhaltet dieses Feature bereits. Die Toolbar des WordPress-Editors enhält dazu leider keinen entsprechenden Button, jedoch kann man durch Eingabe von im Textmodus des Editors einen Seitenumbruch einfügen. Im visuellen Modus drückt man dazu die Tastenkombination ++.
[Mehr]