Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

20世紀Ruby

2,370 views

Published on

Talked at tochigirubykaigi01 on 21st Feb 2009

  • Be the first to comment

20世紀Ruby

  1. 1. 20世紀Ruby 20世紀Ruby 世紀 ごとけん Gotoken 後藤謙太郎 / 株式会社シングラム Kentaro Goto / Syngram Co. Ltd. 1
  2. 2. こんにちは あこがれの toruby に ついに参加 しかも講演者 大変光栄です よろしくおねがいします 2
  3. 3. わたしとtoruby わたしと 実はたいへんに昔から関係 から BTから BT: before toruby っていつ っていつ? いつ 紀元: 紀元 toRuby1st = 2007-03-28 それは 2007-02-07 の出来事 3
  4. 4. わたしとtoruby わたしと とあるSNSにメッセージがきた にメッセージがきた とある 4
  5. 5. わたしと toruby メッセージの概要 咳さんが 地元のかたから相談をうけた アドバイスして欲しいとのこと どうしよう そこで親身になって答えた →そこで親身になって答えた 5
  6. 6. わたしと toruby 全力で親身の回答 6
  7. 7. わたしと toruby 池澤さん、ごめんなさい 結果オーライってことで… 結果オーライってことで 月、torubyスタート 翌3月、月、 スタート toruby@qwik.jp には4月に参加 には 月に参加 参加したいとずっと思ってました! 参加したいとずっと思ってました そしていま… そしていま 7
  8. 8. とちぎRuby とちぎRuby 会議01 会議01 8
  9. 9. わたしと池澤さん 年にストーカー扱い 2007年にストーカー扱い ↓ 月にRuby会議で初対面 年 月に 会議で初対面 2008年6月に ↓ しかしもっと前に会っていたらしい それは20世紀最後の年の出来事 それは 世紀最後の年の出来事 9
  10. 10. Perl/Ruby Conference 10
  11. 11. Perl/Ruby Conference 2000-11-29 ~ 2000-12-01 Linux Conference 2000 と同時開催 全体では100を超えるセッション 全体では を超えるセッション lwall も来た(宴会で隣に座れた :-) も来た 宴会で隣に座れた とにかく、すごいお祭り プログラムが7ページもある プログラムが ページもある ここに貼れない 11
  12. 12. スピーカー Perl/Ruby Conferenceスピーカー まつもとゆきひろ、原信一郎、前田 修吾、後藤謙太郎、木山真人、わ たなべひろふみ、吉田正人、関将 俊、助田雅紀、石井勝、やまだあき らさん 敬称略、順不同) 敬称略、順不同 (敬称略、順不同 12
  13. 13. の話題 Perl/Ruby Conferenceの話題 との比較、対決 Perlとの比較、対決 入門 サーバサイドプログラミング GC 移植 Unit Testing, Pair Programming ワンライナー対決 13
  14. 14. 今日の話題 torubyのみなさんの参考になりたい のみなさんの参考になりたい のみなさんの の集まりなので Rubyの集まりなので 話題はRuby 話題は 勉強会なので 勉強するときの指針 縁のある20世紀末 あたり)をネタに 世紀末(あたり 縁のある 世紀末 あたり をネタに 14
  15. 15. 今日の材料 Rubyのいろ のいろ いろな楽しみ 15
  16. 16. 今日話したいこと やってよかっ たなとおもう こと 16
  17. 17. の話題(再掲 の話題 再掲) Perl/Ruby Conferenceの話題 再掲 との比較、対決 Perlとの比較、対決 入門 サーバサイドプログラミング GC 移植 Unit Testing, Pair Programming ワンライナー対決 17
  18. 18. のいろいろな楽しみ Rubyのいろいろな楽しみ 日用品として楽しい ネットワーキングが楽しい Mix-in が楽しい 数学が楽しい みんなに使われて楽しい 18
  19. 19. お題1 お題 日用品 19
  20. 20. 日用品として楽しい 文字列操作 正規表現からスクレイピングまで ファイル操作 検索、変換、集約 プログラムジェネレータ Gnuplot とか HTML とか ワンライナー 20
  21. 21. 日用品として楽しい例 年頃) 年頃 gpv (1998年頃 Gnuplot の plot3d を vi 風のキー でくるくる回す Gnuplot はグラフ作成インタプ リタ TTY を raw モードにしてキー入力 を gnuplot にコマンドを送る 21
  22. 22. gpv に至る道 もともとすごく面倒でいやだった Ruby のサンプル観ていたらキー ボードを読む方法がわかった Gnuplot に渡すにはパイプを使う のようなものを書いた Open3 のようなものを書いた 要素技術さえ知れば可能 グルー的な利用法 22
  23. 23. お題2 お題 ネットワー キング 23
  24. 24. ネットワーキングが楽しい が簡単 TCPServer が簡単 だと1ページくらいの内容が ページくらいの内容が1行 C だと ページくらいの内容が 行 が簡単 dRuby が簡単 プロトコルを設計しなくていい も簡単 WEBrick も簡単 デバッグにも便利 24
  25. 25. ネットワーキングが楽しい例 原形2002年) 原形 年 WEBrick::HTTPProxy (原形 もとは yomuxy のために作成 Kakasi の学年別オプションパッ 馬場肇さん)をつかった読み チ(馬場肇さん)をつかった読み (馬場肇さん 下し proxy このパッチは現在入手不能 が 対応など gotoyuzoがCONNECT対応など 25
  26. 26. WEBrick::HTTPProxy 原形は straw.rb という名前 細いパイプみたいなもののつもり 最初のが動くまで3時間くらい 最初のが動くまで 時間くらい yomuxy は確か1日くらい は確か 日くらい ブラウズ履歴を共有するproxyなど など ブラウズ履歴を共有する 作って経験値を高めた いまでも短い(288行8391バイト バイト) いまでも短い 行 バイト 26
  27. 27. 最近はいろんなことがさらに簡単 gem 偉大 ポストの時刻を見たい Twitterポストの時刻を見たい っていついつ? about 3 hours ago っていつ しらべたらなんか簡単らしい sudo gem install twitter からサ ンプルいじって30分くらい ンプルいじって 分くらい いまでもつかってる 27
  28. 28. お題3 お題 28
  29. 29. Mix-in が楽しい Mix-in って 多重継承の代わり メソッドや定数を付け加える方法 class Foo include M end 29
  30. 30. Mix-in が楽しい例 年頃) 年頃 product.rb (2002年頃 product は直積のこと 多重ループでは頻出 {1,2} × {3,4} = {(1,3), (1,4), (2,3), (2,4)} [1,2].each{|i| [3,4].each{|j| 30
  31. 31. product.rb 配列だけでなく、Enumerable ならな 配列だけでなく、 んでもいいはず 直積があるとできること 多重ループがきれいに enum*enum == enum**2 (enum**3).each{|i,j,k| 31
  32. 32. の実装 product.rbの実装 直積の要素を直接持っちゃうと大き すぎる そこで外部イテレータ 継続を 継続を使った実装 遅い orz いまなら Enumerator で 1.9 では Array の組み込みメソッド 32
  33. 33. お題4 お題 33
  34. 34. 数学が楽しい いまひとつ発達してない そもそもRubyと相性いいのか謎 そもそも と相性いいのか謎 だからこそやることはやまほどある 問題の宝庫 最後のフロンティア 数値計算はかなり発達してる 電脳Ruby、BioRuby など 電脳 、 34
  35. 35. 数学が楽しい例 年頃) 年頃 combinatoria.rb (2003年頃 順列、組み合わせなど初等的 数やPartition数なども 数や 数なども Stirling数や 外部イテレータ パズルを解くのに便利 Combinatics という名前は使われ ていた(原さんに原さんに) ていた 原さんに 35
  36. 36. お題5 お題 みんなに 使われて 36
  37. 37. みんなに使われて楽しい 書いて満足することももちろんある でも使われるとまたちがった楽しさ まちがいの指摘 友達ができたり 37
  38. 38. みんなに使われて楽しい例 年 benchmark.rb (1999年) 実行時間を測定する関数 たぶん後藤の書いたもので実行 回数最多 がリクエストごと呼ぶので Railsがリクエストごと呼ぶので お祭りでもつかった ベンチマーク祭り →ベンチマーク祭り 38
  39. 39. ベンチマーク祭り アナグラム探し (2000年) 年 ~ [ruby-talk:8142]~ 文字の入れ替えでできる別の単 語を探す速い方法は? 語を探す速い方法は? ものすごい盛り上がった まとめ→極めよ 極めよRuby道 第8回 まとめ 極めよ 道 回 『C MAGAZINE』2001年3月号 』 年 月号 http://www.notwork.org/~gotoken/mag/cmagazine/gokudo/8th/ 39
  40. 40. そろそろ 40
  41. 41. やってよかったなとおもうこと とにかくうごくものをつくる カッコよさはあとで追及 ふだんから基礎的な修行をする Stevens を読む ひとにみてもらう サンプルを書く 41
  42. 42. よくなかったなと思うこと メンテナンスしてない いま動かないものも結構ある つかいもしない機能 無駄な時間、メンテコスト増える バックアップ取ってなかった事件 yomuxy はもう動かせない>< 42
  43. 43. まとめ いろんな楽しみ方がある 小さなものを書いて人にみせる すばらしい torubyすばらしい ありがとうございました 43

×