20世紀Ruby
20世紀Ruby
  世紀
 ごとけん Gotoken
後藤謙太郎 / 株式会社シングラム
 Kentaro Goto / Syngram Co. Ltd.

               1
こんにちは

 あこがれの toruby に
 ついに参加
 しかも講演者
 大変光栄です
 よろしくおねがいします


          2
わたしとtoruby
わたしと

  実はたいへんに昔から関係
    から
  BTから
    BT: before toruby
    っていつ
    っていつ?
        いつ
    紀元:
    紀元 toRuby1st...
わたしとtoruby
わたしと

  とあるSNSにメッセージがきた
        にメッセージがきた
  とある




             4
わたしと toruby

  メッセージの概要
   咳さんが
   地元のかたから相談をうけた
   アドバイスして欲しいとのこと
   どうしよう
   そこで親身になって答えた
  →そこで親身になって答えた

             ...
わたしと toruby

  全力で親身の回答




              6
わたしと toruby

  池澤さん、ごめんなさい
      結果オーライってことで…
      結果オーライってことで
      月、torubyスタート
  翌3月、月、      スタート
  toruby@qwik.jp には4...
とちぎRuby
とちぎRuby
会議01
会議01
   8
わたしと池澤さん

     年にストーカー扱い
 2007年にストーカー扱い
       ↓
       月にRuby会議で初対面
     年 月に    会議で初対面
 2008年6月に
       ↓
 しかしもっと前に会っていた...
Perl/Ruby
 Conference
     10
Perl/Ruby Conference

  2000-11-29 ~ 2000-12-01
  Linux Conference 2000 と同時開催
  全体では100を超えるセッション
  全体では         を超えるセッション
...
スピーカー
Perl/Ruby Conferenceスピーカー

  まつもとゆきひろ、原信一郎、前田
  修吾、後藤謙太郎、木山真人、わ
  たなべひろふみ、吉田正人、関将
  俊、助田雅紀、石井勝、やまだあき
  らさん
   敬称略、順不...
の話題
Perl/Ruby Conferenceの話題

      との比較、対決
  Perlとの比較、対決
  入門
  サーバサイドプログラミング
  GC
  移植
  Unit Testing, Pair Programming
 ...
今日の話題

 torubyのみなさんの参考になりたい
       のみなさんの参考になりたい
       のみなさんの
       の集まりなので
   Rubyの集まりなので
     話題はRuby
     話題は
   勉強会な...
今日の材料



Rubyのいろ
    のいろ
いろな楽しみ
        15
今日話したいこと



やってよかっ
たなとおもう
こと         16
の話題(再掲
                    の話題 再掲)
Perl/Ruby Conferenceの話題 再掲

      との比較、対決
  Perlとの比較、対決
  入門
  サーバサイドプログラミング
  GC
  移植
...
のいろいろな楽しみ
Rubyのいろいろな楽しみ

 日用品として楽しい
 ネットワーキングが楽しい
 Mix-in が楽しい
 数学が楽しい
 みんなに使われて楽しい


         18
お題1
お題




日用品
      19
日用品として楽しい

 文字列操作
  正規表現からスクレイピングまで
 ファイル操作
  検索、変換、集約
 プログラムジェネレータ
  Gnuplot とか HTML とか
 ワンライナー
         20
日用品として楽しい例

          年頃)
          年頃
 gpv (1998年頃
   Gnuplot の plot3d を vi 風のキー
   でくるくる回す
     Gnuplot はグラフ作成インタプ
     ...
gpv に至る道

 もともとすごく面倒でいやだった
 Ruby のサンプル観ていたらキー
 ボードを読む方法がわかった
 Gnuplot に渡すにはパイプを使う
       のようなものを書いた
 Open3 のようなものを書いた
 要素技...
お題2
お題




ネットワー
キング
      23
ネットワーキングが楽しい

           が簡単
 TCPServer が簡単
      だと1ページくらいの内容が
          ページくらいの内容が1行
    C だと ページくらいの内容が 行
       が簡単
 d...
ネットワーキングが楽しい例

                     原形2002年)
                     原形    年
 WEBrick::HTTPProxy (原形
  もとは yomuxy のために作成
    ...
WEBrick::HTTPProxy

  原形は straw.rb という名前
    細いパイプみたいなもののつもり
  最初のが動くまで3時間くらい
  最初のが動くまで 時間くらい
  yomuxy は確か1日くらい
         ...
最近はいろんなことがさらに簡単

 gem 偉大
          ポストの時刻を見たい
   Twitterポストの時刻を見たい
                       っていついつ?
    about 3 hours ago って...
お題3
お題




      28
Mix-in が楽しい

  Mix-in って
     多重継承の代わり
     メソッドや定数を付け加える方法
  class Foo
     include M
  end

              29
Mix-in が楽しい例

                     年頃)
                     年頃
  product.rb (2002年頃
     product は直積のこと
     多重ループでは頻出
   ...
product.rb

   配列だけでなく、Enumerable ならな
   配列だけでなく、
   んでもいいはず
   直積があるとできること
    多重ループがきれいに
    enum*enum == enum**2
    (e...
の実装
product.rbの実装

  直積の要素を直接持っちゃうと大き
  すぎる
  そこで外部イテレータ
     継続を
     継続を使った実装
     遅い orz
     いまなら Enumerator で
  1.9 で...
お題4
お題




      33
数学が楽しい

 いまひとつ発達してない
 そもそもRubyと相性いいのか謎
 そもそも    と相性いいのか謎
 だからこそやることはやまほどある
 問題の宝庫
 最後のフロンティア
 数値計算はかなり発達してる
  電脳Ruby、BioRu...
数学が楽しい例

                      年頃)
                      年頃
 combinatoria.rb (2003年頃
   順列、組み合わせなど初等的
           数やPartiti...
お題5
お題




みんなに
使われて
      36
みんなに使われて楽しい

 書いて満足することももちろんある
 でも使われるとまたちがった楽しさ
  まちがいの指摘
  友達ができたり




        37
みんなに使われて楽しい例

                   年
 benchmark.rb (1999年)
   実行時間を測定する関数
  たぶん後藤の書いたもので実行
  回数最多
        がリクエストごと呼ぶので
   Ra...
ベンチマーク祭り

 アナグラム探し (2000年)    年
                  ~
  [ruby-talk:8142]~
  文字の入れ替えでできる別の単
  語を探す速い方法は?
  語を探す速い方法は?
  ものすごい...
そろそろ




       40
やってよかったなとおもうこと

 とにかくうごくものをつくる
  カッコよさはあとで追及
 ふだんから基礎的な修行をする
  Stevens を読む
 ひとにみてもらう
  サンプルを書く

         41
よくなかったなと思うこと

 メンテナンスしてない
  いま動かないものも結構ある
 つかいもしない機能
  無駄な時間、メンテコスト増える
 バックアップ取ってなかった事件
  yomuxy はもう動かせない><

         42
まとめ

 いろんな楽しみ方がある
 小さなものを書いて人にみせる
       すばらしい
 torubyすばらしい
 ありがとうございました




       43
Upcoming SlideShare
Loading in …5
×

20世紀Ruby

2,069
-1

Published on

Talked at tochigirubykaigi01 on 21st Feb 2009

0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,069
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
11
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

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

×