"There are only two hard problems in Computer Science: cache invalidation and naming things." -- Phil Karlton