Xfce4: Weather Plugin zeigt keine Daten mehr

Seit dem letzter Woche zeigte das Wetter-Plugin im Panel keine Daten mehr. Mist, so wusste ich nicht ob ich ohne Mütze rausgehen konnte… Im Ernst: Das ist zwar nur ein Goodie in Xfce, zumal ich das Wetter ja auch vom Smartphone bekomme und sogar zum Fenster raus gucken kann, aber hübsch ist es schon. Und es stört, wenn es nicht geht.

Leider ist die URL des Wetterdienstes, von dem die Daten bezogen werden, immer schon fest verdrahtet und nicht änderbar. Immer, wenn sich diese Adresse ändert, geht das Plugin nicht mehr. Aber ein anderes gibt es auch nicht für das Panel, die Leiste von Xfce.

Ich habe Xubuntu 20.04 (focal) hier laufen und gedenke das auch nicht so schnell zu updaten. Meine Suche ergab hier auf der Seite des Entwicklers, dass man die Lösung für Xubuntu 20.10 (groovy) auch für die ältere Version verwenden kann. In den Paketquellen von 20.04 ist die Version 0.8 enthalten, benötigt wird Version >= 0.10, derzeit aktuell ist 0.11. Das bekommt man mit einem PPA hin:

sudo add-apt-repository ppa:tomtomtom/xfce4-weather-plugin
sudo apt-get update
sudo apt install cfce4-weather-plugin

Ich musste danach noch das Plugin aus der Leiste löschen und neu einfügen und zusätzlich den Ort und die gewünschten Werte für die Anzeige neu konfigurieren. Fertig.

MySQL: Langsames „ALTER TABLE“?

neulich musste ich die Struktur einer Tabelle mit 20.000 Einträgen mittels phpMyAdmin ändern. Ein als „text“ definiertes Feld stellte sich als zu kurz heraus und musste in „mediumtext“ geändert werden. Dabei kommt ein mySQL-Befehl wie dieser heraus (sichtbar mit „SQL Vorschau“):

ALTER TABLE `tabelle` CHANGE `spalte` `spalte` MEDIUMTEXT CHARACTER SET utf8 COLLATE utf8_general_ci; 

Da die Anzahl der Datensätze nun nicht besonders groß ist, hoffte ich auf ein paar Sekunden Verarbeitungszeit. Weit gefehlt – wenigsten 10 Minuten war der Rechner am Arbeiten, sodass inzwischen sogar mehrmals die 23 Sekunden PHP-Laufzeit (phpMyAdmin läuft mit PHP) überschritten wurde und der Browser die Verbindung verlor. Lediglich die HD-Lampe verriet mir, dass die Sache noch im Gang war.

Später machte ich die gleiche Sache auch beim Kunden und bat die Mitarbeiter, die Finger von den tasten zu nehmen. Allerdings dauerte der Vorgang dort dann wirklich nur vielleicht 2 Sekunden. Hä?

Ich bin der Sache auf den Grund gegangen. Es liegt nicht an mySQL, auch nicht an PHP oder am Webserver. Es lag hier an der unterschiedlichen Hardwareausstattung beider Systeme! Beim Kunden läuft ein „richtiger Server“ mit viel Speicher und Tempo, bei mir nur eine etwas zu schmale Workstation mit einem Prozessor mit 2×2 GHz und 6 GB RAM.

Ein ALTER TABLE erfordert ein mehrfaches Umkopieren des gesamten Inhalts der Tabelle und ein umfängliches Handling der Indexe. Das dauert auf einer schmalen maschine eben bedeutend länger und erfordert vielleicht sogar noch Auslagerungen von Speicher. Möglicherweise kommt es auch darauf an, wie PHP und mySQL an den Webserver angebunden sind (?).

Hier bei Stackoverflow wird die Sache gut beschrieben und einige Tips sind auch dabei.

Dass mein Frontend abgeschossen wurde, weil die Laufzeit zu lang wird, hat nicht geschadet – als die HD-Lampe endlich aus blieb, reichte ein Reload und phpMyAdmin war wieder da.