When I'm passionate about something (particularly programming) I find it really easy come off like the guy Peter G. was talking about in Dealing with the “programming blowhard”.
So what techniques do you use to
1) Identify when you are indeed a blowhard?
2) Communicate something "important" without seeming self important?
Specific example help like When giving criticism ask "have you considered what happens when XXX changes" instead of "never take dependencies on implementation details"
When giving advice "showing with code is better than talking" or use a reference.