I'm trying to learn to use pyopengl in a more modern context (not relying on fixed function/deprecated functionality INCLUDING built-in vertex shader attributes)

Here is my source:

When I run the program I simply get a black screen instead of a white triangle.

I'm not entirely sure what I am doing wrong however there I encountered quite a few problems whilst writing this code snippet
1) When trying to bind the buffer to an attribute I kept getting some sort of type error. So instead I resorted to passing the matrix straight
2) I'm not entirely sure about whether I'm multiplying the matricies correctly. 

I apologize if this question seems very broad,