Only works on Unix like machines...requires a VT100 compatible terminal like an xterm, and a working "stty" binary. Handles resizing the window while it's running. Ctrl-C to stop it.
#!/usr/bin/perl
use warnings;use strict;my($r,$c);$|=1;init();
sub init{print "\ec";($r,$c)=split' ',qx"stty size";$r-=5;$c-=16};
$SIG{INT}= sub{print "\ec\n";exit};$SIG{WINCH}=sub{init()};
$_='!X!E!EIC%IC%IC%!X!ECu#kCD@3ilowg!E!WICD@biloQgIO#kAr@DiloT@/@j'.
'@D@j@%IO#myD@gg!QCu#kC%IO#kO#gO#gC%!MIC%!QCu#kC%IO#ne#me#ni%!MICD'.
'@f@/iloQK';s/!/4pa/g;s/@/ilp/g;s/#/KW/g;s/%/Ag/g;tr|A-Za-z0-9+/| -_|;
@_=split(/\n/,unpack('u',join($',map(chr(32+length($_)*3/4).
$_,/(.{1,60})/gs))));print "\ec\e[2J\e[?25l";srand();
for (;;) {
my($x,$y)= map{int(rand($_))+1}($c,$r);
for(0..4){print "\e[".($y+$_).";${x}H".$_[$_];}
select($\,$\,$\,rand(1.2)+.3);
for(0..4){print "\e[".($y+$_).";${x}H"." "x16;}
}