Learning sudoku by doing gradient descent on a linear program | Not Hacker News!