Page 9 - Monthly Archives: June 2025
-
Maxim Mironjuk
-
June 19, 2025
TypeScript allows generics over concrete types, but not generics over type constructors themselves. A function that works equally well for any container type such as Array, Option, or Promise cannot be written directly. Through a technique called defunctionalization, known as the URI pattern from fp-ts, this missing feature can still be simulated in a practical way.
-
Maxim Mironjuk
-
June 19, 2025
Every Linux process carries a unique PID and points to its parent via its PPID, which naturally forms a traceable tree of parent and child processes. This article shows how to read that tree with ps and pstree, why orphaned processes get reparented to PID 1, and how to track down and terminate a hung PHP-FPM worker in practice.
-
Maxim Mironjuk
-
June 19, 2025
Anyone who treats kernel modules as a black box is missing one of the most useful diagnostic tools on Linux. lsmod, modinfo and modprobe show which drivers and subsystems are actually loaded, how dependencies between modules get resolved, and how to load, remove or permanently block a module without ever recompiling the kernel.
-
Maxim Mironjuk
-
June 19, 2025
When frontend and backend define their own independently maintained types for the same API, both sides eventually drift apart, and the bug only surfaces at runtime for the customer. A shared contract package in a TypeScript monorepo makes such deviations visible at compile time instead.
-
Maxim Mironjuk
-
June 19, 2025
An automatically generated invoice PDF from Magento looks correct to sighted customers, but to screen reader users it is often just an unstructured collection of text fragments, or even a plain image with no recognizable text at all. This article covers what the PDF/UA standard concretely demands, how tagged PDFs differ from scanned images, and how to rework Magento invoices, catalogs, and data sheets into accessible documents step by step with Adobe Acrobat and the PAC checker.
-
Maxim Mironjuk
-
June 18, 2025
Once an Expo Router app grows past a single tab bar, the question of how headers, tab bars and other shared UI elements stay consistent across multiple route levels becomes unavoidable, without every single screen repeating the same configuration. Nested _layout files solve exactly this problem by nesting like React components, with every folder level able to add its own navigator on top. This article covers how that nesting works in practice, how modal presentation gets controlled through the file system, and how a tab navigation with a modal detail screen on top gets built concretely.
-
Maxim Mironjuk
-
June 18, 2025
An HTML coverage report is good for a bird's-eye view, but poor for actual work. PhpStorm shows test coverage directly in color inside the editor gutter, so uncovered lines are visible exactly where you are coding.
-
Maxim Mironjuk
-
June 18, 2025
Behind every citation that ChatGPT, Claude or Perplexity generates from a website sits an AI crawler that read the page beforehand. Anyone who knows the user agent strings of GPTBot, ClaudeBot, PerplexityBot and Google-Extended can distinguish in the server log whether a model is currently training or researching a live answer, and can open or block that traffic deliberately through robots.txt and llms.txt.
-
Maxim Mironjuk
-
June 18, 2025
A slow, unstructured test suite is not a test suite, it is a drag on the team. This checklist surfaces every place where PHPUnit setups lose time, maintainability and developer trust, and gives a directly actionable step for each point.
-
Maxim Mironjuk
-
June 18, 2025
A stolen server or a removed disk is an open book without encryption. LUKS encrypts entire block devices transparently for the filesystem on top and can even be unlocked automatically with keyfiles, without sacrificing protection against physical theft.
-