Beta
×

Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and  learn more about it. Thanks for reading, and for making the site better!

15th IOCCC Results Posted

michael posted more than 13 years ago | from the new-definition-of-semaphore dept.

Programming 69

leob writes: "FWIW, the 15th International Obfuscated C Code Contest finally came to a conclusion. Read the main page, or, get one big tarball." The contest took a little longer than expected, but the results are fine example of their craft.

cancel ×

69 comments

Sorry! There are no comments related to the filter you selected.

Re:Why bother? (3)

tonyPick (161066) | more than 13 years ago | (#480002)

What use is this? Surely winning this competition is a sign you should never work again? Obfuscated code (aka elegant) is no faster, even if it is shorter, and may even compile into worse code.

Well, (IMO) you're completely wrong. IOCC code isn't just "bad code getting awards". the winners of the IOCC show an understanding of the subtleties of the way the C language work far beyond that of your average C programmer, or even your pretty good C programmer. Or, to quote Peter Van Der Linden, "..[The IOCC] is a lot of fun and can extend your knowledge in surprising ways".
Spend a few hours or looking through the archives at things like "best one liners" and try and figure out what they do without reading the description - or maybe look through gems like the 1500 character BASIC interpreter. Deobfuscate some entries to figure out how they work and you might find you learn something about what the language can do and it might improve your day to day programming.

For me this shows the problm with open source - people are more interested in playing silly games than actually getting something constructive done.
Yuk, Trollish.

Stupid formatting (1)

josu (144992) | more than 13 years ago | (#480003)

Removing all whitespace from code (or formatting code into ASCII pictures) is useless and annoying. Congrats to the winning submissions which were formatted reasonably and were still obfuscated.

got tired (1)

macro (68399) | more than 13 years ago | (#480004)

I suggest slashdot team to mirror any link before it gets posted on the front page

Books (2)

i_know_it (303523) | more than 13 years ago | (#480005)

I wonder if they'll make a translation of The Bible in c code syntax? ... while(1) hangOnCross(); .. Or The Iceman Cometh: ... while(!ANY_HOPE) { if(have_coin || bartender_will_put_on_tab) { getDrink(); } if(HUGO) say("DON'T BE A FOOL! BUY ME A TRINK!"); else ignoreHugo(); have_coin = begPatronsForADollar(); bartender_will_put_on_tab = begHarryForADrink(); } ...

Re:Why bother? (1)

Howie (4244) | more than 13 years ago | (#480006)

The point was more that MS have some sort of idea about quality code, not that they produced the One True Programming Book.

Anyway, please name some (no, really) - I've been looking around for books that cover the practice of programming, not a language reference or tutorial, and not a specific discipline. All I really came up with is Kernighan's Practice Of Programming, and some of Programming Pearls. They also both share Solid Code's anecdotal style, which I liked.

Re: Hungarian Notation - anyone whoe learned Windows programming early, from Petzold would have soaked it up - I know I did for Windows programming - although I don't do a lot of that at the moment. I suspect it's around more than you think, particularly in the windows world.

Obfuscated != Well crafted (was Re:Why bother?) (3)

Simon Brooke (45012) | more than 13 years ago | (#480007)

Uhhmmm...

I really enjoy the IOCCC, and every year I download the results and play with them. Some are startlingly clever, like the flight simulator a couple of years ago. Writing these obfuscated programs is a special skill, and, yes, it is a form of craftsmanship within the context of the competition. And, of course, the people who can write these little gems have to be brilliant programmers first.

But in all normal circumstances, obfuscated code in any language is bad code . The whole purpose of highlevel languages is to communicate with human beings, not to communicate with the machine: to communicate with the programmer who is to come after you, who has to debug your code, or port it, or update it because some library it uses is obsolete and some of the API has been deprecated or dropped. That programmer may of course be you.

Code that can't be picked up by someone else in six months time - someone possibly less skilled than yourself, and read, and understood, and modified, is poorly crafted. Bad workmanship. If you can't understand this, you aren't going to be a successful member of any development team, either commercial or open source.

Enjoy the IOCCC as a cort of cross between puzzle games, satire, and poetry. A very special kind of programming - a very skilled kind of programming - but one which has virtually no carry-over into the real world.

Re:Why bother? (1)

Reality Master 101 (179095) | more than 13 years ago | (#480008)

So a corporatist government combined with thousands of groups whose sole stated interest is to screw the consumer out of as much money as possible is better? How does that make any sense?

Because governments have the force of law, and corporations do not. There is no law requiring me to use Microsoft software, Xerox copiers or Blue Shield medical insurance. Better that I have the freedom to choose the honest companies over the dishonest ones, rather than being screwed 100% of the time, by law, by the government.


--

Re:Download all winning entries (1)

chongo (113839) | more than 13 years ago | (#480009)

To download the just 2000 IOCCC winners:
2000.tar.Z [ioccc.org]
2000.tgz [ioccc.org]
To download all IOCCC winners (since 1984):
all.tar.Z [ioccc.org]
all.tgz [ioccc.org]
A brief summary (spoiler warning) may be fount at:
summary.txt [ioccc.org]
You can browse individual winners for any year at:
winning entries [ioccc.org]
In general, the IOCCC home site is under:
www.ioccc.org [ioccc.org]
... and is hosted thru the wonderful support of Chuq VonRospach and Laurie Sefton [plaidworks.com] .

Re:Why bother? (1)

Bastian (66383) | more than 13 years ago | (#480010)

If I were in charge of hire'nfire, I'd see winning the IOCCC as a definite plus. . . to write a well-obfuscated C program takes good knowledge of C and a love for programming, are both hopefully Good Things in the eyes of an employer.

Interesting. . . (2)

Bastian (66383) | more than 13 years ago | (#480011)

but obfuscated code still doesn't seem as impressive to me as a good ol' 4k intro. [assembly.org]

Maybe it's the pretty pictures. . .

Re:Why bother? (1)

f5426 (144654) | more than 13 years ago | (#480012)

> So if someone disagrees with you, then they must be a troll?

First, if you did not want to play a troll here, you'd better have choosed a different nickname. "Reality Master 101" ?

Second, I use troll as a compliment.

Third, agreeing, disagreeing to a post content don't really mean anything. I hope you don't think your opinions are accurately represented in a few hundred of bytes.

> Guess what? It's a product. You can choose to buy that product or not. We're not talking about food or housing

Guess what ? Food, housing, health care, education are all products. So your 'it's a product' is basically casted to void.

> we're talking about a movie in a particular format. Note that it isn't even the only format you can buy

Is it ? <http://www.amazon.com/exec/obidos/ASIN/B000053 VBN/ref=v_dh_hir_6/107-9806512-4018115>

In 5 to 10 years, movies won't be released on VHS anymore. Don't pretend you don't know this.

> It's their product. They can do whatever they want with it.

The problem is that, when we have bought such product, DMCA will prevent me to say "It is my product. I can do whatever I want with it".

> It's called "freedom"

Yeah. The freedom to buy politician. The freedom to push scelerate laws. The freedom to replace the word 'citizen' by the word 'consumer'. All that kind of freedom.

> But since you appear to advocate socialism, freedom is a word you may not be familiar with

Please, don't assume anything.

> > There is no such thing as an honest (or dishonest) company. Don't anthropomorphize.

> You know what I mean, but instead you choose to deliberately pretend that you don't rather than make a substantive argument.

No. You choosed not to understand what I said. Let me repeat:

"There is no such thing as an honest (or dishonest) company. Don't anthropomorphize"

Like in:
'It's their product. They can do whatever they want with it. It's called "freedom"' You are confusing freedom of citizen with freedom to trade. Those concepts are totally different. You are anthropomorphizing corportations. Honesty dishonesty, freedom.

Companies are not honest or dishonest. They can't be. Even if they spend hundred of million to build a corporate image, a company have no moral standing. Not even the slighest one. They can't have. By definition.

Let's go to your original post:

> I have the freedom to choose the honest companies over the dishonest ones

I'd say that freedom is a word not familiar to you. The synonym 'liberty' would be more appropriate in your sentence. Freedom have connotations you don't seem to grasp. In particular, "the condition of being free of restraints". An _alternative_ between compeeting _corporations_ giving you _liberty_ of _choice_ don't carry most of the meanings of _freedom_.

Cheers,

--fred

I am a winner (2)

codemonkey_uk (105775) | more than 13 years ago | (#480013)

I am one of the co-authors of this [ioccc.org] entry. A binary (DOS/WIN32) can be downloaded from here [photo.net] .

Comments? Questions?

Thad

Re:Obfuscated != Well crafted (was Re:Why bother?) (2)

webrunner (108849) | more than 13 years ago | (#480014)

One could say the Pyramids are Obfuscated rock. We can't understand them thousands of years later.. but they are certianly intersting and a very amazing feat.
----

Re:Here's Yet Another Contest! (1)

f5426 (144654) | more than 13 years ago | (#480015)

seebs ? Peter Seebach ? Recall of endless discussion on comp.lang.c, in (iirc) 1991/1992. You and Dan Pop are responsible of most of my C pedantry :-)

Nice to heard you again, a bit sad that you are not using a flamethrower against void main()...

Cheers,

--fred

Re:Obfuscated != Well crafted (was Re:Why bother?) (1)

Aunt Mable (301965) | more than 13 years ago | (#480016)

But in all normal circumstances, obfuscated code in any language is bad code

Well.. the debatable bit is what you define as normal. When I'm knocking out a ten line perl script I can use something I saw in an obfuscated contest because it's got such simple syntax and saves me time.

Not every bit of code is made to be inherited or worked on as a team. Many times it's just a ten line perl script that's required and these contests are great for learning shortcuts in those little bits of code (or what we type into the command line actually - obfuscation is wonderful there).

-- Eat your greens or I'll hit you!

Re:Why bother? (1)

pet-owningISslavery (307276) | more than 13 years ago | (#480017)

Yes, thank you. I have posted a correction.

You're either a genius or insane, most prolly both (1)

LordArathres (244483) | more than 13 years ago | (#480018)

These programs aren't hard to decode, spend a little time on them and it's not that hard. I'm thinking they were written using standard formatting (if there is a standard) and then tweaking them so they look unreadable.

At first glance of the code, it looks completely unreadable and worthless, until you compile it and realize it actually works! Genius.

I have a hard enough time doing regular programming, I shudder at the thought of trying to make something like this.

I like the fact that this is a very good way to confuse people and just plain annoy them when someone asks for your source code and you know they're just gonna copy it and slap their name on it and pretend they wrote it. Makes good presents too. "Here's that game I wrote blah blah, just read through it and tweak the settings." he he.

Too bad the site is already slashdotted. Later all

Lord Arathres

Re:Here's Yet Another Contest! (3)

f5426 (144654) | more than 13 years ago | (#480019)

Oops. Forgot to answer the question. The thing uses the Spigot Algorithm, by Stanley Rabinowitz and Stan Wagon.

See (for instance) <http://www.physik.tu-muenchen.de/lehrstuehle/T 32/matpack/html/Mathematics/Pi.html> to get a description. Remove slashdot added spaces from the URL.

So, definitively, no. You won't be a contender with an extremly common stolen program.

Cheers,

--fred

Obfuscating vs. AscII art (2)

Glowing Fish (155236) | more than 13 years ago | (#480020)

I would have to agree that simply rendering a program into ascii art is not itself obfuscation, and therefore, does not properly belong in this contest. On the other hand, I would tip my hat (if I had one handy) to anyone who can write a workable C program that doubles as ASCII art. This probably deserves a contest all of its own.
Remember, you saw it on Slashdot first.

Re:Why bother? (2)

Howie (4244) | more than 13 years ago | (#480021)

I know you just wanted a cheap shot, and hey, this is the audience for it, but I would suggest you read either Writing Solid Code [fatbrain.com] or Code Complete [fatbrain.com] , both published by Microsoft Press, and both supposedly based on internal MS coding practice. They are very good examples of the ways in which you can write easy-to-read, easy-to-debug, easy-to-maintain code.

Regardless of what the front office does and decides as a direction, there are some pretty clever people at Microsoft (not to mention Microsoft Research [microsoft.com] - Blinn, Kajiya, Gray, and many others).

(of course, feel free to add a more illuminating comment if it wasn't just the usual MS==BAD)

Re:Well... (2)

istartedi (132515) | more than 13 years ago | (#480022)

And only later did a good answer occur to me--a high tech twist on an old proverb. "There is one beautiful program, and every programmer has written it."

The original of course is, "There is one perfect child, and every mother has it."

Re:Why bother? (3)

acroyear (5882) | more than 13 years ago | (#480023)

Hey, try actually having a boss who won the IOCCC [ioccc.org] ...three times, even...

Re:Why bother? (1)

f5426 (144654) | more than 13 years ago | (#480024)

(bored, so I'll reply to that. I'll spend a couple of minutes, and practice my poor english).

Hi, reality master 101, how is your trolling session today ?

> There is no law requiring me to use Microsoft software

Wrong. Take DeCSS as an example. If you own a PC you are required to use Windows to view your DVDs. Law is here to enforce that. DMCA will give a new meaning to this. The law will not say "you are required to use window", but "it is illegal to use software non-approved by the industry", and, funnily, the industry will only approve windows software.

Sure, you can say that there is no law that forces you to buy a PC (at least now). In that case, there is no law that requires you do do anything, as you always have the possibility of reject your American citizenship.

> I have the freedom to choose the honest companies over the dishonest ones

There is no such thing as an honest (or dishonest) company. Don't anthropomorphize.

Cheers,

--fred

Bollocks (1)

Lozzer (141543) | more than 13 years ago | (#480025)

The whole point of any computer language is to get the friggin machine to do something. Maintabilty is a desirable extra I'll admit but nice looking code that does fuck all is pretty useless.

*obfuscated* code (1)

bgarcia (33222) | more than 13 years ago | (#480026)

...the results are fine example of their craft.
You misspelled "cruft".

(audience: "Boo!!! Hiss!!! Don't quit your day job!")

Download all winning entries (1)

ScaryPhil (30589) | more than 13 years ago | (#480027)

I couldn't get the "all of the 2000 goodies" link to work, until I tried munging the filename (.tgz vs .tar.Z)

So, download the file from http://www.ioccc.org/2000.2000.tgz [ioccc.org]

Re:obfuscating not all, though... (1)

Lozzer (141543) | more than 13 years ago | (#480028)

I've got to say that anderson [ioccc.org] is particularly satisfying, no #defines and I still can barely understand a character of it...

Mirrors? (1)

SMQ (241278) | more than 13 years ago | (#480029)

Can some brave soul who managed to grab the tarball please mirror it? It's your very own chance to be Slashdotted. :-)

Well... (5)

pallex (126468) | more than 13 years ago | (#480030)

..people were asking for elegant code yesterday!

Why bother? (2)

Metal Machine Music (255620) | more than 13 years ago | (#480031)

Very cool but...

What use is this? Surely winning this competition is a sign you should never work again? Obfuscated code (aka elegant) is no faster, even if it is shorter, and may even compile into worse code.

For me this shows the problm with open source - people are more interested in playing silly games than actually getting something constructive done.

Microsoft didn't get to be as successful as it did by creating obfuscated code you know.

Re:Why bother? (2)

ratbag (65209) | more than 13 years ago | (#480032)

Microsoft didn't get to be as successful as it did by creating obfuscated code you know.

No, they did it by putting Easter egg flight sims in their Office apps.

Rob.

Re:Why bother? (2)

foistboinder (99286) | more than 13 years ago | (#480033)

Microsoft didn't get to be as successful as it did by creating obfuscated code you know.

Based on what I've seen of Microsoft Code, I have to disagree.

Re:Why bother? (1)

turacma (266828) | more than 13 years ago | (#480034)

No, Microsoft became successful because the american public by and large wouldn't know good software if it jumped up and bit them on the ass. And you know, just because you paid more for something, doesn't mean it's any better.

Re:Why bother? (1)

pet-owningISslavery (307276) | more than 13 years ago | (#480035)

And you know, just because you paid more for something, doesn't mean it's any better.

Only under a deranged, half-baked system like capitalism would this be true. Only in such an outrageously silly system would it be acceptable or normal to attempt to cheat your fellow humans as a matter of course. Only under such a deranged set of principles would anybody refusing to scam his fellow (wo)man out of anything and everything be lauded as a role model or praised as a pillar of society. Don't even get me started on Forbes magazine's little list....

I'm sorry for going off on a tangent like this, but whenever I see this quote I'm just reminded of all that's wrong with the so-called "free world".

Re:Here's Yet Another Contest! (1)

temujin (22103) | more than 13 years ago | (#480036)

I am new to programming, so no flames please. Can something like this be ported to Perl? (I am trying to learn it.)

Yes, this can be ported to perl. Anything in C can be written in perl (and vice versa).

C is weakly typed, so I'm not sure what you're getting at here... Strong typing is to save the programmer from himself. I personally do not enjoy programming in languages that remove C's power to make non-sensical casts.

So, I guess what I am really asking is: Is this kind of program only able to be written well in something like C++ or Java?

Absolutely not. This is just an algorithm for calculating Pi. C is nice because it's portable and fast. Check out a functional programming language like Haskell [haskell.org] . Selecting a programming language for a particular task involves clearly stating your goals. If I wanted to confuse you, I'd write it in Malbolge or BrainF*ck. If I wanted to calcuate pi quickly (millions of digits), I might write it in C [umn.edu] , but I'd also do my homework [gourdon.free.fr] . If I wanted something from the command line, I'd use:

$perl -e 'for(0..9999){$i=$_*8;$p+=(16**-$_)*(4/($i+1)-2/($ i+4)-1/($i+5)-1/($i+6))}print$p'

It's really a matter of "what gets the job done."

(Besides that I have a feeling that using an object-oriented language (like Visual C++) would reduce the amount of code you would have to write (due to increased code re-use.))

Simple algorithms like this one are fairly atomic. You're foo class isn't going to help you here. You really aren't going to resuse this either. That's what M_PI is for =).

Re:Why bother? (3)

Psiren (6145) | more than 13 years ago | (#480037)

For me this shows the problm with open source - people are more interested in playing silly games than actually getting something constructive done.

I can just see Kryten now... "Fun? Ah, yes. The employment of time in a profitless and non-practicable way." So what if it's pointless. It's nice to do seomthing for fun every now and then. We aren't supposed to be writing top-notch code 24/7.

Re:Slashdotted. (1)

demaria (122790) | more than 13 years ago | (#480038)

What's the point?

It's silly!

It's funny.

That's about it. It isn't designed to be taken seriously. MTo make you look at it, and go, what the hell does THAT do?

Re:Why bother? (1)

jallen02 (124384) | more than 13 years ago | (#480039)

Heh, this was another admittance by a perl programmer that the language is designed to be obfuscated.

Okay okay so I am taking what you said and adding one step to it in that direction but it sure sounds like that is what you are saying ;)

First you go on about how people can not worry about design and structure at all and talk about clever syntax rather than typing a dozen lines of.. (easier to read for a mortal) code.

Then you say perl is called obfuscated because its encouraged to be "cool" and learn these shrotcuts so that a lesser (mortal?!#@$) cant read the code?

Hmmn.. :) I dont know but one could draw some itneresting lines of thinking from this kind of stuff..

You did a nice post in not actually saying any of that which makes it good in the sense that you are not saying good or bad or giving away anything about whether you think it is good or bad, but I think what gives it away is "reward those that know the language by not forcing them to be verbose - this can shopw off similar technique" So every day in the life of a perl guru is to see how many shrotcuts they can use and show off their technique, afterall they are being rewarded with the shrotcuts they spent hours learning to use when they could use a piece of code we could all grasp a bit easier.????

Jeremy

Re:Why bother? (2)

jallen02 (124384) | more than 13 years ago | (#480040)

That is very true.. One of the first things you are going to do if you dream of entering a obfuscated program in this contest is totally read front back and carry with you for days on end a reference about how an ANSI C Compiler behaves. *exactly* How the preprocessor behaves and what its precise behavior is supposed to be, then your going to actually test it to find out if its really all true. A great book like "C A reference manual" It goes over excruiciating detail on how various parts of the language work.

Just by virtue of spending *so* much time figuring out how to push the language you are going to learn a whole lot.

Going reverse and actually reverse engineering one of these programs you may or may not learn as much, but chances are good you will be gifted with a good deal of insight about C :)

Ive tried and managed to undo several but some of these programs are truly works of art in the truest sense of the word art.

Okay so it may not be valuable in the sense regular art is however the sheer intelligence and amount of effort some people put into this the only word that comes to mind to express elegantly exactly what these programs are to a programmer is art :)

My two cents..

Jeremy

Re:Why bother? (1)

gowen (141411) | more than 13 years ago | (#480041)

For me this shows the problm with open source - people are more interested in playing silly games than actually getting something constructive done.
Oh, right. If you believe thats unique to Open Source, then I bet you a pound to a penny you've worked in an office with more than 2 people in it.

Re:Here's Yet Another Contest! (2)

Y-Leen (84208) | more than 13 years ago | (#480042)

It calculates PI and the AC poster ripped it off from post #3, by crovax, in the IOCC delayed" story [slashdot.org] .

Re:Here's Yet Another Contest! (2)

seebs (15766) | more than 13 years ago | (#480043)

I think we let a couple of void main()'s through, but I don't know that we will next time; we may even just point it out in the rules.

Re:Why bother? (1)

rincefysh (309635) | more than 13 years ago | (#480044)

I assume he doesn't expect you to write code in a similar fashion? :-) A friend of mine was asked to fix a bug in his bosses code, which turned out to be a BASIC program. The program was only 10 lines long, but it contained 13 GOTO statements! After extensive analysis it turned out that 3 of the lines were no longer possible to even get to! It's frightening that it was so well obfuscated, by accident.

Pascal? (2)

GregWebb (26123) | more than 13 years ago | (#480045)

I'm a Pascal (and Pascal derivatives) lover, personally. I don't like C even slightly, I'm afraid. Might be fine for what other people want to do but definitely isn't for what I want to do.

So. My first instinct when I saw this was Ha! More examples of just why C is horrible! You couldn't do this if in Pascal if you tried!

I then thought about the ingenuity of these authors...

So, does any such resource exist for Pascal code? Beyond simply putting the thing as ASCII art and giving it meaningless variable names, neither of which seem truly worthy to me.

Re:got tired (1)

chuqui (264912) | more than 13 years ago | (#480046)

I dunno. I host ioccc.org. My site's holding up well, all things considered. I'm monitoring it from an outside location, and while it's slow, it's up and feeding as fast as the network can feed it (it's on a 384K DSL line) -- the server itself is bored and 95% idle (so the setiathome folks are happy), running on a YellowDog Linux G3 box.

Frankly, I'm having a lot LESS trouble checking the response time on my site today than I am accessing slashdot to see if people are complaining about how my site's responding... Maybe slashdot's been slashdotted or something....

Re:Why bother? (1)

Reality Master 101 (179095) | more than 13 years ago | (#480047)

Hi, reality master 101, how is your trolling session today ?

So if someone disagrees with you, then they must be a troll?

The law will not say "you are required to use window", but "it is illegal to use software non-approved by the industry", and, funnily, the industry will only approve windows software.

Guess what? It's a product. You can choose to buy that product or not. We're not talking about food or housing, we're talking about a movie in a particular format. Note that it isn't even the only format you can buy. Read carefully: It's their product. They can do whatever they want with it. It's called "freedom". But since you appear to advocate socialism, freedom is a word you may not be familiar with.

There is no such thing as an honest (or dishonest) company. Don't anthropomorphize.

Try this word: "metaphor [dictionary.com] ". You know what I mean, but instead you choose to deliberately pretend that you don't rather than make a substantive argument. And you accuse me of trolling?


--

Re:obfuscating not all, though... (1)

aarestad (154626) | more than 13 years ago | (#480048)

judging by the ASCII art it renders, I'd say it has something to do with semaphores...

Re:Why bother? (1)

Pembroke (264266) | more than 13 years ago | (#480049)

When it comes right down to it, the success of microsoft has a great deal more to Bill Gates being in the right place at the right time. He started his company at a point when computing was anything but a mainstream event. Then he lucked out by having IBM choose his OS to load on their machines. They lucked out in that IBM and compatibles became the type of computer that people chose to buy, and which programmers therefor chose to support. Bill Gates was holding the rope when the baloon went through the roof, and that's pretty much all you can say.

Re:Why bother? (1)

chongo (113839) | more than 13 years ago | (#480050)

Why bother with the IOCCC?

  • To test C compilers. The IOCCC has uncovered a number of compiler bugs.
  • To gain practice debugging ugly code. I founded the IOCCC back in 1984 as reaction to having just fixed a bug in the Bourne Shell.
  • To learn subtle aspects of the C language.
  • To illustrate through the irony of functional but poorly written code the importance of good writing style.
  • To put it on your resume. Reasonable places consider a good thing to be part of the IOCCC.
  • To have fun! [[Judging may be a lot of work, but it is also a fun^3]]

... and if that does not satisfy you:

Search for the word ioccc in that web page. :-)

obfuscating not all, though... (3)

mirko (198274) | more than 13 years ago | (#480051)

A few entries that I saw were mostly c programs converted to ascii art, which I believe is a pity as if reindented correctly this would not look as obfuscated as in previous contests.
I however enjoyed some entries, like PrimeNum [ioccc.org] which is an example of clean obfuscated code, despite its heavy use of preprocessing directives (BTW, even its own name is obfuscating as it has not much to do with prime numbers, even though its apparent algorithm is ;-).
Tomx [ioccc.org] is also interesting as it is a Makefile and a source file at the same time.
--

Re:Why bother? (1)

glgraca (105308) | more than 13 years ago | (#480052)

WTH has the IOCC to do with the Open Source movement?? If you cant understand people wanting just wanting to have fun, shoot your sorry self. I bet you have a hobby other people would consider silly.

CORRECTION (1)

pet-owningISslavery (307276) | more than 13 years ago | (#480053)

Only under such a deranged set of principles would anybody refusing to scam his fellow (wo)man out of anything and everything be lauded as a role model or praised as a pillar of society. Don't even get me started on Forbes magazine's little list....

Only under such a deranged set of principles would anybody attempting to scam his fellow (wo)man out of anything and everything be lauded as a role model or praised as a pillar of society. Don't even get me started on Forbes magazine's little list....

Obfuscated Law contest (1)

Anonymous Coward | more than 13 years ago | (#480054)

Someone should start an 'Obfuscated Law' contest for the various corporate (and otherwise) entities in the computer/IT/media industry which best exemplifies the qualities of obfuscating the law for their own personal gain. For example, the MPAA for successfully sueing to shut down the distribution of DeCSS by claiming a string of text to be an illegal circumvention device. Or CMGI (Altavista) getting patents on typical internet indexing and searching and then sueing everybody.

PI (1)

bsterix (309156) | more than 13 years ago | (#480055)

I think it calculates pi (3,1415..) quite exactly :-)

Re:Why bother? (1)

madenosine (199677) | more than 13 years ago | (#480056)

It's not supposed to have any practical use, like many other things, it's just for fun and kicks. Come on, man not everything has to be formal and uptight.



Re:Why bother? (2)

Aunt Mable (301965) | more than 13 years ago | (#480057)

Lovely TRoLL BTW, the little tacked on MS jab, neato.

Understanding obfuscated code is difficult - that's the whole point - therefore those who understand it (especially those that write it) have a firm grasp of the language - moreso than programmers that don't.

Also obfuscated code is usually about short snippets of well crafted code rather than worrying about a greater architecture. Competitions like this let people show off clever algorithms, or just clever syntax. Useful, as programmers can use the obfuscated code rather than typing a dozen lines.

Perl has been called the obfuscated programming language because of it's many short-hand syntaxes that reward those that know the language by not forcing them to be verbose - this can show off similar techniques.

-- Eat your greens or I'll hit you!

Slashdotted. (2)

shippo (166521) | more than 13 years ago | (#480058)

Of course it is slashdotted.

What is the point of this? Most of the code I've seen in the past uses some pre-processor tricks to un-obfusticate the source.

I once saw some obfusticated Perl which appeared to be no more than a standard perl program with all whitespace removed, no comments (naturally), and over-use of $_.

Then again I was attempting to revise one of the sound drivers in the current Linux kernel recently, and that was pretty well obfusticated!

Re:Why bother? (1)

ochinko (19311) | more than 13 years ago | (#480059)

My only guess would be that you hate msft in the guts. Of all the programming books that you could have recommended, how could you suggest Writing Solid Code [amazon.com] ? I have the book and I read it more than once. There is nothing there that you wouldn't be able to find in hundreds of other books. BTW, people that still use Hungarian notation for variable naming must be rare that COBOL programmers.

Re:Why bother? (1)

CoolVibe (11466) | more than 13 years ago | (#480060)

For me this shows the problm with open source - people are more interested in playing silly games than actually getting something constructive done.
Time enjoyed wasting is *not* wasted time. Think about it...
--
Slashdot didn't accept your submission? hackerheaven.org [hackerheaven.org] will!

Re:Why bother? (1)

Aunt Mable (301965) | more than 13 years ago | (#480061)

You may either spend thirty seconds typing out an obfuscated and elegant piece of code - or spend two minutes to achieve the same ends but in a well formatted easily understood way.

The first and obfuscated way is good for personal projects - putting together shoddy perl scripts. Especially projects that are too short to bother about maintainability. So far as short bits of code go they require the most skill also.

The second is mostly for large projects or ones that require several programmers at the same time or the future.

Obfuscated code contests are about wank factor and showing off how well one knows a language. But as I say in the second paragraph they have their uses.

-- Eat your greens or I'll hit you!

Re:Why bother? (5)

rincefysh (309635) | more than 13 years ago | (#480062)

I couldn't disagree more. I won in 1991 (and later - eg 2000 ;-)), just about the time that I was applying for a job. I put 'winning the IOCCC' in my CV, which may sound like suicide to some.

However consider this. Would you like to work for a boss who feels that winning the IOCCC is something to be ashamed from? Or would you rather work for a boss who feels it's a decent bit of fun?

I later found out that after dwindling the job candidates down there were just two suitable people left - I was one of them. My boss told me that winning the IOCCC was one of the factors that helped him to pick me over the other candidate.

So in conclusion - it can actuall _help_ your job prospects!

(Yes I know it's a troll, but who cares.)

Microsoft code (1)

raptwithal (134137) | more than 13 years ago | (#480063)

How in the world could you know anything about Microsoft code, unless you work for them? They could code in hex (yeah, riiight) and no one would be able to tell from the binaries anyway.

The bit about Open Source . . . you get all these interesting 'games' as you call them, but to me that's people being interested in what they do! An important principle of Open Source or Free Software is that people love to code.

Re:Why bother? (2)

Reality Master 101 (179095) | more than 13 years ago | (#480064)

And you know, just because you paid more for something, doesn't mean it's any better. [...] Only under a deranged, half-baked system like capitalism would this be true.

Versus socialism? The difference is that under socialism, the government attempts to cheat the citizens as a matter of course. The difference is that there is only one government, and under capitalism, you can choose whichever company you percieve to cheat you the least.

And if you think socialistic government are paragons of virtue and efficiency with only the best interests of the citizens at heart, then I feel sorry for you and your naivete.


--

Re:Why bother? (1)

pet-owningISslavery (307276) | more than 13 years ago | (#480065)

under capitalism, you can choose whichever company you percieve to cheat you the least.

Except it'll have the government to help it. See the British and the Dutch in Asia, the US in Latin America, and pretty much everyone in Africa. Then take into account how much money corporations spend funding campaigns for a rough estimate of what the effects can be domestically.

A democratic socialist society doesn't have any of this. I won't speak for autocratic or oligarchic ones.

and if you think socialistic government are paragons of virtue and efficiency with only the best interests of the citizens at heart, then I feel sorry for you and your naivete.

So a corporatist government combined with thousands of groups whose sole stated interest is to screw the consumer out of as much money as possible is better? How does that make any sense?

Because... (1)

dazedNconfuzed (154242) | more than 13 years ago | (#480066)

"Strange how much human accomplishment and progress comes from contemplation of the irrelevant."
- Scott Kim

Re:Why bother? (1)

pallex (126468) | more than 13 years ago | (#480067)

"What use is this? "

Its just a laugh. Don`t worry about it.

"For me this shows the problm with open source"

Whats it got to do with open source?

Re:Why bother? (2)

bencc99 (100555) | more than 13 years ago | (#480068)

No, Microsoft became successful because the american public by and large wouldn't know good software if it jumped up and bit them on the ass.

Wrong. Even by fluke they should have turned out something reasonable. For microsoft to consistently turn out products as bad as they do, they have to know *exactly* what a good product is, and work hard to make their software as unlike it as possible ;)

Re:Why bother? (1)

pallex (126468) | more than 13 years ago | (#480069)

"I bet you have a hobby other people would consider silly."

Yeah, trolling SlashDot with ignorant nonsense.

Re:Here's Yet Another Contest! (2)

f5426 (144654) | more than 13 years ago | (#480070)

> Think I could have be a contender?

Nope. Even in obfuscated C, main cannot be declared void.

Btw, you should give credit to the original author of this program, Dick T Winter. (Which btw, did not put the 'void' before main())

Cheers,

--fred
Check for New Comments
Slashdot Login

Need an Account?

Forgot your password?