I think one of the issues I have with "programming interviews" is the understanding that some programmers program differently than others. Some may also take a bit more time depending on the situation.
For example, if you give someone a programming task during the interview. One of the key things they would be measured in is time to complete, as such you'd be looking for people to just spit code out ASAP and hope they work correctly.
Adding a new feature or analysing requires time to design and sometimes the thought process may require to "sleep on it" to get a proper result. Unfortunately that is not something that can be afforded during an interview.
So how would I do it? I had two technical interviews which I would model stuff on. Of course I am biased due to the integration aspects of my work in the examples but here it is...
Given technology A, B, C make something that ties them together that does Y. Y can just be something as simple as having a button on A that talks to C that does something on B.
I don't expect too much detail either like 100% coverage on unit tests or comments. Since this is a relatively rushed job, I'm not the only employer I am expecting the candidate to look for.
What I would likely expect would be an opinion on what they went through or how they could make it better, the hurdles they had faced, how difficult was it to find the information needed to get the task done.
One of the requirements I would have for a programmer is to have a github presence. Because I would actually want them to show me an example of a project regardless if it is trivial or not so I can see the coding style. Of course I would ask them to choose one that they can say they are proud of the quality of the code base..
Can they fake it, it'd be difficult.