It compiles, runs, has output.  Added Glu error check.  Changed the order so that a program was selected while glUniform1f was called. The states were the main problem.