Page 6 - Monthly Archives: March 2026
-
Maxim Mironjuk
-
March 24, 2026
A poorly ordered Dockerfile can rebuild every single layer on every build, even when only one line of application code changed. Understanding how Docker invalidates its layer cache based on Dockerfile order lets teams cut CI build times dramatically, without spending a cent more on hardware.
-
Maxim Mironjuk
-
March 24, 2026
Tailwind CSS v4 is not an incremental improvement, it is a complete rearchitecture. The Oxide engine replaces the Node.js-based build process with a Rust-native implementation, @theme replaces tailwind.config.js, and the CSS-first approach fundamentally changes how Tailwind is configured.
-
Maxim Mironjuk
-
March 23, 2026
A single nested field with an expensive database join can make an entire query unusably slow, while flat depth limits never even notice. Field-level cost analysis assigns every field in the schema a concrete cost value and makes budgets per query and per client enforceable, instead of just counting nesting depth.
-
Maxim Mironjuk
-
March 23, 2026
Classic SAST tools like Semgrep or SonarQube scan code for known patterns and flag matches regardless of surrounding context. Claude reads the same code with an understanding of data flow, business logic, and call context. This article shows how the two approaches complement each other and what a systematic, Claude-assisted security review of a pull request looks like in practice.
-
Maxim Mironjuk
-
March 23, 2026
An upload form is one of the most direct attack surfaces of a PHP application, because it lets an attacker put fully controlled content onto the server. Relying solely on the file extension or the content type sent by the client opens the door to remote code execution, path traversal and injected script files disguised as harmless images.
-
Maxim Mironjuk
-
March 23, 2026
Mobile storefronts live on touch gestures: swiping through image galleries, tapping filter buttons, dragging off-canvas menus. Testing these interactions with simulated mouse clicks alone misses ghost clicks, blocked scroll directions, and hover menus that are simply unreachable on a touchscreen. This article shows how to reliably simulate real touch events in Cypress and Playwright.
-
Maxim Mironjuk
-
March 23, 2026
Choppy animations almost always happen because the browser has to recalculate layout and paint on every frame instead of handing the work off to the GPU. This article explains how compositor layers form, why transform and opacity are nearly free to animate, how will-change gets used correctly and incorrectly, and how to spot and fix layer problems with Chrome DevTools.
-
Maxim Mironjuk
-
March 23, 2026
A running total, a cumulative sum that grows with every row, is one of the most common requirements in account statements, revenue reports and inventory management. With SUM() OVER, this calculation can be solved directly in SQL, without the slow detour through a correlated subquery. This article shows the syntax, the reset per group, and the concrete performance difference.
-
Maxim Mironjuk
-
March 23, 2026
When a server simply reboots after a kernel panic, the actual cause stays in the dark until the same crash happens again. kdump automatically produces a complete memory dump when a kernel panic hits, and the crash utility turns that vmcore into something readable, with a backtrace, process state and the exact spot in the kernel code where it broke.
-
Maxim Mironjuk
-
March 22, 2026
Git conflicts are no reason to panic once you actually understand PhpStorm's three-way merge dialog. Base, Local and Remote side by side turn a confusing diff into a controllable, line-by-line decision.
-