ルニラボ

lni_T の長文置き場

大阪Ruby会議03でruby.wasmについて登壇&演奏会をしました #osrb03

タイトルの通り、先日の大阪Ruby会議03にて登壇させていただきました。

スライドはこちらです。

speakerdeck.com

感想

外部のイベントにCFPを通して登壇する。という経験は初めてのため緊張しておりましたが、結果的に多くの方に楽しんでもらえたようで嬉しく思います。

Rubyで笑おう」というイベントのテーマは無事達成できたのでは!と感じています。デモを作り込んだ甲斐がありましたね。
盛り上げていただいた参加者の皆様ありがとうございました!

他のセッションも大変面白く、明日すぐ業務で使える知識からお絵かき/工作/本作りと多種多様で、丸一日楽しめました。
プレゼン方法も参考になりました。DOM要素を見やすく表示した状態でHotwireのデモをするのは分かりやすくて良いですね…

使用技術

"ruby.wasmでgemを使う"をテーマに据えていますが、セッション前半の技術としては以下のようなものを解説しました。

  • メソッドへのモンキーパッチの当て方
  • requireにパッチをあててrubyのコードの依存関係を探る
  • 依存コードを1つにまとめてruby.wasmからロードする

メタプログラミングRuby 辺りの技術が中核となっており、Ruby初心者…は超えたRuby初級〜中級者に向けた内容としたつもりです。

Rubyはならず者の言語

Rubyは柔軟な言語なのでrequireのような重要な処理も簡単に変更することができる」
的なことを説明したかったのですが、口が滑ってしまい「Rubyはならず者が使う言語」ということに……

その場のノリって怖いねぇ〜

Rubyの勉強会で「演奏」をする

ruby-wasm-synthesizer デモ

前述の通り、技術的な難易度がべらぼうに高い。という訳ではない認識です。

このままでは上級者が楽しめないのでは…ということで

  • 「きさまがどんな技術力を持っていようが関係ないプレゼン内容を思いついた」
  • 「デモをぶちかますインパクト一発勝負!圧倒的差別化💪」

という流れで、セッション後半に自作シンセサイザーで演奏を披露するという暴挙に出ることになりました。
好評だったようで非常にありがたい限りです。

Web Audio APIでプログラムから音源作成→音階の設定→再生という流れをイチから実装しています。

実は基本的な波形(矩形波や正弦波)の生成だけであればオシレーターを使うことでも実現可能なのですが、せっかくなのでRubyでイチからやりたいじゃん?ということで波形データの作成から手で実装しています。

選曲の基準

セッションでは以下の3曲を演奏しました。選定理由は以下の通り。

RYDEEN

シンセサイザーといえばYMO & YMOといえばRYDEEN ということで選曲。

Ruby上級者を狙ったコンテンツなので「年上のおじさまたちに刺されーっ!」という邪な思惑もあったりします。

ヘドウィグのテーマ

映画ハリーポッターでおなじみの曲。こちらは年代/性別問わず幅広く分かるだろうということで選曲。三角波の柔らかい音色にもマッチしていますね。

Get Wild

「もしかしてエンディングとしてGetWildやればウケるのでは」と前日にひらめいてしまったので急遽追加したコンテンツ。

計画通りやや早めに発表を終えられたので演奏を決行しました。大変好評。めでたしめでたし。

その他の施策

名札にアイコン表示

人の顔おぼえられない病が深刻なので、自分だけでも判別が付きやすいようにアイコンを名札に貼り付けていました。

コンビニのネットプリントでシール印刷したアイコンを貼り付けています。 5cm角のシール2枚で300円。お手軽なので大変オススメです。

networkprint.ne.jp

早く顔の上にアイコンとHNを任意で表示できる時代が来てほしいですね。

おわりに

振り返ってみると登壇準備に工数をかけすぎている!!!!!
工数の制限がないと本当に工数を度外視してしまうのが良くない所、次はもっと余裕をもって登壇したいですね。

次回があれば、また登壇できるようがんばります!