Seite 68 - Mironsoft Blog
-
Maxim Mironjuk
-
Februar 06, 2026
EXISTS und IN wirken auf den ersten Blick austauschbar, unterscheiden sich aber in einem entscheidenden Punkt: dem Umgang mit NULL-Werten in der inneren Ergebnismenge. Waehrend EXISTS ausschliesslich die Existenz einer Zeile prueft und NULL dabei keine Rolle spielt, kann ein NOT IN mit einer NULL-haltigen Liste stillschweigend eine leere Ergebnismenge liefern, ein Verhalten, das in Produktion regelmaessig zu fehlenden Zeilen in Reports fuehrt, ohne dass ein Fehler auftritt.
-
Maxim Mironjuk
-
Februar 06, 2026
Nicht jeder Hintergrunddienst muss beim Boot sofort laufen, manche werden nur sporadisch gebraucht und verbrauchen die meiste Zeit über nur unnötig Arbeitsspeicher. Socket Activation dreht das klassische Startmodell um: systemd öffnet den Netzwerk-Socket bereits beim Boot, startet den eigentlichen Dienst dahinter aber erst, wenn die erste Verbindung tatsächlich eintrifft. Für selbst geschriebene PHP-Hintergrunddienste in einer Magento-Infrastruktur ist das ein einfacher Weg zu schnellerem Boot und geringerem Ressourcenverbrauch, ohne auf Verfügbarkeit zu verzichten.
-
Maxim Mironjuk
-
Februar 06, 2026
Eine zehn Minuten lange Pipeline, die fuenfzigmal am Tag laeuft, kostet ein Team ueber acht Stunden Wartezeit taeglich. Systematische Optimierung beginnt nicht mit Raten, sondern mit Messen.
-
Maxim Mironjuk
-
Februar 06, 2026
Tailwind CSS v4 bringt einen fundamentalen Wandel: Konfiguration passiert jetzt in CSS statt in einer JavaScript-Datei. Für Symfony-Projekte mit Twig-Templates ändert das den gesamten Setup-Prozess — und bringt mit Vite als Asset-Pipeline und dem neuen Oxide-Engine deutlich schnellere Build-Zeiten.
-
Maxim Mironjuk
-
Februar 06, 2026
Ein Cronjob-Eintrag in der Crontab ist nur der Anfang. Ohne Locking laufen Jobs parallel, ohne Logging verschwinden Fehler, ohne Monitoring läuft ein ausgefallener Cronjob wochenlang unbemerkt. flock, strukturiertes Logging, Exit-Code-Checks und systemd-Timer verwandeln fragile Cron-Aufrufe in zuverlässige, beobachtbare Automatisierungseinheiten.
-
Maxim Mironjuk
-
Februar 05, 2026
Log-Einträge, Suchanfragen oder Sensor-Events haben eine Eigenschaft, die klassische Produktdaten nicht haben: Sie werden fortlaufend geschrieben, wachsen unbegrenzt und sollen nach einer gewissen Zeit automatisch aus dem Index verschwinden. Vor Data Streams musste diese Zeitreihen-Verwaltung manuell über eine Kombination aus täglich neu angelegten Indizes, einem Schreib-Alias und einer ILM-Policy nachgebaut werden, mit vielen Stellen, an denen sich ein Fehler einschleichen konnte. Data Streams bündeln genau dieses Muster in einem einzigen, deklarativen Konzept. Dieser Artikel zeigt, wie Data Streams automatisch rotierende Backing-Indizes verwalten, wie sie sich vom klassischen Alias-Muster unterscheiden, und wie ein praktisches Suchanfragen-Log für die spätere Analyse damit aufgebaut wird.
-
Maxim Mironjuk
-
Februar 05, 2026
WebAssembly kompiliert Sprachen wie Rust oder C in nahezu nativen Code, der im Browser läuft und rechenintensive Aufgaben deutlich beschleunigen kann. Der Artikel zeigt, wann sich der Umstieg tatsächlich lohnt, wo klassisches JavaScript weiterhin die richtige Wahl ist, und wie eine praktische Implementierung für Bildbearbeitung aussieht.
-
Maxim Mironjuk
-
Februar 05, 2026
Wer E2E-Tests mit page.waitForTimeout oder festen Sleep-Aufrufen stabilisiert, bekämpft nur Symptome statt Ursachen. Playwright prüft vor jeder Aktion automatisch, ob ein Element sichtbar, stabil, aktiviert und tatsächlich klickbar ist, und wiederholt diese Prüfung, bis sie erfüllt ist oder ein Timeout erreicht wird. Dieser Artikel zeigt, wie diese Actionability-Checks funktionieren, warum feste Wartezeiten Flakiness verschleiern statt beheben und wie man Timeout-Fehler mit dem Trace Viewer gezielt diagnostiziert.
-
Maxim Mironjuk
-
Februar 05, 2026
Ein Entrypoint Skript mit Arrays und Prozess-Substitution laeuft lokal problemlos und bricht im Alpine Container mit exec format error ab. Der Grund ist BusyBox ash, das im Standard Alpine Image anstelle von Bash als /bin/sh dient und nur einen Bruchteil des gewohnten Funktionsumfangs bietet.
-
Maxim Mironjuk
-
Februar 04, 2026
Wer einen Feature-Branch mit chaotischer Commit-Historie zur Review einreicht, kostet dem Team Zeit und verschenkt Vertrauen. Dieser Guide zeigt Schritt für Schritt, wie ihr mit git rebase -i Commits umordnet, zusammenfasst, umbenennt oder entfernt, Konflikte sicher löst und einen missglückten Rebase jederzeit über die reflog wieder rückgängig macht.
-