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

> collapsing literacy rates through the prevention of teaching phonics

Is that even a true thing?

I'm asking because in my country (France) this has been a talking point of the conservative party for the past 2 decades and it's also 100% a urban legend. So I wonder if they just imported a (real) US educational controversy or if it's a urban legend there as well and they just imported the bullshit.


The switch away from teaching phonics, and the consequent drop in literacy, is real.

It is not particularly something that was pushed by teacher unions.

The "three cueing model" was being pushed for some time as being more effective due to widely-promoted misunderstanding and misinformation by one guy whose name I'm afraid I've forgotten (I was reading about this a few months ago, and don't have the references to hand). It correctly recognizes that highly adept readers do not mentally sound out every word, but rather recognize known words very quickly from a few individual aspects of the word. However, this skill absolutely 100% requires having first learned the fundamentals of reading through phonics, and its proponents thought they could skip that step.


I'd like to read your sources on that, because from what I checked in the meantime it looks like it's more of a “culture war” thing that a real thing. See: https://www.sdkrashen.com/content/articles/great_plummet.pdf which provides figures for tests results between 1984 and 1990 showing no such decline over that period.

Also, the PDF I quoted is from 2002, 10 years after California had legislated in favor of phonics in 1992 (which had never stopped to be used no matter what the urban legend says).


Er...what?

The change I'm talking about happened in the mid-to-late 2000s. Nothing from the periods you cite are relevant.

Here's one of the articles that's been written about the three-cueing model: https://www.apmreports.org/episode/2019/08/22/whats-wrong-ho...

If you want more, you have the search terms.


You realize that your link talks about the same time period as mine, and not about something that allegedly happened in the “mid to late 2000”?

> Goodman's three-cueing idea formed the theoretical basis of an approach known as "whole language" that by the late 1980s had taken hold throughout America.


For some reason my brain read the title as “3D printed motherboard” and I was really curious about how this was even possible, and I ended up being disappointed by the lack of detail on the github readme.

It's only after a few more seconds back on the HN front page that I realized my mistake.

Less exciting than what I read but cool project nonetheless.


I don't know what the state of the art is, but 3D printing circuit boards is a thing people are doing: https://all3dp.com/1/3d-printed-circuit-boards-pcb/

I got excited but "people" here does not really refer to hobbyists I suppose (please contradict me)

My understanding is that home etching is probably still more practical and neither of those are going to match professional quality, but conductive filament and the "print everywhere except where the metal goes and then add metal" options should both be in reach of the upper end of the hobbyist sector.

It's not exactly 3d printing but Bad Obsession Motorsports took a small mill, stuck a hot end into the tool holder, fed solder instead of filament into it, and "printed" traces onto a blank PC board.

I thought it was pretty clever but they admit it was tricky to make work at all, let alone get good results.


Mobile RepRap (the ideal self-printing technology)

Unfortunately, in the current political environment saying that there are things that matters more than profit makes you a Commie somehow…

It's a Chinese company selling this stuff so being a commie doesn't save you.

Use of it is banned in China though...

Yes but the fact it's primarily a Chinese export makes the profit as the cause narrative much less convincing. The US FDA is ignoring evidence to protect a Chinese supplier?

> Yes but the fact it's primarily a Chinese export makes the profit as the cause narrative much less convincing. The US FDA is ignoring evidence to protect a Chinese supplier?

Who said it was done to protect the pesticide's manufacturer? It protects the industry as a whole: the agro-industry aims for low costs, and that means using cheap pesticides to increase crop yield, even it it ends up harming farmers in the process.


Aren't farmers part of the agro-industry?

The same way floor sweepers are “part of the NBA”.

I used to be a proponent of the industrial agriculture, because technological progress of all kinds (genetics, chemicals, mechanisation) are the reason why food is now abundant.

But the massive disinformation campaigns and targeted harassment of researchers, as well as the outright corruption of science is where they lost me. Surely you wouldn't do things like that if you had clear consciousness.


What stops you from having another uuid field as publicly visible identifier (which is only a concern for a minority of your tables).

This way you avoid most of the issues highlighted in this article, without compromising your confidential data.


I don't think anyone believes the “if it compile it works” phrase literally.

It's just that once it compiles Rust code will work more often than most languages, but that doesn't mean Rust code will automatically be bug free and I don't think anyone believes that.


Yeah, even the official Rust book points it out and if my memory serves me right (not punintended) also gives an example in the form of creating a memory leak (not to be confused with memory unsafe).

A memory leak can be unsafe though.

Then why is Box::leak not marked unsafe?

"unsafe" or `unsafe`? One is the general meaning of the word, the latter is "it invokes undefined-behavior".

As "unsafe". An example would be of how AMD GPUs some time ago didn't free a programs' last rendered buffers and you could see the literal last frame in its entirety. Fun stuff.

Could've been clearer above.


That is not a memory leak though! That's using/exposing an uninitialized buffer, which can happen even if you allocate and free your allocations correctly. Leaking the buffer would prevent the memory region from being allocated by another application, and would in fact prevent that from happening.

This is also something that Rust does protect against in safe code, by requiring initialization of all memory before use, or using MaybeUninit for buffers that aren't, where reading the buffer or asserting that it has been initialized is an unsafe operation.


It's a security hole. Rust doesn't prevent you from writing unsafe code that reads it. The bug wasn't that it could be read by a well conforming language, it was that it was handed off uninitialized to use space at all.

Fair, bad example.

There are definitively people in the ecosystem who peddle sentiments like "Woah, Rust helps so much that I can basically think 'if this compiles, everything will work', and most of the times it does!", and that's the confusing part for many people. Examples found in 30 seconds of searching:

- https://bsky.app/profile/codewright.bsky.social/post/3m4m5mv...

- https://bsky.app/profile/naps62.bsky.social/post/3lpopqwznfs...


I read the comments you linked and don't really think they literally believe Rust is magic. I dunno though I guess I could imagine a vibe coder tacitly believing that. Not saying you're wrong. I just think most people say that tongue in cheek. This saying has been around forever in the Haskell community for decades. Feels like a long running joke at this point

Rust isn't magic, but it has an incredibly low software defect rate. Google published a few studies on this.

If Rust code compiles, it probably has a lower defect rate than corresponding code written by the same team in another language, all else being equal.


Agreed. I've been working professionally with Rust for a year and it is my experience that it's rock solid.

There is no hint of irony in the linked posts.

When I’ve said that, I’ve meant that almost the only remaining bugs were bad logic on my part. It’s free from the usual dumb mistakes I would make in other languages.

I don't know the authors of those posts, so I don't want to put word in their mouth, but neither seem to be delusional about the "if it compiles, it works" phrase. The first one qualifies it with "most of the time", and the second one explicitly mentions using type state as a tool to aid correctness...

But I don't doubt there are people who take that phrase too literally, though.


Both examples you linked are people talking casually about the nature of Rust, rather than about the specific rule. That goes very much with your parent commenter's assertion that nobody takes it literally. The first example even starts with 'Most of the time' (this is true, though not guaranteed. I will explain further down). Human languages are imperfect and exaggerations and superlatives are common in casual communication.

But I have not seen any resource or anyone making technical points ever assert that the Rust compiler can verify program logic. That doesn't even make sense - the compiler isn't an AI that knows your intentions. Everybody is always clear that it only verifies memory safety.

Now regarding the 'most of the time' part. The part below is based purely on my experience and your mileage may vary. It's certainly possible to compile Rust programs with logical/semantic errors. I have made plenty. But the nature of C/C++ or similar manually memory-managed languages is such that you can make memory safety bugs quiet easily and miss them entirely. They also stay hidden longer.

And while logical errors are also possible, most people write and test code in chunks of sizes small enough where they feel confident enough to understand and analyze it entirely within their mind. Thus they tend to get caught and eliminated earlier than the memory safety bugs.

Now since Rust handles the memory safety bugs for you and you're reasonably good at dealing with logical bugs, the final integrated code tends to be bug-free, surprisingly more often than in other languages - but not every time.

There is another effect that makes Rust programs relatively more bug-free. This time, It's about the design of the code. Regular safe Rust, without any runtime features (like Rc, Arc, RefCell, Mutex, etc) is extremely restrictive in what designs it accepts. It accepts data structures that have a clear tree hierarchy, and thus a single-owner pattern. But once you get into stuff like cyclic references, mutual references, self references, etc, Rust will simply reject your code even if it can be proven to be correct at compile time. You have three options in that case: Use runtime safety checks (Rc, RefCell, Mutex, etc. This is slightly slower) OR use unsafe block and verify it manually, OR use a library that does the previous one for you.

Most of the code we write can be expressed in the restricted form that safe Rust allows without runtime checks. So whenever I face such issues, my immediate effort is to refactor the code in such way. I reach for the other three methods only if this is not possible - and that's actually rare. The big advantage of this method is that such designs are relatively free of the vast number of logical bugs you can make with a non-tree/cyclic ownership hierarchy. (Runtime checks convert memory safety bugs into logical bugs. If you make a mistake there, the program will panic at runtime.) Therefore, the refactored design ends up very elegant and bug-free much more often than in other languages.


> "Woah, Rust helps so much that I can basically think 'if this compiles, everything will work', and most of the times it does!"

I think is is a fairly bad example to pick, because the fact that the person says “I can basically think” and “most of the time it does” (emphasis mine) shows that they don't actually believes it will makes bug-free programs.

They are just saying that “most of the time” the compiler is very very helpful (I agree with them on that).


This applies to pretty much every technology:

When we built nuclear powerplant we had no idea what really mattered for safety or maintenance, or even what day-to-day operations would be like, and we discovered a lot of things as we ran them (which is why we have been able to keep expanding their lifetime much longer than they were planned for).

Same for airplanes: there's tons of empirical knowledge about them, and people are still trying to build better models for why things that works do works the way they do (a former roommate of mine did a PhD on modeling combustion in jet engines, and she told me how much of the details were unknown, despite the technology being widely used for the past 70 years).

By the way, this is the fundamental reason why waterfall often fails, we generally don't understand enough about something before we build it and use it extensively.


GOFAI software ≈ airplane

ML model ≈ bird


It drives me mad to see that companies use AI to make garbage for 1/10th of the cost instead of just leveraging it to halve the cost while not losing quality…

Even with 5 “a” it's still an understatement.

Fun fact: in various contexts and languages, rabbits are sometimes considered poultry despite being mammals.

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

Search: