I'm going to sound like such a mean spirited person with this, but DO NOT give homeless people money! My mother is the executive director of a homeless shelter, and the worst thing you can do is give people on the street money. People that are situationally homeless (lost a job, leaving a bad relationship, etc) go to shelters and the shelters can take your money and put it right back to those people. These people often receive training, classes, education, etc to help them get on their feet and become productive members of society. These are the people you should be helping.
Don't even ask how the underground societies of the homeless work, because it's awful. The money you give them usually does not stay in their pocket.
Sorry, personal rant. I can't help it! It's the one thing that gets right to my core, especially because people are doing it our of the kindness of their hearts and trying to help. :)