Imagine that you are looking at a cryptic NullPointerException at 2 am. Your initial reaction a few years ago was to...

read more