I'm normally against posting stuff that's been slashdotted, but here we go:
http://developers.slashdot.org/artic...69&tid=172