For the array zip one @14:20, I'm surprised he didn't briefly mention that you can use unpacking in the block parameters:
names = ['fred', 'bill']
ages = [33, 40]
locations = ['san francisco', 'dubai']
names.zip(ages, locations) do |n, a, l|
puts n
puts "lives in " + l
puts "is #{a} years old"
end