Live data from Hacker News

My 2.5 year old laptop can write Space Invaders in JavaScript now (GLM-4.5 Air)

simonwillison.net

241–250 of 415 posts

Re: My 2.5 year old laptop can write Space Invaders in JavaScript now (GLM-4.5 Air)

#241
post #224

Earlier quoted context omitted.

We have been fine-tuning models using Axolotl and Unsloth, with a slight preference for Axolotl. Check out the docs [0] and fine-tune or quantize your first model. There is a lot to be learned in this space, but it's exciting. 0: https://axolotl.ai/ and https://docs.axolotl.ai/

When do you think fine tuning is worth it over prompt engineering a base model? I imagine with the finetunes you have to worry about self-hosting, model utilization, and then also retraining the model as new base models come out. I'm curious under what circumstances you've found that the benefits outweigh the downsides.

finetuning rarely makes sense unless you are an enterprise and even generally doesn't in most cases there either.

Re: My 2.5 year old laptop can write Space Invaders in JavaScript now (GLM-4.5 Air)

#242
post #221

Earlier quoted context omitted.

I think LLMs are adapting higher level concepts. For example, the following JavaScript code generated by GLM ( https://github.com/simonw/tools/blob/9e04fd9895fae1aa9ac78b8... ) is clearly inspired by this C++ code ( https://github.com/portapack-mayhem/mayhem-firmware/blob/28e... ), but it is not an exact copy.

This is a really good spot. That code certainly looks similar, but I have trouble imagining how else you would implement very basic collision detection between a projectile and a player object in a game of this nature.

A human would likely have refactored the two collision checks between bullet/enemy and enemyBullet/player in the JavaScript code into its own function, perhaps something like "areRectanglesOverlapping". The C++ code only does one collision check like that, so it has not been refactored there, but as a human, I certainly would not want to write that twice.

More importantly, it is not just the collision check that is similar. Almost the entire sequence of operations is identical on a higher level:

    1. enemyBullet/player collision check
    2. same comment "// Player hit!" (this is how I found the code)
    3. remove enemy bullet from array
    4. decrement lives
    5. update lives UI
    6. (createParticle only exists in JS code)
    7. if lives are 

Re: My 2.5 year old laptop can write Space Invaders in JavaScript now (GLM-4.5 Air)

#244

Earlier quoted context omitted.

Last time somebody asked for a "premium camera app for iOS", and the model (re)generated Halide. Models don't emit something they don't know. They remix and rewrite what they know. There's no invention, just recall...

This doesn't make sense thermodynamically because models are far smaller than the training data they purport to hold and recall, so there must be some level of "understanding" going on. Whether that's the same as human understanding is a different matter.

It’s a lossy text compression technique. It’s clever applied statistics. Basically an advanced association rules algorithm which has been around for decades but modified to consider order and relative positions.

There is no understanding, regardless of the wants of all the capital investors in this domain.

Re: My 2.5 year old laptop can write Space Invaders in JavaScript now (GLM-4.5 Air)

#245
post #94
post #10

I appreciate you sharing both the chat log and the full source code. I would be interested to see a followup post on how adding moderately-sized features like High Score go. Also, IANAL but Space Invaders is owned IP. I have no idea the legality of a blog post describing steps to create and releasing an existing game, but I've seen headlines on HN of engs in trouble for things I would not expect to be problematic. Ma…

It doesn't infringe any kind of intellectual property. This isn't copyright infringement; it isn't based on the original assembly code or artwork. A game concept can't be copyrighted. Even if one of SI's game mechanics were patented, it would have long expired. Trade secret doesn't apply in this situation. That leaves trademark. No reasonable person would be confused whether Simon is trying to pass this creation off…

> No reasonable person would be confused whether Simon is trying to pass this creation off as a genuine Space Invaders product.

There may be no reasonable confusion, but trademark holders also have to protect against dilution of their brand, if they want to retain their trademark. With use like this, people might come to think of Space Invaders as a generic term for all games of this type, not the brand of a specific game.

(there is a strong case to be made that they already do, granted)

Re: My 2.5 year old laptop can write Space Invaders in JavaScript now (GLM-4.5 Air)

#247
post #91

Earlier quoted context omitted.

Yesterday I used ffmpeg to extract the frame at the 13 second mark of a video out as a JPEG. If I didn't have an LLM to figure that out for me I wouldn't have done it at all.

It is nice to use LLMs to generate ffmpeg commands, because those can be pretty tricky, but really, you wouldn't have just used the man page before? That explains a lot about Django that the author is allergic to man pages lol

I remember when I was a kid, people asking a teacher how to spell a word, and the answer was generally "look it up in a dictionary"… which you can only do if you already have shortlist of possible spellings.

*nix man pages are the same: if you already know which tool can solve your problem, they're easy to use. But you have to already have a shortlist of tools that can solve your problem, before you even know which man pages to read.

Re: My 2.5 year old laptop can write Space Invaders in JavaScript now (GLM-4.5 Air)

#248
post #227

This raises an interesting question I’ve seen occasionally addressed in science fiction before: Could today’s consumer hardware run a future superintelligence (or, as a weaker hypothesis, at least contain some lower-level agent that can bootstrap something on other hardware via networking or hyperpersuasion) if the binary dropped out of a wormhole?

This is what I find fascinating. What hidden capabilities exist, and how far could it be exploited? Especially on exotic or novel hardware.

I think much of our progress is limited by the capacity of the human brain, and we mostly proceed via abstraction which allows people to focus on narrow slices. That abstraction has a cost, sometimes a high one, and it’s interesting to think about what the full potential could be without those limitations.

Re: My 2.5 year old laptop can write Space Invaders in JavaScript now (GLM-4.5 Air)

#249
post #229
post #225

Earlier quoted context omitted.

I'd hope most professional software engineers could do this in an afternoon or so?

Most professional software engineers have never written a game and don't do web work, so I somehow doubt that.

With TCL/TK it's a matter of less than 2 hours.

Re: My 2.5 year old laptop can write Space Invaders in JavaScript now (GLM-4.5 Air)

#250

Earlier quoted context omitted.

That says more about suboptimal design on ffmpeg's part than it does about the LLM. Most humans can't deal with ffmpeg command lines, so it's not surprising that the LLM misses a few tricks.

Had a LLM generate 3 lines of working C++ code that was "only" one order of magnitude slower than what i edited the code to in 10 minutes. If you're happy with results like that, sure, LLMs miss "a few tricks"...

You don't have to leave LLM code alone, it's fine to change it — unless, I guess, you're doing some kind of LLM vibe-code-golfing?

But this does remind me of a previous co-worker. Wrote something to convert from a custom data store to a database, his version took 20 minutes on some inputs. Swore it couldn't possibly be improved. Obviously ridiculous because it didn't take 20 minutes to load from the old data store, nor to load from the new database. Over the next few hours of looking at very mediocre code, I realised it was doing an unnecessary O(n^2) check, confirmed with the CTO it wasn't business-critical, got rid of it, and the same conversion on the same data ran in something like 200ms.

Over a decade before LLMs.

Post reply on HN