Page 221 - Mironsoft Blog
-
Maxim Mironjuk
-
July 10, 2025
A CLI tool that feels intuitive almost always follows the same conventions established over decades that experienced users unconsciously expect: consistent flag names, predictable exit codes, helpful error messages instead of cryptic stack traces. Claude works well for systematically thinking through exactly these conventions before the first line of code exists, instead of bolting them on after user complaints arrive. This article shows how to deliberately think through command structure, error handling, and distribution strategy for a custom CLI tool with Claude.
-
Maxim Mironjuk
-
July 10, 2025
Introspection is one of the most elegant properties of GraphQL, letting you query the entire schema through a request. That exact feature is what makes it risky in production: anyone who knows the API can read internal field names, mutations with access to sensitive data, and even deprecation comments, without guessing a single endpoint. Anyone who does not deliberately secure introspection hands attackers the full map of their own API.
-
Maxim Mironjuk
-
July 09, 2025
PHP security is more than a single function or a framework feature, it encompasses input validation, output encoding, session hardening, secrets management, CSRF protection, security headers, clean error handling and dependency security as one coherent system. This article gives the complete overview of the security best practices that every production PHP application needs, regardless of the framework in use.
-
Maxim Mironjuk
-
July 09, 2025
x-sort brings native drag and drop sorting to Alpine.js, without SortableJS, without jQuery UI, and without external dependencies. Sortable lists, moving items across groups, drag handles, and server synchronization can all be built with a handful of HTML attributes.
-
Maxim Mironjuk
-
July 09, 2025
Privacy by design is a requirement under Article 25 of the GDPR, not a recommendation. Yet missing pseudonymization, unbounded retention periods, or nonexistent deletion routines regularly slip unnoticed into production code. This article shows how to use Claude to technically surface such patterns during code review, and where the clear boundary to legal advice sits, a boundary a language model cannot cross.
-
Maxim Mironjuk
-
July 09, 2025
Dockerfiles that are never statically checked accumulate silent problems: outdated base images with critical CVEs, invalid compose configurations, and structural issues that only surface once they hit production. Automated linting and testing closes that gap right inside the CI pipeline.
-
Maxim Mironjuk
-
July 09, 2025
Synchronous systems scale up to a point, then HTTP requests grow too long, database connections pile up, and a single failing service blocks the entire system. Symfony Messenger solves exactly this problem through a clear separation of command, event and query, combined with asynchronous transports that deliver messages reliably even during system outages.
-
Maxim Mironjuk
-
July 09, 2025
The visitor pattern separates operations from the class hierarchy they operate on, so new operations can be added without changing existing data classes. Using an abstract syntax tree as an example, this article shows double dispatch, the visitable interface, and the limits of this approach in PHP 8.4.
-
Maxim Mironjuk
-
July 09, 2025
The Docker socket is often mounted as a convenient trick so a container can start other containers itself. What gets overlooked most: reaching that socket effectively grants root privileges on the entire host, no --privileged flag required.
-
Maxim Mironjuk
-
July 09, 2025
Anyone who writes Bash scripts with hardcoded paths and rigid parameters forces themselves into manual editing on every run. Cleanly parsing arguments and flags in Bash means building scalable CLI interfaces with getopts, manual long-option loops, complete validation and understandable usage output that fit into any pipeline.
-