Projekte

Einrichten von WordPress mit Docker auf dem Raspberry Pi

Dieser Blog läuft seit dem 09. April 2019 auf einem Raspberry Pi und ist seitdem erstaunlicherweise sehr stabil. WordPress nutzt auch nicht allzu viele Ressourcen, insbesondere für meinen Anwendungsfall, da ich nicht hunderte von Zugriffen pro Tag erwarte, sodass freie Kapazitäten für andere Anwendungen möglich sind.

Das jetzige Setup beinhaltet eine out-of-the-box WordPress Installation mit docker-compose und einem Backup Skript welches die Daten in die private Dropbox cloud laden. In dieser Blog Serie würde ich gerne einen kleinen EInblick in meine Installation geben und euch zeigen, wie ihr euch dies selbst einrichten könnt.

Kürzlich veröffentlicht

Subtiler Unterschied zwischen einem Dockerfile und einer dockercompose Datei – Variablen im Entrypoint Direktiv

Subtiler Unterschied zwischen einem Dockerfile und einer dockercompose Datei – Variablen im Entrypoint Direktiv

Hung ManhMay 31, 20243 min read

TLDR: Variablen in Entrypoints sollten escaped werden. Dies kann durch die Verwendung eines zweiten $ erreicht werden. Hintergrund Beim Einrichten eines Spark Thrift Servers stieß ich auf ein – im Nachhinein betrachtet – offensichtliches Versehen. Ich würde immer den folgenden…

Spark – Fehler mit UTF8 Kodierung im Docker Image

Spark – Fehler mit UTF8 Kodierung im Docker Image

Hung ManhMar 24, 20244 min read

Im Deutschen gibt es Sonderzeichen, die als Umlaute bekannt sind, unter anderem z.B. ä, ü, ö. Wenn das System nicht korrekt eingestellt ist, kann die Kodierung dieser Zeichen zu einem Informationsverlust führen. Sehen wir uns ein praktisches Beispiel an, bei…

Spark – java.nio.channels.UnresolvedAddressException

Spark – java.nio.channels.UnresolvedAddressException

Hung ManhFeb 1, 20244 min read

Eine sehr kurze Beschreibung des folgenden Fehlers, der anscheinend auch bei dem folgendem Benutzer aufgetreten ist und dokumentiert wurde (github). Dieser Fehlercode kann in verschiedenen Szenarien auftreten. In meiner speziellen Situation war die Lösung jedoch uim Glück ganz simpel Setup…

Exasol – object XXX not found

Exasol – object XXX not found

Hung ManhJan 20, 20242 min read

TLDR: Indentifiers in Exasol werden intern in Großbuchstaben gespeichert. Attribute in der Selektanweisung sollten in Anführungszeichen gesetzt werden. Beobachtung In Exasol habe ich eine benutzerdefinierte Python-Funktion erstellt und zwar wie folgt: CREATE OR REPLACE PYTHON3 SCALAR SCRIPT “SCHEMA”.”PARSE_XML” (“xml” VARCHAR(2000000)…

dummy-img

Migration einer WordPress-Seite auf eine andere Domain – hungsblog wird international

Hung ManhOct 29, 20236 min read

Seit einigen Jahren schon ist hungsblog unter der Top Level Domain .de verfügbar. Vor kurzem konnte ich jedoch die entsprechende .com erwerben. Ich war natürlich sehr begeistert, die Website von der einen auf die andere Domain zu migrieren und freue…

dummy-img

Python – Pass by object: Praktische Fallstricke

Hung ManhSep 19, 20233 min read

Innerhalb einer Schleife habe ich mehrfach auf ein Objekt in einem Dictionary zugegriffen, es transformiert und visualisiert. Die Absicht war, dass alle Transformationen voneinander isoliert bleiben sollten. Was aber tatsächlich passierte, war, dass sich diese Transformationen aufgrund von Pythons “Pass…

dummy-img

Signalverarbeitung – Filter

Hung ManhAug 24, 20232 min read

Da ich noch nie wirklich mit Signalen gearbeitet habe, brauchte ich zunächst ein grundlegendes Verständnis von Filtern. Im Folgenden sind meine Notizen über Tiefpass- und Hochpassfilter aus dem Youtube-Video von ritvikmath. Terminologie niedrige Frequenz: das Signal ändert sich im Laufe…

Wie man zwei Zeitstempel in gleiche Teile teilt

Wie man zwei Zeitstempel in gleiche Teile teilt

Hung ManhAug 9, 20233 min read

TLDR: pd.date_range(start=s, end=e, periods=period) Problem Wie kann man gleichmäßige Zeitabstände zwischen zwei Zeitstempeln erzeugen? Mein erster Gedanke, wenn es darum geht, gleichmäßig verteilte Zahlen zu erstellen, ist die Verwendung von linspace. Dazu müssten die Datumsangaben in Unix-Zeitstempel umgewandelt, die entsprechenden…

Doppelte Schlüssel bei der Erstellung einer Json aus einem Python Dict

Doppelte Schlüssel bei der Erstellung einer Json aus einem Python Dict

Hung ManhJan 25, 20232 min read

TLDR: Ein dictionary in json behandelt alle Schlüssel als String, während ein Python Dictionay nicht nur zwischen dem Inhalt, sondern auch dem Datentyp unterscheidet (siehe Stackoverflow). Wenn man ein Dictionary in einem json speichert und das Dictionary daraus wieder lädt,…

ChatGPT als Debug Assistant

ChatGPT als Debug Assistant

Hung ManhJan 14, 20235 min read

Ich habe versucht, einen Flask Restful Endpoint mit dem webargs-Framework zu implementieren, welches ich bereits 2020 verwendet habe. Obwohl ich den alten Code kopiert und einige winzige Anpassungen am Request-Aufruf vorgenommen habe, konnte ich ihn 2023 nicht mehr zum Laufen…

Kürzlich veröffentliche Beiträge

Data Engineering & Tools

Subtiler Unterschied zwischen einem Dockerfile und einer dockercompose Datei – Variablen im Entrypoint Direktiv

TLDR: Variablen in Entrypoints sollten escaped werden. Dies kann durch die Verwendung eines zweiten $ erreicht werden. Hintergrund Beim Einrichten eines Spark Thrift Servers stieß ich auf ein – im Nachhinein betrachtet – offensichtliches Versehen. Ich würde immer den folgenden Fehler erhalten, der an sich nur ein Nebeneffekt davon ist,…

Weiterlesen
Data Engineering & Tools

Spark – Fehler mit UTF8 Kodierung im Docker Image

Im Deutschen gibt es Sonderzeichen, die als Umlaute bekannt sind, unter anderem z.B. ä, ü, ö. Wenn das System nicht korrekt eingestellt ist, kann die Kodierung dieser Zeichen zu einem Informationsverlust führen. Sehen wir uns ein praktisches Beispiel an, bei dem eine solche Fehlkonfiguration zu Problemen in einer Spark-Pipeline geführt…

Weiterlesen
Data Engineering & Tools

Spark – java.nio.channels.UnresolvedAddressException

Eine sehr kurze Beschreibung des folgenden Fehlers, der anscheinend auch bei dem folgendem Benutzer aufgetreten ist und dokumentiert wurde (github). Dieser Fehlercode kann in verschiedenen Szenarien auftreten. In meiner speziellen Situation war die Lösung jedoch uim Glück ganz simpel Setup Ich führe ein Spark-Image (spark:3.5.0-scala2.12-java11-python3-ubuntu) in einem Docker Compose aus….

Weiterlesen
Data Engineering & Tools

Exasol – object XXX not found

TLDR: Indentifiers in Exasol werden intern in Großbuchstaben gespeichert. Attribute in der Selektanweisung sollten in Anführungszeichen gesetzt werden. Beobachtung In Exasol habe ich eine benutzerdefinierte Python-Funktion erstellt und zwar wie folgt: CREATE OR REPLACE PYTHON3 SCALAR SCRIPT “SCHEMA”.”PARSE_XML” (“xml” VARCHAR(2000000) UTF8) EMITS (“parsed_column” VARCHAR(2000000) UTF8) AS # Python script Dann…

Weiterlesen
Data Engineering & Tools

Python – Pass by object: Praktische Fallstricke

Innerhalb einer Schleife habe ich mehrfach auf ein Objekt in einem Dictionary zugegriffen, es transformiert und visualisiert. Die Absicht war, dass alle Transformationen voneinander isoliert bleiben sollten. Was aber tatsächlich passierte, war, dass sich diese Transformationen aufgrund von Pythons “Pass by object reference”-Verhalten kummulierten. Schauen wir uns das mal an:…

Weiterlesen
1 2
Learnings |  Machine Learning Engineering

Signalverarbeitung – Filter

Da ich noch nie wirklich mit Signalen gearbeitet habe, brauchte ich zunächst ein grundlegendes Verständnis von Filtern. Im Folgenden sind meine Notizen über Tiefpass- und Hochpassfilter aus dem Youtube-Video von ritvikmath. Terminologie niedrige Frequenz: das Signal ändert sich im Laufe der Zeit nicht sehr stark hohe Frequenz: das Signal ändert…

Weiterlesen
Machine Learning Engineering |  Troubleshooting

Pytorch – Skalartyp Float erwartet, aber Double gefunden

TLDR: Der Standard-Datentyp eines Numpy-Arrays ist double/float64. Wenn ein Tensor aus diesem Array mit torch.as_tensor() erstellt wird, nimmt er diesen Datentyp an. Der Standarddatentyp eines neuronalen Netzwerkmodells ist allerdings float32. Die Verwendung des float64 Tensors als Eingabe für das NN-Modell ist somit nicht kompatibel und führt zu der entsprechenden Fehlermeldung…

Weiterlesen
Machine Learning Engineering |  Troubleshooting

Fehler beim Training eines Languagemodels – RuntimeError the expanded size of the tensor (100) must match the existing size (64) at non singleton dimension 1.

Kontext Ich habe ein neues Sprachmodell von Grund auf mit dem Huggingface-Frameworkes und einem vorkonfiguriertem Roberta-Modells auf einem eigenen Datensatz trainiert. Nun wollt ich einen neuen Datensatz mit Hilfe des trainierten Modells vektorisieren. Beobachtung Es trat ein Fehler auf: RuntimeError the expanded size of the tensor (100) must match the…

Weiterlesen
Machine Learning Engineering |  Troubleshooting

SentenceTransformer – float object is not subscriptable

TLDR: np.nan Objekte sind fom Typ float Beobachtung Um numerische Repräsentationen für Dokumente (sogenannte Embeddings) zu erstellen habe ich mich dem SentenceTransformer (v2.2.0) bedient, allerdings wurde in vereinzelten Fällen der Fehler “TypeError: ‘float’ object is not subscriptable” geworfen. Der traceback bezieht sich auf die tokenizer Funktion, die wir uns hier…

Weiterlesen
Learnings |  Machine Learning Engineering

Visuelle Erklärung der Multi-Head Attention

Warum ändert sich bei einer Änderung der Anzahl der Heads eines Transformermodell nicht dessen Anzahl an Parametern? – Das war die Frage, die ich mir gestellt habe. Nachdem ich die entsprechende Matrizenmultiplikation nachvollzogen und zu einem entsprechendem Ergebnis gekommen bin, möchte ich dieses Wissen weitergeben und versuchen, den Multi Head…

Weiterlesen
How to |  Machine Learning Engineering

Evaluierung des Trainers der Transformer Bibliothek

Innerhalb des Transformer Frameworkes kann ein Trainer Objekt lästigen Code für die Konfiguration der Traningspipeline einsparen. Mit den TrainingArguments können zusätzliche Parameter eingestellt werden. Eine der wichtigen Argumente ist die evaluation_strategy, welche als Standartwert “no” besitzt. Dies besagt, dass keine Evaluation während des Trainings stattefindet. Diese kann entsprechend umgestelllt werden…

Weiterlesen
Andere |  Troubleshooting

ChatGPT als Debug Assistant

Ich habe versucht, einen Flask Restful Endpoint mit dem webargs-Framework zu implementieren, welches ich bereits 2020 verwendet habe. Obwohl ich den alten Code kopiert und einige winzige Anpassungen am Request-Aufruf vorgenommen habe, konnte ich ihn 2023 nicht mehr zum Laufen bringen. Indem ich ChatGPT um Hilfe bat, erlangte ich ein…

Weiterlesen
Andere |  Learnings

WSL 2 auf Windows 10 – Aktivieren Sie das Windows-Feature “VM-Plattform”, und stellen Sie sicher, dass die Virtualisierung im BIOS aktiviert ist.

Vor einiger Zeit habe ich WSL 2 auf Windows 10 korrekt installiert, ausgeführt und auch damit gearbeitet. Allerdings habe ich danach mit dem Android-Emulator BlueStack herumgespielt, der Hyper-V verwendet. Nachdem ich alle Einstellungen vorgenommen hatte, um BlueStack zum Laufen zu bringen, stellte ich fest, dass mein WSL 2 nicht mehr…

Weiterlesen
Andere |  How to

#3 WordPress backup und was zu beachten ist

Es gibt verschiedene Möglichkeiten ein Backup von WordPress zu erstellen, je nach dem wie viel Vorwissen und Nutzerrechte vorhanden sind. In diesem Post möchte ich einige Möglichkeiten durchgehen. Dazu müssen wir wissen, was wir überhaupt sichern müssen und wie wir dies tun können. Aktuell habe ich ein automatisiertes Backup Skript…

Weiterlesen
Andere |  How to

#2 Allgemeine Probleme und Migration

Das Repository sollte direkt out-of-the-box eine lauffähige WordPress Instanz erstellen. In diesem Post möchte ich jedoch über allgemeine Fehlerbehandlung und Probleme berichten, die mir bei der Vorbereitung der Images unter gekommen sind. Ich kann keine Bilder hochladen oder plugins runterladen. Caddy funktioniert nicht mehr, startet jedes mal neu. Migration Wieso…

Weiterlesen
Andere |  Technologie

#0 Einführung in Docker und WordPress

Dieser Post soll eine kurze Einführung zu Docker und WordPress sowie die darunterliegenden Services geben und veranschaulichen wie diese miteinander interagieren. 1. Was ist Docker? 2. Was ist WordPress ? 3. Was steckt hinter WordPress ? 3.1. Caddy als Webserver 3.2. MySQL und MariaDB als Datenbank 3.3. PHP-FPM 4. Wichtige…

Weiterlesen
1 2
hungsblog | Nguyen Hung Manh | Dresden
Nach oben scrollen