I strongly second what Baby Blue said.
Don't be so hard on yourself. I've always been real hard on myself too. In Al Anon, I'm learning.
I used to think of something I did/said in the past, and I'd think, "I was such a fool," or something similar. Because of Al Anon, it's becoming my habit to think, "I was doing the best I could at the time."