Ruby

TRICK 2013 開催中です

Ruby での変態プログラミングコンテスト、まだ開催中です。締切りは 5 月 18 日 (土) なので、あと 2 週間弱。ref: https://sites.google.com/site/trickcontest2013/home/jaGW ひまだなーという人も、GW いそがしい人も、ぜひぜひご投稿ください。たくさん…

TRICK 2013 (第一回 超絶技巧 Ruby 意味不明コンテスト in rubyKaigi) をやります

TAPL が無事出版されたので、そろそろ通常モードに。さっそくですが、@shinh さんに煽られて、Ruby で変態プログラミングのコンテストをやることになりました。ref: https://sites.google.com/site/trickcontest2013/home/ja一言で言えば IOCCC の Ruby 版と…

Merry Quine-mas 2012

今夜は、年に一度の W. V. Quine の命日イブです。(もう日が変わってますが) %;';;eval$s=%q{eval(%w~i=1;T="$)*L)L)))0)E(E(0(7(>'>'7&E&0&7&>%L%)%0%E*)$L$)* L)L)))0 )E(E(0(7(>' >'7&E&0&7&>%L%)%0%E5&$L%#8C5G7/530L2B1*/'19-D03 #E*&,1). *G'6#3*>5 &'…

Ruby 2.0.0 リリース週記 (2012/06/04 - 06/10): 新機能提案のスライド募集

今回はみなさんにアナウンスがあります。 Ruby 2.0 リリースマネージャの遠藤です。 機能提案の一次締め切り (8/24) まであと 3 か月を切りました。 提案の進捗はいかがでしょうか。matz の返事がなくてどうにも進まない? そんなあなたに、機能提案を加速す…

Ruby 2.0.0 リリース週記 (2012/05/28 - 06/03)

今週もたくさんの改良やバグ修正がコミットされましたが、ユーザ視点での新機能はなさそうだったので、この週記は手抜きです。 2.0.0 新機能紹介: Enumerator の遅延評価 (lazy/force) Ruby 2.0 には Enumerator 限定で遅延評価っぽい機能が入っています。不…

Ruby 2.0 リリース週記 (2012/05/21 - 27)

今週も、今週入ったばかりの新機能を紹介します。ちょっと地味というか、細かい話ですが。 今週のニュース: caller の改善で文字列のパースが不要に 背景 かつてより、コールスタックを配列として取り出す機能 Kernel#caller があります。 def foo caller(0)…

Ruby 2.0 リリース週記 (2012/05/14 - 20)

Ruby 2.0.0 のリリースに向けた活動について、毎週くらいのペースで書きたいなあと思ったので始めます。飽きたらやめます。 ユーザ視点で面白そうな機能や、リリースに向けた進捗について書くつもりです。コミット単位の詳しいニュースは nagachika さんの r…

超簡単に Ruby プログラムを exe にする新しい方式 (構想)

exerb は 1.9 に対応してないし、いろいろオーバースペックだと思う。ocra はテンポラリフォルダに展開して実行するのがダサすぎて論外。(参考) ということで、すごくシンプルに Ruby プログラムを exe 化する方式を考えてみました。 デモ # t.rb puts "test…

バグトラッカのチケット残数への意識を高める Arduino シールドを作った

実は私、Ruby 2.0.0 のリリースマネージャです。8 月までに各種機能提案を取り仕切らないといけないので、Arduino で遊んでいる場合ではないのでした。 チケット残数を日ごろから意識するにはどうしたらいいか数週間くらい考えた末、こんなものを作りました…

音声の波形からピッチを検出するアルゴリズム

去年のクリスマスに公開したカラオケ機能つき Quine の仕組みについて。 ref: 声の高さで操作するゲームを作ってみたで解説されている内容と同一です。おわり。 で終わるのもつまらないので、簡単に解説します。でも思いだしながら書いているので嘘書いてた…

あけましておめでとうございます 2012 - なめらかライフゲーム

あけましておめでとうございます。日本のプログラマには古来より「正月はフラクタル」という習わしがあります。正月はフラクタルに触れて心穏やかに過ごそうというものです。 というわけで動画を作りました。何かわかるでしょうか。答えは、ライフゲームのグ…

Merry Quine-mas 2011

今夜は W. V. Quine の命日です。 eval$s=%q(eval((%w(A="+_Sing_do,_re,_mi_to_the_mike!*z+_Do!*{+_Re!*|+_Mi!__OK !_Let's_sing_Silent_Night!*~+_Sxi~lent_|night!_~Hxo~lY_|night!*{+_All_is_ycal m,_zall_is_~bright,*x+_Round_You_zViyrxgin_~Moxther…

Ruby で FFT (高速フーリエ変換) を書いてみた

【ニコニコ動画】ミクをPCの再生音に合わせて自動で踊らせてみたref: 【ニコニコ動画】ミクをPCの再生音に合わせて自動で踊らせてみた ↑に触発されて波の処理をしたくなったので、Ruby で FFT (高速フーリエ変換) を書いてみました。 FFT とは、波の形を見て…

PTT で Quine や難解プログラミングについて話してきた

ここではアナウンスしてませんでしたが、PTT 第 379 回で発表してきました。発表資料を置いておきます。 Quine・難解プログラミングについて View more presentations from mametter RubyKaigi 2010 で発表した 超絶技巧 Ruby プログラミング の使いまわしで…

RubyKaigi 2011 終了

参加してました。コミッタ特権でタダ飯を食らえるのも残念ながら最後です。 今まではマジタダ飯にならないように何かしら発表することを心がけてたんですが、今回はネタ準備できず、ついに聞くだけ。"1.8 and 1.9" でちょびっとだけ壇上出たけど、その分弁当…

漫画家「師匠→アシスタント」グラフ

をつくってみました。こちら。 ref: http://dame.dyndns.org/misc/comic-artist-relation/漫画家から、その漫画家のアシスタント経験がある漫画家へ矢印が引いてあります。wikipedia の Category:日本の漫画家の記事をたどって、「師匠」とか「アシスタント…

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…

第 3 回フクオカ Ruby 大賞の「コミュニティ特別賞」を受賞します

ref: 「第3回フクオカRuby 大賞」の受賞者決定! 明日の第 3 回フクオカ Ruby 大賞にて「Ruby 1.9.2 リリースへの貢献」という題目でコミュニティ特別賞を受賞します。クリアコードとかと一緒に受賞のようです。 会社名や組織名が並ぶ中に個人名 (あっ、住…

あけましておめでとうございます 2011

古来より日本のプログラマの間には、「正月はフラクタル」という風習があります。 フラクタルについて、知識としては知っていても、実際にプログラムを書いたことはない人も結構いると思います。そんなフラクタルに、年に一度くらいは想いを馳せたり、手を動…

Merry Quine-mas 2010

今夜は、年に一度の W. V. Quine の命日イブです。 %;';;X= %q(x=1; z="%c"% 32;eval %w(w=N= Merry =128;r= z*79+$/; ;p=open" / dev/dsp ","w"rescue$_;/ / ;eval"s rand(%s)"%$*[ d=0];a=[];s=(r+z+% (%;';;X=#{z* 3}%q(#{X});e val(X)) +r*=23).l ines.m…

イカ娘が Ruby を侵略したでゲソ

この記事は Functional Ikamusume Advent Calendar jp 2010 によって侵略されたでゲソ。 今回は Ruby を侵略したでゲソ。まずは gem をインストールするでゲソ。 $ gem install ikamusume Hello, world でゲソ。 # coding: utf-8 # ruby examples/hello.ikam…

はてなダイアリーから自分の日記をバックアップする方法

はてなに何か問題が起きて、自分の書いた日記が全部消えたら困るよなあ、バックアップしとかないとなあ、と思いながら、なかなか実行できてませんでした。 が、ついに一念発起してやりました。といっても はてなダイアリーAtomPub の通りに取得してくるだけ…

qvi 動画

Qlobe を公開したところ、有志の人たちが Youtube 動画とか アニメーション gif とかにしてくれてうれしいなあ。そしてやっぱり動画重要だなあと思いました。 そこで、Quine な動画ファイル qvi を作りました。qng や qif の仲間です。書いてあるコードを実…

inline-ook 1.0.0 リリース

RubyKaigi 2010 の Chad Fowler 先輩の基調講演で、brainfuck の置換言語の代表である Ook! が紹介されてました。 Ook! プログラムってぱっと見ると Ruby のコードそっくりですよね。Ook. Ook! Ook. Ook? って、それ Ook.Ook!(Ook.Ook?) じゃないですか。実…

The Qlobe

RubyConf に参加するためには、やっぱり 山手 quine みたいに東京限定ネタは通じにくいですよね。これからは Quine もグローバルでないといけないと感じました。 でも世界的に有名な環状線とか知らないので、世界的に有名な回るものを書いてみました。 v=000…

/dev/dsp で音声を鳴らす方法

超絶技巧 Ruby プログラミングの質疑で「どうやって音を鳴らしているのか」という質問があったので、自分のための記録を兼ねて簡単に紹介。 といっても Linux Sound programming with OSS API にある通り。Ruby で書くとこんな感じ。 # デフォルトでは 8bit …

RubyKaigi 2010 終了

参加してました。 「超絶技巧 Ruby プログラミング」の発表資料と、発表で使ったソースコードを以下に置いておきます。 ref: http://dame.dyndns.org/misc/rubykaigi2010/rubykaigi2010-endoh.ppt ref: http://dame.dyndns.org/misc/rubykaigi2010/rubykaigi…

RubyKaigi 2010 発表予告 (と山手 quine 英語版)

今月末の RubyKaigi 2010 で、「超絶技巧 Ruby プログラミング」という発表をする予定です。2 日目の 13:30-14:00 、大ホールでの発表です。主にこのブログで紹介しているコードたちを紹介する予定です。その背景の意外な深遠さや、それを可能にする Ruby の…

任意の Ruby プログラムをアルファベットだけにするプログラム

数字もまぁなんか消せると思う。 任意の Ruby プログラムをアルファベットと数字だけにするプログラム とサラッと言われているのだけれど、思いつくのにかなり苦労しました。なんとか 2 つの方法を見つけた。 出題から 1 年半以上経っているので、以下にぼく…

tkquine

Ruby/Tk で quine 。 eval$s=%q(require"tk" r=Tk.root;r.withdraw x=y=22;s="eval$s=%q(#$s)" f=proc{c=s.slice! 0,1 (f[y+=x=22];next)if"\n"==c w=TkToplevel.new(r){ withdraw geometry"18x18+#{x}+#{y}" overrideredirect true bind"Button",proc{exit}…