Slashdot Mirror


IOCCC Winners Announced

Arachn1d writes "The IOCCC has finally announced the winners of the 2004 contest.
With winners this year including a mini-OS and a ray-tracer, the submissions should be interesting indeed - if you can make sense of them. According to the page, the actual code for the winners should be up mid-october."

21 of 175 comments (clear)

  1. Obfuscation by BoldAC · · Score: 5, Informative

    For those who don't know what this is all about...

    It's all about how to obfuscate baby!

    1. Re:Obfuscation by Davak · · Score: 3, Informative
    2. Re:Obfuscation by h4rm0ny · · Score: 3, Informative


      How to obfuscate in copious detail.

      How to write unmaintainable code

      --

      Aide-toi, le Ciel t'aidera - Jeanne D'Arc.
  2. I can smell the smoke from here... by pedestrian+crossing · · Score: 4, Informative

    Since the summary isn't very informative, and the servers are rapidly slowing down, it is the International Obsfucated C Code Contest. About all that is (was?) on their page is the list of winners...

    --
    A house divided against itself cannot stand.
  3. Additional Mirror by pikine · · Score: 5, Informative

    us1 mirror and see Google cache for more.

    --
    I once had a signature.
  4. Site content by houghi · · Score: 5, Informative

    Not much. No source code yet. Here is the content of the site:

    Here are the names and categories for the winners of the 17th IOCCC. The source code has not been released yet. The winners have been notified by EMail. They will be given a chance to review the write-up of their entry. Once this process is complete the source code will be made available on the winning entries web page. We anticipate that this will be in mid-October.

    The winners are,

    * Best of Show

    Gavin Barraclough - Mini-OS
    Manchester, UK

    screenshot

    * Best One-Liner

    Eryk Kopczynski - OCR of 8, 9, 10 and 11
    Warszawa, Poland

    * Best Utility

    Don Yang - A CRC inserter
    Covina, California, USA

    * Best Non-Use of Curses

    Mark Schnitzius - Editor animation
    Singapore

    * Best X11 Game

    Daniel Vik - X Windows car racing game
    La Jolla, California, USA

    screenshot

    * Best use of "Precious" Lines

    Anonymous - Rendering of a stroked font
    Singapore

    screenshot

    * Best Abuse of CPP

    Daniel Vik - Calculates prime numbers using only CPP
    La Jolla, California, USA

    * Best Calculated Risk

    Brent Burley - A Poker game
    Burbank, California, USA

    * Best use of Vision

    Nick Johnson - Curses maze displayer/navigator with only line-of-sight visibility
    Christchurch, New Zealand

    * Best Font Engine

    Jeff Newbern - Renders arbitary bitmapped fonts
    Springwood, Queensland, Australia

    * Most Functional Output

    Jonathan Hoyle - Curses based polynomial graphing with auto-scale
    Ann Arbor, Michigan, USA

    * Best use of Light and Spheres

    Anders Gavare - A ray tracer
    Gothenburg, Sweden

    screenshot

    * Best Abuse of Indentation

    Stephen Sykes - Space/tab/linefeed steganography
    Helsinki, Finland

    * Best Abuse of the Guidelines

    Anthony Howe - A CGI capable HTTP server
    Cannes, France

    * Best Abuse of the Periodic Table

    John Dalbec - Conway's look'n'say sequence split into elements
    Canfield, Ohio, USA

    --
    Don't fight for your country, if your country does not fight for you.
  5. Mirrors by lachlan76 · · Score: 5, Informative

    Before it all goes down, here are the mirrors:

    Asia
    * http://www.tw.ioccc.org/ - Hsin-Chu, Taiwan (24 48' N 120 59' E)

    * Australia and other Pacific http://www.au.ioccc.org/ - Sydney, Australia (34 0' S 151 0' E)

    Europe
    * http://www.de.ioccc.org/ - Hamburg, Germany (53 33' N 10 2' E)
    * http://www.es.ioccc.org/ - Madrid, Spain (40 25' N 3 41' W)
    * http://www.gr.ioccc.org/ - Athens, Greece (38 00' N 23 44' E)
    * North America www0.us.ioccc.org - Sunnyvale California, US (37 22' N 122 02' W)
    * www1.us.ioccc.org - Saint Paul, Minnesota US (44 57' N 93 06' W)

  6. Re:Umm by Anonymous Coward · · Score: 1, Informative

    It's a very well known contest for obfuscated C code. You should already know that, though.

  7. Re:Time to turn in your geek card... by torpor · · Score: 2, Informative

    Not only that, I don't consider the ability to churn out unreadable code a good trait in a programmer. Nothing geeky about it, just sloppy.

    i consider the ability to at least appreciate unreadable code, and have a good time with it, for fun, just coz, to be a good trait in a programmer. and thats what this IOCC thing is. for fun.

    (thus you're fired! hand in your geekcard on the way out...)

    --
    ; -- the corruption of government starts with its secrets. a truly free people keep no secrets. --
  8. Re:Time to turn in your geek card... by UserGoogol · · Score: 3, Informative

    The IOCCC is a sort of piece of classic Hacker culture. That is to say, doing something difficult and mildly amusing just because you can. Also, to make fun of C for having such a ridiculous syntax as compared to sensible languages like Lisp. (Although by this day and age we've all grown up and seen Perl, so we don't care about that as much.)

    Anyway, this is not merely "bad code," in the sense that an idiot might program this stuff. This is the sort of code you can only attain when you actively aim for it. You really need to know the language well to know how to fuck with it so thoroughly.

    --
    "Never attribute to malice that which can be adequately explained by stupidity." -- Hanlon's Razor
  9. For those of you who don't want to wait... by jtnishi · · Score: 5, Informative
    For at least one of the entries (Don Yang's, who won the Best Utility category), the code is already up on the internet:

    http://uguu.org/src_rinia_c.html

    The only reason I can even remember where this entry would be is because he's the one a few years ago that won with that strange Saitou-Aku-Soku-Zan combination program. Yeah, I could find utilities to do what his code can do on many other places, but what better way to show your anime fandom & code fanaticism by running something like this instead. ^_^

  10. Re:Funny about that language by falsifian · · Score: 2, Informative

    Speed. How many programming-language benchmarks are there that don't find C to produce the fastest code, not counting assembly/machine code? For example, interpreted languagues like LISP are completely impractical for something like a raytracer, unless someone makes a miraculously good LISP compiler.

    Also, C is something of a standard language. At least on UNIX-style systems, programs written in any other language have to use some glue-code library to allow them to use standard libraries, system calls, etc. (C++ is close enough to C not to, but I've had a few frustrations with C++ symbols being named differently from C symbols.)

    Anyway, any language that allows you to do everything that C does also allows you to make the same mistakes. Yes, it's probably easier to make them in C than, say... *ducks* Pascal, but it's not an insurmountable problem.

    To be honest, I've never written a C program that required any security, but I hope this helps anyway.

    --
    Each language has its purpose, however humble. -- The Tao of Programming
  11. Re:Time to turn in your geek card... by MORTAR_COMBAT! · · Score: 2, Informative
    It was calculating leap-years. I actually stared at it in shock, imagining how much time and energy this kid spent figuring out the worlds most assinine way to figure out if it's leapyear. I would have just wrote "if (year%4 == 0) { days_in_feb=29; }" or something of the sort.

    determining a leap year is more than just having it be divisible evenly by 4: The Gregorian calendar adds an extra day to February, making it 29 days long, in years divisible by 4, excepting years divisible by 100, but including years divisible by 400. So 1996, 2000, and 2400 are leap years but 1899, 1900 and 2100 are not.

    So following the literal description, in Java one might write:
    int iDaysInFeb_ = ( 0 != iYear_ % 4 ) ? 28
    : ( 0 != iYear_ % 100 ) ? 29
    : ( 0 != iYear_ % 400 ) ? 28
    : 29;
    Probably there are better and more optimized paths than this... but hey, at least I checked to make sure it compiled and worked :)
    --
    MORTAR COMBAT!
  12. Re:Funny, but sickening by RPoet · · Score: 2, Informative

    Tail call elimination only reduces the amount of stack frames needed. Most of the overhead associated with function calls are still there. That said, recursion is a lot more natural in some types of languages, especially functional ones. And regardless of language, recursion can be much more intuitive and maintainable than imperative loops. Overhead isn't everything.

    --
    "Oppression and harassment is a small price to pay to live in the land of the free." -- Montgomery Burns.
  13. Re:Funny, but sickening by arcanumas · · Score: 3, Informative
    Yeah, i'm sure the guy who wrote this entry is a newbie... :)
    short main[] = {
    277, 04735, -4129, 25, 0, 477, 1019, 0xbef, 0, 12800,
    -113, 21119, 0x52d7, -1006, -7151, 0, 0x4bc, 020004,
    14880, 10541, 2056, 04010, 4548, 3044, -6716, 0x9,
    4407, 6, 5568, 1, -30460, 0, 0x9, 5570, 512, -30419,
    0x7e82, 0760, 6, 0, 4, 02400, 15, 0, 4, 1280, 4, 0,
    4, 0, 0, 0, 0x8, 0, 4, 0, ',', 0, 12, 0, 4, 0, '#',
    0, 020, 0, 4, 0, 30, 0, 026, 0, 0x6176, 120, 25712,
    'p', 072163, 'r', 29303, 29801, 'e'
    };

    Oh, here is the explanation.

    --
    Slashdot Sig. version 0.1alpha. Use at your own risk.
  14. Re:Funny, but sickening by MenTaLguY · · Score: 2, Informative

    Except a properly written recursive function, and a loop end up being exactly the same thing once compiled... Even with a C compiler

    The C standard doesn't guarantee optimization tail-recursion; and while gcc does it (to a limited extent), many compilers do not.

    Additionally, it's sometimes important to compile your code without any optimization during debugging.

    Relying on tail recursion is really only possible in languages where the standard guarantees support.

    --

    DNA just wants to be free...
  15. IOCCC mirrors needed by chongo · · Score: 4, Informative
    When we release the IOCCC winners, we are going to need more mirrors. If you want to mirror the IOCCC, please send EMail to Simon Cooper at:

    mirror-request at ioccc dot org

    Please include the following words in the subject of your EMail message:

    IOCCC 2004

    We will ask you a few questions and provide you with information on how we would prefer you to mirror the site. Please don't start mirroring until we have responded and processed your mirror request. Thanks in advance for your willingness to help.

    --
    chongo (was here) /\oo/\
  16. Re:Time to turn in your geek card... by MORTAR_COMBAT! · · Score: 2, Informative

    your implemetation begs the question: is it better to perform 3 division and 3 addition operations, or simply 3 division and 3 comparison operations?

    on my PC it turned out that it takes twice as long to go the route of strange addition ;]

    --
    MORTAR COMBAT!
  17. IOCCC - FAQ and History by chongo · · Score: 2, Informative
    Several people have asked / wondered what the International Obfuscated Code Content was all about, how it got start, etc.

    Definition

    Obfuscate: tr.v. -cated, -cating, -cates. 1. a. To render obscure. b. To darken. 2. To confuse: his emotions obfuscated his judgment. [LLat. obfuscare, to darken : ob(intensive) + Lat. fuscare, to darken < fuscus, dark.] -obfuscation n. obfuscatory adj.

    Goals:

    • To write the most Obscure/Obfuscated C program under the content rules.
    • To show the importance of programming style, in an ironic way.
    • To stress C compilers with unusual code.
    • To illustrate some of the subtleties of the C language.
    • To provide a safe forum for poor C code. :-)

    And here is one entry from the IOCCC FAQ that talks about how the IOCCC got started:

    One day (23 March 1984 to be exact), back Larry Bassel and I (

    Landon Curt Noll) were working for National Semiconductor's Genix porting group, we were both in our offices trying to fix some very broken code. Larry had been trying to fix a bug in the classic Bourne shell (C code #defined to death to sort of look like Algol) and I had been working on the finger program from early BSD (a bug ridden finger implementation to be sure). We happened to both wander (at the same time) out to the hallway in Building 7C to clear our heads.

    We began to compare notes: ''You won't believe the code I am trying to fix''. And: ''Well you cannot imagine the brain damage level of the code I'm trying to fix''. As well as: ''It more than bad code, the author really had to try to make it this bad!''.

    After a few minutes we wandered back into my office where I posted a flame to net.lang.c inviting people to try and out obfuscate the UN*X source code we had just been working on.

    BTW: I (Landon Curt Noll) had to post this

    typo correction. Thus began the tradition of putting typos in the contest rules and guidelines ... to make them more obfuscated of course! :-)

    BTW: This posting was made back in the days when AT&T was the evil giant. Now, Microsoft makes AT&T look mild and kind in comparison. :-( (IMHO) ).

    BTW: See the story about the '' Bill Gates'' award. :-)

    OK, back to the story. We (Larry and I) received a number of entries by EMail. When we began to receive messages from outside of the US, Larry and I decided to include International in the name. The 1st IOCCC winners were posted on 17 April 1984.

    There were 4 winners in 1984:

    <dis>honorable mention

    --
    chongo (was here) /\oo/\
  18. Code Was Supposed to Be Up Today by darkonc · · Score: 2, Informative
    According to the page, the actual code for the wineners should be up mid-October.

    They intended to have the winning code available today, but the website was designed by last year's winner, and they're guessing it'll take another 6 weeks to figure it out.

    They started in January.

    --
    Sometimes boldness is in fashion. Sometimes only the brave will be bold.
  19. Uh, mods... by Anonymous Coward · · Score: 1, Informative

    This isn't informative - it's a joke.