Join 3,557 readers in helping fund MetaFilter (Hide)


What is this post's title?
April 30, 2010 7:01 PM   Subscribe

This is a zip file, the contents of which is the zip file you started with. An explanation of how one would create such a thing appears here.
posted by Obscure Reference (66 comments total) 55 users marked this as a favorite

 
Nice! Sort of an Ouroboros file, only the opposite. Which is the same thing.
posted by Mister_A at 7:03 PM on April 30, 2010 [1 favorite]


Warning: "This" is a download. A four dimensional mindfsck of a download.
posted by mccarty.tim at 7:05 PM on April 30, 2010 [1 favorite]


dawg
posted by chaff at 7:08 PM on April 30, 2010 [5 favorites]


This is like when the Tardis landed inside the Tardis?
posted by Artw at 7:09 PM on April 30, 2010 [12 favorites]


My mind hasn't been this blown by compression since I saw that chan where they embedded .rars in .jpgs, and not via JPEG steganography. You renamed the JPEG to .RAR, and... magic.
posted by mccarty.tim at 7:10 PM on April 30, 2010 [1 favorite]


Whoa.
posted by DU at 7:13 PM on April 30, 2010


Sweet. Laughing to myself. It would be cool if after you clicked on it for 42 times, then all of a sudden the .zip archive would reveal that it included this:
posted by Ike_Arumba at 7:14 PM on April 30, 2010


That stuff is way over my head, but, regardless, I like that it led me to this photo of an 'urban crop circle'.
posted by mannequito at 7:17 PM on April 30, 2010 [6 favorites]


Finally an easy way to get a bunch of .zip files!
posted by fuq at 7:17 PM on April 30, 2010 [3 favorites]


Mister_A: "Nice! Sort of an Ouroboros file, only the opposite. Which is the same thing."

Bulemic Ouroboros. Nice.

(this is very cool)
posted by Cat Pie Hurts at 7:17 PM on April 30, 2010


A bag full of meth and a self-reproducing zip file? My Friday night's taken care of.
posted by gman at 7:20 PM on April 30, 2010 [9 favorites]


In heaven, there are burritos like this.
posted by Mister_A at 7:24 PM on April 30, 2010 [12 favorites]


David Madore's quine page is an excellent resource.
posted by kenko at 7:27 PM on April 30, 2010 [1 favorite]


is not a quine
posted by sanko at 7:30 PM on April 30, 2010 [2 favorites]


Is this like natural logs and e and stuff? This is like natural logs and e and stuff.
posted by spikeleemajortomdickandharryconnickjrmints at 7:33 PM on April 30, 2010


mccarty.tim: "My mind hasn't been this blown by compression since I saw that chan where they embedded .rars in .jpgs, and not via JPEG steganography. You renamed the JPEG to .RAR, and... magic."

The trick there is not much of one: the program displaying the jpeg just ignores the last part of the file, because of the jpeg spec, and the RAR error correction ignores the jpeg at the beginning. All you need to do is tack the contents of a .RAR on the end of a jpeg - it is the computer equivalent of hiding a comic book inside your textbook in highschool.

The OP's trick is actually much more interesting, and is a nice display of puzzle solving.
posted by idiopath at 7:34 PM on April 30, 2010 [3 favorites]


One software package that did this is SpinRite 6. Apart from being a really decent (if slow) drive recovery utility, it also has the following behavior:

1. If you run the executable in Windows, it gives you the option of creating a bootable ISO for drive recovery.
2. If you mount the drive in windows, and run the executable on the disc either from the disc, or from a directory, it gives you the option of creating an ISO

Wrinse, repeat.
posted by clarknova at 7:35 PM on April 30, 2010


This is quite Hasselhoffian.
posted by iconomy at 7:40 PM on April 30, 2010 [2 favorites]


Ike_Arumba : It would be cool if after you clicked on it for 42 times, then all of a sudden the .zip archive would reveal that it included this

If you really want, give me an email addy and I'll send you such a file.

But that "problem" has a pretty trivial solution, which you can probably figure out faster than I could email such a file to you. :)
posted by pla at 7:45 PM on April 30, 2010


tell us!
posted by East Manitoba Regional Junior Kabaddi Champion '94 at 7:46 PM on April 30, 2010


1. You have a picture of Douglas Adams
2. Put it it a zip file
3. Put the zip file in a zip file
4. Goto step 3... repeat 41 times
posted by LogicalDash at 7:50 PM on April 30, 2010 [1 favorite]


tell us!

Take that file, zip it, then zip the resulting file, etc.

That strategy won't work if you want a zip file that results in itself no matter how often the result is decompressed.
posted by kenko at 7:51 PM on April 30, 2010


Clever file -> zip -> zip -> zip ... -> 42-level-deep.zip
posted by zippy at 7:51 PM on April 30, 2010


Which came first though? The zip file or the stuff inside the zip file?

Man, I am trippin' just thinking about that.....whoa. Heavy.
posted by Skygazer at 7:58 PM on April 30, 2010 [3 favorites]


This is great.
posted by equalpants at 8:04 PM on April 30, 2010


This one wouldn't even have to be faked 42 levels deep to fool me. I tried it four times and was convinced (mainly because the explanation page was so technical sounding I couldn't help but trust it). But it could just as easily be a hoax. I'm not going to extract it enough times to find out though.
posted by The Winsome Parker Lewis at 8:06 PM on April 30, 2010


That zip file is the embodiment of the all....infinity +1. The great unified theory of creation and endless creation.

That zip file is....

God.

WTF?

God is a zip file named r.zip?

And if I delete this infinite zip file ever creating and destroying itself unto new creation, do I not delete a whole universe? Do I not become God myself and therefore remain forever alone in the universe without God? Because I put God in my recycle folder....




AHHHHHHH.....,,,,,Okay, enough of this you fuckers....
posted by Skygazer at 8:07 PM on April 30, 2010 [4 favorites]


The Winsome Parker Lewis : But it could just as easily be a hoax. I'm not going to extract it enough times to find out though.

You can irrefutably "prove" it with just one extraction - Which results in a file identical to the original.

If the same, "turtles all the way down".
posted by pla at 8:09 PM on April 30, 2010 [2 favorites]


I study recursion (and corecursion) as part of my research, so to see something like this is beyond awesome.
posted by ErWenn at 8:16 PM on April 30, 2010


:-/
posted by carter at 8:16 PM on April 30, 2010


seriously stop fucking with me
posted by Astro Zombie at 8:21 PM on April 30, 2010 [1 favorite]


In order for recursion to take place, you have to curse whatever it is first...


yeah, I know. I'll stop.
posted by drhydro at 8:21 PM on April 30, 2010


Ok, that's weird. I clicked on the download link, Safari tried to download it and then tried to extract it automatically. Which isn't weird (I guess) except that it seemed to hang. It just kept ticking over and 'extracting'.

So I get bored of waiting and delete it. Then I look at my (previously empty) recycle bin, which has 5,315 little files in it, all of a sudden. 6.5GB of little zip files and folders and zip files and folders and zip files and folders and zip files and folders.

5 thousand of the fuckers. I have no idea if that is good or bad. What I DO know, is that I scrolled through them all and THERE IS NOT ONE FUCKING TURTLE.

Someone needs to sort this the fuck out. I want my turtle.
posted by Brockles at 8:39 PM on April 30, 2010 [44 favorites]


The fascinating thing about making quines is that not only are quines recursive in that they reproduce themselves, but the best method for producing quines is a recursive method.

Since there are more non-programmers here than programmers, I think that a self describing phrase may be an analogous way to demonstrate how cool this is.

A neat trick for making arbitrary self describing statements (as Hofstadter mentions in Gödel, Escher, Bach):

This sentence has one hundred vowels. => false, eleven
This sentence has eleven vowels. => false, ten
This sentence has ten vowels. => false, eight
This sentence has eight vowels. => false, nine
This sentence has nine vowels. => true, nine

This sentence has one thousand consonants. => false, twenty-three
This sentence has twenty-three consonants. => false, twenty-four
This sentence has twenty-four consonants. => false, twenty-three
(infinite recursion, after many tries I find no stable solution for this construction with various starting values)

This sentence contains twenty-five consonants. => false, twenty-six
This sentence contains twenty-six consonants. => true, twenty-six
(also)
This sentence contains twenty-seven consonants. => true, twenty-seven
posted by idiopath at 9:11 PM on April 30, 2010 [4 favorites]


I wonder if any major virus scanning software scans zips inside of zips and doesn't set a depth limit.
posted by burnmp3s at 9:12 PM on April 30, 2010 [3 favorites]


Skygazer: "That zip file is the embodiment of the all....infinity +1. The great unified theory of creation and endless creation."

Before I learned to program I thought that infinity was a mystical property representing god and the transcendence of material reality. While learning to program I figured out that infinity is actually often an error in reasoning or a cool trick kind of like writing a sestina.
posted by idiopath at 9:13 PM on April 30, 2010 [4 favorites]


Brockles: "THERE IS NOT ONE FUCKING TURTLE."

A sad tale, please accept this with my sympathies and condolences for your trouble .
posted by idiopath at 9:19 PM on April 30, 2010 [1 favorite]


When I was five or six, the bathroom in my house had one long mirror with two short mirrors perpendicular to it connected at either end. Looking into either of the short mirrors (which were thus parallel and facing each other) produced a recursion very similar to the video monitor effect, which I distinctly recall from a cover photo on one of my dad's old videojournalism magazines. The effect fascinated me to no end.

Also, though it got some mention a few days ago, the video monitor recursion is most famously utilized in Bohemian Rhapsody.
posted by l33tpolicywonk at 9:21 PM on April 30, 2010


MetaFilter: Someone needs to sort this the fuck out. I want my turtle.
posted by mannequito at 9:27 PM on April 30, 2010 [2 favorites]


This comment has one hundred favorites. => false, FAVORITE IT NOW
posted by sanko at 9:27 PM on April 30, 2010 [7 favorites]


It should be possible to likewise build a zip file which decompressed results in two copies of the original.
posted by Pyry at 9:30 PM on April 30, 2010


Did I tell you about the time I zipped a silent 60-second wav file, then zipped the zip and it got smaller?

I guess I just did.
posted by NortonDC at 9:42 PM on April 30, 2010


(dammit..42 comments..sorry)

COUNT=0; while [ $COUNT -lt 42 ]; do unzip r.zip; cd r; let COUNT=$COUNT+1; done
posted by Cat Pie Hurts at 9:51 PM on April 30, 2010


WOW!

And I thought I had a lot of free time!
posted by HTuttle at 10:28 PM on April 30, 2010


Did I tell you about the time I zipped a silent 60-second wav file, then zipped the zip and it got smaller?

This isn't actually surprising. Let's say you have a file that consist of one million zeroes which you "compress" like this:

0[repeat last character 1000 times]0[repeat last character 1000 times]0[repeat last character 1000 times]....

It got significantly shorter, but if you repeat the same process you can get:

0[repeat last character 1000 times][repeat last action 1000 times]

And voila! Double-compressing has made the file even smaller!
posted by ymgve at 10:32 PM on April 30, 2010


Oh man, this is nice. I love self-similarity. And kenko is right, David Madore's quine page is great stuff.

I did a little experiment in creating self-similar histograms a few years ago; it's not nearly as pure a concept as this zip wonder, but it was pretty neat. I always meant to get back to that to try and spruce it up some but it fell by the wayside.
posted by cortex at 11:19 PM on April 30, 2010 [2 favorites]


I can see how this would be useful.
posted by turgid dahlia at 11:27 PM on April 30, 2010 [1 favorite]


Speaking of creative uses of free time, I once followed the esoteric programming languages list serve where people were sharing inventions like befunge, brainfuck, unlambda, malbolge, rube, whitespace, mousetrap and shakespeare. The general pattern was that someone would announce the language and share an implementation (usually written in perl), if it did not come with example implementations of hello world and 99 bottles then eventually someone else would post those examples, then after some period of time after that someone would introduce a quine.

The notable exception to the pattern was malbolge. Hello world was eventually implemented by a program that tried to compile various strings, walking the tree of possible ascii sequences until one of them eventually produced the correct output. It took nearly a decade before anyone implemented 99 bottles. Someone else eventually implemented a version of cat. As far as I know those are all the non-crashing programs ever written in malbolge, and I seriously doubt a quine is even possible.

Of course all of these languages are completely useless for programming in. And quines are by definition useless programs. But understanding how they worked and how they were implemented was a great introduction to programming language theory and compiler design, and for me at least as an amateur programmer they sparked the major breakthrough in going from cargo cult programming to understanding what the hell my code was doing.
posted by idiopath at 12:44 AM on May 1, 2010 [3 favorites]


That #!/bin/cat thing in the PS is adorable.
posted by nebulawindphone at 1:33 AM on May 1, 2010 [2 favorites]


In a similar vein, zip files can be created that expand to truly hilarious sizes. A 1k file unzipping to many gigs of zeros. Upload to computer system with automated virus checking system and laugh/profit as whatever disk they were using fills up. Not so effective anymore as it was (rumored to be anyway) against BBSen before disk was cheap.
posted by Skorgu at 3:57 AM on May 1, 2010


I believe 'God is a zip file' is the title of a new song by Laurie Anderson.
posted by askmehow at 5:54 AM on May 1, 2010 [2 favorites]


I wonder if any major virus scanning software scans zips inside of zips and doesn't set a depth limit.

I'm sure mcafee does....figuring they have no qualms zapping svchost.exe on false positives...
posted by samsara at 7:13 AM on May 1, 2010


idiopath: As far as I know those are all the non-crashing programs ever written in malbolge, and I seriously doubt a quine is even possible.

I don't think you really believe that. You just want to see one written, and you're trying reverse psychology. Of course, Wikipedia tells me that Malbodge is not Turing complete due to "memory limits", so it is technically possible that quines cannot be written in Malbodge. Of course, now there exist at least two variants of Malbodge that are Turing complete, and therefore a quine must exist in one of those variants.
posted by ErWenn at 7:49 AM on May 1, 2010


ErWenn:

Given the amount of time the search algorithm had to run in order to find a valid hello world, and the fact that humans don't write programs in malbolge so much as write programs that solve the problem of constructing a program in malbolge using cryptoanalysis, I may have overstated my case. It could be that with a good genetic algorithm and a few years of supercomputing time someone may someday make a quine in malbolge. But I am sure they will not understand the resulting code at all.
posted by idiopath at 7:59 AM on May 1, 2010


I think that the fascination with malbolge may be a kind of nostalgia - as a programmer trying to understand malbolge reminds me of the utter failure of cognition when I first tried to understand the concept of programming in a sane language (and I would count brainfuck, befunge etc. as sane but eccentric languages, while intercal is harmlessly insane and malbolge is sociopathic and psychotic).
posted by idiopath at 8:04 AM on May 1, 2010


Another example of a file decompressing to itself.
posted by Bangaioh at 10:06 AM on May 1, 2010


I've composed a quine in whitespace:
posted by empath at 10:45 AM on May 1, 2010


empath: that is also a quine in perl and tcl and php and sh and almost every variety of lisp and pretty much every forgiving language. It is called the "degenerate quine".
posted by idiopath at 11:28 AM on May 1, 2010


Someone needs to sort this the fuck out. I want my turtle.

You didn't get to the bottom, obviously.
posted by Evilspork at 11:42 AM on May 1, 2010


What if we were the turtles the whole time?
posted by mccarty.tim at 12:15 PM on May 1, 2010 [1 favorite]


Also, these files can be designed to expand into much larger files than the original file and are often known as zip bombs. When software automatically unzips files these can be used maliciously to crash servers due to lack of disk space. And yes, antivirus definitely should catch these, and the wiki article says that they can even be used to disable antivirus

Somewhat similar to these is the billion laughs attack through specially designed XML files. In this attack nested definitions of entities (a common example of an entity is &nsbp; a non breaking space) expand to a very long string of text.

Recursion and nested files are scary.
posted by bburky at 4:13 PM on May 1, 2010


And quines are by definition useless programs.

DNA is a quine and while the output of mine hasn't been USEFUL exactly, I've found it diverting.
posted by DU at 6:51 AM on May 3, 2010 [1 favorite]


It is called the "degenerate quine".

I described the self-printing program problem to my 11 year old nerd-in-training. His immediate (hypothetical) solution was to write a program that mimicked the output of python telling you about a syntax error. I don't know if he ever got that working...
posted by DU at 7:10 AM on May 3, 2010


My mind hasn't been this blown by compression since I saw that chan where they embedded .rars in .jpgs, and not via JPEG steganography. You renamed the JPEG to .RAR, and... magic.

Peek beneath the magician's hat - it's a fairly easy trick, and apparently you can do it with other image formats and compressed files.
posted by filthy light thief at 10:07 AM on May 5, 2010 [1 favorite]


DSP quine: how to construct a signal that is its own DFT.
posted by idiopath at 2:16 PM on May 11, 2010


Err... forgot the link.
posted by idiopath at 2:17 PM on May 11, 2010


« Older China Miéville has won his third Arthur C Clarke a...  |  Pan Am’s Helvetica dreamtime. ... Newer »


This thread has been archived and is closed to new comments