Please create an account to participate in the Slashdot moderation system

 



Forgot your password?
typodupeerror
×
Programming IT Technology

IOCCC 2006 is now open 76

leob writes "The 19th International Obfuscated C Code Contest opened one minute before the New Year to qualify for the 2006 designation. Entries accepted until the end of February. Start writing and submitting your entries now!"
This discussion has been archived. No new comments can be posted.

IOCCC 2006 is now open

Comments Filter:
  • by Salvance ( 1014001 ) * on Wednesday January 03, 2007 @11:12AM (#17444364) Homepage Journal
    They could always create an International Obfuscated AJAX competition, then every entrant could be a winner.

    Either I'm dumber than I had hoped, have worked with nimwitted programmers, or (much more likely) most AJAX implementations are just completely illogic to follow. When reviewing "Web 2.0" work, I often miss the logic and structure of C.
    • Re: (Score:3, Insightful)

      by misleb ( 129952 )
      AJAX is complicated by the fact that you are executing code in two places... the server and the client. And code is often mixed with HTML. How obfuscated it is (or seems) really depends on the framework you are using. If you're putting together an app/site with PHP and writing your own AJAX calls, it can get pretty hairy. But when using something like Ruby on Rails, it is pretty straight forward.

      -matthew
    • They should run a Perl version with prizes for actually clear code. But I suppose it would be too difficult. Or maybe it would end up as a Loebner contest [loebner.net]-style contest: lots of entries, no winners. Oh well.
  • by fatnicky ( 991652 ) on Wednesday January 03, 2007 @11:20AM (#17444474) Homepage
    I for one find it appalling that only C is allowed. What about Plus or Sharp? They have the same rights as the high and mighty C does. What this amounts to is pure and simple racism. This brings us right back to the coding rights movement of the 80's. I cannot believe we are still struggling.

    I'm so mad, I'm calling Jess-C Jackson. He'll get Al #ton on the phone as well.

  • by grahamsz ( 150076 ) on Wednesday January 03, 2007 @11:25AM (#17444548) Homepage Journal
    Having the 2006 competition run in 2007...

    It's like they are setting out to create a contest that is unclear and needlessly difficult to understand.
  • Make a C mutator: It takes C, parses, and applies a bunch of randomizing but semantically preserving transformations. Make it small, and compact.

    Then run your code through it a few times and submit it.
    • Make it small, and compact.

      And don't forget to format the final code to look like a penis, and you'll be sure to win
    • by misleb ( 129952 )
      I think a good obfuscated contest winner will go beyond mere syntactic scrambling. Or at least it would be "creative" syntactic scrambling.

      Anyway, I HOPE you can't win the content simply by running normal code through an obfuscating program.

      -matthew
      • The first steps it goes through are a preprocessor and an indenter. Things like "#define i void" are pretty much old hat and not seen as creative nowadays. Most of the obvious things (that syntax scramblers tend to do) are poor scoring manipulations. See the guidelines [ioccc.org] for exactly how they score. Highest scores are given to novel approaches, and that in turn is somewhat dictated by what has been done in the past.

        --
        Evan

      • by XO ( 250276 )
        Yeah I think it has to do what it does in an obfuscated form as well. I had one bizarre one that I used as a sig for a long time, that was about a 20 line program or so that would print the Twelve Days of Christmas, using ASCII math and loops. Very strange.
    • You submit your OBSFUCATOR after you reobsfucate it a few times.
    • Re: (Score:3, Interesting)

      by nacturation ( 646836 )
      That's probably a good way to lose since creativity is one of the key factors, not just plain illegibility. Take, for example, this program (one of my all-time favorites) which prints out the value of pi:

      http://www0.us.ioccc.org/1988/westley.c [ioccc.org]

      Or this one which, when compiled and run, prints out another character as program source. You compile the output to that, run it and it outputs another character as program source. You compile that, and you get back the original program's source:

      http://www0.us.ioccc [ioccc.org]
      • Just a piece of info about the second one (to understand why its SO GREAT):

        The ORIGINAL source is the head of a guy, and the two kanji the other sources show are a rather famous expression attributed to this man.
      • by zobier ( 585066 )
        Make a C mutator: It takes C, parses, and applies a bunch of randomizing but semantically preserving transformations. Make it small, and compact.

        Then run your code through it a few times and submit it.
        That's probably a good way to lose since creativity is one of the key factors, not just plain illegibility.
        Well if you ran the mutator through itself it may count as an interesting entry.
    • Okay, the 2006 "Explanation of Why IOCCC Is Not Just Ugly Code" is now underway.

      The winning entries are pieces of art, not pieces of dung. They look like they should do one thing, but they do another. They arrange the code in a visually pleasing but maintenance-proof way. They choose some concept and take it to the absurd limit, all within a tiny amount of code.

      My favorite past entry is John Tromp's maze generator [homepages.cwi.nl]. In seven lines of code, he produces random mazes. The variables are named M, A, Z,

  • Leob, I just thought of a New Years Resolution for you.

  • by dpbsmith ( 263124 ) on Wednesday January 03, 2007 @12:39PM (#17445694) Homepage
    A contestant would submit a piece of code together with the specification of what the code was supposed to do, but no other documentation.

    The judges would propose a straightforward change in the specification.

    The code and the revised specification would be given to an impartial panel of a hundred programmers, selected at random from the ranks of people working for a living writing code. Each of them would be asked to modify the code to meet the revised spec. They would also be instructed to fix any bugs they noticed in the code they were given. The revised code and spec would then submit each one to an impartial panel of 100 SQA testers, selected at random from the ranks of people who work for a living testing code.

    The winner would be the contestant whose code, after being modified by other programmers, passed the largest number of SQA tests.

    (And, yes, SQA failures due to unfixed bugs in the original code would count against the contestant).

     
    • Re: (Score:3, Insightful)

      by nacturation ( 646836 )
      Yeesh... sounds too much like work. I get paid to write clear code. When I don't get paid, I want to have fun with it.
       
    • "The revised code and spec would then submit each one to an impartial panel of 100 SQA testers, selected at random from the ranks of people who work for a living testing code."

      Yeah right. As if there were more than 100 competent SQA testers in the world.
    • Jesus, this sounds like just about the most boring thing in the world. I do this every day at work. It's called "my job." Strangely, I already get paid for it.
  • but it really is time to stop it already. We shouldn't be programming in C anymore.
    • by leenks ( 906881 )
      Yeah, I mean computers are fast enough for everything these days. Lets use Java for everything.
    • by mmkkbb ( 816035 )
      There are still things that need a genericized assembly language, so there is still a need for C!
      • There are still things that need a genericized assembly language, so there is still a need for C!

        C was a high-level assembly language for the PDP-11; it is not a high-level assembly language for modern architectures.
        • by mmkkbb ( 816035 )
          yeah, cause modern ISAs aren't designed to be easy to compile C for or nothin'.
          • yeah, cause modern ISAs aren't designed to be easy to compile C for or nothin'.

            Modern architectures try to accomodate C as much as possible, but they have lots of important functionality that isn't available from C. Therefore, C can be compiled for them, but C isn't a "high level assembly language" for them.

            Conversely, some of the areas where modern architectures have tried to accomodate the C language have arguably led to bad architectural decisions and have held back the industry both on runtime safety a
    • Aw, c'mon: there is a time and place for everything.
      The number of large, successful projects coded in C thoroughly mocks your viewpoint.
      • The number of large, successful projects coded in C thoroughly mocks [sic] your viewpoint.

        Heck, yes, by your argument, let's go back to DOS, Fortran, and COBOL, then. I mean, who even needs this, new-fangled C and UNIX stuff?
        • You've swerved from one ditch to the other, sir.
          How about something moderate? Good tool/job match? Decent balance among power, performance, and ease of use?
          • How about something moderate? Good tool/job match? Decent balance among power, performance, and ease of use?

            Yes, and C is never the optimal choice on purely technical grounds; C is full of flaws and design errors that can be fixed without affecting its expressiveness or performance in any way.

            The only reason to use C (and I do) is because lots of other people are using it.
  • I missed writing programs in C. Anyways, I think, the creator of Perl has also won that competition. C rules/rocks!!!

    Ozgur Uksal
    http://en.wikipedia.org/wiki/C_(programming_langua ge)/ [wikipedia.org]

One man's constant is another man's variable. -- A.J. Perlis

Working...