Page 206 - Mironsoft Blog
-
Maxim Mironjuk
-
July 28, 2025
In Symfony, registering event listeners, voters, commands and Twig extensions long meant: implement an interface and separately write a tag entry in services.yaml. The autoconfigure feature recognizes well-known interfaces automatically and assigns the necessary DI tags without a single tag ever having to be written by hand.
-
Maxim Mironjuk
-
July 28, 2025
Rewriting the same product fields in every query does not just bloat the source code, it bloats every single request sent to the server. Fragment composition keeps GraphQL queries in a Hyvä frontend lean, consistent, and maintainable across Magento upgrades.
-
Maxim Mironjuk
-
July 28, 2025
Hand-written test data like 'Test Name' or 'test@test.com' hides real bugs because it never reflects the diversity of real input. The Faker library generates realistic names, addresses, and prices while staying fully reproducible with fixed seeds.
-
Maxim Mironjuk
-
July 28, 2025
A container is not a virtual machine, it is an isolated process sharing the same kernel with the host. Container escape prevention means consistently hardening exactly that boundary: no unnecessary privileges, no mounted sockets, active seccomp and AppArmor profiles, and a current kernel, so a compromised container never becomes a stepping stone to the host.
-
Maxim Mironjuk
-
July 28, 2025
Gift cards in Magento 2 are more than a simple voucher field: a clean data model in the giftcardaccount, secure code generation, correct checkout total integration, multiple redemption per cart, a resilient admin workflow for batch campaigns, and hardened API protection for headless and GraphQL checkouts decide whether gift cards work reliably and securely in production.
-
Maxim Mironjuk
-
July 28, 2025
Expo has grown from a limited sandbox into a full toolchain for React Native that now supports even complex native modules. The bare workflow still matters when maximum native control is required. This article shows how Expo really works today and when switching to bare is actually necessary.
-
Maxim Mironjuk
-
July 28, 2025
A raw list of commit messages is not a changelog anyone wants to read. Claude can categorize, summarize, and structure a commit history between two releases into something users and developers actually understand. This article shows the practical workflow, the distinction from tools like semantic-release, and the quality control it needs.
-
Maxim Mironjuk
-
July 27, 2025
As soon as more than one product uses the same Tailwind design system, every change to tokens or components becomes a potential breaking change for someone else's code. Semantic versioning, a maintained changelog and clear deprecation periods turn a risky update into a planned, communicated step.
-
Maxim Mironjuk
-
July 27, 2025
A cron job that runs longer than its scheduled interval quietly starts a second time, even though the first run has not finished yet. Two parallel database exports, two simultaneous backup processes, or two import scripts blocking each other are the result, often without an immediately visible error message. This article shows how flock reliably prevents overlapping cron jobs, both directly in crontab and inside scripts, and where the limits of simpler locking approaches lie.
-
Maxim Mironjuk
-
July 27, 2025
When a user scrolls inside a modal or dropdown to its edge, the browser by default simply keeps scrolling the page behind it, an effect called scroll chaining. overscroll-behavior deliberately interrupts that handoff at a container's boundary and also prevents accidentally triggering pull-to-refresh on mobile devices, entirely without preventDefault workarounds in JavaScript.
-