Page 5 - Monthly Archives: January 2025
-
Maxim Mironjuk
-
January 26, 2025
After years of wrangling in the TC39 committee, JavaScript decorators have reached Stage 3. They enable class-level metaprogramming without Babel hacks: logging, memoization, validation and dependency injection as reusable annotations.
-
Maxim Mironjuk
-
January 26, 2025
A regular expression that matches short test inputs in milliseconds can suddenly take seconds or minutes on a only slightly longer, maliciously crafted input, because the PCRE engine tries exponentially many backtracking points. This phenomenon, known as catastrophic backtracking, is one of the most underestimated performance and security pitfalls in PHP applications that validate user input against regex patterns. This article shows how backtracking works mechanically, which pattern structures cause it to explode, and which concrete techniques systematically defuse the risk.
-
Maxim Mironjuk
-
January 25, 2025
dnd-kit takes over the complex logic behind drag-and-drop, collision detection, keyboard control, and sensor management, but deliberately ships without any styles of its own. All visual communication, which element is currently being dragged, where it can land, and where the gap for the drop will appear, remains the job of CSS and Tailwind. Anyone who cleanly separates these three states and drives them through dnd-kit's data attributes ends up with a drag-and-drop experience that feels fluid and always shows the user clearly what is happening.
-
Maxim Mironjuk
-
January 25, 2025
A secret that has ever been committed stays reachable in git history even after the file gets deleted. This article explains why that is, how pre-commit hooks and CI scanners stop leaks before they happen, and which order matters after a real incident: rotate the credential first, then clean up the history.
-
Maxim Mironjuk
-
January 25, 2025
In a classic GitLab pipeline, every stage waits for all jobs of the previous stage to finish, even if a job does not actually depend on the others at all. The needs keyword breaks this rigid order and turns the pipeline into a directed acyclic graph where jobs start as soon as their real dependencies are met, which often shortens overall runtime dramatically.
-
Maxim Mironjuk
-
January 25, 2025
Resolving merge conflicts in the terminal means manually searching for conflict markers in the file, understanding them, and making a decision, without any visual context. The 3-way merge tool in PhpStorm shows your own version, the incoming version, and the common ancestor at the same time, which makes the decision far easier and reduces mistakes during conflict resolution.
-
Maxim Mironjuk
-
January 25, 2025
Icons are omnipresent in every UI, and yet they are frequently used incorrectly. Too large, wrong color, not accessible, shipped as PNG instead of SVG. This guide shows how to use Heroicons, Phosphor Icons and inline SVG with Tailwind CSS v4 correctly and performantly.
-
Maxim Mironjuk
-
January 25, 2025
Processing logs in Bash means more than running grep and eyeballing the output. Time window filtering, structured error reporting, frequency analysis and combining grep, awk, sed and jq into efficient pipelines make the difference between reactive troubleshooting and proactive log monitoring.
-
Maxim Mironjuk
-
January 25, 2025
Branches, commits, diffs and merges look like independent concepts, but technically they are all just pointers into the same object graph. This article deliberately drops below the add, commit and branch abstraction and uses git cat-file and git hash-object to show directly against the object store how blobs, trees and commits are built, how they reference each other, and why Git addresses its objects by SHA-1 or SHA-256 instead of by filename.
-
Maxim Mironjuk
-
January 25, 2025
The Percona Toolkit is a collection of command-line tools that fills exactly the gaps MySQL leaves open: schema changes without locks, systematic slow query analysis, and reliable replication consistency. Teams that use these tools deliberately against a Magento database gain control over areas that would otherwise only be manageable through risky manual intervention.
-