Slashdot Mirror


International Obfuscated C Code Tattoo

chongo writes "Some people eschew obfuscation while other live for it. Thomas Scovell has taken obfuscation to a completely new personal level by obtaining the very first International Obfuscated C Code Tattoo. We (the IOCCC Judges) are pleased that Thomas has honored the 1984 anonymous IOCCC winning entry by placing the source code on his arm: the very first IOCCC winner to receive this distinction. The anonymous winner (a person who known for various things on the Internet and has been programming in and associated with C for decades) feels honored by the tattoo as well."

14 of 56 comments (clear)

  1. Get a USB drive by AndroidCat · · Score: 2, Funny

    I doubt human beings will ever replace the floppy.

    --
    One line blog. I hear that they're called Twitters now.
  2. So... who was it? by keiferb · · Score: 4, Interesting

    The article reads like we're almost supposed to know who 'Anonymous' is... Kernighan? Ritchie?

    1. Re:So... who was it? by Anonymous Coward · · Score: 2, Funny

      Bill Gates

    2. Re:So... who was it? by Tumbleweed · · Score: 2, Funny

      That's some pretty nasty-looking code. Probably a Perl programmer. :)

    3. Re:So... who was it? by chongo · · Score: 2, Informative
      FYI: I asked the anonymous author a while back about Perl. They said:
      " Sometimes write in Perl when the wind is right. :-) (my smiley added) No seriously, Perl does have its place. I do use it for short scripting sometimes although in those years (back in 1984) it was sed, awk, grep and sh."
      --
      chongo (was here) /\oo/\
    4. Re:So... who was it? by aled · · Score: 3, Interesting

      He He... Larry Wall (Perl's creator) has at least two winning entries in the IOCCC. If you ever wondered why Perl is so ofuscated...

      --

      "I think this line is mostly filler"
  3. What I want to know is... by CommanderData · · Score: 3, Informative
    Could I be arrested for tattooing this on my arm:
    #!/usr/bin/perl -w
    # 531-byte qrpff-fast, Keith Winstein and Marc Horowitz <sipb-iap-dvd@mit.edu>
    # MPEG 2 PS VOB file on stdin -> descrambled output on stdout
    # arguments: title key bytes in least to most-significant order
    $_='while(read+STDIN,$_,2048){$a=29;$b=73;$ c=142;$t=255;@t=map{$_%16or$t^=$c^=(
    $m=(11,10,11 6,100,11,122,20,100)[$_/16%8])&110;$t^=(72,@z=(64, 72,$a^=12*($_%16
    -2?0:$m&17)),$b^=$_%64?12:0,@z)[ $_%8]}(16..271);if((@a=unx"C*",$_)[20]&48){$h
    =5; $_=unxb24,join"",@b=map{xB8,unxb8,chr($_^$a[--$h+8 4])}@ARGV;s/...$/1$&/;$
    d=unxV,xb25,$_;$e=256|(or d$b[4])<<9|ord$b[3];$d=$d>>8^($f=$t&($d>>12^$d>>4^
    $d^$d/8))<<17,$e=$e>>8^($t&($g=($q=$e>>14&7^$e)^ $q*8^$q<<6))<<9,$_=$t[$_]^
    (($h>>=8)+=$f+(~$g&$t) )for@a[128..$#a]}print+x"C*",@a}';s/x/pack+/g;eval
    I'd be a walking violation of the DMCA :)
    --
    Urge to post... fading... fading... RISING!... fading... fading... gone.
  4. Anonymous, Indeed. by Anonymous Coward · · Score: 3, Funny

    Alrighty, you've convinced me to reveal myself to the world.

    It was I that wrote that program, so many years ago!

  5. entry explained by voisine · · Score: 4, Informative

    int i;main(){for(;i["]i;++i){--i;}"];read('-'-'-',i+++ "hell\
    o, world!\n",'/'/'/'));}read(j,i,p){write(j/p+p,i---j ,i/i);}
    ==== add some whitespace ==========
    int i;
    main()
    {
    for (; i["]i;++i){--i;}"]; read('-' - '-', i++ + "hello, world!\n", '/' / '/'));
    }

    read(j, i, p)
    {
    write(j / p + p, i-- - j, i / i);
    }
    ===== and char subtraced from itself is 0, and char or pointer divided by itself is 1 =====
    int i;
    main()
    {
    for (; i["]i;++i){--i;}"]; read(0, i++ + "hello, world!\n", 1));
    }

    read(j, i, p)
    {
    write(j / p + p, i-- - j, 1);
    }
    ======= j is always 0, p is always 1, lets remove them ======
    int i;
    main()
    {
    for (; i["]i;++i){--i;}"]; read(i++ + "hello, world!\n"));
    }

    read(i)
    {
    write(0 / 1 + 1, i-- - 0, 1);
    }
    ======= 0 / 1 + 1 is 1, subtracting 0 does nothing, decrementing a local variable this is never used afterward also does nothing =======
    int i;
    main()
    {
    for (; i["]i;++i){--i;}"]; read(i++ + "hello, world!\n"));
    }

    read(i)
    {
    write(1, i, 1);
    }
    ======== replace read(i) with write(1, i, 1) =====
    int i;
    main()
    {
    for (; i["]i;++i){--i;}"]; write(1, i++ + "hello, world!\n", 1));
    }
    ====== i[n] can be rewritten *(i + n) or *(n + i) ======
    int i;
    main()
    {
    for (; *("]i;++i){--i;}" + i); write(1, "hello, world!\n" + i++, 1));
    }
    === as i gets incrimented, we dereference the next char of the string which is always non-zero till we hit the null terminator, all the matters is that the string is the same length as "hello, world!\n" =====
    int i;
    main()
    {
    for (; *("hello, world!\n" + i); write(1, "hello, world!\n" + i++, 1));
    }
    ===== so now we can see we incriment i, printing out the next character of hello world till we hit the null terminator ====

    1. Re:entry explained by voisine · · Score: 2, Informative

      global variables are initialized to zero, local stack variables are undefined

    2. Re:entry explained by voisine · · Score: 2, Informative

      Acording to my K&R book here (second edition which was updated long after 1984) static variables are initialied by default to 0, and it also states that variables defined outside of functions are implicitly static.

    3. Re:entry explained by Smallpond · · Score: 2, Insightful

      Global variables have to be initialized in a multiuser operating system. Otherwise you could allocate big arrays and scan through them for other people's data. The stack is (supposedly) less interesting.

    4. Re:entry explained by voisine · · Score: 2, Interesting

      hmmm... so is that done by the kernel then? Otherwise I could just modify gcc to not initialiaze globals couldn't I?

  6. He'll have regrets later when... by cruff · · Score: 2, Funny

    If he has a bad experience with C and switches to another language of choice. Can't have the other language asking about the C code tattooed on his arm. :-)