Page 11 - Monthly Archives: March 2025
-
Maxim Mironjuk
-
March 20, 2025
Long selector lists that share the same declarations are a maintenance problem in every sizable stylesheet. CSS :is() and :where() compress such lists into a single rule, with precise control over specificity, and with an error tolerance behavior that classic comma lists simply do not have.
-
Maxim Mironjuk
-
March 20, 2025
Some parts of a form control can still only be styled through vendor specific pseudo-elements, because there is no standardized selector for them. Anyone who wants range sliders, file upload buttons and autofill backgrounds to look consistent cannot avoid webkit and moz prefixes, but has to use them in a structured, maintainable way.
-
Maxim Mironjuk
-
March 20, 2025
A clean App Store Connect listing decides discoverability, review success and user trust long before the first build gets uploaded. From Bundle ID registration through screenshots and the privacy label to automated maintenance with eas submit, this guide walks through the full process for React Native and Expo apps.
-
Maxim Mironjuk
-
March 19, 2025
A page query that lists every field for ten components in one block turns into a merge conflict magnet with every change. GraphQL fragments break queries into named, reusable building blocks that live right next to the component consuming them, solving maintainability problems that become unavoidable as an application grows.
-
Maxim Mironjuk
-
March 19, 2025
Returning a limited number of rows from a query sounds like a trivial task, yet MySQL, PostgreSQL, SQL Server, and Oracle write this limit with four completely different syntax forms. Anyone who wants to keep pagination code portable across these systems needs an overview of LIMIT, TOP, ROWNUM, and the common ANSI standard denominator OFFSET FETCH.
-
Maxim Mironjuk
-
March 19, 2025
A growing Redis Cluster sooner or later needs to move hash slots between nodes, take on new nodes, or remove old ones, all while the application keeps running uninterrupted. redis-cli --cluster reshard orchestrates this operation through the MIGRATING and IMPORTING state of individual slots, turning resharding into a controlled, live operation instead of a maintenance window.
-
Maxim Mironjuk
-
March 19, 2025
Symfony's RateLimiter component reliably protects endpoints from abuse, but only if the chosen storage backend actually matches the underlying infrastructure. In-memory storage is meant for tests and only counts requests within a single PHP process, which behind a load balancer with multiple server instances effectively means an attacker can multiply the limit by the number of instances. This article compares in-memory storage, the generic cache adapter, and Redis as shared state, walks through the concrete configuration of RateLimiterFactory, and explains the practical difference between sliding window and token bucket policies.
-
Maxim Mironjuk
-
March 19, 2025
Tests that depend on the current time, randomly generated UUIDs, or pseudo-random values are flaky: they sometimes fail and sometimes don't, and the cause is hard to reproduce. Clock interfaces, UUID factories, and controlled randomness solve this problem at its root, without complicating the production code.
-
Maxim Mironjuk
-
March 19, 2025
Decorators extend classes, methods, and properties with reusable behavior without touching the underlying code. Since TypeScript 5.0, the new TC39 Stage 3 standard is available with no compiler flag, while Angular and older NestJS versions still rely on experimentalDecorators and reflect-metadata. This article walks through both systems with real code examples for logging, validation, and dependency injection.
-
Maxim Mironjuk
-
March 19, 2025
A misconfigured Elasticsearch or OpenSearch installation noticeably slows down every category page and every faceted search in Magento. This article shows how index mapping, shard sizes, JVM heap, and query patterns determine actual response time, how to find bottlenecks with the Explain API and cluster health checks, and how to avoid expensive wildcard and fuzzy queries in layered navigation.
-