20世紀Ruby
- 5. わたしと toruby
メッセージの概要
咳さんが
地元のかたから相談をうけた
アドバイスして欲しいとのこと
どうしよう
そこで親身になって答えた
→そこで親身になって答えた
5
- 7. わたしと toruby
池澤さん、ごめんなさい
結果オーライってことで…
結果オーライってことで
月、torubyスタート
翌3月、月、 スタート
toruby@qwik.jp には4月に参加
には 月に参加
参加したいとずっと思ってました!
参加したいとずっと思ってました
そしていま…
そしていま
7
- 9. わたしと池澤さん
年にストーカー扱い
2007年にストーカー扱い
↓
月にRuby会議で初対面
年 月に 会議で初対面
2008年6月に
↓
しかしもっと前に会っていたらしい
それは20世紀最後の年の出来事
それは 世紀最後の年の出来事
9
- 11. Perl/Ruby Conference
2000-11-29 ~ 2000-12-01
Linux Conference 2000 と同時開催
全体では100を超えるセッション
全体では を超えるセッション
lwall も来た(宴会で隣に座れた :-)
も来た 宴会で隣に座れた
とにかく、すごいお祭り
プログラムが7ページもある
プログラムが ページもある
ここに貼れない
11
- 14. 今日の話題
torubyのみなさんの参考になりたい
のみなさんの参考になりたい
のみなさんの
の集まりなので
Rubyの集まりなので
話題はRuby
話題は
勉強会なので
勉強するときの指針
縁のある20世紀末 あたり)をネタに
世紀末(あたり
縁のある 世紀末 あたり をネタに
14
- 17. の話題(再掲
の話題 再掲)
Perl/Ruby Conferenceの話題 再掲
との比較、対決
Perlとの比較、対決
入門
サーバサイドプログラミング
GC
移植
Unit Testing, Pair Programming
ワンライナー対決
17
- 20. 日用品として楽しい
文字列操作
正規表現からスクレイピングまで
ファイル操作
検索、変換、集約
プログラムジェネレータ
Gnuplot とか HTML とか
ワンライナー
20
- 21. 日用品として楽しい例
年頃)
年頃
gpv (1998年頃
Gnuplot の plot3d を vi 風のキー
でくるくる回す
Gnuplot はグラフ作成インタプ
リタ
TTY を raw モードにしてキー入力
を gnuplot にコマンドを送る
21
- 22. gpv に至る道
もともとすごく面倒でいやだった
Ruby のサンプル観ていたらキー
ボードを読む方法がわかった
Gnuplot に渡すにはパイプを使う
のようなものを書いた
Open3 のようなものを書いた
要素技術さえ知れば可能
グルー的な利用法
22
- 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
- 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
- 35. 数学が楽しい例
年頃)
年頃
combinatoria.rb (2003年頃
順列、組み合わせなど初等的
数やPartition数なども
数や 数なども
Stirling数や
外部イテレータ
パズルを解くのに便利
Combinatics という名前は使われ
ていた(原さんに原さんに)
ていた 原さんに
35
- 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