タグ

Rubyとquineに関するsugyanのブックマーク (9)

  • Rubyの全バージョンで動くQuine - まめめも

    このプログラムは、Ruby 0.49(1994年リリース)からRuby 3.2.1(今月リリース)まで、現在確認されているすべてのCRubyで動作するQuineです。 eval($s=("t='eval($s=('+d=34.chr;s=3 2.chr+$s*i=8;v=$VERSION||eval('begin;v=V ERSION;rescue;v||RUBY_VERSION;end');f=('?'*8 +'A|'+'?'*20+'G?c'+'?'*15+'A@CXx@~@_`OpGxCxp@~pO xS|O~G?c?q?xC`AP|q?x_|C_xC_xO@H@cG?G?qA|_|_`GCpOxC|H NFccqq@`_|OF@`?q?x_@x_x_`GB`O``O~G?C@qCxCxP@D@|G~C?pO|C? pO|C?AP|A~HNN`ccxC|Q@L@B"+"GpGpc@p

    Rubyの全バージョンで動くQuine - まめめも
    sugyan
    sugyan 2023/02/27
    すごい……
  • カロリーメイトリキッドのQuineを書きました - まめめも

    縁あって、カロリーメイトリキッドのプロモーション用にちょっとした Ruby プログラムを書かせてもらいました。 www.otsuka.co.jp ↑のリンクを開いて、cd .Quine したところにある CML_quine.rb がそれです。 cat CML_quine.rb とすると中身が見えます。ruby CML_quine.rb すると動きます。 CalorieMate-Liquid-Quine 実行してみましたか?サイト上で気楽に実行できるので、ぜひ試してみてください。 これがどういうプログラムなのか、簡単に解説しておきます *1 。 ローカルでの遊び方 サイト上で ruby CML_quine.rb をするだけでも楽しめますが、自分のパソコンに保存するとより楽しめます。 まず、cat CML_quine.rb した中身をまるごとコピーしてください。 n=2;で始まる行の頭から、'

    カロリーメイトリキッドのQuineを書きました - まめめも
    sugyan
    sugyan 2020/08/05
    技術とネタがたくさん詰め込まれていて相変わらずすごい…
  • 放射線耐性Quineの読解 - 西尾泰和のはてなダイアリー

    「放射線耐性 Quine (1 文字消しても動く Quine) - まめめも」という頭のおかしい(ほめことば)コードがリリースされていました。 以前「The Qlobe - まめめも」がリリースされた時は、Pythonに移植したら「難読コードを読んでみよう(Python初心者向け解説) - DT戦記(zonu_exeの日記)」という読解エントリーが上がって、書いた人としても興味深く読ませていただきました。 最近「理解ってなんだろう」ということが気になっていて、人間が理解できていない状態から理解できている状態に変わる過程で何が起きているのかに興味があります。なので自分自身がこの変態コードを理解する過程で何を考えているかを記録してみることにしました。 ちなみに筆者のRubyスキルがどの程度かというと…さっき仕事に使っているVMでyohasebe/wp2txtを使おうとしたらRubyが入ってい

    放射線耐性Quineの読解 - 西尾泰和のはてなダイアリー
  • 放射線耐性 Quine (1 文字消しても動く Quine) - まめめも

    ref: https://github.com/mame/radiation-hardened-quine 放射線はメモリエラーを引き起こすらしいです。そんな放射線が飛び交う過酷な環境でも、できることなら Quine したい。 ということで、プログラム内の 1 文字をランダムに消しても元のプログラムを出力する、なんともロバストな Quine を書きました。*1 何を言っているかわからないと思いますが、こんなふうに動くものです。 # ランダムに 1 文字消すスクリプト $ cat mutate.rb src = $<.read src[rand(src.size), 1] = "" print src # rrquine.rb からランダムに 1 文字消したプログラムを生成する $ ruby mutate.rb rrquine.rb > broken.rb # 壊れたプログラムを実行する (

    放射線耐性 Quine (1 文字消しても動く Quine) - まめめも
    sugyan
    sugyan 2014/02/20
    これを作ろうと思った発想もスゴいw
  • 2012-08-27 downcase_quine.rb - 兼雑記

    小文字英語(と空白)だけで書かれた、 ruby 1.8 で動く Quine (ただし 32bit 環境限定) 。久しぶりにおおーという感じのコードになりました。 http://golf.shinh.org/reveal.rb?Quine/shinh+%28downcase%2C+mame%29_1346029732&rb 追記: 32bit 環境限定じゃなくて短くなったバージョンも作りました。 http://shinh.skr.jp/dat_dir/downcase_quine.rb このコードを作るのに考えたことなどを書いてみます。 id:ku-ma-me さんの方法 きっかけは id:ku-ma-me さんのこのスライドの話を聞いたことからでした。 http://www.slideshare.net/mametter/ruby-2012 ruby 1.9 で小文字英語だけでプログラムを

    2012-08-27 downcase_quine.rb - 兼雑記
    sugyan
    sugyan 2012/08/28
    すごい…w
  • PTT で Quine や難解プログラミングについて話してきた - まめめも

    ここではアナウンスしてませんでしたが、PTT 第 379 回で発表してきました。発表資料を置いておきます。 Quine・難解プログラミングについて View more presentations from mametter RubyKaigi 2010 で発表した 超絶技巧 Ruby プログラミング の使いまわしですが、1 時間半あったので、詳しい説明や新作などのコンテンツを増やしています。暇な人はどうぞご覧ください。

    PTT で Quine や難解プログラミングについて話してきた - まめめも
    sugyan
    sugyan 2011/11/25
    とても面白かったです。お会いできて良かったです、ありがとうございました!
  • Quine ruBy - まめめも

    略して QB 。 eval s||= %q(1;t= %w(s.gs ub!(/\e.* ?m/,"");[ [ 0x26e885c a844a879e27 a,519,48, 5 , 9],[20182686,600,48,5,1],[4366,611,48 , 5 ,15],[432803624050570,533,0]].map { | r,m,*d|s[m+=r%74,0],r="\e[#{d*";"}m", r /74while(r>0)};puts((z=32.chr)*5+"eval#{z *39}s||=\n#{z*5}%q(#{(1+n=s.to_i)%3}#{s[1 ..- 1]})\n\n"+z*9*n+"5YOV44GvUnVieWlzdO OBq +OB quOBo+OBpuOBj+OCjOOBo+OBpuOAgeOBjeOBo eOC k+OB qOOBi um

    Quine ruBy - まめめも
    sugyan
    sugyan 2011/04/14
    すごい
  • 山手 quine - まめめも

    t="+,m-n./mAm0o1p23a4q56r7sBt89u-t-1:v;A<w4x=y1z>[?]A^@CD_ CD_EsF`GHmIJbKa*l";eval$s=%w{F=%q{ceY8#<DvO1=x&t9CSOqMYkzH U.kCpz+Vo8hB.1AF&tq21+$/IrMY]U.aDd!-1y!4MMGQm6m?bYh($QMYpX s4g,x1UlbNKH?>NzbisMn?sT@m3,F.Abb`xW!r%'%Ybee>xkUfjf[(*^Nd Xo_"@hQh%Fx*q[iB7EM"suSG8GVOIzceg/O=4CL,d[-k]twgVP`&wcfaT` 2M)j8sFY?(HKzOrVCHO_694[Uq8g @i/i;tMBG#;-;B]rV[])`3'<os^. OV(SA<=ok%m[iV#qt[&dJ7SIdB;/ VUnVIrH;hEJ*QWD"E+

    山手 quine - まめめも
  • qif 画像 - まめめも

    こぴぺ用。 Y,E=%q~260|0!e0*h0($0j0($"!e0($"f0e0($0!e0*p;4f4#.q9!&8*%"1( }+0!,e4|8,e<.%}e6#g4*};!(4*%})2!e09$"u91&(#6}f0(%+#u0)6"1(7, v0.,*%"<8{9!(4+2}!(4*%90}<.'#<(}$"!e0($")n48$6!(0($".!e0($"$ e0w0($")k0r4*%"<8$"!9!&8*%"<0|0($"#&0()0i;f=87$};!(4+6"!e0j; f0(',}91(4+3e0($j;!.8)2}}}}}}},4"!e0($"!2i2!i0)e0e0(#$0($"!e 0(,0}}o0(%2"1(4~,%~y;0('&!e=8}}q9!($"!"<0}}}}}}y0g4f0+2}441$ !}g;0&<}h2$11!{0!q0}h0m0|20!

  • 1