TodoMVC - A common learning application for popular JavaScript MV* frameworks

Choosing a JavaScript MV* framework is difficult when options look similar; TodoMVC provides the same Todo app across popular frameworks for side-by-side comparison.

Creating the inverse of a Rails migration

Reverting an old Rails change can reuse the original migration’s up and down logic instead of copying SQL, but only for simple cases.

RubyMine: Find and execute a menu action by its name

Ctrl+Shift+A opens RubyMine’s Find Action box to run menu commands by name when the shortcut or menu location is unknown.

RubyMine: Exclude data and log directories from a project

Exclude log, data, and other irrelevant directories in RubyMine to speed up searches and reduce noisy results without deleting files.

Git: Diff changes in a long line efficiently

git diff --word-diff highlights inline changes within long lines, and disabling the pager can keep the output directly in the terminal.

WebMock 1.8.0 does not play nice with Curb < 0.7.16

Updating WebMock to 1.8.0 can let unstubbed specs send real HTTP requests when Curb is older than 0.7.16.

TeamViewer 7 finally works with multiple screens under Linux

TeamViewer 6 and earlier treated multi-monitor Linux desktops as one large display. Version 7 adds proper screen selection for remote sessions.

will_paginate on complex scopes may be slow (workaround)

Complex will_paginate scopes can trigger a slow total-count query, especially with many includes, delaying search results pages.

Sunspot and Solr on Tomcat: Trouble with Umlauts

Umlauts in Sunspot and Solr can fail on Tomcat even when local Jetty-based searches work; a UTF-8 bug in RSolr caused empty results until version 1.0.6.

Issues with has_select?

has_select? can fail with Cucumber, Capybara, and Selenium when the selected option has no value, so driver-specific handling may be needed.

Convert Virtualbox .ova Image to .ovf

.ova packages are tar archives containing an .ovf descriptor, so extracting them yields the virtual machine definition and related files.

Nicer alternatives to def_delegator or def_delegators

def_delegator and def_delegators are hard to read; delegate or a small wrapper method makes Rails delegation clearer.

Moment.js - A lightweight javascript date library

A lightweight JavaScript date library for parsing, manipulating, and formatting dates.

Run your own code before specific RSpec examples

Run custom setup code before selected RSpec examples using metadata tags instead of Cucumber scenarios.

Fix YAML::Syck::DefaultKey:0x1083b59f8

Invalid gemspecs and ill-formed requirements often come from the Syck-to-Psych transition; replacing Syck::DefaultKey entries with = in affected gemspec files resolves the error.

CSS: Change text selection color

Selection highlight color can be customized with CSS using ::selection and ::-moz-selection; Firefox needs the vendor-specific pseudo-element.

RestClient sends XML Accept header by default

REST Client adds application/xml to simple GET requests, which can trigger unexpected server responses. :accept => :html requests the default text/html content type instead.

Letter Opener

Preview email in the browser instead of sending it, making message review and debugging easier during development.

Auto-generate Cucumber navigation paths

Cucumber step definitions can map natural-language destinations to Rails route helpers, including list, new, edit, and record lookup paths.

High-level Javascript frameworks: Backbone vs. Ember vs. Knockout

High-level MV* JavaScript frameworks reduce DOM boilerplate with client-side rendering, routing, and data binding, but choosing between Backbone, Ember, and Knockout depends on style and needs.

Ruby: Indent a string

Adds String#indent for padding each line, including blank lines, without introducing trailing whitespace and with optional custom indentation characters.

New cards feature: Cite other cards

Link related cards directly from the editor by searching for a card and inserting a Markdown link into the text area.

New cards feature: Github-style code blocks

Add code blocks without indentation using triple backticks, matching GitHub-style fenced code blocks for easier formatting in plain text and Markdown.

Make Capistrano use SSH Key Forwarding

Capistrano can check out code on the target server using SSH agent forwarding instead of a separate repository key. ssh_options[:forward_agent] = true enables this, but it should be used with caution.