There's plenty of people who complain that they just can't find good software developers, or that they can't separate the "bad" from the "good". Try this on for a benchmark:
Judge a developer by what they do when they're not working
Working as in, working for an employer. Working as in, doing something you'd consider "productive".
Jeff Atwood says (and I agree with him) that there are two types of programmers. The ones who care, and the ones who are doing it because it's just a job. And they fall into the typical 80/20 distribution.
Now, here's an easy way to pick one of the "good" developers. If they do these in their "off" time, you've got yourself a winner:
If you're running a recruitment process, weeding the second one out of them may be difficult. Ask them what they do in their free time, and they'll probably make something up like "go to the gym" (as if) to make it sound like their entire life doesn't revolve around computers. The first one shouldn't be too difficult though.