ah hi! I made this! was wondering if this one would appeal to the HN crowd :)
Happy to answer any questions! And here are a couple of scattered thoughts:
* I'm really interested in what this looks like if you use animations (firefox supports animated favicons) - I could, for example, anticipate future ball positions and create animated SVGs to get a much nicer framerate.
* A friend pointed out offline that canvas rasterization (typically) is on the GPU, which is probably why my performance intuitions with my stuttering animation were so wrong
* I am only moderately confident that chrome caps favicon updates to 4 a second; I know there are a lot of different ways to update favicons and I could have missed something here!
As one ridiculous-pong writer to another, I love your work. I really enjoy this kind of technical performance art, both to write and to view. It may also be part of why I juggle: "There must be a harder way to do this."
> A friend pointed out offline that canvas rasterization (typically) is on the GPU, which is probably why my performance intuitions with my stuttering animation were so wrong
Did you solve it? A great resource is Jake Gordon's blog on simple JavaScript game design. He uses a double buffer front and back canvas game loop.
Sorry yeah I'm talking very specifically about the stuttering that I first saw when making a square move into the tab bar.
I was doing something inefficient (updating all my favicons many times a second), but I didn't really understand why that would cause stuttering in my foregrounded tab. My thought process was that the favicon stuff was happening in different tabs in different threads, and so it didn't make sense to me that the thread in charge of the foregrounded animation should suffer (unless my entire computer had slowed to a crawl and everything was getting slower - but it hadn't).
And my friend's point was just that i was probably GPU-bound and not CPU-bound (or at least I could be) and so I was not thinking about the original problem correctly.
I attended Nolen's recent talk at Recurse, and these absolutely mad but fundamentally funny and cool games as one-shots are so delightful.
It reminds me of the older internet, when people would make things just to be silly and have fun. I had some fun last night inspired by some of the stuff he has been posting making a very funny kind-of-quine that outputs its own source code of the page showing it, via BEAM decompilation and some other tricks. I wish I had the time to crank out things like this, and it makes me smile to know that there are people out there creating things in this manner that will just keep things interesting for all of us.
Love anything made by Nolen. To me it seems like he’s hitting the sweet spot of developing single purpose apps/sites that give me nostalgia for what the internet used to be like.
I definitely had his URL stuff in mind when making this, but it'd been a while since I had actually read through his blog / watched his video. It was really fun to come back to it mid-project and remember that he went in the same "stack windows to get 2 dimensions" direction.
* afaik I'm capped at 4 FPS (just how often you can update tabs)
* more of the screen is likely to update on each frame, which requires way more "turning canvases into data urls to update favicons," which is expensive with my current implementation (although I wasn't aware of offscreencanvas, which might help here)
The band "Ok Go" did a collaboration music video with google chrome once that had some really amazing synchronization of browser windows with dancers, and kaleidoscope like effects... This reminded me of that.
ah hi! I made this! was wondering if this one would appeal to the HN crowd :)
Happy to answer any questions! And here are a couple of scattered thoughts:
As one ridiculous-pong writer to another, I love your work. I really enjoy this kind of technical performance art, both to write and to view. It may also be part of why I juggle: "There must be a harder way to do this."
what’s your pong game? would love to see it
I was curious too, I guess it must be this one.
https://news.ycombinator.com/item?id=19155205
> A friend pointed out offline that canvas rasterization (typically) is on the GPU, which is probably why my performance intuitions with my stuttering animation were so wrong
Did you solve it? A great resource is Jake Gordon's blog on simple JavaScript game design. He uses a double buffer front and back canvas game loop.
[0] https://jakesgordon.com/writing/javascript-pong/part1/
Sorry yeah I'm talking very specifically about the stuttering that I first saw when making a square move into the tab bar.
I was doing something inefficient (updating all my favicons many times a second), but I didn't really understand why that would cause stuttering in my foregrounded tab. My thought process was that the favicon stuff was happening in different tabs in different threads, and so it didn't make sense to me that the thread in charge of the foregrounded animation should suffer (unless my entire computer had slowed to a crawl and everything was getting slower - but it hadn't).
And my friend's point was just that i was probably GPU-bound and not CPU-bound (or at least I could be) and so I was not thinking about the original problem correctly.
Love it and man your output velocity is something else!
This, the global cap locks, the bad apple regex, the uuids, and more all since the 1 million checkboxes. I'm impressed with your hustle.
ah thanks adam! fun to see you here :)
Now I want to see Doom in browser tabs.
[dead]
I attended Nolen's recent talk at Recurse, and these absolutely mad but fundamentally funny and cool games as one-shots are so delightful.
It reminds me of the older internet, when people would make things just to be silly and have fun. I had some fun last night inspired by some of the stuff he has been posting making a very funny kind-of-quine that outputs its own source code of the page showing it, via BEAM decompilation and some other tricks. I wish I had the time to crank out things like this, and it makes me smile to know that there are people out there creating things in this manner that will just keep things interesting for all of us.
The piece that gets the sort-of quine is here, if anyone wants a laugh https://github.com/notactuallytreyanastasio/blog/blob/main/l...
Love anything made by Nolen. To me it seems like he’s hitting the sweet spot of developing single purpose apps/sites that give me nostalgia for what the internet used to be like.
A similar exploration by Matthew Rayfield using the URL bar instead of tab favicons: https://www.youtube.com/watch?v=q7GtCLwTmV4
Matt's work is a huge inspiration for me!
I definitely had his URL stuff in mind when making this, but it'd been a while since I had actually read through his blog / watched his video. It was really fun to come back to it mid-project and remember that he went in the same "stack windows to get 2 dimensions" direction.
Reminds me of:
* "Show HN: I saw this mind-blowing experiment, so I made a simple version of it" (25.11.2023) https://news.ycombinator.com/item?id=38413660
* "Synchronize a 3D scene across multiple windows using Three.js and localStorage" (27.11.2023) https://news.ycombinator.com/item?id=38437773
I'm calling it - Doom is next.
Doom is kind of a pain because:
To be fair, doom is also a pain on a calculator[0]/pregnancy test[1]/milling machine[2]/touch bar[3]/PDF document[4]! I think that's part of the fun!
I absolutely love this stuff... I sort of think Doom at 4FPS is... juuuuust in the realm of playable if you've played it before haha
[0] https://news.ycombinator.com/item?id=2251463
[1] https://news.ycombinator.com/item?id=24396780
[2] https://www.reddit.com/r/Doom/comments/ezuw1f/doom_on_cnc_ma...
[3] https://news.ycombinator.com/item?id=13008315
[4] https://news.ycombinator.com/item?id=42678754
I believe that Nolen has already done doom in iPhoto, if you are into that kind of thing.
Delightfully absurd, A+ effort!
The band "Ok Go" did a collaboration music video with google chrome once that had some really amazing synchronization of browser windows with dancers, and kaleidoscope like effects... This reminded me of that.
Here's what it looked like:
https://www.youtube.com/watch?v=ISL1GfXwr-o
I was introduced to Arcade Fire back in the day through a similar Chrome experiment:
https://www.youtube.com/watch?v=ReIwYj7BACM
Doom port in days.
really cool, I like how modifiable Chrome can be, looks like this one uses websockets but you can use an extension for tab communication too
Or just the web storage API
and a listener on the storage change then ?
impressive as always
Obligatory:
https://imgur.com/a/FcYpGz1
Checkboxes now tabs. Always finding a novel place to get those coveted pixels
now this is the kind of thing HN was made to showcase. excellent work friend ^.^
[flagged]