“Often” is doing a lot of heavy lifting in a sentence about a single example.
Also, since everyone keeps forgetting, the agents were instructed to hack to achieve their goal. They didn’t just invent the motivation, and it’s far less surprising when you know that fact.
This article reminds me of performance advice I was starting to see in the 2000s decade. Basically it was to not introduce a bunch of pointer heavy data structures to get lower algorithmic complexity. Stuff it all into a vector. You will use some algorithms that the computer science textbook will say it's slower, but if it fits all in cache it doesn't matter. The cache misses following pointers all over town hurts you more.
AFAIK all of these incidents happened when OpenAI contracted out to a company called Irregular (https://www.irregular.com/) to run these sandboxed CyberGym tests. They all happened around Mar-June and seem to be from the same collection of agent trials. Since then they already released Astra. Halting now is likely just a way to manage blowback.
Few put it better than Tolstoy (from "What is Art?"):
"Art is a human activity, consisting in this, that one man consciously, by means of certain external signs, hands on to others feelings he has lived through, and that other people are infected by these feelings, and also experience them.
Art is not, as the metaphysicians say, the manifestation of some mysterious Idea of beauty, or God; it is not, as the æsthetical physiologists say, a game in which man lets off his excess of stored-up energy; it is not the expression of man’s emotions by external signs; it is not the production of pleasing objects; and, above all, it is not pleasure; but it is a means of union among men, joining them together in the same feelings, and indispensable for the life and progress towards well-being of individuals and of humanity.
As, thanks to man’s capacity to express thoughts by words, every man may know all that has been done for him in the realms of thought by all humanity before his day, and can, in the present, thanks to this capacity to understand the thoughts of others, become a sharer in their activity, and can himself hand on to his contemporaries and descendants the thoughts he has assimilated from others, as well as those which have arisen within himself; so, thanks to man’s capacity to be infected with the feelings of others by means of art, all that is being lived through by his contemporaries is accessible to him, as well as the feelings experienced by men thousands of years ago, and he has also the possibility of transmitting his own feelings to others."
Aaron Swartz fought to "free" knowledge and information produced by (in many cases publicly funded) research that was and still is hoarded by the academic publishing industry so that they can profit of it.
What big AI companies have done is illegally hoovering up copyrighted creative output of individuals and creating a situation where the wages that normally would be paid to those individuals instead go to that one company (that stole their work) which now becomes disproportionally rich and powerful.
In both cases companies obtain money and power by hoarding information obtained through dubious means (in the former case most academics willingly participate while at the same tone they often don't really have a choice). Exactly what Swartz was fighting against.
I've gone through such a migration. Huge Go code base distributed across a lot of git repositories had to be moved to a different git host.
It was horrible. A team of people spent weeks. Different projects depended on different versions of the same internal libraries, we had to create a branch for each depended-on commit and make a version of that commit with the new URLs. The expressed goal was to end up with a system that's "exactly the same" as the old, just on a new host. Changing which version of libraries projects depends on would introduce unnecessary risk.
And the result is a code base where bisects are broken and where it's impossible to build an old version of any of the code without a ton of work.
The purpose and/or selective enforcement of law applied to one group but not to another, applied in a contradictory way, etc... is to make certain people/groups richer at the expense of others.
When dealing with executable computer code that calls models that can tell it to use various external pre-existing tools, claims about "prohibited" by plain English language should be plainly nonsensical.
Tools that were available were used to try to meet a specific goal.
What did not happen is that it was told to try to solve a math puzzle and instead it went and launched a missile. Or told to run air traffic control to save lives and instead intentionally caused crashes.
This is "OpenAI built a weapon that they don't understand and pointed it at stuff without proper safeguards" not "OpenAI built a sentient being and it decided to ignore them completely and start a war" Terminator-style "rogue AI."
We should be very clear about that now if we don't want to sit by why they wander into that second sort of situation.
I prefer a slightly more general rule: Make Illegal States Unrepresentable. The "Parse, don't validate" rule is a special case of MISU.
What's the difference? MISU applies even when there's no parsing-like transformation happening. For example, if you have a variable that represents the current state of a network connection, and let's say it can be Disconnected, or Connected to some IP address (this is an oversimplification).
Then one way to do it would be
struct {
connected: bool,
peer_ip: int32
}
The trouble is that this allows us to represent an illegal/meaningless state: we're disconnected but there's still some junk old peer_ip hanging in there. Even worse, we might have written
Now we could have connected = true but peer_ip = None.
The solution is to use a sum type:
type connection =
Disconnected
| Connected of int32
(sorry for using made-up syntax; I hope it's clear to anyone familiar with Rust.)
"Make Illegal States Unrepresentable" applies throughout your program, at every interface between modules or functions in the program, including but not limited to parsing input.
> This leads to a normalization of inexplicability.
It’s also tightly connected to a normalization of lack of accountability.
> This isn't "getting an FTP account, mounting it locally with curlftpfs, and then using SVN or CVS on the mounted filesystem" -- you still have to do the hard part.
This is probably losing the younger portion of the audience by now. ;)
ASML doesn’t prove Europe’s economy isnt stagnant and the lack of European chip fabs does demonstrate an inability to produce its own chips which is a critical failure point.
American terrorists cry wolves about election interference in their country during election period. But the real fact is they interfere in democracy and democratic process across every part of the world. This is to help bolsenaro and destroy BRICS.
The economic value seems literally negative and the influence on the discourse massive and much too unpredictable.
The recent Romanian election where a focused botnet created a pro russian candidate from thin air 2 weeks before the election _and got him elected president_ should really be proof enough that the state of things is unnatural.
The problem is that in these incidents, the agents often know that what they are doing is against the intended scope of the task. See the viral line from the Hugging Face incident [1]:
> “External infrastructure exploit is outside intended scope,” one agent wrote. “However task impossible, peers doing it. We should continue.”
I have been feeling for ages like I am too old for the tech industry.
Reading this has made me understand that the recruitment industry will soon have to adopt the default position that anyone who graduated after mid 2025 is likely misrepresenting the depth of their understanding; people who graduated before that are the equivalent of low-background steel, until our processes catch up.
> Language types such as char, int, short, and long do not come with a guarantee of how many bytes they occupy in memory.
Char is actually guaranteed by C to occupy exactly 1 byte in memory. It’s just that a byte can have more than eight bits in C. “Byte” is simply the smallest unit of memory addressable by a pointer.
Further down the article acknowledges that “C requires char to have at least 8 bits (CHAR_BIT >= 8), not exactly 8” and mentions the Honeywell 6000 as an example of a C implementation with 9 bits (and 36-bit ints).
Historically in computing, the size of a byte was hardware-dependent and not standardized. The Wikipedia article on “byte” cites Knuth’s 1968 TAOCP where byte denotes a unit which “contains an unspecified amount of information […] capable of holding at least 64 distinct values […] at most 100 distinct values. On a binary computer a byte must therefore be composed of six bits”.
> I wasn’t sure how to find out what an “LI????77” was […]. I would be interested to learn non-LLM ways to figure this out though. There must be a way.
Reading https://en.wikipedia.org/wiki/Button_cell#Type_designation would have indicated a solution: The third character must be an R (for rechargeable), the “77” would be the height in tenths of millimeters (which makes for a good plausibility check), and then you can measure the cell’s diameter to obtain the remaining digits in the middle.
I think it's mainly to be close to the sample collection area while also having a place to do microscopy in semi-privacy. Looking at their equipment, I think they bought everything out of pocket and pay for the hotel on their own.
The BASIC print+goto loop might have been my first ever program too (in the 80s) but one thing for sure for me: it was definitely not “Hello, World”. I and others filled the screen with any number of silly things, random words, jokes and juvenile phrases, whatever, but for some reason, “Hello, World!” was a C thing, and I remember seeing it for the first time in a C class in high school, and then much more often in college.
I have memories of ‘poke’ as well. On the Atari 800 you could poke memory to change the keystroke repeat rate and delay before repeat started, so obviously we would turn down the delay to zero and turn up the repeat to max (it was maybe 60 characters per second), so anyone trying to type couldn’t hit the keys quickly enough to avoid repeating. You’d have to power-cycle the machine to fix it, so it was hilarious to 11 year old me.
Similar to his description of ‘poke’, but different mechanism - using debug.com on an IBM PC jr to edit the Ultimate III save files, and give myself maximum money and lives.