There are 3 hard problems in Computer Science: 1. naming things 2. cache invalidation 3. 4. off-by-one errors concurrency