Re: [python-committers] Vote on governance will happen between Nov 16 - Nov 30

2018-10-23 Thread Nick Coghlan
On Tue, 23 Oct 2018 at 06:38, Łukasz Langa  wrote:
>
> The voting procedure is described in PEP 8001. I flipped it from "Draft" to 
> "Active" without further changes a few minutes ago. That's in the interest of 
> giving everybody enough lead time as well as resolving the situation "well 
> before PyCon 2019" as per Guido's and Carol's requests.
>
> Please read all the governance PEPs, ask for clarifications, voice all your 
> concerns now. Ideally we will make all of the required changes to the PEPs 
> early and not last minute before the vote.
>
> There were some suggestions on Discourse for changes to the selected model, 
> the biggest being Stefan's suggestion to encrypt the votes and Donald's 
> suggestion to use STAR instead of IRV for counting votes. We ended up not 
> going with those suggestions. See Brett's comment here as to why:
> https://discuss.python.org/t/pep-8001-python-governance-voting-process/233/46

My main concern was about the potential for vote-splitting with
multiple "council" type proposals on the ballot, and IRV is enough to
address that (having been an Australian voter for ~22 years, I'm also
very familiar with it, and given the specific set of proposals we're
voting on, I don't think the case where STAR would give a different
answer is likely to come up - the various draft PEPs have too much in
common with either each other or the status quo for it to be likely
that a significant proportion of the folks voting will find any of
them completely unacceptable)

Cheers,
Nick.

-- 
Nick Coghlan   |   [email protected]   |   Brisbane, Australia
___
python-committers mailing list
[email protected]
https://mail.python.org/mailman/listinfo/python-committers
Code of Conduct: https://www.python.org/psf/codeofconduct/


Re: [python-committers] Vote on governance will happen between Nov 16 - Nov 30

2018-10-23 Thread Antoine Pitrou

Le 23/10/2018 à 13:06, Nick Coghlan a écrit :
> On Tue, 23 Oct 2018 at 06:38, Łukasz Langa  wrote:
>>
>> The voting procedure is described in PEP 8001. I flipped it from "Draft" to 
>> "Active" without further changes a few minutes ago. That's in the interest 
>> of giving everybody enough lead time as well as resolving the situation 
>> "well before PyCon 2019" as per Guido's and Carol's requests.
>>
>> Please read all the governance PEPs, ask for clarifications, voice all your 
>> concerns now. Ideally we will make all of the required changes to the PEPs 
>> early and not last minute before the vote.
>>
>> There were some suggestions on Discourse for changes to the selected model, 
>> the biggest being Stefan's suggestion to encrypt the votes and Donald's 
>> suggestion to use STAR instead of IRV for counting votes. We ended up not 
>> going with those suggestions. See Brett's comment here as to why:
>> https://discuss.python.org/t/pep-8001-python-governance-voting-process/233/46
> 
> My main concern was about the potential for vote-splitting with
> multiple "council" type proposals on the ballot, and IRV is enough to
> address that (having been an Australian voter for ~22 years, I'm also
> very familiar with it, and given the specific set of proposals we're
> voting on, I don't think the case where STAR would give a different
> answer is likely to come up - the various draft PEPs have too much in
> common with either each other or the status quo for it to be likely
> that a significant proportion of the folks voting will find any of
> them completely unacceptable)

I had the same concern and I'm glad the voting mechanism addresses it.

Regards

Antoine.
___
python-committers mailing list
[email protected]
https://mail.python.org/mailman/listinfo/python-committers
Code of Conduct: https://www.python.org/psf/codeofconduct/


Re: [python-committers] Vote on governance will happen between Nov 16 - Nov 30

2018-10-23 Thread Donald Stufft


> On Oct 23, 2018, at 7:06 AM, Nick Coghlan  wrote:
> 
> On Tue, 23 Oct 2018 at 06:38, Łukasz Langa  wrote:
>> 
>> The voting procedure is described in PEP 8001. I flipped it from "Draft" to 
>> "Active" without further changes a few minutes ago. That's in the interest 
>> of giving everybody enough lead time as well as resolving the situation 
>> "well before PyCon 2019" as per Guido's and Carol's requests.
>> 
>> Please read all the governance PEPs, ask for clarifications, voice all your 
>> concerns now. Ideally we will make all of the required changes to the PEPs 
>> early and not last minute before the vote.
>> 
>> There were some suggestions on Discourse for changes to the selected model, 
>> the biggest being Stefan's suggestion to encrypt the votes and Donald's 
>> suggestion to use STAR instead of IRV for counting votes. We ended up not 
>> going with those suggestions. See Brett's comment here as to why:
>> https://discuss.python.org/t/pep-8001-python-governance-voting-process/233/46
> 
> My main concern was about the potential for vote-splitting with
> multiple "council" type proposals on the ballot, and IRV is enough to
> address that (having been an Australian voter for ~22 years, I'm also
> very familiar with it, and given the specific set of proposals we're
> voting on, I don't think the case where STAR would give a different
> answer is likely to come up - the various draft PEPs have too much in
> common with either each other or the status quo for it to be likely
> that a significant proportion of the folks voting will find any of
> them completely unacceptable)
> 


We’re using IRV and I accept that, but I just want to point out that IRV still 
has a form vote splitting (in electoral parlance, vote splitting is the 
“favorite betrayal criterion” - https://www.youtube.com/watch?v=JtKAScORevQ 
. IRV only protects against vote 
splitting when you have a very weak or a very strong candidate ranked first.___
python-committers mailing list
[email protected]
https://mail.python.org/mailman/listinfo/python-committers
Code of Conduct: https://www.python.org/psf/codeofconduct/


Re: [python-committers] Vote on governance will happen between Nov 16 - Nov 30

2018-10-23 Thread Antoine Pitrou

Le 23/10/2018 à 13:55, Donald Stufft a écrit :
> 
> We’re using IRV and I accept that, but I just want to point out that IRV
> still has a form vote splitting (in electoral parlance, vote splitting
> is the “favorite betrayal criterion”
> - https://www.youtube.com/watch?v=JtKAScORevQ. IRV only protects against
> vote splitting when you have a very weak or a very strong candidate
> ranked first.

Do you have a non-video link to an explanation?

If some form of tactical voting is possible, as a voter I'd like to know
about it.

Regards

Antoine.
___
python-committers mailing list
[email protected]
https://mail.python.org/mailman/listinfo/python-committers
Code of Conduct: https://www.python.org/psf/codeofconduct/


Re: [python-committers] Vote on governance will happen between Nov 16 - Nov 30

2018-10-23 Thread Donald Stufft

> On Oct 23, 2018, at 7:56 AM, Antoine Pitrou  wrote:
> 
> 
> Le 23/10/2018 à 13:55, Donald Stufft a écrit :
>> 
>> We’re using IRV and I accept that, but I just want to point out that IRV
>> still has a form vote splitting (in electoral parlance, vote splitting
>> is the “favorite betrayal criterion”
>> - https://www.youtube.com/watch?v=JtKAScORevQ. IRV only protects against
>> vote splitting when you have a very weak or a very strong candidate
>> ranked first.
> 
> Do you have a non-video link to an explanation?
> 
> If some form of tactical voting is possible, as a voter I'd like to know
> about it.
> 


To be clear, *all* voting systems have some form of tactical voting as part of 
them, so this isn’t unique to IRV. I was mostly just pointing out that IRV 
isn’t a panacea, you can still get a vote splitting like effect. Interestingly, 
IRV also has the property that sometimes the simple act of voting your true 
preference *at all* can cause your true preference to lose, and sometimes you 
would have been better off not voting at all.

I’m struggling to find a resource besides that doesn’t also include shilling 
for another voting system or isn’t a lengthy paper but 
https://rangevoting.org/IRVpartic.html  
gives an example and https://rangevoting.org/TarrIrv.html 
 is a more complex example.


___
python-committers mailing list
[email protected]
https://mail.python.org/mailman/listinfo/python-committers
Code of Conduct: https://www.python.org/psf/codeofconduct/


Re: [python-committers] Vote on governance will happen between Nov 16 - Nov 30

2018-10-23 Thread Tim Peters
[Donald Stufft ]

> ...
> I’m struggling to find a resource besides that doesn’t also include
> shilling for another voting system or isn’t a lengthy paper but
> https://rangevoting.org/IRVpartic.html gives an example and
> https://rangevoting.org/TarrIrv.html is a more complex example.
>

The rangevoting site has a great deal of info about all sorts of voting
systems.  Over a decade ago, Ka-Ping Yee (who used to be very active in
Python development) ran some _visual_ voting simulations on 5 popular
systems, which scared him (& me) away from IRV forever:

http://zesty.ca/voting/sim/

"""
The following images visually demonstrate how Plurality penalizes centrist
candidates and Borda favours them; how Approval and Condorcet yield nearly
identical results; and how the Hare method yields extremely strange
behaviour. Alarmingly, the Hare method (also known as "IRV") is gaining
momentum as the most popular type of election-method reform in the United
States (in Berkeley, Oakland, and just last November in San Francisco, for
example).
"""

That said, in the absence of political factions maneuvering to increase
their own power over time, with money and marketing clout to persuade
voters to play along, I'm not much concerned about the system used for a
one-shot vote.  Even if we all strive to be as "strategic" and/or
"tactical" as possible, we'll all be pushing in different directions.

One massive (to my eyes) advantage of range voting is that it never pays to
give your true favorite less than your top score, or your true
least-favorite more than your bottom score.  (Note:  the "approval voting"
used for PSF elections is essentially range voting limited to two possible
scores - and it should be very easy in that context to see that it can't
pay to approve a candidate you don't approve of, or vice versa.)
___
python-committers mailing list
[email protected]
https://mail.python.org/mailman/listinfo/python-committers
Code of Conduct: https://www.python.org/psf/codeofconduct/


Re: [python-committers] Vote on governance will happen between Nov 16 - Nov 30

2018-10-23 Thread Alex Martelli via python-committers
While I suspect most participants are aware of this, just in care some
don't I thought I'd just point out that it's futile to look for a "perfect"
voting system -- Kenneth Arrow proved that long ago, see
https://en.wikipedia.org/wiki/Arrow%27s_impossibility_theorem

Alex

On Tue, Oct 23, 2018 at 9:08 AM Tim Peters  wrote:

>
> [Donald Stufft ]
>
>> ...
>> I’m struggling to find a resource besides that doesn’t also include
>> shilling for another voting system or isn’t a lengthy paper but
>> https://rangevoting.org/IRVpartic.html gives an example and
>> https://rangevoting.org/TarrIrv.html is a more complex example.
>>
>
> The rangevoting site has a great deal of info about all sorts of voting
> systems.  Over a decade ago, Ka-Ping Yee (who used to be very active in
> Python development) ran some _visual_ voting simulations on 5 popular
> systems, which scared him (& me) away from IRV forever:
>
> http://zesty.ca/voting/sim/
>
> """
> The following images visually demonstrate how Plurality penalizes centrist
> candidates and Borda favours them; how Approval and Condorcet yield nearly
> identical results; and how the Hare method yields extremely strange
> behaviour. Alarmingly, the Hare method (also known as "IRV") is gaining
> momentum as the most popular type of election-method reform in the United
> States (in Berkeley, Oakland, and just last November in San Francisco, for
> example).
> """
>
> That said, in the absence of political factions maneuvering to increase
> their own power over time, with money and marketing clout to persuade
> voters to play along, I'm not much concerned about the system used for a
> one-shot vote.  Even if we all strive to be as "strategic" and/or
> "tactical" as possible, we'll all be pushing in different directions.
>
> One massive (to my eyes) advantage of range voting is that it never pays
> to give your true favorite less than your top score, or your true
> least-favorite more than your bottom score.  (Note:  the "approval voting"
> used for PSF elections is essentially range voting limited to two possible
> scores - and it should be very easy in that context to see that it can't
> pay to approve a candidate you don't approve of, or vice versa.)
> ___
> python-committers mailing list
> [email protected]
> https://mail.python.org/mailman/listinfo/python-committers
> Code of Conduct: https://www.python.org/psf/codeofconduct/
>
___
python-committers mailing list
[email protected]
https://mail.python.org/mailman/listinfo/python-committers
Code of Conduct: https://www.python.org/psf/codeofconduct/


Re: [python-committers] Vote on governance will happen between Nov 16 - Nov 30

2018-10-23 Thread Steven D'Aprano
On Tue, Oct 23, 2018 at 11:05:58AM -0500, Tim Peters wrote:

> The rangevoting site has a great deal of info about all sorts of voting
> systems.  Over a decade ago, Ka-Ping Yee (who used to be very active in
> Python development) ran some _visual_ voting simulations on 5 popular
> systems, which scared him (& me) away from IRV forever:
> 

> http://zesty.ca/voting/sim/
> 
> """
> The following images visually demonstrate how Plurality penalizes centrist
> candidates and Borda favours them; how Approval and Condorcet yield nearly
> identical results; and how the Hare method yields extremely strange
> behaviour. Alarmingly, the Hare method (also known as "IRV") is gaining
> momentum as the most popular type of election-method reform in the United
> States (in Berkeley, Oakland, and just last November in San Francisco, for
> example).
> """

Why am I not surprised that here in Australia, we use IRV for our House 
of Representatives and most state governments?



-- 
Steve
___
python-committers mailing list
[email protected]
https://mail.python.org/mailman/listinfo/python-committers
Code of Conduct: https://www.python.org/psf/codeofconduct/


Re: [python-committers] Vote on governance will happen between Nov 16 - Nov 30

2018-10-23 Thread Tim Peters
[Alex Martelli ]

> While I suspect most participants are aware of this, just in care some
> don't I thought I'd just point out that it's futile to look for a "perfect"
> voting system -- Kenneth Arrow proved that long ago, see
> https://en.wikipedia.org/wiki/Arrow%27s_impossibility_theorem
>

Yup!  Ping's page acknowledges that explicitly:

http://zesty.ca/voting/sim/

and goes on to explain why he doesn't care ;-)

"""

...so one can always invent situations where a particular method violates
one of these criteria. Thus, presenting individual cases of strange
behaviour proves little.

A more substantive way to argue for or against a particular election method
would be to compare how frequently failures occur, under what conditions
they occur, and how severe they are.
"""

Which his visual simulations go on to do.  Even a brief glance strikingly
shows that IRV frequently delivers outcomes that can only be called
"bizarre", not just that it's possible to contrive cases where one of
Arrow's criteria isn't met.  For example,

"""
For four candidates in a perfect square (red, yellow, green, and blue at
(0.3, 0.3), (0.7, 0.3), (0.3, 0.7), and (0.7, 0.7) respectively),
Plurality, Approval, Borda, and Condorcet yield the obvious expected
outcomes here. But even in this simplest of cases, Hare behaves
unreasonably.
"""

So there's a real difference between perfection being unreachable and
behaving incomprehensibly in symmetric simple-as-possible cases no other
method has any problems with.  As scenarios become more complex, IRV just
gets weirder.
___
python-committers mailing list
[email protected]
https://mail.python.org/mailman/listinfo/python-committers
Code of Conduct: https://www.python.org/psf/codeofconduct/


Re: [python-committers] Vote on governance will happen between Nov 16 - Nov 30

2018-10-23 Thread Donald Stufft


> On Oct 23, 2018, at 1:14 PM, Tim Peters  wrote:
> 
> [Alex Martelli mailto:[email protected]>>]
> While I suspect most participants are aware of this, just in care some don't 
> I thought I'd just point out that it's futile to look for a "perfect" voting 
> system -- Kenneth Arrow proved that long ago, see 
> https://en.wikipedia.org/wiki/Arrow%27s_impossibility_theorem 
>  
> 
> Yup!  Ping's page acknowledges that explicitly:


Important to note that Arrow’s theorem applies only to ranked or ordinal 
systems, cardinal/rated systems are not covered by it (though the larger point 
of no perfect system still holds true).___
python-committers mailing list
[email protected]
https://mail.python.org/mailman/listinfo/python-committers
Code of Conduct: https://www.python.org/psf/codeofconduct/


Re: [python-committers] Vote on governance will happen between Nov 16 - Nov 30

2018-10-23 Thread Tim Peters
[Tim, quoting Ping]> The following images visually demonstrate how
Plurality penalizes centrist

> > candidates and Borda favours them; how Approval and Condorcet yield
> nearly
> > identical results; and how the Hare method yields extremely strange
> > behaviour. ...



[Steven D'Aprano][

> Why am I not surprised that here in Australia, we use IRV for our House
> of Representatives and most state governments?
>
> This is getting off-topic, so I'll stop with this:  the push for iRV in
the United States is mostly by 3rd parties who are essentially wholly
locked out of any chance of winning under our plurality "winner takes all"
voting systems.

But, while Ping's page doesn't address this, there are good arguments on
the rangevoting site for why IRV is just as likely to ensure 2-party
dominance.  Which historical evidence appears to support. Indeed, on an
Australian government web page I can't find right now, it explicitly said
that your version of IRV favored 2-party dominance too.

But that's not really relevant here until we form pro-Inquisition and
anti-Inquisition parties (which, over time, will come to support the
opposites of their names say) :-)
___
python-committers mailing list
[email protected]
https://mail.python.org/mailman/listinfo/python-committers
Code of Conduct: https://www.python.org/psf/codeofconduct/


Re: [python-committers] Vote on governance will happen between Nov 16 - Nov 30

2018-10-23 Thread Antoine Pitrou

Le 23/10/2018 à 18:05, Tim Peters a écrit :
> 
> [Donald Stufft mailto:[email protected]>>]
> 
> ...
> I’m struggling to find a resource besides that doesn’t also include
> shilling for another voting system or isn’t a lengthy paper
> but https://rangevoting.org/IRVpartic.html gives an example
> and https://rangevoting.org/TarrIrv.html is a more complex example.
> 
> 
> The rangevoting site has a great deal of info about all sorts of voting
> systems.  Over a decade ago, Ka-Ping Yee (who used to be very active in
> Python development) ran some _visual_ voting simulations on 5 popular
> systems, which scared him (& me) away from IRV forever:
> 
>     http://zesty.ca/voting/sim/

Thanks!  This is a great resource.  I agree that IRV looks scary, while
Approval or Condorcet look reasonable IMHO.

Regards

Antoine.
___
python-committers mailing list
[email protected]
https://mail.python.org/mailman/listinfo/python-committers
Code of Conduct: https://www.python.org/psf/codeofconduct/


Re: [python-committers] Vote on governance will happen between Nov 16 - Nov 30

2018-10-23 Thread Chris Jerdonek
On Tue, Oct 23, 2018 at 10:46 AM Antoine Pitrou  wrote:
> Le 23/10/2018 à 18:05, Tim Peters a écrit :
> > The rangevoting site has a great deal of info about all sorts of voting
> > systems.  Over a decade ago, Ka-Ping Yee (who used to be very active in
> > Python development) ran some _visual_ voting simulations on 5 popular
> > systems, which scared him (& me) away from IRV forever:
> >
> > http://zesty.ca/voting/sim/
>
> Thanks!  This is a great resource.  I agree that IRV looks scary, while
> Approval or Condorcet look reasonable IMHO.

A major problem with approval voting IMO (and range and score) is that
it constrains how voters can express themselves:

If you really like one candidate but your second choice is so-so but
better than the third, do you "approve" of your second choice? If you
do, you'll be helping to defeat the candidate you really like. So as a
voter your hands are artificially tied.

Regarding Tim's point about IRV and third parties, what third parties
in the US *really* want is proportional representation. PR is much
harder to make progress towards here, but still possible.

One reason third parties support IRV is that it can be a huge
challenge even to be "qualified" (i.e. recognized) as an official
party in many states. Some states require parties to get a certain
threshold of voter support at a statewide election (e.g. have a
candidate win at least 5%). Plurality makes this much harder because
of the spoiler effect / wasted vote dynamics. With IRV, the idea is
that parties will be able to see their true support.

Another reason some advocates favor IRV is that it's a special case
(the n=1 case) of single transferable voting (STV). This is a form of
PR that many advocates feel would be a lot easier to take hold in the
US than, say, the party list systems more common in Europe and
elsewhere. Indeed, over twenty cities in the US once used STV in the
earlier parts of the 20th century. (But it was eventually repealed in
all but one city, in part because of its success in electing minority
candidates.)

--Chris
___
python-committers mailing list
[email protected]
https://mail.python.org/mailman/listinfo/python-committers
Code of Conduct: https://www.python.org/psf/codeofconduct/


Re: [python-committers] Vote on governance will happen between Nov 16 - Nov 30

2018-10-23 Thread Tim Peters
[Chris Jerdonek [

> A major problem with approval voting IMO (and range and score) is that
> it constrains how voters can express themselves:
>

Well, that's an objection I never heard before - and expect I'll never hear
again ;-)

To the contrary, range/score voting are the _most_ expressive, allowing to
you make both gross and fine distinctions, and even to say "no opinion at
all about this one".  The only thing you can't do is express non-linear
preferences (whether flat-out intransitive, such as "I like A better than
B, and B better than C, but C better than A", or seemingly inconsistent,
such as "I like A 2x better than B, and B 4x better than C, but A only 3x
better than C").

In range/score voting, you give each a score according to your true
preferences as the granularity of the universe of possible scores allows.
For example, if scores are limited to be in range(100), give your most
favorite score 99, and if you favor them 3x more than your second-favorite,
give the latter score 33.  If you can't stand your second-favorite at all,
give them score 0.  If you like both your top choices the same, give them
both score 99.  If you only _know_ about your top candidate, and really
don't know anything about the other two, don't give the latter two scores
at all.  Then you're effectively saying "I did all the research I had time
for, and will leave it to others who did research the other two to rate
them".

This seems to me supremely relevant for the task at hand:  a substantial
number of detailed proposals that, in fact, won't _all_ be carefully
studied by the people asked to vote on them.  Merely ranking them from 1 to
6 (whatever) _forces_ people to fabricate opinions about proposals they may
not have even read, forbids them from saying, e.g., "I like #2 and #5
equally", forbids them from saying "#1 is ten times more attractive to me
than #3", forbids them from saying "I have the tiniest of preferences for
#5 over #4", forbids them from saying "I didn't even read #6, and so have
no opinion about it", and so on.

In approval voting, the universe of scores effectively shrinks to {0, 1}.
It's not _as_ expressive by far.  There you're limited to saying one of "I
can live with this" (score 1) or "I can't live with this" (score 0).  The
winner is whichever one the most people can live with.  Or, if people can't
refrain from playing dishonest tactical games , whichever one the most
people _claimed_ they could live with.  What more can you ask for?  If
people lie about their true preferences, it's hardly a voting system's
fault if it delivers a result consistent with the lies it's told.


> If you really like one candidate but your second choice is so-so but
> better than the third, do you "approve" of your second choice? If you
> do, you'll be helping to defeat the candidate you really like. So as a
> voter your hands are artificially tied.
>

If you're stuck with the relatively inexpressive approval (0 or 1) voting,
as above:  you can live with your second-favorite or not.  Vote
accordingly.  If you vote "I can live with them" and they win, what's your
_actual_ complaint?  You _said_ you could live with them.  If that's an
outcome you can't live with, you should have voted 0 for them instead.  If
you want to specify _degrees_ of approval, then you want range/score (with
a larger universe of possible scores) voting instead.

> [skipping stuff about elections-in-general]
___
python-committers mailing list
[email protected]
https://mail.python.org/mailman/listinfo/python-committers
Code of Conduct: https://www.python.org/psf/codeofconduct/