@プログラミング言語Ruby25周年記念イベント #ruby25th
Pmilterというサーバソフトウェアを作りました。 github.com PmilterはProgrammable Mail Filterの略で、SMTPサーバ(送信や受信)とmilterプロトコルで通信し、SMTPサーバの送受信の振る舞いをRubyでコントロールできるサーバソフトウェアです。 これまでにも、milter managerやRubyのgemを使ってmilterサーバを作るといった素晴らしいソフトウェアがありました。ですが、今回僕がフルスクラッチで作りたかった理由としては、 とにかくインストールや設定がシンプルで運用しやすいサーバソフトウェアにしたい ミドルウェアとして振る舞いを設定する感覚でRubyで制御する事に専念したい 依存ライブラリを減らしワンバイナリでサーバに配置できるようにしたい 設定変更に再起動することなくRubyを変更するだけで振る舞いを変えられるようにしたい
はじめまして、技術基盤部の相原(kaihar4)です! 今回は、アプリケーションのクラウドサービスへの移行の一環で、 Amazon S3から取得した画像URLを含むファイルを元に、そのURLの外部画像を取得して返す機能 をmrubyで書き直してAWSに移行した話をしていきたいと思います。 この機能は元々モノリシックなアプリケーションの一機能として動いていたもので、これを切り出してAWSに移行するというのが今回私に与えられたミッションでした。 このアプリケーションは歴史が長く、その間ほとんどメンテナンスされていませんでした。 ディストリビューションは古くPHPのバージョンも4系、したがってそのまま持っていくという選択肢はなく、AWS上に新規にインスタンスを構築することになります。 弊社にはAPI部分をPHPからRubyに移行する方針があるということもあり、Amazon Linux上にRuby
この記事は、mruby advent calendar 2015の16日目の記事です。 画像やstaticコンテンツ配信系はHTTP/2が有利な状況が幾つかあるので、ついでにHTTP/2を喋る画像変換サーバのプロトタイプをmrubyで作ってみました。ベースはもちろんtrusterdです。なんていったってmrubyのHTTP/2サーバですからね!! 最近また開発を再開しておりまして、昔はh2oやnghttp2のベンチマークに一緒に比較対象として入れてもらったりしていたのですが、しばらく離れているうちに皆さん先へ先へと行ってしまわれたので、また追いつけるようにセッセと勉強しながら実装しだしております。 github.com その他、trusterdについてはこの辺とか、 qiita.com この辺を見ていただくと良いかと思います。 hb.matsumoto-r.jp trusterdのビルド
2015/07/11(土)に行われた「関西Ruby会議06」に登壇させてもらい、mruby の利用事例について紹介してきた。 インフラしか知らないエンジニアが、matz さんを前に mruby の説明なんて、かなり場違いで恐縮な状況でした。 発表内容ホスティングを運用していく上で問題となる「DDoS」「高負荷のプロセス」への対応として、Apache のモジュールである mod_mruby を利用した対応方法を紹介。 そこで利用する3つの mrbgems (CRuby でいうところの gem) の実装例(コード)などの紹介も行いました。 http-dos-detector http-access-limitter mruby-cgroup 感想自分の発表については、準備不足でひたすら反省しているので割愛。 登壇者用の控え室で、生の matz さんを初めて見て萎縮してしまいました。matsum
人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 Gitのコミット単位で動的にDockerイメージをデプロイするプロキシサーバpoolというソフトウェアがあります。 poolとは poolは、WebアプリとDockerfileをGitで管理している場合に、コミットidをサブドメインとして( http://<commit-id>.pool.dev/ )poolにアクセスするだけで、そのGitレポジトリのコミット時の状態でWebアプリのDockerイメージをデプロイし、Webアプリのポートへとリバースプロキシして、Webアプリのレスポンスを返します。もちろん、コミットidをキーに複数の状態にどんどんアクセスできます。(mod_mrubyのユースケースを調査していてたまたま見つけました)。 このp
先日会社で「mysql のテーブルと、プロセス上の共有メモリを連携させたい」って話が出たとき、トリガで外部プログラムが実行できればいけるのでは?と思ったので、調べてみた。 MySQL で外部コマンドを実行するにはmysql で外部コマンドを実行するには system が使える。 mysql> system uname -a Linux cent6 2.6.32-504.16.2.el6.x86_64 #1 SMP Wed Apr 22 06:48:29 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux ただ、これはターミナル上からとかでないと使えない。 調べてみると、mysql には UDF(User Defined Function) という仕組みがあって、自作関数を作成することができるらしい。これは、C や C++ で書いて共有ライブラリ(.so)を作成
■ Testing Casual Talks 2 で発表してきた @ikasam_a さんからあんちぽくん経由で登壇依頼が来たのでちょっと前に構築した ngx_mruby のテスト基盤の話をしてきました。 Testing Casual ということで今回の話はテストのことしか話せなく、そもそもの問題意識であるとか、ngx_mruby の魅力の部分を端折ってしまったので補足します。 nginx.conf のテストをするために ngx_mruby を入れたわけではなく、そもそも rails や sinatra のようなアプリケーション・サーバーでやっていることを nginx のレイヤでやることが最初の目的 ngx_mruby でやるロジックは、非常にテスト向き(コンテキストの再現がやりやすい)ということに気がついたので、テストをする方法を考えて実現した 実現してみたら、だいぶいける感がしてきたの
追記:μOSvはOSv本家にマージされました。 こちらのWikiの「OSvをビルドしてより多くのアプリを試す」以下を参照して下さい。 μOSvというものをgithubで公開したので、ここに簡単な説明を書いておきます。 実行イメージ動画: これは何?(OSvを知らない人向けの説明) ローカルマシン上のKVM・Xenや一部のIaaSサービス・VPSなどで走る、mrubyスクリプトを実行する事のみに特化されたOSです。 mrubyインタプリタの実行に汎用OSを必要としないため、とても少ないメモリ使用量(今のところ90MB以上なら動く)・ディスクイメージサイズ(今のところ26MB)・とても速い起動時間(今のところ2秒くらい)で動作します。 mrubyなのでRubyで使えるAPIが全て使えるわけではありませんが、ネットワークアクセスを行う小さなアプリケーションであればLinux上で動作するRubyス
mrubyを使ってグラフィカル&インタラクティブなアプリケーションが作れるRubyKokubanというものを作りました。 mrubyで何かやりたいなあと思いこつこと書いていたのですが、少し触れるようになってきたので公開します。 def draw text 'Hello, rubykokuban!', 100, 100 circle 350, 100, 50 end 最小限のコードでゲームのようなものが作れることを目指しています。 インストール 今はコマンドラインからの実行環境のみ用意されています。対応プラットフォームもOSXのみです。 RubyGemsからインストールします。 $ gem install kokuban まずは最新の実行用アプリケーションをインストールしましょう。 $ kokuban install --latest インストールされていることを確認します。 $ kokub
MobiRubyで書いた”さめがめ” 去年の春からずっとコツコツと作っているmrubyでiOSアプリが書けるMobiRubyが久々に動く様になったので、1年近くmrubyを触ってきて気になった所を少し書いてみます。 以下、mrubyと区別しやすくするために、普段みなさんがお使いのRubyをCRubyと書いています。 mrubyって? mrubyはMatzが去年発表した省メモリ版のRuby実装です。CRubyの機能を全て実装している訳ではなく、JIS/ISOの規格をベースに設計・実装されたものです。JIS/ISOの規格書は有料なのですが、最終ドラフトがIPAのサイトから確認できます。 mrubyの経緯や概要は、日経ITProによるMatzへのインタビューが分かりやすく、内部などについては、IIJさんや東芝情報システムさんがまとめている記事が参考になります。 現在の所リリース版はなく、GitH
人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 なぜWebサーバソフトウェアであるApacheやNginx等にmrubyを組み込もうと思ったのかを整理しておきたいと思いました。 目的はWebサーバの開発支援 Webサーバの開発支援をしたい という壮大な目的が以前からありました。 それがどういうことかは後述するとして、ここでいうWebサーバの開発とは、Webサーバの内部機能拡張を指しています。それを行うにはどうしたら良いかをまず簡単に説明したいと思います。(スクラッチでWebサーバを1から実装するのもよいですが、ここではスコープ外とします) 例えば、Apacheを例にあげると、Webサーバの内部機能拡張はモジュール単位で組み込むという方法が取られています。ApacheやNginxはWebサー
RubyMotion lets you quickly develop cross-platform native apps for iOS, Android and OS X, all using your favorite editor and the awesome Ruby language you know and love. Let's see how RubyMotion works I'm a developer You will feel at home. RubyMotion features a statically-compiled version of the Ruby language designed for native mobile platforms, as well as a command-line based extensible toolchai
Русский анал во всей его красе можно найти на данном ресурсе! Переходите по ссылке и наслаждайтесь качественным видео без рекламы. Русский анал с разговорами.
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く