Well, the federal election is over and although, baring recounts, the NDP isn't holding the balance of power and therefore will unlikely be able to force a referendum on proportional representation, I want to talk about it anyway. My favourite PR system is PR2 because, unlikely most other PR systems, it tends towards majority governments and all MPs represent a region. This paper is rather confusing, so allow me to summarise: the number of seats each party wins is equal to the square of its popular vote divided by the sum of squares (not the square-sum); then, basically, the ridings where MPs received the narrowest plurality are swapped until the seats add up. (In practice I think seat-swapping would require dynamic programming, but it's not really important how it's done.)
If applied to the results of our election at a federal level (where PR2 is designed to punish regional parties like the Bloc Québécois), the seat totals would be: Liberal 157, Conservative 102, NDP 29, BQ 18, Green 2. If applied at a provincial level the totals would be: Lib 124, Con 101, NDP 32, BQ 49, Grn 2; which works out better for everyone but the Liberals and yet gives the centre-left enough seats to form a majority coalition. Maybe someday I'll write a program to calculate seat assignments, as well…