Capybara: Waiting for pending AJAX requests after a test

Selenium tests can fail when pending AJAX calls are aborted as Capybara closes the browser tab. Blocking new requests and waiting for in-flight work reduces flaky teardown errors.

Rails: How to get PostgreSQL version being used

Get the PostgreSQL server version from a Rails app or console using ActiveRecord::Base.connection.select_value('SELECT version()') when you need database details at runtime.

HTTPie nice command line HTTP client

http is a simple command-line client for debugging and testing HTTP servers, REST APIs, and web services with readable defaults and colored output.

Creating a self-signed certificate for local HTTPS development

Local HTTPS development often needs a trusted certificate for browser access. Self-signed or CA-signed certificates let localhost or wildcard hostnames run without warning dialogs.

Start Rails console or server with debugger

Enable the Ruby debugger in script/console or script/server to inspect methods and local variables during a Rails session.

How to let passenger restart after deployment with capistrano

Phusion Passenger restart handling after deploy is version-dependent; capistrano-passenger picks the correct restart command automatically and hooks into Capistrano.

Rails: Keeping structure.sql stable between developers

db/structure.sql can vary between developers because database or CLI tool versions differ, creating noisy diffs and merge conflicts in Rails projects.

Timeouts for long-running SQL queries

Database query limits prevent runaway SQL from consuming all resources; PostgreSQL statement_timeout and MySQL max_execution_time can cancel slow statements automatically.

Cucumber: More patience for Selenium features

Parallel Selenium features can time out when Capybara waits too little for browser-server interactions; a support file increases patience for @javascript scenarios.

Rails: Fixing ETags that never match

Rails default ETags often never repeat because rotating CSRF tokens and CSP nonces change response bytes, blocking cache hits and 304 responses.

Defining "partials" in pure HTML without additional rendering helpers

Define reusable page fragments directly in HTML without server or client rendering helpers; a tiny JavaScript snippet enables custom elements and partial-like reuse.

Middleman does not fingerprint asset paths by default

Middleman static sites serve stable asset URLs by default, so cached JavaScript and CSS can stay outdated. :asset_hash adds fingerprinted paths to force cache refreshes.

CarrierWave: Processing images with libvips

CarrierWave uploads can process images with libvips instead of ImageMagick for faster, lower-memory handling and reduced security risk, including resizing, color conversion, metadata stripping and PDF thumbnails.

Faking and testing the network with WebMock

Network-dependent tests can avoid real HTTP by stubbing remote responses and asserting requests with WebMock, including query strings and bodies for GET and POST.

Check apache config files' syntax

Validate Apache configuration syntax with apache2ctl configtest or apache2ctl -t; passing checks do not guarantee a successful server start.

How to add esbuild to the rails asset pipeline

Migrating a Rails app from Sprockets-only asset handling to esbuild adds modern JavaScript bundling and can surface path, font, and Sass compatibility issues.

Be careful to use correct HTTP status codes for maintenance pages

Wrong status codes on maintenance pages can deindex sites or cache bad redirects. 503 Service Unavailable with Retry-After preserves SEO during temporary downtime.

Maximum size of a MySQL query

MySQL query size is limited by max_allowed_packet; the default is 16 MB, so oversized requests can fail unless the server setting is increased.

What you need to know about Angular SEO

JavaScript-heavy Angular apps are hard for search engines to index because crawlers often ignore client-side rendering. Server-side rendering or prerendering improves crawlability and SEO.

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.

Speeding up ssh session creation

Repeated SSH connections add noticeable overhead, slowing Git pushes, pulls, and frequent server logins. Reducing connection setup time speeds up everyday remote work.

Install the Paperclip gem on Ubuntu servers

Paperclip gem builds on Ubuntu only after ImageMagick and RMagick Ruby packages are installed.

RawGit

Serve raw GitHub files with correct Content-Type headers for CDN-style testing or prototyping, but without any uptime guarantee.

HTML5: disabled vs. readonly form fields

Noneditable HTML form controls behave differently with disabled and readonly: submission, focus, and tab order change, and browser quirks can affect fieldset descendants.