Page 8 - Monthly Archives: April 2026
-
Maxim Mironjuk
-
April 21, 2026
Anyone who wanted to group JavaScript arrays by a criterion used to reach for Lodash, Underscore, or a nested reduce() chain. With Object.groupBy and Map.groupBy, ES2024 finally brings a native, readable solution directly into the language, with a clear difference between the two that is often overlooked in practice.
-
Maxim Mironjuk
-
April 21, 2026
chmod only understands a single owner and a single group per file, yet real server environments often need several access levels at once. This guide explains setfacl and getfacl, walks through a deploy user example showing granular access control beyond rwx, and covers default ACLs that automatically apply the right rights to newly created files.
-
Maxim Mironjuk
-
April 21, 2026
Pure vector search finds topically relevant results even when not a single word of the query appears in the document, but it occasionally loses exact term matches, such as a specific article number or brand name, that BM25 finds reliably. Pure text search, in turn, completely misses formulations that are semantically relevant but phrased differently. Hybrid search tries to combine the best of both worlds by merging two different rankings, one from BM25 and one from vector search, into a single result list. The technical challenge is that BM25 scores and vector distance values sit on completely different, incomparable scales. Reciprocal Rank Fusion solves this elegantly by combining not the scores themselves, but the relative rank positions. This article explains how RRF works, when hybrid search actually beats pure vector search, and how to configure the whole thing concretely in a single Elasticsearch query.
-
Maxim Mironjuk
-
April 20, 2026
Whether a Tailwind design system is actually being used or only exists on paper cannot be guessed, it has to be measured. A utility audit script, a clear token usage rate and regular drift reports turn vague impressions into solid numbers that can actually justify investment decisions.
-
Maxim Mironjuk
-
April 20, 2026
No more silently optimized-away imports: with verbatimModuleSyntax, the output contains exactly what the source code wrote.
-
Maxim Mironjuk
-
April 20, 2026
Product videos without captions exclude deaf and hard-of-hearing users, while missing audio description withholds key visual information from blind users. This article shows how developers add WebVTT captions, the HTML track element, and searchable transcripts to Magento and Hyva stores, including a real production workflow.
-
Maxim Mironjuk
-
April 20, 2026
Deprecation Handling isn't a checkbox on your upgrade checklist, it's an ongoing process: PHPStan rules, Composer audits, and CI gates surface deprecated code long before Magento removes it in a future major version and forces the migration on you.
-
Maxim Mironjuk
-
April 20, 2026
Exit codes are the only structured interface between Bash scripts. Anyone who understands what 0 to 255 mean, how $? works, when set -e does not trigger and how pipefail rescues pipe exit codes writes scripts that communicate reliably with each other instead of silently overlooking errors.
-
Maxim Mironjuk
-
April 20, 2026
A testing strategy that only lives in a wiki does not change a team's behavior by itself. Only when pyramid thinking is anchored in code review, in the definition of done, and in a gradual migration of existing tests does a healthy balance between fast unit tests and expensive end to end tests actually hold up under deadline pressure.
-
Maxim Mironjuk
-
April 19, 2026
Anyone who increments a variable inside a while-read loop after a pipe and then finds it back at zero outside the pipe has run into one of Bash's best-known traps: every stage of a pipeline runs in its own subshell. This article explains the mechanism and shows three robust workarounds, from shopt -s lastpipe to process substitution.
-