「Matz葉がにロボコン」
福井県情報システム工業会の30周年のイベントとしてスタートしたオープンソースなこども向けロボットコンテスト「越前がにロボコン」からフォークされたイベントです。
Rubyとロボットと言えば、IchigoJamで組み込み向けのRuby、mrubyを動かしたことがあります。(IchigoJamでRubyは動くのか?2つのアプローチとPC上試作 kawakudari.rb)
今回は、一人一台パソコンを活用する、BLE/WebBluetooth制御を前提にブラウザ上でのRuby実行に向けて見つけたNode.js向けJavaScriptライブラリ「puntorigen/ruby_parser: Pure JS Ruby file parser」をフォークして、Denoやブラウザで汎用的に使える「RubyParser.js」を作りました。
「code4fukui/ruby_parser: RubyParser ES module」
パーサーにはWebAssemblyが使われていました。WASMファイルはまだimportできないので、JavaScriptに変換することでDenoで動かした際にもキャッシュに残る形にしました。
ブラウザ上でRuby言語を書いてもらう準備ができました!インタプリタにするか、WebAssemblyにするか、Mochi言語でRuby風スタイルに対応するのもおもしろいかも?
「code4fukui/bin2js」
bin2jsを使えば、バイナリをJavaScriptにできます。WASMだけでなく、画像やデータなど、汎用的に使えます。Base64でエンコードしているので33%と100バイトちょっと増える感じになります。
事前講習会の様子がアップされています。現地での観覧、楽しみです!
松江高専が主催、しまねOSS協議会、松江市が共催、島根県が後援。オープンソースが熱い!
links
- Matz葉がにロボコン|かにロボ連盟 ご当地こども向けプログラミングコンテスト (2023-01-15 13:00 at 松江テルサ)