Page 12 - Monthly Archives: September 2025
-
Maxim Mironjuk
-
September 11, 2025
For years, animating an element as it appeared from display:none required JavaScript. CSS @starting-style solves this problem natively, enabling elegant transitions for popovers, dialogs and dynamically inserted content without a single line of JavaScript.
-
Maxim Mironjuk
-
September 11, 2025
Next.js middleware runs before a route is even rendered, deciding on redirects, rewrites, and headers before Server Components or Client Components become active. Once you understand matcher rules, auth checks, and the limits of the edge runtime, you can build routing logic that stays fast and still behaves robustly.
-
Maxim Mironjuk
-
September 10, 2025
Direct calls to new DateTime() or time() are the classic reason time-dependent logic is hard to test. A custom Clock abstraction fixes the problem at the root and lets you set fixed points in time inside PHPUnit tests.
-
Maxim Mironjuk
-
September 10, 2025
In traditional applications, the current state is stored and its history is discarded. Event sourcing turns this principle around: not the state, but the sequence of events that led to it, is the primary source of truth. The current state is always derivable, and therefore fully auditable, capable of time travel, and easy to debug.
-
Maxim Mironjuk
-
September 10, 2025
The Google results page has long stopped being ten equal blue links: featured snippets, knowledge panels, image carousels, and shopping results all compete for the same screen space. Understanding which feature is realistically achievable for which search intent keeps optimization effort from being wasted on unreachable goals.
-
Maxim Mironjuk
-
September 10, 2025
Custom Bundles were long the standard for reusable Symfony modules. With PHP config classes, Symfony Flex and modern DI patterns, there are lighter-weight paths today, but for public packages, complex container manipulation and Compiler Passes, bundles are still the right tool.
-
Maxim Mironjuk
-
September 10, 2025
Anyone who changes a prompt and only reads the new answer once manually confuses a single case with a reliable improvement. Evaluating prompt quality systematically means building test cases, grading rubrics and automated comparisons that make every prompt change objectively and repeatably measurable.
-
Maxim Mironjuk
-
September 10, 2025
Without a deliberate API versioning strategy, every breaking change turns into a crisis meeting with external integrators. In PHP, three established approaches are available: a version number in the URI, a dedicated version header, or versioning through the Accept header via content negotiation. Which API versioning approach fits depends on your customer structure, release rhythm and the number of versions supported in parallel.
-
Maxim Mironjuk
-
September 10, 2025
A beautiful color palette is not automatically a readable color palette. A color contrast audit reveals which text and background combinations of a Tailwind CSS palette actually pass WCAG AA, before they become a trap for users with reduced vision in the design system.
-
Maxim Mironjuk
-
September 10, 2025
The parallel extension brings real multithreading to PHP: Runtime, Future and Channel create isolated operating system threads instead of cooperative concurrency. Anyone who understands the strict data isolation between threads and knows the limits of closures and autoloading can noticeably speed up CPU intensive tasks without switching to external extensions like Swoole.
-