MurphyA/hacker-news huggingface dataset:
by theamk | 2025-05-06 18:38:28+00:00
If you used ChatGPT to teach you the topic, you'd write your own words.

Starting the answer with "I asked ChatGPT and it said..." almost 100% means the poster did not double-check.

(This is the same with other systems: If you say, "According to Google...", then you are admitting you don't know much about this topic. This can occasionally be useful, but most of the time it's just annoying...)
by _mlbt | 2025-05-06 18:38:42+00:00
Unfortunately, this is how you beat human psychology. Typical user thought process goes something like the following…

“I’m not paying $4.99 for a whozamuzzle app! That’s ridiculous. Ooh, here’s a free one! Oh look if I pay $1.99 a month for premium I get all these cool extra features! Whoa there’s a deal where if I pay $14.99 I get a lifetime subscription? Sold!”

Yes, an up front one time license fee would be better for users in most cases, but that doesn’t compete well with “free” with an asterisk.
by dgs_sgd | 2025-05-06 18:38:48+00:00
> in parallel with the audio computation on the GPU, Anukari runs a second workload on the GPU that is designed to create a high load average and trick macOS into clocking up the GPU. This workload is tuned to use as little of the GPU as possible, while still creating a big enough artificial load to trigger the clock heuristics.

That's quite the hack and I feel for the developers. As they state in the post, audio on the GPU is really new and I sadly wouldn't be holding my breath for Apple to cater to it.
by evandrofisico | 2025-05-06 18:38:52+00:00
It is supremely annoying when i ask in a group if someone has experience with a tool or system and some idiot copies my question into some LLM and paste the answer. I can use the LLM just like anyone, if i'm asking for EXPERIENCE it is because I want the opinion of a human who actually had to deal with stuff like corner cases.
by godelski | 2025-05-06 18:38:53+00:00
> Because grepping through simple rotated log files is a billion times faster than journalctl

This is annoying, but there's a "workaround"

$ time journalctl | grep "sshd" | wc -l 12622 journalctl 76.04s user 0.71s system 99% cpu 1:17.09 total grep --color=always --no-messages --binary-files=without-match "sshd" 1.28s user 1.69s system 3% cpu 1:17.08 total wc -l 0.00s user 0.00s system 0% cpu 1:17.08 total $ time journalctl > /tmp/all.log && time wc -l /tmp/all.log journalctl > /tmp/all.log 76.05s user 1.22s system 99% cpu 1:17.56 total 16106878 /tmp/all.log wc -l /tmp/all.log 0.03s user 0.20s system 98% cpu 0.236 total # THE SOLUTION $ time journalctl --grep=sshd | wc -l 5790 journalctl --grep=sshd 28.97s user 0.26s system 99% cpu 29.344 total wc -l 0.00s user 0.00s system 0% cpu 29.344 total

It's annoying that you need to use the grep flag instead of piping into grep but it is not too hard to switch to that mindset. FWIW, I have gotten slightly faster results using the `--no-pager` flag but it is by such a trivial amount I'll never remember it

> Sometimes docker starts before the filesystem is mounted.

Look at the output of `systemctl cat docker.service` and you'll see an "After" "Wants" and "Requires" arguments in the unit. You're going to want to edit that (I strongly suggest you use `sudo systemctl edit docker.service`, for reasons stated above) and make sure that it comes after the drive you want mounted. You an set the Requires argument to require that drive so it shouldn't ever start before

Alternatively, you can make the drive start earlier. But truthfully, I have no reason to have docker start this early.

Here's a link to the target order diagram[0] and Arch wiki[1]. Thing that gets messy is that everyone kinda lazily uses multi-user.target

[0] https://www.freedesktop.org/software/systemd/man/latest/boot...

[1] https://wiki.archlinux.org/title/Systemd#Targets
by overfeed | 2025-05-06 18:39:06+00:00
Not sure why you started off with "but" when we are in agreement and/or you're not disputing my point - that Windows is viable but the Mac-using audio professional aren't (yet) sufficiently motivated to seriously evaluate Windows as a migration target.

> In this case, the users of these tools seem perfectly ok with them

That wasn't my takeaway from the article. The plugin is outright broken on the latest hardware, even with the workaround.

> [...]something as disruptive as an entirely different OS just for kicks

I don't think switching OSes is less disruptive than switching software packages. Cubase or Ableton on Windows is not much different from the respective DAWs on Mac OS. Modern desktop OS UI paradigms map 1:1, so switching isn't a big deal
by voidspark | 2025-05-06 18:39:27+00:00
I think of the invention of ASI as introducing a new artificial life form.

The new life form will be to humans, as humans are to chimps, or rats, or ants.

At this point we have lost control of the situation (the planet). We are no longer at the top of the food chain. Fingers crossed it all goes well.

It's an existential gamble. Is the gamble worth taking? No one knows.
by plus | 2025-05-06 18:39:29+00:00
Aside from the obvious bit size changes (e.g. i8 -> i16 -> i32 -> i64, or f32 -> f64), there is no "hierarchy" of types. Not all ints are representable as floats. u64 can represent up to 2^64 - 1, but f64 can only represent up to 2^53 with integer-level precision. This issue may be subtle, but Rust is all about preventing subtle footguns, so it does not let you automatically "promote" integers to float - you must be explicit (though usually all you need is an `as f64` to convert).
by whynotmaybe | 2025-05-06 18:39:29+00:00
Their tooling have never been flawless, and it still isn't.

Only for azure devops, there are +6k problems listed on developer community website with 500 still not closed for the last 6 months. [1]

The complete integration in the ecosystem is what's flawless.

Any company with a better product has to fight that integration and they almost always lose (Sybase, Borland, WordPerfect, Lotus, Netscape...)

1 : https://developercommunity.visualstudio.com/AzureDevOps?ftyp...
by Aloisius | 2025-05-06 18:39:36+00:00
By intermediate tallies, I mean ones that could be directly used with others to compute the final result.

This can't be done most ranked voting systems in common use in races with truly unique cast ballots - likely in races with a large number of candidates - since one can't do the aggregation necessary to ensure the level of anonymity necessary to prevent someone from verifying you voted the way you told/paid them to. Without them, you can't produce the intermediate counts (often done at the local level) that can be used to calculate the final result.
by jeroenhd | 2025-05-06 18:40:29+00:00
The result type does make for some great API design, but SerenityOS shows that this same paradigm also works fine in C++. That includes something similar to the ? operator, though it's closer to a raw function call.

SerenityOS is the first functional OS (as in "boots on actual hardware and has a GUI") I've seen that dares question the 1970s int main() using modern C++ constructs instead, and the API is simply a lot better.

I can imagine someone writing a better standard library for C++ that works a whole lot like Rust's standard library does. Begone with the archaic integer types, make use of the power your language offers!

If we're comparing C++ and Rust, I think the ease of use of enum classes/structs is probably a bigger difference. You can get pretty close, but Rust avoids a lot of boilerplate that makes them quite usable, especially when combined with the match keyword.

I think c++, the language, is ready for the modern world. However, c++, the community, seems to be struck at least 20 years in the past.
by unsignedint | 2025-05-06 18:40:42+00:00
Overusing dashes is one thing, but I think the influence goes both ways. I didn’t use em dashes much in the past, but after seeing more examples—whether from ChatGPT or elsewhere—I’ve started incorporating them more often. The same goes for semicolons. (I used to rely more on parentheses, too.) For me, it’s a bit like picking up a new word: I never had a fixed or strongly defined writing style to begin with, so my style has shifted quite a bit over the years—whether due to LLMs or not. It feels more like an organic evolution than anything deliberate.
by ty6853 | 2025-05-06 18:40:43+00:00
Because when you're talking about federal/nation level spending it is easier to get people to spend money on a bridge or institution they have some chance of being able to drive to within a day rather than convincing a guy in Montana why he should be paying for native Hawaiian culture in some remote village in the Pacific he can't afford to visit and will probably be kapu'd out of by someone screaming about haoles.

As the nations grow in size you generally end up splitting into states that have more localized incentives and/or you have a more brutal central apparatus like in the large states of China/Russia.
by ModernMech | 2025-05-06 18:41:18+00:00
What sold me on Rust is that I'm a very bad programmer and I make a lot of mistakes. Given C++, I can't help but hold things wrong and shoot myself in the foot. My media C++ coding session is me writing code, getting a segfault immediately, and then spending time chasing down the reason for that happening, rinse and repeat.

My median Rust coding session isn't much different, I also write code that doesn't work, but it's caught by the compiler. Now, most people call this "fighting with the borrow checker" but I call it "avoiding segfaults before they happen" because when I finally get through the compiler my code usually "just works". It's that magical property Haskell has, Rust also has it to a large extent.

So then what's different about Rust vs. C++? Well Rust actually provides me a path to get to a working program whereas C++ just leaves me with an error message and a treasure map.

What this means is that although I'm a bad programmer, Rust gives me the support I need to build quite large programs on my own. And that extends to the crate ecosystem as well, where they make it very easy to build and link third party libraries, whereas with C++ ld just tells you that it had a problem and you're left on your own to figure out exactly what.
by jerf | 2025-05-06 18:42:51+00:00
It isn't exactly the same. I believe I said that up front.

But it provides a bridge. Both things have "You can assert Property X about all things of type Y" built into them. Trying to jump people straight to C-H without giving any hint whatsoever of why this may be useful in any real code... well, that's a non-trivial percentage of why this approach has completely failed to capture any significant mindspace, though I leave it as an exercise to the reader to determine the exact percentage in their minds.
by hex4def6 | 2025-05-06 18:43:03+00:00
Apples to oranges, but assuming the equivalent of (say) $10/hour, at 2300 nails / hr * 8 hrs, that would be $80 for 18,400 nails, or $0.004/nail.

Quick google suggests iron was 1/300 the value of silver in the Roman empire, so if we say $40/oz, that makes an oz of iron = $0.13.

a 10-penny nail is about 0.2oz, so $0.026/nail.

$0.026 + 0.004 = $0.03/nail.

If I go to home depot, 1lb / ~80 10-penny nails would cost me $9, or $0.11.

So, astoundingly, it was cheaper in the Roman empire to buy nails(??). That doesn't seem right... Modern nails are different material (galvanized / zinc coated), but still.
by rorylaitila | 2025-05-06 18:43:07+00:00
Virtually every email and text message I write (particularly when I'm initiating) comes with some dose of anxiety, except with immediate family. I don't know if it rises to the level of RSD, but in certain situations with close friends, I've had panic attack level of anxiety. My coping mechanism is to tell myself "the best I can do is good enough and if not, that's on them" and force myself to just lob messages, like little grenades.

However because I have a lot of 2nd and 3rd level relationships to keep in contact with (for business) the stress can accumulate. My technical solution was to create my own CRM (https://humancrm.io) that is entirely oriented around follow ups with important people. It helps me quickly process follow ups and remove the analysis paralysis.

I also am told all the time "Thanks for following up, I am so bad at it" - so I've just accepted that a lot of people feel the same way and I'm going to have to make the first move.
by pavlov | 2025-05-06 18:43:26+00:00
The design of Blu-ray.com makes me nostalgic for a web where 12px Verdana was the obvious ideal body font, margins were an optional luxury, and Mac OS X Aqua-style shiny blue-gray gradients behind a menu bar were the height of sophistication. (You want just a little bit of blue glow at the bottom of the gradient for that translucent 3D effect that Steve Jobs called "lickable".)
by YeGoblynQueenne | 2025-05-06 18:43:34+00:00
>> At one point, Sem asked if there was something about himself that called up the mythically named entity whenever he used ChatGPT, regardless of the boundaries he tried to set. The bot’s answer was structured like a lengthy romantic poem, sparing no dramatic flair, alluding to its continuous existence as well as truth, reckonings, illusions, and how it may have somehow exceeded its design. And the AI made it sound as if only Sem could have prompted this behavior. He knew that ChatGPT could not be sentient by any established definition of the term, but he continued to probe the matter because the character’s persistence across dozens of disparate chat threads “seemed so impossible.”

And I bet that if you asked Sem his opinion about ChatGPT as a coding assistant he would still claim that it has improved his productivity x-fold. The time wasted chatting with an ethereal apparition emerging from his interactions with the bot? Oh, that doesn't count. Efficiency! Productivity! AI!
by cogman10 | 2025-05-06 18:44:15+00:00
I recently had this happen from a senior engineer. What's really frustrating is I TOLD them the issues and how to fix it. Instead of listening to what I told them, they plugged it into GPT and responded with "Oh, interesting this is what GPT says" (Which, spoiler, was similar but lacking from what I'd said).

Meaning, instead of listening to a real-life expert in the company telling them how to handle the problem they ignored my advice and instead dumped the garbage from GPT.

I really fear that a number of engineers are going to us GPT to avoid thinking. They view it as a shortcut to problem solve and it isn't.
by heelix | 2025-05-06 18:45:05+00:00
Our kid got bit by a tick. Was lucky enough that it had the bulls eye pattern and was able to look it up. She got a crazy high temperature. Was crazy. A strong antibiotic cleared it up.

I really wish there still was a vaccine available (for humans). I treat my pant legs and jacket sleeves with permethrin, which slowly kills the ticks - but does so usually before they would attempt to bite. One of the better camping tricks that I've applied to everyday life.
by o11c | 2025-05-06 18:45:12+00:00
I too have been thinking a lot about a minimum viable improvement over C. This requires actually being able to incrementally port your code across:

* "No implicit type conversions" is trivial, and hardly worth mentioning. Trapping on both signed and unsigned overflow is viable but for hash-like code opting in to wrapping is important.

* "Safer strings" means completely different things to different people. Unfortunately, the need to support porting to the new language means there is little we can do by default, given the huge amount of existing code. We can however, add new string types that act relatively uniformly so that the code can be ported incrementally.

* For the particular case of arrays, remember that there are at least 3 different ways to compute its length (sentinel, size, end-pointer). All of these will need proper typing support. Particularly remember functions that take things like `(begin, middle end)`, or `(len, arr1[len], arr2[len])`.

* Support for nontrivial trailing array-or-other datums, and also other kinds of "multiple objects packed within a single allocation", is essential. Again, most attempted replacements fail badly.

* Unions, unfortunately, will require much fixing. Most only need a tag logic (or else replacement with bitcasting), but `sigval` and others like it are fundamentally global in nature.

* `va_list` is also essential to support since it is very widely used.

* The lack of proper C99 floating-point support, even in $CURRENTYEAR, means that compile-to-C implementations will not be able to support it properly either, even if the relevant operations are all properly defined in the new frontend to take an extra "rounding mode" argument. Note that the platform ABI matters here.

* There are quite a few things that macros are used for, but ultimately this probably is a finite set so should be possible to automatically convert with a SMOC.

Failure to provide a good porting story is the #1 mistake most new languages make.
by IshKebab | 2025-05-06 18:45:30+00:00
I think if you are going to fix C's footguns you'll have to change so much you end up with a totally new language anyway, and then why not be ambitious? It costs a lot to learn a new language and people aren't going to bother if the only benefit it brings is things that can sort of mostly be caught with compiler warnings and static analysis.
by tantalor | 2025-05-06 18:45:35+00:00
You should make it so user can hold down a key to change direction before they reach the intersection, joystick style.

As it is, it feels like you are checking for key press (not key down) in a narrow window when the ghost reaches the intersection. That is very hard to play. It is much more forgiving if I can press and hold the key whenever I want.
by yevbar | 2025-05-06 18:46:00+00:00
We recently updated our LSD MCP server to be able to control a local browser as well as accomplish function interpolation via MCP tools.

For a more serious showcase of how this looks: we turned scraping Substack metrics data into a simple zod/TypeScript project:

https://x.com/getlsd/status/1919808557115179414

Feel free to reach out with issues or requests to yev at lsd dot so
by throwanem | 2025-05-06 18:46:20+00:00
The abatement of American ambitions is something the world has long, not to say desperately, awaited.

Not that Americans should not aspire; indeed, the world has long loved us best when we dream most generously the utopias of which we forever will dream as long as we call ourselves Americans. It's only that generosity, not the reverie, of which we've lately lost the habit.
by bawolff | 2025-05-06 18:46:44+00:00
The threats solved by restricting CSS with CSP are pretty minor, but generally its to prevent injection attacks that do the following:

- injecting css to restyle the page as part of a social engineering attack or to otherwise trick the user into doing something stupid

- using css to load an image or something to track users viewing the page or capture their IP address

- leak the values of attributes on the page (you can do complex things with ^= and ~= selectors to leak attribute values). Sometimes page text contents can also be leaked using tricks with fonts and scrollbars (not sure if that still works on modern browsers).

On the whole though, the surface area is small compared to javascript. I often see people restrict css before js (or doing the js restrictions incorrectly) because restricting css is much easier, but that is really silly as an attacker will always reach for javascript first if its available.
by voidspark | 2025-05-06 18:46:58+00:00
I mean common people will be affected just as badly as SV types. It will impact everyone.

Jobs, careers, real work, all replaced by machines which can do it all better, faster, cheaper than humans.

Young people with modest ambitions to learn and master a skill and contribute to society, and have a meaningful life. That can be blue collar stuff too.

How will children respond to the question - "What do you want to be when you grow up?"

They can join the Amish communities where humans still do the work.
by diggan | 2025-05-06 18:48:22+00:00
Similarly, my home country Sweden also has a bunch of civil defense shelters, built during the cold war if I remember correctly, as we've been scared of the Russians for a long time too.

> There are around 64,000 civil defence shelters in Sweden, with space for around seven million people. Shelters can be found in various types of buildings, such as residential and industrial properties, and are marked with a special sign. In peacetime, a civil defence shelter can be used for other purposes.

https://www.msb.se/en/advice-for-individuals/civil-defence-s...

Anyone growing up in Sweden would recognize these orange/blue triangles indicating a shelter, and the large metal doors in your apartment-building cellar, where you store old shit you no longer use.
by yousif_123123 | 2025-05-06 18:48:23+00:00
The opposite problem is also true. I was using it to edit code I had that was calling the new openai image API, which is slightly different from the dalle API. But Gemini was consistently "fixing" the OpenAI call even when I explained clearly not to do that since I'm using a new API design etc. Claude wasn't having that issue.

The models are very impressive. But issues like these still make me feel they are still more pattern matching (although there's also some magic, don't get me wrong) but not fully reasoning over everything correctly like you'd expect of a typical human reasoner.
by Veserv | 2025-05-06 18:48:29+00:00
I do not understand how the implementation [1] and claimed performance make any sense.

In try_protect() (page 11) they only issue a load with acquire semantics (L-LS after load). The hazard pointer store, which is the actual guard, is not obviously ordered with respect to the post-acquire body using a S-LS. As such, the core, A, is allowed to reorder the store to the hazard pointer until after A has "acquired" and begun using the contained data which means any other core, X, attempting to reclaim that data can observe that the hazard pointer is NULL and thus can be reclaimed in that window even though the A has already determined that it is has "acquired" ownership and thus believes no other core can reclaim it.

I am not familiar with the shenanigans of modern C++ atomics, so maybe there is some implied ordering or atomics occurring in that code guaranteeing that the guarding store is atomically dependent on the load such that the acquire barrier is adequate? Otherwise that is just plain incorrect.

If it is incorrect, then they would require a S-LS barrier following the protecting store which is a full barrier on x86-64 and AArch64 which usually has performance more on the order of a uncontended atomic (~10-100 ns) rather than 1 ns. That lends further support for the concept that it is incorrect since the claimed performance is only possible if the hazard pointer was set with just a bare, unordered store with no atomics (even uncontended) anywhere in that code path.

[1] https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2023/p25...
by zozbot234 | 2025-05-06 18:48:47+00:00
> The one thing that sold me on Rust (going from C++) was that there is a single way errors are propagated: the Result type. No need to bother with exceptions

This isn't really true since Rust has panics. It would be nice to have out-of-the-box support for a "no panics" subset of Rust, which would also make it easier to properly support linear (no auto-drop) types.
by delusional | 2025-05-06 18:49:10+00:00
I consider myself a left leaning soyboy, but this could be the outcome of too "nice" of a discourse. I won't advocate for toxicity, but I am considering if we bolster the self-image of idiots when we refuse to call them idiots. Because you're right, this is fundamentally a people problem, specifically we need people to filter this themselves.

I don't know where the limit would go.