Climate change and political jiu jitsu

In 2010, Maine elected strident climate change denier Paul LePage governor with 37.6% of the vote. LePage narrowly defeated Eliot Cutler, a wealthy lawyer and moderate progressive who secured 35.9% of the vote running as an independent. The Democratic nominee garnered a mere 18.8%.

As governor, LePage has acquired a reputation as a particularly extremist brand of Republican. Citizens for Responsibility and Ethics in Washington (CREW) summarizes his record as follows.
Augusta is a dangerous place for anyone who gets in the way of Gov. LePage’s ALEC-written agenda. 
The first-term governor packed his administration with lobbyists and used his office to promote their environmental-deregulation agenda, and allegedly went so far as to fire a state employee who testified in favor of policies the administration opposed. 
Gov. LePage also attempted to gut his state’s open records act, and is under investigation by the federal government for trying to bully employees of the state Department of Labor into deciding more cases in favor of business.
In 2014, with his approval ratings underwater, LePage ran for re-election. And once again Eliot Cutler threw his hat in the ring as an independent. But moderate and progressive voters, weary from four years of crazy LePage, urged Cutler supporters to throw their weight instead behind Democratic nominee Mike Michaud. This was a particularly ironic strategy, given that Cutler had previously trounced the Democratic challenger. Nevertheless, that strategic thinking apparently had a great effect, as Cutler was reduced to a mere 8.43% of the vote. Unfortunately, that wasn't enough. LePage defeated the Democrat by nearly 5%. At the time of this writing (July 2015), LePage is on track to break Maine's record for overridden vetoes, and may face impeachment.

But something very interesting happened in this second election. Volunteers in partnership with the non-profit Center for Election Science conducted exit polling in three Maine cities, asking not only who the voters had actually supported, but who they would have supported had there been no limit on the number of votes they could cast. This system is known as Approval Voting, and the results were profound.

The following charts reveal the complete reversal that took place with Approval Voting. The purple bar represents the Republican, the pink represents the Democrat, and the orange represents the independent.

The impact of tactical voting is staggering, particularly with regard to independent Eliot Cutler (orange). However, it is not that surprising when we look at pairwise head-to-head match-ups based on the preference rankings we also elicited from voters.

Cutler simply dominates both of his major party rivals. This convincingly shows that his scant support in the official election was a result of tactical voting. Simply put, voters didn't vote for Cutler because they didn't think he could win. This is the quintessential self-fulfilling prophecy. But with Approval Voting, voters have absolutely zero incentive to avoid supporting their favorite candidate. If they don't think their favorite is viable, they can support any number of additional candidates. In this case, a left-leaning Cutler supporter could vote for Cutler and the Democrat, or vice versa.

While these two elections may seem like mere anecdotes, I believe they exemplify a broader problem that is pervasive within our political system. For instance, consider this headline from today.

What this headline tells us is that a good fraction of voters are considering who they'll vote for based in large part on their perception of electability. Just think about that for a moment. Voters are going to decide who will get to be essentially the most powerful person in the world, based not simply on who they actually support, but who they think others will support in the general election. If that's not an insane way to choose a leader, I don't know what is.

Moreover, think about the factors that determine our perceptions around electability. One of the biggest is fundraising success. Hence our vote-for-one election system massively magnifies the influence of money. Thus a switch to Approval Voting may also be the greatest antidote to the problem of "money in politics". Commonly discussed strategies of repealing Citizens United via Constitutional amendment seem comparatively far fetched.

Speaking of money in politics, Democratic stalwart and billionaire investor Tom Steyer recently spent $57 million to influence seven key races, including the 2014 Maine gubernatorial race. But for a fraction of that amount, he could have funded ballot initiatives to get Approval Voting adopted in a number of small US cities, where it could establish precedent and plausibly spread to bigger cities, and then on to higher levels of government. In relatively short order, it's conceivable that the US government could be radically transformed. Less two-party dominated, less polarized, less incumbent-favoring, and less controlled by wealth.

The challenge for voting reformers is that the topic is dry and mathematical, and emotionally removed from the kinds of charged issues of our day. Police brutality on a small scale can incite weeks of mass protests. But try to get anyone to march in the streets for unlimited votes on their ballot, and you just hear crickets. This kind of wonky esoteric policy change may require concentrated wealth from a particularly analytical mind. There are only a few individuals with the resources and the passion. When will they pick up a copy of Gaming the Vote and push for a fix to the core of our democracy?


Democracy for Hong Kong

On Wednesday April 22nd, 2015, Hong Kong's local government unveiled a new election reform package outlining a process by which candidates for Chief Executive will be pre-screened by Beijing loyalists. The initial proposal set off widely publicized protests last year, and this latest update offers only minor changes from that. This has led to backlash from pro-democracy lawmakers and activists who desire free elections without filtering by mainland China, which will virtually guarantee the exclusion of any pro-democracy candidates.

The proposal is set for a vote requiring two thirds of the 70 local legislators to support it for passage. While the 27 members who are overtly pro-democracy (the so called "pan-democrats") could veto the bill, that could be a risky move, as they might not subsequently be able to negotiate anything better. A recent article in the International Business Times describes the hard line stance of senior Communist Party officials saying, "Beijing will not make any concessions over Hong Kong’s electoral reform that deviate from its own principles". The article continues:
The result of the package’s rejection would be the continuation of the existing system, where a nominating committee effectively appoints the chief executive, and the continuation of dysfunctional government in one of Asia’s key financial centers, which experts says is a losing proposition for all parties... 
Other analysts offered guarded support of the proposed reforms, indicating that if pan-democrats do not take the deal currently on offer, that could be the end of the political-reform process in the region.
“Even though the package is quite conservative, it is worth getting through, because if we lose this opportunity, we really don’t know when we will have the next round of negotiations with the central authorities,” said James Sung, a political analyst and lecturer at the City University Hong Kong.
Opportunities to negotiate a compromise that would allow Hong Kong to continue its democratic development in a manner acceptable to Beijing seem slim.
The inflexible attitude of mainland China leaves reformers with very little (read almost zero) room for negotiation. Thinking tactically and acknowledging practical realities, any remotely viable counter proposal must accept the general framework of the current package as well the basic premise that the Communist Party will have substantial influence over the process. But in order to leave room for democratic progress, it must create a subtle "lever" which can be the subject of future negotiation.

What chess moves do we have at our disposal? As a co-founder of The Center for Election Science, I've spent nearly a decade studying electoral system design with a focus on game theory. Here's my three-step plan. The third step is the "lever" I mentioned.

1. Remove the current 2-3 candidate limit

The current proposal allows the 1200-member nominating committee to select only 2-3 nominees using Approval Voting. Approval Voting simply means that committee members may vote for as many candidates as they wish. There is also the requirement that any eligible nominee must be approved by at least half of the committee members.

Instead, allow any and all candidates who meet the 50% threshold to run in the general election. This should not seem threatening to Beijing, since the committee is a group of hand-picked Communist Party loyalists. But this move creates at least some choice, and more importantly sets the stage for future maneuverings which I'll get to shortly.

2. Institute Approval Voting for the general election

Though the current reform package calls for Approval Voting in the nomination round, it unfortunately specifies Plurality Voting (aka First-past-the-post) for the general election. Political scientists have known for decades that Plurality is the worst voting method ever invented. For instance see this analysis of 18 different voting methods by the Voting Power and Procedures department at the London School of Economics. Plurality Voting came in dead last, whereas Approval Voting was their top choice.

Why? Plurality Voting can lead to the election of polarizing and unrepresentative leaders whenever there are more than two candidates, as the current package allows for. This is known as "vote splitting" or the "spoiler" effect, and it would be a particularly serious concern if the 2-3 candidate limit were rescinded. Approval Voting is the simplest solution to support an election with multiple candidates. It uses ordinary ballots and counting procedures. The candidate with the most votes still wins. But Approval Voting is mathematically proven not to harm voters who support their sincere favorite candidate. This allows voters to choose based on merit rather than on electability. It also elects candidates with the broadest consensus, leading to political stability.

Best of all, Approval Voting is already part of the reform proposal. In their Consultation Report and Proposals document, the Hong Kong Special Administrative Region Government (HKSAR) briefly alludes to the benefits of Approval Voting.
there are also views which suggest that the “voting on each person seeking nominations” should be adopted (i.e., each member could support all persons seeking nomination, or support only some of such persons), so as to enable such persons to have more opportunity to seek NC members’ nomination on a fairer basis; and that members could consider each person seeking nomination more freely according to the merits of each person.
Chief Secretary Carrie Lam clarified in her speech, "Each NC member may vote for all persons seeking nomination, or vote for only some of such persons."

Even Beijing-friendly LegCo member Regina Ip endorsed Approval Voting, writing the following:
In past elections, the number of candidates an Election Committee member could vote for was limited by the number of votes he or she had - a maximum of one. But under the new rules, with far more votes at his or her disposal, a nominating committee member would have far more choices, and much greater freedom to nominate a convincing candidate, irrespective of the candidate's political background. 
This method of voting, which political scientists classify as "approval voting", is adopted by the UN General Assembly in electing its secretary general, after nomination by the Security Council. As the UN experience shows, "approval voting" has the advantage of fostering the selection of a consensus candidate, a person who attracts the least objection and is most capable of accommodating diverse interests and factions.

3. Lower the 50% threshold

Here is the "lever" I spoke of above. In negotiations over any complex piece of legislation, it is dramatically easier for policy to evolve if key negotiating points are numeric. For instance, a parking fee of $10 can potentially be negotiated down to $5. And from there it can potentially be negotiated down to zero dollars. Or "free on Sundays".

If the pan-democrats could manage to pass points 1 and 2, then they could come back in the future and push for that 50% threshold to be lowered, perhaps to 45%. And then a few years later down to 40%, and so on. Giving a percentage point here or there is not a particularly worrisome proposition for mainland China, especially given that the nominating committee is their puppet. But it leaves open a path to gradual improvement. And this plan leaves nearly all of Beijing's package intact, creating the superficial appearance that Hong Kong as conceded, which has obvious political implications given their need to appear in control of Hong Kong.

Lastly, however flawed or insufficient this proposal may be, it seems unlikely that there is any alternative that stands much hope of passage. Give Beijing their nomination process with a few nonthreatening adjustments though, and you may have something.


Understanding Google Drive permissions

Let us define our terms.

node - a file or folder in Google Drive, whose permissions we are interested in
assigned permissions - the permissions directly assigned to the node
effective permissions - the actual permissions used by Drive to determine access to the node

In determining a node's effective permissions, Drive determines which has more recently changed:

  1. The assigned permissions of the node
  2. The assigned permissions of the node's parent folder

If #1, then the node's effective permissions are its assigned permissions.

If #2, then the node's effective permissions are its parent folder's effective permissions.

Observe that this makes the definition recursive, and you start to realize how complicated this actually is.

I'm pretty confident of this after doing quite a bit of experimenting, but please correct me if there's more to it than this.

Six reasons to support IRV = more IRV falsehoods

The following is a response I wrote in response to this op-ed by Maine representative Dick Woodbury.

In his recent op-ed, Dick Woodbury says discusses six reasons it’s time for instant runoff voting in Maine. Unfortunately almost every claim is false.

Consider the 2009 IRV mayoral race in Burlington, VT. The Progressive candidate won, despite a majority of voters favoring the Democrat to the Progressive. But remove the Republican spoiler from consideration and re-tally the ballots, and the Democrat wins. So much for Mr. Woodbury's claim that "there is no such thing as a spoiler candidate" with IRV.

Republican voters who preferred the Democrat to the Progressive were punished for supporting their favorite candidate. Doing so caused the Progressive to win. Had even a small number of them strategically ranked the Democrat in first place, then the Democrat would have won, giving them their second choice instead of their third choice. So much for Mr. Woodbury's claim that "voters can cast their vote for a preferred candidate without the strategic dilemma of potentially helping a candidate they oppose."

Finally, we're told that IRV is "exactly like an actual run-off election." Tell that to San Francisco supervisor Malia Cohen, who was elected in the 20th round in her 2010 IRV race. She had the third highest first-place votes, meaning that she would not have even made it to the second and final round of a traditional delayed runoff.

The ranked voting proposal does have some merit. It likely would have elected independent Eliot Cutler in the 2014 gubernatorial race, who was preferred by sizable majorities against his two major party rivals. However, Mr. Woodbury unfortunately undermines his case by demonstrating serious misunderstandings of the the very reform he's advocating.

Clay Shentrup
Berkeley, CA
Co-founder, The Center for Election Science


The Netherlands should pursue election reform for the USA

I was just listening to a book on Audible, called The Agile City. The author mentions that almost 65% of the Netherlands' GDP is at risk from climate change. I.e. it is imperative for the country to decrease CO2 emissions.

The United States emits over 16% of the world's CO2, and has the highest emissions per capita of any country (aside from a handful of countries with minuscule populations). This is second only to China (24.65% of total output, although China produces a mere one-third of the USA's per capita output). The per capita output for the European Union is only a bit higher than that of China, and the EU's entire output is still far below the USA's at 11.04%.

Thus it would be to their great benefit if the Netherlands' could somehow cause the USA to adopt policies which would reduce those emissions. I mean, this should arguably be their top priority, since we're talking about a huge fraction of their GDP being at risk from climate change. But how could a small European nation convince the world's "greatest superpower" to change such policies?

Easy. Fund election reform efforts by American political activists.

I'll give you an example. This past November 2014, a climate-change-denying Republican governor won re-election in the state of Maine. He was deeply unpopular, but his opposition was split between two climate realists, allowing him to win anyway. This vote splitting was possible because of the USA's use of the horrendous plurality voting system, where voters are limited to voting for only a single candidate.

But a multi-site exit poll indicates that the finish order would have been completely reversed had Maine used approval voting. Independent candidate Eliot Cutler (who was massively preferred head-to-head to both major party rivals) would have won instead. Cutler seems objectively the better representative, based on data from numerous opinion polls.

Approval voting simply means that voters can select as many candidates as they wish. This addresses the vote splitting issue, and makes it always safe to vote for your sincere favorite candidate. But that same exit poll revealed that even the overly complex and error-prone instant runoff voting system (IRV) would have gotten the winner right. Plurality voting is the only system I'm aware of that would have produced such a terrible result. But this is the system used in nearly all US elections.

Better voting systems can also reduce the impact of money in politics, which in turn reduces the influence of powerful interests who would very much like to thwart any policies which might reduce greenhouse gas emissions.

There are groups working to reform US democracy right now. But they suffer from widespread apathy, and general ignorance on the relevance of electoral systems on political outcomes. For a mere few million dollars, low lying countries such as the Netherlands could help American election activists establish a beach head and remove a massive obstacle to climate change policy reform. This is a bang-for-the-buck bargain that is simply unrivaled by anything they could achieve via e.g. UN bureaucracy. Countries such as the Netherlands ignore this opportunity at their peril.


The kindness of Rob Richie

This past November 2014, we at The Center for Election Science (with generous help from some Maine residents) conducted a exit poll for the Maine gubernatorial election. Our goal was to compare ordinary vote-for-one "plurality" voting to alternatives. We asked voters:
  • Who would you have voted for using approval voting, where you can vote for as many candidates as you wish?
  • Who did you actually vote for?
  • How would you have ranked the three candidates in order of preference (1st, 2nd, 3rd)?
In the real election, Republican Paul LePage was re-elected. With approval voting and instant runoff voting, independent Eliot Cutler won. LePage actually came in last place with approval voting.

When we initially mentioned this to FairVote executive director Rob Richie, he replied via email (on Nov 14, 2014):
Interesting -- thanks. Do you describe the reweighting process somewhere and walk through the actual results in the ballots you had and how they were adjusted into this final result?
Then, on Nov 20, he randomly replied:
This exit poll isn't close  to science. It truly is embarrassing for CES.
He cited not one iota of evidence for that claim. No criticism of any of our statistical model. Nothing. This is interesting, given that our statistical analysis was performed by a Princeton math PhD with over a decade of experience focusing on elections, as well as a computer scientist who formerly worked in the D.C. office of independent US senator Angus King. Not exactly a fly-by-night operation.

I stressed to Richie that the poll also was a positive for his favored instant runoff voting system, but he replied, "We won't touch it with a 10-foot pole."

Apparently, some of his colleagues in the voting reform world have different standards. On Dec 8, the Rank Your Vote Duluth campaign posted on Twitter:
Such a terrific article from our friends who are gaining steam in Maine
And on Dec 9, FairVote Minnesota posted:
"Independent Eliot Cutler Would Have Won Maine Governor’s Race under Approval Voting"
I thank these two IRV advocacy organizations for their kindness.


How not to concede an election loss

So the Berkeley campaigns season is finally behind us. Unfortunately not everyone is accepting defeat gracefully. For instance, Berkelyside reports this news on District 1.
[Alejandro] Soto-Vigil, who is also an aide to Kriss Worthington and a member of the Rent Stabilization Board, took an aggressive tone when he conceded defeat Tuesday night.
“I gotta say I am actually sad for the District 1 residents,” he said. “Looking for the last five and a half years at the City Council composition, looking at the platform of what’s been on the agenda, the voting record, it’s a travesty really.”
Maio said she was “sorry” to hear Soto-Vigil’s remarks.
“It is not usually what we do in a campaign,” she said. “We try to be gracious in a campaign. You honor the democratic process.”
But things got a little nastier in District 8. On his campaign web site, candidate Mike Alvarez Cohen published a concession article (ironically entitled "Perspective") which included this jab at opponent Lori Droste.
A material percentage of D8 voters want more women and/or LGBT elected officials (even if they’re not necessarily the most qualified candidates). I couldn’t appeal to them, but another candidate did.
It's odd that Cohen singles out Droste. Of the two other candidates in the race, Jacquelyn McCormick is a woman, and George Beier is gay.

It's unfortunate that Mike resorts to reducing Droste down to her gender and sexual orientation. Berkeley is a small pond where even the losers in these contests have plenty of opportunity to influence policy, whether by joining our robust commission system, or speaking directly with city council members. I hope that Soto-Vigil and Cohen will remember that, and work to promote their ideas in a productive way. Let's respect the democratic process, as Linda Maio says, and be gracious for the opportunity to run for office in a city with such a fair and functional democracy.


How not to be wrong on voting methods

On page 419, Jordan Ellenberg in his 2014 book  How Not To Be Wrong, the power of mathematical thinking,  writes:
One voting system to which Arrow's Theorem doesn't apply is "approval voting," in which you don't have to declare all your preferences, you just vote for as many of the people on the ballot as you want, and the candidate who gets the most votes wins.  Most mathematicians I know consider approval voting or its variant to be superior to both plurality voting and IRV;  it has been used to elect popes, secretaries-generals of the United Nation, and the officials of the American Mathematical Society, but never yet government officials in the United States.


Misinformation on Instant Runoff Voting by The League of Women Voters of Oakland

I just came across this flier from their Oakland branch, which contains numerous common falsehoods about Instant Runoff Voting.
IMPORTANT FACT TO REMEMBER: The person in office can be either good or bad after being elected by either the Primary or Ranked-Choice Voting system; don’t blame the voting system for the actions of the person in office.
But the voting system has a tremendous impact on the quality of election outcomes. According to Bayesian Regret figures from a Princeton math PhD named Warren D. Smith, who has been studying voting systems for at least 14 years and was a prominent figure in William Poundstone's book Gaming the Vote, the choice of voting system appears to be the biggest single factor affecting the quality of leaders.

As far as we can tell, the authors of this flier have no particular expertise in voting theory, and likely could not even describe or define Bayesian Regret, or numerous other core election theory concepts.
HOW TO VOTE STRATEGICALLY: Vote your favorite as your first choice, regardless of his or her likelihood to win, then choose from the front runners for your second and third choices. If your first choice is eliminated early, your second and third choices of the front runners still have you in a strong position to help choose the winner.
This is simply false. Here's a short layman-friendly video explanation by Andy Jennings, a co-founder of The Center for Election Science, whose PhD thesis was on the mathematics of voting.

This scenario happened in Burlington, Vermont, in their 2009 mayoral race. A group of Republicans, who unsurprisingly favored the Democrat over the Progressive, got their least favorite of those three when the Progressive won. But if just a handful of them had insincerely ranked the Democrat in first place, then the Democrat would have won instead. I.e. voting for their favorite candidate hurt them. Sincerity was not their best strategy. Here's a deeper explanation for the mathematically inclined, describing why strategy is always advisable, even if you don't know whether it's going to help in a particular election.

Later in the flier, the authors hammer home this falsehood even further:
Strategic voting: a voter can vote for the candidate they really like best. Near election
time it becomes clear who the front-runners are. But voters can still give their first vote
to the candidate they really like, even if they think he/she won’t win. Then they can
decide which of the front runners to give their second and third votes to. Each choice
empowers the voter. There are no games here. We each have one vote, but we can
indicate backup choices according to our sincere preferences. That’s the best way to
make sure our votes count, and Oakland gets the mayor, city council members, and
school board leaders we deserve.
As we've now seen, virtually everything in this paragraph is incorrect.
[IRV] makes it possible to elect local officials by majority vote without the need
for a separate run-off election.
IRV does not guarantee the election of a "majority winner". It is possible for Bad to win even though a huge majority of voters preferred Good to Bad—even if Good got many more first-place votes. Here's an example, with the other two candidates arbitrarily named X and Y.
35%                   X > Good > Y > Bad
17%                   Bad > Good > Y > X
32%                   Good > Y > Bad > X
16%                   Y > Bad > Good > X
That is, 35% of the voters prefer X over Good over Y over Bad, and so on. Note that Good has almost twice as many first-place votes as Bad (32% vs. 17%). And Good is preferred to Bad by a huge 67% of the voters. But Bad wins. Don't take our word for it—count it for yourself.
Why Ranked-Choice Voting is a good thing
• More people vote in November than in a June primary so decisions are made by a larger proportion of citizens. RCV provides instant runoff.
• More people of color, less-well off, younger, with lower-level jobs vote in November; in June the majority of voters are white, older, well-off, well-educated. 
This has nothing to do with IRV. This is about the date that the elections are held.
Candidates outside the mainstream have a chance—third party candidates in partisan elections;
Actually, IRV has produced two-party domination everywhere it has seen long-term widespread use. E.g. in Australia. By contrast, in most of the 27 or so countries that use a traditional top-two runoff (like Oakland and other Bay Area cities used to have) there are three or more successful parties. So one could argue that IRV explicitly hurts minor parties.
• Saves money.
o Eliminates the $800,000 cost of a June primary. 
From Warren Smith:
Yes, one round is cheaper and easier than two, but with IRV, that one round is more complicated and it cannot be done on ordinary "dumb totalizing" voting machines, whereas both rounds in delayed runoff can be done with such machines; and IRV is non-additive (no such thing as "precinct subtotals") and non-monotonic; and the second round in delayed runoff often does not happen. (Top-two runoff also is non-monotonic, but each of its two rounds, in isolation, of course is monotonic.) In view of those facts, it is not at all clear to us that IRV actually saves money. And in any event, the money spent on elections is negligible compared to other government expenditures, so it is more important to get quality in elections, than to save money. Thus "saving" money would be a false economy that surely would actually cost more in bad government than it saved in election expenditures. For example (2006), a pro-IRV group was recently arguing that Oakland California should switch to IRV because each runoff election under the old delayed-runoff scheme cost Oakland "hundreds of thousands of dollars," which was their way of saying $200,000. However, they did not mention that Oakland's annual budget is over $1 billion so that the "cost savings" they were lobbying for was of order 0.02% fractionally. Surely there are superior ways to save Oakland's money! Also they did not mention that it cost (neighboring, comparable size) San Francisco $1,600,000 to upgrade its voting machines to run IRV two years before. So the payback time required to justify this cost "savings," as you can see, would be very large, perhaps 30-40 years assuming elections every 2 years and runoffs required half the time. Quite probably Oakland would be re-replacing its machines before that time, in which case the costs never would be repaid.
The LWV's next argument:
o Candidates raise money for only one campaign, not two. 
This has nothing to do with IRV per se. You could just eliminate runoffs altogether, and not adopt IRV, and you'd still have this savings.
Who opposes RCV?
• Voters who are unhappy about the candidate who won. The problem is the candidate, not the election system. A two-candidate runoff can also result in a winner many voters do not like in office.
I repeat, the voting system has a major impact on average voter satisfaction with election results. It is completely reasonable to put some probabilistic blame on IRV. However, one saving grace in this instance is the fact that the traditional top-two runoff system is also among the most terrible voting systems ever devised, and so one cannot confidently say whether things would have been much better with the old system. We can, however, say that things would have likely turned out much better with any of the other alternative voting systems: Score Voting, Approval Voting, Borda, or Condorcet voting.

They also forgot to mention the majority of election theory experts with math and/or political science credentials. IRV is widely considered to be the worst of the five commonly discussed alternative voting systems.

Clay Shentrup
Co-founder, The Center for Election Science


Mock 2014 Maine Gubernatorial election, using Approval Voting

A recent article informs us that, "Maine voters are looking at the three-way 2014 governor race strategically." This is because there are three major candidates, and independent Eliot Cutler is considered by many to be a potential "spoiler".

But there's a simple solution to this problem. Rather than urge Cutler to drop out of the race, Maine voters could push for a switch to Approval Voting. This simple alternative system is identical to the present system, except that it allows voters to select as many candidates as they wish. The candidate with the most votes still wins. You never have to fear a vote for your favorite candidate, because you can still support a more electable "lesser evil" compromise candidate if you wish.

Try it out for yourself, by voting below in a mock version of the election, using Approval Voting.

Vote for one OR MORE - the candidate with the most votes wins
pollcode.com free polls 


Approval Voting is better than Plurality Voting, even in multi-winner races

There have been some cases where Approval Voting, which is ideally intended as a single-winner voting system, has been criticized when used in multi-winner "at-large" elections. The gist of it is, suppose you have the following scenario:

Voters are roughly split into three groups: left, right, and center. There are three candidates from each of those factions (i.e. nine total candidates), and we're electing three winners.

The critics will argue that a reasonable outcome would be one that is proportional, such that you get one winner from each faction.

Approval Voting will tend to elect all three centrists, which is less representative. Although note that this still gives a body with the same ideological center as the electorate, which is crucial.

While this is true, and is a fine argument for favoring Proportional Approval Voting over ordinary Approval Voting, it certainly doesn't favor at-Large Plurality Voting. That system could easily give you two leftists and a centrist, or two rightists and a centrist—a result which creates a body whose ideological center is significantly divergent from that of the electorate.

Incidentally, here's a video demonstration on how to tabulate Proportional Approval Voting in a spreadsheet, with a few simple formulas.


Testing strong parameters

Pivot Robbie Clutton describes strong parameters as follows:
Strong parameters are a way of white listing HTTP query parameters and moves the burden of whitelisting from the ActiveModel/ActiveRecord classes and into the controllers.
My view is that this testing strategy is far too complex, and here I outline a simpler approach.

First, let's understand the API. It was a bit tricky for me at first, partly because the documentation is vague.

We can whitelist attributes via the permit method, and we can require them via the require method.



Regarding the handling of missing or unpermitted keys, here's what the docs say:
By default parameter keys that are not explicitly permitted will be logged in the development and test environment. In other environments these parameters will simply be filtered out and ignored.
Additionally, this behaviour can be changed by changing the config.action_controller.action_on_unpermitted_parameters property in your environment files. If set to :log the unpermitted attributes will be logged, if set to :raise an exception will be raised.
The unpermitted key behavior happens instantly. That is, if you require a parameter that's missing, you get an ActionController::ParameterMissing exception. If you permit some parameters, any unpermitted parameters will instantly be indicated via an ActionController::UnpermittedParameters exception or a log line, depending on your action_on_unpermitted_parameters setting.

Note that this means you don't want to have a permit before a require if you're using the :raise option (which I strongly suggest you do, because that's confident coding), because the permit call would then raise an exception.

But what's this default behavior where keys that are not permitted are "filtered out and ignored"? This just means that the call to permit returns a hash in which the unpermitted keys are removed. The original params object is unaltered.

In any case, this brings us back to..


First off, recognize that it's easy to test that all the right parameters are permitted. We simply write a controller test using an update hash including all of the permitted parameters.

Now, to assert that any other params aren't permitted, we simply make a context in which we have a single unpermitted parameter, and assert that the unpermitted attribute isn't updated.

But now what about require? That's considerably more work to test, since you'd have to make nested contexts for every single required parameter. Therefore I advise simply not to use require at all. I'm not even sure why it was added. Feel free to tell me if you can think of a good reason.

This strategy is just radically simpler than the approach Robbie Clutton took.


Score Voting vs. Approval Voting

A common criticism of Score Voting is that it is strategically identical to Approval Voting. For instance, one member of the German Pirate Party recently responded on Twitter to a Score Voting election using a -3 to +3 scale:
Best strategy for assessment choice by the way: Favorites to +3, all other -3. Otherwise, voting power is wasted.
The basic idea is that it's always strategically optimal to use the maximum and minimum scores (we often refer to this as "polarization"), which seems like an argument for using Approval Voting instead of Score Voting. There are a number of reasons why this argument is flawed.

First, it's not always true. There are some instances in which honesty is a better strategy than polarization. Having said that, I acknowledge that those are exceptions to the rule, which I point out purely to be thorough. So let's continue with the premise that polarization really is the best tactic, since it's approximately true. In that case, we must look at the pros and cons of using Score Voting instead of Approval Voting.

One major advantage of Score Voting is that it's more expressive, which many voters enjoy. For example, in the 2000 USA presidential election, polls show that about 10% of the people who preferred the Green Party voted for their nominee, Ralph Nader. They knew Nader had virtually no chance to win, and they could have made the tactical decision to vote for their favorite of the two major party candidates. But expressing their opinion was just so important to them, that they chose to "throw their votes away" on the Green Party.

This principle is actually at work within the very act of voting! Because in the vast majority of elections, a voter's odds of affecting the outcome are so incredibly small that it is economically irrational for him to waste his time voting. This is concept is actually called the Paradox of Voting. So if our Pirate friend from Twitter votes, that is proof that he actually agrees with us.

But there is more benefit here than mere self expression. It turns out that when voters are honest, they tend to "donate" more utility (aka welfare/satisfaction/happiness) to the other voters than they sacrifice, resulting in a net welfare increase. You can see this clearly in Bayesian regret figures. The more voters are honest, the greater the average satisfaction.

Critics will often respond that this only addresses those voters who consciously chose to be honest. What about those voters who simply didn't know any better, and were then unfortunately victimized by the tactical voters? There are a number of counter-arguments to this concern:

  • Those voters presumably are very few in number, meaning we should be skeptical about giving up the significant benefits of Score Voting simply to protect them.
  • One can make the argument that any voter so naive as to be unaware of strategy would actually be better off casting a sincere Score Voting ballot than an Approval Voting ballot. This is based on analysis of the effectiveness of these respective behaviors. I.e. observe that the values in column C tend to be greater than those in column D in the first table here.
  • It turns out that if there's enough sincere voting, then even the "naively honest fools" who vote sincerely do better with Score Voting than with Approval Voting. See table two from this page on the "Shentrup-Smith Experiment".


The bottom line is that if even one voter decides to sincerely use the intermediate scores, then Score Voting produces better average voter satisfaction that Approval Voting. And if you prevent sincere voters from using intermediate scores in order to protect the naive ones, you possibly hurt them, and you definitely hurt the voters who wanted to be expressive. Is it really worth it, just to make the voting procedure a little simpler? Score Voting is a little more complex than Approval Voting, but it is still much simpler than any ranked voting system. 

Approval Voting is a fantastic system, but a rational voter will want to take Score Voting instead, if he can get it.


Intepersonal comparisons of utility

I occasionally run into someone expressing skepticism about the validity of Warren Smith's Bayesian regret calculations, due to the fact that they employ a Utilitarian or "Benthamite" social welfare function (i.e. the social welfare for is the sum of the utilities of the members of the group). The particular criticism I refer to is that individual utilities cannot be summed because they are not "interpersonally comparable".

Let's assume, for the sake of argument, that utilities are not interpersonally comparable. In that case, the uniquely best social welfare function is the one which maximizes the expected utility of a randomly chosen voter, in his own personal units of utility. That is, the best option is the one that maximizes the average of all voters' utilities. But note that this is mathematically identical to simply summing the utilities, for any given group of voters! And therefore the complaint about not being able to perform interpersonal comparisons of utility is academic, and doesn't invalidate the social choice function Smith employed for his BR calculations.

Regarding the aforementioned Twitter conversation, this also some bearing on the applicability of "labels" to the scores listed on a Score Voting ballot. That is, some folks would like to have something like:
0 - terrible, 1 - poor, 2 - mediocre, 3 - good, 4 - great
The most obvious problem, to anyone acquainted with basic economic theory, is that this introduces error. For instance, suppose that my subjective connotation with these words is such that
u(great) - u(good) = u(good) - u(terrible)
And suppose that my utilities for some set of options are such that
u(x) - u(y) = u(y) - u(z)
Without labels, I would vote (assuming I'm a sincere voter)
x = 4, y = 2, z = 0
But if I vote using the labels, that would be
x = 4, y = 3, z = 0
This would produce a lower expected utility for me, making me worse off. Of course, if I'm a tactical voter, then it doesn't matter anyway. But why add more text than is absolutely necessary to a ballot, if it reduces the expected utility of voters? Why make the voters worse off?

There is a potential counter to this. But it appears to require that you accept the validity of interpersonal utility comparisons. Here's how it works. Suppose that Bob and Alice have the following utilities, on a universal scale.
u(x) = 8, u(y) = 6, u(z) = 0
u(x) = 8, u(y) = 6, u(z) = 4
Their sincere votes (on a 0-4 scale) would look like
x = 4, y = 3, z = 0
x = 4, y = 2, z = 0
The scaling distortion makes it appear as though they have different opinions on y, but the same opinions on z—which is precisely backwards. But suppose those labels, like "great" and "mediocre", have highly similar mappings to actual utility values for both Bob and Alice. In that case, the labels could prevent more loss than they caused—by nullifying some component of the normalization loss.

The irony here is that our friend on Twitter supported the use of labels, but opposed the validity of interpersonal utility comparisons!

The caveat is, as I said at the beginning, that a welfare function that maximizes the sum of all individuals' utilities also maximizes the expected utility of any individual voter, even if we disallow interpersonal comparisons of utility. So my aforementioned defense of labels is still equally valid, even if we don't permit interpersonal utility comparisons.

@selylidne can thank me for offering at least some evidence in support of his own argument.


Fun with Airbrake customer support

Exceptions going unreported

Clay Shentrup's Avatar

Clay Shentrup

Oct 01, 2013 @ 10:49 AM
We're experiencing exceptions on production leading to 500 errors, but nothing new is making it to the exception list in Airbrake, nor are we getting email notifications. The only notifications I see are for repeats of exceptions that already existed prior to the new site rollout.
  1. SUPPORT STAFF2 Posted by Morgan on Oct 05, 2013 @ 01:31 PM
    Morgan's Avatar
    Hello Clay,
    Thank you for bringing this to our attention.
    Can you please provide your account's subdomain and the name of the project(s)
    effected [sic]?
    Please get back to us when we can, when I have that I will do some troubleshooting on the account and make a bug ticket for the developers to take action on.
  2. 3 Posted by Clay Shentrup on Oct 07, 2013 @ 10:30 AM
    Clay Shentrup's Avatar
    I just want to make absolutely sure you got this, seeing as how multiple of
    my replies failed permanently. 
    [I had replied to their automated email, which is supposed to post the message to this thread, an Sat, Oct 5, 2013 at 1:38 PM. But it failed permanently. I sent that permanently failure message back to them two more times, and only received one more failure reply, so I assumed that the second email had gone through. I finally checked back in on the 7th, via email, resulting in this post.]
  3. 4 Posted by Clay Shentrup on Oct 08, 2013 @ 11:33 AM
    Clay Shentrup's Avatar
    Could I get an update on this? We haven't had exception notifications for 7 days now. This is a pretty big deal for us. It seems to have perfectly coincided with the roll out of the new site, although that could indeed be a coincidence for all I know.
  4. SUPPORT STAFF5 Posted by Matt on Oct 09, 2013 @ 12:51 PM
    Matt's Avatar
    This issue has been resolved by our dev team. They have deployed the code to fix this issue. Unfortunately you will have to remove the addon from heroku, then re-add it again, but you will no longer run into this 401 issue.
    Let us know if you have any questions or run into any other issues.
  5. Matt closed this discussion on Oct 09, 2013 @ 12:51 PM.
  6. Clay Shentrup re-opened this discussion on Oct 09, 2013 @ 02:12 PM
  7. 6 Posted by Clay Shentrup on Oct 09, 2013 @ 02:12 PM
    Clay Shentrup's Avatar
    What does Heroku have to do with anything? We don't use Heroku.
  8. SUPPORT STAFF7 Posted by Ben Arent on Oct 09, 2013 @ 02:13 PM
    Ben Arent's Avatar
    Hi Clay, This looks like a bit of a mix up. I need to review this bug in more detail before I can tell you more.
  9. SUPPORT STAFF8 Posted by Ben Arent on Oct 09, 2013 @ 02:34 PM
    Ben Arent's Avatar
    Hi Clay,
    I looked at your app and it looks like it's reporting noticed just for NoMethodError: undefined methodto_sym' for nil:NilClas` Rake task, but may not be correctly setup for the rest of your app.
    Which version of the Gem are you using, and what's the output of config/initializers/airbrake.rb
  10. 9 Posted by Clay Shentrup on Oct 09, 2013 @ 03:34 PM
    Clay Shentrup's Avatar
    We're using version 3.1.14.
    I ran "rails runner config/initializers/airbrake.rb" but it doesn't output anything. Which makes sense to me, considering that file is just:
    Airbrake.configure do |config|
    config.api_key = 'our API key' end
    I did a puts on it and got:
    Note that the Airbrake testing rake task succeeds.
  11. 10 Posted by Clay Shentrup on Oct 10, 2013 @ 03:10 PM
    Clay Shentrup's Avatar
    Can I get an update? We're really suffering by not getting exception reporting.
  12. 11 Posted by Clay Shentrup on Oct 10, 2013 @ 03:31 PM
    Clay Shentrup's Avatar
    I just got a 422 that went unreported. The log says:
    Completed 422 Unprocessable Entity in 86ms
    ** [Airbrake] Failure: Net::HTTPRequestEntityTooLarge
  13. 12 Posted by Clay Shentrup on Oct 10, 2013 @ 05:24 PM
    Clay Shentrup's Avatar
    Now I'm getting a new exception, but it's not coming through in Pivotal Tracker.
    I refresh and it just never shows up. Yet repeats of OLD exceptions still show up in Tracker.
  14. 13 Posted by Clay Shentrup on Oct 11, 2013 @ 05:12 PM
    Clay Shentrup's Avatar
    Hi guys. Any updates. Haven't had fully functional exception tracking for about a week and a half now.
    [Update: as of today, October 14, it seems like the Pivotal Tracker integration is be working again.]


Revisiting my concerns over a Hillary Clinton presidency

On election day in 2012, I attended an event called "Election Night Gathering" at The Independent in San Francisco. There I got into a discussion with a woman who has been one of my wife's best friends for many years, during which she explained that she had been a strong advocate for Hillary Clinton in the 2008 election. I was a bit taken aback by this. I had come to view it as almost common knowledge (at least, among the net-enabled and highly educated) that Clinton had stooped to some appalling tactics during that campaign. I felt she had revealed aspects of her temperament, judgment, and honesty which were cause for legitimate concern if she were to become President. After a somewhat uncomfortable conversation about this, I pledged to put my thoughts into writing soon thereafter. What follows is the, admittedly off-the-cuff, email I sent to my friend.

I was thinking about our recent political talk at the Independent, and it prompted me to go back to old emails I exchanged with other political fanatics in the 2008 primary election. It was a slap to the face. I was powerfully reminded of how worried I was about the possibility of a Hillary Clinton presidency. I think of myself as someone who puts a tremendous, almost obsessive amount of thought into my political positions. I've spent much of the past six years promoting electoral reforms which I believe would improve human welfare more than anything since the invention of democracy in the first place. So I felt compelled to share some of the things that shaped my views at the time. This stuff really matters to me, and I hope you'll give this some serious consideration.

In no particular order:

Clinton voted for the authorization to use military force in Iraq (a move that gave Bush the power to, declare war, even though the Constitution says that only Congress can declare war). Meanwhile, Obama had been actively speaking out against it, saying that he does not oppose all wars but he does oppose "a dumb war". Note this speech he gave back in 2002:

As Mike Gravel pointed out in the Democratic debates, Hillary supported the neocon saber-rattling, and drumming up the support for a possible "second Iraq", by also voting to declare Iran a terrorist state. See this video where he confronts her about this in the debates, and then she laughs at him.

A little background on Mike Gravel is in order. He has been a tireless advocate for freedom and non-violence, for decades. He's known for divulging the lengthy texts of the leaked "Pentagon Papers" into the Congressional record for permanent posterity, in an effort to end the Vietnam war.

The prospect of killing hundreds of thousands more in a second Iraq was a deadly serious matter for Gravel, and whether or not Clinton's justification was valid, her belittling laughter in the face of such a grievance was tremendously disappointing to me. (And I have my doubts about the justification: an account at the time countered, "None of the other Democratic senators running for president supported the measure, arguing that it helps President Bush build a case for war with Iran.") And note that Gravel's no Obama lover—he dings Obama only a little less for not voting one way or the other.

On the general subject of character and temperament (which I understand is very subjective) there were a number of comments from Hillary Clinton in which the tone and content struck me as overly zealous, and lacking the kind of calm that I think is essential in a pragmatic and effective leader:

1) Here's a piece by noteworthy GOP activists Rachel Maddow and Keith Olbermann, addressing Clinton's claim that she and McCain would put forth a lifetime of experience, while Obama would run merely on a speech he made in 2002.

Her original comments are here:

2) Here was one of her responses to some negative ads from the Obama campaign:

I think that in that clip, she truly seems unhinged. I don't doubt that the Obama campaign sent out some negative campaign literature. But I saw plenty of that from her campaign as well. Either way, responding calmly with objective facts would have instilled more confidence in me than a reaction in which she seemed to be letting her anger get the best of her, as if she was on the verge of exploding. By comparison, Obama operated as if he was on Xanax.

3) In this 60 Minutes interview, she says Obama's not a Muslim, "as far as I know".

I think she should have said something more like, "Of course not, that's utterly ridiculous."

This all relates to the Rachel Maddow point that Clinton's rhetoric was more like what you'd say if you were running to be McCain's VP. Arianna Huffington actually responded with an article called "John McCain Should Go on Vacation, Hillary Clinton is Doing His Job for Him".

All of these character issues meant I didn't spend a great deal of time analyzing the details of their experience. Nevertheless, what I read in that area matched with my character-based perspective. Here's a piece I sent out to some of my friends in 2008, where one woman looked at what Obama and Clinton's legislative efforts and accomplishments said about them. They were very similar on policy, but Obama exhibited a tendency to get more co-sponsors on board, which may account for why he achieved more victories per session.

Lastly, an anecdote that you can take for what you will. At one point, Samantha Power (one of Obama's unpaid advisors) slipped up and called Clinton a "monster" to a reporter, who published the comment.

She was rightfully dismissed from the campaign, and apologized for phrasing her views in such a simplistic way. But I don't think her choice of words could have been completely a result of campaign furor. Power is a deeply thoughtful person. Wikipedia says she..
runs the Office of Multilateral Affairs and Human Rights as Senior Director of Multilateral Affairs on the Staff of the National Security Council. She is also the Founding Executive Director and the Anna Lindh Professor of Practice of Global Leadership and Public Policy of the Carr Center for Human Rights Policy at Harvard University's Kennedy School of Government.
Power began her career by covering the Yugoslav Wars as a journalist, and was a winner of the Pulitzer Prize for her book A Problem from Hell, a study of the U.S. foreign policy response to genocide.
So at the very least, I hope you can see that I didn't choose my position in haste.



Clinton also supported a bill to make flag-burning a crime.

She also introduced (with Joe Lieberman and Evan Bayh) a bill to criminalize those who "peddle" violent games to kids. This was later ruled unconstitutional by a 7-2 Supreme Court decision. I suggest you read this Rolling Stone article about it.


Interesting excerpts from "Extreme Programming Explained"

I just finished up Extreme Programming Explained, by Kent Beck and Cynthia Andres. Here are some excerpts I found interesting.

But first, the bibliography:
Beck, Kent; Andres, Cynthia (2004-11-16). Extreme Programming Explained: Embrace Change (2nd Edition) (Kindle Location 2899). Pearson Education (USA). Kindle Edition.

Lowering the quality of your work doesn't eliminate work, it just shifts it later so delays are not clearly your responsibility. You can create the illusion of progress this way, but you pay in reduced satisfaction and damaged relationships. Satisfaction comes from doing quality work.

You can't get software out the door faster by lowering quality. Instead, you get software out the door faster by raising quality.

How do you implement daily deployment when you have projects that take weeks or months before they are usable? There are many tasks involved in a big project: restructuring the database, implementing new features, and changing the user interface. As long as you don't change the user's experience of the system, you can deploy all the rest of that work. On the last day you put the "keystone", the change to the user interface, in place.

Planning in XP is an activity, not a phase.

If everyone is trying to make sure his function is not seen as the constraint, no change will happen. If the developers say, "Yes, writing automated tests would be 'A Good Thing', but it will slow me down and I'm overloaded as it is," then nothing will change regardless of how beneficial the change would be to the organization and thus to the individuals in it. The reward system and culture need to align with overall throughput instead of individual productivity for the change to stick.

One of the objections to pairing is that pairing cuts effective programming in half. In my experience, pairs are more than twice as effective. The actual time required for me to complete tasks solo versus paired, accounting for debugging time, is more than double; so by pairing you actually come out ahead in completed, clean code. When comparing the value of pairs to individuals, you need to include both time and productivity in deployable code. The goal is valuable software development delivered on time and in budget. The numbers in the plan matter, but only in service of this goal. In planning, you need to include all the relevant numbers in your calculations.

The first edition of Extreme Programming Explained had a more abstract estimation model, in which stories cost one, two, or three "points". Larger stories had to be broken down before they could be planned. Once you started implementing stories, you quickly discovered how many points you typically accomplished in a week. I prefer to work with real time estimates now, making all communication as clear, direct, and transparent as possible.

More time at the desk does not equal increased productivity for creative work.

most defects end up costing more than it would have cost to prevent them.

The team's goal is to eliminate all post-development testing and shift testing resources to more highly leveraged parts of the development lifecycle.

XP teams prefer simple solutions where possible. Here are four criteria used to evaluate the simplicity of a design:

1. Appropriate for the intended audience.
It doesn't matter how brilliant and elegant a piece of design is; if the people who need to work with it don't understand it, it isn't simple for them.

2. Communicative.
Every idea that needs to be communicated is represented in the system. Like words in a vocabulary, the elements of the system communicate to future readers.

3. Factored.
Duplication of logic or structure makes code hard to understand and modify.

4. Minimal.
Within the above three constraints, the system should have the fewest elements possible. Fewer elements means less to test, document, and communicate. Projects that move toward simplicity improve both the humanity and productivity of their software development.

Software development is full of the waste of overproduction: fat requirements documents that rapidly grow obsolete; elaborate architectures that are never used; code that goes months without being integrated, tested, and executed in a production environment; and documentation no one reads until it is irrelevant or misleading. While all of these activities are important to software development, we need to use their output immediately in order to get the feedback we need to eliminate waste.

The challenge of XP is to encourage deep change, to renew individual values and mutual relationships to give software a seat at the table for the next fifty years. Unleashing the potential of the human spirit will lead to a future for computing that we can't yet imagine.