My understanding is more that economy and safety standards have driven us towards these aerodynamic and impact absorbing shapes. I may be quite wrong though!
The cybertruck had good enough safety ratings, but kinda just decided to not care about the aerodynamics and economy side. Which freed Elon up a lot in terms of style.
Personally, I also agree that it was refreshing to see something bold out there on the road. It's just that the final product looked just 'off' enough to make it look bad in the end.
Like, it's wheel base is about 6 inches too long and the ride height is about 6 inches too low, making it look a bit toddler-y to my eyes. The bed was also just not practicable and too small (something I see on a lot of trucks these days). The speed was good, the torque was great, the giant screen you can't feel when driving was not. The seats were uncomfortable for my build.
Overall, the car was a statement, one that just barely missed the mark to my eyes, but it did miss
The US safety ratings are incredibly easy to game. I have a sibling who used to be a crash test engineer, and we used to get bored of them endlessly ranting about it at family gatherings.
In many other countries it wasn’t even street legal because it couldn’t meet minimum safety standards.
> The bodywork of the vehicle is particularly problematic: the sharp-edged, rigid stainless steel panels of the Cybertruck violate EU safety regulations, which primarily serve to protect vulnerable road users.
I remember reading Godel Escher Bach back in the day, and there is the parable of the record player between the tortoise and the rabbit. And the tortoise keeps building more and more secure record players that the rabbit keeps finding ways to break.
GEB then goes on to teach you that, no, in fact, you cannot have a perfectly secure system. Not just practically or economically, but even in theory, all systems are fundamentally breakable. GEB, after a lot of chapters (what a doorstop!) ties that parable into Godel's Incompleteness Theorem, and essentially proves that no, you can't make unbreakable things, as a fundamental point of logic.
So, when I look at all this, I see that yes, there is an economics point of view here, that fixing code is just expensive, like making a less and less breakable record player. And that AIs push that breaking and economics point much further along than what we have had.
But then I also see a lot of comments here that seem (to me) to be arguing that there is an unbreakable code out there.
Am I reading this right? Is there such a thing as 'perfect' code? Or is my outdated reading of GEB still valid or not?
[0]Note, I'm not a CS person, more a biophysics person.
The record player thing is a clever analogy for Godel’s theorem, but the “strange loop” is not especially relevant to the security scenario.
Godel’s theorem says that unprovable true statements exist. Fortunately there is a vast set of provable true statements that are quite useful in real life.
Similarly, the halting problem is that you can’t write a program that always determines whether absolutely any program you give it will halt. But in real life compilers can still detect infinite loops in your code unless you try really hard to fool them.
In practical terms a software system can never be “perfect”, because first you have to define “perfect” (i.e., specify correct behavior in every possible state), which is practically impossible, and even if you manage that, the hardware has to implement the software abstraction perfectly, and that never happens. (See prefetch attacks, cache timing attacks, supply glitch attacks, rowhammer, etc.)
The security issues come about when someone finds where you failed to specify desired behavior, or (at any level) your system failed to implement it in some circumstance. No strange loop required.
>But in real life compilers can still detect infinite loops in your code unless you try really hard to fool them.
Having never written compiled code, this intriques me. I often write one offs that I actually want to loop infinitely until I tell them to stop.
How does the compiler know whether it's just really long or infinite? Like, if I write a progressive approximation of pi or prime search algorithm, both are never going to halt because we're certain there are infinite digits of pi and prime numbers. The program could technically halt, but not as a function of the program but rather the hardware.
Or, being silly, if I write a "flip bits in target directory until all bits are flipped" and target /dev/null as a user of the software, it wouldn't halt, so the compiler would detect that?
Is there some --don't-mind-the-recursion flag for developing a program like ycruncher? I get the feeling that there's a list of "this typically causes infinities" that it checks against and if your use isn't on there well then... So it's just the mouse/mouse trap thing but in a compiler?
Or is there some unique CS going on that the compiler employs to determine certain classes of loops?
I think it's worth pointing out the compiler usually won't do much (if any) of this kind of check unless you tell it to.
When you tell it to, you usually have good control around what kind of thing you want it to consider a problem, how much effort you want it to spend trying to prove that, and what should happen with code it can't prove that property for. Most commonly, people just use the "tell me if I've made an obviously dumb infinite loop which does nothing useful while it runs".
E.g. y-cruncher does something other than infinitely loop for no reason so it wouldn't trigger the loop detection logic on most anyone's compilation settings.
On the other hand, a loop which does nothing but run until the last digit of pi would either trigger the compiler to say this is a useless infinite loop or to say it isn't able to prove this loop stops (almost certainly the latter, as such a loop is a great example of going out of your way to fool the compiler).
A loop which sometimes terminates and sometimes doesn't depending on runtime input would depend on your compiler settings, but almost always nobody sets it in a way to say that's a problem (and when they do almost always it's not possible for the compiler to prove one way or the other) if their compiler even supports that kind of analysis.
Interestingly, in C++, a trivial infinite loop is undefined behavior. So the compiler not only doesn’t have to detect it, it is allowed to assume you didn’t do it. [0] This is inconvenient when you actually want a trivial infinite loop. (C++26 was going to fix this, but it seems we may not ever get a C++26…)
in C infinite loops with no side effects are UB, so detecting them is useful for diagnostics.
guaranteed termination also is needed for some optimizations. but since side-effect-less infinite loops are UB in C, a compiler doesn't have to prove that such a loop terminates, it can just assume it does. other languages may differ, but I don't think any of them prove convergence of algorithms.
a don't-mind-the-recursion flag can be `-fno-finite-loops` on clang, or a read or write to a `volatile` variable in standard C.
How does the compiler know whether it's just really long or infinite?
One straightforward approach is to use Hoare logic [1], specifically the method of loop invariants and loop conditions. If you have a loop where the conditions are expressed only in terms of invariants then the conditions will never change truth values during iteration of the loop, thus you have an infinite loop.
Now, some loops are written deliberately like this, i.e. "while (true)", and so there you need to look at whether the body of the loop contains any side effects (reading input, printing, etc). Then you have what is called a "productive infinite loop", such as an event loop or a REPL. Of course you can't prove this sort of loop will ever halt, since the user may never elect to issue the quit command, but these sorts of loops often tend to spend most of their time with the process sleeping until the operating system wakes them up to handle an event.
This is a misconception of what is being said in GEB.
Gödel's Incompleteness, very roughly, says that not every true statement (in a formal system) can be proven. In particular, it says that for a logic equipped with arithmetic the statement holds; how you get to security I do not follow.
The idea is that since you can make every security program turing complete, I thiiiiink?, then you can have it be a formal system. So, you can then get the code, in very tortured ways, to execute a paradox, thereby breaking it. Likely in enough ways to let you gain access, though not always.
I mean this in the nicest way, but I would never have dreamt to relate Gödel's incompleteness to this topic.
I think perhaps where I would diverge is that we should separate the language from the program. Generally, we say that a programming language is Turing complete.
Gödel's incompleteness is analogous to a paradox, e.g the Liar paradox, that is one useful way to understand the statement. But it seems as if you're saying it's a Contradiction (from where we can derive anything) something like EFQ:
https://en.wikipedia.org/wiki/Principle_of_explosion
That does not follow, not all paradoxes are contradictions. For instance, just because Gödel's incompleteness pertains to first-order Logic does not mean that we can derive anything in first-order logic.
Godel's Incompleteness Theorem basically says "any system complicated enough to give you basic math is either 'incomplete' or broken."
Clearly our math system gives basic math, so we should conclude that it is either 'incomplete' or broken. Before the incompleteness theorem, it was exciting to imagine that it might be complete, but we had no idea. Now it seems likely to be incomplete. The odds of it being broken haven't really changed.
If it is broken, 2+2 still equals 4 (we didn't really learn that fact from abstract math), but we'll need to fix up set theory. In a world where math isn't formally verified (and even lean itself isn't formally verified), the Incompleteness Theorem is permission to be awed by how huge the space of all logical deduction is, not an argument that logic is a fiction.
To come at it another way, do you believe that there is an 64-bit integer which, any time it is inserted into register 8 on any computer, will immediate convert the raw mass of the earth into a black hole? No, because even if you suspect there is a hole in the foundation of math, you still believe in brute-force case-analysis, and you know that every 64-bit integer has been inserted into register 8 on a computer before.
The important distinction in the book that was made is that it was for a sufficiently advanced reproducer of the original sound, a thing that would make the perfect sound based in the record would cause its own destruction. Something lossy or without that property is actually less susceptible to damage.
Perfect security is actually pretty easy to achieve, for example, if you turn off your computer, it's impossible to hack over the internet. But it's also useless - you want some people to access the machine some of the time.
Another way you have very good (and fake) security, is by reducing the scope of the problem - if you check every request against a very strong crypto signature, it's also practically unbreakable.
But then you have issues like who signs these tokens, who decides which user gets what permissions etc. etc. which mean you have to weaken practical security to make it useful.
Another example is the L4 microkernel, which 'proven' to be bug-free and secure. But it also doesn't do like 99% of the stuff a regular kernel like Linux does, and sort of pushes the issue to the user.
So even defining 'perfect' security in a way that the system remains practically usable is very difficult and potentially impossible.
We come down to to the permissions problem - each person should have as much permissions to do their work as necessary and nothing more - which is essentially a reformulation of Gödel's incompleteness theorem.
Godel's incompleteness and the Halting problem preclude an unbreakable system. Any certificate that code is bug free, secure, has no back doors, halts, etc. is doomed to fail, in general, for systems that are complex enough.
The situation is, theoretically, much worse, where one can even embed backdoors into the compilers themselves and then have the backdoor propagate undetected in perpetuity . This has been known for a long time and Ken Thompson had a famous article "Reflections on Trusting Trust" (1984) [0] that talks about this issue.
In practice, this tends to be very difficult. Extra functionality introduces bloat and complexity. Obfuscation needs to be de-obfuscated by some method, usually known methods. Open source, many eyes, re-implementation and observation and mitigation tend to catch these issues.
Vulnerabilities (in my opinion) tend to get introduced from unintended behavior (bugs) and, very rarely, through directed premeditated malicious action (supply chain attacks, say). Unintended behavior can be exploited by attackers but wasn't introduced with the intent of obfuscation, whereas malice action tends to try and hide themselves.
There's no silver bullet. The best we can do is try to create systems that have certificates of security where we can (for, say restricted computation models) and create empirical tests and responses for the rest. For example, SQL is Turning machine equivalent, so the way around running into the halting problem is to have a timeout that will fail when triggered and leave it up to the user to create a query that runs under time constraints.
You come from biology, so you should know better than most that our body is under constant assault from foreign invaders. Some viruses come in and rewrite code that can then sneak past the immune response, replicate themselves, etc. Our body has evolved a bunch of empirical responses to such malicious action. "Cell not communicating properly?" kill it. "We're under attack?" chop up the invader to get identifying signatures for a counterattack. I'm sure you know better than me all the intricate and complicated ways our immune system handles attacks. It's not perfect, but it does pretty well, considering.
I think there is a contingent of computer scientists and software developers that we should only be using restricted computation models for critical software, so that we can reason about what the software does. This effectively sidesteps Godel's incompleteness/Halting problem because it's not general computing. My feeling is those are, as well, doomed to failure as Turing machine completeness is the norm and very hard to avoid and any system that's so crippled as to not be Turing machine equivalent has limited use.
The real comparison study here would be to measure the other football codes (soccer, rugby, canadian, aussie rules, gaelic, etc) and see how that compares.
Especially recently, international contact sports have become quite aware of the brain issue and have moved a lot to change things. Even as an avid NFL fan [0], I am shocked at how violent things in rugby used to be [1]. Aussie rules hits are similarly gruesome.
But in the last few decades, the big hits are much more severely punished. If you watch any international events then you'll see just how seriously they take head trauma now. Red cards are being pulled for things that even 20 years ago would not be considered a highlight, just part of the game.
NZ is in quite the crisis these days over their All Blacks [2] and the near death of the rugby pipeline from schools to the professional level. Over there the cause is simply that mothers aren't allowing their children to play for fear of the head trauma.
If you could get studies for these other codes, then you could, I imagine, get a nice neat graph illustrating the relationship between head trauma and CTE, using the many codes as 'trials' in a way.
In that, 500 person frosh lectures are dead. 32 students per class, 6 classes a day are dead.
What remains? The Oxbridge model that has been going on for nearly a millennia.
Briefly: 4-10 students and a proctor. You do the reading/work, you meet a few times a week. The proctor facilitates discussion and guides students. Many schools do this, but not many students get to see it.
Why? Because it is very expensive. The proctor has to be at least a graduate in the same subject, likely having a graduate degree in it. These are small classes by design. And don;t even get started on the training that the proctors have to do to get ready and not be a lawsuit generation machine.
I feel this is really the only way forward. Which is almost maximally unfortunate.
Yes, 'Cheap' Big State University will still exist, but it's program will be so degraded by AI that it's graduates will be seen as worthless. While 'Very Expensive' Small Liberal Arts College with the Oxbridge model will guarantee that the students are at least minimally educated to bullshit well enough. Meaning that the rich and poor gap grows and grows.
Largely, most of the paper pushed in these big pharma companies is in regulation and compliance. So much so that it isn't that much of a stretch to say they are mostly regulatory compliance companies with a research division attached. It's not entirely true, of course, but it does fit a bit. Also, there are a lot of regulatory agencies out there, not just the FDA.
That regulatory function is quite personal and hands on. It's relationships built up over months and decades. AI, almost by definition, cannot replace it or augment. Sure, faster, better. But even then that backlog will grow to meet any gains.
Source: I have done (and have family members that do) compliance and regulation for larger phramas, including drugs and instruments that you have had (with near certainty) your medical reports analyzed and produced by.
- Terry Tao said it best, I think: We're no longer in the heroic age of mathematics. Meaning, I think, that math is now a group project, not just a single person. Many disciplines have become this already, math was just lagging a bit there.
- Other commentors have pointed out that this professor likely hasn't graded anything in decades. I'd bet that he likely hasn't changed tests all that much either. And knowing how extensive the test banks in greek life are, I'd bet then too that many of the undergrad students haven't done any homework or test prep for decades either. Cheating is by no means a new problem. Granted, this is pure horse-crap speculation on me here.
- AI isn't going anywhere, and it seems that this Prof is kinda already throwing in the towel per students. It strikes me as mostly cowardly and asinine and just deaf to anyone beyond his nose. Like, my dude, talk to your students. They are ostensibly adults. They aren't cattle. Figure out a system, together, that actually works.
- My own opinion is that the age of cheap higher education is over. 500+ person freshman lectures at 8:00am? Yeah not with AI. I think it's gonna be more like 4-10 person study sections with a proctor; the Oxbridge system. Yes, that introduces a lot of challenges in the proctor-student relationship. But it's also very expensive. You're gonna need to up your budgets a lot. And unfortunately, that means that this era of mass higher education is also ending. I fear that only the rich, again, are going to go to college.
Wyoming is an interesting case with Higher Ed. It's actually the legislature that runs UW. There isn't a regent board or some such thing. Hence, with many other priorities, the Cowboys don't get that much time in the minds of their bosses.
It's one of the many many wrinkles that come along with the many college football issues these days. Any formation of a players union or draft or much of any real professionalization of the sport has to go through so many different governance formations (regents, governors, the Catholic Church, etc). As such, the many issues with college ball are likely to continue for a long time and fester.
Asking an alcoholic to pour out any kind of liquor is mind-bending to many of them.
Look, you and I both know that it is literal poison, but, again, it's lushes we're talking about.
0.5% is already too technical a term here. What is that in glasses or drams? What do you mean you can't convert pints to percentages? What commie bullshit is a millyliter? Fuck you, I'm getting hammered for cheap!
If you can get a meme going to always piss on your first pint in the toilet, then maybe, just maybe you can get it to work.
And, yeah, a lot of drunks are no longer allowed to drive cars and really should not while drinking too. Doesn't mean they don't do it though.
The cybertruck had good enough safety ratings, but kinda just decided to not care about the aerodynamics and economy side. Which freed Elon up a lot in terms of style.
Personally, I also agree that it was refreshing to see something bold out there on the road. It's just that the final product looked just 'off' enough to make it look bad in the end.
Like, it's wheel base is about 6 inches too long and the ride height is about 6 inches too low, making it look a bit toddler-y to my eyes. The bed was also just not practicable and too small (something I see on a lot of trucks these days). The speed was good, the torque was great, the giant screen you can't feel when driving was not. The seats were uncomfortable for my build.
Overall, the car was a statement, one that just barely missed the mark to my eyes, but it did miss
reply