"There are only two hard things in computer science. Cache invalidation, naming things and off-by-one errors."