Page 7 - Monthly Archives: April 2025
-
Maxim Mironjuk
-
April 23, 2025
An unencrypted backup is a second copy of the most sensitive data in a company, often protected even less than the original. Backup encryption is therefore not a nice-to-have, but a basic requirement as soon as a backup leaves your own server. This article shows how GPG, OpenSSL, restic, and Borg are used on Linux for encrypted backups, and what to watch for in key management.
-
Maxim Mironjuk
-
April 23, 2025
In Hyva theme projects, a bug rarely lives cleanly on one side: is a Tailwind class generated wrong, or does the watcher simply never see it? PhpStorm can bundle an Xdebug session and a Node process into a single Compound configuration so both sides pause in sync.
-
Maxim Mironjuk
-
April 22, 2025
Repository tests with mocks check the wrong layer. A mock repository cannot detect a SQL syntax problem, an index problem, or an N+1 bug. Real database access in tests is expensive, but irreplaceable at the right spots. The art lies in knowing exactly where those spots are and how to implement database isolation reliably.
-
Maxim Mironjuk
-
April 22, 2025
Cypress tests that pass reliably on your local machine often fail unexpectedly in CI due to resource limits, mismatched viewports, and timing differences on shared runners. This article shows how to run Cypress headless in GitLab CI and GitHub Actions, capture video and screenshot artifacts on failure, cache node_modules and the Cypress binary, and parallelize test runs across multiple jobs.
-
Maxim Mironjuk
-
April 22, 2025
Beyond the built-in shorthands like flip-block, @position-try lets you define your own named fallback positions, complete with their own viewport safety margin. This article walks through ready-to-copy recipes for dropdown menus, nested submenus and tooltips that reliably stay inside the visible area.
-
Maxim Mironjuk
-
April 22, 2025
Anyone who wants to customize an invoice PDF inevitably ends up at Pdf\AbstractPdf, Pdf\Invoice, and Zend_Pdf, not at the sales business logic. This article shows how a targeted preference instead of a full class copy extends PDF generation, how custom renderers get registered via di.xml, and how invoice PDFs can be generated performantly via CLI batch or message queue instead of synchronously in checkout.
-
Maxim Mironjuk
-
April 22, 2025
Optimizer hints such as USE INDEX, FORCE INDEX, and STRAIGHT_JOIN intervene directly in the query optimizer's decisions and can solve real problems with stale statistics, but they can also create new ones when applied carelessly. This article shows the syntax, the effect, and the clear line between legitimate optimization and risky code smell.
-
Maxim Mironjuk
-
April 22, 2025
As soon as multiple campaigns with overlapping time windows are being prepared at once, a single scheduled update in Content Staging stops being enough. With a clear structure for parallel staging updates, conflict detection and an approval process, campaign planning stays manageable even with several running actions at the same time.
-
Maxim Mironjuk
-
April 22, 2025
An SEO briefing nobody reads is worthless, no matter how thorough the keyword research behind it was. Many SEO teams produce briefings with twenty bullet points, several pages of keyword lists and redundant instructions that writers skim through out of sheer overload instead of actually implementing. This article shows a lean briefing format that focuses on the elements that genuinely matter, and therefore actually lands in day to day editorial work.
-
Maxim Mironjuk
-
April 21, 2025
EXISTS and IN look interchangeable at first glance, but differ in one decisive point: how they handle NULL values in the inner result set. While EXISTS only checks for the existence of a row and NULL plays no role there, a NOT IN with a NULL-containing list can silently return an empty result set, a behavior that regularly leads to missing rows in reports in production, without any error appearing.
-