RubyKaigi2014にてパート2

MRuby as Development Platform for Payments
CloudWalk payments.
端末の問題tか色々あって悪夢だけど、CloudWalk使うといいよ。簡単に使えるしということかな。
今はwebのIDEがあって、それを使って導入が簡単に???
開発者にも優しい作り。

Mobile First
small rubyが必要→MRubyだ。高いポータビリティで、VM軽いし。

アーキテクチャ
 PaxOSがあり、SDKがある。その上にMRubyのコアが。

CloudWakl
MRuby Framework
Hardware Agnositc
Modular
Simple

Webruby??
mruby-js?
emscripten
WebRubyでmrubyをコンパイル!!?

The Twelve-factor Ruby 「Ruby を良くするための12のポイント」
ペパボ。新規はほぼRuby/Rails。技術基盤チームで働いている。gemの開発を通して。。

Ruby メンテナンスのpolicy
コアはMatzさんのジャッジが必要。standardライブラリはメンテナーがやっていい。

コミッターに適切に伝える必要がある。
1.Reporting line
redmineにissueを作成し、内容を書く必要がある。githubでもいい。
MatzはRedmineにしかいない
issue起票のメリット
・approved later
・related issues
・good bikeshed

2.usecase
Its should be ** `s behaivorと書かれる事が結構あるが、なんの為にそれが必要なのかなどを明確にする
Acceptable issue without usecase
・symmetrical
posix
・bug segv

3.code コードを付ける
I propase awesome function. 誰が作るかとなると、基本的には欲しいと言う方がいう。バグレポートもコードを付けるのがオススメ。奇麗な必要はなく、こうしたらバグがなおしたとうレベルで投げる事で、新しい発見がある。
git format-patch sha1 [dir]

4.Naming
名前がイマイチだと取り込めない。

5.Avoid to Red Ocean
blue oceanは
・win/AIX/Solaris
Rails with trunk
・documentation(今はカバー率は70%位。)

6.Language
日本語Ok. English is better.多くの人に見てもらうにはEnglish。

7.expectation
こうなると良いのに、こうなりました、というのがGood bugreport。

8.minimum case
クラッシュログを付けてもらえるといい。

9.try trunk
trunkは最新のruby。trunkのものをRuby_2_0_0に取り込んだりした。

10.Do not urgent
優先順位フラグをコミッターは見ない

11.Dev MTG
月一でやっている。やっていることは
・Matz Judge
・Issue Triage
・Release Planning

12.Matz approval

Scalable deployments - How we deploy Rails app to 100+ hosts in a minute
ディプロイ時間が凄く掛かるの早くする。
・capistrano3にしてはというのもあったが、ツール開発。Mamiyaというツール。Capistranoとの互換性もある。

SERFというツール→Gossip Protocol対応のツール。(hashicorp/serf).
sorah/villeinというツールでラップ??

8.4minから45secondsに

Resource Control Architecture scripting with mruby for a Web Server Separating Computer Resources Virtually at Each HTTP Request
Webサーバのリソース制御。
・既存は敷居値を超えると受ける、強制切断、拒否。受けるか受けないか単純な制御
 これではクライントの印象が悪く、品質の低下になる。
・管理者がプログラマブルに制御ルールを記述。これは柔軟で高い制御ルール。サーバ再起動の必要なし
 リクエスト単位でリソースを割り当てる。クエスト中断でなく、継続的に。

これを実現するてためにmod_mrubyを。
apache httpdDSL制御エンジン。
mod_mrubyの特徴
Apacheの機能拡張に特化
apacheとmruby
速度が必要なところではインタープリタを共有する。
性能がより重視されるところでは、サーバ起動時にバイトコードを保持。

・リクセスと単にでリソースを割り当てるには?
mruby mruby-cgroup

Server Engine
ServerEngine:unicornみたいなサーバを簡単に作れるようにしたgem.
workerモジュールとserverモジュール
workerモジュールが必須。
serverはworkerを管理。workerが複数立ち上がって処理を実行
マルチプロセスでlogがバグルというバウがruby1.9とかではあったが、最新では大丈夫になった。

sigdump
sigout of javaVM for ruby

FluentdをserverEngineで書き換えている。そうすることLive restartやマルチプロセス対応になる

Kids, Ruby, Fun!: Introduction of the Smalruby and the Ruby Programming Shounendan
Smalrubyはrailsとblocklyを使って作ったeditorで。

ライトニングトーク
・Pratical_girl
use trait
eventデータ作るのいぇみよう
最後に見直す

・Native liberies & gem
・ofrubyについて
iphone上で動くRubyのプラットフォーム。iphoeでrubyを書ける!?面白いもの作るなーと思った。

・Keep Freedom on ruby
rubyの多様性を大事に!!かw

・10th rubyist magazine
scaleにrubyist magazineは動いている。

・Let try mruby
mrubyでは簡単に問題に遭遇することができる!