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
...was somebody built a hamster-powered webserver for the IOCCC hosting. I wonder how well it performs?
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.
What is it with C programmers that they don't just all leave en masse for languages that provide all the power with none of the safety concerns? Even C++ has improved on C's lack of type-safety, buffer checking, and its tendency towards spaghetti code. Better than those two loser languages is Lisp and its decendants which provide hella power without all the cumbersome problems and syntax that C and its cousins suffer from.
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"
For all you p2p users out there:
http://www.ioccc.org.nyud.net:8090/
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.
Is it you??
The IT section color scheme sucks.
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.
And here I thought the original raytracing algorithms were already pretty heavily obfuscated on their own, hence their rapid adoption throughout the industry.
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();
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
if (year mod 4) = 0
then
days_in_feb
endif
or something like that, it has been 20+ years since I last wrote Pascal, I'm not so familiar with the syntax anymore. Or try COBOL for the true detailed syntax you seem to adore. But one of the many advantages of C that make it so great is the concise syntax. After reading a few millions of lines of code, one gets tired from so much redundancy. If you really have experience with C, things like treating integers as boolean have become second nature.
I suggest that you trust your programmers more. The fact that you have problems understanding C code means that you should concentrate on management, rather than trying to micro-manage programmers.
from those job ads that post a little programming exercises for you to submit a solution too.
I recall reading an article about how Gates and Allen developed the first Microsoft BASIC, and that they had to use one of those tricks to get it into the required space.
So, for example, if the most significant byte of a single command was shared with the least significant byte of another.. they could jump into the middle of another instruction. Crazy.
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
year modulo 4 fails ... there are quite some exceptions to this simple rool. Not caring for them makes programms fail very seldom, and give QC a hart time.
in Python it is as simple as
import calendar
if calendar.isleap(year):
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)
Jean-Louis Gassee beat to you that 11 years ago...
Mirrors:
http://www.es.ioccc.org/whowon.html
http://www.tw.ioccc.org/whowon.html
http://www.gr.ioccc.org/whowon.html
http://www1.us.ioccc.org/whowon.html
http://www.au.ioccc.org/whowon.html
Since Lance Armstrong is also a pitch man for Subaru, he'd better know how to drive a car.
I've heard several of the winners were based on ASCII-art Goatse.
One of the craziest hacks I've heard of was in an article by this guy who was hired to make some changes to an early calculator design. The calculator used a spinning magnetic drum for storage, a head that could read and write at the same time, and a buffer. It seems the original designer had extended the working memory of the machine by reading the 'OS' into the buffer while the head wrote data. The calculation would then have to finish in one revolution of the drum so the head could write it back in time for the execute loop to read it. This was all written in assembly with zero documentaion. It's generally considered a Bad Idea to store your boot RAM in a serial buffer.
"A language that doesn't affect the way you think about programming, is not worth knowing" - Alan Perlis
That's just stupid.
It sounds like you are talking about The story of Mel.
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)
#include "/dev/tty"
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.
DNA just wants to be free...
I pray i never work for anyone as dumb as you.
#include
#define ja 0x6B
#define s "%s%c%c%c\n"
#define tr "su"
#define at 0143
#define kt 's'
int main(void) { printf( s,tr,at,ja,kt ); }
I've found that bringing in alien paradigms can be effective. For example, if
you're writing in C, simulate functional programming mechanisms, such as
closures. This by itself is not enough, because someone could be reading the
code who knows Scheme, but it is nonetheless effective, because it will throw
a significant portion of your audience into unmitigated confusion. Only people
familiar with the alien paradigm will even have a *chance* at understanding
what the code is doing.
Cut that out, or I will ship you to Norilsk in a box.
No wonder some folks complain about GTK and Perl.
=D
Really, I didn't even really have a good idea of what a closure was until I learned to use them in Perl. It just seemed natural in Scheme. Sort of like how I didn't really understand certain parts of English grammar until I started learning other languages, even though I could use them fluently.
This isn't informative - it's a joke.
I know people who talked to Billy when he was still answering the phones at MS. They learned to never report a bug to him because he would fix it and add in more. The rumors about him being good are all a result of people who he made lots of money knowing when to say nice things about people even if they are little white lies.