Page 5 - Monthly Archives: May 2026
-
Maxim Mironjuk
-
May 04, 2026
PHPUnit 10 replaced the long-grown TestListener with a cleanly typed Extension API. Anyone who wants custom logging, Slack notifications on failure, or project-specific rules inside their test suite will find the migration path here, with runnable examples.
-
Maxim Mironjuk
-
May 04, 2026
Unused code surprisingly often still ends up in the production bundle, because CommonJS imports, barrel files, or a wrongly set sideEffects flag prevent the bundler from removing it. This article shows mechanically how tree shaking works, which patterns block it, and how bundle analyzer tools make the root causes visible with concrete kilobyte numbers.
-
Maxim Mironjuk
-
May 04, 2026
Code splitting is not a one-off measure but an ongoing strategy. React.lazy and dynamic imports only load JavaScript when it is genuinely needed, but only if the split boundaries sit in the right places. Too many small chunks slow down loading through HTTP overhead. Too few prevent any benefit at all. This tutorial shows how to find the balance.
-
Maxim Mironjuk
-
May 04, 2026
When a request travels through five containers and loses 800 milliseconds somewhere, metrics and logs alone only help so much. Distributed tracing with OpenTelemetry follows every request as a connected chain of spans across container boundaries and shows in Jaeger exactly which service, which database query or which external call is responsible for the latency.
-
Maxim Mironjuk
-
May 04, 2026
Servers that run SSH with password login and an open root account are a preferred target for automated brute force attacks from across the internet. This article shows in practice how key based authentication, a consistently hardened sshd_config, clean client configuration through host specific entries, and fail2ban as a complementary layer secure SSH access on production Linux servers reliably and permanently, without exotic extra tools.
-
Maxim Mironjuk
-
May 04, 2026
Structured clone copies data by default on every postMessage call, which costs noticeable time with large binary data. Transferable objects solve this through an ownership change instead of a copy. This article covers the postMessage transfer list, the newer ArrayBuffer.prototype.transfer(), and common pitfalls with detached buffers.
-
Maxim Mironjuk
-
May 04, 2026
A single changed design token can shift dozens of components at once without a single unit test noticing. Visual regression tests make exactly these shifts visible before they reach production, through automated screenshot comparisons right inside the CI pipeline.
-
Maxim Mironjuk
-
May 03, 2026
Between loading the kernel and mounting the actual root filesystem sits a step that stays invisible on most servers until it fails: the initramfs. Anyone running LVM, LUKS, or a custom storage setup needs to understand how dracut builds this minimal pre boot system, so that an unable to mount root error does not turn into hours of troubleshooting.
-
Maxim Mironjuk
-
May 03, 2026
As soon as aggregation after joins runs over several one to many relations at once, rows multiply before SUM or COUNT even start calculating, and results become silently too high. This article explains the fan-out problem with a concrete example and shows how pre-aggregation in subqueries and window functions reliably prevent wrong sums.
-
Maxim Mironjuk
-
May 03, 2026
SUID, SGID, and the sticky bit control which rights a program runs with, who inherits group ownership, and who is allowed to delete files in shared directories. Used correctly, they enable safe system tools like passwd and stable shared project folders without constant manual permission fixes. Misconfigured, unnoticed SUID binaries open a classic path to privilege escalation that every administrator should audit regularly.
-