Hacker Newsnew | past | comments | ask | show | jobs | submit | amavect's commentslogin

Yet another reminder that we need approval voting, or even STAR voting, for single-winner elections. https://www.youtube.com/watch?v=yhO6jfHPFQU https://www.equal.vote/approval https://www.equal.vote/beyond_rcv_zine

By not tracking file metadata through an index file, mtime-only incremental build systems trade a lot of reliability for only slightly more simplicity. https://apenwarr.ca/log/20181113



The author agrees with you. In the final paragraph, the author says that they allow ++ and -- when not using the value, as such use poses no harm.

Also, you can use a comma with += and -=,

  for (int i=0, j=n; i<j; i+=1, j-=1)
but keep in mind the decrement must usually happen before the loop body (post-increment reverses to pre-decrement).

  for (int i=0, j=n; i<j; i+=1) { j-=1; ... }
  for (int i=0, j=n; i<j; i++) { j--; ... }


> Also, you can use a comma with += and -=

In the modified C advocated by the author, assignments (including ++ -- += etc.) are not expressions. So no comma, no.


For fun, my attempt to rewrite the functions. Eliminate ++ and pointer arithmetic by introducing a counter. Obviously less terse.

  void *my_memcpy(void *dst, const void *src, size_t n)
  {
   const uint8_t *s = src;
   uint8_t *d = dst;
   for (size_t i = 0; i < n; i += 1) d[i] = s[i];
   return dst;
  }

  int powi(int x, int y)
  {
   int result = 1;
   for (int i = 0; i < y; i += 1) result *= x;
   return result;
  }
For itoa, I experiment with the comma operator to show the post-increment on the same line, but visibly after. I also move the negation sign block to the absolute value block.

  void itoa(int n, char s[])
  {
   int i = 0;
   if (n < 0){
    n = -n;
    s[0] = '-', s += 1; // exclude from reverse
   }
   do{
    s[i] = n % 10 + '0', i += 1;
    n /= 10;
   }while(n > 0);
   s[i] = '\0';
   // reverse
   for(int j = 0, hi = i / 2; j < hi; j += 1) {
    i -= 1;
    char swap = s[j];
    s[j] = s[i];
    s[i] = swap;
   }
  }
Test code:

  #include <stdio.h>
  #include <stdint.h>
  // insert functions
  int main(void){
   char src[] = "hello";
   char dst[10];
   my_memcpy(dst, src, sizeof(src));
   printf("%s == hello\n", dst);
   printf("%d == 27\n", powi(3,3));
   itoa(-12345, dst);
   printf("%s == -12345\n", dst);
   itoa(0, dst);
   printf("%s == 0\n", dst);
  }


>imo proof that ranked choice is absolutely needed

Ranked choice still succumbs to a spoiler effect. https://realrcv.equal.vote/alaska22 https://www.youtube.com/watch?v=yhO6jfHPFQU

Approval voting works better and simpler, and STAR voting works even better though with more complexity. https://www.equal.vote/beyond_rcv_zine


> Ranked choice still succumbs to a spoiler effect. https://realrcv.equal.vote/alaska22

That website presents an unconvincing argument and uses it to arrive at a conclusion that is at odds with the extensive academic research on this topic.


Academic research concludes that ranked-choice and vote-for-one both result in a center-squeeze spoiler effect.

https://en.wikipedia.org/wiki/Center_squeeze


> Academic research concludes that ranked-choice and vote-for-one both result in a center-squeeze spoiler effect.

No, it's more complicated than that.

All voting systems have the potential for spoiler effects (in the broadest sense of the term). That's a core and long-proven theorem in social choice theory. What's more relevant is how those actually play out under the conditions in which they're used. And it turns out that, while pathological cases are still mathematically possible, in practice, under the conditions that typically apply to our elections, RCV is actually less likely to produce these effects than other systems.

The idea that approval voting, STAR voting, or Condorcet voting is superior to RCV for this reason is a misconception based on decades-old research that is no longer current.

(Also, the website linked above is not a correct demonstration of the effect you linked, although I can see how the confusion happened).


Can you share some actual evidence for your case? I really don't believe it. The anti-RCV story about Alaska 2022 holds that Palin spoiled round 1 of the instant runoff by splitting the vote with Begich, causing Begich to drop out. RCV only beats vote-for-one, unless you can make a convincing case otherwise.

https://arxiv.org/abs/2209.04764v3 (Yes, I agree with the conclusion of this paper, but I argue that we can do better with Approval or STAR.)

Basic modelling on a 2D political compass gives a Yee diagram, demonstrating RCV's counterintuitive results. Yeah, that's theory, but Alaska 2022 demonstrates a real case of it. And the list of center-squeeze cases on the Wikipedia page, too.

http://zesty.ca/voting/sim

https://electowiki.org/wiki/Yee_diagram

> That's a core and long-proven theorem in social choice theory.

Do you mean Arrow's theorem? Doesn't apply to STAR or Approval.

> The idea that approval voting, STAR voting, or Condorcet voting is superior to RCV for this reason is a misconception based on decades-old research that is no longer current.

Share the research, please!

Here's some recent research, obviously biased for STAR and against RCV. https://www.equal.vote/peer_review


I'll also add this argument against RCV. https://www.youtube.com/watch?v=A1UzTeelguY


Approval makes the game theory too complicated imo. Too easy to think of cases where a voter leaves off someone because they want their favorite to win but then ends up with neither winning. STAR is the best but voters might be too stupid to figure it out. Really multi district is the best but unfortunately no chance of that happening it seems


I think the threat of unapproved candidates winning would lower a voter's approval threshold to include other candidates. Increasing the approval threshold happens when the voter likes all of the candidates, in which case there isn't too much of a problem.

I really want to believe that ordinary people can handle STAR voting. Not too far from product reviews: most will initially vote 5, 4, or 0. As long as the system encourages more honest voting (instead of lesser-evil voting), it can help fix our corrupt political system.

Full agreement with multi district/proportional, but I don't know how to sell it to normal people (they want THEIR representative).


I feel the pain of old geezers. I grew up figuring out which pixels actually do something, like an adversarial game where UI un-designers make the useful buttons look less like buttons.

uBlock Origin is the best ad blocker. The full uBlock Origin works on Firefox, but not on Google Chrome. The cut-down uBlock Origin Lite works on Google Chrome. uBlock Origin Lite still blocks many ads. Don't fall into all-or-nothing thinking. Imagine if you could block just half of the ads on cable television :) an improvement, though not perfect.

If you use Firefox, follow this link. On the right hand side, click the blue button with the label "Add to Firefox". A confirmation dialog box will pop up. Read it. Click the blue button with the text "Continue to Installation". That should install it.

https://addons.mozilla.org/en-US/firefox/addon/ublock-origin...

If you use Google Chrome, follow this link. On the right hand side, click the blue button with the label "Add to Chrome". A confirmation dialog box will pop up. Read it. Click the button with the text "Add extension". That should install it.

https://chromewebstore.google.com/detail/ublock-origin-lite/...


Free Software should rename to Liberty Software. Instead, advocates loaned Spanish "libre" in the ugly FLOSS acronym (Free/Libre Open Source Software). If only we used "liberty" then we could stop quibbling over the multiple meanings of "free" and just talk about software liberty.

"Free as in bonus" vs "free as in liberty".


later, ... there are 14 competing jargon files.

"Free software" is a fine descriptor. It's needlessly confusing to repeat that "beer as in slurred speech" thing, though. Free software can be free "as in beer"[0], but the way it gets said makes it sound like it zero cost software is an anti-goal, rather than pointing out that it's not the true goal. Then the "free as in speech" thing is kind of pointless because you can just say "free as in freedom".

Free software is about fundamental computer freedom -- freedom to own your computer, inspect and modify, etc. -- we already have this word.

[0] where who why free beer ever? 0% relatable, 0/10 would still like a free beer though


Newcomers keep tripping on Free Software vs Freeware, therefore "Free Software" doesn't describe well. We could call it Freedom Software. (There now exist 15 competing jargon files.)



>In my failing democracy

Which nation, may I ask?


Lee Drutman advocates for ranked choice voting, but implementations in the USA still degenerated to 2 parties. RCV still has a spoiler effect. https://realrcv.equal.vote/alaska22 https://www.youtube.com/watch?v=yhO6jfHPFQU

Instead, we need approval voting, or even STAR voting. https://www.equal.vote/

(Drutman appears to have somewhat changed his views on RCV, but I don't think his "fusion voting" idea will catch on until we have multiple parties in the first place. https://www.newamerica.org/political-reform/blog/how-i-updat... )


We need to change the voting system in order to dissolve the two party system, per Duverger's law. Ranked choice voting will not work. Approval voting or STAR voting would work.

https://www.equal.vote/


Totally agree. I haven't looked into that before, but taking a look now. Thank you for including that link.


You're welcome. Here's also a video on simulating plurality, RCV, and approval voting. https://www.youtube.com/watch?v=yhO6jfHPFQU


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: