Page 271 - Mironsoft Blog
-
Maxim Mironjuk
-
April 25, 2025
Most data models only know a single time axis: when a row was last changed. Once retroactive corrections enter the picture, though, such as a miscalculated invoice that gets corrected three months later, a single time axis stops being enough. Bitemporal modeling consistently separates valid time, meaning when a fact was actually true from a business perspective, from transaction time, meaning when it became known to the system. This article explains both axes, walks through a fully worked example, and gives a realistic sense of when the extra modeling effort actually pays off.
-
Maxim Mironjuk
-
April 25, 2025
For years, gzip compression in the browser meant loading pako or a WASM port of zlib, often several hundred kilobytes just for the library. The Compression Streams API makes that unnecessary: CompressionStream and DecompressionStream are available natively in the browser.
-
Maxim Mironjuk
-
April 25, 2025
A custom MCP server connects Claude to internal systems such as project data, databases, or APIs without hard-coding every integration into the assistant itself. This article walks through building a minimal server with a real tool, the protocol shape of tools, resources, and prompts, and local testing before wiring it up to an assistant.
-
Maxim Mironjuk
-
April 25, 2025
Classic Lua scripting with EVAL and EVALSHA has been the standard way to run atomic server logic in Redis for years, but it brings practical problems around maintainability, versioning, and replication behavior. Since Redis 7, Redis Functions offer a more structured alternative through FUNCTION LOAD, treating scripts as named, persistently stored libraries instead of ephemeral, hash-referenced individual scripts. What the switch looks like in practice, what advantages it brings, and where EVAL still remains the better choice, is what this article covers.
-
Maxim Mironjuk
-
April 25, 2025
A Docker image is made up of many layers of code someone else wrote: the base distribution, system-wide packages, a language runtime, and application dependencies. Any of those layers can carry known vulnerabilities without a developer ever having written a single line of that code themselves. Automated image scanning in the CI/CD pipeline surfaces those vulnerabilities before an image is even built toward production, preventing known gaps from quietly going live.
-
Maxim Mironjuk
-
April 25, 2025
An unclean shutdown or a power outage is enough to leave a filesystem with inconsistent metadata. fsck detects and repairs such errors, but only if you follow the workflow, unmounting, checking read-only, and repairing only afterward, in the right order.
-
Maxim Mironjuk
-
April 25, 2025
Anyone building inheritance hierarchies in PHP with factory methods or ActiveRecord patterns inevitably runs into the difference between self:: and static::. Late Static Binding solves exactly the problem that self:: always stays bound to the class where the method was defined, instead of the class it was actually called through.
-
Maxim Mironjuk
-
April 25, 2025
As AI Overviews appear on an ever growing share of search queries, classic click through rate figures from Search Console lose noticeable accuracy. A position one that used to convert ten percent of impressions into clicks can now bring in far fewer clicks despite an unchanged ranking, and Search Console does not clearly flag this effect. This article explains why the distortion happens, which workaround methods approximate the real effect, and where current measurability runs into hard limits.
-
Maxim Mironjuk
-
April 25, 2025
AI-generated tests deliver a working test suite in seconds, but without human review it stays unclear whether they actually verify the intended behavior or merely lock in the current, possibly buggy code state. This article shows how Magento developers can use Claude Code productively for test generation, tell genuine edge cases apart from mere line coverage, and systematically review test quality.
-
Maxim Mironjuk
-
April 25, 2025
Dark mode in Tailwind CSS is more than a dark: prefix in front of every class. A well thought out dark mode strategy combines system synchronization, user preference persistence, CSS custom properties and a flicker-free toggle, from v3 all the way to the new @variant capabilities in v4.
-