Merge pull request #211 from xexyl/faq
This commit is contained in:
2 files changed
+771
-436
No files matched your search
@@ -1,546 +1,448 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
|
||||
<META name="description" content="International Obfuscated C Code Contest">
|
||||
<META name="keywords" content="International, Obfuscated, C, c, IOCCC,ioccc, obfuscated, Obfuscate, obfuscate, Landon Curt Noll, chongo, Leonid A. Broukhis">
|
||||
<link rel="stylesheet" type="text/css" href="ioccc.css">
|
||||
<TITLE>The FAQ</TITLE>
|
||||
</HEAD>
|
||||
<BODY TEXT="#000000">
|
||||
<p><HTML>
|
||||
<BODY TEXT="#000000"></p>
|
||||
|
||||
<CENTER><IMG ALT="IOCCC" SRC="png/ioccc.png"></CENTER><BR>
|
||||
<CENTER><FONT SIZE="6"><I>The International Obfuscated C Code
|
||||
Contest </I></FONT></CENTER><BR>
|
||||
<CENTER><P>[ <A HREF="judges.html">The judges</A> |
|
||||
<center><img alt="IOCCC" SRC="png/ioccc.png"></center>
|
||||
|
||||
|
||||
<p><br></p>
|
||||
|
||||
<center><font size="6"><I>The International Obfuscated C Code Contest </I></font></center>
|
||||
|
||||
|
||||
<p><br></p>
|
||||
|
||||
<center><P>[ <A HREF="judges.html">The judges</A> |
|
||||
<A HREF="main.html">IOCCC home page</A> |
|
||||
<A HREF="main.html#enter">How to enter</A> |
|
||||
<B>FAQ</B> |
|
||||
<A HREF="contact.html">Contacting the IOCCC</A>
|
||||
<BR>
|
||||
<br>
|
||||
<A HREF="main.html#new">IOCCC news</A> |
|
||||
<A HREF="winners.html">People who have won</A> |
|
||||
<A HREF="years.html">Winning entries</A> ]</P></CENTER>
|
||||
<BR>
|
||||
<A HREF="years.html">Winning entries</A> ]</P></center>
|
||||
|
||||
|
||||
<p><br></p>
|
||||
|
||||
<HR>
|
||||
|
||||
<H2>The IOCCC FAQ</H2>
|
||||
|
||||
<P>
|
||||
<BLOCKQUOTE><FONT SIZE=+1>Q:</FONT> How many entries do you receive each
|
||||
year?
|
||||
<BR><FONT SIZE=+1>A:</FONT> By tradition, we do not say.
|
||||
<P><FONT SIZE=+1>Q:</FONT> How many judging rounds do you have?
|
||||
<BR><FONT SIZE=+1>A:</FONT> Are you trying to trick us? We will not say
|
||||
that either.
|
||||
<P><FONT SIZE=+1>Q:</FONT> I cannot get entry xyzzy from year 19xx to compile!
|
||||
<BR><FONT SIZE=+1>A:</FONT> Some winners, particularly winners from long
|
||||
ago, no longer compile on more modern systems because the C language has
|
||||
evolved (i.e. the modern C compilers are much more strict in what they
|
||||
accept as a valid program), or the entry depended on operation system
|
||||
and library features that where common back then but are different/missing
|
||||
today.
|
||||
<BR>E.g. it is highly unlikely that you'll be able to execute <A HREF="years.html#1984/mullender">1984/mullender</A> on a computer you're using to read this FAQ.
|
||||
<P><FONT SIZE=+1>Q:</FONT> I found a bug in a previous winner, what should
|
||||
I do?
|
||||
<BR><FONT SIZE=+1>A:</FONT> We do not ``maintain'' the contest winners.
|
||||
The code is made available on an ``AS IS'' basis. If you have a FIX for
|
||||
<h1>The IOCCC FAQ</h1>
|
||||
|
||||
<h2>Q:</font> How many entries do you receive each year?</h2>
|
||||
|
||||
<p>By tradition, we do not say.</p>
|
||||
|
||||
<h2>Q: How many judging rounds do you have?</h2>
|
||||
|
||||
<p>Are you trying to trick us? We will not say that either.</p>
|
||||
|
||||
<h2>Q: I cannot get entry XYZZY from year 19xx to compile!</h2>
|
||||
|
||||
<p>Some winners, particularly winners from long ago, no longer compile on more
|
||||
modern systems because the C language has evolved (i.e. the modern C compilers
|
||||
are much more strict in what they accept as a valid program), or the entry
|
||||
depended on operation system and library features that where common back then
|
||||
but are different/missing today.</p>
|
||||
|
||||
<p>E.g. it is highly unlikely that you'll be able to execute
|
||||
<a href="years.html#1984/mullender">1984/mullender</a> on a computer you're using to read
|
||||
this FAQ.</p>
|
||||
|
||||
<h2>Q: I found a bug in a previous winner, what should I do?</h2>
|
||||
|
||||
<p>We do not 'maintain' the contest winners. The code is made available on an 'AS
|
||||
IS' basis. If you have a FIX for
|
||||
a entry, we suggest that you try and email it to the authors and to CC:
|
||||
us using the instructions on the <A HREF="contact.html">contacting the IOCCC
|
||||
Judges</A> page.
|
||||
<BR>IF you have a FIX, and IF the author does not object, and IF your fix
|
||||
us using the instructions on the
|
||||
<a href="contact.hml">contacting the IOCCC Judges</a> page.</p>
|
||||
|
||||
<p>IF you have a FIX, and IF the author does not object, and IF your fix
|
||||
looks reasonable, we will add a web link to a copy of your email
|
||||
for others to see.
|
||||
<P><FONT SIZE=+1>Q:</FONT> Are there types of entries that are submitted
|
||||
so frequently that the judges get tired of them?
|
||||
<BR><FONT SIZE=+1>A:</FONT> Yes, there are types of entries that show up
|
||||
over and over again.
|
||||
<BR>The <A HREF="guidelines.html">guidelines</A> say:
|
||||
<BLOCKQUOTE><I>We tend to dislike programs that:</I>
|
||||
<LI><I>are similar to previous winners</I></LI>
|
||||
</BLOCKQUOTE>
|
||||
We like variety. However too often we see (please look at the winning examples
|
||||
given to be aware of the level of the competition):
|
||||
<UL>
|
||||
<LI>
|
||||
<FONT SIZE=+1>maze generator</FONT>
|
||||
for others to see.</p>
|
||||
|
||||
<UL>
|
||||
<LI>
|
||||
<A HREF="years.html#1985_shapiro">1985/shapiro</A></LI>
|
||||
<h2>Q: Are there types of entries that are submitted so frequently that the judges get tired of them?</h2>
|
||||
|
||||
<LI>
|
||||
<A HREF="years.html#1991_buzzard">1991/buzzard</A></LI>
|
||||
<p>Yes, there are types of entries that show up over and over again.</p>
|
||||
|
||||
<LI>
|
||||
<A HREF="years.html#1995_cdua">1995/cdua</A></LI>
|
||||
<p>The <a href="guidelines.html">guidelines</a> say:</p>
|
||||
|
||||
<LI>
|
||||
<A HREF="years.html#1995_dodsond2">1995/dodsond2</A></LI>
|
||||
<blockquote><p><em>We tend to dislike programs that: are similar to previous winners</em></p></blockquote>
|
||||
|
||||
<LI>
|
||||
<A HREF="years.html#1998_bas1">1998/bas1</A></LI>
|
||||
</UL>
|
||||
<P><LI>
|
||||
<FONT SIZE=+1>tic-tac-toe game</FONT>
|
||||
<p>We like variety. However too often we see (please look at the winning examples
|
||||
given to be aware of the level of the competition):</p>
|
||||
|
||||
<UL>
|
||||
<LI>
|
||||
<A HREF="years.html#1991_westley">1991/westley</A></LI>
|
||||
<h3>maze generator</h3>
|
||||
|
||||
<LI>
|
||||
<A HREF="years.html#1996_jonth">1996/jonth</A></LI>
|
||||
<ul>
|
||||
<li><p><a href="years.html#1985_shapiro">1985/shapiro</a></p></li>
|
||||
<li><p><a href="years.html#1991_buzzard">1991/buzzard</a></p></li>
|
||||
<li><p><a href="years.html#1995_cdua">1995/cdua</a></p></li>
|
||||
<li><p><a href="years.html#1995_dodsond2">1995/dodsond2</a></p></li>
|
||||
<li><p><a href="years.html#1998_bas1">1998/bas1</a></p></li>
|
||||
</ul>
|
||||
|
||||
<LI>
|
||||
<A HREF="years.html#2020_carlini">2020/carlini</A></LI>
|
||||
</UL>
|
||||
|
||||
<P><LI>
|
||||
<FONT SIZE=+1>solitaire/Othello game</FONT>
|
||||
<h3>tic-tac-toe game</h3>
|
||||
|
||||
<UL>
|
||||
<LI>
|
||||
<A HREF="years.html#1987_lievaart">1987/lievaart</A></LI>
|
||||
<ul>
|
||||
<li><p><a href="years.html#1991_westley">1991/westley</a></p></li>
|
||||
<li><p><a href="years.html#1996_jonth">1996/jonth</a></p></li>
|
||||
<li><p><a href="years.html#2020_carlini">2020/carlini</a></p></li>
|
||||
</ul>
|
||||
|
||||
<LI>
|
||||
<A HREF="years.html#1994_dodsond1">1994/dodsond1</A></LI>
|
||||
</UL>
|
||||
|
||||
<P><LI>
|
||||
<FONT SIZE=+1>generating small primes </FONT>(below is the list of all
|
||||
prime related winners)
|
||||
<h3>solitaire/Othello game</h3>
|
||||
|
||||
<UL>
|
||||
<LI>
|
||||
<A HREF="years.html#1985_august">1985/august</A></LI>
|
||||
<ul>
|
||||
<li><p><a href="years.html#1987_lievaart">1987/lievaart</a></p></li>
|
||||
<li><p><a href="years.html#1994_dodsond1">1994/dodsond1</a></p></li>
|
||||
</ul>
|
||||
|
||||
<LI>
|
||||
<A HREF="years.html#1988_applin">1988/applin</A></LI>
|
||||
|
||||
<LI>
|
||||
<A HREF="years.html#1994_weisberg">1994/weisberg</A></LI>
|
||||
<h3>generating small primes (below is the list of all prime related winners)</h3>
|
||||
|
||||
<LI>
|
||||
<A HREF="years.html#1995_makarios">1995/makarios</A></LI>
|
||||
<ul>
|
||||
<li><p><a href="years.html#1985_august">1985/august</a></p></li>
|
||||
<li><p><a href="years.html#1988_applin">1988/applin</a></p></li>
|
||||
<li><p><a href="years.html#1994_weisberg">1994/weisberg</a></p></li>
|
||||
<li><p><a href="years.html#1995_makarios">1995/makarios</a></p></li>
|
||||
<li><p><a href="years.html#1996_dalbec">1996/dalbec</a></p></li>
|
||||
<li><p><a href="years.html#2000_bellard">2000/bellard</a></p></li>
|
||||
</ul>
|
||||
|
||||
<LI>
|
||||
<A HREF="years.html#1996_dalbec">1996/dalbec</A></LI>
|
||||
|
||||
<LI>
|
||||
<A HREF="years.html#2000_bellard">2000/bellard</A></LI>
|
||||
</UL>
|
||||
<B><I>As you can see, just a list of primes (let alone small primes) does
|
||||
not cut it anymore.</I></B>
|
||||
<p><em>As you can see, just a list of primes (let alone small primes) does not cut it
|
||||
anymore.</em></p>
|
||||
|
||||
<P><LI>
|
||||
<FONT SIZE=+1>self reproducing program</FONT>
|
||||
<h3>self reproducing program</h3>
|
||||
|
||||
<UL>
|
||||
<LI>
|
||||
<A HREF="years.html#1990_scjones">1990/scjones</A></LI>
|
||||
<ul>
|
||||
<li><p><a href="years.html#1990_scjones">1990/scjones</a></p></li>
|
||||
<li><p><a href="years.html#1994_smr">1994/smr</a> - _do not claim your program is the smallest one without seeing it!</p></li>
|
||||
<li><p><a href="years.html#2000_dhyang">2000/dhyang</a> - <em>unless you beat this one, your chances are slim</em></p></li>
|
||||
</ul>
|
||||
|
||||
<LI>
|
||||
<A HREF="years.html#1994_smr">1994/smr</A> - <I>do not claim your program
|
||||
is the smallest one without seeing it</I></LI>
|
||||
|
||||
<LI>
|
||||
<A HREF="years.html#2000_dhyang">2000/dhyang</A> - <I>unless you beat this
|
||||
one, your chances are slim</I></LI>
|
||||
</UL>
|
||||
<h3>entries that just print "Hello, world!"</h3>
|
||||
|
||||
<P><LI>
|
||||
<FONT SIZE=+1>entries that just print "Hello, world!"</FONT>
|
||||
<ul>
|
||||
<li><p><a href="years.html#1984_anonymous">1984/anonymous</a></p></li>
|
||||
<li><p><a href="years.html#1985_applin">1985/applin</a></p></li>
|
||||
<li><p><a href="years.html#1986_applin">1986/applin</a></p></li>
|
||||
<li><p><a href="years.html#1986_holloway">1986/holloway</a></p></li>
|
||||
<li><p><a href="years.html#1989_jar.1">1989/jar.1</a></p></li>
|
||||
<li><p><a href="years.html#1992_lush">1992/lush</a></p></li>
|
||||
<li><p><a href="years.html#2000_tomx">2000/tomx</a></p></li>
|
||||
</ul>
|
||||
|
||||
<UL>
|
||||
<LI>
|
||||
<A HREF="years.html#1984_anonymous">1984/anonymous</A></LI>
|
||||
|
||||
<LI>
|
||||
<A HREF="years.html#1985_applin">1985/applin</A></LI>
|
||||
<p><em><strong>it's so 20th century...</strong></em></p>
|
||||
|
||||
<LI>
|
||||
<A HREF="years.html#1986_applin">1986/applin</A></LI>
|
||||
<h3>entries that use some complex state machine/table to print something</h3>
|
||||
|
||||
<LI>
|
||||
<A HREF="years.html#1986_holloway">1986/holloway</A></LI>
|
||||
<ul>
|
||||
<li><p><a href="years.html#1988_isaak">1988/isaak</a></p></li>
|
||||
<li><p><a href="years.html#1988_phillipps">1988/phillipps</a></p></li>
|
||||
</ul>
|
||||
|
||||
<LI>
|
||||
<A HREF="years.html#1989_jar.1">1989/jar.1</A></LI>
|
||||
|
||||
<LI>
|
||||
<A HREF="years.html#1992_lush">1992/lush</A></LI>
|
||||
<h3>rot13</h3>
|
||||
|
||||
<LI>
|
||||
<A HREF="years.html#2000_tomx">2000/tomx</A></LI>
|
||||
</UL>
|
||||
<B><I>It's so 20th century...</I></B>
|
||||
<ul>
|
||||
<li><p><a href="years.html#1985_sicherman">1985/sicherman</a></p></li>
|
||||
<li><p><a href="years.html#1989_westley">1989/westley</a></p></li>
|
||||
<li><p><a href="years.html#1990_dg">1990/dg</a></p></li>
|
||||
<li><p><a href="years.html#1991_fine">1991/fine</a></p></li>
|
||||
</ul>
|
||||
|
||||
<P><LI>
|
||||
<FONT SIZE=+1>entries that use some complex state machine/table to print
|
||||
something</FONT>
|
||||
|
||||
<UL>
|
||||
<LI>
|
||||
<A HREF="years.html#1988_isaak">1988/isaak</A></LI>
|
||||
<h3><strong>pi</strong> or <strong>e</strong> computation</font></h3>
|
||||
|
||||
<LI>
|
||||
<A HREF="years.html#1988_phillipps">1988/phillipps</A></LI>
|
||||
</UL>
|
||||
<ul>
|
||||
<li><p><a href="years.html#1986_august">1986/august</a></p></li>
|
||||
<li><p><a href="years.html#1988_robison">1988/robison</a></p></li>
|
||||
<li><p><a href="years.html#1988_westley">1988/westley</a></p></li>
|
||||
<li><p><a href="years.html#1989_roemer">1989/roemer</a></p></li>
|
||||
</ul>
|
||||
|
||||
<P><LI>
|
||||
<FONT SIZE=+1>rot13</FONT></LI>
|
||||
<UL>
|
||||
<LI>
|
||||
<A HREF="years.html#1985_sicherman">1985/sicherman</A></LI>
|
||||
|
||||
<LI>
|
||||
<A HREF="years.html#1989_westley">1989/westley</A></LI>
|
||||
|
||||
<LI>
|
||||
<A HREF="years.html#1990_dg">1990/dg</A></LI>
|
||||
|
||||
<LI>
|
||||
<A HREF="years.html#1991_fine">1991/fine</A></LI>
|
||||
</UL>
|
||||
|
||||
<P><LI>
|
||||
<FONT SIZE=+1><B>pi</B> or <B>e</B> computation</FONT>
|
||||
|
||||
<UL>
|
||||
<LI>
|
||||
<A HREF="years.html#1986_august">1986/august</A></LI>
|
||||
|
||||
<LI>
|
||||
<A HREF="years.html#1988_robison">1988/robison</A></LI>
|
||||
|
||||
<LI>
|
||||
<A HREF="years.html#1988_westley">1988/westley</A></LI>
|
||||
|
||||
<LI>
|
||||
<A HREF="years.html#1989_roemer">1989/roemer</A></LI>
|
||||
</UL>
|
||||
</UL>
|
||||
<P>HINT: It is not fatal to send in those types of entries, it is just MUCH
|
||||
<p>HINT: It is not fatal to send in those types of entries, it is just MUCH
|
||||
HARDER to win. Such an entry would have to do something really unique and
|
||||
interesting to even make it into the final judging rounds. Entries that
|
||||
re-use these 'worn out' themes frequently lose to other entries that do
|
||||
something different.
|
||||
<P>HINT: If you really MUST send in an entry based on an 'over-used theme',
|
||||
something different.</p>
|
||||
|
||||
<p>HINT: If you really MUST send in an entry based on an 'over-used theme',
|
||||
be sure that it is obfuscated in several new and novel ways. Be sure to clearly
|
||||
explain near the beginning of your remarks why you are submitting a entry
|
||||
based on an 'over-used theme' and why the judges should not simply toss
|
||||
it out as being boring.
|
||||
<P><FONT SIZE=+1>Q:</FONT> What should I write in the 'remark' section
|
||||
of my entry, if anything at all?
|
||||
<BR><FONT SIZE=+1>A:</FONT> As much or as little as you wish.
|
||||
<P>What helps:
|
||||
<UL>
|
||||
<LI>
|
||||
explaining what your entry does</LI>
|
||||
it out as being boring.</p>
|
||||
|
||||
<LI>
|
||||
how to entice it to do what it is supposed to do</LI>
|
||||
<h2>Q: What should I write in the 'remarks' (remarks.md) section of my entry, if anything at all?</h2>
|
||||
|
||||
<LI>
|
||||
what obfuscations are used</LI>
|
||||
<p>As much or as little as you wish.</p>
|
||||
|
||||
<LI>
|
||||
what are the limitations of your entry in respect of portability and/or input
|
||||
data</LI>
|
||||
<h3>What helps:</h3>
|
||||
|
||||
<LI>
|
||||
how it works (if you are really condescending)</LI>
|
||||
</UL>
|
||||
<P>What does not help:
|
||||
<UL>
|
||||
<LI>
|
||||
admitting that your entry is not very obfuscated (you see, the contest
|
||||
is called <B>IOCCC</B>, not <B>INVOCCC</B>); but even if you do not admit it,
|
||||
not very obfuscated entries have a minuscule chance to win
|
||||
(although <A HREF="years.html#2000_tomx">2000/tomx</A> is a notable counterexample)</LI>
|
||||
<ul>
|
||||
<li><p>explaining what your entry does</p></li>
|
||||
<li><p>how to entice it to do what it is supposed to do</p></li>
|
||||
<li><p>what obfuscations are used</p></li>
|
||||
<li><p>what are the limitations of your entry in respect of portability and/or input data</p></li>
|
||||
<li><p>how it works (if you are really condescending)</p></li>
|
||||
</ul>
|
||||
|
||||
<LI>
|
||||
mentioning your name or any identifying information in the remark section
|
||||
(or in the C code for that matter) - we like to be unbiased during the
|
||||
judging rounds; we look at the author name only if an entry wins</LI>
|
||||
|
||||
<LI>
|
||||
leaving the remark section empty</LI>
|
||||
</UL>
|
||||
<P><FONT SIZE=+1>Q:</FONT> I am confused: what should I put to the 'build'
|
||||
section?
|
||||
<BR><FONT SIZE=+1>A:</FONT> The 'build' section must contain UNIX shell-style
|
||||
commands to compile your C language entry <B>in a file named prog.c</B>
|
||||
and produce an executable file. More than one command is allowed,
|
||||
<h3>What does not help:</h3>
|
||||
|
||||
<ul>
|
||||
<li><p>admitting that your entry is not very obfuscated (you see, the contest is
|
||||
called <B>IOCCC</B>, not <B>INVOCCC</B>); but even if you do not admit it, not
|
||||
very obfuscated entries have a minuscule chance to win (although
|
||||
<a href="years.html#2000_tomx">2000/tomx</a> is a notable counterexample)</p></li>
|
||||
<li><p>mentioning your name or any identifying information in the remark section (or
|
||||
in the C code for that matter) - we like to be unbiased during the judging
|
||||
rounds; we look at the author name only if an entry wins</p></li>
|
||||
<li><p>leaving the remark section empty</p></li>
|
||||
</ul>
|
||||
|
||||
|
||||
<h2>Q: I am confused: what should I put to the 'build' section?</h2>
|
||||
|
||||
<p>The 'build' section must contain UNIX shell-style commands to compile your C
|
||||
language entry <strong>in a file named prog.c</strong> and produce an executable file. More than one command is allowed,
|
||||
as far as the size rule is followed.
|
||||
Usually one (or more) of these commands will be an invocation of
|
||||
a C compiler (use <B>cc</B> or <B>gcc</B>), but there may be exceptions
|
||||
(or not anymore, see <A HREF="years.html#2000_tomx">2000/tomx</A>).
|
||||
<BR>If your entry depends on a particular source file name during
|
||||
compilation or execution, you will have to put a line
|
||||
<PRE>cp prog.c desired_name.c</PRE> before the compiler invocation line.
|
||||
<BR>If in doubt, put
|
||||
<PRE>cc -o prog prog.c</PRE> in the 'build' section.
|
||||
<P><FONT SIZE=+1>Q:</FONT> What happened to the winners for 1997, 1999
|
||||
and 2002?
|
||||
<BR><FONT SIZE=+1>A:</FONT> There are none. There was no IOCCC in those
|
||||
years.
|
||||
<P><FONT SIZE=+1>Q:</FONT> Why don't you publish non-winners?
|
||||
<BR><FONT SIZE=+1>A:</FONT> Because the publication on the IOCCC site <B><I>IS</I></B>
|
||||
a C compiler (use <strong>cc</strong> or <B>gcc</B>), but there may be exceptions
|
||||
(or not anymore, see <a href="years.html#2000_tomx">2000/tomx</a>).</p>
|
||||
|
||||
<p>If your entry depends on a particular source file name during compilation or execution, you will have to put a line</p>
|
||||
|
||||
<pre><code>cp prog.c desired_name.c
|
||||
</code></pre>
|
||||
|
||||
<p>before the compiler invocation line.</p>
|
||||
|
||||
<p>If in doubt, put</p>
|
||||
|
||||
<pre><code>cc -o prog prog.c
|
||||
</code></pre>
|
||||
|
||||
<p>in the 'build' section.</p>
|
||||
|
||||
<p>Note however that with the <a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry
|
||||
tool</a> we have an example Makefile
|
||||
which you should update, using the instructions above if necessary.</p>
|
||||
|
||||
<h2>Q: What happened to the winners for 1997, 1999 2002, 2003, 2007 - 2010, 2016, 2017, 2021 and 2022 ?</h2>
|
||||
|
||||
<p>There are none. There was no IOCCC in those years.</p>
|
||||
|
||||
<h2>Q: Why don't you publish non-winners?</h2>
|
||||
|
||||
<p>Because the publication on the IOCCC site <strong><em>IS</em></strong>
|
||||
the award! Anyone is free to put their IOCCC hopefuls, lookalikes and/or
|
||||
non-winners on their web page for everyone to see.
|
||||
<P><FONT SIZE=+1>Q:</FONT> How much time does it take to judge the contest?
|
||||
<BR><FONT SIZE=+1>A:</FONT> It takes a fair amount of time to setup, run,
|
||||
answer email, process (note that we do not contact the author if an entry
|
||||
does not compile or does not work as advertised, we might attempt to fix
|
||||
obvious compilation problems or incompatibilities, but no more than that
|
||||
- so be sure that your entry does work on at least a couple different platforms,
|
||||
at least one of them being UNIX or POSIX-conforming) entries, review entries,
|
||||
trim down the set entries to a set of winners, doing the write-up of the
|
||||
winners, announcing the winners, reviewing final edits of the winning entry
|
||||
set, posting the winners, being flamed :-), tell folks who send in late
|
||||
entries to wait until the next contest, etc... It takes a few weekends
|
||||
and a number nights of study and work ... which is hard given that we are busy
|
||||
with many other activities as well.
|
||||
<P><FONT SIZE=+1>Q:</FONT> What platform should I assume for my entry?
|
||||
<BR><FONT SIZE=+1>A:</FONT> Your entry must compile with GCC and run under
|
||||
at least one flavor of UNIX (e.g. Linux or Solaris). To improve chances
|
||||
to win, it should work under both BSD and SysV style UNIX (think <B>stty
|
||||
cbreak</B>), and should not depend on endianness. If it can compile and
|
||||
run on Windows and/or Mac (see <A HREF="/years.html#2000_thadgavin">2000/thadgavin</A>),
|
||||
even better.
|
||||
<P><FONT SIZE=+1>Q:</FONT> I would like to mirror the IOCCC web site. May
|
||||
I do so?
|
||||
<BR><FONT SIZE=+1>A:We are not accepting mirror requests at this time, sorry.
|
||||
<P><FONT SIZE=+1>Q:</FONT> I want to publish some parts of the IOCCC in
|
||||
an article, or book, or newsletter, or use then in class/instructional
|
||||
notes, or quote from the IOCCC. May I do so?
|
||||
<BR><FONT SIZE=+1>A:</FONT> Please ask the IOCCC judges first. Please send
|
||||
your request using the instructions on the <A HREF="contact.html">contacting
|
||||
the IOCCC Judges</A> page.
|
||||
<P><FONT SIZE=+1>Q:</FONT> What are the grand prize / Best of Show winners?
|
||||
<BR><FONT SIZE=+1>A:</FONT> In 1984-1987, the grand prize winners are:
|
||||
<UL>
|
||||
<LI>
|
||||
<A HREF="years.html#1984_mullender">1984/mullender</A></LI>
|
||||
non-winners on their web page for everyone to see.</p>
|
||||
|
||||
<LI>
|
||||
<A HREF="years.html#1985_shapiro">1985/shapiro</A></LI>
|
||||
<h2>Q: How much time does it take to judge the contest?</h2>
|
||||
|
||||
<LI>
|
||||
<A HREF="years.html#1986_wall">1986/wall</A></LI>
|
||||
<p>It takes a fair amount of time to setup, run, answer email, process entries,
|
||||
review entries, trim down the set entries to a set of winners, doing the
|
||||
write-up of the winners, announcing the winners, reviewing final edits of the
|
||||
winning entry set, posting the winners, being flamed :-), tell folks who send in
|
||||
late entries to wait until the next contest, etc... It takes a few weekends and
|
||||
a number nights of study and work ... which is hard given that we are busy with
|
||||
many other activities as well.</p>
|
||||
|
||||
<LI>
|
||||
<A HREF="years.html#1987_lievaart">1987/lievaart</A></LI>
|
||||
</UL>
|
||||
<BR>Starting from 1988, the entry we liked the most in that year is called
|
||||
"Best of Show". Here are the "Best of Show" entries:
|
||||
<UL>
|
||||
<LI>
|
||||
<A HREF="years.html#1988_applin">1988/applin</A></LI>
|
||||
<p>Note that we do not contact the author if an entry does not compile or does not
|
||||
work as advertised, we might attempt to fix obvious compilation problems or
|
||||
incompatibilities, but no more than that - so be sure that your entry does work
|
||||
on at least a couple different platforms, at least one of them being UNIX or
|
||||
POSIX-conforming.</p>
|
||||
|
||||
<LI>
|
||||
<A HREF="years.html#1989_jar.2">1989/jar.2</A></LI>
|
||||
<h2>Q: What platform should I assume for my entry?</h2>
|
||||
|
||||
<LI>
|
||||
<A HREF="years.html#1990_theorem">1990/theorem</A></LI>
|
||||
<p>Your entry must compile with GCC and run under at least one flavor of UNIX (e.g.
|
||||
Linux or Solaris). To improve chances to win, it should work under both BSD and
|
||||
SysV style UNIX (think <B>stty cbreak</B>), and should not depend on endianness.
|
||||
If it can compile and run on Windows and/or Mac (see
|
||||
<a href="/years.html#2000_thadgavin">2000/thadgavin</a> for one example, amongst others), even better.</p>
|
||||
|
||||
<LI>
|
||||
<A HREF="years.html#1991_brnstnd">1991/brnstnd</A></LI>
|
||||
<h2>Q: I would like to mirror the IOCCC web site. May I do so?</h2>
|
||||
|
||||
<LI>
|
||||
<A HREF="years.html#1992_vern">1992/vern</A></LI>
|
||||
<p>We are not accepting mirror requests at this time, sorry.</p>
|
||||
|
||||
<LI>
|
||||
<A HREF="years.html#1996_august">1996/august</A></LI>
|
||||
<h2>Q: I want to publish some parts of the IOCCC in an article, or book, or newsletter, or use then in class/instructional notes, or quote from the IOCCC. May I do so?</h2>
|
||||
|
||||
<LI>
|
||||
<A HREF="years.html#1998_banks">1998/banks</A></LI>
|
||||
<p>Please ask the IOCCC judges first. Please send your request using the
|
||||
instructions on the <a href="/contact.html">contacting the IOCCC Judges</a> page.</p>
|
||||
|
||||
<LI>
|
||||
<A HREF="years.html#2000_jarijyrki">2000/jarijyrki</A></LI>
|
||||
</UL>
|
||||
<BR>In 1993, 1994 and 1995 the judges were unable to select a clear overall
|
||||
<h2>Q: What are the grand prize / Best of Show winners?</h2>
|
||||
|
||||
<p>In 1984-1987, the grand prize winners are:</p>
|
||||
|
||||
<ul>
|
||||
<li><p><a href="years.html#1984_mullender">1984/mullender</a></p></li>
|
||||
<li><p><a href="years.html#1985_shapiro">1985/shapiro</a></p></li>
|
||||
<li><p><a href="years.html#1986_wall">1986/wall</a></p></li>
|
||||
<li><p><a href="years.html#1987_lievaart">1987/lievaart</a></p></li>
|
||||
</ul>
|
||||
|
||||
|
||||
<p>Starting from 1988, the entry we liked the most in that year is called
|
||||
"Best of Show". Here are the "Best of Show" entries:</p>
|
||||
|
||||
<ul>
|
||||
<li><p><a href="years.html#1988_applin">1988/applin</a></p></li>
|
||||
<li><p><a href="years.html#1989_jar.2">1989/jar.2</a></p></li>
|
||||
<li><p><a href="years.html#1990_theorem">1990/theorem</a></p></li>
|
||||
<li><p><a href="years.html#1991_brnstnd">1991/brnstnd</a></p></li>
|
||||
<li><p><a href="years.html#1992_vern">1992/vern</a></p></li>
|
||||
<li><p><a href="years.html#1996_august">1996/august</a></p></li>
|
||||
<li><p><a href="years.html#1998_banks">1998/banks</a></p></li>
|
||||
<li><p><a href="years.html#2000_jarijyrki">2000/jarijyrki</a></p></li>
|
||||
<li><p><a href="years.html#2020_carlini">2020/carlini</a></p></li>
|
||||
</ul>
|
||||
|
||||
|
||||
<p>In 1993, 1994 and 1995 the judges were unable to select a clear overall
|
||||
winner. So to give a nod to the entry that had the highest approval ranking
|
||||
from the judges, they used the following awards:
|
||||
<UL>
|
||||
<LI>
|
||||
<A HREF="years.html#1993_rince">1993/rince</A> - Most Well Rounded</LI>
|
||||
from the judges, they used the following awards:</p>
|
||||
|
||||
<LI>
|
||||
<A HREF="years.html#1994_shapiro">1994/shapiro</A> - Most Well Rounded</LI>
|
||||
<ul>
|
||||
<li><p><a href="years.html#1993_rince">1993/rince</a> - Most Well Rounded</p></li>
|
||||
<li><p><a href="years.html#1994_shapiro">1994/shapiro</a> - Most Well Rounded</p></li>
|
||||
<li><p><a href="years.html#1995_leo">1995/leo</a> - Best Use of Obfuscation</p></li>
|
||||
</ul>
|
||||
|
||||
<LI>
|
||||
<A HREF="years.html#1995_leo">1995/leo</A> - Best Use of Obfuscation</LI>
|
||||
</UL>
|
||||
These could be considered the 'better entry' for those years with 1 or
|
||||
more other entries that came in close behind.
|
||||
|
||||
<P><FONT SIZE=+1>Q:</FONT> I managed to get entry xyzzy from year 19xx to compile; now it fails to run!
|
||||
<BR><FONT SIZE=+1>A:</FONT> switch(19xx/xyzzy) { <UL>
|
||||
<LI>case <A HREF="years.html#1984_mullender">1984/mullender</A>: try
|
||||
<PRE>main(){int i=512;do write(1," :-)\b\b\b\b",9),usleep(i);while(--i);}</PRE>
|
||||
instead.<BR>Enable reverse wraparound in your xterm window for best results.
|
||||
<BR>break;
|
||||
</LI>
|
||||
<P><LI>case <A HREF="years.html#1991_davidguy">1991/davidguy</A>: disable access
|
||||
control of your X server (<B>xhost +</B>). If it does not help (or if you
|
||||
<p>These could be considered the 'best entry' for those years with 1 or
|
||||
more other entries that came in close behind.</p>
|
||||
|
||||
<h2>Q: I managed to get entry XYZZY from year 19xx to compile; now it fails to run!</h2>
|
||||
|
||||
<p>switch(19xx/XYZZY) {</p>
|
||||
|
||||
<ul>
|
||||
<li><p>case <a href="years.html#1984_mullender">1984/mullender</a>: try</p>
|
||||
|
||||
<p> main(){int i=512;do write(1," :-)\b\b\b\b",9),usleep(i);while(--i);}</p></li>
|
||||
</ul>
|
||||
|
||||
|
||||
<p>instead. Enable reverse wraparound in your xterm window for best results.</p>
|
||||
|
||||
<p>break;</p>
|
||||
|
||||
<ul>
|
||||
<li>case <a href="years.html#1991_davidguy">1991/davidguy</a>: disable access
|
||||
control of your X server (<strong>xhost +</strong>). If it does not help (or if you
|
||||
see black screen), restart the X server without access control and with visual
|
||||
depth of 8 bits or less.
|
||||
<BR>break;
|
||||
</LI>
|
||||
<P><LI>default: Try enabling <TT>-fwritable-strings</TT> for GCC
|
||||
or its equivalent for other compilers.
|
||||
</LI></UL>
|
||||
}
|
||||
depth of 8 bits or less.</li>
|
||||
</ul>
|
||||
|
||||
<P><FONT SIZE=+1>Q:</FONT> How
|
||||
did the IOCCC get started?
|
||||
<BR><FONT SIZE=+1>A:</FONT>
|
||||
|
||||
One day (23 March 1984 to be exact), back Larry Bassel and I (Landon Curt
|
||||
<p>break;</p>
|
||||
|
||||
<ul>
|
||||
<li>default: Try enabling <TT>-fwritable-strings</TT> for GCC
|
||||
or its equivalent for other compilers.</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<p>}</p>
|
||||
|
||||
<h2>Q: How did the IOCCC get started?</h2>
|
||||
|
||||
<p>One day (23 March 1984 to be exact), 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.
|
||||
were both in our offices trying to fix some very broken code.</p>
|
||||
|
||||
<P>
|
||||
<p>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).</p>
|
||||
|
||||
We began to compare notes: ''<I>You won't believe the code I am trying to
|
||||
fix</I>''.
|
||||
And: ''<I>Well you cannot imagine the brain damage level of the code
|
||||
I'm trying to fix''</I>.
|
||||
As well as: ''<I>It's more than bad code, the author really
|
||||
had to try to make it this bad!</I>''.
|
||||
<p>We happened to both wander (at the same time) out to the hallway
|
||||
in Building 7C to clear our heads.</p>
|
||||
|
||||
<P>
|
||||
<p>We began to compare notes: '<em>You won't believe the code I am trying to fix</em>'.</p>
|
||||
|
||||
After a few minutes we wandered back into my office where I posted a
|
||||
<A HREF="http://groups.google.com/groups?q=Obfuscated&hl=en&lr=&ie=UTF-8&as_drrb=b&as_mind=1&as_minm=1&as_miny=1983&as_maxd=18&as_maxm=4&as_maxy=1984&selm=789%40nsc.UUCP&rnum=3&filter=0">flame
|
||||
to net.lang.c</A>
|
||||
inviting people to try and out obfuscate the
|
||||
UN*X source code we had just been working on.
|
||||
<p>And: '<em>Well you cannot imagine the brain damage level of the code I'm trying to
|
||||
fix'</em>.</p>
|
||||
|
||||
<BLOCKQUOTE>
|
||||
<p>As well as: '<em>It's more than bad code, the author really had to try to make it
|
||||
this bad!</em></p>
|
||||
|
||||
BTW:
|
||||
I (Landon Curt Noll)
|
||||
had to post this
|
||||
<A HREF="http://groups.google.com/groups?q=Obfuscated&hl=en&lr=&ie=UTF-8&as_drrb=b&as_mind=1&as_minm=1&as_miny=1983&as_maxd=18&as_maxm=4&as_maxy=1984&selm=795%40nsc.UUCP&rnum=10&filter=0">typo
|
||||
correction</A>.
|
||||
Thus began the tradition of putting typos in the contest rules and
|
||||
guidelines ... to make them more obfuscated of course! :-)
|
||||
<p>After a few minutes we wandered back into my office where I posted a
|
||||
<a href="http://groups.google.com/groups?q=Obfuscated&hl=en&lr=&ie=UTF-8&as_drrb=b&as_mind=1&as_minm=1&as_miny=1983&as_maxd=18&as_maxm=4&as_maxy=1984&selm=789%40nsc.UUCP&rnum=3&filter=0" title="">flame to to
|
||||
net.lang.c</a>
|
||||
inviting people to try and out obfuscate the UN*X source code we had just been working on.</p>
|
||||
|
||||
<P>
|
||||
<p>BTW: I (Landon Curt Noll) had to post this <a href="http://groups.google.com/groups?q=Obfuscated&hl=en&lr=&ie=UTF-8&as_drrb=b&as_mind=1&as_minm=1&as_miny=1983&as_maxd=18&as_maxm=4&as_maxy=1984&selm=795%40nsc.UUCP&rnum=10&filter=0">typo
|
||||
correction</a>.
|
||||
Thus began the tradition of putting typos in the contest rules and guidelines
|
||||
... to make them more obfuscated of course! :-)</p>
|
||||
|
||||
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) ).
|
||||
<p>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) ).</p>
|
||||
|
||||
<P>
|
||||
<p>BTW: See the story about the '<a href="/1993/mills/mills.hint">Bill Gates</a>' award. :-)</p>
|
||||
|
||||
BTW:
|
||||
See the story about the ''
|
||||
<A HREF="/1993/mills/README.md">Bill Gates</A>'' award. :-)
|
||||
<p>OK, back to the story.</p>
|
||||
|
||||
</BLOCKQUOTE>
|
||||
|
||||
<P>
|
||||
|
||||
OK, back to the story.
|
||||
We (Larry and I) received a number of entries by email.
|
||||
<p>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
|
||||
<A HREF="http://groups.google.com/groups?q=Obfuscated&hl=en&lr=&ie=UTF-8&as_drrb=b&as_mind=1&as_minm=1&as_miny=1983&as_maxd=18&as_maxm=4&as_maxy=1984&selm=837%40nsc.UUCP&rnum=2&filter=0">1st IOCCC winners</A>
|
||||
were posted on 17 April 1984.
|
||||
decided to include International in the name.</p>
|
||||
|
||||
<BLOCKQUOTE>
|
||||
<p>The
|
||||
<a href="http://groups.google.com/groups?q=Obfuscated&hl=en&lr=&ie=UTF-8&as_drrb=b&as_mind=1&as_minm=1&as_miny=1983&as_maxd=18&as_maxm=4&as_maxy=1984&selm=837%40nsc.UUCP&rnum=2&filter=0">1st IOCCC winners</a>
|
||||
were posted on 17 April 1984.</p>
|
||||
|
||||
There were 4 winners in 1984:
|
||||
<p>There were 4 winners in 1984:</p>
|
||||
|
||||
<OL>
|
||||
<LI> <A
|
||||
HREF="http://groups.google.com/groups?q=Obfuscated&hl=en&lr=&ie=UTF-8&as_drrb=b&as_mind=1&as_minm=1&as_miny=1983&as_maxd=18&as_maxm=4&as_maxy=1984&selm=842%40nsc.UUCP&rnum=8&filter=0"><dis>honorable
|
||||
mention</A>
|
||||
<LI> <A
|
||||
HREF="http://groups.google.com/groups?q=Obfuscated&hl=en&lr=&ie=UTF-8&as_drrb=b&as_mind=1&as_minm=1&as_miny=1983&as_maxd=18&as_maxm=4&as_maxy=1984&selm=843%40nsc.UUCP&rnum=7&filter=0">3rd
|
||||
place</A>
|
||||
<LI> <A
|
||||
HREF="http://groups.google.com/groups?q=Obfuscated&hl=en&lr=&ie=UTF-8&as_drrb=b&as_mind=1&as_minm=1&as_miny=1983&as_maxd=18&as_maxm=4&as_maxy=1984&selm=844%40nsc.UUCP&rnum=6&filter=0">2nd
|
||||
place</A>
|
||||
<LI> <A
|
||||
HREF="http://groups.google.com/groups?q=Obfuscated&hl=en&lr=&ie=UTF-8&as_drrb=b&as_mind=1&as_minm=1&as_miny=1983&as_maxd=18&as_maxm=4&as_maxy=1984&selm=845%40nsc.UUCP&rnum=5&filter=0">1st
|
||||
place</A>
|
||||
</OL>
|
||||
<ol>
|
||||
<li><a href="http://groups.google.com/groups?q=Obfuscated&hl=en&lr=&ie=UTF-8&as_drrb=b&as_mind=1&as_minm=1&as_miny=1983&as_maxd=18&as_maxm=4&as_maxy=1984&selm=842%40nsc.UUCP&rnum=8&filter=0">(dis)honorable mention</a></li>
|
||||
<li><a href="http://groups.google.com/groups?q=Obfuscated&hl=en&lr=&ie=UTF-8&as_drrb=b&as_mind=1&as_minm=1&as_miny=1983&as_maxd=18&as_maxm=4&as_maxy=1984&selm=843%40nsc.UUCP&rnum=7&filter=0">3rd place</a></li>
|
||||
<li><a href="http://groups.google.com/groups?q=Obfuscated&hl=en&lr=&ie=UTF-8&as_drrb=b&as_mind=1&as_minm=1&as_miny=1983&as_maxd=18&as_maxm=4&as_maxy=1984&selm=844%40nsc.UUCP&rnum=6&filter=0">2nd place</a></li>
|
||||
<li><a href="http://groups.google.com/groups?q=Obfuscated&hl=en&lr=&ie=UTF-8&as_drrb=b&as_mind=1&as_minm=1&as_miny=1983&as_maxd=18&as_maxm=4&as_maxy=1984&selm=845%40nsc.UUCP&rnum=5&filter=0">1st place</a></li>
|
||||
</ol>
|
||||
|
||||
BTW:
|
||||
The <dis>honorable
|
||||
mention wished to remain anonymous.
|
||||
|
||||
<p>BTW: The (dis)honorable mention wished to remain anonymous.
|
||||
While many have asked who it was, we have continued to follow the
|
||||
author's wish to remain anonymous.
|
||||
A few years ago, we asked the author if they still wanted to remain anonymous.
|
||||
They said: ''<I>Yes, I want to keep my anonymity.
|
||||
But you can tell them that I am a well known for my connection to the
|
||||
C language"</I>''.
|
||||
It was not until 2001 that another
|
||||
<A HREF="/years.html#2001_anonymous">anonymous
|
||||
entry</A> received an award.
|
||||
author's wish to remain anonymous.</p>
|
||||
|
||||
<P>
|
||||
<p>A few years ago, we asked the author if they still wanted to remain anonymous.
|
||||
They said: '<em>Yes, I want to keep my anonymity. But you can tell them that I am a well known for my connection to the
|
||||
C language"</em>'. It was not until 2001 that another <a href="/years.html#2001_anonymous">anonymous
|
||||
entry</a> received an award.</p>
|
||||
|
||||
BTW:
|
||||
The
|
||||
<A HREF="/years.html#1984_mullender">1984 winner</A>
|
||||
remains one of my (Landon Curt Noll) all time favorites.
|
||||
<p>BTW: The <a href="/years.html#1984_mullender">1984 winner</a> remains one of my (Landon
|
||||
Curt Noll) all time favorites.</p>
|
||||
|
||||
</BLOCKQUOTE>
|
||||
<p>The name used in the posting of the <a href="http://groups.google.com/groups?q=Obfuscated&hl=en&lr=&ie=UTF-8&as_drrb=b&as_mind=1&as_minm=1&as_miny=1983&as_maxd=18&as_maxm=4&as_maxy=1984&selm=837%40nsc.UUCP&rnum=2&filter=0">1st IOCCC
|
||||
winner</a>
|
||||
posting was <strong>I</strong>nternational <strong>O</strong>bfuscated <strong>C</strong> <strong>C</strong>ode <B>C</B>ontest or
|
||||
<strong>IOCCC</strong> for short.</p>
|
||||
|
||||
The name used in the posting of the
|
||||
<A HREF="http://groups.google.com/groups?q=Obfuscated&hl=en&lr=&ie=UTF-8&as_drrb=b&as_mind=1&as_minm=1&as_miny=1983&as_maxd=18&as_maxm=4&as_maxy=1984&selm=837%40nsc.UUCP&rnum=2&filter=0">1st
|
||||
IOCCC winner</A>
|
||||
posting was <B>I</B>nternational <B>O</B>bfuscated <B>C</B> <B>C</B>ode
|
||||
<B>C</B>ontest or <B>IOCCC</B> for short.
|
||||
<p>The posting said '<em>1st annual</em>', so in 1985 we held the <a href="/years.html#1985">2nd IOCCC contest</a>
|
||||
and the tradition continues as the longest running contest on the Internet.</p>
|
||||
|
||||
<P>
|
||||
The posting said ''<I>1st annual</I>'',
|
||||
so in 1985 we held the
|
||||
<A HREF="/years.html#1985">2nd IOCCC contest</A>
|
||||
and the tradition continues as the longest running contest
|
||||
on the Internet.
|
||||
<p>P.S. Part of the inspiration for making the IOCCC a contest goes to the
|
||||
<a href="http://www.bulwer-lytton.com/">Bulwer-Lytton fiction contest</a>.</p>
|
||||
|
||||
<P>
|
||||
<p><P></p>
|
||||
|
||||
P.S. Part of the inspiration for making the IOCCC a contest goes to the
|
||||
<A HREF="http://www.bulwer-lytton.com/">Bulwer-Lytton fiction contest</A>.
|
||||
<p>P<sup>2</sup>.S. See the
|
||||
<a href="/all/README">overall README</a>
|
||||
for more details.</p>
|
||||
|
||||
<P>
|
||||
|
||||
P^2.S. See the
|
||||
<A HREF="/all/README">overall README</A>
|
||||
for more details.
|
||||
|
||||
</BLOCKQUOTE>
|
||||
|
||||
<HR>
|
||||
|
||||
<!-- Authored by: <A HREF="http://www.sfik.com">sc</A> -->
|
||||
|
||||
<TABLE><TR>
|
||||
<p><TABLE><TR>
|
||||
<TD><a rel="license" href="https://creativecommons.org/licenses/by-sa/3.0/"><img alt="Creative Commons License" style="border-width:0" src="/png/by-sa-3.0-88x31.png" /></a></TD>
|
||||
<TD><P>© Copyright 1984-2020,
|
||||
<A HREF="/judges.html">Leo Broukhis, Landon Curt Noll</A>
|
||||
- All rights reserved<BR>
|
||||
<a href="/judges.html">Leo Broukhis, Landon Curt Noll</a>
|
||||
- All rights reserved<br>
|
||||
This work is licensed under a <a rel="license" href="https://creativecommons.org/licenses/by-sa/3.0/">Creative Commons Attribution-ShareAlike 3.0 Unported License</a>.</P></TD>
|
||||
<TD> <!--<a href="https://validator.w3.org/check?uri=referer"><img src="https://www.w3.org/Icons/valid-html401" alt="Valid HTML 4.01 Transitional" height="31" width="88"></a>--></TD>
|
||||
</TR></TABLE>
|
||||
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
</TR></TABLE></p>
|
||||
@@ -0,0 +1,433 @@
|
||||
<HTML>
|
||||
<BODY TEXT="#000000">
|
||||
|
||||
<center><img alt="IOCCC" SRC="png/ioccc.png"></center><br>
|
||||
<center><font size="6"><I>The International Obfuscated C Code Contest </I></font></center><br>
|
||||
<center><P>[ <A HREF="judges.html">The judges</A> |
|
||||
<A HREF="main.html">IOCCC home page</A> |
|
||||
<A HREF="main.html#enter">How to enter</A> |
|
||||
<B>FAQ</B> |
|
||||
<A HREF="contact.html">Contacting the IOCCC</A>
|
||||
<br>
|
||||
<A HREF="main.html#new">IOCCC news</A> |
|
||||
<A HREF="winners.html">People who have won</A> |
|
||||
<A HREF="years.html">Winning entries</A> ]</P></center>
|
||||
<br>
|
||||
|
||||
<HR>
|
||||
|
||||
# The IOCCC FAQ
|
||||
|
||||
## Q:</font> How many entries do you receive each year?
|
||||
|
||||
By tradition, we do not say.
|
||||
|
||||
## Q: How many judging rounds do you have?
|
||||
Are you trying to trick us? We will not say that either.
|
||||
|
||||
## Q: I cannot get entry XYZZY from year 19xx to compile!
|
||||
|
||||
Some winners, particularly winners from long ago, no longer compile on more
|
||||
modern systems because the C language has evolved (i.e. the modern C compilers
|
||||
are much more strict in what they accept as a valid program), or the entry
|
||||
depended on operation system and library features that where common back then
|
||||
but are different/missing today.
|
||||
|
||||
E.g. it is highly unlikely that you'll be able to execute
|
||||
[1984/mullender](years.html#1984/mullender) on a computer you're using to read
|
||||
this FAQ.
|
||||
|
||||
## Q: I found a bug in a previous winner, what should I do?
|
||||
|
||||
We do not 'maintain' the contest winners. The code is made available on an 'AS
|
||||
IS' basis. If you have a FIX for
|
||||
a entry, we suggest that you try and email it to the authors and to CC:
|
||||
us using the instructions on the
|
||||
[contacting the IOCCC Judges](contact.hml) page.
|
||||
|
||||
IF you have a FIX, and IF the author does not object, and IF your fix
|
||||
looks reasonable, we will add a web link to a copy of your email
|
||||
for others to see.
|
||||
|
||||
## Q: Are there types of entries that are submitted so frequently that the judges get tired of them?
|
||||
|
||||
|
||||
Yes, there are types of entries that show up over and over again.
|
||||
|
||||
The [guidelines](guidelines.html) say:
|
||||
|
||||
> _We tend to dislike programs that: are similar to previous winners_
|
||||
|
||||
We like variety. However too often we see (please look at the winning examples
|
||||
given to be aware of the level of the competition):
|
||||
|
||||
### maze generator
|
||||
- [1985/shapiro](years.html#1985_shapiro)
|
||||
|
||||
- [1991/buzzard](years.html#1991_buzzard)
|
||||
|
||||
- [1995/cdua](years.html#1995_cdua)
|
||||
|
||||
- [1995/dodsond2](years.html#1995_dodsond2)
|
||||
|
||||
- [1998/bas1](years.html#1998_bas1)
|
||||
|
||||
### tic-tac-toe game
|
||||
|
||||
- [1991/westley](years.html#1991_westley)
|
||||
|
||||
- [1996/jonth](years.html#1996_jonth)
|
||||
|
||||
- [2020/carlini](years.html#2020_carlini)
|
||||
|
||||
### solitaire/Othello game
|
||||
|
||||
- [1987/lievaart](years.html#1987_lievaart)
|
||||
|
||||
- [1994/dodsond1](years.html#1994_dodsond1)
|
||||
|
||||
|
||||
### generating small primes (below is the list of all prime related winners)
|
||||
|
||||
- [1985/august](years.html#1985_august)
|
||||
|
||||
- [1988/applin](years.html#1988_applin)
|
||||
|
||||
- [1994/weisberg](years.html#1994_weisberg)
|
||||
|
||||
- [1995/makarios](years.html#1995_makarios)
|
||||
|
||||
- [1996/dalbec](years.html#1996_dalbec)
|
||||
|
||||
- [2000/bellard](years.html#2000_bellard)
|
||||
|
||||
_As you can see, just a list of primes (let alone small primes) does not cut it
|
||||
anymore._
|
||||
|
||||
### self reproducing program
|
||||
|
||||
- [1990/scjones](years.html#1990_scjones)
|
||||
|
||||
- [1994/smr](years.html#1994_smr) - _do not claim your program is the smallest one without seeing it!
|
||||
|
||||
- [2000/dhyang](years.html#2000_dhyang) - _unless you beat this one, your chances are slim_
|
||||
|
||||
### entries that just print "Hello, world!"
|
||||
|
||||
- [1984/anonymous](years.html#1984_anonymous)
|
||||
|
||||
- [1985/applin](years.html#1985_applin)
|
||||
|
||||
- [1986/applin](years.html#1986_applin)
|
||||
|
||||
- [1986/holloway](years.html#1986_holloway)
|
||||
|
||||
- [1989/jar.1](years.html#1989_jar.1)
|
||||
|
||||
- [1992/lush](years.html#1992_lush)
|
||||
|
||||
- [2000/tomx](years.html#2000_tomx)
|
||||
|
||||
_**it's so 20th century...**_
|
||||
|
||||
### entries that use some complex state machine/table to print something
|
||||
|
||||
- [1988/isaak](years.html#1988_isaak)
|
||||
|
||||
- [1988/phillipps](years.html#1988_phillipps)
|
||||
|
||||
### rot13
|
||||
|
||||
- [1985/sicherman](years.html#1985_sicherman)
|
||||
|
||||
- [1989/westley](years.html#1989_westley)
|
||||
|
||||
- [1990/dg](years.html#1990_dg)
|
||||
|
||||
- [1991/fine](years.html#1991_fine)
|
||||
|
||||
### **pi** or **e** computation</font>
|
||||
|
||||
- [1986/august](years.html#1986_august)
|
||||
|
||||
- [1988/robison](years.html#1988_robison)
|
||||
|
||||
- [1988/westley](years.html#1988_westley)
|
||||
|
||||
- [1989/roemer](years.html#1989_roemer)
|
||||
|
||||
HINT: It is not fatal to send in those types of entries, it is just MUCH
|
||||
HARDER to win. Such an entry would have to do something really unique and
|
||||
interesting to even make it into the final judging rounds. Entries that
|
||||
re-use these 'worn out' themes frequently lose to other entries that do
|
||||
something different.
|
||||
|
||||
HINT: If you really MUST send in an entry based on an 'over-used theme',
|
||||
be sure that it is obfuscated in several new and novel ways. Be sure to clearly
|
||||
explain near the beginning of your remarks why you are submitting a entry
|
||||
based on an 'over-used theme' and why the judges should not simply toss
|
||||
it out as being boring.
|
||||
|
||||
## Q: What should I write in the 'remarks' (remarks.md) section of my entry, if anything at all?
|
||||
|
||||
As much or as little as you wish.
|
||||
|
||||
### What helps:
|
||||
|
||||
- explaining what your entry does
|
||||
|
||||
- how to entice it to do what it is supposed to do
|
||||
|
||||
- what obfuscations are used
|
||||
|
||||
- what are the limitations of your entry in respect of portability and/or input data
|
||||
|
||||
- how it works (if you are really condescending)
|
||||
|
||||
### What does not help:
|
||||
|
||||
- admitting that your entry is not very obfuscated (you see, the contest is
|
||||
called <B>IOCCC</B>, not <B>INVOCCC</B>); but even if you do not admit it, not
|
||||
very obfuscated entries have a minuscule chance to win (although
|
||||
[2000/tomx](years.html#2000_tomx) is a notable counterexample)
|
||||
|
||||
- mentioning your name or any identifying information in the remark section (or
|
||||
in the C code for that matter) - we like to be unbiased during the judging
|
||||
rounds; we look at the author name only if an entry wins
|
||||
|
||||
- leaving the remark section empty
|
||||
|
||||
## Q: I am confused: what should I put to the 'build' section?
|
||||
|
||||
The 'build' section must contain UNIX shell-style commands to compile your C
|
||||
language entry **in a file named prog.c** and produce an executable file. More than one command is allowed,
|
||||
as far as the size rule is followed.
|
||||
Usually one (or more) of these commands will be an invocation of
|
||||
a C compiler (use **cc** or <B>gcc</B>), but there may be exceptions
|
||||
(or not anymore, see [2000/tomx](years.html#2000_tomx)).
|
||||
|
||||
If your entry depends on a particular source file name during compilation or execution, you will have to put a line
|
||||
|
||||
cp prog.c desired_name.c
|
||||
|
||||
before the compiler invocation line.
|
||||
|
||||
If in doubt, put
|
||||
|
||||
cc -o prog prog.c
|
||||
|
||||
in the 'build' section.
|
||||
|
||||
Note however that with the [mkiocccentry
|
||||
tool](https://github.com/ioccc-src/mkiocccentry) we have an example Makefile
|
||||
which you should update, using the instructions above if necessary.
|
||||
|
||||
|
||||
## Q: What happened to the winners for 1997, 1999 2002, 2003, 2007 - 2010, 2016, 2017, 2021 and 2022 ?
|
||||
|
||||
There are none. There was no IOCCC in those years.
|
||||
|
||||
## Q: Why don't you publish non-winners?
|
||||
|
||||
Because the publication on the IOCCC site **_IS_**
|
||||
the award! Anyone is free to put their IOCCC hopefuls, lookalikes and/or
|
||||
non-winners on their web page for everyone to see.
|
||||
|
||||
## Q: How much time does it take to judge the contest?
|
||||
|
||||
It takes a fair amount of time to setup, run, answer email, process entries,
|
||||
review entries, trim down the set entries to a set of winners, doing the
|
||||
write-up of the winners, announcing the winners, reviewing final edits of the
|
||||
winning entry set, posting the winners, being flamed :-), tell folks who send in
|
||||
late entries to wait until the next contest, etc... It takes a few weekends and
|
||||
a number nights of study and work ... which is hard given that we are busy with
|
||||
many other activities as well.
|
||||
|
||||
Note that we do not contact the author if an entry does not compile or does not
|
||||
work as advertised, we might attempt to fix obvious compilation problems or
|
||||
incompatibilities, but no more than that - so be sure that your entry does work
|
||||
on at least a couple different platforms, at least one of them being UNIX or
|
||||
POSIX-conforming.
|
||||
|
||||
|
||||
## Q: What platform should I assume for my entry?
|
||||
|
||||
Your entry must compile with GCC and run under at least one flavor of UNIX (e.g.
|
||||
Linux or Solaris). To improve chances to win, it should work under both BSD and
|
||||
SysV style UNIX (think <B>stty cbreak</B>), and should not depend on endianness.
|
||||
If it can compile and run on Windows and/or Mac (see
|
||||
[2000/thadgavin](/years.html#2000_thadgavin) for one example, amongst others), even better.
|
||||
|
||||
## Q: I would like to mirror the IOCCC web site. May I do so?
|
||||
|
||||
We are not accepting mirror requests at this time, sorry.
|
||||
|
||||
## Q: I want to publish some parts of the IOCCC in an article, or book, or newsletter, or use then in class/instructional notes, or quote from the IOCCC. May I do so?
|
||||
|
||||
Please ask the IOCCC judges first. Please send your request using the
|
||||
instructions on the [contacting the IOCCC Judges](/contact.html) page.
|
||||
|
||||
## Q: What are the grand prize / Best of Show winners?
|
||||
|
||||
In 1984-1987, the grand prize winners are:
|
||||
|
||||
- [1984/mullender](years.html#1984_mullender)
|
||||
|
||||
- [1985/shapiro](years.html#1985_shapiro)
|
||||
|
||||
- [1986/wall](years.html#1986_wall)
|
||||
|
||||
- [1987/lievaart](years.html#1987_lievaart)
|
||||
|
||||
Starting from 1988, the entry we liked the most in that year is called
|
||||
"Best of Show". Here are the "Best of Show" entries:
|
||||
|
||||
- [1988/applin](years.html#1988_applin)
|
||||
|
||||
- [1989/jar.2](years.html#1989_jar.2)
|
||||
|
||||
- [1990/theorem](years.html#1990_theorem)
|
||||
|
||||
- [1991/brnstnd](years.html#1991_brnstnd)
|
||||
|
||||
- [1992/vern](years.html#1992_vern)
|
||||
|
||||
- [1996/august](years.html#1996_august)
|
||||
|
||||
- [1998/banks](years.html#1998_banks)
|
||||
|
||||
- [2000/jarijyrki](years.html#2000_jarijyrki)
|
||||
|
||||
- [2020/carlini](years.html#2020_carlini)
|
||||
|
||||
|
||||
In 1993, 1994 and 1995 the judges were unable to select a clear overall
|
||||
winner. So to give a nod to the entry that had the highest approval ranking
|
||||
from the judges, they used the following awards:
|
||||
|
||||
- [1993/rince](years.html#1993_rince) - Most Well Rounded
|
||||
|
||||
- [1994/shapiro](years.html#1994_shapiro) - Most Well Rounded
|
||||
|
||||
- [1995/leo](years.html#1995_leo) - Best Use of Obfuscation
|
||||
|
||||
These could be considered the 'best entry' for those years with 1 or
|
||||
more other entries that came in close behind.
|
||||
|
||||
## Q: I managed to get entry XYZZY from year 19xx to compile; now it fails to run!
|
||||
|
||||
switch(19xx/XYZZY) {
|
||||
|
||||
- case [1984/mullender](years.html#1984_mullender): try
|
||||
|
||||
main(){int i=512;do write(1," :-)\b\b\b\b",9),usleep(i);while(--i);}
|
||||
|
||||
instead. Enable reverse wraparound in your xterm window for best results.
|
||||
|
||||
break;
|
||||
|
||||
- case [1991/davidguy](years.html#1991_davidguy): disable access
|
||||
control of your X server (**xhost +**). If it does not help (or if you
|
||||
see black screen), restart the X server without access control and with visual
|
||||
depth of 8 bits or less.
|
||||
|
||||
break;
|
||||
|
||||
- default: Try enabling <TT>-fwritable-strings</TT> for GCC
|
||||
or its equivalent for other compilers.
|
||||
|
||||
}
|
||||
|
||||
## Q: How did the IOCCC get started?
|
||||
|
||||
One day (23 March 1984 to be exact), 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's 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 to
|
||||
net.lang.c](http://groups.google.com/groups?q=Obfuscated&hl=en&lr=&ie=UTF-8&as_drrb=b&as_mind=1&as_minm=1&as_miny=1983&as_maxd=18&as_maxm=4&as_maxy=1984&selm=789%40nsc.UUCP&rnum=3&filter=0")
|
||||
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](http://groups.google.com/groups?q=Obfuscated&hl=en&lr=&ie=UTF-8&as_drrb=b&as_mind=1&as_minm=1&as_miny=1983&as_maxd=18&as_maxm=4&as_maxy=1984&selm=795%40nsc.UUCP&rnum=10&filter=0).
|
||||
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](/1993/mills/mills.hint)' 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](http://groups.google.com/groups?q=Obfuscated&hl=en&lr=&ie=UTF-8&as_drrb=b&as_mind=1&as_minm=1&as_miny=1983&as_maxd=18&as_maxm=4&as_maxy=1984&selm=837%40nsc.UUCP&rnum=2&filter=0)
|
||||
were posted on 17 April 1984.
|
||||
|
||||
|
||||
There were 4 winners in 1984:
|
||||
|
||||
1. [(dis)honorable mention](http://groups.google.com/groups?q=Obfuscated&hl=en&lr=&ie=UTF-8&as_drrb=b&as_mind=1&as_minm=1&as_miny=1983&as_maxd=18&as_maxm=4&as_maxy=1984&selm=842%40nsc.UUCP&rnum=8&filter=0)
|
||||
2. [3rd place](http://groups.google.com/groups?q=Obfuscated&hl=en&lr=&ie=UTF-8&as_drrb=b&as_mind=1&as_minm=1&as_miny=1983&as_maxd=18&as_maxm=4&as_maxy=1984&selm=843%40nsc.UUCP&rnum=7&filter=0)
|
||||
3. [2nd place](http://groups.google.com/groups?q=Obfuscated&hl=en&lr=&ie=UTF-8&as_drrb=b&as_mind=1&as_minm=1&as_miny=1983&as_maxd=18&as_maxm=4&as_maxy=1984&selm=844%40nsc.UUCP&rnum=6&filter=0)
|
||||
4. [1st place](http://groups.google.com/groups?q=Obfuscated&hl=en&lr=&ie=UTF-8&as_drrb=b&as_mind=1&as_minm=1&as_miny=1983&as_maxd=18&as_maxm=4&as_maxy=1984&selm=845%40nsc.UUCP&rnum=5&filter=0)
|
||||
|
||||
BTW: The (dis)honorable mention wished to remain anonymous.
|
||||
While many have asked who it was, we have continued to follow the
|
||||
author's wish to remain anonymous.
|
||||
|
||||
A few years ago, we asked the author if they still wanted to remain anonymous.
|
||||
They said: '_Yes, I want to keep my anonymity. But you can tell them that I am a well known for my connection to the
|
||||
C language"_'. It was not until 2001 that another [anonymous
|
||||
entry](/years.html#2001_anonymous) received an award.
|
||||
|
||||
BTW: The [1984 winner](/years.html#1984_mullender) remains one of my (Landon
|
||||
Curt Noll) all time favorites.
|
||||
|
||||
|
||||
The name used in the posting of the [1st IOCCC
|
||||
winner](http://groups.google.com/groups?q=Obfuscated&hl=en&lr=&ie=UTF-8&as_drrb=b&as_mind=1&as_minm=1&as_miny=1983&as_maxd=18&as_maxm=4&as_maxy=1984&selm=837%40nsc.UUCP&rnum=2&filter=0)
|
||||
posting was **I**nternational **O**bfuscated **C** **C**ode <B>C</B>ontest or
|
||||
**IOCCC** for short.
|
||||
|
||||
The posting said '_1st annual_', so in 1985 we held the [2nd IOCCC contest](/years.html#1985)
|
||||
and the tradition continues as the longest running contest on the Internet.
|
||||
|
||||
P.S. Part of the inspiration for making the IOCCC a contest goes to the
|
||||
[Bulwer-Lytton fiction contest](http://www.bulwer-lytton.com/).
|
||||
|
||||
<P>
|
||||
|
||||
P^2.S. See the
|
||||
[overall README](/all/README)
|
||||
for more details.
|
||||
|
||||
<TABLE><TR>
|
||||
<TD><a rel="license" href="https://creativecommons.org/licenses/by-sa/3.0/"><img alt="Creative Commons License" style="border-width:0" src="/png/by-sa-3.0-88x31.png" /></a></TD>
|
||||
<TD><P>© Copyright 1984-2020,
|
||||
[Leo Broukhis, Landon Curt Noll](/judges.html)
|
||||
- All rights reserved<br>
|
||||
This work is licensed under a <a rel="license" href="https://creativecommons.org/licenses/by-sa/3.0/">Creative Commons Attribution-ShareAlike 3.0 Unported License</a>.</P></TD>
|
||||
<TD> <!--<a href="https://validator.w3.org/check?uri=referer"><img src="https://www.w3.org/Icons/valid-html401" alt="Valid HTML 4.01 Transitional" height="31" width="88"></a>--></TD>
|
||||
</TR></TABLE>
|
||||
Reference in new issue
Block a user