Page 17 - Monthly Archives: November 2025
-
Maxim Mironjuk
-
November 07, 2025
A mirror repository reproduces a Git repository not just in content but in full structure, including every branch, tag, and internal reference. That fits backups, disaster recovery, and migrations between hosting platforms, but it requires a clear understanding of how git push --mirror actually overwrites a target repository.
-
Maxim Mironjuk
-
November 07, 2025
A functional test confirms that a button stays clickable and a form still submits, but it says nothing about whether the very same interaction shifted two pixels or ended up with the wrong contrast after a Tailwind refactor. This article shows how to build visual regression testing with Playwright screenshots or Percy as its own test layer in the Hyvä theme, which pages actually make sense for the test scope, and how dynamic content like prices and dates stops corrupting snapshots for good.
-
Maxim Mironjuk
-
November 07, 2025
A daily backup alone only saves the state from midnight. Point-in-time recovery combines a base backup with a targeted replay of binlogs and restores a MySQL database up to the last correct transaction, right before a faulty DELETE or DROP.
-
Maxim Mironjuk
-
November 07, 2025
Playwright fixtures replace fragile beforeEach blocks and shared global test state with clearly defined, reusable building blocks for setup and teardown. Once you understand built in fixtures like page, context and browser and start writing your own with test.extend, you get tests that run in parallel, never interfere with each other, and avoid duplicated setup code across files.
-
Maxim Mironjuk
-
November 07, 2025
A search that finds "laptop" but returns nothing for "notebook", or that treats "running" and "ran" as completely different words, loses users before the first click. Synonyms and stemming solve exactly this problem when combined correctly in the analyzer, but the details of synonym_graph, stemmer type and language selection decide whether the search becomes more precise or just fuzzier.
-
Maxim Mironjuk
-
November 07, 2025
"Why does product B rank above product A, even though A is the better match?" is one of the most common questions in day-to-day relevance work, and without a systematic tool the answer remains guesswork. The Explain API exposes exactly which individual terms, weights and boosts make up a BM25 score, turning scoring debugging from guessing into analysis.
-
Maxim Mironjuk
-
November 07, 2025
Filesystem operations are among the most frequently untested parts of PHP applications. Anyone who calls file_get_contents() and file_put_contents() directly ends up writing code that either doesn't get tested at all, or leaves behind tests that create real files, have order dependencies, and break when run in parallel. vfsStream, stream wrappers and filesystem abstraction solve this problem at its root.
-
Maxim Mironjuk
-
November 07, 2025
The cursor property can do more than switch between a handful of system icons: url() lets you embed custom cursor images, and multi-step fallback chains keep the interface understandable even when a graphic fails to load. Anyone using custom cursors needs to know exactly where they add real value and where they only hurt usability.
-
Maxim Mironjuk
-
November 07, 2025
Choosing the right Nuxt auth module decides weeks of development time and the long term maintainability of authentication. sidebase-nuxt-auth, nuxt-auth-utils and a hand rolled JWT system take fundamentally different approaches, each suited to different project sizes.
-
Maxim Mironjuk
-
November 06, 2025
A legacy project with zero test coverage feels like a wall with no handhold. With characterization tests as a starting point, clear risk based prioritization, and realistic milestones, you can build a resilient PHPUnit baseline step by step, without overwhelming the team with an unrealistic all or nothing goal.
-