jQuery 1.8 Released

jQuery 1.8 brings internal performance improvements, a faster selector engine, and bug fixes, while later 1.x releases begin dropping support for older IE versions.

Silencing Your Staging Environment - The Hashrocket Blog

Production data testing can accidentally email real users; rewriting recipient domains in ActionMailer prevents staging mail from reaching live inboxes.

Fix error: Missing the mysql2 gem

Rails can report a missing mysql2 gem even when it is bundled if database.yml still uses the mysql adapter; older Rails versions need mysql2 0.2.x.

rspec_candy 0.2.0 now comes with our most popular matchers

rspec_candy 0.2.0 adds matchers for tolerant number comparison, second-level time equality, and hash subset matching in RSpec.

Don't follow Ajax requests with a redirect

Browsers handle redirects after Ajax requests inconsistently, sometimes repeating unsafe methods like DELETE or PUT and triggering unwanted confirmations.

RubyMine 4.5.1: Sass/SCSS Support Improvements

Sass/SCSS autocompletion and syntax highlighting in RubyMine 4.5 had annoying bugs that made Rails web development harder.

MySQL 5.6 will expose tables as key/value stores through memcached, might be awesome

MySQL 5.6 adds a built-in memcached daemon for fast key/value access to InnoDB tables, bypassing SQL parsing and planning while keeping SQL queryability.

Modifying Rake Tasks - Dan Manges's Blog

Custom Rake tasks are meant to stay unchanged, but vendor tasks such as Rails task definitions can be extended with additional behavior.

assignable_values 0.4.1 adds secondary default values

assignable_values can now fall back to a secondary default when the primary default is not assignable, helping authorization rules avoid invalid records for restricted users.

Remove the module namespace of a qualified Ruby class name

String#demodulize from ActiveSupport strips module namespaces from qualified Ruby class names, leaving only the last constant name.

Gem development: When your specs don't see dependencies from your Gemfile

Bundler does not auto-require gems, so specs may miss dependencies unless the environment calls Bundler.require; direct dependencies still must be required by the gem itself.

Consul 0.4.0 released

Consul 0.4.0 adds temporary power switching, support for Ruby collections and arbitrary objects as powers, and drops the ActiveSupport::Memoizable dependency.

Market share of web browsers

Browser usage on a site varies by audience and region; tracking tools provide broader traffic statistics when visitor data is unknown.

Check if an object is an ActiveRecord scope

Checking for an ActiveRecord scope with is_a?(ActiveRecord::NamedScope::Scope) breaks in Rails 3 and misses unscoped model classes. respond_to?(:scoped) is a broader check.

Use the "paper_trail" gem to track versions of records

Version history for Active Record records with paper_trail, including previous values, change diffs, and the user who made each update.

Updated: Remove quotes from Sass mixin arguments

Sass mixin arguments sometimes need unquote to pass raw values instead of quoted strings, especially when generating usable CSS.

Updated: assignable_values can now humanize any given value, even if it's not the current attribute

assignable_values now humanizes any supplied value, not only the current attribute value, making alternate labels available for display and lookup.

How to change will_paginate's "per_page" in Cucumber features

Pagination tests in Cucumber often need fewer records than the default will_paginate page size. Stubbing per_page per model keeps feature scenarios small.

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.

Using the Rake Build Language

Rake tasks can gain dependencies after initial declaration, making task relationships easier to extend and keep near prerequisite definitions.

When Date.today and Date.tomorrow return the same day...

Date.today and Date.tomorrow can return the same day when Rails has no configured time zone, causing date handling to drift between UTC and local time.

When connecting to a second database, take care not to overwrite existing connections

Opening a second ActiveRecord database connection can silently disconnect an unfinished transaction. Use a separate abstract class to keep the original connection intact.

MySQL operator precedence

Multiple AND and OR conditions can change query results unexpectedly; parentheses make the intended logic explicit and prevent precedence bugs.