How to find disabled fields with Capybara

Disabled form inputs can be hard to locate in Capybara when Selenium skips them; passing disabled: true makes them searchable.

Making jQuery throw an error when it returns an empty collection

jQuery selectors can silently return no matches; a tiny $.fn.ensure plugin throws an error when a collection is empty.

Dynamically uploading files to Rails with jQuery File Upload

Immediate multi-file image uploads in Rails with progress bars, previews, and cached attachments support a single gallery form and responsive UI.

UI Sortable on table rows with dynamic height

Table-row drag and drop in jQuery UI can misalign placeholder height and containment when rows auto-size to content; a small callback fix keeps reordering stable.

Javascript: Wait until an image has finished loading

Loading images asynchronously can race with rendering or size checks; ImageLoader.load() returns a promise that resolves with an HTMLImageElement once the image is ready.

PSA: When Redis (on LRU noeviction) reaches memory limits, keys with (any) expiry are removed, and keys without are not

Redis at maxmemory can evict expiring keys even before their TTL, while keys without a TTL stay until deleted and may trigger OOM errors.

jQuery: Find a selector in both descendants and the element itself

jQuery find ignores the current element and searches only descendants; findWithSelf returns matching descendants and the element itself.

Preloading images with CSS

Preloading hover or background images avoids visible delays when a new image is needed. Pure CSS can trigger loading without JavaScript.

Testing Cookie Limits

Browser cookie storage is constrained by per-domain limits on count and total size, which can break login or tracking data when limits are exceeded.

How to inspect RSS feeds with Spreewald, XPath, and Selenium

RSS feeds in Capybara can fail as XML inside the browser DOM; inspecting page source, using XPath, and opening the feed URL directly avoids false results.

IMAP: Check credentials

IMAP login problems can be isolated by testing the server with openssl s_client and sending a manual LOGIN command to verify credentials and connectivity.

Enable debugging for BIND 9 on Ubuntu

BIND 9 can be run with console debugging on Ubuntu by adding -d 50 -g to the startup options, making DNS issues visible during restart.

How to fix: RubyMine / IntelliJ "find file" dialog losing focus on awesome wm

RubyMine and IntelliJ search dialogs can lose focus under awesome WM, closing while typing. A registry flag or an rc.lua mouse-enter workaround prevents the main window from stealing focus.

Delay your Jasmine tests until the document is ready

Jasmine specs can run too early when the DOM is not ready, causing setup to fail. $(done) inside beforeAll waits for document readiness before the suite starts.

jQuery Core 3.0 Upgrade Guide | jQuery

jQuery 3.0 introduces breaking changes that can affect existing code during upgrades from older versions.

Official Color Codes for the World's Biggest Brands

Quick access to official brand color palettes for major companies through a searchable reference.

How to: Client-side language detection

Client-side language detection can route visitors to their preferred locale on the root path without a server-side component, with JavaScript and a meta refresh fallback.

thoughtbot/fake_stripe: A Stripe fake so that you can avoid hitting Stripe servers in tests.

fake_stripe runs a local Stripe-like server and fake Stripe.js for feature specs, letting purchase flows be tested without external HTTP requests or Stripe sandbox flakiness.

How to fix: "rake db:rollback" does not work

rake db:rollback can do nothing when the latest migrated version has no matching migration file, often after switching branches or deleting a migration.

postgres_ext: additional Rails bindings for PostgreSQL

Missing PostgreSQL types and query helpers for Rails 4.x make native array, CTE, and network-style filtering easier in ActiveRecord and Arel.

Prevent RubyMine from reformatting pasted code

RubyMine can change indentation when pasting code, which can disrupt copied snippets. Paste Simple or the Reformat on paste setting controls how pasted code is inserted.

How to change the hostname in Cucumber features

Capybara defaults to www.example.com, which can hide hostname-specific behavior in feature tests. Stubbing app_host lets scenarios run against a chosen host without leaking into others.

FreeBSD pkg can't find any packages

Broken pkg repository data can make FreeBSD package searches and installs return nothing, even when repositories appear up to date. pkg update -f forces a refresh and restores access.

Introducing Helix: Rust + Ruby, Without The Glue

Helix lets Ruby applications move performance-critical code into Rust without bridge glue, reducing integration overhead while keeping Ruby as the main app language.