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.
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.
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.
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.
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.
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.
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[/caption]
Das Problem ist aber, dass dieses Blasendiagramm metrische oder mindestens ordinale Daten erfordert.
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.
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.
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: