TLDR: Ruby class variables (@@foo) are dangerous in many ways. You should avoid them at all cost. See bottom of...

There is a bug in ActiveRecord 2.3.x that leads to changes in nested forms getting lost. class Project < ActiveRecord...

Microsoft provides virtual machines for different Internet Explorer versions. The images are available for various virtualization solutions, including VirtualBox...

kalzumeus.com

January has been a very bad month for Ruby on Rails developers, with two high-severity security bugs permitting remote...

Consul 0.6.1+ gives you a way to dynamically access and query powers for a given name, model class or record...

We recently had a problem on a Memcache cluster, where one of the servers showed a significantly worse cache hit...

makandra dev
jakiestfu.github.com

Behave.js is a lightweight library for adding IDE style behaviors to plain text areas, making it much more enjoyable to...

validates_uniqueness_of is not sufficient to ensure the uniqueness of a value. The reason for this is that in...

Calling bundle update GEMNAME will update a lot more gems than you think. E.g. when you do this...

If you worked with a system Ruby before switching to RVM, this system Ruby will be in your way when...

Geordi now has a script that runs capistrano with all known deploy targets (i.e. staging, production...). Use with geordi capistrano...

So you want to find out how many horizontal pixels you have available on a mobile device. This is super...

kernel.org

If you say git stash, your stashed changes will be identified with an automatically generated message: $ git stash

While you are probably using will_paginate to paginate ActiveRecord scopes, it can actually paginate plain Ruby arrays. The resulting...

When doing a git blame, git will blame the person who added or removed white space in a line (e.g...

makandra dev
github.com

Axlsx is an incredible gem to generate "Office Open XML" spreadsheet files (XLSX). Does not break on large spreadsheets and...

TLDR: In tests you need to clean out the database before each example. Use :transaction where possible. Use :deletion for...

When you are using git rebase and are currently editing a commit (due to a conflict, for example), you may...

creativecouple.github.com

jquery-timing is a very useful jquery plugin that helps to remove lots of nested anonymous functions. It's API...

makandra dev

A nice way to stage absolutely all changes (edits, additions, deletions): git add --all

When searching for text in a MySQL table, you have two choices: The LIKE operator FULLTEXT indexes (which currently only...

Git commits should be very deliberate, and only contain changes that you really want to be in there. In order...

Our old solution for cronjobs, the "craken" plugin, is no longer maintained and does not work on Rails 3.2+.

Capybara uses www.example.com as the default hostname when making requests. If your application does something specific on certain hostnames and...