2021年3月5日に、mruby 3.0.0 のリリースがされました。おめでとうございます! mruby.org これに関連してなのか、mrubyをこれから始めようとか、ここのところどうなっていますかという質問をちょくちょく受けたり、ツイートを拝見したりするようになりました。 一方で、どうしても情報が古い、あるいは多くのmgemのメンテナンス状況が悪いように見える、などの初学者にとっては難しい状況が広がっており、厳しい気持ちになったり、厳しい感想を述べたりされている方もいるように思います。そして、その感想中には誤解も含まれているようです。 ここでいったん、少しでも「心構え」ができるように、これから触ってみる方々に対しての自分の考えをまとめておこうと思いました。 (さらにいうと、基本的に本原稿はいちユーザ、それもWebインフラに関わるユーザとしての解釈なので、Matzをはじめとした他のmru
2018年4月にngx_mrubyのノンブロッキングHTTPクライアントとノンブロッキングsleep相当のメソッドに対応させてngx_mruby v2.0.0をリリースするという目標を立てた— 松本 亮介 / まつもとりー (@matsumotory) 2018年2月13日 ngx_mrubyのv2の4月リリースに向けて、HTTPリクエスト単位で実行されるRubyのコードを、FiberとProcで包んだオブジェクト経由で実行する実行方式に実装しなおしています。これまでのngx_mrubyのv1系は、Rubyのコードをnginx起動時にstruct RPocにコンパイルしておき、リクエスト毎にそのバイトコードを実行していました。 一方v2では、nginx起動時にコンパイルされたstruct RProcを、HTTPリクエスト時にprocオブジェクトに変換した上で、そのprocオブジェクトをca
登壇者枠です。 Infrastructure as Code/mrubyなどによるConfiguration as Codeの話をしました。speakerdeck.com もともとこの倍の分量のスライドが発生して笹田さんにご心配をかけてしまいましたが、なんとか時間通り? 話せました...。 当スライドで後半でいった内容だったり、僕が最近やっているようなことについて、本当に純粋に「なんでやっているの?」という質問が何人かからありました。Kubernetesの「Railに乗って」コンテナをオーケストレーションしてビジネスをドリブンする、そういうのも確かにエンジニアとして生きるにあたり有力な選択肢だと思います。 でも僕にとって興味のあることは、そもそもKubernetesとか、コンテナとか、それを支えるLinux自体とかがどうなっているかというところであり、興味を持った分野に関しては 世界の本
更新サマリー 2017/11/28 print問題について加筆した。/独自マクロを除去。標準のものへ変更した。その他細かい文を修正した。 2018/7/19 幾つか正しくない表記を変更した。 はじめにRubyがブラウザで動作する 先日、主要ブラウザでWebAssemblyを利用できる環境が整ったと話題になりました。 (参考リンク)WebAssembly対応、主要ブラウザChrome/Firefox/Edge/Safariで整う。 このことから、今後はWebアプリ(特にフロントエンド)でJavaScript系列以外の言語が選択肢にはいるようになります。(検索すると、Rustがよく引き合いに出されています。)本コンテンツはmrubyインタプリタをWebAssemblyに変換し、ブラウザ上でRubyコード"p 'hello world! ...'を動作させるところまでを目標とします。なお、

「Rubyの良さを組み込みに」を合言葉とする開発言語「mruby」は公開以来、着実な進歩を遂げ、さまざまな場面での利用も進んでいます。ここでは「Web界から組み込みに向けられた刺客」(まつもとゆきひろ氏)たる、mrubyの採用事例を紹介します。 mruby(軽量Ruby)は経済産業省「地域イノベーション創出研究開発事業」として2010年に始まり、2012年4月にオープンソース(MITライセンス)として公開された組み込み向け開発言語です。「Rubyの良さを組み込みに」を合言葉に開発されたmrubyは発表よりはや3年、たくさんの人々の協力でさまざまな形の改良がくわえられ、現在ではライブラリは170を超え、デバッガー対応の安定版「mruby V1.2.0」が発表(2015年11月)されるなど着実に進化しています。Rubyは開発しやすい、生産性の高い言語としてWeb開発などに広く使われている言語

■背景 H2Oではバージョン1.5より、mrubyを用い、Rackのインターフェイスに則った形でハンドラを書けるようになっています。 この機能を提供している目的は、正規表現による書き換え等を用いる複雑な設定ファイルではなくプログラミング言語を用いることで、ウェブサーバの設定をより簡潔に拡張しやすくするためです(Apacheのmod_rubyやmod_perlのようにウェブアプリケーションをウェブサーバ内で実行可能にすることではありません)。 とは言っても、現実のウェブサーバの設定においては、外部のデータベース等に問い合わせた結果に基づいたルーティングが必要になることがあります。 H2Oのようなイベントドリブンなウェブサーバ上で動作する、同期モデルを採用するRackインターフェイスを用いて記述されるハンドラ内において、データベースへの問い合わせをどのように実現すれば良いか。問い合わせが同期的
github.com 会社の運用メンバーと色々議論していた中で、「カジュアルにWebサーバへのDoSみたいなアクセスが来た時に検知して制御したいよねー」という話が上がったので、http-dos-detectorというnginxでもapacheでも使えるWebサーバ拡張をmrubyで書きました。 もちろんmrubyなので、mod_mrubyとngx_mrubyを使っています。ので、Rubyコードはそのまま同じコードをどちらのミドルウェアでも使えます。mod_mrubyとngx_mrubyを使えば、ちょっとしたWebサーバの拡張は両方で同じ実装に落とし込めるので便利ですね。 使い方 例の如く、GitHubのREADME通りにインストールして下さい。Rubyのコードはmod_mrubyでもngx_mrubyでも有効なので、そのコードを読み込む設定をそれぞれ以下のように記述するだけでよいです。 a
RubyKaigi 2014でmod_mrubyやngx_mrubyとその応用について話してきました。 この写真はhsbtさんに撮っていただいた写真で、その他RubyKaigi中のグレートな写真を沢山撮影されていました。 hsbtさんに感謝します。RubyKaigi 2014, 18-20 septemberRubyKaigiは、オブジェクト指向スクリプト言語Rubyの準国際カンファレンスです。 世界中からRubyのコミッターや技術者がRuby発祥の地である日本にて一堂に会するイベントです。 2006年からほぼ毎年開催されており、前回のRubyKaigi 2013では公用語に英語を追加するなど、国際カンファレンスとしての場を整え、3日間でのべ1,500名以上の来場者を迎えました。 発表で使用したスライドは以下です。 スライドよく見ると、時間の関係上省いた最後の

この記事はmruby Advent Calendar 2013の16日目です。 はじめに 少し前にRubyKokubanというものを作りました。 ongaeshi/rubykokuban-gem このライブラリを使うと、簡単にグラフィックやアニメーションを使ったアプリケーションを書くことが出来ます。RubyKokubanとはRubyKokubanはopenFrameworksにmrubyを組み込んだものです。Rubyを使って簡単にグラフィックスやアニメーションを利用したプログラムを書くことが出来ます。 以下のように、(関数定義を除けば)2行で画面に文字と円を表示することが出来ます。 def drawtext 'Hello,rubykokuban!', 100, 100 circle 350, 100, 50 end たくさん書いてみます。 def setup set_window_

人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 mrubyも少しずつ知られてきていて、WindowsやLinux、MacOSX等マルチプラットフォームで色々遊んでいる人が多いことでしょう。そうなってくると、しばらく弄ってみた後はやっぱりマルチプラットフォームで同じようにHTTPで通信してみたいと思いませんか? 例えば、 mrubyでHTTPのGETとかPOSTとかしてみたり mrubyを組み込んだデバイスからTwitterに呟いてみたり 各種デバイスからZabbixをつついてみたり エアコンを監視してるRaspberry PiからGrowthForecastにデータを送ってグラフ化してみたり 組み込みデバイスや低レイヤーなソフトウェアからfluentdにデータを送って解析してみたり という

RubyKaigi 2013 の感想を書こうかと思ったけど、開催日あたりから私事で忙しく心が落ち着いてないので、ざざっと書けるこの内容から。Ruby界隈で組み込み関連の発表をガチ内容でやってしまうことでおなじみの [twitter:@bovensiepen] さんが、 どうやら mruby を Arduino 上で動かしたという発表をRubyKaigi 2013 でやってくれたよう。 以前、同じようなことをしようとして結局 Arduino DUE のメモリ不足だかで挫折した経験がある。たまたま裏セッションにいたので聞けず、「あう〜」と呟きをしてたりしたら、ご本人から発表のURLを教えて貰った。感謝ですわ。詳しくはそちらを見てみて下さい。 とりあえず発表資料とデモ動画を斜め読み(視聴)してみたのは良いのだけど、その内容をイマイチそのまま受け取れないというか、もう少し聞かないと分かんないなぁ
webrubyはWebブラウザ上で動作するmrubyです。 mrubyは組み込み用として開発されたミニマムなRuby実行環境ですが、ミニマム故に使いどころが色々とありそうです。今回はなんとWebブラウザ上で動作するmruby、webrubyを紹介します。 WebGLを使うデモ。 結構ぐりぐりと動きます。 FPSも53とあって滑らかです。 こちらはirbです。コードを書いてその場で実行して結果を得られます。 確かにちゃんと記述できます。 普通にmrubyです。 以前に紹介したJsMrubyの場合は機能拡張としてインストールされるものでしたが、webrubyの場合はemscriptenを使ってmrubyのソースコードをJavaScriptに変換しているのが特徴です。まだまだおもちゃレベルとのことですが、今後発展すると面白いプロジェクトになりそうです。 webrubyはJavaScript製のオ
発表してきました。 なので以下に発表資料のorg-modeを書いておきます^^; あと演習する予定だった問題の回答 (ってか、さすがに30分では演習してもらうのは無理なので、演習1.1のudiv実装部分のコード説明のみで終わりました)GitHub - murasesyuka/mruby atruby_rails_kansai_57 発表の概要 mrubyの夕べで、1/3 => 0.333になるって話を聞いたので、 なら、1/3 => 0になるようにIntegerを書き換えてしまえ>< で、ここ最近はmruby標準の組み込みライブラリもどんどんmgem化して コア機能を最小にするのが流行っているようなので その時流にそって、上記の変更をmgemにする って、一連のストーリー仕立てで発表を考えていましたが、 1/3も説明できてなかったし、1/3も伝わらなかったと思いますw; 発表資料 #+
MobiRubyで書いた”さめがめ” 去年の春からずっとコツコツと作っているmrubyでiOSアプリが書けるMobiRubyが久々に動く様になったので、1年近くmrubyを触ってきて気になった所を少し書いてみます。 以下、mrubyと区別しやすくするために、普段みなさんがお使いのRubyをCRubyと書いています。 mrubyって? mrubyはMatzが去年発表した省メモリ版のRuby実装です。CRubyの機能を全て実装している訳ではなく、JIS/ISOの規格をベースに設計・実装されたものです。JIS/ISOの規格書は有料なのですが、最終ドラフトがIPAのサイトから確認できます。 mrubyの経緯や概要は、日経ITProによるMatzへのインタビューが分かりやすく、内部などについては、IIJさんや東芝情報システムさんがまとめている記事が参考になります。 現在の所リリース版はなく、GitH
トピックス mrbgems が入った お前はどこのワカメじゃ ビルド方法が変わった mruby-uv mruby-http mruby-sinatic mruby-json mruby-sqlite3 mruby-curl そして mruby-v8 mrbgems が入った mruby に GEM っぽい物が入った。 とは言ってもスタティックリンクなのでダイナミックローディングしてくれる訳じゃない。 しかしながらパッケージを導入する上での取り決めが決まりつつあると言った感じ。 使うには MRUBY_ROOT という環境変数を mruby のリポジトリトップに設定しておき、MAKEFILE_4_GEM を $MRUBY/mrbgems/Makefiel4gem にしておくと良い。後者は要らなくなったかもしれない。 具体的には $MRUBY_ROOT/mrbgems/GEMS.active と

JsMrubyはGoogleChrome/Firefoxの機能拡張として動作するmrubyです。 mrubyは通常のRubyに比べてコンパクトである分、組み込み分野などでの活躍が期待されています。しかし軽量であるという点に注目し、なんとWebブラウザ上で動かしてしまうのがJsMrubyです。 インストールします。 実行しました。Js Mrubyという出力がCanvasにされています。 JsMrubyはまだ限られた環境下でしかどうさしないようですが、WindowsであればGoogleChromeやFirefoxでも使えます。Rubyスクリプトを動かすのはもちろん、機能拡張をRubyで書くと言った使い方も考えられそうです。 JsMrubyはGoogleChrome/Firefox用のソフトウェア(ソースコードは公開されていますがライセンスは明記されていません)です。 MOONGIFTはこ
人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 ngx_mrubyを作るにあたって、nginxモジュールの実装方法が分かってきたので、それを連々と書いていこうと思います。nginxモジュールといっても、Apacheモジュールの実装方法と似ていたので、Apacheモジュールを書ける人は同様にnginxモジュールも実装できると思います。 ngx_mruby用のディレクティブを追加nginxモジュールはApacheモジュールと同じで、基本的にはnginxの内部ルールに従って、nginxに処理させたい関数をフックさせる方式で実装します。nginxのconfに新たな設定を追加したい時、例えば、以下のようなnginxの設定を新たに作りたいとします。 location /mruby { mrubyHa

1リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く