Page 19 - Monthly Archives: January 2026
-
Maxim Mironjuk
-
January 08, 2026
Font files are often among the largest individual resources on a page, even though most of their content never gets displayed. Font subsetting and variable fonts can drastically cut the transferred data volume without users noticing any visible difference in typography.
-
Maxim Mironjuk
-
January 08, 2026
Chasing Magento performance problems by guesswork wastes time on the wrong things. This article shows how to use Blackfire, Xhprof and Tideways, and the built-in Magento Profiler to read flame graphs, identify slow observers and plugins, and compare profiles cleanly, including safe sampling in production.
-
Maxim Mironjuk
-
January 08, 2026
Without rate limiting, a single misbehaving client loop or a targeted attack is enough to bring a PHP API to its knees. Building your own rate limiting is straightforward with Redis and a few lines of PHP, with no third party gateway required, and the choice between fixed window, sliding window and token bucket determines how fair and how burst tolerant the protection actually turns out to be.
-
Maxim Mironjuk
-
January 08, 2026
Redis nodes confined to a single availability zone are powerless against the loss of that exact zone, no matter how well internal replication is configured. A well thought out distribution of masters and replicas across multiple zones significantly increases resilience, but it requires deliberate decisions about latency, network cost and the limits of cloud-managed Redis offerings.
-
Maxim Mironjuk
-
January 07, 2026
Without ElementInternals, a hand-built Custom Element could never truly participate in a form element: no automatic entry in FormData, no native validation, no :invalid styling. The ElementInternals API closes that gap through attachInternals(), setFormValue(), and setValidity(), turning an ordinary Custom Element into a full-fledged form control.
-
Maxim Mironjuk
-
January 07, 2026
Rootless Docker lets the Docker daemon and all containers run as a regular user, without root privileges. This considerably reduces the attack surface, but it comes with concrete limitations around privileged ports, volume permissions, and certain network features. Here you will learn when the switch makes sense and when it creates more problems than it solves.
-
Maxim Mironjuk
-
January 07, 2026
Progressive Web Apps promise app-like speed for Magento stores, but without a clean manifest, well-designed service worker caching strategies, and a clear app shell architecture, that effect never materializes. This article shows how to correctly implement installability, offline fallbacks, and install prompts, and where a well-optimized, server-rendered Hyva storefront actually stays ahead of the PWA.
-
Maxim Mironjuk
-
January 07, 2026
A default PhpStorm installation is not a productive PHP workplace. Only once the PHP interpreter is correctly wired up, indexing is scoped to what actually matters, PHPStan and phpcs warn inline, and the heap limit matches the real project size does PhpStorm work the way a modern PHP IDE should.
-
Maxim Mironjuk
-
January 07, 2026
Cancellable async operations do not emerge from simply attaching an AbortController to a fetch call, they come from a deliberate architecture decision: every function that runs for a while accepts a cancellation signal from the start, guarantees cleanup, and passes the signal consistently through every layer.
-
Maxim Mironjuk
-
January 06, 2026
An audit trail answers the question of who changed which value in which row and when, and application logs alone can rarely answer that question reliably. This post shows three established patterns for change history tables in SQL, from shadow tables with triggers through a central audit table to native system versioned tables, including performance cost and retention strategies.
-