Slashdot Mirror


2004 IOCCC Winners Source Code Released

Langly writes "The IOCCC have finally released their source code for 2004. My thoughts goes out to the poor guys that actually wrote this code. Reader discretion is advised." Every time I see an obfuscated code contest, I wonder if 'Winner' is the right word to describe the victor ;)

11 of 175 comments (clear)

  1. ouch by mpost4 · · Score: 3, Interesting

    I would hate to have to be the one that either updates that code or has to read it. Some nice ASCII art in there, I am not brave enough to test to see if the programs do what they say they do. I went to the spoiler page so I could get the synopsis of them. That code would be a good Halloween costume it is just scary.

  2. More C-related sillyness by cjellibebi · · Score: 2, Interesting

    Slightly offtopic, but this will serve the needs of those of us reading this thread for a fix of C-related humour. The Infrequently asked questions in C (C-IAQ).

  3. clueless submitters by jbellis · · Score: 3, Interesting

    I wish the submitters for these things understood that 90% of the obfuscation is done post-debugging with perl scripts... (The remaining 10% is the clever part.)

    1. Re:clueless submitters by willisachimp · · Score: 5, Interesting
      Actually, I work with the guy who wrote the 'gavin' (the best of show this year), and know for a fact that the final version you see is *very* similar to his development version. Pretty much the only difference is shorter, meaningless variable names and running it through indent (thus giving no information in the indentation, by using a standard indentation tool)

      What you see is how he wrote it - he really is that sick :-D

      I'm so glad he doesn't write like this when he's working. Well, not often, anyway.

  4. Re:frist? by quigonn · · Score: 2, Interesting

    gcc -std=c99 -o frist_prost frist_prost.c works perfectly without warning. By default, gcc still interprets the code as C89.

    --
    A monkey is doing the real work for me.
  5. Re:Great article summaries lately... by Scarblac · · Score: 4, Interesting

    And best of all, that ridiculous code is REALLY AMAZINGLY POWERFUL in many cases.

    I only looked at the first entry, anonymous.c. It's 47 utterly incomprehensible lines. What it does is convert text into one of Tolkien's Elvish fonts - and the result looks rather nice, for such a tiny C program (that doesn't use any libraries apart from stdlib, stdio and string).

    I took the example from the hint file, pasted only the first half ("ash nazg durhbatuluhk, ash nazg gimbatul") and created a picture, then converted it to PNG with ImageMagick. The result is here. I think that's rather good.

    And that's just the first one of this year. Many of the entries of earlier years were stunning.

    --
    I believe posters are recognized by their sig. So I made one.
  6. Re:Simple trick for beginners by mopslik · · Score: 5, Interesting
    Bah, why use "A" and "B" when "I" (capital i) will do the trick even better?

    Examples:
    I1I1 (eye one eye one)
    IlIl (eye ell eye ell)
    lIll (ell eye ell ell)
    etc.
  7. Size does matter! by mwvdlee · · Score: 5, Interesting

    Why not just differentiate by varying the length of the names?

    xxxxxxxxxxxxxx = xxxxxxxxxxxx + xxxxxxxxxxxxxxxxxxxxx / xxxxxxxxxxxxxxxx;

    Makes sense, doesn't it? And it works with every letter of the alphabet too!

    --
    Slashdot social media options: AIM, ICQ, Yahoo, Jabber and Mobile Text. Why no MySpace?
  8. Centrinia by Ann+Coulter · · Score: 2, Interesting
    Centrinia has a base library that is written in C. Since C does not have namespace features, I did the next "best" thing: explicitly have the entire namespace in each global identifier. Take a look at my web site at http://www.student.gsu.edu/~zliu2/centrinia.html to see my rationel. An example of my natural number routine name is
    centrinia___base___N___large___arithmetic___multip lication
    (without the space(s)). Again, the rationel for this is on the web site.
  9. A tutorial by Smallest · · Score: 2, Interesting
    --
    I have discovered a truly remarkable proof which this margin is too small to contain.
  10. Re: #define tricks are usless for obfuscation by Anonymous Coward · · Score: 1, Interesting
    step 1: cpp -E -nostdinc unreadable.c | grep -v '^#' | indent > readable.c
    step 2: ?
    step 3: profit!

    This method also works on lame tricks like:
    a;bunch;of;stuff;x\
    x = 3;