Page 17 - Monthly Archives: March 2026
-
Maxim Mironjuk
-
March 10, 2026
A comparison table sounds like a simple HTML table with a few columns at first. But once several products with differing numbers of attributes need to sit side by side, a differences-only view is required, and the table still has to work on a smartphone, it turns into a genuinely small application with its own state. Alpine.js is a good fit for exactly this task because row and column logic can be expressed entirely declaratively in the markup, without needing dedicated build tooling or a framework like React.
-
Maxim Mironjuk
-
March 10, 2026
Anyone who has registered event listeners in Symfony via services.yaml with tags and method names knows the pain of maintaining several files for a single class. The PHP attribute #[AsEventListener] eliminates this YAML configuration entirely, the listener is declared directly on the class or method, type-safe and immediately readable.
-
Maxim Mironjuk
-
March 09, 2026
A deployment script without checklists deploys even when the build is broken. Without guards, a second deployment runs in parallel with the first. Without a rollback mechanism, a failed deployment turns into a manual emergency. Professional shell scripts for deployments solve all three problems, using simple, maintainable Bash patterns.
-
Maxim Mironjuk
-
March 09, 2026
High system load is not automatically a sign of a slow disk. This guide shows how iostat with interval sampling separates real trends from short bursts, how iotop identifies the specific process behind heavy I/O usage, and how metrics like %util and await reliably reveal whether you are looking at a disk problem or an application problem.
-
Maxim Mironjuk
-
March 08, 2026
Magento's default search analyzer is tuned for English prose and quickly runs into trouble with SKUs that contain special characters and with compound German words. This article explains how Magento actually builds index mappings and analyzers for OpenSearch, how to register a custom analyzer for these edge cases, and how to verify its behavior directly through the OpenSearch API before it ever touches a production index.
-
Maxim Mironjuk
-
March 08, 2026
A slow CI pipeline is rarely just about the YAML file. How a team branches, commits, and structures pull requests largely determines how efficiently GitHub Actions can operate.
-
Maxim Mironjuk
-
March 08, 2026
A WCAG audit produces a snapshot that can already be stale by the next deployment, because a new feature, a changed component markup, or an updated third-party script can shift the state of a page within minutes. Lighthouse CI closes exactly that gap by measuring the accessibility score automatically on every build, checking it against a defined threshold, and surfacing a regression immediately instead of only discovering it months later during the next manual review. This article covers setting up Lighthouse CI as continuous monitoring in a Magento and Hyvä deployment pipeline.
-
Maxim Mironjuk
-
March 08, 2026
Most PHP projects either have too many unit tests for code that depends on database state, or too few tests at the right level. The test pyramid is not an academic concept, it is a practical tool for deciding which test type solves which problem most efficiently.
-
Maxim Mironjuk
-
March 08, 2026
A dropdown menu that only works with a mouse, or a tab bar that requires ten separate Tab presses to jump between individual tabs, violates established WAI-ARIA expectations. Keyboard navigation in React follows fixed patterns like roving tabindex and arrow key handling that can be reused across any complex component.
-
Maxim Mironjuk
-
March 08, 2026
A CSS animation running on the compositor thread cannot be blocked by the JavaScript main thread. Anyone who wants to understand why some animations flow at 60fps while others stutter needs to know the path from CSS property to GPU layer, and when will-change helps instead of hurts.
-