DIY "matrix" screensaver! try: ruby -rtracer -rsocket -enil

S

Sam Roberts

It only runs for about half a minute, but its quite impressive!

Besides looking really, really cool, what is tracer's output supposed to
mean?

Sam
 
Y

Yukihiro Matsumoto

Hi,

In message "Re: DIY "matrix" screensaver! try: ruby -rtracer -rsocket -enil"

|Besides looking really, really cool, what is tracer's output supposed to
|mean?

It's printing binary text as script source. I though I have fixed
this bug, ... wait, only for 1.9, ... well, I will take time to back
port the fix to 1.8.

matz.
 
J

Josef 'Jupp' Schugt

Sam said:
It only runs for about half a minute, but its quite impressive!

Though I am no expert[1] that doesn't look very Matrix to me. For a true
Matrix experience try this on a Linux machine:

find [dir] -type f -exec cat {} \; | tr '[\[^\]]' ' ' | \
iconv -f ascii -t ebcdicus

where [dir] is a large directory containing *only* ASCII files as it for
example is the case with /usr/src.

The 'tr' is crucial because '[', ']' and '^' are absent in EBCDIC-US.

iconv converts the ASCII text to EBCDIC text which (when printed on an
ASCII terminal) really looks strange.

[1] I haven't seen any of the Matrix movies. I prefer 'Welt am Draht'
('World on Wire') which to my knowledge was the first screen adaption of
the "Simulacron 3" even though I must admit that "The 13th Floor" is not
all that bad either. What I am still seeking of is a the book itself.
Does anybody know how one can obtain it? I would prefer an English or
German translation but a French edition (which is seemingly the original
edition) also would do.

Josef 'Jupp' Schugt
 
J

Jannis Harder

Matrix? Try this:

puts"\e[2J\e[0;11r";$stdout.sync=true;c='/,-=<>*+.:&%$'.split'';k=[nil]*25#
z=0x1c59f7d252f3573e0e198b8f06470cbc5.to_s(?$).tr"xqzp"," JR,";p=0;while p<
11;i=-1;print"\eM"*7,"\e[0;0H",k.map{|q|q ?" ":c[rand(13)]},"\e[6;0H",k.###
map{|q|l=z[i+=1,1];q ?l:"\e[C"},"\n",k.map{|q|q ?" ":"\e[C"};k[rand(25)]=##
true;sleep 0.1;k.compact.size>24&&p+=1;end;sleep 2;puts"\e[2J\e[r"+z##JIX##
 
B

Brian Schröder

Matrix? Try this:

puts"\e[2J\e[0;11r";$stdout.sync=true;c='/,-=<>*+.:&%$'.split'';k=[nil]*25#
z=0x1c59f7d252f3573e0e198b8f06470cbc5.to_s(?$).tr"xqzp"," JR,";p=0;while p<
11;i=-1;print"\eM"*7,"\e[0;0H",k.map{|q|q ?" ":c[rand(13)]},"\e[6;0H",k.###
map{|q|l=z[i+=1,1];q ?l:"\e[C"},"\n",k.map{|q|q ?" ":"\e[C"};k[rand(25)]=##
true;sleep 0.1;k.compact.size>24&&p+=1;end;sleep 2;puts"\e[2J\e[r"+z##JIX##

I couldn't resist that one:

#!/usr/bin/ruby

z=0x585f689d4bf0636c157a335b6cfb6e3b178d.to_s(31).tr'dfgil',' JR!y';$><<####
"\e[2J\e[0;11r";e=('!'..'/').to_a;$>.sync=a=proc{|d|k=0;(k|=(1<<rand(27));3.
times{$><<(0..26).map{|i|d[k==0,i]}<<"\n";sleep 0.03}) while k<8**9-1};b=
proc{|t,x|t ? e[rand 13] : z[x,1]};c=proc{|t,x|b[!t,0]};a[c];a;puts [z]*9
sleep 2;puts"\e[2J\e[r"+z#######http://ruby.brian-schroeder.de##############


Regards,

Brian
 
J

Jannis Harder

A shorter version:

puts"\e[2J\e[0;11r";$>.sync=m="\e[C";c='/,-=<>*+.:&%$'.split'';k=[!1]*25
z=",rekcah ybuR rehtona tsuJ".reverse;while k.index(!1);i=-1;print"\eM"*
7,"\e[H",k.map{|q|q ?" ":c[rand(13)]},"\e[6H",k.map{|q|u=z[i+=1,1];q ?u:
m},"\n",k.map{|q|q ?" ":m};k[rand(25)]=sleep 0.1;end;puts"\e[2J\e[r"+z#J

75x4 bytes
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,755
Messages
2,569,536
Members
45,007
Latest member
obedient dusk

Latest Threads

Top