MurphyA/hacker-news huggingface dataset:
by snuxoll | 2025-12-04 23:19:07+00:00
I don't really see it as any more or less verbose.

If I return Result<T, E> from a function in Rust I have to provide an exhaustive match of all the cases, unless I use `.unwrap()` to get the success value (or panic), or use the `?` operator to return the error value (possibly converting it with an implementation of `std::From`).

No more verbose than Go, from the consumer side. Though, a big difference is that match/if/etc are expressions and I can assign results from them, so it would look more like

let a = match do_thing(&foo) { Ok(res) => res, Err(e) => return e }

instead of:

a, err := do_thing(foo) if err != nil { return err // (or wrap it with fmt.Errorf and continue the madness // of stringly-typed errors, unless you want to write custom // Error types which now is more verbose and less safe than Rust). }

I use Go on a regular basis, error handling works, but quite frankly it's one of the weakest parts of the language. Would I say I appreciate the more explicit handling from both it and Rust? Sure, unchecked exceptions and constant stack unwinding to report recoverable errors wasn't a good idea. But you're not going to have me singing Go's praise when others have done it better.

Do not get me started on actually handling errors in Go, either. errors.As() is a terrible API to work around the lack of pattern matching in Go, and the extra local variables you need to declare to use it just add line noise.
by jacobgkau | 2025-12-04 23:19:09+00:00
I feel like Hacker News commenters love to make analogies more than average people in your average space, though. You can't come across a biology/health topic on here without someone chiming in with "it's like if X was code and it had this bug" or "it's like this body part is the Y of the computer."

Analogies can be useful sometimes, but people also shouldn't feel like they need to see everything through the lens of their primary domain, because it usually results in losing nuances.
by ajsnigrutin | 2025-12-04 23:19:12+00:00
> All I am saying is, instead of having a group that gets one hour and another group that gets two hours, just give everyone two hours.

This means that someone fully abled can think about and solve problems for 1h and 50 minutes, and use 10 minutes to physically write/type the answers, and someone with a disability (eg. missing a hand, using a prosthetic) only gets eg. one hour to solve the problems and one hour to write/type the answers due to the disablity making them write/type more slowly.

Same for eg. someone blind, while with proper eyesight, you might read a question in 30 seconds, someone blind reading braille might need multiple minutes to read the same text.

With unlimited time this would not be a problem, but since speed is graded too (since it's important), this causes differences in grades.
by umanwizard | 2025-12-04 23:19:48+00:00
> I pretty new to Rust and I’m wondering why global mutables are hard?

They're not.

fn main() { unsafe { COUNTER += 1; println!("COUNTER = {}", COUNTER); } unsafe { COUNTER += 10; println!("COUNTER = {}", COUNTER); } }

Global mutable variables are as easy in Rust as in any other language. Unlike other languages, Rust also provides better things that you can use instead.
by NooneAtAll3 | 2025-12-04 23:20:08+00:00
it's the other way around

Rust used to not have operator?, and then A LOT of complaints have been "we don't care, just let us pass errors up quickly"

"good luck debugging" just as easily happens simply by "if err!=nil return nil,err" boilerplate that's everywhere in Golang - but now it's annoying and takes up viewspace
by wpm | 2025-12-04 23:20:11+00:00
I did for like a day when I upgraded to 2.7, until I found out that Kea, at the time at least, did not do MAC address based IP reservations, and you had to use the client identifier instead. So all my static leases stopped working.

So I switched back to the old dhcpd. shrug I'm sure whatever was going on (dunno if it was ISC or Kea or pfsense et. al) has been fixed since then, but I can't upgrade to 2.8 without giving Netgate my personal data[1] so I have to switch to OPNSense anyways.

[1] aside, not to say I really blame Netgate, they do a lot of great work and commit a ton to FreeBSD, and they want to stop people abusing that by selling gateways and such with their work on them, but also...man just let me download the goddamn iso. At least let me compile 2.8 from source! The source isn't even available last I checked! I was fine compiling my own QAT driver. But alas...
by bargainbin | 2025-12-04 23:20:16+00:00
My experience aligns with this, although I often find the error being used for non-errors which is somewhat of an overcorrection, i.e. db drivers returning “NoRows” errors when no rows is a perfectly acceptable result of a query.

It’s odd that the .unwrap() hack caused a huge outage at Cloudflare, and my first reaction was “that couldn’t happen in Go haha” but… it definitely could, because you can just ignore returned values.

But for some reason most people don’t. It’s like the syntax conveys its intent clearly: Handle your damn errors.
by zelphirkalt | 2025-12-04 23:20:38+00:00
Is that really such a big problem? These days you can type annotate what you pass to the rendering function for templates and then you know what type you have in the template. If you have a minimum of testing, heck even manual testing will do, I don't think too many mistakes make it to staging, let alone production. I would think it well worth to be able to opt out of the JS ecosystem.
by hannahstrawbrry | 2025-12-04 23:20:46+00:00
In Phoenix, the Musical Instrument Museum has "Apollonia" on display which is similarly powered by a computer, you can see it mounted next to the machine in the header image on the page in their website: https://mim.org/mechanical-music-gallery/

I didn't want to be too nosy but based on what I saw when I went last year it looks like it's running Windows 90-something with an ancient interface but clearly it works for their purposes! They use it to demo the machine several times a day.
by etse | 2025-12-04 23:20:46+00:00
That seems unusual. I would assume trivial means the default approach works for most cases. Perhaps mutable global variables are not a common use case. Unsafe might make it easier, but it’s not obvious and probably undesired. I don’t know Rust, but I’ve heard pockets of unsafe code in a code base can make it hard to trust in Rust’s guarantees. The compromise feels like the language didn’t actually solve anything.
by cardanome | 2025-12-04 23:20:51+00:00
We know that autism has a strong genetic link.

Furthermore we employ differential diagnostic and check whether your symptoms could be better explained by another condition. You don't just diagnose people with autism because they have a few symptoms.

Furthermore autistic people can generally relate to each other. Even if two autistic people show very different symptoms there is often a feeling of belonging together.

It is always possible that we will learn more in the future and maybe we will have other diagnosis criteria or discover some people currently diagnosed under autistism would fit better under something else.

However the current diagnostic criteria for ASD is the current state of our scientific knowledge. A lot of clinical research is baked into it.
by bcrosby95 | 2025-12-04 23:20:57+00:00
> Grok ended up performing the best while DeepSeek came close to second. Almost all the models had a tech-heavy portfolio which led them to do well. Gemini ended up in last place since it was the only one that had a large portfolio of non-tech stocks.

I'm not an investor or researcher, but this triggers my spidey sense... it seems to imply they aren't measuring what they think they are.
by oncallthrow | 2025-12-04 23:21:36+00:00
> Debugging means grepping that string in the codebase, and praying that it's unique.

This really isn't an issue in practice. The only case where an error wouldn't uniquely identify its call stack is if you were to use the exact same context string within the same function (and also your callees did the same). I've never encountered such a case.

> You are also not forced to add context

Yes, but in my experience Go devs do. Probably because they're having to go to the effort of typing `if err != nil` anyway, and frankly Go code with bare:

if err != nil { return err }

sticks out like a sore thumb to any experienced Go dev.

> which even linters won't pick up, due to asinine variable syntax rules.

I have never encountered a case where errcheck failed to detect an unhandled error, but I'd be curious to hear an example.
by ajsnigrutin | 2025-12-04 23:21:47+00:00
But how do you differentiate students who are able to finish the test (correctly) in an hour from those needing 2 hours for the same task?

In real life, you're rarely given unlimited time for your tasks, and workers who can do more in less time are considered better than the ones who always need deadine extensions, so why not grade that too?
by nicbou | 2025-12-04 23:22:20+00:00
I have learned a lot from people questioning my motives, and from third-party discussions where someone with the same problem had their motives questioned. It often set me on a much better course. Thorough answers benefit the audience too.

A good example of an XY problem is people asking where to buy a suicide cord. Is the helpful answer to show them how to make one, or to hint at the fact that it's called a suicide cord?

If you desperately want to shoot yourself in the foot, don't mind people asking why you want to borrow their gun.
by zahlman | 2025-12-04 23:22:23+00:00
> The RTA header is only sent by the server or load balancer by design. Absolutely no action required by web site operators and owners assuming they enabled the header on any URL that is either adult or user-generated content.

The website owners and operators have to decide which URLs get the header. If the categorization is "either adult or user-generated content", then I already covered that for the case of YouTube: i.e., the entire site is denied to kids (whose parents opt in).
by oblio | 2025-12-04 23:22:24+00:00
Food calories are cheaper to convert into something useful. It's not like GPUs, once bought for peanuts, turn into perpetual motion machines. They need power, cooling, a whole infrastructure built around them.

GPUs would have taken the world by storm already in the roughly 30 years since they've been around.

Even for GenAI it's likely ASICs take over at some point if we really care about performance.
by bawolff | 2025-12-04 23:22:39+00:00
> Someone who really understands the concepts and has the aptitude for it will get answers more quickly than someone who is shakier on it

That seems like a big assumption that i don't believe is true in general.

I think its true at an individual level, as you learn more about a subject you will become faster at it. I don't think its true when comparing between different people. Especially if you throw learning disabilities into the mix which is often just code for strong in one area and weak in another, e.g. smart but slow.
by mirashii | 2025-12-04 23:22:50+00:00
> But from my own experience, UB just means "consult your compiler to see what it does here because this question is beyond our pay grade."

People are taught it’s very bad because otherwise they do exactly this, which is the problem. What does your compiler do here may change from invocation to invocation, due to seemingly unrelated flags, small perturbations in unrelated code, or many other things. This approach encourages accepting UB in your program. Code that invokes UB is incorrect, full stop.
by kibwen | 2025-12-04 23:23:33+00:00
> No more praying that your program isn't unceremoniously killed just for asking for more memory - all allocations are assumed fallible and failures must be handled explicitly.

But for operating systems with overcommit, including Linux, you won't ever see the act of allocation fail, which is the whole point. All the language-level ceremony in the world won't save you.
by PartiallyTyped | 2025-12-04 23:24:04+00:00
In rust, there are two kinds of references, exclusive (&mut) and shared(&). Rustc guarantees you that if you provide an exclusive reference, no other thread will have that. If your thread has an exclusive reference, then it can mutate the contents of the memory. Rustc also guarantees that you won't end up with a dropped reference inside of your threads, so you will always have allocated memory.

Because rust guarantees you won't have multiple exclusive (and thus mutable refs), you won't have a specific class of race conditions.

Sometimes however, these programs are very strict, and you need to relax these guarantees. To handle those cases, there are structures that can give you the same shared/exclusive references and borrowing rules (ie single exclusive, many shared refs) but at runtime. Meaning that you have an object, which you can reference (borrow) in multiple locations, however, if you have an active shared reference, you can't get an exclusive reference as the program will (by design) panic, and if you have an active exclusive reference, you can't get any more references.

This however isn't sufficient for multithreaded applications. That is sufficient when you have lots of pieces of memory referencing the same object in a single thread. For multi-threaded programs, we have RwLocks.

https://doc.rust-lang.org/std/cell/index.html
by oncallthrow | 2025-12-04 23:24:07+00:00
> the exception thrown on failure will not only contain the reason, but the filename and the whole backtrace to the line where the error occurred.

... with no other context whatsoever, so you can't glean any information about the call stack that led to the exception.

Exceptions are really a whole different kettle of fish (and in my opinion are just strictly worse than even the worst errors-as-values implementations).
by doctorwho42 | 2025-12-04 23:24:08+00:00
Don't forget being observant of things that many people in our distracted (attention economy) society tend to miss/ignore.

I had a friend's wife gas-light him into thinking he is on the spectrum and that many of his friends from college are as well... A well established and respected engineering school in the US. I'm not saying there aren't people there who would most likely fall onto it, but being detail oriented or interested in science and engineering enough to get credentialed in it being a signifier of autism was just sheer lunacy.

It really is frustrating how fast our society devalues and dilutes the meaning of any word these days.
by jaredklewis | 2025-12-04 23:24:13+00:00
Those are all great examples where I agree that an accommodation seems uncontroversial.

But to quote the article linked in the parent comment:

> The increase is driven by more young people getting diagnosed with conditions such as ADHD, anxiety, and depression, and by universities making the process of getting accommodations easier.

These disabilities are more complex for multiple reasons.

One is the classification criteria. A broken hand or blindness is fairly discrete, anxiety is not. All people experience some anxiety; some experience very little, some people a great deal, and everything in between. The line between regular anxiety and clinical anxiety is inherently fuzzy. Further, a clinical anxiety diagnosis is usually made on the basis of patient questionnaires and interviews where a patient self-reports their symptoms. This is fine in the context of medicine, but if patients have an incentive to game these interviews (like more test time), it is pretty trvial to game a GAD-7 questionnaire for the desired outcome. There are no objective biomarkers we can use to make a clinical anxiety diagnosis.

Another is the scope of accommodation. The above examples have an accommodation narrowly tailored to the disability in a way that maintains fairness. Blind users get a braille test that is of no use to other students anyway. A student with a broken hand might get more time on an eassy test, but presumably would receive no extra time on a multiple choice test and their accommodation is for a period of months, not indefinite.
by zelphirkalt | 2025-12-04 23:24:21+00:00
These days with 90% of SPAs being broken piles of browser standard breaking stuff, I find a page refresh or page load to be a soothing experience. They are like checkpoints in the process of using a website. Points to which I can go back using my browser's back button, and I can trust, that my browser keeps track of them.

In contrast, when I see an SPA, I need to worry about the whole site going to shit, because I blocked some third-party unwanted script, and then I need to fear not being able to go back properly, and having to re-do everything. Now that is a jarring experience.
by pfdietz | 2025-12-04 23:25:02+00:00
I just watched a fun video of a guy bringing a 1978 Datsun 280Z up to date. He kept the existing engine but upgraded it with modern electronic ignition and computer control. As part of all that, he fabricated various parts in plastic by 3D printing, but then had the final versions made elsewhere in metal -- some by a CNC shop you send CAD files to, and one by a manual machinist in Switzerland with his own Youtube channel. The latter has to be case hardened, which the machinist did.

The 3D printed plastic parts were very useful to prove out the parts' shapes.

https://www.youtube.com/watch?v=jZ38C-M3tyk -- engine upgrade

https://www.youtube.com/watch?v=D2bxsEyYdo0 -- My Mechanics making the part
by hellotomyrars | 2025-12-04 23:25:36+00:00
I agree by the way that a one line comment of “show your work” is not useful or constructive, much like your original one line comment. (I don’t mean that as a slam against you either, I appreciate that you actually followed up with additional information)

I disagree that I’m not responding to your actual argument and am specifically asking you to clarify the terms of what “worse off” means so that I can address it with more specificity or at least understand what you’re saying.

I still think citing an opinion poll to argue that people are happy with their employer insurance while also making an argument about how opinion polling is deeply flawed is a very strange way to back up your own argument.

I have yet to actually hear anything that supports the idea that people with employer provided insurance will be worse off because of M4A other than you saying they the way the costs would be less obscured means people would be more upset. This wasn’t even an argument about the real cost of M4A vs Prost insurance, it was just a statement saying that the money looks different.
by halzm | 2025-12-04 23:25:42+00:00
I think these tests are always difficult to gauge how meaningful they actually are. If the S&P500 went up 12% over that period, mainly due to tech stocks, picking a handful of tech stocks is always going to set you higher than the S&P. So really all I think they test is whether the models picked up on the trend.

I more surprised that Gemini managed to lose 10%. I wish they actually mentioned what the models invested in and why.
by frumplestlatz | 2025-12-04 23:25:47+00:00
> Instead of trying to hear understand and challenge what historians have to say

One self-described historian. On a Reddit post. Let’s not pretend this is the unified or authoritative voice of the discipline.

> I could go on with fashion and clothes but maybe just look at a West European king painting to reevaluate what masculinity is supposed to look like traditionally.

You’re conflating aesthetic masculinity with functional masculinity, and that’s a category error. The aphorism isn’t about how men dressed in the 17th century or how they signaled status — it’s about what kind of men can sustain a civilization.

In this context, “strong men” refers to individuals who demonstrate the discipline, competence, long-term responsibility, and willingness to bear risk that are required to build, maintain, and defend the institutions that keep a society stable — especially when conditions are difficult. It’s a sociological concept, not an aesthetic one, and it has nothing to do with your personal distaste (or favor) for particular cultural aesthetic expressions of masculinity.
by Aurornis | 2025-12-04 23:25:48+00:00
> Yes, DDR3 is the lowest CAS latency and lasts ALOT longer.

DDR5 is more reliable. Where are you getting this info that DDR3 lasts longer?

DDR5 runs at lower voltages, uses modern processes, and has on-die ECC.

This is already showing up in reduced failure rates for DDR5 fleets: https://ieeexplore.ieee.org/document/11068349

The other comment already covered why comparing CAS latency is misleading. CAS latency is measured in clock cycles. Multiply by the length of a clock cycle to get the CAS delay.
by nullbound | 2025-12-04 23:25:57+00:00
Overall, it does sound weird. On the one hand, assuming I properly I understand what they are saying is that they removed model's ability to cheat based on their specific training. And I do get that nuance ablation is a thing, but this is not what they are discussing there. They are only removing one avenue of the model to 'cheat'. For all we know, some that data may have been part of its training set already...
by HDThoreaun | 2025-12-04 23:26:14+00:00
Abusing adderall can obviously go wrong, but if you do it right you take it once every month or so and have minimal long term effects. Stanford students arent using it for the euphoria, theyre using it so they can study all night without getting distracted. Its also not a miracle drug, you have to be in the right mindset for it to work and a lot of the people who use it dont understand that.
by vl | 2025-12-04 23:27:06+00:00
Everything can be abused or used incorrectly. If you drink too much water you remove salts from your body and get sick.

With Adderall (or Vyvanse) good protocol is to get small dose, like 5-10mg early morning once every one or two weeks. Then you’ll get boost when really needed and feel uplifting for few more days.

Taking it every day is insane, ADHD or not.
Ask HN: Is there a reliable mass automation focus group applier?
by bunnybomb2 | 2025-12-04 23:27:10+00:00
Applying to focus groups for the extra beer money works well if you take time, choose the right answers based on context etc. I dont have time to do these silly surveys but usually gets me an extra 600-700$ a month from in person qualification once I get through.

Has anyone on here fully automated this or attempted to?

:P
by Youden | 2025-12-04 23:27:56+00:00
The way I described it was oversimplified. Technically, it's more like your credit card issuer issues a new card with the same number and installs it on the chip in the accessory.

To be able to do it, you have to authenticate with your card issuer in a mobile app, similar to how you might when setting up Android Pay or Apple Pay. The mobile app then uses your phone as a bridge between the issuer and the NFC chip in the accessory so the relevant data can be written in a secure way.
by timschmidt | 2025-12-04 23:27:58+00:00
That's a fairly accurate idea of it. Some folks complain about Rust's syntax looking too complex, but I've found that the most significant differences between Rust and C/C++ syntax are all related to that metadata (variable types, return types, lifetimes) and that it's not only useful for the compiler, but helps me to understand what sort of data libraries and functions expect and return without having to read through the entire library or function to figure that out myself. Which obviously makes code reuse easier and faster. And similarly allows me to reason much more easily about my own code.