Page 14 - Monthly Archives: August 2025
-
Maxim Mironjuk
-
August 12, 2025
A Bash script running as a daemon or long-lived process must handle SIGINT, SIGTERM and SIGHUP without leaving behind orphaned lock files or half-written output. A single trap call can register the same handler for several signals, but telling the signals apart inside the handler and avoiding double runs when combined with an EXIT trap takes a few extra tricks.
-
Maxim Mironjuk
-
August 12, 2025
A moving average smooths noisy time series directly in the database: with AVG() OVER() and a precisely defined ROWS BETWEEN window, you calculate rolling averages for trend analysis, without loading raw data into an application or resorting to slow self-joins.
-
Maxim Mironjuk
-
August 12, 2025
Magento integration tests built on XML fixtures are fragile, hard to maintain and barely readable. PHP based fixtures, the DataBuilder pattern and consistent use of the ObjectManager produce test data that is readable, reliable and easy to adjust, without fixture files that break after every schema update.
-
Maxim Mironjuk
-
August 11, 2025
A single system cron entry is not enough for a Magento shop with dozens of background jobs. Only well thought out cron job scheduling strategies with clearly separated cron groups, sensible intervals and configurable schedules prevent long running jobs from blocking each other and delaying critical tasks.
-
Maxim Mironjuk
-
August 11, 2025
A query without a timeout is a bet on the future: as long as everything runs normally, it never shows up as a problem. But the moment a table grows unexpectedly, an index is missing, or a lock gets held longer than planned, that same query can block for minutes or hours, occupy connections in the pool, and in the worst case bring down the entire application. A properly configured timeout is therefore not cosmetic, it's one of the most effective defenses against cascading failures. This article separates statement timeout on the database side from connection timeout on the application side, shows sensible values for different use cases, and explains how a transaction should be cleanly handled after a timeout.
-
Maxim Mironjuk
-
August 11, 2025
Live Activities built on ActivityKit show ongoing status information, such as a delivery status, directly on the iOS lock screen and in the Dynamic Island. This article covers the architecture, React Native integration, and the hard limits on update frequency.
-
Maxim Mironjuk
-
August 11, 2025
Pagination is not a minor detail in GraphQL. Anyone who simply writes offset and limit into the schema has a working solution, but not a robust one. Cursor-based pagination following the Relay specification takes more effort, but it solves exactly the problems that offset pagination creates as data volumes grow and concurrent writes happen.
-
Maxim Mironjuk
-
August 11, 2025
A relaunch or domain migration can cost you rankings if URL inventory, redirects and the Search Console switch are not planned carefully. This checklist shows how to get it right.
-
Maxim Mironjuk
-
August 11, 2025
From the schema definition through the ResolverInterface to DI configuration, error handling and integration tests: the complete path to a production-ready Magento GraphQL resolver, no shortcuts.
-
Maxim Mironjuk
-
August 11, 2025
Embedded third party content such as payment widgets, ad banners or comment systems runs in the same document as your own application and, without consistent isolation, poses a substantial security risk. The sandbox attribute on iframe elements and strict origin checking in postMessage communication enable genuine isolation without blocking the actual functionality of embedded widgets.
-