Page 319 - Mironsoft Blog
-
Maxim Mironjuk
-
February 24, 2025
position:sticky looks simple on paper, yet in practice it fails for a surprising number of reasons. This article walks through every single pitfall: overflow traps on the parent element, missing threshold properties, z-index inside stacking contexts, and why iOS Safari behaves differently.
-
Maxim Mironjuk
-
February 23, 2025
Cart Price Rules are one of the most powerful tools in Magento 2, yet they quickly hit their limits once discount logic gets complex. Developers who master custom conditions, individual discount actions and programmatic coupon generation build Sales Rules that fit the business model exactly, instead of settling for compromises inside the standard rule engine. This post shows, with real code, how to cleanly extend the Magento_SalesRule module through di.xml, plugins and GraphQL.
-
Maxim Mironjuk
-
February 23, 2025
Once shipping costs are no longer flat rates or simple table based rules, your shop needs its own carrier logic. Magento 2 offers a clear entry point for this through a custom shipping method with `collectRates()` and system configuration.
-
Maxim Mironjuk
-
February 23, 2025
A focus ring is to keyboard users what the mouse cursor is to everyone else: the only way to see where they currently are. With the ring-* utilities, focus-visible and ring-offset, Tailwind CSS builds focus indicators that stay visible instead of disappearing behind outline-none.
-
Maxim Mironjuk
-
February 23, 2025
Xdebug can do far more than pause execution on a line. With the modes trace, profile, coverage and gcstats, Xdebug opens an analysis window into the real runtime state of a PHP request: call hierarchies with timestamps, cachegrind profiles for self time and inclusive time, a coverage API for custom analysis tools, and garbage collection statistics that normally stay completely hidden.
-
Maxim Mironjuk
-
February 23, 2025
Code reviews without context cost time and produce surface level nitpicking. PhpStorm provides the tools to prepare reviews in a structured way through Git diffs, File History, the Annotate view and the TODO tracker, without ever leaving the editor and without relying on the GitHub UI as the only source of context.
-
Maxim Mironjuk
-
February 23, 2025
Having a bats test suite for Bash scripts tells you nothing about which lines are actually executed. Code coverage with kcov closes that gap, shows line by line what tests really cover, and makes untested error paths visible long before they become a problem in production.
-
Maxim Mironjuk
-
February 23, 2025
The choice between Framer Motion and CSS Transitions in React has more to do with the animation type than with personal preference. Hover effects and simple state transitions belong in CSS. Orchestrated sequences, exit animations and shared element transitions are barely achievable without Framer Motion. This tutorial explains when which solution is the right one.
-
Maxim Mironjuk
-
February 23, 2025
Anyone who sends the same long system prompt, the same documentation or the same codebase to Claude in full on every single request pays for identical tokens over and over again. Prompt caching keeps these recurring parts available server side and noticeably lowers both cost and latency once the caching strategy is built correctly.
-
Maxim Mironjuk
-
February 23, 2025
Without additional protective measures, GraphQL APIs are vulnerable to overloaded queries, introspection attacks, batching DoS, and data leaks through resolvers that are too permissive. This security review shows concrete attack scenarios and the matching countermeasures.
-