Submit Search
Rubyの聞こえる化
1 like
1,546 views
Shoot Morii
セキュリティ&プログラミングキャンプ2009発表資料
Technology
Read more
1 of 14
Download now
Download to read offline
1
2
3
4
5
6
7
8
9
10
11
12
13
14
More Related Content
PDF
TddでFizzBuzzしてみる in Swift
Shoichi Matsuda
PDF
リーダブルコード勉強会
norimatsu2012
PDF
Tech oyaji ksmakoto_presen
Makoto Kishimoto
PDF
Recurso Especial - 1.378.094
Ministério Público de Santa Catarina
PPTX
Shoppinggatan
aspelund
PPT
עובדי אינטל במבצע אריזת חבילות מזון במחסני 'לתת'
IrgunLatet
PDF
Blog - La nascita di un nuovo Mass Media
Damiano Crognali
PDF
红旗 杂志59年 9-16
S1ide Sh4re
TddでFizzBuzzしてみる in Swift
Shoichi Matsuda
リーダブルコード勉強会
norimatsu2012
Tech oyaji ksmakoto_presen
Makoto Kishimoto
Recurso Especial - 1.378.094
Ministério Público de Santa Catarina
Shoppinggatan
aspelund
עובדי אינטל במבצע אריזת חבילות מזון במחסני 'לתת'
IrgunLatet
Blog - La nascita di un nuovo Mass Media
Damiano Crognali
红旗 杂志59年 9-16
S1ide Sh4re
Viewers also liked
(20)
PPT
Manual PP
Lizjimenezuav
PPS
Fel iz cumplemes
darko fodich vejar
PPS
Sugerencias
hojitadepapel
PPT
Ntpu20090725
rickyaung
PPS
La primavera
JoseLuis
ODP
Fotos teide
domi131
PPS
09 07 15 健康按摩法
LINWEIYUAN
PPT
聖衛雅神父專輯
財團法人天主教會新竹教區
PPTX
corrección
Marcela Meirelles
PDF
HSE24_Waeschetrends_092012.pdf
unn | UNITED NEWS NETWORK GmbH
PDF
Arogyasmarana Marathi Bestseller On Superhealth Dr. Shriniwas Kashalikar & Dr...
shriniwas kashalikar
XLS
Proyecto dolca
paula andrea moreno hernandez
RTF
Apelação Cível nº 2013.066311-8 - ex-prefeito de Iporã do Oeste Ilton Pedro Vogt
Ministério Público de Santa Catarina
PPTX
Informatica b
Hector Millano
PPT
Michael Jackson 198
Andres
PPTX
Shabads, Dasmesh Punjabi School
zillr
PPT
Tarde calurosa
guest7383c5
PDF
Plan super acelera tu exito, region america
TIENS BOLIVIA
PDF
Hq3
murtabak daging
PPTX
Clase n1
ITSCO
Manual PP
Lizjimenezuav
Fel iz cumplemes
darko fodich vejar
Sugerencias
hojitadepapel
Ntpu20090725
rickyaung
La primavera
JoseLuis
Fotos teide
domi131
09 07 15 健康按摩法
LINWEIYUAN
聖衛雅神父專輯
財團法人天主教會新竹教區
corrección
Marcela Meirelles
HSE24_Waeschetrends_092012.pdf
unn | UNITED NEWS NETWORK GmbH
Arogyasmarana Marathi Bestseller On Superhealth Dr. Shriniwas Kashalikar & Dr...
shriniwas kashalikar
Proyecto dolca
paula andrea moreno hernandez
Apelação Cível nº 2013.066311-8 - ex-prefeito de Iporã do Oeste Ilton Pedro Vogt
Ministério Público de Santa Catarina
Informatica b
Hector Millano
Michael Jackson 198
Andres
Shabads, Dasmesh Punjabi School
zillr
Tarde calurosa
guest7383c5
Plan super acelera tu exito, region america
TIENS BOLIVIA
Hq3
murtabak daging
Clase n1
ITSCO
Ad
Similar to Rubyの聞こえる化
(9)
PPTX
Ruby講座一回目
Masayuki Matsumoto
PPTX
Ruby講座一回目
Masayuki Matsumoto
PDF
メタメタプログラミングRuby
emasaka
PDF
Rubyにおける構文追加の試み 〜ボクとRubyと俺々文法〜
Kenta USAMI
PDF
セキュリティ&プログラミングキャンプ2009参加レポート (PDF版)
Shoot Morii
KEY
Rails基礎講座 part.1
Jun Yokoyama
PDF
ラボユース 最終成果報告会
shiftky
KEY
サイボウズ・ラボユース 最終成果報告会プレゼンテーション
sn_monochr
PDF
2011年10月28日
nukaemon
Ruby講座一回目
Masayuki Matsumoto
Ruby講座一回目
Masayuki Matsumoto
メタメタプログラミングRuby
emasaka
Rubyにおける構文追加の試み 〜ボクとRubyと俺々文法〜
Kenta USAMI
セキュリティ&プログラミングキャンプ2009参加レポート (PDF版)
Shoot Morii
Rails基礎講座 part.1
Jun Yokoyama
ラボユース 最終成果報告会
shiftky
サイボウズ・ラボユース 最終成果報告会プレゼンテーション
sn_monochr
2011年10月28日
nukaemon
Ad
More from Shoot Morii
(20)
PDF
2016年はFitbitで生体データを監視元年!
Shoot Morii
PDF
Gyazo for Linux 最新ビルド事情紹介 @ KMC学習発表会 in OSC京都
Shoot Morii
PDF
JavaScriptでわくわくシンセサイザーっぽい音が鳴るやつを作る入門
Shoot Morii
PDF
とにかくシュッと検索っぽいことをしたい!
Shoot Morii
PDF
Firefox Add-on SDK 入門
Shoot Morii
PDF
Go言語入門者が Webアプリケーション を作ってみた話 #devfest #gdgkyoto
Shoot Morii
PDF
Don't you want to use Gyazo on Nintendo 3DS etc ?
Shoot Morii
PDF
Pastapy
Shoot Morii
PDF
はてなインターン自己紹介
Shoot Morii
PDF
Matcha139 26th-lt
Shoot Morii
PDF
Shibuya xss lt
Shoot Morii
PDF
情報と社会レポート1
Shoot Morii
PDF
Pasta kの取扱説明書
Shoot Morii
PDF
Ict challenge+r2011 final
Shoot Morii
PPT
Gitの紹介
Shoot Morii
PPT
Osc神戸学生lt
Shoot Morii
PDF
セキュリティ&プログラミングキャンプに参加してから
Shoot Morii
PDF
高校生がイベントを作るということ
Shoot Morii
PPT
高校生がイベントを作るということ
Shoot Morii
PDF
XML Http Request Level2 の噂を聞いたので調べてみた
Shoot Morii
2016年はFitbitで生体データを監視元年!
Shoot Morii
Gyazo for Linux 最新ビルド事情紹介 @ KMC学習発表会 in OSC京都
Shoot Morii
JavaScriptでわくわくシンセサイザーっぽい音が鳴るやつを作る入門
Shoot Morii
とにかくシュッと検索っぽいことをしたい!
Shoot Morii
Firefox Add-on SDK 入門
Shoot Morii
Go言語入門者が Webアプリケーション を作ってみた話 #devfest #gdgkyoto
Shoot Morii
Don't you want to use Gyazo on Nintendo 3DS etc ?
Shoot Morii
Pastapy
Shoot Morii
はてなインターン自己紹介
Shoot Morii
Matcha139 26th-lt
Shoot Morii
Shibuya xss lt
Shoot Morii
情報と社会レポート1
Shoot Morii
Pasta kの取扱説明書
Shoot Morii
Ict challenge+r2011 final
Shoot Morii
Gitの紹介
Shoot Morii
Osc神戸学生lt
Shoot Morii
セキュリティ&プログラミングキャンプに参加してから
Shoot Morii
高校生がイベントを作るということ
Shoot Morii
高校生がイベントを作るということ
Shoot Morii
XML Http Request Level2 の噂を聞いたので調べてみた
Shoot Morii
Rubyの聞こえる化
1.
Rubyの聞こえる化 Pasta-K -
pasta0915@gmail.com 2009.08.15.Sat セキュリティ&プログラミングキャンプ2009 Supported by 西尾泰和
2.
目的 If文中の条件式がtrueかfalseかによって音を鳴らす 画面を見なくても、条件式がtrueかfalseかが音で分かる
3.
退屈なデバッグ中に音が鳴ることによって、ちょっぴりハッピーになれる
4.
make testの曲なんていうのも表現できる? ニコニコ動画にう
p
5.
変更の方針 構文木からバイトコードへの変更を担当しているcompile.cを書き換えて、Rubyのif文を書いたときに出力されるバイトコードを変えて、音をならすようにする。
6.
手順 実際にRubyのソースコードを読み、 (実行するRubyのスクリプト内の)if文中の条件式が構文木に評価されるところを見つける
7.
同じように関数の呼び出しを行うコードを見つけ、1、部分に実際に埋め込む
8.
pなどを用いて、関数の呼び出しが行われているのか動作確認
9.
音を鳴らすrubyスクリプトを作り埋め込む
10.
1,if文の条件式を評価しているところ 何をしている部分? NODE_XXXXを受け取って、それをもとにして、どんな構文が書かれているのかを判断し、適切なバイトコードに変換している。
つまり、この部分でthen節とelse節をバイトコードに変換する前に、音が鳴る動作を付けてやれば、それも一緒にバイトコードに変換されるのではないか
11.
変換後のバイトコードのイメージ if 条件文
else end then true の音を鳴らす true の場合の動作 false の音を鳴らす false の場合の動作
12.
2,Rubyスクリプト内の関数を呼び出す方法 実際にRubyの関数を呼び出している部分を参考に、1,で見つけた部分に記述していった。
13.
音を鳴らすRubyスクリプト def sound()
f=File.open("/dev/dsp","w") i=0 n="" 2560.times{|i| a=i*15%256 n=n+a.chr } f.puts n f.close end
14.
音を鳴らす方法 OSS(Open Sound
System)というUnix オペレーティングシステムで音を作成したりキャプチャしたりするための標準インターフェイスのAPIを叩いて音を鳴らす。 引用元: http://ja.wikipedia.org/wiki/%E3%81%AE%E3%81%93%E3%81%8E%E3%82%8A%E6%B3%A2
15.
検証中に・・・ 音を鳴らす関数内にオプション的に出力を変えるためにif文を用いた分岐を書いていたら、そのif文に反応して、音を鳴らす関数が呼び出された また、検証用のif文が実行されるときに(ry
16.
また(ry
17.
無限ループ突入 orz
18.
実際の実装は… true、falseの場合に鳴らす音をそれぞれ分けて実装
19.
始めは、各rbファイルに逐一記述していたが、prelude.rbやgem_prelude.rbに記述すれば、Cの文字列として、rubyに埋め込まれると分かったのでprelude.rbに記述 prelude.rbやgem_prelude.rb内のif文にも適応されて、「関数が見つからないよ><」エラーが出てました。 ダミーの関数を用意することで解消
20.
聞いてみたいですよね? (多分)世界初のtest/test_prime.rbの音です 素数を求めるスクリプトです
21.
感想 CもRubyもあまり書いた経験がなかったので、ソースを読んだり、スクリプト書くのもとても大変でした 講師の皆さん、Google先生ありがとうございました
gdbでのデバッグも初体験で新鮮でした。
22.
将来的には、rbファイルを楽譜代わりに演奏なんていうのも・・・
23.
ご清聴ありがとうございました Thank you
for listening!!!
Download