Javascript Promises erleichtern die Programmierung von Funktionen zur Behandlung von asynchronen Ereignissen.
Flex’ Schwester: die Grid-Box
Grid-Boxen ähneln in vieler Hinsicht den Flex-Boxen, sind aber speziell darauf ausgerichtet, Elemente in zwei Dimensionen, also einem Raster anzuordnen.
Flex-Box enschlüsselt
Will man Elemente auf eine Web-Seite horizontal oder vertikal anordnen und ausrichten, galt in der html-Urzeit die Tabelle als Mittel der Wahl. Das kann aber schnell unübersichtlich werden, besonders wenn man mehr oder weniger schmutzige Tricks anwenden muss, um ein bestimmtes Verhalten zu erzwingen. Gerade die Realisierung von Responsive Designs, also Seiten, die sich der… Flex-Box enschlüsselt weiterlesen
Navigationsmenüs in WordPress
In WordPress werden Navigationsmenüs unabhängig von ihrer Position erzeugt und gefüllt. Die Position wird später definiert. Die folgende Prozedur ist eine Möglichkeit, ein Navigationsmenu anzulegen und als Hauptmenü darzustellen:
Xdebug für AJAX-Calls
Für das Debugging per XDebug nutze ich Browser-Helper wie den „Xdebug Starter” für Firefox. Der Starter sendet, wenn „Debugging” ausgewählt wurde, automatisch einen Cookie mit einem XDEBUG_SESSION-Eintrag, der Xdebug anweist, eine Debug-Session zu starten und sich mit dem konfigurierten Debug-Host und Port zu verbinden. Das klappt aber leider nicht ohne weiteres bei AJAX-Calls.
Entwicklungsumgebung für WordPress mit Xdebug unter Docker
Ich entwickle mit vscode unter Linux von Zeit zu Zeit Themes oder Plugins für WordPress. Für Tests und Debugging braucht man früher oder später eine spezielle Umgebung, in der man sein Projekt in der WordPress-Umgebung laufen lassen, testen und debuggen kann. Vscode bietet alle Tools, um eine solche Umgebung unter Docker einzurichten und zu verwalten.
RAID1-NAS-Laufwerk nachträglich verschlüsseln
In meinem Openmediavault-NAS läuft schon seit einiger Zeit ein RAID1-Array aus zwei 2TB-Platten. Darauf landen alle Backups aus meinem EDV-Zoo. Als Schutz gegen neugierige Diebe soll der Inhalt nun nachträglich verschlüsselt werden. Leider geht das nicht einfach auf Knopfdruck. Einziger gangbarer Weg scheint folgender zu sein: Ausgangspunkt ist ein mit der Openmediavault-GUI erzeugtes unverschlüsseltes RAID1 aus… RAID1-NAS-Laufwerk nachträglich verschlüsseln weiterlesen
Tab-Index für Custom Widgets in QtDesigner
Im QtDesigner kann man den Tab-Index der Widgets, also die Reihenfolge, in der sie beim Drücken der Tab-Taste den Fokus erhalten, ganz einfach bearbeiten. Dazu wählt man im Menü „Bearbeiten” den Punkt „Tabulatorreihenfolge bearbeiten” aus und klickt dann in der gewünschten Reihenfolge auf die Widgets. (zurück zur Widget-Bearbeitung geht’s dann mit F3 oder „Bearbeiten” ->… Tab-Index für Custom Widgets in QtDesigner weiterlesen
Internationalisierung in PyQt mit QtDesigner et al
Mit dem Qt Designer lassen sich grafische Oberflächen von Programmen leicht erstellen, auch für die PyQt-Bibliothek von Python. Allerdings wird die GUI immer nur in einer Sprache erstellt. Zur Laufzeit wäre es sehr aufwändig, die Texte mit den üblichen Mitteln wie gnu gettext auszutauschen. Qt sieht für dieses Problem den Qt Translator vor.
PyQt6 und QTDesigner
Einbindung von Custom Widgets PyQt6, die aktuelle Version der Qt-Bibliothek für Python, lässt sich ohne Probleme mit dem QtDesigner zusammen nutzen. Mit dem QtDesigner lässt sich die Bedienoberfläche einer Python-Applikation in einem grafischen Tool relativ einfach zusammensetzen. Es hakt zwar an der einen oder anderen Stelle, aber notfalls bleibt immer noch das händische Editieren der… PyQt6 und QTDesigner weiterlesen