Carrierwave: Auto-rotate tagged JPEGs

Tagged JPEGs from cameras can appear sideways when CarrierWave ignores orientation metadata. auto_orient corrects rotation before other processing steps.

Writing Fast, Memory-Efficient JavaScript

JavaScript engines such as V8 are optimized for speed, but memory use still affects performance in large applications. Understanding engine behavior helps reduce browser overhead.

Rubygems: Rebuild native extensions

Native Ruby gems can break after system library or distribution upgrades, causing warnings, segfaults, or missing shared-object errors. gem pristine --all rebuilds compiled extensions and resets gems to a clean state.

query_diet now support Rails 3

query_diet now works with Rails 3, with installation differing slightly from older versions.

Get all associations of an ActiveRecord class

List every Active Record relationship on a model and inspect each association’s name, class name, or type via reflection.

Subtle Patterns Preview

Preview Subtle Patterns textures on a site without swapping images or changing CSS.

Keyboard Navigation Plugin for Safari, Chrome and Firefox with a rich feature set

Keyboard-driven web navigation reduces mouse use and can speed up common browser actions, with selector-based element picking for command-line-minded users.

Taming icon fonts for use in Rails views

Icon fonts are awkward to use directly in Rails views; helpers and Sass mixins make icon classes, labels, and styling easier to manage.

Internet Explorer will download CSS files twice, if referenced via scheme-less URLs

Internet Explorer 7 and 8 fetch stylesheets twice when http or https is omitted, so protocol-relative URLs are unsafe for CSS links on public sites.

Firefox: Inspecting mixed content warnings (and how to enable them)

Mixed-content requests can undermine SSL pages and may go unnoticed unless Firefox warnings are enabled. about:config and the Web Console help locate insecure http:// resources.

Rails 2.3.x sometimes renders localized views with the wrong content type

Rails 2.3.5 can send an invalid Response content-type for localized view templates, causing browsers to receive de.html instead of text/html.

Cucumber: Wait for any requests to finish before moving on to the next scenario

Selenium/Cucumber scenarios can finish before browser requests and redirects are done, leaving the session busy and breaking later steps and hooks.

CSS3 Animated Loading Bar

Pure CSS progress indicators can replace animated GIFs, JavaScript, or Flash for lightweight loading animations in web interfaces.

IcoMoon icons

Large free vector icon set with custom SVG support and export as icon font or PNGs; a paid upgrade raises the limit to 925 icons.

Regex pattern to validate email addresses

Email address validation with a regular expression is tricky: -free local parts, -unsafe shorthand like \w, and practical restrictions differ from the formal standard.

Ruby: Extract the hostname from a URL

Extracting the web address host from a string can fail on invalid input. URI.parse returns the hostname, and URI.join can rebuild the base URL without path, query, or fragment.

Git: Show current branch name only

Large branch lists make it hard to spot the active Git branch; git rev-parse --abbrev-ref HEAD returns only the current branch name.

Haml: Fix problem with HTML-escaped single quotes in text fields

Haml 3.1.2 can double-escape single quotes in FormBuilder#text_field values, producing David's Chapter; upgrading to 3.1.5 or newer fixes it.

Advice: Reduce scopes with joins to simple IN-queries

JOIN-heavy scopes become brittle when callers chain more conditions or associations. Converting them to a simple IN query preserves chaining and avoids unexpected SQL side effects.

ActiveModel::Errors inherits from hash and behaves unexpectedly

ActiveModel::Errors looks like a Hash but iterates arrays as separate pairs, which can break custom handling of multiple validation messages.

Making Little Classes out of Big Ones

A too-large class is harder to understand, test, and change. Several refactoring approaches break it into smaller responsibilities.

Manually requiring your application's models will lead to trouble

Manually requiring Rails models can load classes twice and trigger duplicate validations or other subtle test failures. Let Rails autoload models or require them by the same path Rails uses.

grosser/rspec-instafail

Immediate feedback for failing RSpec examples while passing ones continue to appear as green dots. Uses rspec/instafail with RSpec::Instafail formatting.

CSS: Emulate linear gradients with inset box shadows

Linear gradients can be awkward for glossy or dimensional effects and have uneven browser support; inset box shadows can mimic fixed highlights or shadows more reliably.