Define a route that only responds to a specific format

Constrain a Rails route to a single response format such as XML when one URL must serve only that representation.

Working with or without time zones in Rails applications

Rails time handling is error-prone because Time.now and Time.current can differ. A single-time-zone setup needs matching Active Record and time zone configuration.

Sidekiq 7: Rate limiting with capsules

Sidekiq 7 capsules let queues run with separate concurrency limits, useful for protecting apps or APIs from too many parallel jobs.

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.

Heartbleed test

Checks a server hostname for the Heartbleed vulnerability in OpenSSL (CVE-2014-0160).

BrowserStack has browser plugins for local testing

Private and internal servers can be tested through the BrowserStack cloud without exposing them publicly, even behind firewalls, proxies, or Active Directory.

Your First AngularJS App: A Comprehensive Tutorial

Beginner AngularJS development often involves routing and client-server data transfer issues. A hands-on introduction helps build a first working app with core concepts.

Removing Dot-Underscore Files ~ Kadin2048's Weblog

Dot-underscore ._ files from macOS can clutter non-AFP server volumes and need quick cleanup methods.

Tabs in Textarea Plugin for jQuery

Use Tab and Shift+Tab in regular textareas to indent or outdent code for in-browser editing of HTML, CSS, JavaScript, or server-side languages.

"The certificate is not trusted because no issuer chain was provided." Error with SSL + Nginx

SSL connections fail when the certificate chain is incomplete. Appending the intermediate certificate to the server certificate lets Nginx present a trusted chain.

Researching a new form of HTTP caching optimization - Phusion BlogPhusion Blog

Caching HTTP responses in the server based on an individual cookie can speed delivery, but cache invalidation remains unresolved.

Evening on Backbone.js/Views w/ Q&A with David Heinemeier Hansson - YouTube

Basecamp stays fast with little JavaScript by combining server-rendered pages, PJAX, and Russian doll caching to reduce client-side work.

What's My DNS? Global DNS Propagation Checker

Check a hostname’s current IP address and DNS records against name servers worldwide to verify DNS propagation after zone changes.

Stubbing out external services with an embedded Sinatra application

Test suites that depend on remote APIs can become brittle and slow; an embedded Sinatra app provides a lightweight stub server for isolated integration tests.

Using multiple MySQL versions on the same linux machine using docker

Run several MySQL releases on one Linux host with Docker instead of mysql-sandbox, and connect Rails to each instance through a separate TCP port.

Taking screenshots in Capybara

Capybara test failures can save screenshots and HTML automatically, with manual capture also available through save_and_open_page, save_screenshot, or Rails ScreenshotHelper.

An Illustrated Guide to SSH Agent Forwarding

SSH agent forwarding lets remote servers use your local SSH keys without copying them, reducing key exposure while enabling convenient hop-through access.

Configuring Webpacker deployments with Capistrano

Rails deployments with Webpacker and Capistrano often need asset-path, manifest, and compile-time tweaks to avoid slow releases and unused compression output.

What's in a View? A look at the alternatives

Tradeoffs between progressive enhancement with jQuery-style approaches and client-side views affect interactivity, complexity, and how much rendering stays on the server.

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.

Highlighted prompt for production shells

Insert into ~/.bashrc and reload afterwards: source ~/.bashrc

PS1='${debian_chroot:+($debian_chroot)}\[\033[41;33m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '

Rubocop fails with undefined StringIO

RuboCop can crash with uninitialized constant ... StringIO and related socket reader errors when an old version misses a required stringio require. Upgrading fixes it.

Use find_in_batches or find_each to deal with many records efficiently

Processing large record sets can exhaust memory when loading everything at once. find_in_batches and find_each keep memory usage lower for long-running data updates.

Apache Tika: Performance-optimized configuration for hybrid PDFs (Text + OCR)

Hybrid PDFs can trigger duplicate text and very slow OCR in Apache Tika when page images and layout fragments are processed indiscriminately. A size threshold keeps OCR focused on real content while preserving digital text extraction.