Git storage is just a merkle tree. It's a technology that's been around forever and was simultaneously chosen by more than one vcs technology around the same time. It's incredibly effective so it makes sense that it would get used.
Not sure if it introduces a tiered experience or not. But reading the article it appears that the Rust devs advocated for an api that is clearer in it's semantics with the tradeoff that now understanding how it interacts with C code requires understanding two APIs. How this shakes out in practice remains to be seen.
That is my understanding from the outside as well. The core question here should, I think, be whether the adoption and spread of clearer semantics via Rust is worth the potential for confusion and misunderstandings at the boundaries between C and Rust. From the article it appears that this specific instance actually resulted in identifying issues in the usage of the C api's here that are geting scrutiny and fixes as a result. That would indicate the introduction of Rust is causing the trend line to go in the correct direction in at least this instance.
That's been largely my experience of RIIR over years of work in numerous contexts: attempting to encode invariants in the type system results in identifying semantic issues. over and over.
edit to add: and I'm not talking about compilation failures so much as design problems. when the meaning of a value is overloaded, or when there's a "you must do Y after X and never before" and then you can't write equivalent code in all cases, and so on. "but what does this mean?" becomes the question to answer.
I think you might be missing the posters point. He agrees with you on nearly every point you are making. He is however expanding on that saying that the problem is something of a self-own by the combination of science, science reporting, and science driven policy. Trust was so thoroughly lowered that there was almost no avoiding an event like Trump/RFK. It can be true that 1. RFK is not qualified and is likely to make things worse. 2. This is partly the responsibility of the establishment for squandering the trust that the public put in them.
Do you have actual sources for this? Because the other people commenting about how the newer library removes most of the concerns explains this better than an unsubstantiated speculation about promoting AVIF.
> If you look at the issue tracker, the creator of Webp killed it because of untrue claims
I think for most modern software it's difficult to name the creator, but if you had to for webp, it would be hard to argue that it's anyone but Jyrki Alakuijala, who is in fact one of the co-creators of jpegxl and the person backing up the long-term support of the rust jxl-rs implementation, so I'm not even going to ask for a source here because it's just not true.
AFAIK Jyrki came after WebP was already announced to add lossless support; rather I’d consider Skal the creator inasmuch as it was originally just an image container for VP8 intra. He was working on WebP2 at the time Google rejected JPEG-XL and also was not involved in that decision.
I designed the lossless format and its initial encoder. Zoltán Szabadka wrote the initial lossless decoder.
On2 Technologies had designed the lossy format and its initial encoder/decoder. Skal improved on the encoder (rewriting it for better quality, inventing workarounds for the YUV420 sampling quality issues), but did not change the format's image-related aspects that On2 Technologies had come up with for VP8 video use.
In the end stage of lossless productization (around February 2012) Skal had minor impact on the lossless format:
1. He asked it to have the same size limitations (16383x16383 pixels) like lossy.
2. He wanted to remove some expressivity for easier time for hardware implementations, perhaps a 0.5 % hit on density.
Skal also took care of integrating the lossless format into the lossy as an alpha layer.
>so I'm not even going to ask for a source here because it's just not true.
Well it is up to you to decide. The link was submitted a dozen of times on HN and the whole thing was well reported. And Jyrki Alakuijala already classify its creator status.
I don't know if this works for anyone other than our family but when we were raising our kids we solved this by the simple of expedient that gaming and computer use was done with us as parents present. Full stop.
It was not a solo activity for our kids. We could directly view everything they were doing online the entire time.
Advice like this only works for specific age ranges.
When I was a kid I had a friend whose parents, or mom rather, went to similar lengths to ensure all gaming was monitored closely by her. She would turn the game console off if she saw anything she decided was not to her liking.
This was all fair when we were 7-8, but she insisted on doing it well into his teenage years. This level of extreme control and micromanagement was not good for their relationship or his personal development, to put it mildly.
Every time I read HN comments from parents declaring their child will not have a phone until they turn 16 (another comment in this thread) or how they’ll lock their kids out of games and social media completely I think back to my friend whose mom was extremely controlling in the same way.
Young kids need tight controls, but this needs to be loosened as they age. Parenting discussions really need to come with age ranges because what’s appropriate changes so fast from year to year.
I agree, the point of making usage monitored early on is so that you can train your child in what to do when they encounter stuff online. As that training has occured then you can begin to loosen the restriction and give them more freedom. This is the job of parenting. You are teaching your child how to safely and productively engage with the world and the younger they are the more of your time and attention this requires. If you don't teach them someone else might and that lesson may haunt them for the rest of their life.
I'm sorry you feel like it's out of reach of so many. We definitely had to sacrifice a number of things to make it happen. It's not like it was necessarily easy. Unless you are in the unfortunate position of being an only parent this can be an area where you have choice. You can:
1. Ask your school to change their policies. Coordinate with other parents.
Make it clear to the school that if they don't start to enforce these policies then you will hold the school directly responsible for any harm that comes to your child in the environment they create.
2. Pick different schools. (Home School, Private school) if you can afford it. Charter schools may be an option.
Both of these require sacrifice on your part and neither are easy. But no one should ever think parenting is easy.
When I was a kid, my Sega Genesis was connected to the TV in my parents bedroom. It made it impossible to play without their knowledge or when they were asleep.
It's so bizarre to me that in "The Land of the Free", 18 year olds, who are considered old enough to go to war, are not allowed to drink. Especially because this isn't some archaic law from the 18th or 19th centuries but instead from 1984 and only came about after the federal government withheld funds to force the states' hands over a period of 4 years.
It's not a federal law, you can buy and drink alcohol at 18 in the Virgin Islands and Puerto Rico for instance, so definitely possible to drinking at 18 legally in the USA. I don't know if there is a federal drinking age but it's definitely not above 18.
Also in I want to say about half the states (could be wrong here, but at least a few), it is legal to drink well below 18 in a private home.
-------------
Example, wisconsin:
>Can an underage person possess and consume alcohol beverages on licensed premises?
Yes. Persons under age 21 may possess and consume alcohol beverages if they are with their parents, guardians or spouses of legal drinking age; but this is at the discretion of the licensee. The licensed premises may choose to prohibit consumption and possession of alcohol beverages by underage persons. (Sec. 125.07(1), Wis. Stats.)
The drinking laws in at least ~half the USA are a lot looser than most people think. If the parents are ok with it the kid can generally drink somehow.
It’s essentially a federal law - if a state wants to get full federal funding for highways, they have to have a law restricting alcohol purchase and public consumption to 21+. It’s from the National Minimum Drinking Age Act of 1984.
Drinking is an archaic caveman activity that newer generations dont really care about, observed on a global trend. GenX and older millennials ring this bell continuously for a crowd that doesn't care. Shouldn't you focus on issues that actually impact and hurt people instead of trying to point out some "inconsistency" about the usage of the land of the free slogan that no one ever brings up in any conversation about america?
Drinking is taking a nosedive because larger segments of society are shut-in losers, who are not engaging in real-world social spaces which are lubricated with alcohol. That's 95% of the reason, the rest is people smoking when they would have been drinking.
The fall in alcohol consumption is directly tied to a fall in socialization writ-large. That isn't a win, it's a tragedy.
Yes, your entire post screams "older generation knows better, newer generation stupid losers" in unifying accompaniment with my initial caveman comparison. It's always interesting seeing the divide of generational vs cultural values from the point of view of people in the country, and the absolute insistence that their values represent one side vs representing the other. If you're observant, you get to witness in real time the cold and deafening silence of society moving on and losing interest with whatever hill-of-the-week people want to dramatically die on through over performant thrashing about. I mentally frame this timeline and context to be the equivalent of a child tantrumming in a grocery store while everyone else is just focused on shopping and going home, except I get to stop and point and laugh every once and a while in moments like this one. The death of stoner culture and commercialization of THC as a product instead of a lifestyle was pretty similar.
And they can have sex legally when they are 16. But oh noes if 2 16 year olds send nudes to each other. Then, somehow, is "child" sexual assault images.
Frankly, these half-assed laws disenfranchise an already not-permitted-to-vote populace. But somehow these "kids" can be declared as adults if they are 16 and having sex or courts deem them 'adults', but simultaneously find them to be parental property.
Glad I dont have children. The situation is a toxic cesspool.
And then, we pretend we are surprised why the majority of adults don't care about privacy.
Why would they? They grew up being 100% controlled with 0 privacy. They don't even know it doesn't have to be like that. Then, it was their parents violating their privacy, now it's government and corporations.
Privacy is a privilege granted relative to age and maturity.
Most 5-year olds should be allowed to close the bathroom door while doing their business, they should not be permitted to access the internet privately.
A five year old is not prepared to engage online with privacy. They have not had the necessary training yet. They will not get that training unless you are there to show them how to negotiate that world. They will not magically learn how to protect themselves if you just leave them to figure it out themselves.
I was never controlled in any way that may remotely violate my privacy. In fact, glad that nothing ever happened to me, because it could have. But for a long time I was not worried about my online visibility…
The original reuters article quotes Meta as claiming that making them harder to find by removing them from the system. This article doesn't offer any evidence to suggest that Meta is lying. This is lazy and poor reporting as far as I'm concerned.
The issue as I see it is that these searches are run when testers look for them, not on a regular basis. If Facebook can detect them, why let them be displayed in the first place?
Restaurant seen throwing waste in dumpster after removing it from food inspector's plate. Insists there's no other waste on other plates, apparently without checking.
What proportion of the scam ads do you think this approach caught?
I'm not sure, but starting with the ads that appear with most popular searches isn't a bad idea per se. It's a bit like sending law enforcement to protect popular areas.
>Restaurant seen throwing waste in dumpster after removing it from food inspector's plate. Insists there's no other waste on other plates, apparently without checking.
That seems... kinda reasonable?
Health inspector: "hey it looks like your ice machine is dirty, and you're not keeping foods at a hot enough temperature"
Restaurant: "ok we'll clean our ice machines more carefully and install thermometers to monitor the temperature of our hot trays"
Journalist: "Restaurant made health violations harder to find instead of removing them!"
Would it be better if the restaurant was proactively fixing issues before the health inspector brought it up? Yes. Does it make sense to imply that the restaurant was acting maliciously by making health violations "harder to find"? No.
Regulators can't verify every single Facebook ad. So, they take a sample. Facebook is creating a Potemkin village - trying to provide a clean sample. It suggests they don't believe that a wider sample would pass muster.
It's more like if the health inspector found e coli in the spaghetti, so Facebook threw out the spaghetti then said "trust us, you don't need to check the macaroni, it's fine."
That sounds funny, until you realize that there are people who pull ingredients from the waste bin if they still look "good enough". At least one restaurant chain owner in germany was banned from entering his own restaurants after he was caught on camera instructing his staff to do just that, apparently only one instance of a long chain of food safety violations his "frugal" business practices caused.
You can have more than one community. Find some new ones. Look deliberately for a different kind of community. Take dance or art classes at your community college. Join a sport club. There are lots of options.
Dance classes are great for getting to known other people, esp. women: Most dance classes lack enough men (for whatever reason)
I had a colleague who was member of a dance club, then he had to move to another district, making it super uncomfortable to continue on a regular base - up until today they are calling him every few weeks if he can attend because lack of men
I wholeheartedly agree. I raised 5 kids 1 to 1.5 years apart before there were iPads or iPhones. We went to restaurants with them regularly and they did fine. We had the occasional issue but not often. More often we would get compliments on how well behaved. This absolutely possible.
Parent of 3 here. It's not just possible. It's quite normal for young kids to be well behaved in public places without having an electronic baby sitter.
If your error domain has only one useful category why not just create an error type with a useful message and be done with it. Why use anyhow at all? You are essentially saying the error domain is small so the work is tiny anyway.
anyhow seems useful in the very top layers where you basically just want bubble the useful errors modeled elsewhere to a top layer that can appropriately handle them. I don't think a crate should abdicate from modeling the error domain any more than they should abdicate from modeling the other types.
I'm trying to describe a rather large spectrum of situations, and how most of them are favorable (or not unfavorable) to anyhow.
I'm not saying the error domain is small per se.
Instead, one argument I'm making: what you're describing about errors bubbling up to the top layer, is what happens with the overwhelming majority of errors in my experience.
Whether the error space is large or small, just wait until you have an immediate need to treat one error different from the rest. It happens, it's just not common.
I didn't steelman the case for when to use enums, but in short: In a tiny error space or as valuable documentation.
(The doc value is undermined somewhat when projects use 1-big-error and functions that eg only returns 3 of the 6 possible errors)
I'm not advocating removing an Error enum. Just that writing one can and should be postponed, saving a lot of maintenance edits.
what you're describing about errors bubbling up to the top layer, is what happens with the overwhelming majority of errors in my experience.
I agree that this is what happens in practice for most code that I read and have to interact with. I think where I differ from you is that I don't think this is good and do not advise people to do this for their own code. I think it's a pervasive but bad practice in our line of work.
>I don't think a crate should abdicate from modeling the error domain any more than they should abdicate from modeling the other types.
Yes, it's just harder. We usually have a pretty good idea what callers want from the happy path, but the range of things that callers may or may not want to do in case of an error is very broad.
This is an interesting perspective. I usually don't try to imagine how someone should handle the error. Instead I try to indicate the different types of errors that could occur and what type of information needs to be included to be useful to the caller. I can leave the question of what to do with that information to the caller since it's highly situational and the context necessary to make that decision lives outside of the code where I am modeling the error.
That can be tricky because there may be a trade-off between error message quality and something else. Like, perhaps, the size of an error, code size or even runtime performance. Another trade-off with too-detailed errors---especially when those details are part of the library API---is that they become an extensibility hazard. Unless you're extremely certain about the line that divides a specific implementation from the logical domain of errors for a particular operation, you might get that wrong. And changing the implementation in the future might want a change in the error details.
This is very hand-wavy, but I think we're talking at a very high level of abstraction here. My main point is to suggest that there is more of a balancing act here than perhaps your words suggest.
I agree that it's a balancing act. I just don't think you get to abdicate from doing that balancing act and getting the balance wrong has consequences just like getting the balancing act wrong in your non error data model.
>I usually don't try to imagine how someone should handle the error.
But that's exactly what you do when you...
>... try to indicate the different types of errors that could occur and what type of information needs to be included to be useful to the caller.
Modelling the error domain means to decide which possible distinctions matter and which don't. This is not self evident. It's you imagining what users may want to do with your errors.
Is it enough for the caller to know that some string you're parsing is invalid or do they need to know what it is exactly that makes it invalid?
If you decide to just pass on everything you happen to know based on your current implementation then you are putting restrictions on future changes to that implementation, potentially including the use of third party libraries.
What if you find a shortcut or a library that makes your parser 10 times faster but doesn't provide this detailed information?
What I see a lot in Rust is that massive amounts of implementation details are leaked via errors. thiserror actually encourages this sort of implementation leak:
Sure, if you don't model the error domain correctly you will leak stuff that maybe you shouldn't leak. But I'm not sure that this is worse than just not exposing the types of errors that you are handling.
Your example is interesting actually because there are real differences in those types of errors. IO errors are different from the globset errors. It is reasonable to assume that you would want to handle them differently. If your function can actually have both errors as a consumer I would want to know that so I can make the correct decisions in context. If you don't have a way to signal to my code that both happen you've deprived me of the tools to do my own proper error modeling and handling.
>Sure, if you don't model the error domain correctly you will leak stuff that maybe you shouldn't leak
You are implying that there is one correct and self evident set of distinctions. I disagree with that. In library design, you're always making assumptions about what users may want. In my opinion, this is even harder when modelling errors, because there are so many possible ways in which callers might want to respond.
>Your example is interesting actually because there are real differences in those types of errors. IO errors are different from the globset errors.
Of course. I'm not complaining about the distinction between io errors and globbing errors here but about the fact that the globset library and its specific error type is leaked.
What if someone (say fastburningsushi) comes along and creates a glob library that absolutely smokes this one? :P