rubykaigi2008弾丸レポート / ガラパゴスに線路を敷こう

173
RubyKaigi2008 弾丸レポート しだら ようじ SHIDARA Yohji OSC2008-do Ruby札幌 From Sapporo, with Love for Ruby .

Upload: yoji-shidara

Post on 19-Jan-2015

1.826 views

Category:

Technology


0 download

DESCRIPTION

 

TRANSCRIPT

Page 1: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

RubyKaigi2008弾丸レポート

しだら ようじSHIDARA Yohji

OSC2008-doRuby札幌

From Sapporo,with Love for Ruby.

Page 2: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

今日お伝えしたいこと

Page 3: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

RubyKaigiは楽しい

Page 4: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

皆さんも参加してみませんか?

Page 5: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

OSC2008-do

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

RubyKaigiとは:

Page 6: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

日本で開催されるRuby言語に関する会議。

http://d.hatena.ne.jp/keyword/Ruby会議

Page 7: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

仕様はない

Page 8: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

Regional RubyKaigiについて考えることは、RubyKaigiとは何かについて考えることと同じなんだな。けっこうしんどい。明示的な仕様がなく、実装しかないーーあれ? 何かと似ているような……。

Page 9: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

Regional RubyKaigiについて考えることは、RubyKaigiとは何かについて考えることと同じなんだな。けっこうしんどい。明示的な仕様がなく、実装しかないーーあれ? 何かと似ているような……。

RubyKaigi2008 運営委員長 角谷信太郎http://kakutani.com/20080623.html#p02

Page 10: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

毎年のRubyKaigiがただ, そこにある

Page 11: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

一期一会

Page 12: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

RubyKaigi2008

Page 13: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

今年のテーマ

Page 14: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

多様性は善

Page 15: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

公式タグは“rubykaigi2008”

Page 16: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

blog, flickr, ニコニコ動画などを検索してみてください

Page 17: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

OSC2008-do

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

まとめ記事

Page 18: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

RubyKaigi2008 スペシャル★レポートhttp://gihyo.jp/news/report/01/rubykaigi2008

【RubyKaigi'08】詳細レポート : 多様化するRubyhttp://codezine.jp/a/article/aid/2724.aspx

【RubyKaigi'08】多様化するゆるふわ愛されRuby梁山泊 http://codezine.jp/a/article/aid/2727.aspx

【日本Ruby会議2008】すでに現実となった「エンタープライズRuby」と拡大するコミュニティhttp://itpro.nikkeibp.co.jp/article/NEWS/20080623/309326/

Page 19: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

RubyKaigi2008弾丸ツアー

Page 20: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

会場

Page 21: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

つくば国際会議場

Page 22: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

Page 23: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

Page 24: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

Page 25: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

Page 26: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

多目的ホール

Page 27: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

Page 28: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

Page 29: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

Page 30: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

Page 31: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

Page 32: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

大ホール

Page 33: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

Page 34: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

Page 35: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

Page 36: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

Page 37: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

懇親会

Page 38: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

Page 39: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

Page 40: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

Page 41: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

ノベルティ

Page 42: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

Page 43: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

Page 44: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

Page 45: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

Page 46: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

RejectKaigiRejectRejectKaigi

Page 47: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

Page 48: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

Page 49: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

Page 50: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

僕らの視点

Page 51: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

Ruby札幌のミッション

Page 52: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

コミュニティブース出展

Page 53: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

Page 54: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

だけのはずでしたが・・・

Page 55: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

会場のネットワーク

Page 56: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

Page 57: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

Page 58: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

Page 59: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

Page 60: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

Page 61: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

Page 62: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

Page 63: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

動画の撮影, 配信

Page 64: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

Page 65: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

Page 66: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

Page 67: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

Page 68: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

Page 69: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

Page 70: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

Page 71: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

おかげで

Page 72: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

とても疲れたけど

Page 73: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

楽しかったです!!

Page 74: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

動画も順次公開していきます

Page 75: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

お楽しみに!!

Page 76: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

Photos by june29, snoozer05, noplans, mrkn and dara

Page 77: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

ガラパゴスに線路を敷こう携帯電話用RailsプラグインJpmobile

しだら ようじSHIDARA Yohji

Lay Rails on “Galapagos”Jpmobile: A Rails Plugin for Japanese Mobile Phones

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

Page 78: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do Photo taken by Kath B

http://flickr.com/photos/kathb/2196643434/

Page 79: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do Photo taken by Kath B

http://flickr.com/photos/kathb/2196643434/

「日本のモバイル市場はまさにガラパゴス諸島。独特の進化・発展を遂げて外にも出られない、内にも入れない状況になっている。」

The Market of Japanese Cellphoneshas evolved Exclusively,just like Galapagos.

Movability 代表取締役社長 兼 CEO 三木雄信氏http://plusd.itmedia.co.jp/mobile/articles/0612/01/news126_2.html

Page 80: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

日本の携帯電話には魅力的な機能が沢山

Japanese mobile phones have a lot of fascinating features ...

Page 81: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

しかし, どの機能もキャリアごとの独自仕様に基づいて提供される

However, these features are provided with Cell-phone-operator-specific specifications,

Page 82: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

しかも, しばしばドキュメントされていない

which is sometimes undocumented.

Page 83: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

たとえば, 端末位置情報を端末に要求する場合:

Example.Requesting GPS location of device:

Page 84: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

<a href="[URL]" lcs>GPS</a>

<a href="device:gpsone?url=

[URL]&amp;ver=1&amp;datum=0&amp;un

it=0">GPS</a>

for DoCoMo:

for au:

for SoftBank 3G:<a href=location:auto?[URL]>GPS</a>

for SoftBank 2G:<a href="[URL]" z>GPS</a>

<a href="http://location.request/dummy.cgi?

my=[URL]&pos=$location">GPS</a>

for Willcom:

(officially undocumented)

Page 85: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

もちろん戻り値もそれぞれ違う!

Of course, the responses are also in various formats!

Page 86: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

もう興味ないですよね・・・

I guess you shouldn’t want to know them!

Page 87: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

つまり

In short,

Page 88: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

携帯電話サイトの開発というのは

working on websites for Japanese mobiles is

Page 89: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

バッドノウハウの蓄積

collecting boring “know-hows.”

Page 90: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

でも, 日本の携帯電話には魅力的な機能が沢山あるのも事実

But we cannot give up the fascinating features of Japanese mobile phones ...

Page 91: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

携帯電話サイトもRails流につくりたい

Motivation:want to build websites for Japanese mobile phones in Rails way.

Page 92: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

Jpmobile

My answer:

Page 93: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

<a href="[URL]" lcs>GPS</a>

<a href="device:gpsone?url=

[URL]&amp;ver=1&amp;datum=0&amp;un

it=0">GPS</a>

for DoCoMo:

for au:

for SoftBank 3G:<a href=location:auto?[URL]>GPS</a>

for SoftBank 2G:<a href="[URL]" z>GPS</a>

<a href="http://location.request/dummy.cgi?

my=[URL]&pos=$location">GPS</a>

for Willcom:

(officially undocumented)before

Page 94: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

<%= get_position_link_to "GPS",

:action=> ... %>

for all Japanese mobiles:

after

Page 95: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

紹介されていますJpmobile is introduced in ...

Page 96: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

自己紹介

Who am I?

Page 97: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

設樂 洋爾 / SHIDARA Yohji / dara‣ Jpmobile 作者 the author of Jpmobile‣http://d.hatena.ne.jp/darashi

http://twitter.com/darashi(in Japanese)

‣札幌生まれ, 札幌育ち, 札幌大好きborn in Sapporo, live in Sapporo,love Sapporo-- 1.5hrs. from Tokyo by air‣大学院生 a graduate student‣Ruby Sapporo Staff‣RubyKaigi2008 Staff

Page 98: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

最近のプロジェクト:

My recent work:

Page 99: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

http://buzztter.comextracts buzzphrases from twitter.com

Page 100: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

ところで, 私事ではありますが

By the way,

Page 101: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

スープカレーが大好き

I love soupcurry!(a typical Sapporo food)

Page 102: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

Page 103: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

’06: 108’07: 45

’08(-6/22): 30

Page 104: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

Webサイトまで作ってしまった

so that I made a website:

Page 105: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

http://soupcurry.info

Page 106: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

http://soupcurry.info

Page 107: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

最寄りのスープカレー店を携帯電話のGPS機能で検索できる

You can find the nearby soupcurry restaurants with your mobile (using GPS). -- if you are in Japan ;-)

Page 108: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

最寄りのスープカレー店を携帯電話のGPS機能で検索できる

You can find the nearby soupcurry restaurants with your mobile (using GPS). -- if you are in Japan ;-)

Page 109: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

soupcurry.infoから汎用的な部分を切り離したものが

最初のJpmobile

The reusable component dragged out from soupcurry.info is the origin of Jpmobile.

Page 110: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

Jpmobileの機能

Features of Jpmobile

Page 111: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

OSC2008-do

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

携帯電話の判別/キャリア判別

Detecting mobile phones and its operator

Page 112: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

携帯電話を扱う上で最も基本的な処理

is the most fundamental procedure to handle mobile phones

Page 113: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

‣DoCoMo/2.0 SH902i(c100;TB;W24H12)

‣KDDI-CA32 UP.Browser/6.2.0.7.3.129 (GUI) MMP/2.0

‣ SoftBank/1.0/910T/TJ001/SN000000000000000 Browser/

NetFront/3.3 Profile/MIDP-2.0 Configuration/CLDC-1.1

‣Vodafone/1.0/V903SH/SHJ001/SN000000000000000

Browser/UP.Browser/7.0.2.1 Profile/MIDP-2.0

Configuration/CLDC-1.1 Ext-J-Profile/JSCL-1.2.2 Ext-V-

Profile/VSCL-2.0.0

‣ J-PHONE/4.3/V603SH/SNXXXX0000000 SH/0007aa Profile/

MIDP-1.0 Configuration/CLDC-1.0 Ext-Profile/JSCL-1.3.2

‣Mozilla/3.0(WILLCOM;KYOCERA/WX310K/

2;1.2.2.16.000000/0.1/C100) Opera 7.0

それほど単純ではないIt’s not so easy ...

Various User-Agents:

Page 114: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

with Jpmobile,

<% if request.mobile? %> from mobile! <% else %> from PC!<% end %>

Jpmobile では

Page 115: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

case request.mobile

when Jpmobile::Mobile::Docomo

# for DoCoMo

when Jpmobile::Mobile::Au

# for au

when Jpmobile::Mobile::Softbank

# for SoftBank

when Jpmobile::Mobile::Willcom

# for Willcom

when Jpmobile::Mobile::Emobile

# for EMOBILE

else

# for PC

end

Page 116: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

OSC2008-do

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

テンプレートの切り替え

Switching templates for mobiles

Page 117: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

携帯/PC, もしくはキャリア毎にテンプレートを切り替えたい

If you want to switch templates for PCs and for mobiles, or for each operator,

Page 118: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

mytemplate.html.erbmytemplate_mobile.html.erbを置くだけで自動的に切り替え

just put mytemplate.html.erb and mytemplate_mobile.html.erb, or

Page 119: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

mytemplate_mobile_docomo.html.erbmytemplate_mobile_au.html.erb

を置けばよい

put mytemplate_mobile_docomo.html.erb and mytemplate_mobile_au.html.erb.(DoCoMo and au are cell-phone-operators)

Page 120: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

以下のテンプレートがあるときSupporse that we have these templates.

mytemplate_mobile_docomo.html.erb

mytemplate_mobile.html.erb

mytemplate.html.erb

Page 121: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

PCからのアクセスではAccess from PC:

mytemplate_mobile_docomo.html.erb

mytemplate_mobile.html.erb

mytemplate.html.erb

Page 122: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

DoCoMoからのアクセスではAccess from DoCoMo:

mytemplate.html.erb

mytemplate_mobile.html.erb

mytemplate_mobile_docomo.html.erb

Page 123: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

mytemplate_mobile.html.erb

DoCoMo以外の携帯電話からのアクセスでは

Access from mobiles except DoCoMo:

mytemplate.html.erb

mytemplate_mobile_docomo.html.erb

Page 124: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

OSC2008-do

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

端末位置情報の取得

Getting position of mobile-phones

Page 125: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

<%= get_position_link_to "GPS",

:action=> ... %>

緯度(latitude):request.mobile.position.lat

経度(longitude)request.mobile.position.lng

in a view:

in a controller, ‘gps’ action:

Page 126: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

OSC2008-do

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

端末製造番号/契約者番号等の取得

Getting production-numbers and/or subscriber-identifiers.

Page 127: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

携帯端末からパスワードを何度も入力するのは苦痛

It should be frustrating to input the password with your mobile every time you are going to login.

Page 128: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

端末あるいは契約者の識別子を取得できる機能がある

Usually the identifier of the device or the subscriber can be obtained.

Page 129: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

もちろん仕様はバラバラ

Of course they are based on the various specifications!

Page 130: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

with Jpmobile,

request.mobile.ident_devicerequest.mobile.ident_subscriber

request.mobile.ident= ident_subscriber || ident_device

Jpmobile では

Page 131: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

平文で渡されるだけなのでそれだけでは信頼はできない

Note that they are not creditable because these identifiers are just passed as plain text.

Page 132: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

IPアドレス帯域の検証と組み合わせると多少はよくなる

The security will be slightly improved with combining IP-address verification.

Page 133: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

OSC2008-do

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

IPアドレス帯域の検証

Validation of IP-address range

Page 134: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

PCからアクセスできないサイトを作りたい場合や

We may want to block PCs for some (marketing?) reasons,

Page 135: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

端末/契約者の識別子が確かに携帯電話から渡されたか確認したい場合

or we may want to check if the identifiers (for a device or a subscribe) is surely passed from mobile.

Page 136: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

キャリアがWebで公開しているIP帯域情報を利用できる

The operators provides the information of the IP-address ranges on the website

Page 137: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

もちろん書式はバラバラで機械可読ではないけれど

of course in various formats, and even worse, usually they are not machine readable (dirty scraping is needed).

Page 138: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

Jpmobileはscrapeしたテーブルを同梱しているので

Since Jpmobile contains the tables obtained from these machine-unfriendly websites,

Page 139: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

request.mobile.valid_ip?

Just doこれだけ

Page 140: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

OSC2008-do

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

セッションIDの付与

Adding session IDs to URL and FORM

Page 141: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

クッキーに対応していない端末もある

Some devices does not support cookies.

Page 142: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

セッションIDをURLやフォームに付加して引き渡す必要がある

For them, you need to pass the session ID via URL and FORM parameters.

Page 143: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

class MyController < ApplicationController trans_sidend

Page 144: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

OSC2008-do

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

ディスプレイ情報の取得

Getting specs of the screen

Page 145: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

端末の画面サイズは機種によって大きく異なっている

The screensize differs according to the model.

Page 146: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

表示を最適化するために画面情報が必要になる

In order to optimize the output, we need the information about the screen.

Page 147: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

HTTPヘッダから情報が渡されることもあるし,

渡されないこともある

The information may be passed via HTTP header, or not.

Page 148: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

ヘッダから渡されない場合はscrapeしたテーブルを参照する

We need to scrape the official websites in case that the information in the header is not available.

Page 149: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

request.mobile.display.colorsrequest.mobile.display.widthrequest.mobile.display.height

Page 150: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

OSC2008-do

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

絵文字の相互変換

Conversion of the Emoticons

Page 151: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

日本の携帯電話には表情豊かな絵文字が沢山ある

Lots of lovely emoticons are available in Japanese mobiles.

Page 152: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

もちろんキャリア毎にバラバラ

Each operator have own set of emoticons and own encoding.

Page 153: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

仕様はとてもとても複雑なのでこれだけでもう一度発表できそう

The specifications are so complex that I can make another presentation.

Page 154: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

変換規則も複雑で, 機械可読な変換テーブルも公開されてない

The mappings (between operators) are also complex and not publicly available in machine-readable format.

Page 155: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

Jpmobile では Unicode の私的領域にすべての絵文字を

マッピングして保持し

Jpmobile maps all emoticons (of all operators) into Unicode Private Area, and

Page 156: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

出力時に相手にあわせて自動的に変換する

the output is transparently converted into the format appropriate for the target device.

Page 157: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

in a controller:

class MyController < ApplicationController mobile_filterend

Page 158: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

PCでも絵文字を表示できるようにする予定

I’m going to add the feature to send emoticons PCs with embedding images.

Page 159: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

一部の携帯電話はUTF-8に非対応もしくは絵文字を送ってこなくなる

Some mobiles do not support UTF-8 or stop sending emoticons under UTF-8 communication.

Page 160: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

必要に応じてShift-JISで通信

We need to communicate with them in Shift-JIS (a legacy but one of the most commonly used encoding).

Page 161: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

in a controller:

class MyController < ApplicationController mobile_filterend

Page 162: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

まとめ

Summary:

Page 163: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

日本の携帯電話には魅力的な機能が沢山

Japanese mobile phones have a lot of fascinating features.

Page 164: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

携帯電話用サイトには厄介事が一杯

But we need lots of boring know-hows to build websites for Japanese mobile phones.

Page 165: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

それ,Jpmobile が簡単にします!

Jpmobile helps you!

Page 166: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

最後に

Finally, I want to ask your help:

Page 167: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

学生なので, 手元に検証機が沢山あるわけではないのです

I’m a student, so I don’t have many mobile-phones to test Jpmobile on.

Page 168: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

研究室の人に缶コーヒーをごちそうして

テストに協力してもらっています

I often ask my colleagues for help, paying a canned coffee.

Page 169: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

問題を発見されたり, 機能を追加された場合はぜひお知らせください

So, if you find out some problems or if you make any improvement of Jpmobile, please let me know.

Page 170: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

時間がかかるかもしれませんが,対応していきます

It may take long, but I’d like to work on it.

Page 171: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

http://jpmobile-rails.org

Page 172: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

メーリングリストつくりました

I’ve made the ML for Jpmobile:

http://groups.google.com/group/jpmobile

Page 173: RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう

œ { Œ ^ C g Ł

œ {Ruby c2008 S f [ ^

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

w i “ Œ w i “ Œ

1 F ¯ w i “ Œ 1 F ¯ w i “ Œ

œ { Œ ^ C g ¨

œ { Œ ^ C g Ł

œ { Œ ^ C g ¨

OSC2008-do

Thank you!