The copyright/Anti-ai angle is likely an excuse and they're running
out of money for hosting, hence errors and anti-scraping blocks.
Its completely absurd to think they somehow waited years to ban AI for copyright, while deleting
anything they deem as copyright infringing.
Looks like those vibe-powered opensource projects will mighrate
to somewhere else.
Okay, lets imagine it get enforced and every project is
scanned for compliance, with some false positives
and inability to prevent people from sneaking in AI code.\
Do you agree with it now?
IKEA beds are underestimated: these flimsy POS planks and their
insertion is entire artform that was likely engineered to cause pain.
The idea here is they are huge, finicky and depend on precise positioning
in multiple areas, there is no "easy shortcut" for their structural integrity,
everything has to be perfectly assembled.
The neglected part here is latency, speed itself can be masked
by progress bars/animations, but having visible lag ruins the idea
of speed and users treat it as slow vs animated loading bar.
Maybe it's me who's weird, but I find animations as much worse - it's basically pointless and wastes slightly more time (even when program is fast enough!).
The interface without animations feels snappier even if sometimes it takes a second to load. I disable any and all animations in software that I can - particularly in Android (via developer settings) and Linux (i3+vim vs something like KDE+VScode).
Some tiny amount of animation is needed to show that the system has responded.
I regularly use a website in which a submit button does not change state in any way. It is indistinguishable from the click having gone to /dev/null. And the completion of the action takes a copule of seconds.
It's literally, "no response ... few seconds ... oh, done!"
If the button simply responded in the usual way, like 3d poppin in and out effect, it would be better. The UI can change state also to show some "wait ..." text.
These are examples of animations, just not progressive/persistent.
> I regularly use a website in which a submit button does not change state in any way. It is indistinguishable from the click having gone to /dev/null. And the completion of the action takes a copule of seconds.
In the good old days, you'd have the request sent by that button reveal a small, transient status bar showing the target URL at the bottom, plus the "Refresh" button in the browser toolbar would change to "Stop" instead; both effects lasted for the duration of the network roundtrip. It was enough of an indicator, and since it was not controlled by the website, it wouldn't break or lie to you.
Don't know why you get downvoted, but this is how AI-based projects
win over time: they don't randomly decide to delete valuable data.
Grokipedia might be trash in terms of its quality, but at least it
it doesn't have omnipresent moral busybodies loitering in to "purify" it from knowledge.
Ok, suppose you have a "trash/low quality" article and
"this article has been deleted", the article with some info
will win over the audience as they search for it. Like "Worse is Better", the quality
will improve over time and the "deleted article" will stay at 0 recognition.
An average internet user will not complain about the Wikipedia
article, they just switch to Grokipedia and whatever AI-generated content it has,
since they now have it.
GCC already solved it:
https://gcc.gnu.org/onlinedocs/gcc/Vector-Extensions.html
The operations behave like C++ valarrays. Addition is defined as the addition of the corresponding elements of the operands. For example, in the code below, each of the 4 elements in a is added to the corresponding 4 elements in b and the resulting vector is stored in c.
Those type attributes are also used for the x86 intrinsics API, and they override default C behaviors like promotions and presumptions around aliasing (ironically they make type punning easier, though maybe it was just the few use cases I explored, and this isn't an area where I have alot of experience). C23 also gained the _BitInt type, which discards all the old promotion rules, which should help autovectorization.
I think ISPC is still the proper way to go. But these days everybody wants One Language to Rule Them All along with standard libraries for doing everything out-of-the-box. And while in principle ISPC's approach could be stitched into C or C++ in a fairly clean manner (perhaps with well-defined and enforced segregation of constructs to minimize complexity), it's just not gonna happen: C++ is too enamored with constructing libraries through deeply complex templated types (hammer, nail, yada yada), and C is just too conservative (though if GCC or clang went the distance with a full implementation, there's a good chance the C committee would adopt it).
Here and on reddit, AI debugging is viewed as some weird shallow
pattern-matching that obviously fails to spot real stuff and
overload the maintainers. Instead of getting to "spotless record"
of zero flaws, the people start rationalizing that "X is not a real bug"
and inventing justifications for their(obviously bad) code,
which is critique they can't accept from AI, only through human
debate that they can't close with a WONTFIX.
Once the bug is actually usable, the tune changes completely.
> Here and on reddit, AI debugging is viewed as some weird shallow pattern-matching that obviously fails to spot real stuff and overload the maintainers.
That's because that is what a lot of people did in the last years [1] to pad their resumes or to force developers to backport patches to older (but supported) kernel versions that wouldn't have gone in if they didn't have a CVE attached [2]. Maintainers have been legitimately swamped with low-quality spam for a very long time. Only recently, in the last few months, AI actually got "good enough", the problem is that maintainers still have to differentiate between AI slop by wannabes and by AI-assisted reports reviewed and refined by actual human professionals.
At the end of the day attackers don't give a fuck. "Waaa waaa, AI was bad 6 months ago so I'm going to throw a little fit" doesn't work when it's currently actively exploiting your shit. No one gives a damn if there are 4000 bullshit security PRs lined up. The one real RCE in there mean that everything you hold dear has already been carted off by nation states, and probably rediscovered by 3 or 4 other exploitation groups by this point.
It's time for all the little snowflake software writers to pull up their pantaloons and realize that Linus' vision has become real. With enough AIs all security bugs become shallow. And that software affects the real word, real money, and real people in it. That they are also under attack by well financed groups with rather evil motivations. If I'm attacking some group using your software (such as another nation) I'm going to flood the fuck out of your PR system till you give up hope and die. I'm going to make you attack your contributors. I'm going to sow confusion so I have the maximum amount of time to lay waste to my enemies and profit to the max.
The internet is hostile. Software is hostile. There are sharks looking to eat you.
More than half the money spent on Conferences and Salaries with the rest being functional expenses. Nothing in the "grants" or "benefits to members" column. Prima facie this would not be an organization I would ever donate to.
Which is good because most of their revenue comes from fees and services rendered.
IFUNC should be implemented by software itself,
like switching functions on runtime/compile checks.
Why bother having a slower, insecure version that is less
flexible than a function pointer? I have to agree with author.
Glibc is filled with even more nasty hacks ripe for new exploits.
I agree so much and wished this was the main focus of the debate. It's more a question of why does this exist in the first place and not of how did they abuse it. Building only from source is the minimum required transparency and a CI/CD pipeline able to manipulate the artifact before release takes this away. I remember the outrage, when serde (i think it was) wanted to ship parts as pre-compiled binaries for build performance reasons...
Less indirection means faster code. If the dynamic loader is already using a level of indirection and you patch into that same indirection instead of adding another, you're not making it slower.