5th Obfuscated Perl Contest Winners
strredwolf points out that
we have winners
of the Fifth Annual Obfuscated Perl Contest, noting, "Unfortunately, my virtual machine didn't win."
(Insert loser-condolences here.) BTW, I noticed problems with the code as printed: the winner of category 2 lacks a terminal quote, and I couldn't get the category 3 winner to compile even after fiddling with whitespace. Put up a webpage with code I can copy-paste-and-run,
email me,
and I'll update this story with your link.
is like hunting sea turtles. When they are laying eggs. On a beach. With a machine gun.
:)
Add an undermounted grenade launcher, and you've got the Obfuscated LISP contest.
I like you, Stuart. You're not like everyone else, here, at Slashdot.
This is not a flamebait.
Anyone can run Perl code through a perl-built obfuscator. Heck, one of the winning entries was an obfuscated perl-built obfuscator. How... imaginative.
I have lost my hardcopy of the Obfuscated C contest entries, but it seemed like they had a lot more spirit, and thought about the artistic side, on more than one level.
For example, one winner of Obfuscated C wrote a simple maze generator. However, the source code to the maze generator was itself a maze, with whitespace passages going up and across and down through the code. To top it off, those whitespace passages that cut through the code spelled out the word "MAZE", if you stood back far enough to see it. The main variables used were m, a, z and e, as well.
The closest to 'artistic' Perl source that I have seen is the "RSA Dolphin," where the RSA algorithm is formatted to have the silhouette of a dolphin. That's still only one level of art.
[
It has been done. You can now write perl in Latin.
Quattuor res in hoc mundo sanctae sunt: libri, liberi, libertas et liberalitas.
are all here.
Well, I tried to paste it, but couldn't get it to work out in fixed-width font. The link to the author is here, and he explains how he came up with it.
Very interesting reading on maze theory.
You quitting proves that the karma kap worked. The most annoying of the whores shut up. --CmdrTaco
What about obfuscated OISC?
You've heard of RISC, Reduced Instruction Set Computers? Well, here is the concept taken to its logical extreme -- an emulator for a computer with just one (1) instruction (Subtract and Branch if Negative)! Sample programs in the OISC machine language are included.
ESR has an OSIC emulator.
cpeterso
Just add a quote at the end yourself. Then it compiles without error
Have you read my journal today?
I'm not a programmer, but that seems to be cheating. Too many of the entries rely on self-extracting or self-decrypting code. Perhaps the contest judges should have separate categories for obfuscated programs which aren't self-modifying, or at least aren't compressed or encrypted.
Yes, I have to say I was very impressed with these scripts. It's a display of impressive talent when your code is so obfuscated that even the compiler can't figure it out.
The coolest obfuscated C program I ever saw was a tic tac toe program. Basically, each time you ran it, it outputted source code in the form of a tic tac toe board. To get it to play the next move, you compiled the current board and ran it again.
(At least, this is how I remember it. Somebody correct me if I'm wrong).
-- Will quantum computers run imaginary-time operating systems?
- hunting turtles
- laying eggs
- on beach
- with machine gun
and not- hunting turtles
- laying eggs
- on beach
- with machine gun
Sorry.--
Yep, I took third place in the first section of the contest, which was to write a game in Perl in 512 bytes or less. I love game programming, and I love Perl, and the contest was really a lot of fun. I'm proud of what I did. To all those who are clever and say that Perl is obfuscated in and of itself, I disagree. I think writing obfuscated Perl *WELL* requires vast knowledge of the language, including obscure little tricks, weird regexps, etc, and HOW to use them effectively. Not me, though... I just wrote a game and made sure it was 512 bytes (which isn't as easy as it sounds to maximize the "game" part and minimize the bytes). Adam
What I want to see is obfuscated Pascal, or better Modula 2, contest. This would be sport, gentlemen. Obfuscated Perl isn't, I'm sorry.
--
You don't need to be a genius to write utterly incomprehensible perl code.... Bah, this comment is too obvious. Look, I'll start again.
I would like to see a contest for programs that are readable and work even though they shouldn't, like if you create a c program which includes a bunch of macros
#define like {
#define ok }
#define um ;
#define int dude
etc
then you can write fairly serious programs in valley speak. I started doing this once, but then I got a life..
http://rareformnewmedia.com/
You can download all the entries from The Perl Journal Contest Page. It's not as convenient as copy&paste, but it works.
Never underestimate the bandwidth of a 747 filled with CD-ROMs.
The tic tac toe program where the source is the board (recompile for next move)
The program that flips a square text file about the main diagonal, and when fed its own source produces a different c program that does the smae via a different method
A LISP compiler (in under 1KB)
The adventure game where your commands are compiler options and the response is the errors
and my favorite, the first ever winner:
it's a one-line program that confuses the Slash code :(. It's the first one, by an anonymous author.
so for those interested, its worth a read. I think Slashdot covers it every year, but I don't really feel like digging up links. happy reading (err... confusion?)!
When I heard about this, I was pretty surprised. I thought "obfuscated Perl" was redundant. If they want a challenge, how about a "Documented Perl" contest?
In this, the entrants must write a non-trivial application, entirely in Perl, that has to be completely portable across at least 3 implementations (including one on Windows) and at least 25,000 lines of code (not counting comments).
Judges will introduce a bug into each program that would be obvious if you knew what the program did. Each bug *must* involve a cascade from an ambiguous or subtle misuse one of Perl's much-heralded "Do what I mean" functions.
A panel of experienced Perl programmers will be given the programs to debug. The program that takes the least average time to debug wins.
That's a contest.
AG