[WIP]RubyKaigi2015に参加してきた(3日目編)

RubyKaigi2015 の3日目のレポートです。
RubyKaigi2015に参加してきた(2日目編)の続きです。
他の記事の都合上、かなり雑な状態でWIPです。

Ruby Committers vs the World

Rubyコミッタ方の今年の功績

Check Incompatible libruby

rbenvなどでバージョン不一致でSEGVが起きる件に対して例外を出すようにしている
今年のベストコミット
そもそもの問題はRVM
バージョンをmigrateしてしまう。sharedライブラリが残っちゃう

rdoc/rubygems backport

柴田さん
upstreamが別にあって、それで開発されたものをCRubyが見ている
コントロール外のところでコミットされたりとかするとupstream側に戻さない人が多数いる

secure random

ほさきさん
openSSLの秘密鍵の話
何かミスがあっても事前に消しておく
→コンパイラが賢いと0クリアを消してしまう

code size diet

normal personって人
eric wonさん

optimization of newobj_of[]

おくかずほさん
C言語の技術で、オブジェクト生成を早くした

コミッタが増えた

  • odaira
    IBMの人
    AIXのメンテナー
  • sho-h
    Documentation Maintainer
  • gogotanaka
    cmathのメンテナー
    Matrixとか数値演算系のパッチを送っている人
  • yuki
    did_you_meanの人
  • sonots
    loggerの標準ライブラリを作った人
    DeNAのそのさん
  • yui-knk
    エッジのテストの人
    money forwordの人
    金子さん

Writing web application in Ruby

RubyでWebアプリケーションを書きましょうという話
資料はこちら
http://rubykaigi.youchan.org/

最近はRailsでアプリケーションを作っているのに、気付いたらJSばかりかいている。
React.jsが最近アツいが、Rubyを書きたい。
そんなReact.jsをRuby-ishに書けるようにしたのがHyalite

実はこの資料もHyaliteで書かれている。

直近では、
Refactoring
Testing
Documentation
を整備していきたいとのこと
<!– React.jsはrubyistにとっては蚊帳の外
gohraというカードゲームのrule engine
Hyaliteの紹介

OpalというRubyからJSに変換するtranscriptでできてる

シンボルがStringとして扱われる
RubyのオブジェクトとJSのオブジェクトとしては違うものが作られる

Kernel#procが引数として受け取れない

React.jsの話
Virtual DOM
DOM操作遅い(たくさん更新していると)
メモリ上のDOM(virtual DOM)
→とくに描画しないので早い

React.createElement
ReactDOM.render()
mountNode
var HelloMessage = React.createClass

this.props にハッシュが入ってくる

JSXの話
ReactJSの特徴
HTMLで書くと冗長でめんどくさくなる
JSXはHTMLっぽくかける
ただ、JSにHTMLが入るので気持ち悪いコードになる

TodoMVCというサイトがある
http://todomvc.com/

isomophic
アイソモフィック

validation
model
routing

Flux

Future
Isomophic
Imterpret Flux as something similer to Hyalite

–>

Usage and implementation of Reish which is an Unix shell for Rubyist

システムコマンドとかreishの話
途中退席

Discussion on Thread between version 1.8.6 and 2.2.3

Threadの話
えもりまさん
Asakusa.rbの飲み会担当の人

地震のセンサを使って震源の強さを Threadを使って測定

詰まったところ
Thread#statusの話

どんなときにできなくなったか
case1: child threads execute ‘for’ loops synchronously
ループの重複

case2: child threads synchronously raise exception
タイムアウトの処理

なぜか、Ruby2.2.3の方がエラー処理の時だけThread効率が悪いとのこと

Plugin-based software design with Ruby and RubyGems

プラグインアーキテクチャの話
これまでfluentdやembulkをどのようにデザインしたのか

Request and Response

HTTP2の話
プロトコルはバイナリで書かれているので、HTTP1に比べて簡単にかける
テキストよりも短いから、接続データは短くなる

多重化されたプロトコル

HTTP2は自動的にヘッダを圧縮する

chromeを使えばHTTP2を使っているか確認できる
ヘッダは基本的に小文字で表示される

Firefox
Chromeとほとんど同じ

Actor, Thread and me

せきさんの話
Actorの方がthreadより良い。ホント?という話

Keynote

最後はRuby2を3倍早くするRuby3をどのようにして早くしていこうかという話でした。