I suspect the usage of the CAN driver in Linux is pretty low. The largest user of the Linux can driver is likely testing and diagnostics tooling for developing cars rather than the car themselves. Even when the car has a Linux computer, they often use multi CPU SOC's that run the real-time CAN logic separate from Linux, and only convey application logic into Linux.
I could also speculate that the overlap between Linux kernel developers and automotive and industrial embedded systems is pretty low. So the high bug severity in the CAN driver could be developers contributing patches from a very different programming background?
If i find an article online, ill sometimes pass it through a HN search to see any issues with it.
There are plenty of articles or news ive red that made me think "that's pretty clever" only for HN to point out background i missed and tradeoffs making a solution worse.
Sometimes criticism is shallow or pedantic, but thats easy to dismiss if irrelevant.
Interesting to see a deepdive about string formats. I hadn't thought very deeply about it before.
I do agree with the string imutable argument. Mutable and imutable strings have different usecases and design tradeoffs. They perhaps shouldn't be the same type at all.
The transient string is particularly brilliant. Ive worked with some low level networking code in c, and being able to create a string containing the "payload" by pointing directly to an offset in the raw circular packet buffer is very clean. (the alternative is juggling offsets, or doing excessive memcpy)
So beyond the database usecase it's a clever string format.
It would be nice to have an ISO or equivalent specification on it though.
> The transient string is particularly brilliant. Ive worked with some low level networking code in c, and being able to create a string containing the "payload" by pointing directly to an offset in the raw circular packet buffer is very clean. (the alternative is juggling offsets, or doing excessive memcpy)
It's not anything special? That's just `string_view` (C++17). Java also used to do that as an optimisation (but because it was implicit and not trivial to notice it caused difficult do diagnose memory leaks, IIRC it was introduced in Java 1.4 and removed in 1.7).
I don't believe I stated or even hinted otherwise?
> This format can handle "string views" with the same logic as "normal strings" without relying on interfaces or inheritance overhead.
"owned" and "borrowed" strings have different lifecycles and if you can't differentiate them easily it's very easy to misuse a borrowed string into an UAF (or as Java did into a memory leak). That is bad.
And because callees usually know whether they need a borrowed string, and they're essentially free, the utility of making them implicit is close to nil.
Which is why people have generally stopped doing that, and kept borrowed strings as a separate type. Without relying on interfaces or inheritance.
> it's clever.
The wrong type thereof. It's clever in the same way java 1.4's shared substring were clever, with worse consequences.
You're getting into pedantics about specific languages and their implementation. I never made a statement about C++ or java. I work in primarily in c99 myself.
> the utility of making them implicit is close to nil.
> Without relying on interfaces or inheritance.
Implement a function that takes three strings without 3! permutations of that function either explicitly or implicitly created.
> You're getting into pedantics about specific languages
No, I'm using terms which clearly express what I'm talking about, and referring to actual historical experience with these concerns.
> Implement a function that takes three strings without 3! permutations of that function either explicitly or implicitly created.
In the overwhelming majority of cases this is a nonsensical requirement, if the function can take 3 borrowed strings you just implement a single function which takes 3 borrowed strings.
In the (rare) situation where optimising for maybe-owned makes sense, you use a wrapper type over "owned or borrowed". Which still needs no "interface or inheritance".
I never really put much thought into it either, until I started playing with Rust, which pretty much supports every common way to use strings out there. Mostly for compatibility sake, but still, it's wild all the same.
Same reason they infiltrate airspace duringtraining, fly drones over airports, run submarines through ports.
Testing limits and tolerance, threatening what they could do in a real attack. Creating econocic pain in retaliation for support with a strong alibi to blame.
Boarding and detaining is a new escalation. How many cables cut before we consider military reaction? 3? 10? all of them?
Government buying more fire trucks is a poor measure for increased incidence of actual fires. They might just be signaling, fall for marketing, and lots of other things. Governments are run by people, and they are as fallible as any rando on HN.
If you make a confident claim with no evidence, in a discussion that is rooted in everyone wanting to believe something, then the rational response is to doubt harder.
There is a very simple and powerful alternative; add a flag to the http header standard, which is enforced device-wide or web-browser wide for any parent controlled device.
If you dont want to serve or moderate your site for children and be exposed to fines, you block any request with the relevant flag.
You just need a law to enforce what can be served when using the relevant flag, and some talks with Google, Apple Microsoft and w3 to implement it.
you can even segment it my category; no-login, no-posting, no-18-plus, no-violence, no-politics, under-16, region-EU, region-UK.
This leaves control to parents to do what they deem appropriate for their age, and doesn't turn into a authoritative surveillance state.... wait thats the point isn't it...
Adding even more personal information into HTTP headers is NOT the way to go. The web shouldn't require identification. The web shouldn't require segmentation on protected demographics. The business should. If the goal is to "protect the children", sending this information on every request is ANYTHING BUT protecting the children.
Seems like it could work in the other direction... mandate that adult sites etc. include a standard, relevant flag in the response, so that parental control software can detect it if it's installed. Sites don't have to know anything about their users, parents can reliably filter out naughty sites.
To op's point, age verification is really a surveillance measure, so this won't happen.
That would be a better approach. Let the sites that require it, negotiate with the browser to get it. Oh wait, isn’t that what we are asking them to do and they won’t? They’d rather shut off access entirely.
No the best approach is having parental controls on device and require whitelisting and established accounts that the parents setup. Anything else is making the web a more restrictive place for all.
> Adding even more personal information into HTTP headers is NOT the way to go
It's exactly the way to go; because the alternative currently being pursued by half the western world is to attatch your full government ID to every internet request. Some preference flags are pretty harmless in comparison, and very powerful tool to solve some related problems.
The internet is already segmented and will continue to become more segmented (Intellectual property, GDPR, gambling). Adding a method to control that with the power in the hand of the user; is the least bad way to implement it.
It also makes regulating the internet alot less painful for businesses and governments. A buisness can refuse my service if they don't like my http request. No more murky "US company liable for EU user traffic even if unintended" nonsense. (The user can choose to voluntary remove GDPR protection with this method for example)
Mostly only because Tesla doesn't share this data outside of Tesla, unless they leak it to news outlets to make it look like the accident was all your fault and not Tesla's.
Tesla tends to only leak that stuff when they look bad. It's not like they are necessarily outright lying, they are just telling their version of the truth....
I point out tesla specifically because they had headlines about sharing camera feeds as memes. The Mozilla report clearly shows tesla is not an outlier, more like "middle of the pack".
"...pictures of dogs and funny road signs that employees made into memes by embellishing them with amusing captions or commentary, before posting them in private group chats. While some postings were only shared between two employees, others could be seen by scores of them, according to several ex-employees."
Two-second Google search. It's not very charitable to accuse someone of lying without even looking. It's even mentioned in that mozilla breakdown.
> I point out tesla specifically because they had headlines about sharing camera feeds as memes.
Your baseless assumptions are your own fault.
I gave citations for your specific questions. There’s multiple articles about the odious things that happened that you clearly have no interest in acknowledging. I’m not your research assistant. Go read them. You’re clearly more interested in defending Tesla than understanding people’s complaints. Cope? Shill? I’ll never know, and I’ll definitely never care.
lol, cringe. Great way to protect your ego when someone is serially pointing out how baseless your glib snapbacks are. I use em dashes because I learned to write at a competent university, instead of, say, Breaking Bad. In fact, it played a large role in early LLM development, so if they ever used student writing in their data sets, I might be a tiny part of the reason these models use so many em dashed to begin with. Hell, I don’t even use grammarly anymore. And I made this alt when I switched from dev to design, before the shitty job market switched me from design to manufacturing. And exactly who would I be “botting for?” The only person in this thread that started championing a particular company is you. The thread itself started with me bemoaning data collection among the auto industry, and mentioned that Tesla is the least bad at even if they’re still bad. So… am I botting for “big bicycle?” Part of the large Schwinn-backed anti-car virtual astroturfing brigade? Maybe an extremely aggressive public transit advocacy group? Exactly who cares enough about people stanning Tesla to point some robot propaganda machination at it? And since you were enough of a creep to go through my comment history looking for excuses to ignore what I was saying rather than actually engage with it, did you see ANY other indication that was a theme? Lol. So keep trying to scrounge up some cope, “bitch.”
You've been following my comments for a while, especially trying to dunk on Tesla with falsehoods and lies. Argue with Mozilla about their results, not me.
I’ve provided citations. You were commenting in a thread that branched off of my comment. I got my criticism from the Mozilla article, and most of my citations were linked to in the Mozilla article. I’d say you should actually read the subsection on Tesla, but you clearly can’t accept reality and have some weird Tesla obsession. Get help.
> Implicit in the design of most tests is the idea that a person's ability to quickly solve moderately difficult problems implies a proportional ability to solve very difficult problems if given more time. This is clearly jumping to a conclusion. I doubt there is any credible evidence to support this.
I think this approach is effectively testing if a student studied the material. It makes the correlation between memorization and understanding. Recall a piece of information is fast if avaliable.
Its a commonly expressed experience among university students that learning memorization techniques and focusing on solving previous exams is a disproportionately effectively way to pass courses.
It's technically more impressive to pass the exam by never doing a single similar problem before and deriving a solving method or forumla that wasn't memorised.
I took deliberate effort to avoid looking at previous exam question for a course until the week before, since it cased good grades at little value to me long term.
The energy threshold for adding a new unit test to the suite and a new row to the docs are vital for it to be done.
If I need to install pandoc to test compile a doc change before i submit it for code review with 3 other maintainers, id rather keep my note or useful screenshot to myself.
If i need to create a c binding of my function so that pytest can run it through 50 rows of cryptic CMake, I'd rather do happy testing locally and submit it as a "trust me bro".
Good and fast international tooling matters massively for good software. And it all comes back to speed and iteration loop.
On top of that, slow meticulous work can then be done. 100% test coverage, detailed uml diagrams describing the system, and functional safety risk analysis matrix documents.
So speed and slowness supplement in different levels of analysis.
I suspect the usage of the CAN driver in Linux is pretty low. The largest user of the Linux can driver is likely testing and diagnostics tooling for developing cars rather than the car themselves. Even when the car has a Linux computer, they often use multi CPU SOC's that run the real-time CAN logic separate from Linux, and only convey application logic into Linux.
I could also speculate that the overlap between Linux kernel developers and automotive and industrial embedded systems is pretty low. So the high bug severity in the CAN driver could be developers contributing patches from a very different programming background?