We should think of an universal standard for error messages, some of the points made in this document have caught of guard many times and should be standard practice for errors across all kinds of software.
In development, I am always in favor of clear, concise, and active language. These are fantastic points with great justifications attached. I really like the tricky words near the end.