Totally off topic, but I really dislike how ruby (and I guess others?) has popularized the word hash to mean a hash table. I stare at that sentence for a good two minutes thinking "how does someone use md5/sha etc instead of a database???" before I realized what was meant. There are plenty of good (and well known) unambiguous names for this data structure that I really don't understand why it needs to be given a name that's in common use to refer to something different (and only kind-of related really). Some alternative names that have been in common use since the dawn of time are hash table, hash map, map, dictionary or associative array.