My two cents - the only things that really help racism (or homophobia) are time and interactions. The more people get to know each other as people and not as the stereotypes they've whitewashed onto them, the better off everyone is. At the same time, in the US we have a culture now of "believe this or F U!!!!" The media likes to write endless articles every time someone says or does something that's insensitive to a race, sexual orientation, or gender. And then we're all expected to demonize that person. That just leads to people dividing into camps and screaming "F U!" at each other. It doesn't solve anything. We need to start treating people in the public the way most people treat their families. Almost everyone has a grandparent, or aunt/uncle, or someone who is just "way out there" on some issue or another. There are limits of course, but for the most part we learn to still maintain a relationship with them even while strongly disagreeing on certain things. We may hate what they believe, but we can usually recognize their other good qualities and not let our hatred of that belief become a hatred of the whole person.