Why I like the IOCCC
It's a contest that doesn't require resources only a few people on
earth can spend, like:
- heavy machinery (like you need for the fastest crossing of the
Atlantic Ocean or travelling around the world in a balloon).
Just a small bitty box with a C compiler and I'm set.
- Loads of $$$ (see previous paragraph). Having a few good books handy,
among them a C reference or The Standard itself, is enough.
- Physical power (like going for the weight lifter world championship)
or endurance (Ironman Triathlon). Playing volleyball and doing
some cycling every now and then seems to help, though, as my case
demonstrates...
The other ingredients (besides C compilers [note plural!] and books)
for a successful career as obfuscator magnus are
- A creative mind. You want to boldly go where no programmer has gone
before. Without imagination, you're bound to run in circles or
reinvent the wheel. If you wanted to become an inventor ever since
your kindergarten days, you're certainly on the right track.
- Time. IOCCC entries are rarely written at 1 KLOC/day, rather
at 1 line of code per hour, if I include everything, like overhauls,
debugging and testing on various implementations. Programming is
comparable to doing science: the results you publish in a
research journal are never those from your first measurements.
The experimental setup is tweaked time and again to get at a
clean signal with as few noise as possible.
In the same way, the final program is never the one you had after
the first successful compilation and run. Any above average
program has seen many hours of fine tuning.
Home
Here are my three winning entries of the 1996 IOCCC along with
their original and complete remarks.
Best Algorithm
A special purpose expression evaluator.
Best Utility
Determins the memory allocation honesty of your operating system.
Worst Abuse of the Preprocessor
Calculate Easter dates within the Gregorian Calendar.
In fact I submitted a fourth entry, which did not win. In other
words, it was a
Loser
rot13 invariant multipurpose utility.
Well, three out of four ain't bad, I think.
The 1998 IOCCC
Oh well, after my first hat-trick I began hacking on more wild and
unseen C programs.
I've licked blood and it tasted too good. At first I was disappointed
the 1997 IOCCC was cancelled due to Usenix lag but in hindsight it looks
like the extra year was ideal for my entries to mature even more.
Most erratic behavior
Yet another random number generator.
Most space efficient
Samefile - find identical files that waste disk space
Worst/Best (Ab)use of the Preprocessor
stdc - test your implementation's standard conformance
Note: this source contains some formfeeds and vertical tab characters.
Your browser may not adequately render those. The symptom is missing
whitespace, e.g. the first line reads defineH(x) with no characters
between define and H(x).
No Losers?
Yes, I submitted two losers. You won't see them here. They're just too
good to waste them :-) You may see them next year...
The 2001 IOCCC
Back to normal. Just one out of three entries won. I'm proud that it
is in a new category: best one-liner. Some might think one-liners are
easy to obfuscate because they are so terse. Some might think they are
hard to obfuscate because there is not much you can do. Decide for
yourself.
Best One-Liner
match - a shell glob pattern matcher
Validate this page!