Den korrekten MySQL ODBC-Treiber für deinen Linux-Server installieren

Wenn du denkst, du hast alles richtig gemacht, nachdem du einer der halb vollständigen Anleitungen da draußen gefolgt bist, und dann wirst du nach der mühseligen Installation von ein paar ODBC-Treibern doch mit der folgenden Fehlermeldung begrüßt:

[ISQL]ERROR: Could not SQLDriverConnect
[01000][unixODBC][Driver Manager]Can't open lib '/usr/local/lib/libmyodbc8w.so' : file not found
[ISQL]ERROR: Could not SQLDriverConnect

Doch tatsächlich existiert die Datei. Die Fehlermeldung ist nur etwas unpräzise und vermutlich hast du die falschen Treiber heruntergeladen. Damit dir das nicht noch mal passiert, hier eine endgültige, hoffentlich vollständige Anleitung zur Installation der MySQL-ODBC Treiber (unter Ubuntu, aber leicht übertragbar auf andere Distributionen):

WordPress Tag Cloud mit Umlauten (äöü) korrekt sortieren - Oder: Der WordPress Filter im Live-Beispiel erklärt

Keywords: #anleitung #filter #php #tagcloud #tutorial #wordcloud #wordpress

WordPress bringt von Hause aus ein Widget mit, dass die verwendeten Tags als Cloud darstellt (wer es ein wenig schöner mag, greift auf mein WordCloud Plugin zurück). Das Ganze hat nur einen Haken: Die entsprechende WordPress-Funktion wp_generate_tag_cloud nutzt aosort() als Sortierfunktion. Und die kommt mit Umlauten nicht sonderlich gut klar. Eine Lösung wäre also, die Umlaute für die Sortierung zu übersetzen, also Ä ind Ae, ö in oe und so weiter.

Mehrere virtuelle Server mit nginx und PHP-FPM für Wordpress (Teil 1 / 3)

Bisher war ich immer recht zufrieden mit der Geschwindigkeit meiner selbstgehosteten Wordpress-Seiten. Im Schnitt hat es nicht länger als 2 Sekunden gedauert, bis die Inhalte aufgebaut waren. Mal mehr, mal weniger. Und das schien mir ein akzeptabler Wert zu sein. Ich nutzte eine der üblichen Standard-Installationen, die da draußen wohl weit verbreitet ist: Apache2 mit mod_php. Der PHP-Interpreter ist dabei “Teil” des Apache2-Servers. Das ist unkompliziert und schnell zu installieren und somit einfach eine pragmatische Lösung und auch deshalb wohl sehr weit verbreitet. Aber: Die einfachsten Lösungen sind oft nicht die besten. Geschweige denn, die sichersten.

PHP - Mit welcher Methode durchsucht man ein Array am schnellsten?

Das schöne an PHP: Viele Wege führen nach Rom.

Das Problem mit PHP: Viele Wege führen nach Rom.

Denn diese Vielfallt stellt den Entwickler von Welt mituner vor eine schwierige Frage: Welcher Weg ist der kürzeste? Will man z.B. einen Wert (needle) in einem Array (haystack) suchen, gibt es in PHP zehn verschiedene Methoden. Du hast richtig gelesen: Zehn. Ich unterscheide einerseits auch die strikten und nicht-strikten Vergleiche, andererseits lasse ich die wirklich exotischen Methoden außen vor. Welche Methoden am schnellsten sind, werde ich versuchen im Folgenden herauszufinden. Außerdem schaue ich mir an ob es unter den letzten PHP-Versionen (7.0 bis 7.3*) Unterschiede in der Geschwindigkeit gibt.

Dateien von einem kaputten Android-Smartphone retten

Ich hab hier gerade ein altes LG Nexus auf dem Tisch liegen, bei dem das Display in der unteren Hälfte nach einem Sturz nicht mehr funktioniert. Und das ist ja eigentlich der Supergau. Denn für gewöhnlich schützt man sein Gerät ja mit einer Geste vor fremden Zugriffen. Das Problem ist also: Wenn früh um sechs Uhr der voreingestellte Wecker angeht, kannst du ihn nicht mehr deaktivieren. Und außerdem kommst du nicht mehr an deine Dateien ran, wenn das Smartphone, wie eben das Nexus von LG, seine Daten nicht gerade auf einer externen Speicherkarte ablegt.

Zugriff nicht loggen, wenn ein bestimmter HTTP-Request-Header gesetzt ist

OK, ich tu mich etwas schwer, das folgende in einen Titel zu gießen, der nicht länger ist, als die eigentlich Anleitung. Wenn du an deiner Webseite arbeitest, möchtest du vielleicht vermeiden, dass deine Aufrufe mit deinem Browser im Log-File von nginx landen. Dafür gibt es eine Menge Möglichkeiten, ich mag die folgende aber besonders.

Zuerst benötigst du dafür ein Plugin, um den HTTP-Request-Header zu modifizieren. Ich nutze dafür ModHeader für Firefox, für Chrome gibt es ähnliche Plugins. Dort legst du einen benutzerdefinierten Header an, dem du z.B. “true” als Wert zuweist. Bei diesem Plugin kannst du außerdem festlegen, dass der Header nur auf einer bestimmten Seite hinzugefügt wird.

Ein Blasendiagramm / Bubble Chart mit Nominal-Skala in Excel

OK. Erstmal zu den Grundlagen, damit du überhaupt weißt, warum du hier bist: Eine Blasendiagramm oder Bubble Chart erlaubt dir, Informationen mit drei Dimensionen in einem Diagramm darzustellen. Zwei Dimensionen bestimmen die Position im Diagramm anhand der X- und Y-Achse, die dritte Dimension legt fest, wie groß die Blase - neudeutsch Bubble - ist.

[caption id=“attachment_2370” align=“aligncenter” width=“300”]Blasendiagramm bzw. Bubble Chart in Excel Blasendiagramm bzw. Bubble Chart in Excel[/caption]

Das Problem ist aber, dass dieses Blasendiagramm metrische oder mindestens ordinale Daten erfordert. Also Daten, die in eine natürliche Reihenfolge gebracht werden können. Was aber, wenn du Eigenschaften nominaler Daten visualisieren willst. Also z.B. die Einwohnerzahl und Fläche von Städten?

Wordpress Debugging und Wartung oder: Keine Panik vor dem White Screen of Death und HTTP 500

Keywords: #wordpress-debugging-und-wartung-oder-keine-panik-vor-dem-white-screen-of-death-und-http-500

Deine Wordpress-Seite besteht nur aus einem weißen Bildschirm, dem HTTP-Fehlercode 500 oder lädt irsinnig langsam? White Screen of Death (WSoD), die berüchtigten 500´er sowie lange Ladezeiten scheinen zu den größten Herausforderungen im Umgang mit WordPress zu gehören und sie hinterlassen regelmäßig lange Gesichter. Zwar gehören Ladezeit, PHP- und HTTP-Fehler nicht unbedingt zusammen, sie erfordern aber in der Regel das gleiche Vorgehen: Nämlich die Analyse, was da im Hintergrund so passiert.
Die Suche nach der Ursache ist oft relativ simpel. Es sagt einem oft nur niemand. Der beliebteste Tipp bei Wordpress lautet oft:

Was ist HTTP/3 bzw. HTTP over QUIC oder kurz QUIC?

UPDATE: Eine ausführliche Version dieses Artikels erschien im August 2019 im Entwickler-Magazin.

Die meisten wissen noch nicht einmal, was HTTP/2 eigentlich ist, geschweige denn, dass es überall eingesetzt wird, da bahnt sich schon der Nachfolger an, genannt HTTP/3. Vor ein paar Jahren hat Google sich mit der Optimierung der Kommunikation im Internet beschäftigen. Früher ging daraus SPDY hervor, aus dem schließlich HTTP/2 hervorging. Das nächste Entwicklungs-Projekt aus dem Google-Labor hört nun auf den Namen QUIC - was ausgesprochen für Quick UDP Internet Connections steht.

Termine buchen im BA Friedrichshain/Kreuzberg

Frei nach dem Motto: Auch die kleinen Dinge sind wichtig, hab ich mal alle meine L33T-Haxx0r-Skillz herausgeholt und 13 Minuten in einen kleinen Bug auf den behördlichen Seiten der Berliner Bezirksämter investiert.

Willst du einen Termin beim Bezirksamt Friedrichshain/Kreuzberg von Berlin buchen, weil das telefonisch nicht möglich ist? Dann stehst du vor einer kleinen Herausforderung: Das funktioniert nämlich ausgerechnet bei diesem Bezirksamt nicht. Die Übersichtsseite für die Terminbuchung führt beim Klick auf “Termin buchen” nur zu einer lapidaren Fehlermeldung, während alle anderen Links zu funktionieren scheinen: