logo contest status query

So what's the status on the logo contest, any word on when the results will be tallied? Christopher Diggins

christopher diggins wrote:
So what's the status on the logo contest, any word on when the results will be tallied?
Hi Christopher, Sometime next week. Cheers, -- Joel de Guzman http://www.boost-consulting.com http://spirit.sf.net

Joel de Guzman wrote:
christopher diggins wrote:
So what's the status on the logo contest, any word on when the results will be tallied?
Hi Christopher,
Sometime next week.
Alright, we might need a little more time. Kalin (the one who volunteered on doing the tally), sent me a tally. However, IRV poses a special challenge because of the number of entries involved. It would be nearly impossible to get a "majority vote". Hence, we would have to do more tallies, iteratively until either the winner has a "majority vote" or we reach the 5th iteration (since we have 5 preferences for each voter). I'm guessing we'll reach a 5th iteration. <<<This makes me think that IRV is not suitable for this type of voting, and we should reconsider next time we have to do this again.>>> Cheers, -- Joel de Guzman http://www.boost-consulting.com http://spirit.sf.net

----- Original Message ----- From: "Joel de Guzman" <joel@boost-consulting.com> To: <boost@lists.boost.org> Cc: <kalin.eh@gmail.com> Sent: Wednesday, March 30, 2005 11:03 PM Subject: [boost] Re: logo contest status query
Alright, we might need a little more time. Kalin (the one who volunteered on doing the tally), sent me a tally. However, IRV poses a special challenge because of the number of entries involved. It would be nearly impossible to get a "majority vote".
Hence, we would have to do more tallies, iteratively until either the winner has a "majority vote" or we reach the 5th iteration
With all due respect you clearly are misunderstanding how IRV works. The iterations may most definitely continue after five iterations, and that is clearly to be expected when there are numerous choices. I would suggest rereading the algorithm description at http://www.fairvote.org/irv/faq.htm . Specifically the section: "How does it work? Voters rank candidates in order of choice: 1, 2, 3 and so on. It takes a majority to win. If anyone receives a majority of the first choice votes, that candidate is elected. If not, the last place candidate is defeated, just as in a runoff election, and all ballots are counted again, but this time each ballot cast for the defeated candidate counts for the next choice candidate listed on the ballot. The process of eliminating the last place candidate and recounting the ballots continues until one candidate receives a majority of the vote. With modern voting equipment, all of the counting and recounting takes place rapidly and automatically." IRV is guaranteed to provide a winner.
(since we have 5 preferences for each voter). I'm guessing we'll reach a 5th iteration.
<<<This makes me think that IRV is not suitable for this type of voting, and we should reconsider next time we have to do this again.>>>
IRV is perfectly suitable for this type of voting. -Christopher Diggins

I thought it would be fun to quickly try to write a program to do IRV voting. Hopefully it can be used to make the lives of the people counting the votes a bit easier. The file piped into cin should list each voter's choices in descending order on separate lines after a line containing only the string "vote:". For instance, the following input represents four unnamed voters, each of whom was allowed three votes, and who made first choices of a, b, c, and a, respectively. vote: a b c vote: b c d vote: c d e vote: a b f Running the program with this input results in the following output. clearing votes for a clearing votes for b clearing votes for c clearing votes for d clearing votes for e clearing votes for f a now has 1 votes b now has 1 votes c now has 1 votes a now has 2 votes d has been removed from the running e has been removed from the running f has been removed from the running clearing votes for a clearing votes for b clearing votes for c a now has 1 votes b now has 1 votes c now has 1 votes a now has 2 votes b has been removed from the running c has been removed from the running clearing votes for a a now has 1 votes a now has 2 votes WINNER: a If I made any errors in my implementation of the voting algorithm, please let me know. I hope someone finds this useful, but if not, at least it was fun to write :) -Jason #include <string> #include <vector> #include <list> #include <map> #include <iostream> using namespace std; int main ( ) { string s; list < string > vote; vector < list < string > > votes; map < string, size_t > candidates; while ( true ) { getline ( cin, s ); if ( cin.eof ( ) ) { if ( !vote.empty ( ) ) votes.push_back ( vote ); break; } if ( s == "vote:" ) { if ( !vote.empty ( ) ) { votes.push_back ( vote ); vote.clear ( ); } } else { candidates.insert ( map < string, size_t >::value_type ( s, 0 ) ); vote.push_back ( s ); } } bool winner = false; size_t min_votes; map < string, size_t >::iterator c_iter, c_next; vector < list < string > >::iterator vl_iter; while ( !winner ) { c_iter = candidates.begin ( ); while ( c_iter != candidates.end ( ) ) { cout << "clearing votes for " << c_iter->first << endl; c_iter->second = 0; ++c_iter; } vl_iter = votes.begin ( ); while ( vl_iter != votes.end ( ) ) { list < string >::iterator v_iter ( vl_iter->begin ( ) ); while ( v_iter != vl_iter->end ( ) ) { c_iter = candidates.find ( *v_iter ); if ( c_iter != candidates.end ( ) ) { ++( c_iter->second ); cout << c_iter->first << " now has " << c_iter->second << " votes" << endl; break; } ++v_iter; } ++vl_iter; } c_iter = candidates.begin ( ); min_votes = c_iter->second; winner = true; while ( c_iter != candidates.end ( ) ) { if ( c_iter->second < min_votes ) { min_votes = c_iter->second; winner = false; } ++c_iter; } if ( winner ) { if ( candidates.size ( ) > 1 ) { cout << endl << "TIE, WINNERS WERE:" << endl; } else { cout << endl << "WINNER:" << endl; } } c_iter = candidates.begin ( ); while ( c_iter != candidates.end ( ) ) { c_next = c_iter; ++c_next; if ( winner ) { cout << c_iter->first << endl; } else if ( c_iter->second == min_votes ) { cout << c_iter->first << " has been removed from the running" << endl; candidates.erase ( c_iter ); } c_iter = c_next; } } return 0; }

I made an error before: IRV is not guaranteed to provide a winner, ties are still possible. My apologies.
If I made any errors in my implementation of the voting algorithm, please let me know. I hope someone finds this useful, but if not, at least it was fun to write :)
The algorithm appears to be correct and I also think somewhat clever [my only criticism, is I could have understood and verified it quicker if you had broken it up into functions] ;-) Christopher Diggins Object Oriented Template Library (OOTL) http://www.ootl.org

christopher diggins wrote:
The algorithm appears to be correct and I also think somewhat clever [my only criticism, is I could have understood and verified it quicker if you had broken it up into functions] ;-)
Yeah, I probably should have thrown some comments in as well, rather than relying on the cout statements I was using for debugging. I also probably should have coded it at some other time than 3 in the morning :) -Jason

christopher diggins wrote:
Alright, we might need a little more time. Kalin (the one who volunteered on doing the tally), sent me a tally. However, IRV poses a special challenge because of the number of entries involved. It would be nearly impossible to get a "majority vote".
Hence, we would have to do more tallies, iteratively until either the winner has a "majority vote" or we reach the 5th iteration
With all due respect you clearly are misunderstanding how IRV works. The iterations may most definitely continue after five iterations, and that is clearly to be expected when there are numerous choices. I would suggest rereading the algorithm description at http://www.fairvote.org/irv/faq.htm .
Specifically the section: "How does it work? Voters rank candidates in order of choice: 1, 2, 3 and so on. It takes a majority to win. If anyone receives a majority of the first choice votes, that candidate is elected. If not, the last place candidate is defeated, just as in a runoff election, and all ballots are counted again, but this time each ballot cast for the defeated candidate counts for the next choice candidate listed on the ballot. The process of eliminating the last place candidate and recounting the ballots continues until one candidate receives a majority of the vote. With modern voting equipment, all of the counting and recounting takes place rapidly and automatically."
Yeah, I clearly misunderstood the IRV system. Thanks for the clarification. Cheers, -- Joel de Guzman http://www.boost-consulting.com http://spirit.sf.net

christopher diggins wrote:
So what's the status on the logo contest, any word on when the results will be tallied?
Hi All, I have an update on the status. I've written down all the votes, and have put them through the program that Jason Hise wrote. I'm not sure if it's correct though, there are a large number of tied winners. (16 or so) As far as I understand, the voting should end up with a single winner.. So, I'll take a look at the code now, I just wanted to let everyone know what's going on. :) I've not tracked the variations for each vote in the logo, it would be too hard to determine a winner if each variation counted as a seperate entity - since they're mostly similar enough to be the same. kalin.

----- Original Message ----- From: "kalin" <kalin.eh@gmail.com> To: <boost@lists.boost.org> Sent: Saturday, April 02, 2005 11:23 PM Subject: [boost] Re: logo contest status query
christopher diggins wrote:
So what's the status on the logo contest, any word on when the results will be tallied?
Hi All, I have an update on the status.
I've written down all the votes, and have put them through the program that Jason Hise wrote. I'm not sure if it's correct though, there are a large number of tied winners. (16 or so)
Would you mind posting the votes, preferably in a tabulated format? -Christopher Diggins

Would you mind posting the votes, preferably in a tabulated format? -Christopher Diggins _______________________________________________
Ok, here are the results, as listed by Jason Hise's program. It reported the following as a Tie, I've sorted them and formatted them. -------------------------------------------------------- 21 vote(s) for: 50 17 vote(s) for: 67 13 vote(s) for: 75 12 vote(s) for: 38 9 vote(s) for: 68 9 vote(s) for: 39 8 vote(s) for: 83 6 vote(s) for: 92 6 vote(s) for: 85 6 vote(s) for: 61 5 vote(s) for: 3 5 vote(s) for: 20 5 vote(s) for: 18 4 vote(s) for: 52 3 vote(s) for: 87 3 vote(s) for: 60 3 vote(s) for: 21 2 vote(s) for: 97 2 vote(s) for: 91 2 vote(s) for: 5 2 vote(s) for: 46 2 vote(s) for: 42 2 vote(s) for: 25 2 vote(s) for: 2 2 vote(s) for: 19 2 vote(s) for: 1 1 vote(s) for: 99 1 vote(s) for: 96 1 vote(s) for: 86 1 vote(s) for: 74 1 vote(s) for: 69 1 vote(s) for: 62 1 vote(s) for: 51 1 vote(s) for: 48 1 vote(s) for: 43 1 vote(s) for: 37 1 vote(s) for: 30 1 vote(s) for: 29 1 vote(s) for: 28 1 vote(s) for: 23 1 vote(s) for: 17 1 vote(s) for: 13 1 vote(s) for: 0

----- Original Message ----- From: "kalin" <kalin.eh@gmail.com> To: <boost@lists.boost.org> Sent: Wednesday, April 06, 2005 5:47 AM Subject: [boost] Re: logo contest status query
Would you mind posting the votes, preferably in a tabulated format? -Christopher Diggins _______________________________________________
Ok, here are the results, as listed by Jason Hise's program. It reported the following as a Tie, I've sorted them and formatted them.
-------------------------------------------------------- [snip]
I actually wanted to see the input file posted, not the results. Thanks for your time and energy. -Christopher Diggins

kalin wrote:
As far as I understand, the voting should end up with a single winner..
There's no way to guarantee a single winner: imagine that each possible ranking (exclusing variants) received a single vote -- each entry would then have an equal claim. A single winner would have been more likely had voters been given the chance to rank all the entries, rather than just picking the top 5. Jonathan

kalin wrote:
I've not tracked the variations for each vote in the logo, it would be too hard to determine a winner if each variation counted as a seperate entity - since they're mostly similar enough to be the same.
That's correct. You should not track the variations in the tallies. We can take the variation into consideration after we find the winning entry. We can then do a simple tally to find out which variation of the winning entry won. Cheers, -- Joel de Guzman http://www.boost-consulting.com http://spirit.sf.net

Le mercredi 06 avril 2005 à 19:36 +0800, Joel a écrit :
kalin wrote:
I've not tracked the variations for each vote in the logo, it would be too hard to determine a winner if each variation counted as a seperate entity - since they're mostly similar enough to be the same.
That's correct. You should not track the variations in the tallies. We can take the variation into consideration after we find the winning entry. We can then do a simple tally to find out which variation of the winning entry won.
Shouldn't the entry 38 and 39 of the contest be merged then? The only difference between them are the four dots, I don't think it is fair to split the votes between the two of them, and not between the variations of other logos. Best regards, Guillaume

Guillaume Melquiond wrote:
Le mercredi 06 avril 2005 à 19:36 +0800, Joel a écrit :
kalin wrote:
I've not tracked the variations for each vote in the logo, it would be too hard to determine a winner if each variation counted as a seperate entity - since they're mostly similar enough to be the same.
That's correct. You should not track the variations in the tallies. We can take the variation into consideration after we find the winning entry. We can then do a simple tally to find out which variation of the winning entry won.
Shouldn't the entry 38 and 39 of the contest be merged then? The only difference between them are the four dots, I don't think it is fair to split the votes between the two of them, and not between the variations of other logos.
Well, Simeon sent them as individual entries. I posted the entries as-is as sent by the submitter. However, for the sake of fairness, I think I agree. For that matter, I think some of the logos need to be considered as individual entries with variations. This includes: (3, 4 and 5), (19 and 20), (38 and 39, as mentioned) and (80, 81 and 82). Comments? Objections? <<My, this contest was not as simple as it seemed at first :P>> Regards, -- Joel de Guzman http://www.boost-consulting.com http://spirit.sf.net

Joel <joel@boost-consulting.com> writes:
Comments? Objections?
<<My, this contest was not as simple as it seemed at first :P>>
This doesn't directly address the issue, You may not remember this but there was a growing consensus at the end of the contest that we probably ought to try again given everything we had learned... as such I didn't bother to send you my revised votes. I don't know if there are any others in this category, but I would certainly vote differently now that the commentary is over, and if there is any chance the result will "stick" I probably should have paid more attention to the revised vote thing. Too late? -- Dave Abrahams Boost Consulting www.boost-consulting.com

David Abrahams wrote:
Joel <joel@boost-consulting.com> writes:
Comments? Objections?
chance the result will "stick" I probably should have paid more attention to the revised vote thing. Too late?
I guess I missed the revised voting -- could some let me know what it was? Jonathan

David Abrahams wrote:
Joel <joel@boost-consulting.com> writes:
Comments? Objections?
<<My, this contest was not as simple as it seemed at first :P>>
This doesn't directly address the issue, You may not remember this but there was a growing consensus at the end of the contest that we probably ought to try again given everything we had learned... as such I didn't bother to send you my revised votes. I don't know if there are any others in this category, but I would certainly vote differently now that the commentary is over, and if there is any chance the result will "stick" I probably should have paid more attention to the revised vote thing. Too late?
Never too late. I take it that you want a new vote for this round to take into consideration the discussions we had here? If that is the concensus, so be it. I think Christopher's voting procedures are sound except for the acceptance of new entries. I think we should reserve that for the second round. I am also all for holding a second contest given everything we had learned so far. I was under the impression that we continue with this round and hold a second round immediately after. There's nothing stated in the logo page that the winning logo will replace the current logo anyway, so we have a free hand on what to do with it as long as the promised prize is awarded. I move that we all give the Boost founders (Beman, Dave, etc) the absolute right to decide on whether to accept or reject the winning logo of the first (and subsequent) rounds as a replacement of the current. They deserve that right. In this round, we are bound by what's stated in the logo page. On the second round (contest) we have the freehand to change the voting system[***], or simply, get a panel of judges selected by the Boost founders. It may be that we are being overly democratic about this which ultimately makes it a lot more complicated than it needs to be. It's never too late. I think that choosing the right logo is of paramount importance that should not be taken lightly. I'd rather spend a lot more effort on striving to get the best of the best of the best than arrive at a popular yet mediocre choice. [***] Someone in the CLC++M suggested: <quote> In the future you may want to consider using the Condorcet or Approval election method as opposed to IRV. They are, arguably, much better methods. To learn more, I would suggest reading: http://en.wikipedia.org/wiki/Condorcet_method http://en.wikipedia.org/wiki/Approval_voting http://lists.electorama.com/pipermail/election-methods-electorama.com... http://electionmethods.org/IRVproblems.htm http://www.condorcet.org/rp/IRV.shtml http://electionmethods.org/ http://bcn.boulder.co.us/government/approvalvote/ -- "The Fairest Vote of All", Scientific American, March 2004, www.sciam.com mainly about Condorcet voting, which is called "True Majority Voting" in the article [ See http://www.gotw.ca/resources/clcm.htm for info about ] [ comp.lang.c++.moderated. First time posters: Do this ! ] </quote> Cheers, -- Joel de Guzman http://www.boost-consulting.com http://spirit.sf.net

Joel wrote:
In the future you may want to consider using the Condorcet or Approval election method as opposed to IRV. They are, arguably, much better methods.
What about using approval voting, except instead of saying yes or no to a candidate, you can give each candidate a percentage of a vote? The candidates ignored by a voter would automatically get 50 percent of a vote from that voter, and whoever gets the greatest sum wins. -Jason

Joel <joel@boost-consulting.com> writes:
David Abrahams wrote:
Joel <joel@boost-consulting.com> writes:
Comments? Objections?
<<My, this contest was not as simple as it seemed at first :P>> This doesn't directly address the issue, You may not remember this but there was a growing consensus at the end of the contest that we probably ought to try again given everything we had learned... as such I didn't bother to send you my revised votes. I don't know if there are any others in this category, but I would certainly vote differently now that the commentary is over, and if there is any chance the result will "stick" I probably should have paid more attention to the revised vote thing. Too late?
Never too late.
I take it that you want a new vote for this round to take into consideration the discussions we had here?
You offered to accept new votes for people who had already voted but who changed their minds due to discussions after their votes were cast. I never sent you mine; that's all.
If that is the concensus, so be it. I think Christopher's voting procedures are sound except for the acceptance of new entries. I think we should reserve that for the second round. I am also all for holding a second contest given everything we had learned so far.
I was under the impression that we continue with this round and hold a second round immediately after.
That was my understanding too.
There's nothing stated in the logo page that the winning logo will replace the current logo anyway, so we have a free hand on what to do with it as long as the promised prize is awarded.
I move that we all give the Boost founders (Beman, Dave, etc) the absolute right to decide on whether to accept or reject the winning logo of the first (and subsequent) rounds as a replacement of the current. They deserve that right.
I think it would be much clearer to say "the Boost moderators," if you want to do something like that. "The founders" are an amorphous group, many of whom aren't even around Boost anymore. -- Dave Abrahams Boost Consulting www.boost-consulting.com

David Abrahams wrote:
Joel <joel@boost-consulting.com> writes:
David Abrahams wrote:
Joel <joel@boost-consulting.com> writes:
Comments? Objections?
<<My, this contest was not as simple as it seemed at first :P>>
This doesn't directly address the issue, You may not remember this but there was a growing consensus at the end of the contest that we probably ought to try again given everything we had learned... as such I didn't bother to send you my revised votes. I don't know if there are any others in this category, but I would certainly vote differently now that the commentary is over, and if there is any chance the result will "stick" I probably should have paid more attention to the revised vote thing. Too late?
Never too late.
I take it that you want a new vote for this round to take into consideration the discussions we had here?
You offered to accept new votes for people who had already voted but who changed their minds due to discussions after their votes were cast. I never sent you mine; that's all.
Again, if its the consensus, so be it. However, I re-read the commentaries but can't seem to see a consensus regarding re-voting for this round. I do see a consensus on a second round contest. I highly suggest we conclude this round and move on to the second round. The winner emerging from this round seems to be no. 67. Unless there are some more bugs found in Jason's tallying program, I think we have a winner. Alas, there are some trademark problems with it. Yet, as noted by Reid Sweatman and I seem to agree, the logo might be salvagable. One possibility is to hire a pro (as you hinted) and tweak the logo to perfection, thus still maintaining the spirit of the contest while avoiding trademark problems in the process.
If that is the concensus, so be it. I think Christopher's voting procedures are sound except for the acceptance of new entries. I think we should reserve that for the second round. I am also all for holding a second contest given everything we had learned so far.
I was under the impression that we continue with this round and hold a second round immediately after.
That was my understanding too.
There's nothing stated in the logo page that the winning logo will replace the current logo anyway, so we have a free hand on what to do with it as long as the promised prize is awarded.
I move that we all give the Boost founders (Beman, Dave, etc) the absolute right to decide on whether to accept or reject the winning logo of the first (and subsequent) rounds as a replacement of the current. They deserve that right.
I think it would be much clearer to say "the Boost moderators," if you want to do something like that. "The founders" are an amorphous group, many of whom aren't even around Boost anymore.
Understood. Perhaps you guys should come up with a revised "history of boost" page that gives us a glimpse of what actually happened. It would surely be an interesting read. Regards, -- Joel de Guzman http://www.boost-consulting.com http://spirit.sf.net

kalin wrote:
christopher diggins wrote:
So what's the status on the logo contest, any word on when the results will be tallied?
Hi All, I have an update on the status.
I've written down all the votes, and have put them through the program that Jason Hise wrote. I'm not sure if it's correct though, there are a large number of tied winners. (16 or so)
As far as I understand, the voting should end up with a single winner.. So, I'll take a look at the code now, I just wanted to let everyone know what's going on. :)
Yes, there should only be one winner and it should take a majority to win. Could you please send me the input file so I can verify the results?
I've not tracked the variations for each vote in the logo, it would be too hard to determine a winner if each variation counted as a seperate entity - since they're mostly similar enough to be the same.
Yes, we'll consider the variation when we find the winner. Oh and BTW, to Kalin for the tallies and to Jason for providing the automated program. Thanks to Christopher too for clarifying the IRV system. Cheers, -- Joel de Guzman http://www.boost-consulting.com http://spirit.sf.net
participants (9)
-
christopher diggins
-
David Abrahams
-
Gennadiy Rozental
-
Guillaume Melquiond
-
Jason Hise
-
Joel
-
Joel de Guzman
-
Jonathan Turkanis
-
kalin