I think the best way to gauge a candidates programming ability is to work on a small project with them, similar to Automattic's approach [1]. Unfortunately, this method is extremely expensive, to both the candidate and the company.
Maybe company's are "lazy" for sticking with archaic methods that are not always fair to the candidate, but when the author claims that companies are simply "too lazy to figure out how to interview people effectively", I feel he is trivializing a very difficult problem to solve.