Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

If you think that's cool, look at Daeken's Magister: http://demoseen.com/windowpane/magister.png.html

A PNG that's interpreted as HTML and loads itself as compressed JavaScript!



Note: Chrome or Firefox with WebGL required. I also wrote an article on how I got this down to 1kb, http://daeken.com/superpacking-js-demos , and just released a new demo based on the same techniques (747 bytes): http://demoseen.com/windowpane/nufl0wer.png.html


Holy Fuck.... that looked really cool as it brought my whole system to a dead stop. Took forever to recover enough to close the tab. :/


Really? I see no slowdown whatsoever. What are you running?


It didn't die this last time so I must have just had a perfect storm of activity right at that moment.


Yeah it locks up Chrome for me, pressing Ctrl+w closed the tab after about 10 seconds. Chrome 20 on Ubuntu 12.04 x86_64. Core 2 Duo with Intel graphics.


It did fine for me on Chrome 20, Arch 64bit. Also a dual core, but nVidia graphics. Maybe the intel graphics drivers are being weird?


works fine on Win7 32bit + opera 12


I started zooming out and my graphics driver crashed which is quite a rare a occurrence these days.


Works perfectly here, in both "in browser" as well as "totally blowing my mind" mode. Kudos, sir.



Matraka is seriously worth a watch. All 2d canvas, and it actually has music in a 1k. What's funny is that p01 is the reason I got into web demo development, and he's actually using the png technique I came up with. Makes me proud to be a hacker.

Edit: It also won a much-deserved first place in the DemoJS 1k compo.


Wait, is it using the image data as code to evaluate? My mind is too blown to appreciate this.

EDIT: Oh, okay. It's not a valid PNG. That would have been all sorts of incredible. Still great, though.


I wrote up a little explanation of how it works here https://gist.github.com/3039247


Very interesting, thanks!

By the way, the for loop seems to be irrelevant to the invocation, (1,eval) just returns eval. (1,console.log)("hi") looks like it should work, except it raises an error. (1,2)+3 returns 5, however, and (1,console.log) returns the log function.


it's a performance thing. i forgot the details, but if you change the `(1,eval)` to `eval`, it's all much slower. something with the scope of the code that's being eval'ed, if i recall correctly.


(1,eval)('2*2') evaluates in the global context, so it may be slower I would think. Here's a really long and insanely detailed post about this odd feature: http://perfectionkills.com/global-eval-what-are-the-options/


Trying to right click and save page as in Chrome crashes OS 10.7.4 for me. Pretty cool stuff.


WATCH IT. This file hard-froze my machine (osx/chrome) and I now have to rebuild my dev environment.


How does a hard freeze force you to rebuild your dev env?


Someone doesn't use dotfiles, I'm guessing.


it's god punishing you for F5'ing HN when you should be working.


totally displays binary on iOS Safari.


froze browser for a minute, alerted of unresponsive script and printed some binary




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: