This week's book giveaway is in the Mac OS forum. We're giving away four copies of a choice of "Take Control of Upgrading to Yosemite" or "Take Control of Automating Your Mac" and have Joe Kissell on-line! See this thread for details.
First of all, there is a rule that requires that you quote your sources.
Second, this question has been asked before. It might be good if you do a search before asking a question, because many times you will find some good answers already for it: Ultimate Generics Question
All code in my posts, unless a source is explicitly mentioned, is my own.