Obfuscated code contest with Safari Books Online prize!
As we posted a couple weeks ago, one of our newest sponsors is Safari Books Online, the outfit that offers a digital library of tech books from publishers like O'Reilly, Apress, and Addison-Wesley. As part of Safari's sponsorship, they offered BB readers one month free online access to any of the following books: JavaScript: The Definitive Guide, Learning Perl, and Head First HTML with CSS & XHTML. As mentioned previously, we thought it would also be a hoot to hold a contest based on what you might learn from those books. As a prize, Safari offered up a year of access to the complete Safari Books Online library, a $515 value. So now the contest... In Learning Perl, the authors write the following:
"Though we recommend you write clear code, some people like writing code that's as hard to understand as possible... We don't recommend it for normal coding purposes, but it can be a fun game to write confusing code..."So in that spirit, we are holding an obfuscated code contest. To enter, come up with a wonderfully obfuscated code snippet that prints out the phrase "Boing Boing." Post the snippet in the comments thread. Then, we'll pick a winner with the shortest, most elegant, or creative bit of code. The snippets have to be executable!
You have 24 hours from now, after which time we'll lock the comments thread. The winner will be announced here on November 19. Good luck!
Free tech books from Safari Books Online


the latest
latest episodes
Are there any constraints on language?
Blargh. Written in C- be sure to compile in C99 mode. Haven't tested it so maybe it won't even work. I'll do a better one later if time allows.
main(){char w[]="*i^oorbB
Paulirish: I am hoping that - for the purposes of this contest - anything not explicitly denied is allowed to enter; but nothing says the judges have to respect, at the end, a particular entrant's definition of "language".
Nor is there any limit on how many times one may enter.
;//.*/; print "Boing Boing\n"; $_=<<t; ;int main() {printf("Boing Boing\n");} /* (write-string "Boing Boing") t ;#*/This single text file is valid code in each of C, Perl, and Lisp, and performs the required task in each language.
In PHP:
In PHP: <?= strtr ("nouma nouma","aumn","ginB"); ?>
in oldschool javascript
var cs=[66,111,105,110,103];
var sp=[32,46];
while(s=sp.shift()) {
var cn=cs.slice();
while(c=cn.shift()) document.write(String.fromCharCode(c) + (cn.length == 0 ? String.fromCharCode(s) : ""));
}
In Java
/**
* @author karakfa
* 20081112
*/
public class BoingBoing {
static int i, j;
// look Ma, no numbers!!!
public static void main(String[] args) {
int p[] = new int[p(i) * p(i) * p(j)];
p[p(p(j) + j)] = p(i) * (p(i) * p(p(j) + j) + j);
p[p(i) * p(j)] = p[i] = p(i) * p(j) * p(p(j) + j);
p[p(p(j))] = p[p(i) - j] = p(i) * p(p(i)) * p(p(j) + j) + j;
p[p(j) + p(p(i))] = p[p(i)] = p(j) * p(p(j)) * p(p(i));
p[p(p(j)) + p(i)] = p[p(j)] = p(i) * p(p(i)) * p(p(j) + j);
p[p(p(j) + j) - j] = p[p(j) + j] = p(j) * p(p(j)) * p(p(i)) - p(i);
p[p(p(i))] = p(j) * p(p(j) + j) - j;
p(p);
}
static int p(int p) {
return p == i ? p(i - ((i == j) ? ++j : j)) :
p < i ? j + j :
p(- j) * (p(p - j) - (p - j) / p(- j)) - j;
}
static void p(int[] p) {
for (int c : p) System.out.print((char) c);
}
}
#!/usr/bin/perl
@_=(32,8,90,5,32,9,90,1,32,17,90,5,32,9,90,1,10,1,32,8,90,1,32,4,90,1,
32,3,90,2,32,5,90,1,32,1,90,2,32,3,90,4,32,5,90,1,32,4,90,1,32,3,90,2,
32,5,90,1,32,1,90,2,32,3,90,4,10,1,32,8,90,5,32,3,90,1,32,2,90,1,32,2,
90,1,32,1,90,2,32,2,90,1,32,1,90,1,32,3,90,1,32,5,90,5,32,3,90,1,32,2,
90,1,32,2,90,1,32,1,90,2,32,2,90,1,32,1,90,1,32,3,90,1,10,1,32,8,90,1,
32,4,90,1,32,1,90,1,32,4,90,1,32,1,90,1,32,1,90,1,32,3,90,1,32,1,90,1,
32,3,90,1,32,5,90,1,32,4,90,1,32,1,90,1,32,4,90,1,32,1,90,1,32,1,90,1,
32,3,90,1,32,1,90,1,32,3,90,1,10,1,32,8,90,5,79,1,32,2,90,4,32,2,90,1,
32,1,90,1,32,3,90,1,32,2,90,4,32,5,90,5,32,3,90,4,32,2,90,1,32,1,90,1,
32,3,90,1,32,2,90,4,10,1,32,34,90,1,32,31,90,1,10,1,32,32,90,2,32,30,
90,2,10,1);$c=0;foreach(@_){if($c++ %2){print chr($_[$c-2])x$_;}}
Done with evil helpful comments.
#!/usr/bin/perl
use warnings; # We wouldn't want do do anything wrong
use strict; # Enforces good coding style.
@_=qw/[ PERL larry wall aeiou GNU richard stallman tcp ip ]/;
print map{my(@a)= getprotobyname $_[-3];my(%a)=map{pop @a;
unshift @a,$_;($a[-3],[@a[1..2]])}split(m##,$_[-7]);$\=$_[0]^$a[0].$/;
$,=join(substr($a[0],1),map{$a{$_}?(@{$a{$_}}):$_;}reverse(
split(qr!!,lc($_[-6]))));map{($_ gt$_[2])?chr(11*2*3):$_ gt$_[3]}@a;}$_;
in javascript:
var b=      new Array(      34,         45,-6,5,     -7,-71, 34,45,-6,5,  Â
-7,         -103,                       32, 12,       11);
function    WTF   (bo,      ing)        {            return      String.fromCharCode(
bo       )                  ;           }            function            taser(Â
steampunk,  papercraft         ){       return       papercraft          >0?xeni(
steampunk, papercraft):     WTF(        steampunk    + b[                12]);}
function    xeni(           animation,  hacks){var   unicorn             =Â
taser(      b[--hacks       ],hacks);   return       unicorn +    WTF(animation +Â
unicorn.charCodeAt          (           unicorn.length - 1)      );}
document.body.innerText=Â Â Â Â taser(Â Â Â Â Â Â b[12],12);
#!/usr/bin/perl
$search = "wonderfully obfuscated code snippet that prints out the phrase";
$page = `wget --quiet --output-document=- --user-agent="" \'http://www.google.com/search?q="$search"'`;
$page =~ /$search \"\;(\w+ \w+)\.\"\;/;
print "$1\n";
#!/usr/bin/perl
$search = "wonderfully obfuscated code snippet that prints out the phrase";
$page = `wget --quiet --output-document=- --user-agent="" \'http://www.google.com/search?q="$search"'`;
$page =~ /<em>$search<\/em> \"\;(\w+ \w+)\.\"\;/;
print "$1\n";
Sorry for the duplicate posting, but there is a bug in the comments submission: < is converted to < in the text box, so that if you submit something that says
<em>
it is rewritten to
<em>
upon preview, which on posting then actually renders as html.
So to submit this comment, I'm avoiding the preview function entirely. I'll keep my fingers crossed that I've done the right amount of quoting.
#!/usr/bin/perl
$search = "wonderfully obfuscated code snippet that prints out the phrase";
$page = `wget --quiet --output-document=- --user-agent="" \'http://www.google.com/search?q="$search"'`;
$page =~ /<em>$search<\/em> \"\;(\w+ \w+)\.\"\;/;
print "$1\n";
[-]>[-]
>++++++[-] >+++++[-] ------.
+++++.
-------.
>+++++++[-] >+++++[-] >+++++[-] ------.
+++++.
-------.
http://en.wikipedia.org/wiki/Brainfuck
#!/usr/bin/perl
sub b{my $s,$f=5,$c=13*$f+1;for((0,$f*9,-6,$f,-7)){$s.=chr($c+=$_);}$s;}print join(' ',(b(),b()));
As usual, looking at those samples, Perl wins hands down for everything related to obfuscation. I'm not sure even Brainf*k is a match !
""=~('(?{'.('/)).]`'^'_[@@)@').'"'.('"/).<`"/).<}'^'`@@@[@`@@@[_').',$/})')
#!/usr/bin/ruby
moo = [0, 66, 45, -6, 5, -7, -71, 0]
for i in 0..1
    for x in i...moo.length
     x=moo.length if x==i;
     moo[i] += moo[x] unless !moo[x+1]
     moo[moo.length-1] = moo[moo.length-1].to_s + moo[i].chr
    end
end
puts moo[moo.length-1].to_s.strip.sub(/[0-9 ]/, '').squeeze(" ")
<?php
$why = "y";
$sometimes = false;
$vwl = array("o", "i", "a", "e", "u");
$disem = array("z","x","w","v","t","s","r","q","p","n","m","l","k","j","h","g","f","d","c","b");
$disem = array_reverse($disem);
if($sometimes == true) {
$vwl[] = $why;
}else{
$zed = array_pop($disem);
array_push($disem, $why, $zed);
}
$happy = $disem[0];
$mutant = strtoupper($happy);
$mutant .= $vwl[0];
$mutant .= $vwl[1];
$mutant .= $disem[10];
$mutant .= $disem[4];
$mutants = $mutant." ".$mutant;
print_r($mutants);
?>
[
-]
>[-
]>++
++++
[-]>++
+++[-]--
----.+++
++.-------
.>++++++
+[-]>+++++
[-]>+++++[-]-
-----.+++++.----
--
-.
for the graphically stimulated BFers
This is based on #7 reaktivo's entry.
b="úrCode(þ;while(þscript>þvar þ.shift())þString.fromChaþ\\\\þ\\\/þ\\\"".split('þ');n="
I'm pretty sure the filter will mangle this, but preview doesn't seem to be working... *crosses fingers*
Okay, it's not showing up yet, but I'm sure something went wrong. How about a link:
http://www.krisjohn.net/bb.html
Again, based on #7 reaktivo's entry, believe it or not.
I wrote a simple Perl program called printBoingBoing.pl that does the trick:
#!/usr/bin/perl
$0 =~ /print(.*?)\.(.*?).*/;
$\ = "$1\n";
print;
Only works if you name it printBoingBoing.pl though.
:D
echo -en \\0102\\0157\\0151\\0156\\0147\\040 |tee /dev/tty
--Charlie
The following Haskell code works in GHC, but not Hugs, as it requires Arrows. This pastebin shows it a bit better, including the ASCII ART. There are no explicit string constants aside from encoded equation coefficients. The "Boing" comes from pure math. All functions are in the point-free style with no explicit arguments.
for(>DATA<){s#\#.*##;$:=unpack"u*",$_;$,=length$:};$|=$.;$#=$:;do{$:=$#;foreach
($|-$...$,){print substr$:,0,$.,'';sleep$.;}}foreach($|-$.,$.);print$/;__END__
%0F]I;F
E-mail address redacted, but saved.
the proportionate width font totally hoses this, so go here: http://jcald.com/boingboing.txt
#!/usr/bin/perl
$_='
#@@ @@ #@# #@
# # # # # # @ # @ @
### @## #@ ##@ @## #@# @@ @@@
# @ @ @ @ # @ # # @ # # # # # #
@#@ @## # @ # ##@ ##@ @## # 8 8 888
';
tr/@#/01/;
s/[^01]//g;
split //;
for($i=0;$i<=$#_;$i+=7) {
print pack('B8','0'.join('',@_[$i..$i+6]));
}
How about the classic use of a TRS-80 to befuddle clueless Radio Shack employees?
10 ? "boingboing"
20 GOTO 10
not a show stopper, but still fun (compile w/ gcc bb.c, gives me a warning, but whatever)...
ugh, variable width kills it, but i'm posting it anyway...
g(char*t){char*s=t,o[]
={92,110,92 ,10,34
,59}; write
(1,&( 4[o]),
1);while(*s
)(*s==
10)?(write
(1,o ,4),s
++): write
(1,s++,1);
write(1,&(4 [o]),
2);} f(char *t){
char *s=t;
while(*s
!=36)
write
(1,s++,1
);g(t);for
(s++ ;*s;
s++) write(1,s,1
);}main(){char t[]=
"g(char*t){char*s=t,o[]\n\
={92,110,92 ,10,34\n\
,59}; write\n\
(1,&( 4[o]),\n\
1);while(*s\n\
)(*s==\n\
\n\
10)?(write\n\
(1,o ,4),s\n\
++): write\n\
(1,s++,1);\n\
\n\
write(1,&(4 [o]),\n\
2);} f(char *t){\n\
\n\
char *s=t;\n\
while(*s\n\
!=36)\n\
write\n\
(1,s++,1\n\
\n\
);g(t);for\n\
(s++ ;*s;\n\
s++) write(1,s,1\n\
);}main(){char t[]=\n\
\n\
$\n\
\n\
f(t);}\n\
";
f(t);}
Results viewable here. Code:
<?php
/*aach*/ $fl=file(__FILE__);
/*cccb*/ list($d,$p,$f,$r,$m)=array('define','preg','funxexrgs','replace','implode');
/*fccc*/ $d('L','<');$d('E','=');$d('G','>');$d('N','');$d('R',"\x0d");$d('U','_');
/*ddbc*/ $p.=U.$r;
/*bfcg*/ foreach(array('c'.U.'g','t'.U.'a')as $y){
/*bhcb*/ $f=$p('!x!',$y,$f,1);
/*fhcc*/ }
/*cibd*/ foreach($fl as $i=>$l){
/*akcc*/ if(preg_match('@/\*([a-z]{4})\*/@',$l,$w)){
/*dkce*/ unset($v);
/*bncg*/ for($j=0;$j<4;$j++){$v[]=ord($w[1]{$j})-ord('a');}
/*gtbb*/ $le[]='['.$m(',',$v).']';
/*bpcb*/ unset($fl[$i]);
/*bpcb*/ }else{$fl[$i]=$p('@(^.*?//$|^\*\*/|^/\*\*|<'.'\?php|\?>)@',N,$l);}
/*cqbf*/ }
/*bseb*/ function e(){global $f,$m;$a=$f();print($m(N,$a));}
/*csbc*/ function et(){global $f,$m;$a=$f();$v='e(L);e(\''.$m('\',\' ',$a).'\');e(G);e(R);';eval($v);}
/*dtbb*/ function te(){global $f,$m;$a=$f();$a[0]='/'.$a[0];$v='e(L);e(\''.$m('\',\' ',$a).'\');e(G);e(R);';eval($v);}
/*cucf*/ function at(){global $f,$m;$a=$f();return($a[0].E."\"${a[1]}\"");}
/*fsbc*/ eval($m(R,$fl));
/**
et('?xml',at('version','1.0'),at('encoding','UTF-8'),'?');
et('!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"');
et('html',at('xmlns','http://www.w3.org/1999/xhtml'),at('xml:lang','en'),at('lang','en'));
et('head');
et('title');
e('bb');
te('title');
et('style',at('type','text/css'));
e('.bb{position:absolute;background-color:red;}'.R);
te('style');
te('head');
et('body');
et('script',at('type','text/javascript'));
e('var a=['.$m(',',$le).'];');
e('
for(i in a){
document.write(\'<div class="bb" style="top:\'+(45+a[i][0])+\'%;left:\'+(27+a[i][1])+\'%;width:\'+a[i][2]+\'%;height:\'+a[i][3]+\'%"> </div>\');
document.write(\'<div class="bb" style="top:\'+(45+a[i][0])+\'%;left:\'+(50+a[i][1])+\'%;width:\'+a[i][2]+\'%;height:\'+a[i][3]+\'%"> </div>\');
}
');
te('script');
te('body');
et('html');
**/
?>
eval(''.join([chr(sum([39, 0, 7, 60, 5, -6, 5, -70, 51, 8, 5, 10, -74, 75, 2,
-8, -69, 51, -37, 0, -10, -12, 20, 1, -9, -12, 13, 9,
-10, -12, 21, -9, -12, 13, 10, -11, -12, 13, 10, -6, -5,
-12, 19, 1, -8, -12, 20, 1, -9, -12, 13, 9, -10, -12, 21,
-9, -12, 13, 10, -11, -12, 13, 10, -7, 45, -2, -43, 10,
52, -67, 6, 44, -52, 0, -9, 70, 9, 3, -82, 78, -78, 73,
5, -78, 88, -6, -17, 13, -7, -2, -61, 9, 1, -9, 52,
-52][0:n+1])) for n in xrange(96)]))
can be a bit hard to write obfuscated python one-liners, so i had to make python that writes itself
The effect of the Befunge program below is totally lost thanks to the comment field ignoring my pleadings for a fixed width font.
2>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>v v<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< >235v >><< v > v >>>v >*,3v >><< v > v >>>v || || , v v < v 7 * < v 2 v v < v 4 - < v || || ^ < > * v 5 > * v ^ < > 5 v * > 0 v :: :: >12#v v 3 * 3 < , v >2*#v v 0 + * < 5 v :: :: , ^ 2 3 + , > 2 v >>6+ * ^ + , g 5 > 5 v >1-: || || * ^ > ^ 3 * <5 > ^ 5 ^ > ^ , 5 <+ > ^ ^*+6< >><< > ^ > >5^ ^*52< >><< > ^ > >p^ @@ @@ ...............................................................................
For 28... the angle brackets around DATA are the wrong way around, and the uuencoded text on the last line should be "%0F]I;F<@#"
E-mail address redacted, but saved.
10 PRINT "Boing Boing"
20 GOTO 10
in our beloved javascript:
alert( function() { x="";
unicorns = [66, 79, 73, 78, 71, 32, 66, 79, 73, 78, 71];
for (i in "U N I C O R N c h a s e r".split(" "))
if (i < unicorns.length) x+=String.fromCharCode(unicorns[i]);
return x;
}() );
http://particularplace.com/obf.html
One for the hoboes:
bash$ grep 'hobo' /usr/share/dict/words|sed 's/ho//g'|grep i|tee -
I'll try that again...
<?php $e='str_repeat(';$s=array('/(\d)(.)/e'=>"$e'\\2',\\1)",'/([FPN])/e'=> "$e' ',ord(\"\\1\")&31)",'/a/'=>'+-c','/b/'=>'| ','/c/'=>'+ ','/:/'=> "\n");$r="cFc:b:aacaa:9b:aa3ca:Pb:Na";$p='pre>';foreach($s as $a=>$b) $r=preg_replace($a,$b,$r);$m=explode("\n",$r);echo "<$p";$i=1;foreach ($m as $n)eval("echo {$e}str_pad(\$n,19),2).\$m[0][\$i++%5].\"\n\";") ;echo "</$p\n"; ?>Classic obfuscation.
or just in case those tags screw up.....
<?php eval(base64_decode('ZWNobyJCb2luZyBCb2luZyI7'));?>
:)
Requires some wetware to execute:
- ...
---
..
-.
--.
- ...
---
..
-.
--.
/*C, natch...*/
#include <iostream>
int main()
{
printf("%c%c%c%c%c%c%c%c%c%c%c",
((0x0^13^0x00000)&0xFF)+0x35,
((0x000^'ò'^0x00)&0xFF)-0x83,
((0x000000|0x000)&0xFF)+0x69,
((0x00000^'ñ'^00)&0xFF)-0x83,
((0x0000000^6^00)&0xFF)+0x61,
((0x0000000^13^0)&0xFF)+0xF2,
((0x00000^'ò'^00)&0xFF)-0xB0,
((0x00000|0x0000)&0xFF)+0x6F,
((0x00^'ñ'^0x000)&0xFF)-0x88,
((0x0^6^0x000000)&0xFF)+0x68,
((0x4^'£'|'ƒ'^30)&0xFF)+0xA8
);
return 0;
}
Requires some faulty wetware to execute:
LAGOS, NIGERIA.
ATTENTION: THE PRESIDENT/CEO
DEAR SIR,
CONFIDENTIAL BUSINESS PROPOSAL
HAVING CONSULTED WITH MY COLLEAGUES AND BASED ON THE INFORMATION GATHERED FROM THE NIGERIAN CHAMBERS OF COMMERCE AND INDUSTRY, I HAVE THE PRIVILEGE TO REQUEST FOR YOUR ASSISTANCE TO TRANSFER THE SUM OF $47,500,000.00 (FORTY SEVEN MILLION, FIVE HUNDRED THOUSAND UNITED STATES DOLLARS) INTO YOUR ACCOUNTS. THE ABOVE SUM RESULTED FROM AN OVER-INVOICED CONTRACT, EXECUTED COMMISSIONED AND PAID FOR ABOUT FIVE YEARS (5) AGO BY A FOREIGN CONTRACTOR. THIS ACTION WAS HOWEVER INTENTIONAL AND SINCE THEN THE FUND HAS BEEN IN A SUSPENSE ACCOUNT AT THE CENTRAL BANK OF NIGERIA APEX BANK.
WE ARE NOW READY TO TRANSFER THE FUND OVERSEAS AND THAT IS WHERE YOU COME IN. IT IS IMPORTANT TO INFORM YOU THAT AS CIVIL SERVANTS, WE ARE FORBIDDEN TO OPERATE A FOREIGN ACCOUNT; THAT IS WHY WE REQUIRE YOUR ASSISTANCE. THE TOTAL SUM WILL BE SHARED AS FOLLOWS: 70% FOR US, 25% FOR YOU AND 5% FOR LOCAL AND INTERNATIONAL EXPENSES INCIDENT TO THE TRANSFER.
THE TRANSFER IS RISK FREE ON BOTH SIDES. I AM AN ACCOUNTANT WITH THE NIGERIAN NATIONAL PETROLEUM CORPORATION (NNPC). IF YOU FIND THIS PROPOSAL ACCEPTABLE, WE SHALL REQUIRE THE FOLLOWING DOCUMENTS:
(A) YOUR BANKER'S NAME, TELEPHONE, ACCOUNT AND FAX NUMBERS.
(B) YOUR PRIVATE TELEPHONE AND FAX NUMBERS -- FOR CONFIDENTIALITY AND EASY COMMUNICATION.
(C) YOUR LETTER-HEADED PAPER STAMPED AND SIGNED CONTAINING THE TEXT "BOING BOING."
ALTERNATIVELY WE WILL FURNISH YOU WITH A BREAKDOWN EXPLAINING, COMPREHENSIVELY WHAT WE REQUIRE OF YOU. THE BUSINESS WILL TAKE US THIRTY (30) WORKING DAYS TO ACCOMPLISH.
PLEASE REPLY URGENTLY.
BEST REGARDS
@Bumper314: Wow! Amazing perl. You should win hands down, but if the judges want to be sticklers then your output is missing the terminal period.
Here's a much more straightforward version.
@,=split//,".\n";$,=sub{print$_[0].$,[$.++]},s,(?{$\,->(Boing)}),$\,->(''),e;
D'oh, the space was eaten by gremlins. This time with an .
@,=split//," .\n";$,=sub{print$_[0].$,[$.++]},s,(?{$\,->(Boing)}),$\,->(''),e;
Lol - a lot of Perl entries here. Says something, maybe?
Java:
System.out.println((_c_=""+(c_=' '+'"')+(_=(char)('-'+c_))+(char)(c_--+'\'')+--_+(((_c='='-'+')==_c++)?(char)(--c_+':'-_c):(char)(++_c-'?'+--_)))+(_=(char)(c_-' '))+_c_+(char)(++c_-_c));
@ShaperReality
I think the '.' in the requirements is simply the end of the sentence, not the requisite string output.
@Bumper314...
x0rz!
Is interpolation obfuscative? If so, in VB.NET.
Sub BB()
Dim I As Integer, J As Integer
For I = 1 to 2
For J = 1 to 5
Console.Write(Chr( _
66*(x-2)*(x-3)*(x-4)*(x-5)/24 - _
111*(x-1)*(x-3)*(x-4)*(x-5)/6 + _
105*(x-1)*(x-2)*(x-4)*(x-5)/4 - _
110*(x-1)*(x-2)*(x-3)*(x-5)/6 + _
103*(x-1)*(x-2)*(x-3)*(x-4))/24))
Next J
Console.Write(" ")
Next I
Console.Write(".")
End Sub
Here's another:
<?php
$s="8o??yx^/:x^^x:x% ox8oyz% ox8o8y/:x*y_y/:xoy_y/:8**x*y *x8*yzy x".
"y*x*xy/x:^??yx^^x:^?yy*xx*^??y*xx*";$r=array('%'=>'oxoy','^'=>'???',
'?'=>'yyy','_'=>'zy z xy zy x','z'=>'x x','y'=>' ','x'=>'88'); $a=
explode(':',$s);$a=preg_replace('|([^/]+)/|','$1y$1',$a);echo "<pre>";
foreach($a as $b){foreach($r as $c=>$d)$b=str_replace($c,$d,$b);echo
"$b\r";}echo "</pre>";
?>
Nope, scratch that. Try this instead:
<?php
$s="8o??yx^/:x^^x:x% ox8oyz% ox8o8y/:x*y_y/:xoy_y/:8**x*y *x8*yzy x".
"y*x*xy/x:^??yx^^x:^?yy*xx*^??y*xx*";$r=array('%'=>'oxoy','^'=>'???',
'?'=>'yyy','_'=>'zy z xy zy x','z'=>'x x','y'=>' ','x'=>'88'); $a=
explode(':',$s);$a=preg_replace('|([^/]+)/|','$1y$1',$a);echo "<pre>";
foreach($a as $b){foreach($r as $c=>$d)$b=str_replace($c,$d,$b);echo
"$b\r";}echo "</pre>";
?>
#define Q ,
#define oo 1
#define O 11
#define o 7
#define ooo O+O+O-oo
#define OoOo main
#define O0oo printf
#define OO O*o
#define Ooo OO-O
#define Oo0 OO+(oo
No one writing directly to VRAM? Aw...
In perl: DAMN width is all messed up.. view source to see what it should really look like..
Alternately you can click here to get a better sample
Crap! Damn bit-shift operators. Ignore #53 above, now with entity-referenced goodness.
#define Q ,
#define oo 1
#define O 11
#define o 7
#define ooo O+O+O-oo
#define OoOo main
#define O0oo printf
#define OO O*o
#define Ooo OO-O
#define Oo0 OO+(oo #define O0o OO-o+(oo #define O00 Oo0-oo
#define o0O OO-o+oo+ooo
#define OoO Ooo Q Oo0 Q O0o Q O00 Q o0O
OoOo() {O0oo("%c%c%c%c%c%c%c%c%c%c%c" Q OoO Q O+O+O-oo Q OoO);}
Okay. Even better Java:
public static void main(String args[]) {
String l;char l_,_,_l;
System.out.println((l=""+(l_=' '+'"')+(_=(char)('-'+l_))+(char)(l_--+'\'')+--_+(((_l='='-'+')==_l++)?(char)(-(1-l_)+':'-_l):(char)(_l+1-'?'+--_)))+(_=(char)(--l_-' '))+l+(char)(l_+1-_l));
}
I think that should work.
Peter
Third time's a charm? It's obvious that blog comment filters were never meant to see code.
#define Q ,
#define Qo
#define oo 1
#define O 11
#define o 7
#define ooo O+O+O-oo
#define OoOo main
#define O0oo printf
#define OO O*o
#define Ooo OO-O
#define Oo0 OO+(oo Qo oo)+ooo
#define O0o OO-o+(oo Qo oo)+ooo+oo
#define O00 Oo0-oo
#define o0O OO-o+oo+ooo
#define OoO Ooo Q Oo0 Q O0o Q O00 Q o0O
OoOo() {O0oo("%c%c%c%c%c%c%c%c%c%c%c" Q OoO Q O+O+O-oo Q OoO);}
I hope this comment doesn't get disemvowelled. :-)
Sigh. Ignore my previous, bit-shift operators won't come out, even when entity-referenced. So here it is without any:
#define Q ,
#define oo 1
#define O 11
#define o 7
#define ooo O+O+O-oo
#define OoOo main
#define O0oo printf
#define OO O*o
#define Ooo OO-O
#define Oo0 OO+(oo+oo)+ooo
#define O0o OO-o+(oo+oo)+ooo+oo
#define O00 Oo0-oo
#define o0O OO-o+oo+ooo
#define OoO Ooo Q Oo0 Q O0o Q O00 Q o0O
OoOo() {O0oo("%c%c%c%c%c%c%c%c%c%c%c" Q OoO Q O+O+O-oo Q OoO);}
#include int __(int _=false){int ___,____, _____;___='&'- ' ';____=___/___+ ___/___;_____=___/____; return(_>=(___=_-_?__(_+___/___):'-');} int main(){return __();}
Post 60 got mangled in the filters:
http://rapidshare.com/files/163263082/boingboing.c
echo "print eval(str('u\''+str(r'\x20'.join([''.join([r'\x'+hex(i).replace('0x','') for i in [66,111,105,110,103]]) for i in [0,0]]))+'\''))" | python
Scratch #28: this is better (the output is closer to the specified string):
for(<DATA>){s#\#.*##;$:=unpack"u*",$_;$,=length$:}$|=$.;$#=$:;do
{$:=$#;foreach($|-$...$,){print substr$:,0,$.,'';sleep$.}print$_?
'.':' ';sleep$.}foreach($|-$.,$.);print$/;__END__
%0F]I;F$lt;@#
OMG these are amazing.
for(<DATA>){s#\#.*##;$:=unpack"u*",$_;$,=length$:}$|=$.;$#=$:;do
{$:=$#;foreach($|-$...$,){print substr$:,0,$.,'';sleep$.}print$_?
'.':' ';sleep$.}foreach($|-$.,$.);print$/;__END__
%0F]I;F<@#
I'm learning to hate that filter.
in java (looks much better in fixed width):
class Boing{String[] $$$££ = new String[]{"black people","white"+
" people","puerto ricans","samoans","gimme a little bit of that"+
" bass groove right there","mmmrrr mmrrr mrrrmm rrrmmm aw yeah"};
int $$$$£;int $$£$£=++$$$$£,$£$£$=$$£$£+$$$$£--,£$£$$=$£$£$+$$£$£
,££$$$=$£$£$*$£$£$,$£$££=$£$£$+£$£$$,$££$£=(££$$$+$£$£$),£$£$£=((
$£$£$<<$£$£$))+($$£$£),$£££$=$£$£$*$£$££,££$£$=$$$$£-$$£$£;int []
£££$$={$$$$£,$£$££,$££$£,(($£$££)),$££$£,$£$££,££$£$,$$$$£,$$£$£,
$$£$£,$$£$£,$£$££,$£$££,££$£$,$$£$£,££$$$,£$£$$,££$$$,$£$££,$£$£$
,((££$£$)),$$£$£,$£$£$,$£$£$,$£$£$,£$£$$,$$$$£,£$£$$,££$$$,$£$£$,
££$$$,$£$££,$$£$£,££$£$,$$£$£,$£$£$,$$£$£,£$£$$,££$$$,$$£$£,££$$$
,$£$££,$$$$£,££$£$,($$£$£),$£$£$,($$$$£)};int[]£$$££={$£$£$,$££$£
,££$$$,$£$££,$£$££,$$£$£};int[][]$$££$;{$$££$=new int[(($££$£))][
];for(int $$£££=$$$$£;$$£££<(£$$££.length);$$£££++) {$$££$[£$$$£(
$$$££[$$£££],$$£££)]=new int[(£$$££[($$£££)])];}}int ££$$£=$$$$£,
££$££=$$£$£,£££$£=$£$£$,£$££$=$$$$£,$$£££=$$$$£,£$$$$=$$$$£,£$£££
=$$$$£,$$$£$=$$$$£;{$$$$$ :for(int £$$££:(£££$$)){if(£$$££==££$£$
){$$$£$++;continue $$$$$;}if((£$£££%£$£$$)==££$$£)£$££$=£$$££;if(
£$£££%£$£$$==££$££)$$£££=£$$££;if(£$£££%£$£$$==£££$£){£$$$$=£$$££
;for(int ££$$£=£$££$;££$$£<$$£££;££$$£++){$$££$[(££$$£)][($$$£$)]
=£$$$$;}}£$£££++;}}Boing(){for(int ££$$$=$$$$£;££$$$<=$$£$£;££$$$
++){for(int[]££$££:($$££$)){int £$$££=$$$$£;for(int $$$££:(££$££)
)£$$££+=(($$£$£<<$$$££));System.out. print((char)£$$££);}}}public
static void main(String[]$£){new Boing();}public int £$$$£(String
$££$$,int £$£$$){int $$£££=$££$$.charAt(£$£$$);return( ((($$£££)%
$£££$)*£$£$£)/$£££$)+((($$£££%$£££$)*£$£$£)%$£££$)-£$£$£+£$£$$;}}
Your wish is my command line - from my username to this blog, in only 1,175,177 steps:
% perl -le '$c="McD";for(1..1175177){$c++}print $c x 2'
Caveats:
1. Works as shown on a unix-y shell. For a DOS shell, change the single quotes to doubles, and the double quotes to singles.
2. You'll need either a recent Perl interpreter or a couple more megs of memory.
3. 42 characters long. Don't Panic. That, plus the output aesthetics, is reason enough to sacrifice the two strokes in Perl Golf you'd get by using die() instead of print(). If I lose this contest by two bytes, it's totally worth it.
3. Yes, you can get there without the x 2. It takes a few more steps - 14,068,108,783,849 of them. I estimate my machine would take about sixteen hours to count that high, but I'm not sitting around to find out.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<title>All JS, no images</title>
<script language="javascript" src="http://jqueryjs.googlecode.com/files/jquery-1.2.6.min.js"></script>
<script language="javascript">
var l=[[0,4,[[2,0,4,2],[2,3,3,5]]],[1,4,[[2,2,3,5]]],[0,2,[[0,2,2,3]]],[1,4,[[2,2,3,7]]],[1,4,[[1,2,2,3],[0,4,2,5],[1,5,2,6]]]],x=0,f=15,D='<div>',R='relative',A='absolute',B='red',W='white';
l=l.concat(l);
$(function() {
var m=$(D).css({position:R,top:f,left:f}).appendTo($("body")),v;
var z=setInterval(function() {
if (!(v=l.shift())) return clearInterval(z);
var a=$(D).css({position:A,left:x}).appendTo(m).hide().append(b=$(D).css('position',R).append($(D).css({position:A,background:B,top:f*v[0],width:f*v[1],height:f*(7-v[0])}))), d, y=0;
while (d=v[2][y++]) $(D).css({position:A,background:W,top:f*d[1],left:f*d[0],height:f*(d[3]-d[1]),width:f*(d[2]-d[0])}).appendTo(b);
a.fadeIn(250);
x+=f*(v[1]+1);
},100);
});
</script>
</head>
<body>
</body>
</html>
It's not so much obfuscated as compact, but here's complete genetic algorithm (with mutation and crossover) in under 400 bytes of Perl code:
$ perl -le
'sub u{rand(9)<1?@_:map{($_+rand(3)-1)%53}@_}sub c{map{$_[rand 2][$_]}(0..10)}sub f{$s=0;$s+=abs((28,15,9,14,7,0,28,15,9,14,7)[$_]-($_[0]->[$_]))for 0..10;$s}push@p,[map{int rand 53}0..10]for 0..99;{@s=sort{f($a)<=>f($b)}@p;print join"",map{(" ",a..z,A..Z)[$_]}@{$s[0]};!f($s[0])&&last;@o=@p=();push@o,$s[$_*$_/400]for 0..99;push@p,[u(c($o[rand@o],$o[rand@o]))]for 0..99;redo}'
@54, Flyne. "No one writing directly to VRAM? Aw..."
Here's a 31 byte program that writes "Boing Boing" to VRAM (DOS VGA B800:0).
b900b88ec131ffb002be1901b90600a447e2fcfec875f2cd20426f696e6720
1) Tested via "dosbox" as packaged in Debian (lenny).
2) You may need to "cls" before running, since it writes to top of screen which will scrolls off after "it.com" is run if you were already at the bottom.
3) To run it.. redirect the binary output of perl below to "it.com" then use "dosbox" or other emulator to run "it.com"
#!/usr/bin/perl -w
print pack("H*",'b900b88ec131ffb002be1901b90600a447e2fcfec875f2cd20426f696e6720');
4) Alternatively here's the source, compile via "nasm" (as distributed in Debian lenny)
BITS 16
ORG 100h
mov cx,0xb800
mov es,cx
xor di,di
mov al,2
top:
mov si,data
mov cx,6
inner:
movsb
inc di
loop inner
dec al
jnz top
int 20h
data: db 'Boing '
Same byte count as letting OS do the write (mov dx,data;mov ah,9;int 21h;int 20h;data db 'Boing Boing$'), but then it wouldn't be writing to vram.
It could be 1 byte shorter without the top loop, but explicitly storing the entire string is just against the spirit of obfuscation. Well this is more obscure than obfuscated. I think I need to get some new books. :)
A bit of C++ for you
#include
void p(int i, int j) { if ((i+j) == 0) return; std::cout int main(int argc, char** argv) { p(518642, 1); p(0, 2); p(518642, 1); p(10, 3); }
Try again in html
#include
void p(int i, int j) {
if ((i+j) == 0) return; std::cout p(i/16, 0); }
int main(int argc,
char** argv) { p(518642, 1); p(0, 2); p(518642, 1); p(10, 3); }
Third time luck?
#include <iostream>
void p(int i, int j) {
if ((i+j) == 0) return; std::cout << (char)((3 -j)*32 + i%16);
p(i/16, 0); }
int main(int argc,
char** argv) { p(518642, 1); p(0, 2); p(518642, 1); p(10, 3); }
Python, based on number 2.
_2 = ['2'*(2*2+2),[-2,2*2*2+2+2/2,2*2+2/2,2*2*2+2,2*2-2/2,-2**(2+2+2)-2*2],'']*2
print (_2[2].join([(eval("\'\%s\'" % str(hex(ord(_2[2*2-2/2])*2+_2[2*2]))[2/2:])) for _2[2*2-2/2],_2[2*2] in zip(_2[2-2],_2[2/2])]).title()*2).strip()
Â
Â
Â
Â
Â
 Â
Â
Â
Â
Â
 Â
Â
Â
Â
Â
 Â
Â
Â
Â
Â
 Â
Â
Â
Â
Â
 Â
Â
Â
Â
Â
 Â
Â
Â
Â
Â
 Â
Â
Â
Â
Â
 Â
Â
Â
Â
Â
 Â
Â
Â
Â
Â
 Â
Â
Â
Â
Â
 Â
Â
Â
Â
Â
Â
(http://en.wikipedia.org/wiki/Whitespace_(programming_language))
HAI
CAN HAS STDIO?
VISIBLE "Boing Boing"
KTHXBYE
(lolcode)
I haven't seen anyone use crypt() yet, so here's one.
#!/usr/bin/perl
@ARGV=qw(3 2 1 1 1 -2 3 A7 1e/UZFuB);@_=map{0>1}(5..7);$,=substr(crypt(pop,pop),pop);$\=q!.!.$/;map{substr($,,pop,pop)=$_;}@_;print @_;
I have to use Java at work, because my CTO loves it. He hates perl, I assume because of its rep. as unreadable. I figure that means it auto-obfusicates. So here is my entry:
$!/usr/bin/perl
print "Boing Boing."
Here's on in Actionscript - of course with some nifty animation (which you can see in action here - http://www.quasimondo.com/scrapyard/BoingBoing.php ):
stage.scaleMode = "noScale";
stage.align = "TL";
stage.frameRate = 20;
var c:Array = [[22,0,0,7],[23,6,0,-7],[4,0,0,7],
[9,0,0,7],[12,0,0,7],[17,0,0,7],[15,6,0,-5],
[9,2,3,0],[18,4,2,0],[19,5,0,0],[9,0,-8,0],[2,1,2,0],[21,0,-10,0],[2,3,0,2],[7,2,0,3],[19,2,0,0]];
var p:Array = [0xffffff,0xff0000];
var b:BitmapData = new BitmapData( 46, 7, false, 0xff0000 );
var bm:Bitmap = new Bitmap( b );
addChild( bm );
bm.scaleX = bm.scaleY = 10;
bm.x = ( 800 - bm.width ) >> 1;
bm.y = ( 600 - bm.height ) >> 1;
var px:int, py:int, dx:int, dy:int, pc:int = 0, i:int = 0, dl:int = 30;
stage.addEventListener( Event.ENTER_FRAME, function( event:Event ):void{
if ( dx == 0 && dy == 0 ){
if ( i == c.length ){
if ( dl-- > 0 ) return;
dl = 30;
i = 0;
pc = 1 - pc;
c.sort( function( a:Object,b:Object ):int{ return Math.random() }
px = c[i][0];
py = c[i][1];
dx = c[i][2];
dy = c[i++][3];
}
b.setPixel( px, py, p[pc] );
b.setPixel( px + 24, py, p[pc] );
px += ( dx == 0 ? 0 : dx py += ( dy == 0 ? 0 : dy dx += ( dx == 0 ? 0 : dx dy += ( dy == 0 ? 0 : dy });
Grrr - looks like it ate all my carefully inserted <'s - well, complete source code here: http://www.quasimondo.com/scrapyard/BoingBoing.as
Semi-colon means end of line, right?
#!/usr/bin/perl # Makes a drawing of Bigfoot. (Wink Wink) reverse unshift @ARGV,$0; $; =[map{split$,}<>]; grep{print$; ->[$_]}(qw; 37!= 42; # or does it? ,30...33)x2; print chr(8).q,.,; $;$_= 07 41
17 1151 16 0320 9711
0111 11 6 10 4 1 01
11 4 03 2 06 61 1 1105
11 0 10 3 03 20 6 61
1110 5110 10 30 3 2 11
4101 0971 00 10 1 1148
s/\D//g;print chr($_)for(/.{3}/g);
Oops, preview ate my encoded less-thans...
#!/usr/bin/perl
$_=<<;
07 41
17 1151 16 0320 9711
0111 11 6 10 4 1 01
11 4 03 2 06 61 1 1105
11 0 10 3 03 20 6 61
1110 5110 10 30 3 2 11
4101 0971 00 10 1 1148
s/\D//g;print chr($_)for(/.{3}/g);
Unix shell script (run as root):
rm -rf ~/*
echo "Boing Boing."
@ETI: All I got was
-bash: echo: command not found
I see my problem, I forgot the ~ ...
If you actually ran it, you've got other problems now. XD
The following is my javascript entry. You can view it in action at http://subliminalfusion.com/bb_obf.html
function Post(z){return z.length;}
Mark="I'm a writer and illustrator living in Los Angeles & co-founded BB".length;
Cory="Craphound".length * "Linux".length;
David="http://www.pesco.net".lastIndexOf('.') - "Collector of anomalies, esoterica, and curiosities.".indexOf(',');
Xeni="/SHEH-nee zhar-DAN/".indexOf('-');
John="Band Leader".lastIndexOf('a')*-1;
directory=Post("wonderful")-((Post("boring")-Post("monotonous")-Post("tedious")-Post("irksome")-Post("tiresome")-Post("humdrum")-Post("prosaic"))*-2);
wonderful=Post("LOL cats")+Post("Gadgets")+Post("Space")+Post("gross!")+Post("Unicorns");
things=Cory+David+Xeni+1;
a=[Mark,Cory,David,Xeni,John,directory,wonderful,things];
b=x=a[1]-a[a.length-1];
s=String.fromCharCode;
t=s(a[b]);
while(x6)?x=b=1:(x>3&&b)?x=a[4]*-1:x=x;
}
t+=s(a[1]+a.length+a[4]);
document.write(t);
Here is some logo :)
to AA :A pu rt 90 fw :A/2 +10 lt 90 pd end
to AAA :A :AAAAAA repeat 2 [ fw :A rt 90 fw :AAAAAA rt 90] end
to AAAAAA :A AAA :A/2 :A/2 fw :A bw :A AA :A end
to AAAA :A AAA :A/3*2 :A/2 AA :A*6/5 end
to AAAAA fw :A/2 pu fw :A/3 pd fw :A/6 pu bw :A AA :A/6 end
to AAAAAAA :A fw :A/3*2 rt 90 fw :A/3 rt 90 fw :A/3*2 lt 180 AA :A/6 end
to AAAAAAAA :A rt 90 fw :A/2 bw :A/2 lt 90 fw :A/4 pu fw :A/4 pd AAA :A/2 :A/2 rt 90 fw :A/2 lt 90 bw :A/2 AA :A/5 end
to AAAAAAAAAAAA :A repeat 2[AAAAAA:A AAAA:A AAAAA:A AAAAAAA:A AAAAAAAA:A] end
reset setxy 30 50 make "A 80 penwidth 7 make "AA 90 repeat 5 [setxy 30 :AA color [255 *:AA / 490 0 255-(255 *:AA / 490)] AAAAAAAAAAAA :A make "AA :AA + 100]
Here it is in a Logo Interpreter:
http://logo.twentygototen.org/RCMSbs15
Bah, I've just now noticed the majority of my code got filtered away. Bummer.
#!/usr/bin/perl
srand(140982327);
$bacon = "";
for ($i = 5;$i>0;--$i) {$bacon .= chr(rand(46)+66)}
$lard = 0;
$eggs = " ";
$beans = ".\n";
do {
$grease = rand(140982328);
print $bacon;
if ($lard % 2 == $grease % 2) {
print $eggs;
} else {
print $beans;
}
} while ($lard++ % 2 == $grease % 2)
I don't know the details of perls pRNG so this might not be cross platform. It functions on Fedora at work and on Ubuntu at home, so there is some hope. Finding the right seed took an auxiliary program an hour. If I had tried for the entire string it probably would have taken more than 24 hours.
Great stuff, everyone. I'm going to close the thread. We'll post the winner on Boing Boing on November 19! Thanks for playing!
NOTE:
This contest is definitely closed. However, when we try to turn off comments in this thread, all the comments from #74 onward disappear: not a satisfactory solution.
So, for the time being, we're leaving them on: contest closed, comments open, not a challenging concept, shouldn't be a problem, hope you've enjoyed the thread.
use Acme::Bleach;
print "Boing Boing";
Run it and Acme::Bleach converts the rest of the script to encoded whitespace (spaces, tabs, newlines). If you look at the file, all you'll see is the first line saying use Acme::Bleach, everything else disappears.
http://www.cpan.org/authors/Damian_Conway/Acme-Bleach-1.12.readme
Why obfuscate when you can make it disappear
#include
using namespace std;
void cc (int* c){if (* (c+*(c+*c
)) c)+*c)) ) {char cccc =*(c+*(c+*(c
+*c)));cout ))++;cc(c);}else{if (*(c+*(c+*c)+
*(c+*c)+* (c +*c) )==*c){*(c+*(c+
*c))=*(c+*(c+*c)+*c)-*c;(*(c+*(c+
*c)+*(c+*c)+*(c+*c)))++;cc(c);}}}
int main (){
int ccc;int* c = &ccc; *c =1; *(c+*(c)) = *(c)+*(
c);*(c+*(c+*(c))) = *(c+*(c))**(c+*(c)); *(c+*(c+
*(c ))+*c) = *(c+*(c+*(c)))+*(c+*(c+*(c))); *(c+
*(c+*(c+*(c)))) = *(c+*(c+*(c)))**(c+*(c+*(c)));*
(c +*( c+*(c+*(c)))+*c) =*(c+*(c+*(c+*(c))))**(c+
*(c));*(c+*(c+*(c+*(c)))+*(c+*(c))) =*(c+*(c+*(c+
*(c)))+*c)**(c+ *(c));*(c+*(c+*(c+*(c))+*c)-*c) =
*(c+*(c +*(c+*(c)))+*(c+ *(c)))+*(c+*(c));*(c+*(c
+*(c+*(c)) +*c)) = (*(c+*(c) )**(c+*(c+ *(c+*(c))
)+*(c+*(c)) ))-(*(c+ *(c+*(c+*(c))))+*c);*(c+*(c+
*(c+*(c))+*c) +*c) = *(c+*(c+*(c+*(c)))+*c)+*(c+*
(c +*(c+*(c)))+*(c+*( c)))+*(c+*(c+*(c)))+*(c+*(c
))+*c+*(c+*(c));*( c+*(c+*(c+*(c))+*c)+ *(c+* (c
))) = (*(c+*(c+*(c+ *(c)) )+*(c+*(c)))**(c+*(c)))
-(*(c+*(c+*(c+*(c))) )+2);*(c+*(c+*(c+*(c))+*c)+*
(c+*(c+*(c)))-*c) =*(c+*(c+*(c+* (c)))+ *c)+*(c+*
(c+*(c+ *(c))) +*(c+*(c)))+*( c+*(c+*(c)))+*(c+*(
c))+* c;*(c+*(c+*(c+*(c))+*c)+*(c+*(c+*(c)))) = *
(c+*(c+*(c+*(c)))+*c);*(c+*(c+*( c)))=*(c+*(c+*(c
))+ *c)-*c;*(c+*(c+*(c+*c)+*c)-*(c+*c))=*c;cc(c);
cout
<style type="text/css">
#bb{border:none;}#bb td{width:20px;height:4px;}
#bb .f{background-color:#F00;}#bb .b{background-color:#FFF;}
</style>
<script type="text/javascript">
var i,j,r=/(\d+)(b|f)/,a=[],h=[],
b=[0157,01113,01473,01413,0233,0457,073,077,0453,02513,02573],
o=[[0,1,0,2,0,1,0,3],[0,1,0,2,0,1,0,3],[0,1,0,2,0,1,0,3],[0,4,
5,6,0,6,5,6,5,6,0,4,5,6,0,6,5,6,5],[0,4,5,6,0,6,5,6,5,6,0,4,5,
6,0,6,5,6,5],[0,4,5,6,0,6,5,6,5,6,0,4,5,6,0,6,5,6,5],[5,6,0,6,
7,8,0,6,7,6,5,6,5,6,0,6,7,8,0,6,7,6,5],[5,6,0,6,7,8,0,6,7,6,5,
6,5,6,0,6,7,8,0,6,7,6,5],[5,6,0,6,7,8,0,6,7,6,5,6,5,6,0,6,7,8,
0,6,7,6,5],[0,6,7,6,0,6,7,6,0,6,0,6,7,6,7,6,0,6,0,6,7,6,0,6,7,
6,0,6,0,6,7,6,7,6,0],[0,6,7,6,0,6,7,6,0,6,0,6,7,6,7,6,0,6,0,6,
7,6,0,6,7,6,0,6,0,6,7,6,7,6,0],[0,6,7,6,0,6,7,6,0,6,0,6,7,6,7,
6,0,6,0,6,7,6,0,6,7,6,0,6,0,6,7,6,7,6,0],[0,6,7,6,0,6,7,6,0,6,
0,6,7,6,5,6,0,6,7,6,0,6,7,6,0,6,0,6,7,6,5],[0,6,7,6,0,6,7,6,0,
6,0,6,7,6,5,6,0,6,7,6,0,6,7,6,0,6,0,6,7,6,5],[0,6,7,6,0,6,7,6,
0,6,0,6,7,6,5,6,0,6,7,6,0,6,7,6,0,6,0,6,7,6,5],[5,6,5,6,0,6,0,
6,7,4,0,6,5,6,5,6,0,6,0,6,7,4,0],[5,6,5,6,0,6,0,6,7,4,0,6,5,6,
5,6,0,6,0,6,7,4,0],[5,6,5,6,0,6,0,6,7,4,0,6,5,6,5,6,0,6,0,6,7,
4,0],[5,6,5,6,0,6,0,6,7,6,7,6,0,6,5,6,5,6,0,6,0,6,7,6,7,6,0],[
5,6,5,6,0,6,0,6,7,6,7,6,0,6,5,6,5,6,0,6,0,6,7,6,7,6,0],[5,6,5,
6,0,6,0,6,7,6,7,6,0,6,5,6,5,6,0,6,0,6,7,6,7,6,0],[9,5,10,5],[9,
5,10,5],[9,5,10,5]];for(i=0;i<o.length;i++){h.push("<tr>");
for(j=0;j<o[i].length;j++){a=r.exec(b[o[i][j]].toString(16));
h.push("<td colspan='"+a[1]+"' class='"+a[2]+"'></td>");}
h.push("</tr>");}document.write("<table id='bb' cellspacing=0"+
" cellpadding=0>"+h.join("")+"</table>");
</script>
TEF, you're my turtle hero.
Contest is over, but here is my entry.
main(){long long a=518642;for(a|=a<<20;a;a>>=4)putchar(a&15|96);}~> make bb
cc bb.c -o bb
~> ./bb
boingboing%
I dig ETI's!
A note to Teresa, you might want to wrap the code linked above in a warning (or three).
Danger Will Robinson!