Spend 99% of the time thinking, 1% of the time typing.
the trick is to remember, you're commenting for you, because you're the one that's going to forget all this stuff in a few months and have to figure it out at the worst possible time.
sounds a little weird but i always liked commenting my code. it felt like i was bragging to myself about how clever i was.
Comments in a codebase often lie. Someone makes a statement then code changes, making it a lie. A comment that is a lie adds negative value.
I think more than 1 comment per 100 lines of code means you should think more and refactor more and comment less.