Nice to see I am not the only one getting annoyed by QR Codes not scanning because of misunderstanding, laziness and stupidity. I agree with almost all of what you have said, but respectably disagree with your views on the appropriate error correction. My considered opinion is that the error correction should be the maximum it can be without increasing the size/density of the image. In summery the error correction used only allows a small percentage of pixels to be changed so if you up the protection and make all the pixels less easy to scan you have moved backwards. I am actually working on a library (perhaps to be open sourced) and service to make QR codes as small as possible. The service also uses URL shortening from many services to do this. Any one want to Beta test? Feedback most welcome.