I'm not a very big fan of charity, especially when it comes to random bouts of charity i.e. dropping a penny or two off to some homeless man on the side of the street. The solution for the homeless is not to hand them free money (which might just get spend in the end on liquor bottles or random accouterments), thus promoting an inefficient economy, but to open up work opportunities. I don't believe that all homeless want to bet on the fact that they can continue living on begging all day, but that some would rather prefer a sure, fixed cashflow.
Instead of donating them some money, why not donate to a government-managed "city funds" that provides wages in return for work done in city improvement projects, i.e. sweeping, collecting garbage, cleaning up graffiti, etc. There is plenty of work to be done in slums and most parts of dense cities (i.e. midtown New York).
The point is, money should never be given freely, but always for a cause and to benefit society. Tossing your pocket change to a man on the street doesn't do anyone any good.
After writing this, I did some research on such funds that support this cause. The most targeted towards self-sufficiency seems to be the DOE fund.