Domain: ioccc.org
Stories and comments across the archive that link to ioccc.org.
Comments · 408
-
Re:Source *is* documentation
> Source is documentation, how much more do you need?
In the case of some source code, quite a lot.
-
Re:While it's certainly possible, I wouldn't want
With a lot of upfront planning, the right database, SSL, page generation and CGI libraries, you might be able to hack it at 1000 lines of C code.
Slow down, hoss. This is C we're talking about here, after all. -
Mod parent up!
Saying "you can do some really horrible stuff" in Perl in fact tells me that you probably don't know much about programming, at all. You can "do horrible stuff" in *any* programming language. Over the years I've seen more than my fair share of horrible C, C++, Java, Ruby, Python, Smalltalk, PHP, and yes, even Perl.
Absolutely true. People are always complaining that Perl alows a person to write obfucated code. What about C? The C programming language allows a person to write obfucated code as well. In fact it is so easy to write obfucated code in C that there is even a contest. But very few programmers would conclude that this makes C a bad language (although programmers might point to other aspects of C that might make it a bad language in their opinion). The C language is very powerfull, and part of this power is what allows a programmer to write obfucated code. -
Hidden code?
See IOCCC for true masters of making the code unreadable!
-
Re:I don't think so...
Well, that *is* hard to read, but it's nothing compared to much of the obfuscated C code I've seen.
Try that in Python! -
Re:I don't think so...
Well, that *is* hard to read, but it's nothing compared to much of the obfuscated C code I've seen.
Try that in Python! -
Re:More overloading evil...
> The above may not be valid C++ syntax.
Can anything be? After all, C++ is more or less a superset of C -
Re:The result was the programmed result.
Having, in fact, read the code myself, and worked with it for three straight years, I can tell you that you are dead wrong.
These little programs do things we never, ever expected. And some things we don't even know how to control. They cheat! They take advantage of every element of the system that's possible in ways we sometimes don't even understand.
And they write their own code in ways no human ever could. I've had experiences where it takes upwards of an hour to understand a 20-instruction-long digital organism because the code is so twisted. Stuff no programmer could ever have written, not even the obfuscated code gurus.
Like any evolving organism, they'll do whatever it takes to get ahead. -
Re:Bad Programming?A better analogy is to compare the DNA to a binary executable. A decent optimizing compiler generates code that isn't easily comprehensible by humans*. The DNA and the binary executable are intended to the same job - just execute. They are not meant for humans to understand.
* Or a few C programs at IOCCC that pack LOT of functionality into a small program?
-
The ultimate in extreme programs!
-
Re:Easing into perlBeing a user of all four of the languages we're talking about here (C++, Perl, Python, Ruby) I can't see how you'd recommend Python or Ruby to a guy who's looking to replace sed and awk for simple text processing. The two books on my desk right now are Perl Cookbook and The Ruby Way, lest you think I'm just a Perl-only nut.
Are you sure you've actually studied Perl? I ask because you recommended python as an easy transition from C++. Here's a loop in C++:for (i = 1; i <= 10; i++) {
j = j + i;
}
Now in Perl:for ($i = 1; $i <= 10; $i++) {
$j = $j + 1;
}
Now in Python:
for i in range(1,10)
j = j + i
This isn't a value judgement, just a comparison. Perl can be written very much like C++, and the syntax doesn't get particularly nasty until you start to use references to multiple built-in datatypes (and then it can be confusing, but if you code well quite decipherable). And yes, there are some nasty hackers who write really bad perl, but I'll just point you here,here, and here if that's the argument. -
Re:Cynic's viewCome on
... there's no open-source developer that is able to write such a crappy code, so that microdog can prove the program's relevance to the windows source.Hmm... wait a minute
... where do the ioccc people get inspired? ioccc -
Maybe, maybe not
Companies such as Oracle and Microsoft typically sell binaries incomprehensible to humans rather than the comparatively understandable source code.
After seeing this, I think that statement is being a bit generous -
Re:Who buys Obfuscated code?
I think you misunderstand what the obfuscator does. First, you must understand that all
.NET assemblies are compiled to MSIL. Once that happens, anyone can use a tool, ILDASM.EXE, to view the "disassembled" assembly. You get function names, global variable names, parameter types, called framework functions, basically all the stuff you really would rather people not see.
This is where the obfuscators come in. They start renaming your functions, parameters, types, etc., but only in the MSIL that's in the assembly, not in your source code. There are other levels of obfuscation that some products support, but most of them will at least do this for you. If you don't think that's a big deal, go here to see for yourself. Staring at code that has all functions named "a1, a2, a3" and so one, combined with a similar naming scheme for other variables...well, it'll drive you to the bottle.
Many .NET developers out there are happy with the functionality of the current crop of obfuscators, and many use such programs to "encrypt" their commercial apps. -
How the IOCCC was startedOne day (23 March 1984 to be exact), back 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 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 net.lang.c inviting people to try and out obfuscate the UN*X source code we had just been working on.
(I had to post this typo correction
:-). 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'' award.
:-)OK, back to the story. We 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 were posted on 17 April 1984.
There were 4 winners in 1984.
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". The only other anonymous winner occurred this year.
The 1984 winner remains one of my all time favorites.
The name used in the posting of the 1st IOCCC winner posting was International Obfuscated C Code Contest or IOCCC for short.
The posting said 1st annual, so in 1985 we held the 2nd IOCCC contest 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.
P^2.S. See the overall README for more details.
P^3.S. See also the IOCCC FAQ.
P^4.S. Please see my apology for the late posting of the 2001 winners.
-
How the IOCCC was startedOne day (23 March 1984 to be exact), back 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 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 net.lang.c inviting people to try and out obfuscate the UN*X source code we had just been working on.
(I had to post this typo correction
:-). 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'' award.
:-)OK, back to the story. We 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 were posted on 17 April 1984.
There were 4 winners in 1984.
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". The only other anonymous winner occurred this year.
The 1984 winner remains one of my all time favorites.
The name used in the posting of the 1st IOCCC winner posting was International Obfuscated C Code Contest or IOCCC for short.
The posting said 1st annual, so in 1985 we held the 2nd IOCCC contest 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.
P^2.S. See the overall README for more details.
P^3.S. See also the IOCCC FAQ.
P^4.S. Please see my apology for the late posting of the 2001 winners.
-
How the IOCCC was startedOne day (23 March 1984 to be exact), back 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 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 net.lang.c inviting people to try and out obfuscate the UN*X source code we had just been working on.
(I had to post this typo correction
:-). 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'' award.
:-)OK, back to the story. We 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 were posted on 17 April 1984.
There were 4 winners in 1984.
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". The only other anonymous winner occurred this year.
The 1984 winner remains one of my all time favorites.
The name used in the posting of the 1st IOCCC winner posting was International Obfuscated C Code Contest or IOCCC for short.
The posting said 1st annual, so in 1985 we held the 2nd IOCCC contest 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.
P^2.S. See the overall README for more details.
P^3.S. See also the IOCCC FAQ.
P^4.S. Please see my apology for the late posting of the 2001 winners.
-
How the IOCCC was startedOne day (23 March 1984 to be exact), back 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 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 net.lang.c inviting people to try and out obfuscate the UN*X source code we had just been working on.
(I had to post this typo correction
:-). 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'' award.
:-)OK, back to the story. We 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 were posted on 17 April 1984.
There were 4 winners in 1984.
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". The only other anonymous winner occurred this year.
The 1984 winner remains one of my all time favorites.
The name used in the posting of the 1st IOCCC winner posting was International Obfuscated C Code Contest or IOCCC for short.
The posting said 1st annual, so in 1985 we held the 2nd IOCCC contest 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.
P^2.S. See the overall README for more details.
P^3.S. See also the IOCCC FAQ.
P^4.S. Please see my apology for the late posting of the 2001 winners.
-
How the IOCCC was startedOne day (23 March 1984 to be exact), back 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 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 net.lang.c inviting people to try and out obfuscate the UN*X source code we had just been working on.
(I had to post this typo correction
:-). 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'' award.
:-)OK, back to the story. We 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 were posted on 17 April 1984.
There were 4 winners in 1984.
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". The only other anonymous winner occurred this year.
The 1984 winner remains one of my all time favorites.
The name used in the posting of the 1st IOCCC winner posting was International Obfuscated C Code Contest or IOCCC for short.
The posting said 1st annual, so in 1985 we held the 2nd IOCCC contest 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.
P^2.S. See the overall README for more details.
P^3.S. See also the IOCCC FAQ.
P^4.S. Please see my apology for the late posting of the 2001 winners.
-
Re:My favorite...
But have you seen 2001's 'Best of Show' entry?
-
Re:My favorite...My favorite was theorem in 1990.
Another good one was jar.
But, Larry Wall's third entry was pretty good too.
-
Re:My favorite...My favorite was theorem in 1990.
Another good one was jar.
But, Larry Wall's third entry was pretty good too.
-
My favorite...
My all-time favorite IOCCC winner has been savastio.
It's been up on my cube wall for a while. If anyone complains about my code here at work I threaten them to code like it.
Always works! -
some karma whoring.. mirrors:
- Asia
- www.tw.ioccc.org
- Hsin-Chu, Taiwan (24 48' N 120 59' E)
- Australia and other Pacific
- www.au.ioccc.org
- Sydney, Australia (34 0' S 151 0' E)
- Europe
- www.de.ioccc.org
- Humburg, Germany (53 33' N 10 2' E) - www.es.ioccc.org
- Madrid, Spain (40 25' N 3 41' W) - www.gr.ioccc.org
- Athens, Greece (38 00' N 23 44' E)
- Extraterrestrial
SETI is looking for some sites :-)
- North America
- www0.us.ioccc.org
- Sunnyvale California, US (37 22' N 122 02' W) - www1.us.ioccc.org
- Saint Paul, Minnesota US (44 57' N 93 06' W)
- South America
none
We are looking for more mirrors.
Do you want to mirror the IOCCC web site? - Asia
-
some karma whoring.. mirrors:
- Asia
- www.tw.ioccc.org
- Hsin-Chu, Taiwan (24 48' N 120 59' E)
- Australia and other Pacific
- www.au.ioccc.org
- Sydney, Australia (34 0' S 151 0' E)
- Europe
- www.de.ioccc.org
- Humburg, Germany (53 33' N 10 2' E) - www.es.ioccc.org
- Madrid, Spain (40 25' N 3 41' W) - www.gr.ioccc.org
- Athens, Greece (38 00' N 23 44' E)
- Extraterrestrial
SETI is looking for some sites :-)
- North America
- www0.us.ioccc.org
- Sunnyvale California, US (37 22' N 122 02' W) - www1.us.ioccc.org
- Saint Paul, Minnesota US (44 57' N 93 06' W)
- South America
none
We are looking for more mirrors.
Do you want to mirror the IOCCC web site? - Asia
-
some karma whoring.. mirrors:
- Asia
- www.tw.ioccc.org
- Hsin-Chu, Taiwan (24 48' N 120 59' E)
- Australia and other Pacific
- www.au.ioccc.org
- Sydney, Australia (34 0' S 151 0' E)
- Europe
- www.de.ioccc.org
- Humburg, Germany (53 33' N 10 2' E) - www.es.ioccc.org
- Madrid, Spain (40 25' N 3 41' W) - www.gr.ioccc.org
- Athens, Greece (38 00' N 23 44' E)
- Extraterrestrial
SETI is looking for some sites :-)
- North America
- www0.us.ioccc.org
- Sunnyvale California, US (37 22' N 122 02' W) - www1.us.ioccc.org
- Saint Paul, Minnesota US (44 57' N 93 06' W)
- South America
none
We are looking for more mirrors.
Do you want to mirror the IOCCC web site? - Asia
-
some karma whoring.. mirrors:
- Asia
- www.tw.ioccc.org
- Hsin-Chu, Taiwan (24 48' N 120 59' E)
- Australia and other Pacific
- www.au.ioccc.org
- Sydney, Australia (34 0' S 151 0' E)
- Europe
- www.de.ioccc.org
- Humburg, Germany (53 33' N 10 2' E) - www.es.ioccc.org
- Madrid, Spain (40 25' N 3 41' W) - www.gr.ioccc.org
- Athens, Greece (38 00' N 23 44' E)
- Extraterrestrial
SETI is looking for some sites :-)
- North America
- www0.us.ioccc.org
- Sunnyvale California, US (37 22' N 122 02' W) - www1.us.ioccc.org
- Saint Paul, Minnesota US (44 57' N 93 06' W)
- South America
none
We are looking for more mirrors.
Do you want to mirror the IOCCC web site? - Asia
-
some karma whoring.. mirrors:
- Asia
- www.tw.ioccc.org
- Hsin-Chu, Taiwan (24 48' N 120 59' E)
- Australia and other Pacific
- www.au.ioccc.org
- Sydney, Australia (34 0' S 151 0' E)
- Europe
- www.de.ioccc.org
- Humburg, Germany (53 33' N 10 2' E) - www.es.ioccc.org
- Madrid, Spain (40 25' N 3 41' W) - www.gr.ioccc.org
- Athens, Greece (38 00' N 23 44' E)
- Extraterrestrial
SETI is looking for some sites :-)
- North America
- www0.us.ioccc.org
- Sunnyvale California, US (37 22' N 122 02' W) - www1.us.ioccc.org
- Saint Paul, Minnesota US (44 57' N 93 06' W)
- South America
none
We are looking for more mirrors.
Do you want to mirror the IOCCC web site? - Asia
-
some karma whoring.. mirrors:
- Asia
- www.tw.ioccc.org
- Hsin-Chu, Taiwan (24 48' N 120 59' E)
- Australia and other Pacific
- www.au.ioccc.org
- Sydney, Australia (34 0' S 151 0' E)
- Europe
- www.de.ioccc.org
- Humburg, Germany (53 33' N 10 2' E) - www.es.ioccc.org
- Madrid, Spain (40 25' N 3 41' W) - www.gr.ioccc.org
- Athens, Greece (38 00' N 23 44' E)
- Extraterrestrial
SETI is looking for some sites :-)
- North America
- www0.us.ioccc.org
- Sunnyvale California, US (37 22' N 122 02' W) - www1.us.ioccc.org
- Saint Paul, Minnesota US (44 57' N 93 06' W)
- South America
none
We are looking for more mirrors.
Do you want to mirror the IOCCC web site? - Asia
-
some karma whoring.. mirrors:
- Asia
- www.tw.ioccc.org
- Hsin-Chu, Taiwan (24 48' N 120 59' E)
- Australia and other Pacific
- www.au.ioccc.org
- Sydney, Australia (34 0' S 151 0' E)
- Europe
- www.de.ioccc.org
- Humburg, Germany (53 33' N 10 2' E) - www.es.ioccc.org
- Madrid, Spain (40 25' N 3 41' W) - www.gr.ioccc.org
- Athens, Greece (38 00' N 23 44' E)
- Extraterrestrial
SETI is looking for some sites :-)
- North America
- www0.us.ioccc.org
- Sunnyvale California, US (37 22' N 122 02' W) - www1.us.ioccc.org
- Saint Paul, Minnesota US (44 57' N 93 06' W)
- South America
none
We are looking for more mirrors.
Do you want to mirror the IOCCC web site? - Asia
-
Impossible to obfuscate C? Surely you jest...Never heard of the the The International Obfuscated C Code Contest, I supposed.
Here's an example (natori), from the Year 2000 winners:
#include <stdio.h>
#include <math.h>
double l;main(_,o,O){return putchar((_--+22&&_+44&&main(_,-43,_),_&&o)?(main(- 43,++o,O),((l=(o+21)/sqrt(3-O*22-O*O),l*l<4&&(fabs (((time(0)-607728)%2551443)/405859.-4.7+acos(l/2)) <1.57))[" #"])):10);}
It supposedly generates a picture of the moon in it's current phase.
Impossible? feh. -
Impossible to obfuscate C? Surely you jest...Never heard of the the The International Obfuscated C Code Contest, I supposed.
Here's an example (natori), from the Year 2000 winners:
#include <stdio.h>
#include <math.h>
double l;main(_,o,O){return putchar((_--+22&&_+44&&main(_,-43,_),_&&o)?(main(- 43,++o,O),((l=(o+21)/sqrt(3-O*22-O*O),l*l<4&&(fabs (((time(0)-607728)%2551443)/405859.-4.7+acos(l/2)) <1.57))[" #"])):10);}
It supposedly generates a picture of the moon in it's current phase.
Impossible? feh. -
1990 IOCCC's "westley"
-
1990 IOCCC's "westley"
-
1990 IOCCC's "westley"
-
I highly recommendthis versatile entry into the 1988 IOCCC.
Some user configuration is required, of course.
-
Obfuscated code, 1K competition
Lots of "barrier pushing" code can be found in obfuscation contests. Check out the Obfuscated C contest or the Obfuscated Perl contest. For similar feats on the web, check out The 5k (which recently featured a lightweight chess entry).
-
smallest executable: cero bytesYes, if in Linux (maybe other *nix) you create a file with cero bytes (touch foo) and give it the execution permissions, you can execute it without error nor warning. It is not an elf executable and
after executing it you obtain: nothing (as you guess), but it is a funny completness property of system (null operator).
I saw this in one of the first
International Obfuscated C Code Contests. -
Re:mmmmm morsecode
One of my favorite bits of code from the ioccc is one that will read and write morse. Here it is for your compiling pleasure:
#include
#include
main()
{
char*O,l[999]="'`acgo\177~|xp .-\0R^8)NJ6%K4O+A2M(*0ID57$3G1FBL";
while(O=fgets (l+45,954,stdin)){
*l=O[strlen(O)[O-1]=0,strspn(O ,l+11)];
while(*O)switch((*l&&isalnum(*O))-!*l){
case-1:{char*I=(O+=strspn(O,l+12)+1)-2,O=34;
while(*I&3&&(O=(O-1661)*32];
while(putchar(45+*l%2),(*l=*l+32>>1)>35);
case 0: putchar((++O,32));}
putchar(10);}
} -
Programming And ArtThis is a topic that interests me a great deal. When I got my first computer, a ZX81, pretty much the first programs I wrote as a I learned to code where programmes that put pretty graphics on the screen.
My first "art" release (knocked up after I finished my work on X-COM Apocalypse) was THROB, which was a purely visual experience, and did not include the source as part of the "experience".
My second "art" release, described on an Italian Linux site as "deliciously incompressible"
was created for the International Obfuscated C Code Contest 2000 in collaboration with a friend, and did get some recognition. It is "THADGAVIN, and it won the "Most Portable Output" award. It was also featured on a the French alternative art scene website Téléférique, and discussed on K5 in that context.
As for the stuff on display here, I find it uninspired artistically, and unimpressive technically. There is very little "art" to the source code, and very little original about the output. I suspect that they got to be shown in a reputable gallery purely on the basis that they are "in". Trendy art students, part of the art scene. -
Well this is very clear code
I am sure most of you have seen this but this is some of the most clear codeI have ever seen.
-
Re:This book is destined
Your definition of "quick hack" seems to be questionable. I've cranked out quick hacks in every language I've ever used (C, C++, Perl, Pascal, CLIPS, numerous line-oriented scripting languages, LISP, etc.) It's always possible, and downright good. What's bad is writing code for any reason which others cannot understand and manage. If you do so in Perl, it's just as bad as doing so in Java, Python, C or COBOL.
Every language can be used to write obfuscated code. The question is, do you write obfuscated code for fun and when appropriate, or do you do it because you cannot do otherwise? If you cannot do otherwise, get out of the kitchen. If you can, do... in Perl or whatever langauge suits the job at hand.
Perl simply suits more jobs than most languages because of its flexibility, from complex data management (yes, of which its heralded capacity for text processing is a minor and rather unimpressive aspect) to elegant implementations of such high-level constructs as closures to the grace with which it does what you probably wanted in the first place by default, but always offers you the option to do otherwise.
Your comments make it pretty clear that you either do not know Perl, or you do not know it well. This is not shocking. Most people "know Perl" because they've seen some overglorified mailroom clerk's attempt at text processing written in it. The fact that Perl lends itself to being used by low-end programmers does not mean that that is the only domain in which it functions. If it were, I would have moved on long ago. -
lets see what it can do ...
With This code
code to music rendering on obfuscated code. Mmmmm........... -
Re:Let's just say
One line, eh? So, I take it the government agency responsible is a big fan of the IOCCC?
-
Re:It's amazing that people still can't make it ri
Theres only one True tetris in my eyes, the 1989 IOCCC Best Game winner, A true classic.
of course, it has been cleaned up and improved, and is now included as tetris-bsd in the BSD games collection. -
Re:Perl's had it's day - It's become like COBOL
To move on to languages that learnt from perl, that improved on it, that don't have to drag around a syntax and culture that values neat tricks and trying to guess what the programmer really meant over providing the needed building blocks and letting you build code that does what you say, not what it thinks it heard you say.
You're not that familiar with Perl culture, are you? Providing needed building blocks? We've got CPAN, a frighteningly large library of building blocks.
Sure, Perl values neat tricks. So do C hackers. Sure, sometimes the tricks are strictly for entertainment value. What's the harm (assuming you don't do anything foolish like using it in production code)? Sometimes a little trick will get a throwaway tool written and used more quickly.
As for the syntax, that's exactly what Larry is working on right now. The language has become a bit crufty, Perl 6 will try to clean out the cruft. I have no idea how well it will work, that's to be seen.
Or even, dare I say it, to move on to languages outside the perl family for some programming and choose the right tool for the job for a change.
Really out of the Perl culture loop, I see. Perl is all about using the right tool for the job. Part of Perl's strength is as a glue language: use whatever tool best fits a particular job, but when you've run into several tools, Perl makes it easy to glue them together. Perl has many ways to call over programs and process their output. Perl can call libraries written in other languages. Perl can be embedded into other languages. Perl tries its hardest to play nice with everyone else. In almost every case, you could provide a 100% Perl solution, but the Perl culture values the right tool for the right job, so it makes sense to make using other tools easy.
Sometimes you have a problem where Perl has nothing to add to a particular solution. The true Perl spirit is to leave Perl out.
True Perl hackers value working solutions over using their favorite tool.
Perl was great, it introduced many people to programming, just like COBOL did. But now it's time to move on.
COBOL didn't adapt to any significant extent. It was largely limited to its roots. Perl adapts. Perl has done as well as it has because it's a powerful and flexible language. Perl looks daunting because of its size, people miss that Perl is best learned like a human language, slowly and over time. Perl, like a human language, has adapted to changing times, picked up good ideas, and generally stayed fluid. When Perl was originally created, the web didn't exist, yet Perl proved to be an exception language for all sorts of web work. Why? Because Perl had lots of powerful primatives upon which was quickly built libraries to support common tasks.
-
Re:omg...
It could be worse. What would happen if Larry Wall decided this type of thing was a "good thing[tm]"?
Remember he has only won IOCCC twice so far.
-
ac karma whoring
did you come up with by yourself or did you rip it from ioccc?
-
Similarities in code can flunk you out!So just remember, next time you're going to write a Hello World program, don't just write
#include <stdio.h>
int main()
{
printf("Hello, World.");
return 0;
}because that will have similar code to other students...No, instead you must look to the code of great IOCCC winners for your homework projects...
-
Similarities in code can flunk you out!So just remember, next time you're going to write a Hello World program, don't just write
#include <stdio.h>
int main()
{
printf("Hello, World.");
return 0;
}because that will have similar code to other students...No, instead you must look to the code of great IOCCC winners for your homework projects...