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
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;
}
}
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.
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.
> 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.
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.
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.
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 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.)
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.
reply