There are only two hard things in Computer Science

  • cache invalidation
  • naming things
  • and off-by-one errors