Sort:  

There's too many solutions to be explained in a single comment, I will surely do a post about it. But I'm sure you already know a lot of them. ;)