Archive: 2026-01 | Page 8
Archive: January 2026
-
Jan 23, 2026
Redux still solves valid problems today, but in many projects it buries the actual business logic under boilerplate. Whoever migrates from Redux to Zustand step by step replaces reducers, actions and middleware slice by slice, without rewriting the app in a risky single pass.
-
Jan 23, 2026
An exact count of unique values across billions of documents would be nearly impossible to justify in terms of memory. The cardinality aggregation solves this problem with the HyperLogLog++ algorithm, which approximates the number of unique values with constant, very small memory usage instead of remembering every value individually. The precision_threshold parameter decides how tightly accuracy and memory usage are coupled, and this article shows when the resulting error rate is completely unproblematic from a business perspective.
-
-
Jan 23, 2026
Once a REST API has to go through its first breaking change, the question of versioning strategy becomes unavoidable, and the three common approaches, URL path versioning, content negotiation via the Accept header, and a dedicated custom header, have fundamentally different effects on caching, client implementation, documentation, and actual usability for external integrators. Making the decision early and deliberately saves a painful, usually incomplete migration years later, once thousands of clients already depend on the originally, carelessly chosen structure.
-
Jan 23, 2026
For phrases like '3 days ago' or 'in 2 hours' you no longer need an external library: Intl.RelativeTimeFormat handles localized relative time natively in the browser, including rounding logic for all common time units.
-
Jan 23, 2026
An email template built with Tailwind CSS can look completely different in Outlook on Windows than in Gmail, because both clients use different rendering engines with their own restrictions. Anyone taking email client compatibility seriously needs to know these differences and address them with targeted fallbacks.
-
Jan 23, 2026
A Polymorphic Association promises a single comments table for posts, photos, and videos at once, but the generic foreign key behind it breaks the database's referential integrity. This post shows how the classic type-plus-id pattern emerges, why it leads to orphaned rows, and which three alternatives solve the same problem without giving up foreign key constraints.
-
Jan 23, 2026
SSH is the most important gateway for server access, and also one of the most heavily automated attack targets on the internet. This article shows how key-based authentication with ed25519, disabled root login, fail2ban, and a hardened sshd_config reliably block brute-force attacks, rounded out with bastion host patterns for secure access to production servers.
-
Jan 23, 2026
Anyone who operates Docker purely by gut feeling loses time debugging and ends up with fragile images. These 50 essential Docker commands and patterns cover images, containers, volumes, networks and Compose, with concrete examples you can apply immediately in daily development work.
-
Jan 23, 2026
A scan report nobody reads protects no system. A real vulnerability policy gate actively stops the build process the moment a container image contains critical vulnerabilities, with clear thresholds and a defined way of handling false positives, instead of treating security warnings as an optional footnote in the CI log.