scramble cadenza

技術ネタのガラクタ置き場

大江戸 ruby 会議 04 参加した話

イントロ

タイトルの通り。行ってきました。

他の人もまとめてらっしゃるので、そちらのほうがわかりやすいです。
ここでは自分のメモを見ながら、もう一度頭のなかで再現する意味を込めて、書いてみました。

あ、全部書いてるので、めちゃくちゃ長いです。
それとまとめの粒度に差がありますし、内容の精度も保証できませぬので、ご了承ください(私の脳味噌スペック的な問題で)

他の方のまとめ

大江戸Ruby会議04に参加してきました

大江戸Ruby会議04参加しました! スライド・リンクまとめ - 酒と泪とRubyとRailsと

大江戸 Ruby 会議04 に参加しました - Programming log - Shindo200

楽しさのでどころ/大江戸Ruby会議04感想 - 反言子

1."legacy" to the "edge".

Hiroshi Shibata さん
写真共有・保存サービス 30days Album の脱レガシー化の話

一年前

  • ruby 1.8.6 → ruby 2.1.0 ?(うろ覚え)

やったこと(一部抜粋)

  • github workflow 導入
  • version up の際に kage で動作確認
    • rails 2.3 で、ほぼ 3.0 とほぼ挙動が同じにようにして update を進めていった
  • rails 2.3 で delayed_job
    • 今まではdeploy が怖かった
    • 金曜に deploy しない、などのバットノウハウ
  • kyototycoon は遅かったので書き換えた
    • memcachd に(?)
    • DB より遅かった

まとめ

  • こまめに jump しましょうという話
    • 技術的負債を一年貯めると、そこから脱却するのに二年かかるかもしれない
    • そうならないように、日々少しづつやっていくしかない

2. "Infrataster - Infra Testing Framework"

Ryota Arai さんから、Infrataster の話。

  • infrataster
    • インフラを「味見する」の意味
    • server の外側から、振る舞いをテストするもの

問題

  • test 書いたけど動かないケースがある
    • apache 書いたけど iptables のせいで、外から繋がらない
  • そもそもそうならないようにテストしたいよね
    • 例えば「この url にアクセスした時、200 が返ってくる」のようなテストを書きたい
    • それ infrataster で!

使い方

  • github に書いてあるはず...

特徴

  • capybara を使ったテストも書ける
    • 途中で request の header を書き換えている
  • mysql_query も投げられる
    • mysql の user がいるかどうかをチェックできたり...

まとめ

  • infrataster を使うと、テスト書いたけど動かないというケースは起こりえない!

疑問

  • dog-fooding って何?
    • 犬の餌?

3. Random Ruby Tips

Winston Teo さんから「30 random ruby and rails tips」

知らなかったこと

  • classにto_proc メソッドを定義して、&クラス名 でプロックを呼び出せる
  • source_locatonメソッド
    • メソッドの実装の箇所を返すメソッド
    • (reflection されている時どうなる?)
  • ruby -run -e httpd . -p 8080 でサーバーが立ち上がる
    • hhpd が無いとダメ
  • rake notes でコメントを表示できる
    • ただし comment を書くときは大文字から

疑問

4. Nobody Knows Nobu

Zachary Scott さんから Nobu さんの話

  • アメリカンジョークが入ってた
    • 喩え話的な話
  • (英語聴きとるのに必死で、ジョークまでついていけてない)

5. 私は如何にして異国でエンジニアとして生き抜いてきたか

Leonard Chin さん

  • 外国で働きたい
    • いいことたくさんある
    • けどやった人は中々いない
  • 2つの問題
    • 言語
      • 足りない
      • 学校に行った
      • 練習すればできる
    • 就業
      • 色々あるけど comunity 最強
  • 生き抜くためには

疑問

  • モチベーションの原点が気になる

6. 画像を壊すこと、OSS 活動をすること、その他

Shimpei Makimoto さん

  • 画像を破壊することをやってる人
    • (詳しい破壊の仕方は発表されてなかった)
    • makimoto/glitched_string
      • 文字列を破壊するメソッド
  • OSS の活動
    • @hsbt に煽られた

感想

  • 謎に記憶に残ってる

7.RubyVM読んでみた

Kawamotoさん

  • RHG の翻訳をやっている
  • 興味の対象
    • RubyVM
    • GC
    • GVL

まとめ

  • なるほど、わからん 状態
    • ruby のコア部分に対する勉強不足が原因
      • C わからん
    • メモリ確保とか、そのあたりの知識も不足している
      • ret が並んでいると、どう便利なの? という根本的なところがわかってない...

感想

  • いい声
  • わからなすぎてモチベーションが上がった
    • ついに C の荒波に揉まれる時がきたか... という意味で
    • タイミング的に丁度いい
      • 最近業務やプライベートでも ruby の実装以外も読めないと、きつくなってきたなぁと思い始めていたので。

8. Ebi & Aaron Patterson

@ebitwin さん

  • communitiy
  • conference
  • keep ruby alive

最初の映像やばい。

まとめ

  • 英語聞き取るのに必死杉パターン
  • うまく言えないけど「愛」は伝わってきた
    • To ruby community
    • To ruby engineer
    • To Aaron

続いて Aaron Pattersonさん
AdquateRecord の話

AdquateRecordとは

  • humanity
    • don't want new feature
  • static な部分を cache させ、より高速化

benchmark

  • 70% fewer
    • trade memory for speed

9. 1年かけてgemを1つ作りました

Kunihiko Itoさんが作成した rgitlog の話

  • rails のアプリケーションで git の commit log を表示できるようにするもの
  • 実演あり
    • 実際に commit が反映されるところまで、ライブコーディング

感想

  • ライブコーディング盛り上がる

10. RFC7159

Shyouhei Urabe さん

資料はこちら
Deeper look at RFC7159 the JSON // Speaker Deck

  • JSON が RFC7159 で新しく変わった
    • library として json を名乗るためには json として厳密に出力しなければならない
  • テスト沢山書いた
    • どういう json が valid, どういう json が invalid
    • これに価値がある、とも。
  • 遅すぎて実用には耐えないもの
    • strict だけど遅い
    • ライブラリを使うのが現実的
      • ただバグはある

まとめ

  • JSON の文字として "\uD800" を含めないようにしたほうが、皆幸せになれる
    • RFC7159 では valid だけれど、これを無視したほうが、parser の処理が早くなるから

11. bundler の話(タイトル忘れた)

Terence Lee さん。Heroku の中の人らしい。

  • チームの紹介
  • bundler 高速化
    • not cacheable → cacheable
    • more memory
      • Marshal.load(File.read(gem.gz))(うろ覚え)
      • large query
        • mysql のクエリがとんでもなく複雑
        • 5 分に一個の gem が誕生している
  • run for volunteer

感想

  • 英語ェ...
  • Marshal.load(File.read(gem.gz)) なんてできるのか...?
    • メモに書いてあったけど、今見ると胡散臭い
    • 後で bundler の実装追っかける
  • gz ファイルを Marshal 化して、それを load する(?) ってアイディアすごい
    • これが本当にできれば確かに早そう
    • cache の面でも通信の面でも
    • 妄想ひろがリング
      • bundler の API サーバーについて
  • run for volunteer

疑問

  • volunteer って言っているけど、OSS って言ってしまえば volunteer な気もする
    • OSS と volunteer の 
    • どういう意図で「volunteer」って単語を使ったのだろうか?

12. Object Bouquet ~ 幸せの花束・RValue のきらめきを添えて ~

sasada家がペアプロして作った作品 「object_bouquet」の発表

object_bouquetとは

  • object の関連性をブラウザで表示してくれるもの
  • 特異クラスの話
  • ruby under a microscope という本の紹介
    • ruby の内部実装をざっくりと解説した書籍らしい

感想

  • 丁度「ruby の内部実装をざっくりと解説した」本が欲しかったので、just answer な気がする

13. Another language you should learn

Ken Nishimura さん

モチベーション

  • 英語で interview したかった

    • 英語で interview しないとジャーナリストとして生き残れない、という危機感
  • 30際の時に休職しサンフランシスコの語学学校に行った

    • 元々 toeic で 900 点くらいだった
    • けど根本がわかってないと気づいた
    • freiends というドラマを1000時間見た
  • 1年後、日本人には無理だと報告した
    • Tens of millions of words
    • 言語学的に構造が違いすぎる
  • 帰国後も勉強を続ける
    • Reijiro
      • Rails アプリを作った
    • Tens of millions of words ほど

悩んだこと

  • 実際にどれだけうまくなっても、インタビューできるのか、わからなかった
    • 前例が無かった。先生もわからない。
  • 続けてると 5 年後くらいにうまくなるよ、という指標が欲しかった

まとめ

  • 始める。遅すぎることはない
  • 文化を学ぶ
  • 動機を持つ
  • 圧倒されない
    • プロセス自体を楽しむ

感想

  • 「実は英語でインタビューは取れるようになった」という結果がすごい
    • それでもまだまだ、らしい

14. mruby hacking guide

Yuki Kurihara さん

  • php に危機を感じた
    • ruby conference に行ってみた
  • asakusa.rb に参加
    • みんな好き勝手やっている
    • 自分も好きなことやってる
  • mruby は cruby と違って blue ocean
  • mruby のパフォーマンス改善の話(実際送った pull request など)
    • String
      • cruby の実装を真似ているらしい
    • Hash
      • Matz に先を越された

感想

  • わかりやすい
    • C がよくわかっていない自分でも、なんとなく理解できた
  • ノリが好きだ

15. Hacking Home

@amatsuda さん

一戸建て建てた時の話とソフトウェア開発との対比的な。

  • 不動産運用
    • 家賃とかは適当
    • 値切られることを見越した家賃設定になっている
    • 17 年ほどで原資回収できれば、かなり良い物件
  • 会的信用は ggられる(フリーランスだと)
    • インターネットでプレゼンスがあると、若干有利になる
    • 借金ができる
  • ウォーターフォールアジャイル
    • ウォーターフォール っぽいところ
      • 発注時点で完成日まで決まる
    • アジャイルっぽいところ
      • 作っていく途中での設計書バグが見つかる
        • こういうことは稀によくある
      • 急な注文
        • やっぱここは窓にして、など

感想

  • 話聞きすぎてメモほとんど無し
    • まとめた内容、大体プレゼンに書いてあった
    • (後でプレゼン資料見ればいいやってなった)
      • 見れるかどうかわからないけど
  • 17 年で原資回収って長い
    • 17 年間、線形に価値が下がっていけばよいが... とか考えてしまう
      • さらに 17 年間安定した住居者がいれば
    • そのリターンは、「安定していて、まとまった収入」という大きい物
      • 大家さんって、ほとんど何もしなくてもいいんじゃね?って考えると、尚更魅力的
    • 何事もトレードオフ

Ruby会議でSQLの話をするのは間違っているだろうか

Minero Aoki さん

  • 並列DB, RedShift を触っている
  • mapreduce 追悼

分散処理する → 分散処理マジムリ(めんどい)

並列DBとは

  • 複数の DB を一つの DB として扱える
  • 型がある
    • shared nothing 型
      • 複数台の DB に被ったレコードが無い
    • (データが被る)型
      • 複数台の DB に被ったレコードがある

特徴

  • node を増やせば線形に早くなる
  • 標準 SQL 使える
  • client からは 1 台見える
  • open source はほぼない
  • 1983 年から実はある(Tera data)

sql or hadoop?

  • win SQL!!
    • SQL 書けても Java 書けない人は多い
    • 既存の SQL と同じように動く
    • MapReduce 関数を書くのは高コスト

Hadoop or 並列RDB?

まとめ

  • 良いものは良いが、知識が偏る
  • 良いものを知るには、両者の境界を越えること

最後

なげぇ...
間違ってるところがあれば、随時直していきます。