Page 13 - Monthly Archives: March 2026
-
Maxim Mironjuk
-
March 15, 2026
Anyone who checks every field of an API response individually with expect often misses silent breaking changes such as new required fields, changed types or removed enum values. Schema validation against JSON Schema or OpenAPI catches exactly these cases automatically, cuts test code significantly, and integrates smoothly into Cypress, Playwright and the CI pipeline, so frontend and backend reliably honor the same contract.
-
Maxim Mironjuk
-
March 15, 2026
Letting tests rerun until they pass quietly pushes real bugs and race conditions out of sight and slowly erodes trust in the test suite itself. This article shows how to configure Cypress and Playwright retries correctly and how teams can turn repeated test runs into an early warning system instead of a convenient free pass.
-
Maxim Mironjuk
-
March 15, 2026
hyphens: auto enables automatic hyphenation, but without fine-tuning the browser will happily hyphenate where only one or two characters remain before or after the break. hyphenate-limit-chars and its related limit properties define the minimum word length and how many characters must remain before and after the hyphenation point.
-
Maxim Mironjuk
-
March 15, 2026
As soon as a component needs to do more than receive data, actively sending to the server too, as with a live chat or collaborative editing, a unidirectional connection is no longer enough. WebSocket provides exactly that two-way channel, but it also comes with more responsibility: the connection has to be established at the right point in the Alpine lifecycle, incoming messages have to be reliably translated into reactive state, and the connection has to be properly closed again once the component is removed. This article walks through a solid base structure using two practical examples, a live chat and a live dashboard, including error handling for dropped connections and basic security considerations.
-
Maxim Mironjuk
-
March 15, 2026
PATH hijacking exploits the fact that Bash scripts resolve commands through an inherited, potentially manipulated PATH variable instead of using fixed, trusted paths. This article shows how a manipulated PATH or IFS tricks a script into running someone else's programs, why cron jobs and systemd units are especially affected, and which concrete measures harden Bash scripts against this attack pattern.
-
Maxim Mironjuk
-
March 15, 2026
Large Magento catalogs with thousands of products and faceted navigation often generate millions of crawlable URL variants, most of which carry no standalone SEO value. Without deliberate control over Googlebot, crawl budget gets wasted on filter combinations, sort parameters, and session IDs, while important new or updated product pages get discovered less often and later.
-
Maxim Mironjuk
-
March 14, 2026
Anyone who treats Value Objects as nothing more than fancier data classes gives up their real benefit: a Value Object encapsulates equality, validity, and immutability in exactly one place in the code, instead of scattering those rules across services, controllers, and forms. This article shows, in plain, framework-independent PHP 8.4, how to use equals() instead of naive comparison, how to enforce invariants inside the constructor, and how readonly properties deliver true immutability, all without losing the balance between objects that are too small and objects that are too large.
-
Maxim Mironjuk
-
March 14, 2026
Image scanning finds known vulnerabilities before startup, but once a container is running, much stays invisible. Falco watches system calls directly in the kernel and detects in real time when a process inside a container behaves differently than expected, for example an unexpected shell, a write to sensitive paths, or an escape attempt.
-
Maxim Mironjuk
-
March 14, 2026
An InnoDB page is larger than the atomic write block of most storage systems, meaning a power failure in the middle of a write can leave a page half old and half new. The doublewrite buffer is the mechanism that reliably prevents exactly this scenario, the torn page. This article explains how it works, what it costs in performance, and when disabling it is actually worthwhile.
-
Maxim Mironjuk
-
March 14, 2026
When a PHP application hits a hard computational ceiling, the classic path used to run through a custom C extension with its own build process. FFI lets you call existing native libraries directly from PHP code, with no compiler toolchain in the deployment, making performance-critical code practical for far more projects than before.
-