Up

Signatures

Link

Possibly how you got here, not very pretty, but some nice encoding
for(split/%/,'0aFn%2fLMdi%2eQ`%3aK%6e/:]%6c>[f%6f0CDTWb%6b^%6a)%6dc%20-'
.'5?%21E%61.=A\e%638<a%6537g%67l%6829BGV%69;k%70JZ%724X%73+U_jm%74,16HI'
.'RY%75*%77NOPS%78h%79@'){s#..##;$==hex$&;s#.#$*[ord$&]=chr$=#eg}print@*

Anagram (pm)

This is the only one I've included here, but I've writen many (some quite clever) "Just another technical yahoo!" type sigs (from when i worked for Yahoo!).
$_="just another technical yahoo!";@b=sort{rand cmp rand}@a=split//;$|=
print"\ec";print@b;sub p{print"\e[$_[1];$_[0]H$_[2]"}while($e=$a[$g++]){
$f=0;{redo if$b[$f++]ne$e}$b[$f-1]=0;p($f,1,$");$i=$f-$g<0?1:-1;while($f
!=$g){select$q,$q,$q,p($f,2,$e)/20;p(($f+=$i)-$i,2,$")}p($f,3,$e.$/)}

clock (pm)

sub w{printf"\e[%s;%sH\e[$_[0]m%s\e[15;7H%02d:%02d:%02d %02d/%02d$/",t((
$n-3)%12),2*t($n),$r<3?".":$n,@o[2,1,0,3],$o[4]+1}print"\ec";while(sleep
1){@o=localtime;for$r(1..3){for$n(1..12){w}$q=$o[3-$r];$n=($r<2?$q:$q/5)
%12||12;w 31}w}sub t{$r*($_[0]>5?-1:1)*(($d=$_[0]%6)?($d-1)%4?2:1:0)+7}

Digital (pm)

print"\ec";{$_=sprintf"%02d"x3,(localtime)[2,$x=1,0];sleep 1;s#.#$x+=4; 
printf"\e[%d;%dH%s$/",$_/3,$x+$_%3,(("|","_","|")[$_%3]x vec pack(v,hex 
unpack"x".2*$&."a2",af099e9b39b3b789bfbb),11-$_,1)||$"for 4..11#eg;redo}

Karnaugh

A digital clock that uses a karnaugh map rather than encoding the numbers
print"\ec";{$_=sprintf"%02d"x3,(localtime)[2,$x=1,0];s*.*$x+=4;$k=$&;for
(4,6..11){($z=qw{2|!0 2&&!0^1 !1||0^2 0^!1|1&2 2&!0^1 1|!2 !2|1|0 !1^0&2
!$q 1|!0}[$k])=~s#\d#vec$_-4,$&,1#eg;printf"\e[%d;%dH%s$/",$_/3,$x+$_%3,
(("|","_","|")[$_%3]x eval$z)||$"}*eg;sleep 1;redo}

Message (pm)

print"\ec";{$_=sprintf"%02d"x3,(localtime)[2,$x=1,0];s*.*$x+=4;$k=$&;for
(4,6..11){($z=qw{2|!0 2&&!0^1 !1||0^2 0^!1|1&2 2&!0^1 1|!2 !2|1|0 !1^0&2
!$q 1|!0}[$k])=~s#\d#vec$_-4,$&,1#eg;printf"\e[%d;%dH%s$/",$_/3,$x+$_%3,
(("|","_","|")[$_%3]x eval$z)||$"}*eg;sleep 1;redo}

Hanoi (pm)

You can pass the numbers of rings into this
sub d{print"\ec";select$q,$q,$q,0.3;for$p(0..2){printf"\e[%d;%dH%s".$/x$
d,$d-$_+2,2*$d*(1+$p)-($$p[$_]?(length$$p[$_])/2:1),$$p[$_]||"|"for 0..$
d-1}}push@0,"-"x(1-2*$_)for-($d=shift||3)+1..0;sub h{my($n,$s,$d,$i)=@_;
if($n>0){h($n-1,$s,$i,$d);push@$d,pop@$s;d;h($n-1,$i,$d,$s)}}h($d,0,2,1)

Life (pm)

print"\ec";for$b(0..15){$e[$b].=int 2*rand for 0..($h=30)}{$b=-1;for$f(@
a=@e){$e[++$b]="";print"\e[$b\H$f$/";for$c(0..$h){$l=0;for($b-1..$b+1){$
_=$_>0&&$_<$h?substr$a[$_],$c?$c-1:$c,$c==$h?2:$c?3:2:1;$l+=tr/0//}$l-=$
d=!substr$f,$c,1;$e[$b].=$l==3||$l==2&&$d?0:$"}}select$q,$q,$q,0.1;redo}

The version above uses a random starting pattern, you can try the following noteworthy examples:
for$b(0..15){$e[$b].=int 2*rand for 0..30}  # (random)

or

@e=(1x30)x30;                           #(R-pentomino)
$e[14]=("1"x14)."00".("1"x14);
$e[15]=("1"x13)."00".("1"x15);
$e[16]=("1"x14)."0".("1"x15);

or

@e=(1x30)x30;                           #(Pulsar)
$e[12]=("1"x13)."101".("1"x13);
$e[13]=("1"x13)."000".("1"x13);
$e[14]=("1"x13)."010".("1"x13);
$e[15]=("1"x13)."000".("1"x13);
$e[16]=("1"x13)."101".("1"x13);

or

@e=(1x30)x30;                           #(pentadecathlon)
$e[15]=("1"x10).("0"x10)."1"x10;
followed by:
print"\ec";{$b=-1;for$f(@a=@e)
{$e[++$b]="";print"\e[$b\H$f$/";for$c(0..30){for($b-1..$b+1){$_=$_>0&&$_
<30?substr$a[$_],$c?$c-1:$c,$c==30?2:$c?3:2:1;$l+=tr/0//}$l-=$d=!substr$
f,$c,1;$e[$b].=$l==3||$l==2&&$d?0:$";$l=0}}select$q,$q,$q,0.1;redo}
And before you say, yes I know that the extra patterns don't fit, but, oh yeah, I don't care - they're purty.

see this for more info

Pong (pm)

(No they never lose!)
$m=2;$x=$y=4;$n=$|=1;print"\ec";$f.="\e[$_;20H|\n"for(1..11);{printf"$f 
\e[$y;$x\H \e[%d;%dH*\e[$l;H \e[%dH\e[7m \e[m\e[$r;40H \e[%d;40H",$y+=$n
*=$y<2|$y>10?-1:1,$x+=$m*=$x<3|$x>37?-1:1,$l+=($c=$l-($m>0?6:$y))?$c>0?-
1:1:0,$r+=($c=$r-($m<0?6:$y))?$c>0?-1:1:0,select$q,$q,$q,0.1;redo}

Worm (pm) (Requires Term::ReadKey)

(keys up=w down=s left=a right=d).
use Term::ReadKey;ReadMode 3;%v=qw{a -1 s 80 w -80};$f=print"\ec";{p($d
+=$v{$c=ReadKey(-1)||$c}||1,"x");$d%$f?p(pop@s,$"):p($f=999*rand,"@");
select$q,$q,$q,(p(0,$/))/20;map$d-$_||&e,@s;@s=($d,@s);redo};sub p{print
"\e\[".int($_[0]/80).";".int($_[0]%80)."H".$_[1]}sub e{ReadMode 0;exit}

Square (pm)

Also run the code generated
eval($a=q~$_="!oohay  technical rehtona tsuj";$|=$==print"\ec";while($_)
{select$',$',$',0.1;printf"\e[%d;%dH%s\e[%d5;H\$q=0%s%c%s%c)$/",eval'$q?
$=<23?(1+$=/2,20+$=/2):$=<46?(12,54-$=):(35-$=/2,$=/2-13):$=>23&&$=<49?(
2,48-$=):($=>45?3:1,$=%48),chop',$q,!$q.';eval($a=q',126,$a,126;$=+=2}~)

Xmas (pm)

$n="\e[0;40;32m";for(1..10){print"\ec$n\n".$"x(15)."\e[1;35mY$n".$"x15;
for(1..8){print$/.$"x($a=16-$_);$c=int rand($d=2*$_);for(2..$d){$f=31+
int rand(3);print($_-$c?"X":"\e[$f;1m*$n")}print$"x$a}print $/.$"x(31).
"\e[0m\n".$"."MERRY CHRISTMAS TO ONE AND ALL".$/x2;select$q,$q,$q,0.5}

Braille (pm)

takes input from stdin - only alphanumeric upper and lower case
$_='DHFNLJRPIQTXV^\Zb`Yatxqv~|c}C';s#.#push@a,unpack B8,pack v,-67+ord$&
#eg;$_=<STDIN>;print"\ec";s#[A-Z]#\{$&#g;s#\d#|$&#g;s#.#$c=$a[$&=~/\d/?(
$&||10)-1:$&eq$"?125:-97+ord lc$&];printf"\e[%d;%dH%s\e[%d;%dH%s$/",$_/2
,1+$x+$_%2,chop$c?".":"",4,$x+2,$&=~/\W/?"":$&for 2..7;$x+=3#eg

see this for more info

Noughts & Crosses (pm)

$b{$_}=$_ for 1..9;while(@c=sort{rand>.5}keys%b){$a[delete$b{pop@c}]=($c
=!$c)?X:O;$_="123456789147258369159357";s#(.)(.)(.)#$p=$& if$a[$1]eq$a[$
2]&&$a[$1]eq$a[$3]&&$a[$1]#eg;printf"%s%s\e[m%s",$p=~/$_/?"\e[7m":"",$_?
$a[$_]||".":"\ec",$_%3?$":$/for 0..9;$p?exit:select$q,$q,$q,.1}

Maze (pm)

an ongoing obsession
@m=((31,(15)x8)x8,(31)x9);$m[$c]|=16,!(@a=grep/.$/&!(16+$|*$&&$m[$c+$`])
,-18,11,94,-92)?$c=pop@p:${$a[rand@a]=~/.$/;push@p,$c;$m[$c]&=~8/$&;$m[$
c+=$`]&=15-$&;++$u-64||map$_&=15,@m,$c=$|=1},$|&&9x4e7,print"\ec",(_)x17
,map$_%9?($_-$c?$m[$_]&2?_:$":o).($m[$_]&8?l:_):$/.l,0..71until$c>70&$|

JAPH (pm)

A really simple piece of code, slightly obfuscated
eval pack"H*",join"",qw"757365205469653a3a48616e646c653b7375622054494548
414e444c457b626c6573735c24697d737562205052494e547b73656c65637424712c2471
2c24712c28247c3d7072696e74292f39666f722073706c69742f2f2c224a75737420416e
6f74686572205065726c204861636b6572227d7469652a4a4150482c2471";print JAPH

Webserver

$_=q^use IO::Socket;$s=new IO::Socket::INET(Listen=>5,LocalPort=>8888);s
/./"&#".ord($&).";"/eg;while(select$c=$s->accept){<$c>=~m#/+(\S+)#;$i=$1
!~/\.\./*open(f,$1)?join"",<f>:"<html><code>\$_=q%c$_%c;eval</pre></html>
";-e$1&&$1=~/cgi$/?eval$i:printf"HTTP/1.0 200$/$/$i",94,94;close}^;eval

Whilst it's running, browse to http://localhost:888 (its own source code is the 404), and it will serve pages from the directory it's run from. It's also midly cgi complient - if the page ends in .cgi it will eval and run it (although cgi pages are required to return valid headers - see cgi example).

All that said, it's not really even close to complient so don't expect huge shakes

I hope you like these, do what you want with them, just remember where you got 'em yeah?

Ta, Alex