SlideShare a Scribd company logo
Rubyの聞こえる化 Pasta-K - pasta0915@gmail.com 2009.08.15.Sat セキュリティ&プログラミングキャンプ2009 Supported by 西尾泰和
目的 If文中の条件式がtrueかfalseかによって音を鳴らす 画面を見なくても、条件式がtrueかfalseかが音で分かる
退屈なデバッグ中に音が鳴ることによって、ちょっぴりハッピーになれる
make testの曲なんていうのも表現できる? ニコニコ動画にう p
変更の方針 構文木からバイトコードへの変更を担当しているcompile.cを書き換えて、Rubyのif文を書いたときに出力されるバイトコードを変えて、音をならすようにする。
手順 実際にRubyのソースコードを読み、 (実行するRubyのスクリプト内の)if文中の条件式が構文木に評価されるところを見つける
同じように関数の呼び出しを行うコードを見つけ、1、部分に実際に埋め込む
pなどを用いて、関数の呼び出しが行われているのか動作確認
音を鳴らすrubyスクリプトを作り埋め込む
1,if文の条件式を評価しているところ 何をしている部分? NODE_XXXXを受け取って、それをもとにして、どんな構文が書かれているのかを判断し、適切なバイトコードに変換している。 つまり、この部分でthen節とelse節をバイトコードに変換する前に、音が鳴る動作を付けてやれば、それも一緒にバイトコードに変換されるのではないか
変換後のバイトコードのイメージ if 条件文 else end then true の音を鳴らす true の場合の動作 false の音を鳴らす false の場合の動作
2,Rubyスクリプト内の関数を呼び出す方法 実際にRubyの関数を呼び出している部分を参考に、1,で見つけた部分に記述していった。
音を鳴らす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
音を鳴らす方法 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

More Related Content

PDF
TddでFizzBuzzしてみる in Swift
PDF
リーダブルコード勉強会
PDF
Tech oyaji ksmakoto_presen
PDF
Recurso Especial - 1.378.094
PPTX
Shoppinggatan
PPT
עובדי אינטל במבצע אריזת חבילות מזון במחסני 'לתת'
PDF
Blog - La nascita di un nuovo Mass Media
PDF
红旗 杂志59年 9-16
TddでFizzBuzzしてみる in Swift
リーダブルコード勉強会
Tech oyaji ksmakoto_presen
Recurso Especial - 1.378.094
Shoppinggatan
עובדי אינטל במבצע אריזת חבילות מזון במחסני 'לתת'
Blog - La nascita di un nuovo Mass Media
红旗 杂志59年 9-16

Viewers also liked (20)

PPT
Manual PP
PPS
Fel iz cumplemes
PPS
Sugerencias
PPT
Ntpu20090725
PPS
La primavera
ODP
Fotos teide
PPS
09 07 15 健康按摩法
PPT
PPTX
corrección
PDF
HSE24_Waeschetrends_092012.pdf
PDF
Arogyasmarana Marathi Bestseller On Superhealth Dr. Shriniwas Kashalikar & Dr...
RTF
Apelação Cível nº 2013.066311-8 - ex-prefeito de Iporã do Oeste Ilton Pedro Vogt
PPTX
Informatica b
PPT
Michael Jackson 198
PPTX
Shabads, Dasmesh Punjabi School
PPT
Tarde calurosa
PDF
Plan super acelera tu exito, region america
PPTX
Clase n1
Manual PP
Fel iz cumplemes
Sugerencias
Ntpu20090725
La primavera
Fotos teide
09 07 15 健康按摩法
corrección
HSE24_Waeschetrends_092012.pdf
Arogyasmarana Marathi Bestseller On Superhealth Dr. Shriniwas Kashalikar & Dr...
Apelação Cível nº 2013.066311-8 - ex-prefeito de Iporã do Oeste Ilton Pedro Vogt
Informatica b
Michael Jackson 198
Shabads, Dasmesh Punjabi School
Tarde calurosa
Plan super acelera tu exito, region america
Clase n1
Ad

Similar to Rubyの聞こえる化 (9)

PPTX
Ruby講座一回目
PPTX
Ruby講座一回目
PDF
メタメタプログラミングRuby
PDF
Rubyにおける構文追加の試み 〜ボクとRubyと俺々文法〜
PDF
セキュリティ&プログラミングキャンプ2009参加レポート (PDF版)
KEY
Rails基礎講座 part.1
PDF
ラボユース 最終成果報告会
KEY
サイボウズ・ラボユース 最終成果報告会プレゼンテーション
PDF
2011年10月28日
Ruby講座一回目
Ruby講座一回目
メタメタプログラミングRuby
Rubyにおける構文追加の試み 〜ボクとRubyと俺々文法〜
セキュリティ&プログラミングキャンプ2009参加レポート (PDF版)
Rails基礎講座 part.1
ラボユース 最終成果報告会
サイボウズ・ラボユース 最終成果報告会プレゼンテーション
2011年10月28日
Ad

More from Shoot Morii (20)

PDF
2016年はFitbitで生体データを監視元年!
PDF
Gyazo for Linux 最新ビルド事情紹介 @ KMC学習発表会 in OSC京都
PDF
JavaScriptでわくわくシンセサイザーっぽい音が鳴るやつを作る入門
PDF
とにかくシュッと検索っぽいことをしたい!
PDF
Firefox Add-on SDK 入門
PDF
Go言語入門者が Webアプリケーション を作ってみた話 #devfest #gdgkyoto
PDF
Don't you want to use Gyazo on Nintendo 3DS etc ?
PDF
Pastapy
PDF
はてなインターン自己紹介
PDF
Matcha139 26th-lt
PDF
Shibuya xss lt
PDF
情報と社会レポート1
PDF
Pasta kの取扱説明書
PDF
Ict challenge+r2011 final
PPT
Gitの紹介
PPT
Osc神戸学生lt
PDF
セキュリティ&プログラミングキャンプに参加してから
PDF
高校生がイベントを作るということ
PPT
高校生がイベントを作るということ
PDF
XML Http Request Level2 の噂を聞いたので調べてみた
2016年はFitbitで生体データを監視元年!
Gyazo for Linux 最新ビルド事情紹介 @ KMC学習発表会 in OSC京都
JavaScriptでわくわくシンセサイザーっぽい音が鳴るやつを作る入門
とにかくシュッと検索っぽいことをしたい!
Firefox Add-on SDK 入門
Go言語入門者が Webアプリケーション を作ってみた話 #devfest #gdgkyoto
Don't you want to use Gyazo on Nintendo 3DS etc ?
Pastapy
はてなインターン自己紹介
Matcha139 26th-lt
Shibuya xss lt
情報と社会レポート1
Pasta kの取扱説明書
Ict challenge+r2011 final
Gitの紹介
Osc神戸学生lt
セキュリティ&プログラミングキャンプに参加してから
高校生がイベントを作るということ
高校生がイベントを作るということ
XML Http Request Level2 の噂を聞いたので調べてみた

Rubyの聞こえる化