Migrating to Spreewald
Migrating an existing cucumber test suite to Spreewald reduces custom step definitions by replacing web, email, shared, and table steps with built-in support.
How to not leave trailing whitespace (using your editor or Git)
Trailing whitespace causes noisy diffs and avoidable commit failures; editors or Git hooks can remove it automatically or block commits with git diff --check.
Using before(:context) / before(:all) in RSpec will cause you lots of trouble unless you know what you are doing
before(:context) in RSpec runs once outside transactions and can leak data between examples; before(:example) keeps specs isolated and safer.
Paperclip: undefined method `to_file' for #<Paperclip::Attachment:0000> (NoMethodError)
Paperclip 3.0.1 removed to_file, breaking code that reads attachment storage through File; Paperclip.io_adapters.for(file).read is the replacement.
Git basics: checkout vs. reset
git checkout and git reset both move pointers, but one restores files or switches branches while the other rewinds the current branch state.
CSS Animations Media Queries
CSS transitions make responsive sites feel smoother and more polished with minimal effort.
ActionMailer sometimes breaks e-mails with multiple recipients in Rails 2
Rails 2 mail sending can produce malformed headers for multiple recipients because a buggy TMail version inserts a blank line. A maintained fork fixes the issue when no MTA repairs it.
How to convert an OpenStruct to a Hash
Convert OpenStruct instances to a hash with to_h; older Ruby versions use marshal_dump to access the underlying data.
Distribute files from a private bucket on AWS S3
Private S3 files can be streamed with time-limited URLs instead of exposing a reusable bucket link. expiring_url and query string authentication help prevent easy redistribution.
Create autocompletion dropdown for Cucumber paths in Textmate
TextMate Cucumber path completion speeds step entry by inserting known route names from features/support/paths.rb while you type.
BigVideo.js - The jQuery Plugin for Big Background Video
BigVideo.js adds fit-to-fill background video or image playback for websites, with support for silent ambient loops and video playlists when autoplay is unavailable.
Highlight current navigation item with Staticmatic
Style the active navigation item in StaticMatic by checking the current page path and assigning a CSS class conditionally.
"command not found" bash function
Customize Bash’s command_not_found_handle to intercept unknown commands and turn them into SSH connections, including support for passing options such as a custom port.
See which MySQL database is currently in use
In the MySQL console, SELECT database(); returns the currently selected database, helping confirm the active schema before running queries.
Test meta-refresh redirects with Cucumber
Capybara step for asserting a meta refresh redirect in the page head during Cucumber feature tests.
Fix error: Invalid gemspec / Illformed requirement
Broken gem specifications trigger “Invalid gemspec” and “Illformed requirement” errors; updating Rubygems, removing corrupted gem files, and reinstalling fixes Bundler failures.
Manage ssh keys with Keychain
Keychain keeps ssh-agent and GPG keys running across sessions so passphrases are entered only once after reboot, and remote jobs can use existing key-based logins.
Meny - A three dimensional and space efficient menu concept
Three-dimensional menus can now render in WebKit browsers, Firefox, and IE10, making compact navigation possible in limited space.
Updated: Unobtrusive jQuery to toggle visibility with selects and checkboxes
Show or hide page sections based on form choices, including radio buttons, without intrusive scripting.
Paperclip: Move attachements from local storage to AWS S3
Migrating Paperclip attachments from local disk to Amazon S3 avoids manual reuploads and keeps existing files available through the S3 storage adapter.
"rake gettext:findpo" running forever
gettext_i18n_rails can enter a near-infinite loop during rake gettext:findpo when Haml strings mix escaped UTF-8 characters and #{} interpolation.
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.
defunkt/jquery-pjax
pjax loads HTML into the current page without a full reload, preserving permalinks, page titles, and back-button behavior with graceful fallback.
Beware of magic adblocker rules
Ad blockers can hide legitimate site content when generic names like sponsor or banner match built-in filters. Renaming affected elements or directories usually restores visibility.