Python implementation of Conway's Game of Life
I think you have a couple of subtle bugs in the way you implement Conway's rules.
See my comments in the code for details:

for i in range(N):
    for j in range(N):
        # I changed the range of the extent of the sum, note +2 rather than +1 !
        total = grid[(i-1) % N:(i+2) % N, (j-1) % N:(j+2) % N].sum() - grid[i, j]
        if grid[i, j] == 1:
            if(total &lt; 2) or (total &gt; 3):
                newGrid[i, j] = 0
            # allow for survival in case of total = 2 or 3
            else:
                newGrid[i, j] = 1
        # allow for reproduction if cell is empty
        else:
            if total == 3:
                newGrid[i, j] = 1


With these edits the glider should glide :)