おまぬけ活動日誌

最近のツッコまれどころ

この日誌から Google してもらう


2014年04月19日(Sat) 大江戸Ruby会議04 [長年日記]

以前おいしい朝食のついてきたホテルのチェーンに泊まったら朝食の劣化がひどくてがっかり。まあコストの削減が必要なんだろうね。気を取り直して江戸東京博物館まで歩きました。

[Ruby][oedo04] 大江戸Ruby会議04

(ここ以下の記事は2014年7月になってから書いてます。遅い。メモからの再録ですので、抜けがあるほか、zundaによる誤りが含まれている可能性が高いです。ご了承ご指摘ください。)

かくたにさんによると、

asakusa.rb
世界中のどこかのアサクサに集まる
大江戸Ruby会議
生活発表会

とのこと、皆さんの様々な生活について勉強させていただきました。

From Legacy to Edge

@hsbtさんによる発表。Speker DeckYouTube

やっていること

  • 30d.jp - 450TB、1TB/day、250GBのデータベース
  • IRC - お金をはらうユーザーが居たらスシを並べる
  • 4 deploy/day (Hubot)
  • 不要なコードを消すのがお仕事

2年前に入社した時のRuby 1.8.6/Rails 2.0.2からRuby 2.1.1/Rails 4.0.4への移行。 「動いてるんだから放っておけよ」と「バージョン入れるだけで速くなる」との戦い。 使えるRubyのバージョンと使えるRailsのバージョンには相関がある。 Rubyはバージョンが上がるにつれて速くなり、 Railsはバージョンが上がるにつれて遅くなる。 cookpad/kage (シャドウプロキシ) によるテスト。 本番環境へのリクエストをテスト環境にコピーしてくれる。

まずRails 2.3へ。Rails 3.0と同様に使えるようにバックポートし、 bundlerやrackを使えるようにした。

次にRubyを1.9.3から2.1.1へ。毎日trunkを追いながら。

Ruby 2.0から2.1へ。CPU負荷とレスポンスタイムが下がり、メモリ使用量は上がった。 Hash#rejectにregressionがあるので注意が必要(Rails 3.2は走らない、Rails 4.0なら走る)。

Rails 3.2を4.0へ。遅くなった。

Rails 4.0から4.1へ。ちょっと速くなった。 バージョンアップに追随しなかった期間と追随するのに必要な期間との関係:

放置期間作業時間
1ヶ月3時間
1年2年

Ruby 2.1から2.2へ。いろいろ入りこむと、自分のやりたいことが自分でできるようになって、おすすめです。

Infrataster

「大場派の若者」あらいさん。Speaker DeckYouTube

GitHbu trends - RSSで見られるようになった。

git-commit-autouser - リモートのURLによってauthorが変化する。

Infratester - 外側からサーバのふるまいをテストする。 Infrastructre as a code。

  1. サーバースペックでテストを書く
  2. chef cook book等を書く
  3. 十分になるまで最初から繰り返す
  4. できる

サーバースペックでできない項目もある。

Random Ruby Tips

香港からWinstonさん。rubyasia.comSpeker DeckYouTube

Nobody Knows Nobu

@_zzakさん。Speker DeckYouTube

わたしたちはみんなノブのように
いっしょうんめいになるべきですよ

みなさんのRubyをよくするために

Q&Aより:

  • 1缶で2-3個バグをまわす
  • 長いのは1ヶ月
  • シラフでもコードを書ける

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

レオさん。YouTube

異国で働くことの問題 - 言語、仕事に就くこと。

言語の問題は、単に住むだけでは解決しない。 学校に行ったり資格を取るのもいまいち。 99%実践、1%勉強。

仕事に就くには、paijob.com、gaijinpot.com、リクナビなどはいまいち。 ネットワークを作るのが大切。Tokyo Rails Meetupとか。

それ以外に、文化も大切。スラング、ジョーク、画像、何が好きか。

encounter→enbrace→learnの繰り返し。

語彙がわからない、ネタがわからない、英語に触れる機会がない→ ネット文化を活用する。Redditを活用する。 ネタ、コミュニティのコミュニティ、生きている英語。 subredditから自分の興味のあるところを探す。

AMA
Ask Me Anything
TIL
Today I Learned
ELI5
Explain Like I'm Five

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

@makimotoさん。YouTube

OSSを使う→なおす、かく。

Glitched string。"ねむい".glitch

自分の好きなものを作って公開する、壊れているもの、中途半端なものを直す。 グリッチ駆動開発。

RubyVM読んでみた

kawamotoさん。Speaker Deck

RHGの翻訳なども。Ruby Hacking Guide Translation

RHGは第二部が好き。これがなかったらVMは読めなかっただろう。

今のおすすめは、Rubyとmrubyを同時に読んでいくこと。

Ruby Beyond the Language

@ebitwinさん。YouTube

様々なコンファランスへの参加。Comfort zoneから出ていき、connectionをつくる。

Future of code

アーロンさん。

ActiveRecordをforkしてAdequateRecordをつくりました。 「Make what we love better」

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

@kunitooさん。Speaker DeckYouTube

代表作がなにか欲しいと思って作ったraitlog。今なら20分で。

あたらしいジェイソンのはなし

うらべさん。YouTubehttps://rubygems.org/gems/RFC7159

JSONのRFCの新しいのが出た。RFC7159。

raccでRFCのBNFをだいたい対応するように翻訳できる。

テストケースは言語に依存しないようにした。これがウリ。

不正なUTF-8バイト列を受け取るようにすると遅くなる。 規格では受け取れないようにしてもいいのではないだろうか。

A Histroy of Fetching Specs

@hone02さん。YouTube

bundler core - history of dpendency specs。

名前とバージョンのタプルのアレイだった。 依存性の記述はない。が、gemspecには依存性がある。 すべてのgemspecの情報が入っていてメモリに乗っているので遅い。

Dependency API。gemの名前、バージョン、直接の依存性。 しかし、キャッシュできない、ツリー構造のデータを解かないといけない。

New Index Format。names.list、versions.list、deps/* (例えば、deps/nokogiri)。 lMarshallより小さくなった。興味のない情報は読まなくてよい。

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

ささださんご夫妻。YouTube

オブジェクトの関係を観察するツール。ブラウザー、d3.jsのSVGキャンパス。 ObjectSpace.reachable_objects_from(obj)。 子クラスを作ったりすると、Internal objectが見えることがある。 Ruby Under a Microscope (oreilly.com)。

Another Language You Should Learn

西村さん。YouTube

たくさん読んでたくさん聴く。
たくさんやらなきゃできるようにならない。
ちょっとずつちょっとずつやるんだ。

mruby hacking guide

@_ksss_さん。Speaker DeckYouTube

「Contributeすることはvery easyだ」(@_zzakさん)。 「好き勝手やっていいんだ」

Rubyの実装は宝の山。考えぬかれたアルゴリズム。

良いプログラマはデータ構造を気にする。

Hacking (My) Home

松田さん。Speaker DeckYouTube

家の売却 - 資産計画書の見積り。

借金するのにサラリーマンじゃないと、銀行はインターネットを調べる。 担当の人がるびまを読んでるとか、2つの世界は地続きだった。

設計図リーディング。 建築業界は進んでいて、ウォーターフォールとアジャイルがうまくバランスしている。

Ruby会議でSQLの話

青木さん。slideshareYouTube

1998年からRuby、2007年からTeradata (1983年からある会社だ!)、 2014年からCookpadでAmazon Redshift。ビッグデータの人。

100TBのデータを並列RDBにつっこむ。

2005年のHadoop (MapReduce)

Hive SQL interface
MapReduce (Java)
HDFS (分散ファイルシステム)

コストの高いMapReduceは捨たれて、Impala/Stingerに。 何でも書けるHadoopと速い並列RDBとのハリブリッドに。

MapReduceは並列処理にJavaやCをはさみこめる。

「よいものはよい」しかし知識が偏在している。境界を越えていく必要。

エンタープライズ
OSS
Aster
Ruby

「新たな壁を発見して、そこを越えていったらいいんじゃないでしょうか」 日本語/英語。Ruby/Python/PHP。


作り手とその取り巻きだけが楽しんでる間は本物じゃない。その中身が理解できない人々の生活を変えてこそ本物だ


zunda <zunda at freeshell.org>