@kyanny's blog

My life. Opinions are my own.

大江戸Ruby会議01に行ってきた

大江戸Ruby会議01 - Regional RubyKaigiに行ってきた。 Asakusa.rb の皆様、発表者の皆様、ありがとうございました。とても楽しかった。以下、例によって感想をつらつらと。

100.times { Asakusa.rb.meetup! }, @a_matsuda

コミュニティとは、みたいな話が聞けたのがよかった。自分が勉強してスキルアップしたい、ではなくて、 Ruby や Ruby を取り巻くもの(もちろん人も)に関心があるひとたちの集まり、という。 Asakusa.rb のような「コミュニティ」にはもともと憧れがあって、いいなーでも家からも職場からも遠いし・・・とか思っていたんだけど、一度行ってみたいと思ったし、それ以上に「じゃあ自分が近場で仲間を集めて何かすればいい」と強く思った。で、懇親会や帰り道で @mori_dev さんと @1syo さんにそれぞれ別にそういう話を振ってみたらふたりとも乗り気になってくれて、じゃあ Shibuya.rb ならぬ Shibuya Rubyist Power Lunch をやりますか!という話が持ち上がって大変楽しみになってきた。

Ruby 処理系の構想(妄想), 笹田耕一

理想の Ruby 処理系とは、という話。 4/1 のネタバレが聞けて良かった(おれの残念すぎる C 言語読解力ではあのパッチのどこが笑いどころなのか理解できなかった)自分が知らない分野でもいろいろ研究開発は進んでいるのだなーと思った。型つき Ruby はなんとなく良さそうな印象を持った。 Scala とか、型はいるよね派が台頭してきたこともあるし。やっぱ必要だからある(けど全部面倒みるのはだるいので推論で楽したい)という流れがきているし。

大江戸HTTPクライアント絵巻

いろいろあるんだなーと(net/http と open-uri くらいしか使ったことない) SSL をやろうとすると候補が減る、とかは頭の片隅に置いておきたい。

RailsとCで作る大量広告配信システム

今回お目当てだった発表の一つ目。一番重要な配信サーバは結局 C で書くのねー、というのがわかって、ああーやっぱりそうなのか、と。そこよりもむしろ集計の仕組みのほうが興味深かった。 Apache の combined/extended 書式のログはパースしづらい、という話は前に読んだことがあるし実際自分もそういうプログラムを書いたときに苦労した覚えがあって、だから TSV にして扱いやすくするとかは常套手段だよねー、というところまでは知っていたんだけど、もっと処理しやすい独自フォーマットを使うという発想はなかったので、もし今後そういうことをする機会があったら考えてみたい。あとログの集計も、ひとつの集計プログラムで一度に全部の仕事をするのではなく、中間形式に一回コンバートして最後にマージする、みたいなのは、実際に業務で大量のログをさばくときにすごく有効そうだなあと思った。 Haddop 使うほどでもない、とか、導入にいろいろ障害が、とかいうケースでも、考え方とかアーキテクチャを知っていれば応用がきく部分だと思うので、これも参考になった。あと ActiveSccafold は知らなかったので調べてみよう。

"mission critical"なシステムでも使える Thread の作り方

スレッドの監視とかスレッドで無限ループしてるプログラムのテスト方法についての話。これはコードが多く、じっくり読んだり動かしてみたりしたいので資料公開に期待したい。話を聴いてた限りでは、おれはスレッドプログラミングの経験はほとんどないけど(趣味でちょっとだけサンプルを打ち込んだ程度)考え方としてはオーソドックスな手法なのかな、と。あとウェブ屋っぽい発想で「なぜプロセスのフォークではなくスレッドを選んだのか」という質問をしたら、実際の環境では100スレッド * 100プロセスで合計10,000スレッド走ってる、という回答で、すいませんでしたって感じだった。

エンドツーエンドテストはCapybaraにお任せ!

テストの話。WEB+DB PRESS Vol.61の特集に書いてあった内容とだいたい似てる感じだなーと思った。「エンドツーエンドテストはレイヤではなく手法、やり方の話なんだ」といっていた。おれももっとテストたくさん経験積んだらピンとくるのかな。あと終了後にお賽銭箱のところで柴田さんに挨拶したら、何年も前にサイボウズ・ラボ(オフィス移転前)に遊びに行ったときに一度お会いしたことを覚えていてくださって、なんか嬉しかった。

RubyにおけるClean Code戦略

今回お目当てだった発表の二つ目。 @ukstudio さんとはお会いしたことがなかったけど、http://ukstudio.jp/posts/2010/01/31/programmer_is_severe_job/というブログを読んで、すごく共感したことがあって、あと発表のテーマである「コードの質」みたいな話題にもおれは関心があるので、ぜひ聞きたい話だった。15分枠ではちょっと物足りなかったな、と思ったら帰りに @1syo さんに「Railsconf の動画をみるといいよ」と教えてもらったのでこれもチェックしておきたい。話の内容はやっぱり「個人がスキルを身につけて、熱意を持ってリファクタリングを頑張れ」という(とりあえずの)結論で、まぁそうだよなぁと。キーワードを抜き出しておくと、「ボーイスカウト・ルール(来たときよりも美しく)」「ストーリー・チケット & リファクタリング(近い部分をリファクタリングする)」「SOLID 原則」「オープン・クローズド戦略?(拡張に対して開かれている、変更?に対してとじている)」「Ruby らしい設計」「チーム内で Ruby らしいコードについてもっと議論する」とか。最後の二つは特に共感できて、コードについて話し合われてないプロジェクトのコードは汚れるね、という。やっぱり関心もってる人がいなければ質があがるわけないんだよなぁ。変えられるのは自分だけ、だし、自分が変えていかなきゃ誰もやらない。こういう話も、別に Ruby に限らず、言語によらない普遍的な話題だと思うのだけど、なんとなく Rubyist はこういう話題にも関心が高い印象があって、だから Rubyist ともっといろんな雑談をしたいなーと思っていたところでさっき書いた「渋谷界隈の Rubyist で何かやる」につながる、と。

高速なテストサイクルを回すには

テストサイクルをはやくするための方法論とテクニック。 prefetch-rspec の説明いまいち聞きそびれたのでこれもチェックしたい。あと、やっぱりこういうときに RSpec というメジャーなものを選んでおくと恩恵が受けられるのは強みだよなーと、 Test::Unit + Shoulda なおれは思った。長いものには巻かれろ、は一理あるよなぁと。あと watchr もチェックチェック。それから REE は良さそうだなーと思った。 remote-spec も公開されたらみてみたい。

懇親会など

休憩時間も懇親会もいろいろな方とお話させてもらった。ありがとうございました。 @ogijun さんに直接「WEB+DB PRESS Vol.61の Facebook OAuth 2.0 の記事が分かりやすくてよかった」と伝えられたのはよかった。アンケートに書きそびれたけどもし技評の方がこれを読んでいたら、今後もああいう記事載せて欲しいです。 @junya さん @mochiz さんとは Fjord さんのオフィスでちらっとお会いした時にあまりゆっくり話せなかったので、 pow おもしろいですねーとか話ができてよかった。ミヒャエルさんともお会いして、会場だった江戸資料館は子供の頃きたことがあったけど面白いですよ、と話をした。会場への道すがらでは、しのださんとプチ下町トークで盛り上がった。あと @1syo さんとは何故か前にブログに書いたことがある(らしい)「彼女・奥さんのぬいぐるみに愛着がわいてしまった話」で大いに盛り上がった。あんなしょうもないことでも、読んでもらえてこうやって意外な反応がもらえるのは嬉しいことだ。

懇親会では @a_matsuda さんと英語できるようになりたいですねー、みたいな話をしたり、 @mori_dev さんにまたいろいろ教えてもらったりとか。彼はおれよりずいぶん若いはずだけど、ブログや Twitter のアウトプットをみていても、話を聞いてみても、学ぶところが多いなーといつも思う。あと毎度ながらおれはミーハーなので @shyouhei さんに「ブログ読んでます、『おまえら』っていう呼びかけとか独特の文章のセンスが好きなのでこれからも更新してください」とファンレターならぬファンメッセージを伝えることができた(プレッシャーだなぁ、と苦笑されてしまったが)あと @takkanm さんに「懇親会の料理大丈夫でしたか」と気を使わせてしまってすいませんでした(以前 railstokyo の懇親会で肉をあまり積極的に食べないという話をしたのを覚えてくださっていた)大丈夫です、一口食べてとても美味しかったので全部食って帰ろうと腹を決めました。あと @hotchpotch さんとも何か喋った覚えがあるんだけど脳のメモリから溢れました・・・。他にもいろいろお話させてもらった覚えはボンヤリと。なんか Rails がスレッドセーフじゃないのはどうなんだとか、なんとか・・・。

実は Ruby 会議と名のつくものに参加したのはこれが初めてで、去年夏の Rubykaigi は二日間のチケットを購入済みだったにもかかわらず体調不良で(手術前で一番不安定な時期だった)家で寝こんでいて不参加だった。転職して Rubyist を名乗るようになって一年以上たって、ようやく念願だった Ruby 会議に参加できて嬉しい。規模とか、 Asakusa.rb meetup がベースにあるということも影響しているのだと思うけど、手作りのぬくもり、みたいなものがあるイベントだったと思う。拍手も心持ち暖かかったような。なんか、 @miyagawa さんが日本にいたころの YAPC::Asia (2006 とか) の頃の Perl コミュニティっぽさを感じて、すごく懐かしい感じがした。みんなで椅子片付けたりとか。

そして。「渋谷界隈の Rubyist で何かやる」話を Twitter でつぶやいていたら、あの Asakusa.rb ファウンダーが

とおっしゃっていたので、これはもうやるしかないですよね!ということで、最初は近場に勤めてるひと数名でランチ、とかになりそうだけど、なんかやります。やったらまたブログに書きます。

ボンヤリと、こんなのがあるといいなーというアイデアはあって。中学生とか高校生の頃、学校で「昨日のテレビみた?面白かったよねー」みたいな話をしたじゃないですか(おれは友達が少なかった上に当時はやってたテレビをあまり見てなかったのでリアルで経験したことは少ないのだけど)ああいう他愛もない話って、「同じクラス」とか「同じ部活」という属性で小さなコミュニティに属しているひと同士で話すことに意味があって、話題はなんでもいいんですよね、たいしたトピックがなくてもちゃんと会話できるという。そういう感じの気軽な何かを、 Rubyist という属性をもった人同士でやったら、みんなそれなりにお互い関心を持てる話題があるんじゃないかなーと、妄想していて。そうやって一時間二時間だべってるだけでも、そこに居合わせた人は何らかの刺激を受けるし、何気ない一言が誰かにとってはすごく重要な意味があったり、なんてこともあるだろう、と。まぁ Ruby 好きなひとたちが集まって話すだけでもそれなりに楽しいんじゃね?くらいの軽い気持ちです、ハイ。