1000speakers仙台
DESCRIPTION
TRANSCRIPT
![Page 1: 1000speakers仙台](https://reader033.vdocuments.site/reader033/viewer/2022052522/54bd19134a7959ff308b468f/html5/thumbnails/1.jpg)
私とRubyとcgi.rb
藤岡岳之(xibbar)
1000 Speakers in
Sendai22 Nov. 2008
![Page 2: 1000speakers仙台](https://reader033.vdocuments.site/reader033/viewer/2022052522/54bd19134a7959ff308b468f/html5/thumbnails/2.jpg)
自己紹介
福島市在住秋田県出身福島大学教育学部出身有限会社ラビックス社内では何でも屋もう7年
![Page 3: 1000speakers仙台](https://reader033.vdocuments.site/reader033/viewer/2022052522/54bd19134a7959ff308b468f/html5/thumbnails/3.jpg)
結論
東北にもRubyコミッタいるよ東京ばかりがITじゃないよ
![Page 4: 1000speakers仙台](https://reader033.vdocuments.site/reader033/viewer/2022052522/54bd19134a7959ff308b468f/html5/thumbnails/4.jpg)
Rubyの活動
Matz Rubyのコミッタcgi.rbの担当
Rails勉強会@東北現在休止中ですが
日本Rubyの会関係に出没高橋メソッドで有名な!?高橋征義さんが会長高橋さんをリスペクトして、今から高橋メソッドにします高橋メソッドひさしぶりだ
![Page 5: 1000speakers仙台](https://reader033.vdocuments.site/reader033/viewer/2022052522/54bd19134a7959ff308b468f/html5/thumbnails/5.jpg)
7年前
![Page 6: 1000speakers仙台](https://reader033.vdocuments.site/reader033/viewer/2022052522/54bd19134a7959ff308b468f/html5/thumbnails/6.jpg)
起業することにした
![Page 7: 1000speakers仙台](https://reader033.vdocuments.site/reader033/viewer/2022052522/54bd19134a7959ff308b468f/html5/thumbnails/7.jpg)
LinuxとCGIで
![Page 8: 1000speakers仙台](https://reader033.vdocuments.site/reader033/viewer/2022052522/54bd19134a7959ff308b468f/html5/thumbnails/8.jpg)
ヤフオク
![Page 9: 1000speakers仙台](https://reader033.vdocuments.site/reader033/viewer/2022052522/54bd19134a7959ff308b468f/html5/thumbnails/9.jpg)
画像のアップロード
![Page 10: 1000speakers仙台](https://reader033.vdocuments.site/reader033/viewer/2022052522/54bd19134a7959ff308b468f/html5/thumbnails/10.jpg)
ファイルの回収システム
![Page 11: 1000speakers仙台](https://reader033.vdocuments.site/reader033/viewer/2022052522/54bd19134a7959ff308b468f/html5/thumbnails/11.jpg)
学会論文投稿システム
![Page 12: 1000speakers仙台](https://reader033.vdocuments.site/reader033/viewer/2022052522/54bd19134a7959ff308b468f/html5/thumbnails/12.jpg)
2002年に作成
![Page 13: 1000speakers仙台](https://reader033.vdocuments.site/reader033/viewer/2022052522/54bd19134a7959ff308b468f/html5/thumbnails/13.jpg)
もしかしたら日本初かも
![Page 14: 1000speakers仙台](https://reader033.vdocuments.site/reader033/viewer/2022052522/54bd19134a7959ff308b468f/html5/thumbnails/14.jpg)
当時のウェブアプリ
![Page 15: 1000speakers仙台](https://reader033.vdocuments.site/reader033/viewer/2022052522/54bd19134a7959ff308b468f/html5/thumbnails/15.jpg)
掲示板やチャットなど
![Page 16: 1000speakers仙台](https://reader033.vdocuments.site/reader033/viewer/2022052522/54bd19134a7959ff308b468f/html5/thumbnails/16.jpg)
全部perlで出来ている
![Page 17: 1000speakers仙台](https://reader033.vdocuments.site/reader033/viewer/2022052522/54bd19134a7959ff308b468f/html5/thumbnails/17.jpg)
ソース読んでみる
![Page 18: 1000speakers仙台](https://reader033.vdocuments.site/reader033/viewer/2022052522/54bd19134a7959ff308b468f/html5/thumbnails/18.jpg)
すぐ嫌いになる
![Page 19: 1000speakers仙台](https://reader033.vdocuments.site/reader033/viewer/2022052522/54bd19134a7959ff308b468f/html5/thumbnails/19.jpg)
長いし記号ばっかりだ
![Page 20: 1000speakers仙台](https://reader033.vdocuments.site/reader033/viewer/2022052522/54bd19134a7959ff308b468f/html5/thumbnails/20.jpg)
配列の配列が存在しない
![Page 21: 1000speakers仙台](https://reader033.vdocuments.site/reader033/viewer/2022052522/54bd19134a7959ff308b468f/html5/thumbnails/21.jpg)
バッドノウハウばっかり
![Page 22: 1000speakers仙台](https://reader033.vdocuments.site/reader033/viewer/2022052522/54bd19134a7959ff308b468f/html5/thumbnails/22.jpg)
Rubyで作ることにした
![Page 23: 1000speakers仙台](https://reader033.vdocuments.site/reader033/viewer/2022052522/54bd19134a7959ff308b468f/html5/thumbnails/23.jpg)
Rubyを採用した理由
![Page 24: 1000speakers仙台](https://reader033.vdocuments.site/reader033/viewer/2022052522/54bd19134a7959ff308b468f/html5/thumbnails/24.jpg)
オブジェクト指向が好き
![Page 25: 1000speakers仙台](https://reader033.vdocuments.site/reader033/viewer/2022052522/54bd19134a7959ff308b468f/html5/thumbnails/25.jpg)
すぐ実行できる
![Page 26: 1000speakers仙台](https://reader033.vdocuments.site/reader033/viewer/2022052522/54bd19134a7959ff308b468f/html5/thumbnails/26.jpg)
当時servletはあった
![Page 27: 1000speakers仙台](https://reader033.vdocuments.site/reader033/viewer/2022052522/54bd19134a7959ff308b468f/html5/thumbnails/27.jpg)
実行するまで20秒orz
![Page 28: 1000speakers仙台](https://reader033.vdocuments.site/reader033/viewer/2022052522/54bd19134a7959ff308b468f/html5/thumbnails/28.jpg)
もうだめだ
![Page 29: 1000speakers仙台](https://reader033.vdocuments.site/reader033/viewer/2022052522/54bd19134a7959ff308b468f/html5/thumbnails/29.jpg)
一人親方には無理だ
![Page 30: 1000speakers仙台](https://reader033.vdocuments.site/reader033/viewer/2022052522/54bd19134a7959ff308b468f/html5/thumbnails/30.jpg)
Rubyとcgi.rbに出会った
![Page 31: 1000speakers仙台](https://reader033.vdocuments.site/reader033/viewer/2022052522/54bd19134a7959ff308b468f/html5/thumbnails/31.jpg)
コードを即実行できる
![Page 32: 1000speakers仙台](https://reader033.vdocuments.site/reader033/viewer/2022052522/54bd19134a7959ff308b468f/html5/thumbnails/32.jpg)
cgi.rbとは
![Page 33: 1000speakers仙台](https://reader033.vdocuments.site/reader033/viewer/2022052522/54bd19134a7959ff308b468f/html5/thumbnails/33.jpg)
CGIのためのライブラリ
![Page 34: 1000speakers仙台](https://reader033.vdocuments.site/reader033/viewer/2022052522/54bd19134a7959ff308b468f/html5/thumbnails/34.jpg)
cgi=CGI.newcgi[‘name’] # => “xibbar”
cgi.rbのサンプル
フォームからの送信
CGIアプリから受け取ったデータを自動的にパースしてくれる
![Page 35: 1000speakers仙台](https://reader033.vdocuments.site/reader033/viewer/2022052522/54bd19134a7959ff308b468f/html5/thumbnails/35.jpg)
cgi.rbでウェブアプリ作成
![Page 36: 1000speakers仙台](https://reader033.vdocuments.site/reader033/viewer/2022052522/54bd19134a7959ff308b468f/html5/thumbnails/36.jpg)
Railsと出会うまでは
![Page 37: 1000speakers仙台](https://reader033.vdocuments.site/reader033/viewer/2022052522/54bd19134a7959ff308b468f/html5/thumbnails/37.jpg)
Railsと出会った時は泣いた
![Page 38: 1000speakers仙台](https://reader033.vdocuments.site/reader033/viewer/2022052522/54bd19134a7959ff308b468f/html5/thumbnails/38.jpg)
さすがに泣いてはいないや
![Page 39: 1000speakers仙台](https://reader033.vdocuments.site/reader033/viewer/2022052522/54bd19134a7959ff308b468f/html5/thumbnails/39.jpg)
ウェブプリはRailsで製作
![Page 40: 1000speakers仙台](https://reader033.vdocuments.site/reader033/viewer/2022052522/54bd19134a7959ff308b468f/html5/thumbnails/40.jpg)
現在は。
![Page 41: 1000speakers仙台](https://reader033.vdocuments.site/reader033/viewer/2022052522/54bd19134a7959ff308b468f/html5/thumbnails/41.jpg)
Railsじゃ大げさな時もある
![Page 42: 1000speakers仙台](https://reader033.vdocuments.site/reader033/viewer/2022052522/54bd19134a7959ff308b468f/html5/thumbnails/42.jpg)
cgi.rbでhello world
require ‘cgi’cgi = CGI.new('html3')cgi.out do cgi.html do ‘hello world’ endend
![Page 43: 1000speakers仙台](https://reader033.vdocuments.site/reader033/viewer/2022052522/54bd19134a7959ff308b468f/html5/thumbnails/43.jpg)
Railsだと大げさ
例えば、RSS配信をしたいのにわざわざRailsを使うのはちょっと。。。Railsだと、ソースはちょっとで済むけど、設置がめんどくさい
例えば、Railsだとメモリ食い過ぎる共有サーバなのにfastcgiとかmongrelとかってメモリ食い過ぎだよね
高橋メソッドで書くの疲れてきた orz
![Page 44: 1000speakers仙台](https://reader033.vdocuments.site/reader033/viewer/2022052522/54bd19134a7959ff308b468f/html5/thumbnails/44.jpg)
1.8のcgi.rbメンテナ
まつもとさんが消極的メンテナ実質不在に等しいつーか、テストないしバグもたまに出るし仕様も時代遅れだし特にマルチパートフォームのパースは最悪ノロいんだよ!まあそれでも私は使うのだと、思っていたら、、、
![Page 45: 1000speakers仙台](https://reader033.vdocuments.site/reader033/viewer/2022052522/54bd19134a7959ff308b468f/html5/thumbnails/45.jpg)
最速でコミッタになった
7月頃にcgi.rbについて議論を始めるIRCも駆使して、cgi.rbを今後なんとかしようよと私が言い始める
8/23に私がcgi.rbのパッチを投稿し始める怒濤のパッチを投稿する
9/6にコミッタになるなんと、パッチを投稿初めてわずか14日真相は、パッチの検証をできる人が少なくて、コミッタになるという話はIRCで出来上がっていた
![Page 46: 1000speakers仙台](https://reader033.vdocuments.site/reader033/viewer/2022052522/54bd19134a7959ff308b468f/html5/thumbnails/46.jpg)
Rails-2.2で1.9対応
昨日、rails-2.2がリリースされたi18n対応されていると書いてあるRuby-1.9のcgi.rbにしっかり追従しているようだちょっとうれしい気分(Railsはcgi.rbを見捨てなかった。私のやる気↑)
Rails勉強会を再開しよう
![Page 47: 1000speakers仙台](https://reader033.vdocuments.site/reader033/viewer/2022052522/54bd19134a7959ff308b468f/html5/thumbnails/47.jpg)
Ruby1.9のcgi.rb
1.9のcgi.rbは大分テコ入れをした予想外に苦戦(1.9に入ったm17nのせいだ)でも、cgi.rbにテコ入れした結果、cgi.rbはまだ生きていけそうだつか、ほかのウェブアプリのためのフレームワークはm17n対応しているのだろうか
1.9のcgi.rbはテストが入ったしかも、このテストは1.8のcgi.rbでも動くように作ってある!
tDiaryは少しの(一般的な)修正で動く
![Page 48: 1000speakers仙台](https://reader033.vdocuments.site/reader033/viewer/2022052522/54bd19134a7959ff308b468f/html5/thumbnails/48.jpg)
コミッタになってから
暇をみつけてはコミットしています世界中で使われているcgi.rbのメンテナだと思うとちょっとうれしい気分名刺にもちゃっかりRuby Committerと入れている
cgi.rb以外ではほとんどバグ報告だけでも、m17n関係のバグはたくさん報告した
![Page 49: 1000speakers仙台](https://reader033.vdocuments.site/reader033/viewer/2022052522/54bd19134a7959ff308b468f/html5/thumbnails/49.jpg)
まとめ
東北にもRubyコミッタいるよ東京ばかりがITじゃないよ東京よりも給料は少ないけど、自然はたくさんあるし、家賃も安いし、5万円あれば2DKに住めるよねランチも600円で食えるしランチで1000円とか高いよね会社で頼んでいる弁当350円だし
![Page 50: 1000speakers仙台](https://reader033.vdocuments.site/reader033/viewer/2022052522/54bd19134a7959ff308b468f/html5/thumbnails/50.jpg)
おわり
一緒に東北でITやろうよ