You are assuming that there should be distinct "schooling/care for people with disabilities" and "normal school", rather than integration, and further assuming that public schools should be competing with each other to defend and increase their budget, rather than cooperating.
I just don't see how it's possible to construct a classroom environment that can simultaneously serve an 8th grader who's ready to start learning algebra and an 8th grader with dyscalculia who struggles with basic arithmetic. (I'd be sympathetic to "let's try our best", except that people often propose to try our best by declaring that first kid isn't actually ready.)
I've always thought we should get rid of grades altogether. There should be curricula that builds upward but if a kid masters 4th grade math, they should move on up right then, not wait for half a year to join 5th grade or have to retake 4th grade. Obviously there are operational challenges with this but it's got to be better than having bored advanced kids, the shame of being "left behind", etc. The kid with dyscalculia should be able to move at their own pace.
I agree, but I don't think that's what's being proposed. Many special ed programs today work on that principle: try to mainstream everyone in the classes they can be, run separate classes for the cases where that won't work, and everyone kinda understands that the participants in special ed aren't expected to be as successful in their educational pursuits.
As a parent of a kid that has special needs (at a minor level), there really is a separate set of skills needed to teach to these kids, as well as needing a better student teacher ratio. It made a huge difference for my kid.
Do you have an actual argument? Shaming tactics are ineffective on HN.
Reality check: in most countries, if you made a public demand of effectively depriving the disabled of the proper care they want and deserve, they would regard you as an inhumane monster, and the education ministry would refer you to state prosecution for violating the constitution.
Just FYI I was dirt poor and from a crap neighborhood and qualified for and benefited from these AP classes. Not all kids who succeed only succeed because of their background.
I am from the same situation. I speak from experience: social mobility in public school is the exception. I would have done just fine without AP classes at all, as I am sure you would have. It's the kids who need help that benefit from school.
AP classes exist to pad the resumes of rich kids and justify their being propelled into academic situations that should rightfully belong to others. Prove me wrong
No, I believe this caste system should be abolished because I can personally attest to how much it benefits people and how irrationally/inconsistently it is applied to us. We must have good education for all
AP classes allow those who are capable of working ahead of the general students to do so. It has zero to do with wealth. What others are hurt by you being able to take an AP class? Nobody is saying to remove remedial classes for those who have trouble keeping up.. but you shouldn't punish those capable of working ahead by putting everyone in the same class.
Your tirade sounds more like neo-communist garbage from someone who has never experienced communism. See the Yugoslavian comment in this thread for a counter example... where in actual communism, you emphatically push the capable ahead and allow success.
I don't have to prove you wrong as your assertions are wrong on their face and you have not said anything to backup your own assertions. I don't know how old you are, but you seem to have been dropped in the modern "equity" rabbit hole.
That's horrible. Smarter kids could get a better education, but they can't, because the teachers have to deal with illiterate kids that don't want to learn in the first place.
We do... The VAST majority of kids go through public education... It's mostly a matter of effort, and that comes down to mostly parent pressure on having their kids do the work.
Maybe if we actually held kids that can't do the work back, they wouldn't be illiterate. Let social pressure do the work it's meant to. For that matter, let parents do the work they're supposed to.
Some kids are just stupid, and it doesn't matter if they're rich or poor, there's nothing you can do about it. No need to keep everyone at the stupidest kids level.
Half of them are in AP classes. let's not pretend our methods of sorting kids into castes makes any sense. Let's be honest: this is about money and attention, and you want to grind the poor kids into dust
It's not about money, you're the one who just thinks about money. Maybe, by your logic, if someone gave you $100 now, you'd become smarter and look wider... but probably not.
Sorting into better highschools and worse ones, and better classes and worse was done even back in my times, in what used to be yugoslavia, with communism, red stars and a dictator. You want better kids to excell as much as they can, and you want the stupid kids to at least learn to read and write for their boring communist factory jobs for the next 40 years, even if they never get to learn how to solve differential eqations... if you keep the kids together, the stupid ones still won't be able to do basic math and there would be no time left over for the smarter ones to learn more. There was no correlation between money and stupidity of kids.
Some kids are smart enough to become engineers, some can barely read, there's no need for them to be in the same classroom.
The post you are replying to is literally talking about actual communism.
Education in communism will leave anyone underperforming behind... You'll get shuffled of into a vocational school young and injected into the workforce early.
Do you really think communism expends extra effort on underperforming students? No they get shuffled off as soon as prudent.
The bottom 75th percentile don't advance humanity to nearly the same level. Do you think you'd have the internet or iPads if everyone was capped to the 75th percentile? No.
Beyond this, the entire point of higher education is to push those who are able to higher levels, not to drag the 75% along for the ride.
I said specifically "advance humanity" ... simple labor doesn't advance humanity. It's absolutely necessary, but it also doesn't require a college education.
Advancing humanity is coming up with cures for disease, or inventing useful things. We manage to feed the world with a fraction of the labor it once took to do so. It wasn't the common laborer that came up with solutions that effectively eliminated food scarcity.
I'm not a big fan of the myth of progress, so your pleas are falling on deaf ears. I see no reason to prioritize the education of the rich in our public schools
You have provided no evidence that wealth is a driving factor in any given public school. For that matter, progress is not a myth.. again, we literally eliminated food scarcity through industrialization. That's not a myth. Try again.
Is there a written explanation of the "Flatpak Next" plan? What is it supposed to change, and what does it need from systemd?
The article contains only a vague half paragraph of architecture:
> they want to move the permission management from Flatpak into the service layer, through a new service called systemd-appd. Systemd-appd gives applications an identifier and stores their permissions, and then this data can be queried by the rest of the system. In turn, this enables a slew of other features, not least of which is subsandboxing.
At first sight this "new service" seems single purpose enough to get a satisfactory and relatively simple standard specification and multiple implementations with or without systemd: what am I missing? Conversely, isn't depending on future systemd developments rather than current features strangely aggressive?
And what other speculated Flatpak features introduce other dependencies from systemd? Discussing whether unwanted dependencies can be made optional or eliminated requires technical details.
Some of the examples are somewhat formally true in theory and bullshit in practice; some are quite hallucinatory.
- Creating a potentially troublesome misaligned int pointer is a precisely localized and completely explicit user mistake, not something that just happens because it's C.
- Passing signed char to character classification functions that expect an unsigned char (disguised as an int) is a very specific dumb user error. The C standard could specify that all negative inputs, including EOF and invalid signed char values, are classified as not belonging to the character class, but I doubt the current undefined behaviour in isxdigit() etc. implementations ever went beyond accepting invalid inputs.
- Casting floating point values to integer values in general requires taking care of whether the FP values are small enough to be represented and what to do with NaN and Inf values: not the language's responsibility. C offers a toolbox of tests, not ready-made application specific error handling.
- Expecting C to handle "address zero" in physical memory in ways that conflict with NULL in source code denotes a complete lack of understanding of what a program is. Where stuff in an executable is loaded in memory, in the rare cases when it matters, can surely be affected with platform specific extensions, possibly at the level of linker commands with nothing appearing in the C source code.
So I see your counter points are all "so just don't do that, then".
And the point of my post is that this particular "just don't do that, then" has never been achieved by humans.
If if there's no example of a program without these bugs in a language, then I do think it's fair to blame the language. A knife with 16 blades and no handle.
> Expecting C to handle "address zero" in physical memory in ways that conflict with NULL in source code denotes a complete lack of understanding of what a program is.
Like the post says, it's rare that programmers actually want a pointer to memory address zero. But in my experience most programmers who even encounter that have this "complete lack of understanding", as you put it.
"Just don't do that" is the correct approach to errors, even when they are easy to overlook and the programming language provides many opportunities for mistakes.
For example, you seem to underestimate how wrong placing negative values in a signed char is: ordinary character encodings do not use negative codes, so either those negative values are not characters and they have no business being treated as such, or something strange and experimental is going on.
> "Just don't do that" is the correct approach to errors
We have 54 years of empirical data that literally nobody can follow this approach and reach UB-freeness. To stick to the plan is more like the in-debt gambler who just needs to work their system for a little longer, and they'll become rich.
By this logic we don't need any traffic rules other than "just don't crash or hit anyone". And we can aspire to an absolute dictatorship, all we need to do is "just" choose the benevolent one.
Of course we should always try to not make mistakes. But given more than half a century of empirical data that nobody has been able to avoid UB, ever, it takes quite some hubris to say "but it might work for us".
> you seem to underestimate how wrong placing negative values in a signed char is
Shrug. You don't make that mistake. There are thousands of mistakes like it, especially in C or C++.
Of course "don't do that". That is not the same as "So just don't do that!". The former is good advice. The latter is one of a million rules, and to expect even experts (see OpenBSD) to never make a mistake is unrealistic to say the least.
While, for the purpose of avoiding gratuitous mistakes, C is a serious disadvantage compared to less low-level languages, your discussion of UB pitfalls in C is aimed at a strawman.
First of all, traffic rules are good, and similar to good C programming rules: check number value ranges when there is a chance of casting or overflow, check Inf and NaN floating point values, declare alignment strategically (e.g. in all memory allocations) to avoid misaligned pointers and variables, and so on. Such rules have alternatives and exceptions and must not be part of the language.
Second, nobody needs perfection and "UB-freeness": it is reasonable to assume that many cases of UB won't be a problem, either because a library will be used correctly and they won't happen, or because the C implementation is neither weird nor hostile and they will be as benign as defined or implementation defined behaviour, or simply because we avoid doing something known to be inexact or hard to write correctly.
Practical programming requires knowing the relevant rules for what one is doing and learning new ones by making, diagnosing and overcoming mistakes; not omniscience, and definitely not the unfounded feeling of omniscience and unlimited resources that LLMs can give.
EDIT: I insist on the signed char example because it would be terribly wrong (processing who-knows-what as if it were a sequence of characters) even without undefined behaviour, even in different languages.
> Second, nobody needs perfection and "UB-freeness"
Sure. You only care about the ones that manifest security issues, stability issues, or other corruption. But of course those change over time as compilers change.
So while far from every instance of UB will manifest in a problem, every single one has the potential to, by a low percentage. They're all tiny liabilities that add up.
> because the C implementation is neither weird nor hostile
Some people definitely were screaming at GCC for being hostile when it removed the NULL check in the kernel:
int foo = bar->baz;
if (!bar) {
return -EINVAL;
}
> the unfounded feeling of omniscience and unlimited resources that LLMs can give.
I definitely don't have that. I'm not saying LLMs find all bugs (now or in the future), nor that they are an unlimited resource.
I'm just saying that for finding UB and subtle bugs, they find orders of magnitude more, especially in C and C++.
I am not saying they find a strict superset of bugs, compared to a human. But take me running this against cosmopolitan libc: https://news.ycombinator.com/item?id=48206377. It took me basically zero human time to spin it off, it took a couple of minutes (5.5 in xhigh effort) to run, and found 5-10 cases of UB, one of which I think is a user visible parsing error of SSH keys. Another is a set of double-free, which is definitely a thing that gets exploited over and over.
Would I have found these, in an unknown-to-me codebase no less, given manual source code reading all day? Of course not. Would I have found it with the likes of UBSAN? jart claims to have used it (https://news.ycombinator.com/item?id=48205545), and apparently didn't.
LLMs are just one of the tools to use. A tool that does better than any tool or human has done in the last half century.
> I insist on the signed char example because it would be terribly wrong
The char situation is terrible in C. It's perfectly safe to hold bytes in a char, signed char, and unsigned char, and convert between them. But then integer promotion rules combine with the historical choice of having isdigit take an int to break things.
If isdigit took a char, of any signedness, then there wouldn't be a problem. But that EOF ruins it.
> processing who-knows-what as if it were a sequence of characters
A "char" hasn't been "a character" in any meaningful sense in a long long time. Or rather, "a character" is not a code point or grapheme cluster. For byte processing, since they cast perfectly fine, it's fine. Or do you have some interesting example?
It is worth noting that some rather "enlightened" type system features are common in other imperative languages, not particularly novel ides in Zig.
For example Swift enums, while in some ways clunky, can do a decent job both as newtypes and as sum types (unlike Java enums, which are a fixed collection of instances of the same class).
Normalizing repeating groups doesn't offer significant savings when they are completely populated (e.g. each entity has the full 12 monthly values per year), but other types of normalization do. For example dependent data are actually redundant.
Formally, it doesn't appear to be so (tests can be added to each early return); in practice, encouraging the reorganization of messy early returns would be zero cost developer reeducation.
Or a small step that enables actually problematic real compliance, combined with a bad precedent: a "secure" way to populate that birth date field is a plausible future drive-by contribution.
There is a line of reasoning out there that giving every system a different birthdate, and trying to fill it with as much false information as possible, is one way of balancing the scales. I'm not sure how useful it is, kind of like when a website asked for your age and you just put in whatever.
Why didn't systemd reject these changes? Was there an internal debate that the article doesn't cover, or is it the arbitrary decision of other "volunteers"?
As I understand it, anyone with commit permissions can commit a PR, no matter what the community or even other devs think. So, no debate. Just commit and that's it. I don't even remember ever seeing a "block commit" setting or something that would prevent commiting a PR before discussion takes place and "block commit" is lifted.
Anyway, the discussion is pointless. Poettering approved. He probably would have commited the PR himself if he saw it in time.
What sad place do you come from?
reply