20世紀Ruby
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

20世紀Ruby

on

  • 3,369 views

Talked at tochigirubykaigi01 on 21st Feb 2009

Talked at tochigirubykaigi01 on 21st Feb 2009

Statistics

Views

Total Views
3,369
Views on SlideShare
3,113
Embed Views
256

Actions

Likes
2
Downloads
10
Comments
0

5 Embeds 256

http://d.hatena.ne.jp 240
http://okyuu.com 10
http://webcache.googleusercontent.com 3
http://www.slideshare.net 2
http://static.slideshare.net 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

20世紀Ruby Presentation Transcript

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