Page 12 - Monthly Archives: May 2025
-
Maxim Mironjuk
-
May 13, 2025
Tailwind's content scanning promises that only actually used classes end up in the final CSS. In practice, unused Tailwind classes still accumulate, through removed components, oversized safelists, and dynamically composed class names that scanning can never classify as safe in the first place.
-
Maxim Mironjuk
-
May 13, 2025
Choosing a primary key is one of the most consequential decisions in table design: a business natural key such as an email address or a product SKU carries meaning, an artificial surrogate key such as an auto-increment value or a UUID is stable and meaningless. This post compares both strategies concretely, presents composite keys as a third option, and delivers a practical decision guide.
-
Maxim Mironjuk
-
May 13, 2025
Teams that accept AI suggestions without review gradually lose the ability to reason about code independently and to find bugs without assistance. This article shows how skill atrophy develops in a development team, which habits keep understanding of generated code intact, and how the productivity gains of AI assistants can coexist with genuine, lasting developer competence.
-
Maxim Mironjuk
-
May 12, 2025
When a Linux server resolves domain names sometimes and not other times, the cause is rarely the DNS server itself but the local resolution chain in front of it: resolv.conf, systemd-resolved, nsswitch.conf, or a stubborn cache. This guide walks step by step through the correct order of checks, from the configuration file to the actual application runtime, and shows why a successful dig call alone proves nothing.
-
Maxim Mironjuk
-
May 12, 2025
CLI commands are often the least tested part of a PHP application. Yet these are exactly the commands that drive cron jobs, migrations, deployments and critical batch operations. The exit code is the only communication channel between a process and the calling system, and it has to be correct so CI pipelines and orchestrators can react to failures.
-
Maxim Mironjuk
-
May 12, 2025
The Vue 3 template compiler analyzes every template at build time and produces render functions that already know which parts can possibly change at runtime. Understanding these compiler optimizations lets you write templates that benefit fully from them instead of accidentally triggering slow fallback paths.
-
Maxim Mironjuk
-
May 12, 2025
A REST API that never makes breaking changes is an API that never truly evolves. Teams that plan deprecations, sunset dates and migration paths from the start can evolve their APIs deliberately, without losing integrators or breaking them without warning.
-
Maxim Mironjuk
-
May 12, 2025
Three paths lead to a Claude-based system that should show specific knowledge or a specific behavior: plain prompting, retrieval augmented generation, and fine-tuning. In practice, these three approaches get mixed up constantly, and that confusion is expensive: applying fine-tuning to a problem that actually needs frequently changing knowledge means paying for recurring training runs to solve a structural problem a retrieval pipeline solves in a few days. This article lays out clear decision criteria.
-
Maxim Mironjuk
-
May 12, 2025
Symfony Flex Recipes automatically create configuration files, directories, and environment variables on composer require. Once you understand how manifest.json is structured and how the contrib repository works, you can build your own recipes for internal bundles and distribute them reproducibly across teams.
-
Maxim Mironjuk
-
May 11, 2025
A single container without limits can bring an entire host to its knees. Understanding Docker CPU and memory limits prevents resource monopolies, makes capacity planning measurable, and protects every service on the same host, not just your own.
-