Made a presentation 'What is Rack Hijacking API' in Ruby Conf Taiwan 2016 #rubyconftw

はじめに

これは Goodpatch Advent Calendar 2016 - Qiita の 11 日目の記事です

最近転職しまして、11 月から Prott の Backend Engineer として Goodpatch で働いています。

カンファレンスの受付はプライベートなので本業ではありません 😁

はじめての海外カンファレンス

https://twitter.com/kysnm/status/776795886894526465

会長こと @yosuke_furukawa が Node interactive Europe 2016 に参加 している様子を Twitter で眺めながらふとつぶやいたところ、数人の海外カンファレンス経験者の方々から背中を押してもらった事がキッカケでした。

余談ですが今日は @yosuke_furukawa の誕生日です。おめでとうございます! 🎂

Rack Hijacking API を題材として選んだのはやはり Rails 5 の ActionCable で内部的に利用されているので興味があったからです。

実を言うと海外旅行も海外カンファレンスも 30 分枠のメインセッションスピーカーも初体験で、正直本気で逃げ出したかったです 😭 (発表は英語で行いました。Thanks for Google translate!)

Rack Hijacking API とは何か?

調べていく中で、ほとんど Rack の SPEC と実装時の pull request に書かれているので知っている方も多いのではないかと思いました。

驚いた事に実装はもう 2013 年に行われていたんですね。その当時から HTTP2 をも見据えていてすごいなと感じました (小並感)

単純に言うと以下のような感じです。

  • HTTP Request / Response の socket を横取りして、socket に対して直接書き込みを行う
  • Request 時点で横取りする Full Hijacking と Response 時に横取りする Partial Hijacking がある
  • socket を横取りするので socket を close する責任がある
  • Full Hijacking では必要な header も自分でつける必要がある

pull request をよく読むとこれは仮の実装であり、rack 2.0 で新しい spec が生まれる事を期待しているというような記述が見受けられます

this is a straw man that addresses this within the confines of the rack 1.x spec. It's not an attempt to build out what I hope a 2.0 spec should be

この API では接続数が増えた時に scale しないという意見も見かけました

The new Rack socket hijacking API | Hacker News

Rack 自体は開発が鈍化しているという噂も聞いていますが、今後どうなっていくのか注目していきたいと思っています。

登壇を終えて

https://twitter.com/kysnm/status/804939451172405248

この CM ももう10 年前になってしまったのか 💦

登壇までの間本当に緊張していて、organizer が用意してくれたホテルが会場直結だった事もあり、部屋にこもってプレゼンを見直し、声を出して練習しておりました。

それでもやっぱり本番は緊張してしまって、力が入りすぎているのを感じながら徐々に力を抜きつつ、気がついたら発表が終わっていたという感じです。

嬉しい事に発表後にまつもとさんから労いの言葉をいただいたり、tagomoris さんから発表についてのアドバイスをいただいたり、shyouhei さん、kakutani さんとカンファレンスについての話を出来てホッとするやら嬉しいやら、やってよかったなと思いました。

このカンファレンスに参加できたのは高橋会長に後押ししていただいたのが何よりも大きいです。あらためて感謝の意を表したいと思います。ありがとうございました!

(今日の東京 Ruby 忘年会も行きたかった…)

https://twitter.com/kysnm/status/804968241814597632

https://twitter.com/kysnm/status/805441741557927936

(スライドだけだと意味がわかりにくいと思います。トークスクリプトばっちり書きましたから 😅 )

反省点の一つとしては、瞬間的に英語を話すのが難しくて海外の方とあまりコミュニケーションを取れなかったのが残念でした。英語もっと頑張ろう

ちょっとだけ観光

https://twitter.com/JuanitoFatas/status/805215978682392576

帰りの便の関係で皆さんと合流後程なく離脱しましたが、楽しくて後ろ髪をひかれてしまいました。ただもうクタクタで体力的にもきつかったのが本音です 😇

hakobera さんと二人だけ早めに着いてしまって、散策しながら食べた老士林の大餅包小餅は美味しかったなー

http://4travel.jp/overseas/area/asia/taiwan/taipei/restaurant/10446465/4travel.jp

終わりに

また今度ゆっくりと観光したいです!

台湾は日本からも近くて行きやすいし、日本の文化を気に入ってくれている人達が多いようなのでとても居心地が良いと感じました。

(PPAP や 逃げ恥も受けてましたね)

https://twitter.com/JuanitoFatas/status/804973239269085184

https://twitter.com/JuanitoFatas/status/804975810985672704

なによりも今回の反省を活かしてまたどこかで発表できたら良いなと思っています。その日のために準備をしておこう!