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."
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."
For those who don't know what this is all about...
It's all about how to obfuscate baby!
Who's the IOCCC and what was this contest about? Some programming thing obviously. Is this that obfuscated perl thing?
Seriously, a sentence or two of information in the submissions doesn't hurt.
I don't need no instructions to know how to rock!!!!
Was the Mini-Os Windows CE by any chance? I'd bet that's pretty obfuscated!
When there was no contest at all. "Yeah, everyone send in your entries. Oh, nevermind, maybe next year."
Of course it looks like those extra 2 years paid off. This year's winners look very interesting.
If the IOCCC is anything like the IOC, I am sure they will ask some of the winners to give back their prizes because of judging mistakes, and probably screwed over several Russian participants.
Great ideas often receive violent opposition from mediocre minds. - Albert Einstein
C0N6R47UL4710N5 W1NN3RZZ!
An Indian-American Hindu committed to non-violent thought/speech/action alarmed by the global explosion of radical Islam
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.
us1 mirror and see Google cache for more.
I once had a signature.
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.
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)
Please hand in your Geek membership card on your way out. Thank you.
An Indian-American Hindu committed to non-violent thought/speech/action alarmed by the global explosion of radical Islam
I always though this contest was funny, but in a dark and sinister way. I can't tell you how many times I've looked at someone else's code and spent hours trying to figure it out. In the real world, it's not funny.
I'm amazed at how someone can acheive such obfuscated code without really trying.
Here's an excerpt from the award ceremony:
winner: I won! I won!
MC: No, you're failing computer science.
winner: [Segmentation fault]
Unknown host pong.
Since the Olympics have just finished and still reasonably fresh on my mind, did anyone else read that as a stuttered IOC-C-C? (International Olympic C-C-Committee)
No? J-J-Just me then?
Friends don't let Friends use Internet Explorer.
Chucklesome bumper sticker mentioned by someone on Slashdot...
"Eschew Obfuscation"
And the Lifetime Acheivement in Server Destruction Award goes to...Slashdot!!! Congratulations!
Seriously, I can practically smell the server melting from here.
obfuscated their webserver. :-)
- Kevin
The less confident you are, the more serious you have to act.
Recursive calls to main(), if handled with interesting tricks like vectored execution and such, can really spice up a program.
If you use the trick of storing all of your data in one huge 'array', try to overlap anything you can get away with overlapping. For example, if you have a constant whose most significant byte is the same as the least significant byte in a string, there's not sense in storing that byte twice.
While not allowed in IOCCC itself, try mixing your C with a language that's even more incomprehensible than C. I had good luck with writing a C program that sent PostScript code to a printer and having all the real work be done in the PostScript code.
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. ^_^
All prize money for the latest IOCCC have been used up for bandwidth after a %^&*@#@%#^% ( obfuscated ) slashdot effect hit the site soon after results were published. We are sorry for the winners...
getSexySig();
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
This was on an embedded system where using one 16 bit int instead of 16 8-bit chars to hold the flags resulted in a vital savings of memory.
Best Slashdot Co
Anyone can write unreadable code.
It takes an artist to write code that is both unreadable and beautiful at the same time.
If your entry isn't beautiful, you're just a bad programmer.
[
Those suckers never even got their foot in the door. I don't care how smart they think they are, we have to get products out fast, and realistically be able to maintain/upgrade them 10+ years or so.
At a couple of the companies I've been with we'd have after-hours informal little "Who can optimize this code the most" contests and they were amazingly instructive. They force you to think about solutions in new and creative ways, and to really understand an algorithm or CPU at a far deeper level than a simple straightforward implementation.
And while those obscenely optimized implementations may never get near the shipping product, you always walk away with a far far better grasp of how the shipping code really does work. (And yes, we've discovered bugs by inspection... because the little optimization contest had us questioning assumptions that the shipping code relied upon)
--Rob
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)
While a lot of stuff folks did back in the day, a lot of times there wasn't much choice. If you don't have enough (memory | speed) to accomplish the task at hand, you'll start resorting to ugly hacks. There are some interesting articles out there on all the horrible things programmers did to old game systems like the Atari 2600 and the Intellivision that would be considered Hateful today but were necessary to create a lot of good games at the time.
The real problem is lack of documentation, and it's a problem to this day, especially when a programmer is working on a project alone. I know I'm guilty. You should take a look at some of the code I've been writing in the past week. It's like I couldn't put two slashes together to save my life.
Please include the following words in the subject of your EMail message:
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)
Definition
Goals:
And here is one entry from the IOCCC FAQ that talks about how the IOCCC got started:
chongo (was here)
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.
Sometimes boldness is in fashion. Sometimes only the brave will be bold.