Materials being read in progress are noted, otherwise finished reading.
- Just Say No to More End-to-End Tests - https://testing.googleblog.com/2015/04/just-say-no-to-more-end-to-end-tests.html
- Note on Java exceptions: One sure way to help in easily understanding problems is to have a well designed exception mechanism. You do not want generic exceptions like RuntimeException. You do not want badly wrapped exceptions - I've seen a string manipulation method that throws HttpInternalServerException. Ideally you need an exception stack trace that provides you context and a consistent way of reading them. And most important of all, you do not want exceptions getting lost somewhere. A big problem with a codebase that is already using badly designed exception is that it can be a risky change since it will probabably affect most of the existing code - imagine an exception class that is written in an xml config.
- Note on the [linked sample source code](https://github.com/google/guava/blob/master/gu