Page 19 - Monthly Archives: March 2025
-
Maxim Mironjuk
-
March 09, 2025
Most applications store only the current state of an entity and overwrite it on every change, permanently losing any information about how that state came to be. Event sourcing turns this principle around: instead of the current state, it stores the complete, immutable sequence of every event that led to that state, from which the current state can be recomputed at any time.
-
Maxim Mironjuk
-
March 08, 2025
Containers do not talk to each other automatically. Docker networks define who can reach whom, and who cannot. Bridge networks, embedded DNS, service discovery in Compose, and secure network segmentation are the building blocks of any resilient container infrastructure.
-
Maxim Mironjuk
-
March 08, 2025
Without shared rules, shell codebases end up where every script follows a different style, error handling is missing or inconsistent, and nobody knows which checks are mandatory in review. A review checklist, clear style rules, EditorConfig and ShellCheck as a CI gate lay the groundwork so teams can review shell scripts without debating every pull request from first principles.
-
Maxim Mironjuk
-
March 08, 2025
A modal without a focus trap lets keyboard users disappear into the background while the dialog sits visually in front. This guide shows how to implement a custom focus trap in React, set ARIA attributes correctly, and reliably restore focus after closing, all without a ready made library.
-
Maxim Mironjuk
-
March 08, 2025
The terms aggregation is one of the most widely used Elasticsearch features, yet it quickly becomes a performance bottleneck at high field cardinality. The shard_size parameter, doc_count_error_upper_bound as an accuracy indicator, and eager global ordinals for precomputing expensive data structures together decide whether a facet query responds in single-digit or triple-digit milliseconds. This article shows how to deliberately tune terms aggregations at millions of unique values without losing sight of result quality.
-
Maxim Mironjuk
-
March 08, 2025
Since PHP 8.1, individual properties can be declared readonly. Since PHP 8.2, an entire class can be made immutable in one step. The difference is more than syntactic sugar: a readonly class is a class level design decision, with its own rules for inheritance, dynamic properties, and migrating existing value objects.
-
Maxim Mironjuk
-
March 08, 2025
Merging an entire feature branch just to ship one hotfix drags unwanted commits, conflicts, and noise into your history. Git cherry-pick applies exactly one commit onto another branch, with its own SHA and traceable origin through the -x flag. This article shows how to use cherry-pick deliberately for hotfixes, resolve conflicts, and avoid divergent history.
-
Maxim Mironjuk
-
March 08, 2025
As soon as a table has more rows than fit on one screen, users quickly lose track of which column corresponds to which values while scrolling. A sticky, fixed table header solves that for vertical scrolling, a frozen first column solves it for horizontal scrolling in very wide tables. Both techniques can be implemented purely with CSS, but they demand careful handling of z-index stacks and a few special rules for HTML table elements that never come up with a plain div-based sticky solution.
-
Maxim Mironjuk
-
March 08, 2025
Using setTimeout(fn, 0) as a workaround for DOM timing problems is a code smell in Alpine.js projects. $nextTick is the clean alternative: it waits precisely for the next render pass to finish, not for an arbitrary number of milliseconds.
-
Maxim Mironjuk
-
March 07, 2025
Many Dockerfiles grow organically and accumulate patterns along the way that bloat images, double build times, or undermine the security of the container. A structured Dockerfile review surfaces these anti-patterns before they turn into a production problem.
-