Page 18 - Monthly Archives: September 2025
-
Maxim Mironjuk
-
September 04, 2025
A misconfigured font loading setup either shows invisible text while loading or a visible font swap complete with layout jump the moment the web font arrives. With the right combination of font-display, preload and subsetting, both can be avoided without giving up custom typography.
-
Maxim Mironjuk
-
September 04, 2025
PHPUnit does not just mark tests as passed or failed, it also marks some as risky. That is not a cosmetic detail, it is a signal about tests that are green but do not actually assert anything, or that misbehave in ways that matter: no assertion, unexpected output, or silent changes to global state. Teams that ignore these warnings end up with a test suite that looks trustworthy but is not.
-
Maxim Mironjuk
-
September 04, 2025
A slow GraphQL query is rarely GraphQL's fault. The real problems sit deeper: N+1 patterns in resolver chains, EAV tables that produce dozens of joins per product, and queries without complexity limits that can load the server arbitrarily. This article shows where to look and what actually helps.
-
Maxim Mironjuk
-
September 04, 2025
Cross Site Request Forgery is considered a solved problem by many teams the moment an application moves to a single page architecture with fetch instead of classic forms. In reality the risk merely shifts as long as session cookies are involved in authenticated API calls, and it stays real, requiring a deliberate combination of double submit cookie, the SameSite attribute and custom headers.
-
Maxim Mironjuk
-
September 04, 2025
Classic unit tests check individual, hand-picked examples. Property-based testing flips that around: instead of writing examples, you define properties that must hold for every valid input, then let fast-check generate thousands of random cases to uncover exactly the edge cases a human writing tests by hand tends to overlook.
-
Maxim Mironjuk
-
September 03, 2025
File management tasks are part of everyday automation: sorting hundreds of log files by date, renaming export files to match a naming convention, cleaning up temporary build artifacts. With the right mv patterns, rename for bulk renaming and find for sorting and filtering, these tasks can be solved safely, traceably and reversibly.
-
Maxim Mironjuk
-
September 03, 2025
Every click that only shows a visible effect after a server round trip feels sluggish to users, even when the request objectively only takes two hundred milliseconds. Optimistic UI updates solve this perception problem by having the Alpine state show the expected change immediately, with the actual server request only running afterward in the background. Using a like button as an example, this article shows how to implement such a pattern cleanly, which rollback strategy kicks in for a failed request, how to avoid race conditions across several fast interactions, and in which cases optimistic updates should deliberately be avoided.
-
Maxim Mironjuk
-
September 03, 2025
A template gets edited, but the change never shows up in the frontend. The cause is almost always somewhere in the fallback chain between module, theme, and parent theme, and hunting for it without the right tools wastes real time. This article walks through a systematic debug workflow.
-
Maxim Mironjuk
-
September 03, 2025
Setting up a new replica for a large Magento database used to mean either an hours-long mysqldump import or reaching for an external tool like xtrabackup. Since MySQL 8.0.17, the built-in clone plugin handles this task directly inside the server: a physical, page-based copy process that turns hours into minutes on databases hundreds of gigabytes in size.
-
Maxim Mironjuk
-
September 03, 2025
Anyone who only knows a DI container from a framework's documentation rarely understands why it is designed the way it is designed. In this article we build a minimal, PSR-11-compliant DI container from the ground up in plain PHP 8.4: with reflection-based autowiring, recursive dependency resolution, cycle detection, and clearly defined bindings between interface and implementation. What comes out is not production code, but a tool for understanding, one that shows what PHP-DI, Symfony DependencyInjection, and the Laravel container actually do under the hood.
-