How to get notified when Claude Code needs your input

Desktop notifications can alert you when Claude Code pauses for permission or user input, and a click can reopen the right project in your IDE.

Geordi: Running Selenium tests in a VNC buffer

Selenium browser windows can run inside a VNC buffer instead of appearing on the desktop, while still allowing inspection when needed.

Spreewald, Cucumber: Selector for the nth Element

Custom Cucumber selectors in Spreewald make it easy to target repeated form fields by ordinal position, but :nth-of-type can break when surrounding HTML changes.

Locally testing a website on its real domain

Use a real production domain in local development for testing embeds, cookie banners, and other domain-allowlisted integrations by mapping it to localhost with HTTPS.

Selenium may break with ChromeDriver 75+

ChromeDriver 75+ can trigger W3C errors in Selenium tests, and browser log access may fail. Disabling w3c in Chrome options restores the older behavior.

E-mail deliverability

High-volume transactional email often gets blocked by spam filters and denylist issues, making reliable delivery hard even with standard SMTP relays.

Installing multiple MySQL versions on the same Linux with mysql-sandbox

Run several MySQL releases side by side in one Linux account for testing or Rails development, using isolated sandboxes on separate ports.

Let a Rails 3 application make a request to itself

Rails 3 can issue internal HTTP requests through the Rack interface, useful for Cucumber features and testing app responses without a browser.

How to stub class constants in RSpec

RSpec cannot stub constants directly; using attributes, wrapper methods, or test helpers makes constant-dependent code easier to isolate.

Heads up: Deployment with newly generated SSH key (using ED25519) might fail

Capistrano deployments can fail with ED25519 SSH keys when ed25519 and bcrypt_pbkdf are missing, and host key fingerprints may need refreshing after the switch.

Test a download's filename with Cucumber

Verify that a server response suggests the expected download name in a Cucumber scenario, using Capybara or Webrat to check the Content-Disposition header.

Limiting GitLab CI runner to specific branches or events

Control when CI jobs run by matching branches, merge requests, and other pipeline conditions with rules; rules replaces only and except in GitLab 12.3+.

How to overwrite and reset constants within Cucumber features

Cucumber feature tests can temporarily replace global constants and restore them after each scenario, including newly created constants, without warning noise.

How to evaluate CSS media queries in JavaScript

Responsive breakpoints can be checked in JavaScript with matchMedia() instead of duplicating CSS logic, and MediaQueryList change events track width updates efficiently.

ActiveRecord: Cleaning up your database with ignored_colums

Unused database columns confuse teams and can linger safely while legacy access is phased out. ignored_columns removes Rails accessors and helps flag fields for later removal.

Manually trigger a delegated DOM event

Delegated jQuery events can be hard to fire programmatically for testing; native dispatchEvent with the right event class works better than trigger in many cases.

whenever: Installing cron jobs only for a given Rails environment or Capistrano stage

Conditional cron jobs in whenever can target only one Rails environment or Capistrano stage, avoiding unwanted tasks on other deployments.

Test your CSS rendering output with GreenOnion

Front-end styling regressions are hard to catch in views and pages. GreenOnion stores browser snapshots and compares them with diff images or percentage differences.

Rails: Rest API post-mortem analysis

Rails API backends can be fast and easy to extend, but serializer maintenance, schema drift, documentation limits, and missing rate limits create real operational risks.

Migrating from Elasticsearch to Opensearch: searchkick instructions (without downtime!)

Zero-downtime migration from Elasticsearch to OpenSearch for Searchkick apps, including staging validation, client switching, and environment-specific index settings.

Jasmine: using async/await to write asynchronous specs

Readable Jasmine specs can use async/await for promises, async setup, event waiting, and controllable async spies instead of done callbacks.

Ruby bug: Symbolized Strings Break Keyword Arguments in Ruby 2.2

Dynamically created symbols can make keyword arguments turn nil in Ruby 2.2 when a method uses several keywords and **options.

makandra/gemika: Helpers for testing Ruby gems

A library for testing a Ruby gem against multiple Ruby, dependency and database combinations, with shared local and CI setup for full permutation coverage.

An incomplete guide to migrate a Rails application from paperclip to carrierwave

Rails file storage migration with background jobs, reruns, and URL rewrites; large media backfills need careful testing, queue tuning, and fallback handling.