An up-to-date version of "A Gentle Introduction to CarrierWave" from EngineYard blog