The intro paragraph threw me for a while, too. The author says he stopped liking Scott Alexander's posts because of the tenor of Scott's politics. Usually in the past couple decades when someone's said that it's meant "Scott's too Republican-coded for me on things like race and feminism"; but this post's author is actually arguing that Scott is too Democratic-coded for him on social issues like crime (and, by extension, immigration and race: TFA's author doesn't approve of the number of "obviously illegal" food trucks he sees on the street, for example).
The problem with that is that C++26 Contracts are just glorified asserts. They trigger at runtime, not compile time. So if your LLM-generated code would have worked 99% of the time and then crashed in the field... well, now it will work 99% of the time and (if you're lucky) call the contract-violation handler in the field.
Arguably that's better (more predictable misbehavior) than the status quo. But it's not remotely going to fix the problem with LLM-generated code, which is that you can't trust it to behave correctly in the corner cases. Contracts can't make the code magically behave better; all they can do is make it misbehave better.
In my experience, llms don't reason well about expected states, contracts, invariants, etc.
Partly because that don't have long term memory and are often forced to reason about code in isolation.
Maybe this means all invariants should go into AGENTS.md/CLAUDE.md files, or into doc strings so a new human reader will quickly understand assumptions.
Regardless, I think a habit of putting contracts to make pre- and post-conditions clear could help an AI reason about code.
Maybe instead of suggesting a patch to cover up a symptom, an AI may reason that a post-condition somewhere was violated, and will dig towards the root cause.
This applies just as well to asserts, too.
Contracts/asserts actually need to be added to tell a reader something.
This headline seems editorialized, given that the URL just goes to maps.blitzortung.org, which makes no such claim (and AFAICT the map shows no unusual activity around Iran as of this particular instant either — maybe it did an hour ago, for all I know).
When NDEBUG is set, there is no test, no assertion, at all. So yes, this code has UB if you set NDEBUG and then pass it a null pointer — but that's obvious. The code does exactly what it looks like it does; there's no tricks or time travel hiding here.
TFA writes: "Late last year NPM was basically a skip fire" — is this an idiom I should know? (Something like a misfire?) Or a typo for "ship fire"? Or something else?
This article could be massively improved by saying somewhere in the first 10,000 words what Delve is, or at least what it does. From the name I'm guessing something to do with LLMs?
The full AP story from 1984 (including the last two sentences, which were snipped off of the clipping in TFA for some reason) is available in a few places, e.g. in the Lake City Reporter of 1984-10-31, under the headline "Fight With Phone Lost":
IOWA CITY, Iowa (AP) - Police responding to reports of a stabbing found instead a bleeding 20-year-old man who lost a confrontation with a pay telephone, authorities said.
According to police, Richard A. Anderson had tried to call a friend from a pay phone and when the call went unanswered angrily tried to jerk the receiver out of the phone.
Police said Anderson just managed to stretch the wire webbing that covers
the telephone cord. The receiver stayed put. So Anderson again vented his anger — this time by throwing the receiver, police said.
But when the receiver reached the end of its cord, it snapped back and the cord wrapped around Anderson's neck.
The sharp edges of the wire webbing dug into Anderson's skin, cutting him. When Anderson struggled to free himself, the webbing cut deeper.
"Once we got out what had happened," said one police officer. "it was, 'Be real. This did not happen."
Anderson was treated at University Hospitals and released.
I believe it. People born after the payphone era might not realize that the telephone cord in this case wouldn't be the cushy plastic home-telephone cord such as you can find by googling "strangled with telephone cord," but rather a "payphone armored cord", which looks almost like a "metal-clad electrical cable" except more flexible and stretchy (such that you conceivably could get a nasty pinch from it when it contracted again).
Also, while I believe a payphone-cord pinch could draw blood, I don't believe any hospital staffer could mistake an actual stabbing wound for such a pinch. So the guy couldn't have actually gotten stabbed. Although I guess he could have been covering up for the drunk friend who dared him to pinch his neck in a payphone cord...
Yeah; if it's already March, why NOT wait for the traditional joke-RFC day? (But I say this who shouldn't: I've several times thought "I'll post this on such-and-such day," and then when the day came, forgotten to post it. So maybe it's "better early than never"?)
Yesterday I played around with the repo and found that (IIUC) one "environmental condition" already present in the simulation is the mutation rate. With relatively low mutation rates, I find that a whole tape filled with `<` is a good "substrate," in the sense that it can sit there stably for a long time until a random mutation puts `,` into one of its cells. Within a few generations, it will have spattered copies of the substrate into all its neighbors. Then they sit until a random mutation puts `,` into one of their cells... and so on.
I described what (I think) I'm seeing in https://github.com/Rabrg/artificial-life/pull/1 , and suggested in https://github.com/Rabrg/artificial-life/pull/3 that random mutations ought to blow away the whole tape rather than modify only one cell of it. However, even with that modification to the rules, I still see the `<` substrate taking over the whole map, except when the mutation rate is very high. (I admit this doesn't make a ton of sense to me.)
So, anyway, it's easy to make the mutation rate vary from one side of the map to the other. If you do that right, you can see the `<` substrate take over the low-mutation-rate side of the map, but fail to take over the higher-mutation-rate side.
The `<` substrate is easy to see in the gif: it's a rapidly spreading splotch of red with gold noise flickering inside.
The intro paragraph threw me for a while, too. The author says he stopped liking Scott Alexander's posts because of the tenor of Scott's politics. Usually in the past couple decades when someone's said that it's meant "Scott's too Republican-coded for me on things like race and feminism"; but this post's author is actually arguing that Scott is too Democratic-coded for him on social issues like crime (and, by extension, immigration and race: TFA's author doesn't approve of the number of "obviously illegal" food trucks he sees on the street, for example).
reply