RubyKaigi 2019に参加した

宣伝

所属している会社のYassLabはSilver sponserです。 宿泊費や交通費も会社の経費で出してもらいました。

いい会社だな〜。

ありがとう

多分ここに書ききれず漏れると思うので(すまん、人間なので...)、ワイルドカード的にRubyistのみなさんどうもありがとうございました!!!

特にRubyKaigiのスピーカーのみなさん、スタッフのみなさん、スポンサーのみなさん、やんちゃハウスのみなさん、お話してくれたみなさん、ありがとーーー。

聞いた話、全部よくて、よかった。

スタッフのみなさんのおかげで3日間の会期中なにも考えることなく話を聞くのに集中できて最高でした。

スポンサーかなりすごくて、チケット代は基本的にお話を聞くための代金で(スピーカーの数と豪華さをごらんよ...)、例えばバスやパーティーやお食事はほとんどスポンサーのおかげで頂けているようなものですね。 https://rubykaigi.org/2019/sponsors スポンサー様のおかげでめちゃくちゃ楽しかったです! ありがとうございます! 直接ありがとう言えてない企業も多いのでここで書きます。

#やんちゃハウス 、雑に訪問しても暖かく向かい入れてくれて本当に助かりました。ありがとう #やんちゃハウス1

みんなと話せてたのしくてよかった〜。

0日目

沖縄🌺から福岡🍜へ。

ついたらすぐ野生のimazさんに遭遇した。良い街。

同僚氏の荷物もって宿に一旦行ってから出て、ペンさんと博多駅散策したあとタリーズで一休みしていた。なんかペンさんがつくっている超便利gemのおもしろ話を聞いた気がする。gemはこれです。

github.com

トイレ自撮り、裏垢みがある。

沖縄勢で飲みにいくようですごい、とにかくすごい超絶技巧系プログラミング言語の記号大好き就活生と合流。

twitter.com

待ち合わせに緑の髪はべんり

雑にハウス住人のOrekanegon氏とも合流して鍵を渡す

twitter.com

わがハウス、船組が沈むと開けれなくなる脆弱性があるので地上組に渡すという鍵管理戦略をとっていました。

1軒目

雑にリプしてはじめて友人と会う。

もつ鍋を食べたし酒も2、3杯飲んだ。

感想

中学校3年生はまるまる行っていなくて(卒業式は出たが)、そのときに出来たチャット友達。 まさか大人になって働いているとはなあ... 大人、共通の話題というのがあるというのは凄い貴重な感じで、数年来にあうとだいたい近況報告しがち。

初日だし抑えようかな〜、絶対福岡また行こうと思って1軒目で切り上げてすっと帰宅...する予定が帰宅失敗するんですよね。なぜか。

2軒目

なぜか船組が一番帰宅早いという感じに やっぱり最初に飲み始めたものが最初に帰宅する運命なのか。

自分もちょうど1軒目おわったあたりだったので、鍵を受け取るために一杯のみに行くことにして週刊Railsウォッチ勢と合流。

techracho.bpsinc.jp

これは向かう途中の川

今回、起床試験があったんですが、あれ福岡の会場で受けると移動しなくてよくて楽みたいな知見をえた。 すでに写真撮影試験は合格していたらしい。すごい。

船勢とも合流、一杯だけ飲むことにしていたので一杯だけで帰った(えらい)。

これは帰宅途中で見たなんかつよそうな店。

3軒目

帰宅して、生活用品をかいにコンビニ行くか〜と話していたんだけど、屋台いく???みたいなノリで雑にタクシーのって天神の屋台へ。

f:id:h6n:20190417232121j:plain f:id:h6n:20190417231439j:plain f:id:h6n:20190417231453j:plain f:id:h6n:20190417231402j:plain

🍜食うつもりが明太子食べたくて🍜失敗。

屋台、もっとずらーーーっていうイメージだったけどそうでもなかった。 ぽつぽつ、ぽつぽつぽつ、ぽつぽつみたいな

4軒目

やんちゃハウスの座標を手に入れていたのでやんちゃハウスへ向かうことにした。

simanさんとnanophateさんも雑に誘ってみたけど構成員の勧誘に失敗。

1人で地下街あるいて空港線にのった。 地下街ひろない? やば。

地下鉄ホームで野生のkatsuyoshiさんとnobuさんに遭遇。 nobuさんに頭ワシャワシャされて地毛証明(??)された。

色、葉桜ですよ!!!

katsuyoshiさんに連れられ事務所(?)でなんかいい感じにyancyaさんからウェルカム日本酒の洗礼をうける。 f:id:h6n:20190418004154j:plain

ペンさんも合流してはじまってしまった...

Numbered parameters知名度調査から談義がはじまり@1って直感でどう思う?とかテスト書くときにバックスラッシュだと文字列の中で2回書いてエスケープしないといけなくてだるい話とか聞いた。

trunk、毎日ビルドでは速が足りないっぽい

1時になっても誰も寝てなくてわらう。

そのあとnobuさんをホテルに送り届けてYassLabハウスに帰宅。

YassLabハウス

なんかもうすでにみんな就寝していて荒らすのが嫌でリビングで一人ソファ寝することにした。 シャワー入ると髪の毛の緑色が落ちてやばそうなので起きたらドンキでなんかいい感じの緑のタオル買うことを決め就寝。

1日目

さんぽ

早朝に起床成功して散歩していた

中洲のドンキでタオル買って普通に帰宅してシャワー浴びた。 屋台街の案内を見つけたりした。 散歩中川沿いの様子を見て察した。

会場とは知らず川端の商店街も歩いた。(予定がはじまる直前に確認するタイプの人間)

朝食

バス停近辺でsimanさんとペンさんとしっかりしたやつ食べた。

f:id:h6n:20190418085044j:plain

SmartHRさん最高のバスをありがとう...!

何も気にせず会場むかえて超よかった。 ありがとうありがとう。

名刺をもらう

嬉しい、スイッチとPro microとキャップ買わねば...!!!

パーカー

さくらいさんに人参と言われてめちゃうけた。 やっぱり万葉、谷とか滝とかのメタファが得意だから人参とかがすっとでてくるのか...と思う。

テラハ最終回

カルパスさんのツイート見て海いった

海外ゲストごろ寝してて自分もねた。いやされた。

テラハ、はーーー!!!

トーク感想

Matz

新文法もりだくさんでめちゃくちゃ嬉しい

進捗

進んでいてよかった

横のディスプレイにreiwaがlavaと表示されていて、同時通訳の人の音声を流し込んでるのかな?みたいな気持ちでみていた。(まだReiwaは辞書になさそう)

Numbered parametersの話とかはReconsiderのissueとかを読んでいたので動作については色々しっていた

ruby trunk changesのおかげでリリース前にだいぶざっくりとした感じで興味のある変更に気づきやすくなっている雰囲気がある。

gem

この話本当によくてrubygemsで配布されてるgemとGitHubソースコードが同じ保証はないみたいな話があって解決するツール自作していた話が聞けてよかった。 一応GitHubでdiffみるみたいなのはやっているけど、あくまでインストールしているのはrubygemsからだからな...

今面倒な比較もツールがあれば比較的手軽にできそう。

typo耐性が高い名前にするとか、typo攻撃に備えてtypoしがちな名前全部とるみたいなのをやったほうがよさそうだった。 simanさんのtypogen gemが言及されててウケた。

Rubyはダイナミックなので、いろんなところに自分の処理を差し込むことができて、それが結果的に攻撃可能な場所を増やしまくっているっぽい。

まあ仕方ない。

インタプリタ

__ATTR____C__、evalの中から絶対よびたい... ECから色々情報とれるとかなり便利そうだとおもってみていた。(主に悪用的な意味で)

Fiber

同期で書いて非同期になるのがほんとうに便利そう

callback, asyn/await、Hellthyなのでなるべく触れずに生きていきたい...

Fiber直で使うことあんまりなかったけど、この発表聞いてからは使っていきを感じた

パターンマッチ

destructにRefinementsが効く点とか悪用勢の好みを押さえていそう

構文の選び方のコツとして予約語を組み合わせ使うというのは、なるほどという感じ

この発表聞いてすぐには、あんまり実世界と紐付けて考えてなかったんですが、翌日のRSpecのComposableマッチャの説明みたときに、case inあるとCompsoableマッチャーわりとお役ごめんになり得るな〜と思いながら聞いていました。複雑な構造を扱うときべんりそう。(そういう構造をあまりアプリケーションレベルで扱いたくはないが)

トイレ

小便器、小便に特化している点と大量にある点でGPUみがある 汎用個室トイレはCPUっぽいと思いながら列にならんでいた

Cookpadパズル

初日時点で1文字回答全部出していたら1つも取れなさそうな気配がしていたのでスッと適当にといて提出した。 が後からきくとやっぱり1文字回答があるようで、「なるほど〜、最後の1ピースをはめる、それがパズルか〜〜〜〜」とクイズじゃなくてパズルなのに納得感を覚えた

商店街

なんか酒もらっていいのか分からなくて開始前にフラッと酒屋でプライベートビール1本買ってのみはじめた。

リタリコ勢、ごっち勢(dev.to書いてる勢)、ラグザイア島、マネーフォワード島、M3島、ペパボ島、アジャイルウェア勢あたりにお世話になった。 酒飲みつつ商店街2往復ぐらいした。

なんかすごい感じの鶏が出ていてすごかった気がする(語彙)

アイコンみたことある人がいっぱいいてなんかわーーー(語彙2)

やんちゃハウス

早く寝る人の部屋を更新する担当の気持ちがうまれた。(主体的に動けるので)

なんかとにかく厳しかった気がする。なぜか帰宅できた。一応毎日帰宅できなかったっときのための服をカバンに入れている。とてもべんり。

2日目

1日目の夜がとにかく厳しかったのでタクシーに乗ったが、いろいろなものがギリギリだった。

朝食会場で朝食にありつくも皿に盛ったものを食べれずsimanさんにお願いした(悪行も書いていくスタイル)。

アジャイルウェアの論理同僚氏に沖縄勢を雑に紹介した。

感想

メンテナンス業

ruby-trunk-changes本当によくて、新機能が雑にわかってべんり...(新しい邪悪な力がすぐわかる)

メンテナンス業本当にすごかった。 面白いなーと思ったのはcloseされたチケット見るあたりとか。 warning出るのとか本当によい。

Refinementsがゆるくなっているの実際そうでbindingの中できいていなかったのがきくようになったり式展開でto_sがきくようになったり&to_procがきくようになったり、悪用HH活用範囲が広まっていてべんり。 parse.yでヤバいところは:っぽいというのがわかったりとかして面白い。 知っている人がバグレポ例でいっぱいでていてよかった。

エンドユーザーが実際困っているかどうか、というのは確かにという感じ。(一方私は誰も困っていなさそうなバグレポを書いたこともある)

RSpec

RSpecユーザー必見という感じだった。 なんかつくりがよいのがわかる感じで発表めちゃくちゃポンポン進んでるのにすっとわかった。 実行順のランダムの話とかは知らなかった、勉強になる。 Composableマッチャについてはcase inで使用が激減しそうな気がする。

Zeitwerk

eager_loadにはautoload必要とか、全部並べてrequireは実質eager_loadとか定数が定数ではないみたいな感じのは確かにという感じ nestingもRefinementsと同じ部類に入る機能ではあるっぽいよな、レキシカルみがある。const_missingまでいくとnestingがとれなさそうなのとか確かにという感じ。 $LOADED_FEATURES.popめちゃくちゃ邪悪で笑ったw

発音聞けたのがよかった。(が実際発声できるかというと?)

single_cov

めちゃくちゃ導入楽そうで絶対使おうとおもった。

デフォルト引数周り、ブランチカバレッジ的にもとれないみたいな話があったがどうなんだろう。 メソッドボディと別物扱いされていて悪用チャンスが残っていそうに思える。

あとなんかプロダクションでカバレッジとってもそこまで性能差ないみたいな話もしていて興味深い。

セッションおわったあと金子さんと発表者なんか話していてなんかよさそうだった。

Crystalball

神依存みたいなクラスだとあんまり実行する量へらなさそうなのが若干微妙かも、と思った。 メソッド単位で依存関係が取れるとよいのだろうか。実装見ないとなんとも。

ここでもMatz hates testsされていてラップ感がすごい。

それにしても0.5.0の時点でいろんな情報源があって、すごかった。地道な実装がありそうでソース読むとよさそうな雰囲気を感じた。

DSL

心がきれいだからかRakefileのshとか=>とか見えない体になってしまっていた...

邪悪グラフみたいなのあって階段確かにという感じ

内部DSL、表現力がRubyの文法までとか実行しないDSLとか色々と思うところがあった

LT

マクロのgemがmaccroとかダジャレ駆動感がある

ところどころつよい話(5000行ほど書くとか)あって物理的に笑った

M3ブース

毎日問題が充実していてよかった。この日のやつから文字列に%したときの動作が分からんくてちょっと確かめた。目パーサーは完全に動いていたけど目インタプリターがだめ。

zozoブース

ねこちゃんT、0いいね

以前の論理同僚氏と再開

Ateamブース

Matzが通りがかっていて初めて使ったRuby 0.01というの書いてたのでパシャとっとってツイートしたら1000いいねされててビビる

コード懇親会

酒なくて平和だった。

Redmine開発についてRMagickメンテナーとSQLのプロとお話できてよかった。 これについては感想書いたのでそちらを参照されたし。

github.com

後日談としては、同じ現象のissueがすでにあってパッチもあるというのをTwitterで教えてもらえた。

中洲の屋台

コード懇親会勢からカラオケ勢と中洲屋台勢でタクシーのっていった。 中洲の屋台、連なり方がすごい。

Twitterでよくファボくれる人と隣になって色々聞いていた。 子ども服とか扱う会社っぽい、めちゃくちゃべんりそう。沖縄でも送料300円とか聞いてマジ??? 沖縄も全国に含まれてる!!!と思って嬉しさがすごい

smarby.jp

Matz席からパターンマッチでバイナリプロトコルとかでいい感じにマッチさせたいみたいな話が聞こえてきた気がする(destruct工夫すればいけそうな気がしなくもない)、そういう意味ではmrubyに入ると便利な機能なのかもしれないと思った。

このツイートもその日とったんですがなぜか100良いね超えていて謎

カルパスナイト

合流してゴマサバとか食った。 めでたい話をきいたりカルパスさんとこんにちはこんにちはできてよかった。 会期中まいにちインターネットでしかあわないひとと会えるのすごい。(普段沖縄なので)

Ruby karaoke

1曲歌ってスッと帰った。アニメ部屋すごいこくてよい。みくるビームして帰りました。 海外勢にTシャツと髪色褒められたりして嬉しかった。

会話...。(英語がんばろう)

やんちゃハウス

到達がすでに日付回っているんだけど、到着してからら7、8人増えたり減ったりしてすごかった。(私は3人ぐらい呼びました)

炭酸水を送り届けたりしつつ自分で飲んだりした(報告していくスタイル)。

早く寝る人の部屋(2時半

なんか、この状態で寝ている人もいて、才能溢れていてすごかった。

途中で導入されたメガおちょこ

開封されていく酒

すごくエンジョイしている図

この日は5時消灯。。。どうしてこうなった。。。。。

私は厚かましくシャワー借りました。(悪行を報告していくスタイル)

3日目

出発

家の住人が出るので起こしてもらって歩いて会場入り。

こんなこともあろうかと頭痛薬をもっていてお昼までには回復。

感想

コミッター

なんか新文法もりあがっていた。コミッターいっぱい居て、普段あんまり話きかない人の話とかも聞きたかったような気はする。

kisaten

実際バグ見つかっているのがすごい。 実アプリへの適用はまた考えることが多そうでちょっと大変そう。

たくさんfuzzるためには速度が必要なんだなあ。

ラムダとProcだと引数の個数違いへの対応が結構違うけどどうなんだろう、と思ってアフターパーティで聞いてみたら、どっちか形式にしか対応していないみたいな感じだった(気がする、あとで試さねば) 部分型みたいなのほしいだろうな〜と思ったら計画されているとのことでよかった。

rbiという文法が定まったのが何よりいいことだろうな〜と思っている。 実際書いてみて問題を報告するのがいちばんのコントリビュートなんじゃないかな、と思ったので、書くぞ。

ここでもダジャレ駆動開発がみられた。

Preval

めちゃくちゃよかった。MINASWANを例に字句解析、構文解析、最適化、実行の流れを説明していた。

これすごいのが実際にプロダクションに導入されているところ。 こんなことやるやつおらんやろ、を無視することで導入できる最適化はまだまだありそう。

あとRubyRubyの最適化が書けて動的に最適化できるというのがものすごい、Rubyishでいい...

プロダクションでは最適化入れてもパフォーマンスの変化はほぼなかったそうで、ちょっと残念。

to_source等のべんりなやつがあって、邪悪なことするために再利用するのにもよさそうだった。

AST書き換え、AST書き換えて型オブジェクトを受け渡す感じにしてRubyインタプリタで型計算をやるみたいなのも頑張ればできそう感あって夢が、夢がすごいある....!!!

ローカル変数

Okinawa.rbのSlackでかなり話していたのに正規表現の名前付きキャプチャでローカル変数定義するのすっかり忘れていてわらった

parse.yライブ編集、ライブコンパイル、面白度が高いw 冒頭から継続出てきたりして萌えポイントだらけだった。

sendしてpop

関連していくつかPR出ているのでヲチしている

github.com

Fastな話

beforeのcallbackの話とか、まさかな、、、と思ったらそのまさかでめちゃくちゃ面白かった

数値のほうが早いあたりとかw 思わずおぼえたよね。

あとから見たところ、スライドHTMLなのでびっくりした。フォントすごいきれい...

屋台

2屋台くった。うどんと、🍜。

_h_s_さんとリタリコ勢の人と東京の勉強会の雰囲気について聞いた(普段沖縄からなので雰囲気きになっていた)。テーマあると怖いので、カジュアルに参加できそうなところに参加してみたさある。 表参道よさそうな感じだった。

Cookpad Padもらった

パズル本当に最高で、エクストラ問題という替え玉みたいなやつも出ててよかった。(全部といた)

全部の問題が面白かったけど解法がとんちきいててすごくよい。 パズルの解説してる様子がめちゃくちゃ楽しそうで聞いてて超楽しかった。

これは後日談ですがお返しのパズルを作ろうとしたら文法のバグ見つけてparse.yを2行書いた。

github.com

Cookpad Padは次の #okinawarb でつくりたいな。

あとこれも後日談ですがエクストラ問題の3問目、2つ回答があるらしくこういうリプライをもらった

1文字で解けている想定でリプ来ていて笑ったし%の方でといたのなんでわかるの!! 2つめのときかたもわかった。

かわいい。

アフターパーティ

なんか雑に色々話した...

RailsDMみていてくれた人が多くてすごい

case in、ぱっとみた感じふつうの命令列にコンパイルされていたので専用の命令たさないんですかみたいなのを聞いたりした。 たすとしても仕様かたまって、使う人増えてからのほうがよいだろうな〜という印象。

autoloadの話ききたすぎて雑に会話きってしまったりした...すまない...

ビールすっとデプロイして台湾勢とちょっとはなして帰った。

ソファベッド

家でハンモックか畳に直に寝る人間なのでソファベッドでも快適に眠れるのでべんり

4日目

ネタgem、is_dead

requireが使えなくなる

Zeitwerkきいてて$LOADED_FEATURESいじると良いというの知っていたので雑にいじるgem書いた。

CSVだいすきなのでexampleに書いた

ちなみにrequireがつぶれるとppするだけで無限ループするようになる。

ちなppの定義こんな感じ

def pp(*args)
  require "pp"
  pp(*args)
end

朝飯

体がうすあじを欲する

コインロッカー

アクセスが悪いコインロッカーを探すと開いてる可能性が高いという知見を得た

ぽっけさんが空いてるロッカー情報ツイートしているのを見て超たすかった。ありがとうございます。

After hack

参加した

そこで聞いた便利情報

昼食

飛行機がガチでギリで野菜だけ少しのこして出た

ギリギリせめてしまった

けどお名前呼ばれてないから多分セーフ

今回の知見

帰宅

子がかわいくて本当に最高、だいすき。

抱負

次はアルコールのまないで全行程こなしたい

話してくれた方

ありがとうございました。どこかで私に話した記憶を取り戻させてください...。

フォローしてくれた方

ありがとうございます!

フォローはずしてくれた方

短い間ですがお世話になりました、ありがとうございました。

感想

ものすごい徳の高い生活発表という感じですごかった

我々の暮らし、いろんな人に支えられているんだな...。

がんばりたい一方で私はこういうチェキ撮るだけで喜ぶ人間というのも事実

できるところでお返ししていきたい。

とくに何かあるわけじゃないですが、どこかで会えたら会いましょう。


  1. 私は治安悪くする側の人間

いいなと思ったらKyashでお金を下さい
20191128011151
GitHubスポンサーも受け付けています
https://github.com/sponsors/hanachin/