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!
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)
It's a very well known contest for obfuscated C code. You should already know that, though.
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. --
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
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. ^_^
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
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: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!
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.
Oh, here is the explanation.
Slashdot Sig. version 0.1alpha. Use at your own risk.
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...
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)
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!
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.
This isn't informative - it's a joke.