Testing ActiveJob `limits_concurrency` with Solid Queue

ActiveJob concurrency checks can pass falsely with the :test adapter because blocked jobs still enqueue; using :solid_queue verifies real blocking behavior.

Generating test images on the fly via JavaScript or Ruby

Create placeholder images dynamically as SVG data URIs in JavaScript or Ruby, avoiding external image services and keeping the graphic easily adjustable.

Use a global .gitignore file to ignore stuff from your machine

Git can ignore machine-specific files globally instead of per repository, avoiding repeated setup and cluttered project .gitignore files.

Faux-disabled fields in HTML forms

Form fields can block input without using disabled, but readonly, pointer-events: none, and inert each affect submission and accessibility differently.

Opt out of selenium manager's telemetry

selenium-webdriver can send hourly usage stats during browser feature specs; setting SE_AVOID_STATS=true disables the telemetry call.

Cucumber CI job quirks

Cucumber CI rerun logic can pass green after syntax errors when no failing_features file is written; native --retry avoids this edge case.

Debugging Rails Active Jobs with the Vanilla Adapters

Rails jobs can be hard to inspect because adapters behave differently in development, test, and production. Logging, synchronous execution, and queue tables help trace failures and pending work.

pnpm: How to update a single package conservatively

Selective pnpm dependency updates for CVE mitigation can be smaller than a full install. pnpm up with exact package versions keeps package.json and the lockfile changes minimal.

Project management best practices: Standup

Daily team check-ins keep small projects aligned, surface blockers early, and prevent developers from disappearing into isolated work.

Rails disables CSRF protection in tests

Rails test environment turns off CSRF checks by default, so missing authenticity tokens can hide broken POST flows. Enabling forgery protection in JavaScript tests catches these failures.

How to iterate over all ActiveRecord models

Rails maintenance scripts can loop through every loaded ActiveRecord model for migrations or data fixes. eager_load! and ApplicationRecord.descendants help avoid missing models.

Rails: Join model table migration template

create_join_table builds association tables without ids or timestamps, using foreign keys and optional unique indexes to prevent orphaned or duplicate join records.

Plain CSS does not support variables in media queries (yet)

CSS custom properties cannot be used inside media queries in plain CSS, so responsive breakpoints stay fixed. PostCSS custom media adds reusable query names, but not @container queries.

Working with lists of DOM elements in JavaScript

DOM query results can be live, array-like lists rather than true arrays, and some APIs include text nodes or comments as children.

Fix PNG colors in IE, old Safaris and new Firefoxes

PNG files can show inconsistent colors across browsers because of embedded color profiles and metadata. Converting to a standard profile or stripping PNG chunks improves display consistency.

Git: Show commits that have touched specific text in a file

Find Git commits that changed a specific line or text in a file using git log -G; tig offers a navigable view of matching changes.

RSpec: How to aggregate failures

aggregate_failures in RSpec groups multiple expectation failures in one example, improving test feedback and making debugging mismatched values easier.

Automated "git bisect" will make your day

git bisect run automates regression hunting by repeatedly testing revisions and narrowing down the first bad commit from a command’s exit status.

Webpack(er): A primer

Webpacker integrates webpack with Rails to bundle JavaScript, stylesheets, images, and other assets, with Yarn managing dependencies and loaders handling non-JavaScript files.

Ruby: Using named groups in Regex

Named capture groups make complex regular expressions easier to read and extract values from, with match returning nil on no match and named_captures available in Ruby 2.4+.

Tint and Shade Generator

Simple web tool for creating lighter tints and darker shades from any HEX color value; oklch() can generate them by adjusting lightness.

Git: Finding changes in ALL commits

Git searches are often limited to the current branch, so changes can be missed across other refs, merges, or reflog entries. git log can search broader history with ref and path filters.

RubyMine: Find and Replace with Regex (Capture Groups and Backreferences)

Regex find-and-replace in RubyMine uses capture groups and backreferences to rewrite quoted text, URLs, and old RSpec syntax safely.

Avoid the FLOAT type for database columns

FLOAT can store slightly incorrect values because of precision semantics. DECIMAL offers predictable rounding and overflow behavior for numeric columns.