Enforce consistent commit messages with a small Ruby script and Lefthook: a commit-msg hook that reads .git/COMMIT_EDITMSG, validates prefixes like feat, fix, or docs against a regex, and rejects bad messages before they land. Full script and Lefthook config included.
JSONB columns in Ruby on Rails without extra gems: use store_accessor to read and write keys like normal attributes, set sensible defaults, and validate required keys with a small module. Practical code you can drop into a PostgreSQL-backed Rails app.
Ruby DSLs demystified by building three of them: a Minitest-like test framework, a Rails-style routes definition, and an RSpec-like spec syntax. See how blocks, instance_eval, and Ruby metaprogramming turn plain classes into a friendly mini-language.
Genetic algorithms meet Ruby Ractors: a script that repaints Lady with a Weasel generation by generation. Follow the full lifecycle (mutation, fitness scoring, crossover), see how Ractor parallelism speeds up scoring specimens, and view the final result.
Selenium::WebDriver::Error::ScriptTimeoutError in Capybara system tests often appears after a Chrome driver update, and the culprit is default_max_wait_time set to zero for non-headless debugging. Why the error happens and the one-line config change that fixes it.
The Record utility type in TypeScript builds object types with fixed keys and value types. A worked example shows Record<Keys, Type> with union keys: restricting IDs to chosen literals and mixing User and AdminUser values, so the compiler flags missing or extra entries.
ETags let browsers skip downloading content that has not changed. What entity tags are in HTTP, then the Rails caching toolkit: stale?, fresh_when, expires_in, expires_now, public requests, and http_cache_forever, each shown with a concrete controller example.
Run any command in the background in bash by appending &, check it with jobs, and stop it with kill -9 %. A short guide using a Rails server as the example, so long-running processes stop blocking your terminal while you keep working.
Bottom navigation sitting too close to the screen edge on iPhone X and newer? The fix for iOS and Android PWAs is the safe area: use CSS env(safe-area-inset-bottom) to adjust the bottom padding so the bar clears rounded corners and the home indicator.
JavaScript prototypes explained through a working example: turning a standalone myCustomForEach helper into an Array.prototype method you can call directly on any array. See how prototypes share properties and methods between instances of the same object type.
Multi-auth in Rails with Devise: one app accepting both Google OAuth2 and SAML logins via OneLogin or Okta. Covers IdP and SP basics, provider setup, Devise integration, plus fixes for local domain problems and CORS errors during login and logout.
Need a real domain, subdomains, or HTTPS while developing a Rails app? nip.io gives any local IP a wildcard DNS name without touching your hosts file. How to configure Rails for it, enable local HTTPS, and quickly find your local IP address.
A product owner is defined by real decision-making power: controlling the budget, setting the vision and strategy, and owning the backlog. What each responsibility means in practice, plus a blunt list of cases where, despite the title, you are not the product owner.
The Singleton pattern in JavaScript ensures one shared instance with a global access point. A practical implementation using an object literal and Object.freeze, a shared bucket example, and where a singleton fits: configuration, logging, or a central data store.
The Singleton pattern in Ruby, shown two ways: a hand-rolled class using private_class_method :new with a self.instance accessor, then a cleaner refactor with the built-in Singleton module. What the pattern guarantees and when one shared instance is worth it.
ACID stands for Atomicity, Consistency, Isolation, and Durability: the four guarantees behind reliable database transactions. Each property explained with a concrete Rails example, like wrapping a money transfer in a transaction so it fully succeeds or rolls back.
Instance variables versus class variables in Ruby: what @ and @@ actually mean, why an @ variable set at the class level stays empty when read from an instance, and how @@ values are shared by every instance. Short code samples make each behavior easy to verify.
cattr_accessor, mattr_accessor, and the thread_cattr and thread_mattr variants explained: ActiveSupport helpers for class-level and module-level attributes, plus thread-safe versions that avoid data inconsistencies in multi-threaded apps. Examples for each accessor, reader, and writer.
Extend, prepend, and include in Ruby each add module code to a class differently: prepend puts the module before the class so its methods win, extend adds class methods, include adds instance methods. Short runnable examples show how each changes the method lookup chain.
Blocks, procs, and lambdas in Ruby all wrap code you can pass around, but they differ in how they check arguments and handle return. Implicit and explicit blocks with yield, building reusable procs, and when a lambda is the safer pick, all shown with runnable examples.
class_eval, instance_eval, and instance_exec power Ruby metaprogramming: reopening classes, running blocks inside an object, and passing arguments in. All explained through one MyWebServer class with a configure DSL, ending in a reusable AppConfig settings pattern.
CSS attribute selectors give you styling control beyond classes and IDs: target inputs by type, style elements with custom attributes, match specific class values, and automatically mark external links. Copy-ready snippets for each case, no extra classes needed.
TypeScript function generators can pause and resume execution, returning values one at a time instead of all at once. What generators are, how yield works in a simple example, and a practical number sum generator that shows where they beat regular functions.