時計の絵をかいたら時計になるなんて、Ruby はとっても宣言的な言語ですね!
eval s=%w(0;y=""< <32;z="eval((;s=%w(#{s} )*''));; %" <<43<<s; d="";" 0v vvnvn2 mj4kil 0v lvvul2 6l94ol 0v lv7vv" .scan (/ .{7}/ ){|n| 2. times {d.< <T ime. now. to_s.unpack(" C*") [11, 8].map{|i|("% 03b" .%7&n .to_i (32)> >3*i- =48).g sub(/. /){s>$ &?y*3: z.slic e!(0,3 )}}*y<<1 0}};puts (d.strip.chop<<43))*''# #(c) Y.Endoh 2009
こんな風に実行します。ruby 1.8 でも 1.9 でも動くと思う。
$ ruby quineclock.rb | tee q.rb $ ruby q.rb $ ruby q.rb $ ruby q.rb
よくわからなかったら、画面から離れて目を細めてみてね。