SlideShare a Scribd company logo
1 of 173
Download to read offline
RubyKaigi2008
弾丸レポート
しだら ようじ
SHIDARA Yohji
OSC2008-do
Ruby札幌
From Sapporo,
with Love for Ruby.
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
今日お伝えしたいこと
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
RubyKaigiは楽しい
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
皆さんも参加してみませんか?
OSC2008-do
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
RubyKaigiとは:
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
日本で開催される
Ruby言語に関する会議。
http://d.hatena.ne.jp/keyword/Ruby会議
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
仕様はない
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
Regional RubyKaigiについて考
えることは、RubyKaigiとは何かに
ついて考えることと同じなんだな。
けっこうしんどい。明示的な仕様がな
く、実装しかないーーあれ? 何かと似
ているような……。
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
Regional RubyKaigiについて考
えることは、RubyKaigiとは何かに
ついて考えることと同じなんだな。
けっこうしんどい。明示的な仕様がな
く、実装しかないーーあれ? 何かと似
ているような……。
RubyKaigi2008 運営委員長 角谷信太郎
http://kakutani.com/20080623.html#p02
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
毎年のRubyKaigiが
ただ, そこにある
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
一期一会
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
RubyKaigi2008
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
今年のテーマ
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
多様性は善
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
公式タグは
rubykaigi2008
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
blog, flickr, ニコニコ動画などを
検索してみてください
OSC2008-do
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
まとめ記事
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
RubyKaigi2008 スペシャル★レポート
http://gihyo.jp/news/report/01/rubykaigi2008
【RubyKaigi'08】詳細レポート : 多様化するRuby
http://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/
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
RubyKaigi2008弾丸ツアー
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
会場
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
つくば国際会議場
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
多目的ホール
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
大ホール
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
懇親会
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
ノベルティ
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
RejectKaigi
RejectRejectKaigi
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
僕らの視点
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
Ruby札幌のミッション
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
コミュニティブース出展
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
だけのはずでしたが・・・
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
会場のネットワーク
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
動画の撮影, 配信
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
おかげで
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
とても疲れたけど
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
楽しかったです!!
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
動画も順次公開していきます
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
お楽しみに!!
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
Photos by june29, snoozer05, noplans, mrkn and dara
ガラパゴスに
線路を敷こう
携帯電話用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 Ł
œ { Œ ^ C g ¨
OSC2008-do
Photo taken by Kath B
http://flickr.com/photos/kathb/2196643434/
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
Photo taken by Kath B
http://flickr.com/photos/kathb/2196643434/
「日本のモバイル市場はま
さにガラパゴス諸島。独特
の進化・発展を遂げて外に
も出られない、内にも入れ
ない状況になっている。」
The Market of Japanese Cellphones
has evolved Exclusively,
just like Galapagos.
Movability 代表取締役社長 兼 CEO 三木雄信氏
http://plusd.itmedia.co.jp/mobile/articles/0612/01/news126_2.html
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
日本の携帯電話には
魅力的な機能が沢山
Japanese mobile phones have a lot of
fascinating features ...
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
しかし, どの機能もキャリアごとの
独自仕様に基づいて提供される
However, these features are provided
with Cell-phone-operator-specific
specifications,
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
しかも,
しばしばドキュメントされていない
which is sometimes undocumented.
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
たとえば, 端末位置情報を
端末に要求する場合:
Example.
Requesting GPS location of device:
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ 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)
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
もちろん戻り値もそれぞれ違う!
Of course, the responses are also in
various formats!
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
もう興味ないですよね・・・
I guess you shouldn’t want to know
them!
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
つまり
In short,
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
携帯電話サイトの開発というのは
working on websites for Japanese
mobiles is
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
バッドノウハウの蓄積
collecting boring “know-hows.”
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
でも, 日本の携帯電話には
魅力的な機能が沢山あるのも事実
But we cannot give up the fascinating
features of Japanese mobile phones ...
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
携帯電話サイトも
Rails流につくりたい
Motivation:
want to build websites for Japanese
mobile phones in Rails way.
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
Jpmobile
My answer:
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ 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
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
<%= get_position_link_to "GPS",
:action=> ... %>
for all Japanese mobiles:
after
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
紹介されています
Jpmobile is introduced in ...
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
自己紹介
Who am I?
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ 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
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
最近のプロジェクト:
My recent work:
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
http://buzztter.com
extracts buzzphrases from twitter.com
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
ところで, 私事ではありますが
By the way,
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
スープカレーが大好き
I love soupcurry!
(a typical Sapporo food)
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
06: 108
07: 45
08(-6/22): 30
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
Webサイトまで作ってしまった
so that I made a website:
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
http://soupcurry.info
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
http://soupcurry.info
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ 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 ;-)
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ 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 ;-)
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
soupcurry.infoから
汎用的な部分を切り離したものが
最初のJpmobile
The reusable component dragged out
from soupcurry.info is the origin of
Jpmobile.
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
Jpmobileの機能
Features of Jpmobile
OSC2008-do
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
携帯電話の判別/キャリア判別
Detecting mobile phones and its
operator
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
携帯電話を扱う上で
最も基本的な処理
is the most fundamental procedure to
handle mobile phones
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ 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:
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
with Jpmobile,
<% if request.mobile? %>
from mobile!
<% else %>
from PC!
<% end %>
Jpmobile では
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ 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
OSC2008-do
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
テンプレートの切り替え
Switching templates for mobiles
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
携帯/PC, もしくはキャリア毎に
テンプレートを切り替えたい
If you want to switch templates for PCs
and for mobiles, or for each operator,
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
mytemplate.html.erb
mytemplate_mobile.html.erb
を置くだけで自動的に切り替え
just put mytemplate.html.erb and
mytemplate_mobile.html.erb, or
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
mytemplate_mobile_docomo.html.erb
mytemplate_mobile_au.html.erb
を置けばよい
put mytemplate_mobile_docomo.html.erb
and mytemplate_mobile_au.html.erb.
(DoCoMo and au are cell-phone-operators)
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ 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
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
PCからのアクセスでは
Access from PC:
mytemplate_mobile_docomo.html.erb
mytemplate_mobile.html.erb
mytemplate.html.erb
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
DoCoMoからのアクセスでは
Access from DoCoMo:
mytemplate.html.erb
mytemplate_mobile.html.erb
mytemplate_mobile_docomo.html.erb
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ 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
OSC2008-do
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
端末位置情報の取得
Getting position of mobile-phones
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ 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:
OSC2008-do
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
端末製造番号/契約者番号等の取得
Getting production-numbers and/or
subscriber-identifiers.
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ 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.
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
端末あるいは契約者の識別子を
取得できる機能がある
Usually the identifier of the device or
the subscriber can be obtained.
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
もちろん仕様はバラバラ
Of course they are based on the various
specifications!
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
with Jpmobile,
request.mobile.ident_device
request.mobile.ident_subscriber
request.mobile.ident
= ident_subscriber || ident_device
Jpmobile では
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
平文で渡されるだけなので
それだけでは信頼はできない
Note that they are not creditable
because these identifiers are just
passed as plain text.
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
IPアドレス帯域の検証と
組み合わせると多少はよくなる
The security will be slightly improved
with combining IP-address verification.
OSC2008-do
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
IPアドレス帯域の検証
Validation of IP-address range
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
PCからアクセスできないサイトを
作りたい場合や
We may want to block PCs for some
(marketing?) reasons,
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ 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.
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
キャリアがWebで公開している
IP帯域情報を利用できる
The operators provides the information
of the IP-address ranges on the website
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ 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).
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
Jpmobileはscrapeした
テーブルを同梱しているので
Since Jpmobile contains the tables
obtained from these machine-unfriendly
websites,
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
request.mobile.valid_ip?
Just do
これだけ
OSC2008-do
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
セッションIDの付与
Adding session IDs to URL and FORM
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
クッキーに対応していない端末
もある
Some devices does not support cookies.
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
セッションIDをURLやフォームに
付加して引き渡す必要がある
For them, you need to pass the session
ID via URL and FORM parameters.
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
class MyController <
ApplicationController
trans_sid
end
OSC2008-do
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
ディスプレイ情報の取得
Getting specs of the screen
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
端末の画面サイズは
機種によって大きく異なっている
The screensize differs according to the
model.
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
表示を最適化するために
画面情報が必要になる
In order to optimize the output, we
need the information about the screen.
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
HTTPヘッダから情報が渡される
こともあるし,
渡されないこともある
The information may be passed via
HTTP header, or not.
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ 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.
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
request.mobile.display.colors
request.mobile.display.width
request.mobile.display.height
OSC2008-do
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
絵文字の相互変換
Conversion of the Emoticons
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
日本の携帯電話には
表情豊かな絵文字が沢山ある
Lots of lovely emoticons are available
in Japanese mobiles.
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
もちろんキャリア毎にバラバラ
Each operator have own set of
emoticons and own encoding.
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
仕様はとてもとても複雑なので
これだけでもう一度発表できそう
The specifications are so complex that I
can make another presentation.
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
変換規則も複雑で, 機械可読な変換
テーブルも公開されてない
The mappings (between operators) are
also complex and not publicly available
in machine-readable format.
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
Jpmobile では Unicode の
私的領域にすべての絵文字を
マッピングして保持し
Jpmobile maps all emoticons (of all
operators) into Unicode Private Area,
and
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
出力時に相手にあわせて
自動的に変換する
the output is transparently converted
into the format appropriate for the
target device.
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
in a controller:
class MyController <
ApplicationController
mobile_filter
end
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
PCでも絵文字を
表示できるようにする予定
I’m going to add the feature to send
emoticons PCs with embedding images.
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ 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.
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ 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).
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
in a controller:
class MyController <
ApplicationController
mobile_filter
end
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
まとめ
Summary:
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
日本の携帯電話には
魅力的な機能が沢山
Japanese mobile phones have a lot of
fascinating features.
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
携帯電話用サイトには厄介事が一杯
But we need lots of boring know-hows
to build websites for Japanese mobile
phones.
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
それ,
Jpmobile が簡単にします!
Jpmobile helps you!
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
最後に
Finally, I want to ask your help:
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
学生なので, 手元に検証機が沢山あ
るわけではないのです
I’m a student, so I don’t have many
mobile-phones to test Jpmobile on.
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
研究室の人に
缶コーヒーをごちそうして
テストに協力してもらっています
I often ask my colleagues for help,
paying a canned coffee.
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ 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.
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
時間がかかるかもしれませんが,
対応していきます
It may take long, but I’d like to work
on it.
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
http://jpmobile-rails.org
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
メーリングリストつくりました
I’ve made the ML for Jpmobile:
http://groups.google.com/group/jpmobile
œ { Œ ^ C g Ł
œ {Ruby c2008 S f [ ^
œ { Œ ^ C g ¨
œ { Œ ^ C g Ł
œ { Œ ^ C g ¨
OSC2008-do
Thank you!

More Related Content

More from Yoji Shidara

Sinatraで鼻歌混じりのWeb開発 @OSC2009-Do
Sinatraで鼻歌混じりのWeb開発 @OSC2009-DoSinatraで鼻歌混じりのWeb開発 @OSC2009-Do
Sinatraで鼻歌混じりのWeb開発 @OSC2009-DoYoji Shidara
 
Sinatraで鼻歌まじりのWeb開発
Sinatraで鼻歌まじりのWeb開発Sinatraで鼻歌まじりのWeb開発
Sinatraで鼻歌まじりのWeb開発Yoji Shidara
 
SAPICAの利用履歴を可視化する
SAPICAの利用履歴を可視化するSAPICAの利用履歴を可視化する
SAPICAの利用履歴を可視化するYoji Shidara
 
Twitter4Rでつくるゆるふわ愛されTwitter bot
Twitter4Rでつくるゆるふわ愛されTwitter botTwitter4Rでつくるゆるふわ愛されTwitter bot
Twitter4Rでつくるゆるふわ愛されTwitter botYoji Shidara
 
Ruby on Rails でつくるアタシ好みの愛され Web サービス
Ruby on Rails でつくるアタシ好みの愛され Web サービスRuby on Rails でつくるアタシ好みの愛され Web サービス
Ruby on Rails でつくるアタシ好みの愛され Web サービスYoji Shidara
 
ガラパゴスに線路を敷こう: 携帯電話用RailsプラグインJpmobile
ガラパゴスに線路を敷こう: 携帯電話用RailsプラグインJpmobileガラパゴスに線路を敷こう: 携帯電話用RailsプラグインJpmobile
ガラパゴスに線路を敷こう: 携帯電話用RailsプラグインJpmobileYoji Shidara
 
Twitter分散クロールの野望
Twitter分散クロールの野望Twitter分散クロールの野望
Twitter分散クロールの野望Yoji Shidara
 
Buzztterの裏側とその周辺技術
Buzztterの裏側とその周辺技術Buzztterの裏側とその周辺技術
Buzztterの裏側とその周辺技術Yoji Shidara
 
Pluginが広げるRailsの魅力
Pluginが広げるRailsの魅力Pluginが広げるRailsの魅力
Pluginが広げるRailsの魅力Yoji Shidara
 
Rubyistからみたsoupcurry.info
Rubyistからみたsoupcurry.infoRubyistからみたsoupcurry.info
Rubyistからみたsoupcurry.infoYoji Shidara
 

More from Yoji Shidara (10)

Sinatraで鼻歌混じりのWeb開発 @OSC2009-Do
Sinatraで鼻歌混じりのWeb開発 @OSC2009-DoSinatraで鼻歌混じりのWeb開発 @OSC2009-Do
Sinatraで鼻歌混じりのWeb開発 @OSC2009-Do
 
Sinatraで鼻歌まじりのWeb開発
Sinatraで鼻歌まじりのWeb開発Sinatraで鼻歌まじりのWeb開発
Sinatraで鼻歌まじりのWeb開発
 
SAPICAの利用履歴を可視化する
SAPICAの利用履歴を可視化するSAPICAの利用履歴を可視化する
SAPICAの利用履歴を可視化する
 
Twitter4Rでつくるゆるふわ愛されTwitter bot
Twitter4Rでつくるゆるふわ愛されTwitter botTwitter4Rでつくるゆるふわ愛されTwitter bot
Twitter4Rでつくるゆるふわ愛されTwitter bot
 
Ruby on Rails でつくるアタシ好みの愛され Web サービス
Ruby on Rails でつくるアタシ好みの愛され Web サービスRuby on Rails でつくるアタシ好みの愛され Web サービス
Ruby on Rails でつくるアタシ好みの愛され Web サービス
 
ガラパゴスに線路を敷こう: 携帯電話用RailsプラグインJpmobile
ガラパゴスに線路を敷こう: 携帯電話用RailsプラグインJpmobileガラパゴスに線路を敷こう: 携帯電話用RailsプラグインJpmobile
ガラパゴスに線路を敷こう: 携帯電話用RailsプラグインJpmobile
 
Twitter分散クロールの野望
Twitter分散クロールの野望Twitter分散クロールの野望
Twitter分散クロールの野望
 
Buzztterの裏側とその周辺技術
Buzztterの裏側とその周辺技術Buzztterの裏側とその周辺技術
Buzztterの裏側とその周辺技術
 
Pluginが広げるRailsの魅力
Pluginが広げるRailsの魅力Pluginが広げるRailsの魅力
Pluginが広げるRailsの魅力
 
Rubyistからみたsoupcurry.info
Rubyistからみたsoupcurry.infoRubyistからみたsoupcurry.info
Rubyistからみたsoupcurry.info
 

Recently uploaded

IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxAtomu Hidaka
 
プレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツールプレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツールsugiuralab
 
プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価sugiuralab
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000Shota Ito
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directoryosamut
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 

Recently uploaded (7)

IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
 
プレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツールプレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツール
 
プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
 

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

  • 2. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do 今日お伝えしたいこと
  • 3. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do RubyKaigiは楽しい
  • 4. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do 皆さんも参加してみませんか?
  • 5. OSC2008-do œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ RubyKaigiとは:
  • 6. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do 日本で開催される Ruby言語に関する会議。 http://d.hatena.ne.jp/keyword/Ruby会議
  • 7. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do 仕様はない
  • 8. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do Regional RubyKaigiについて考 えることは、RubyKaigiとは何かに ついて考えることと同じなんだな。 けっこうしんどい。明示的な仕様がな く、実装しかないーーあれ? 何かと似 ているような……。
  • 9. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do Regional RubyKaigiについて考 えることは、RubyKaigiとは何かに ついて考えることと同じなんだな。 けっこうしんどい。明示的な仕様がな く、実装しかないーーあれ? 何かと似 ているような……。 RubyKaigi2008 運営委員長 角谷信太郎 http://kakutani.com/20080623.html#p02
  • 10. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do 毎年のRubyKaigiが ただ, そこにある
  • 11. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do 一期一会
  • 12. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do RubyKaigi2008
  • 13. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do 今年のテーマ
  • 14. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do 多様性は善
  • 15. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do 公式タグは rubykaigi2008
  • 16. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do blog, flickr, ニコニコ動画などを 検索してみてください
  • 17. OSC2008-do œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ まとめ記事
  • 18. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do RubyKaigi2008 スペシャル★レポート http://gihyo.jp/news/report/01/rubykaigi2008 【RubyKaigi'08】詳細レポート : 多様化するRuby http://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/
  • 19. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do RubyKaigi2008弾丸ツアー
  • 20. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do 会場
  • 21. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do つくば国際会議場
  • 22. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do
  • 23. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do
  • 24. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do
  • 25. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do
  • 26. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do 多目的ホール
  • 27. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do
  • 28. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do
  • 29. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do
  • 30. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do
  • 31. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do
  • 32. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do 大ホール
  • 33. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do
  • 34. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do
  • 35. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do
  • 36. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do
  • 37. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do 懇親会
  • 38. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do
  • 39. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do
  • 40. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do
  • 41. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do ノベルティ
  • 42. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do
  • 43. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do
  • 44. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do
  • 45. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do
  • 46. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do RejectKaigi RejectRejectKaigi
  • 47. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do
  • 48. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do
  • 49. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do
  • 50. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do 僕らの視点
  • 51. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do Ruby札幌のミッション
  • 52. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do コミュニティブース出展
  • 53. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do
  • 54. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do だけのはずでしたが・・・
  • 55. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do 会場のネットワーク
  • 56. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do
  • 57. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do
  • 58. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do
  • 59. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do
  • 60. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do
  • 61. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do
  • 62. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do
  • 63. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do 動画の撮影, 配信
  • 64. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do
  • 65. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do
  • 66. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do
  • 67. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do
  • 68. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do
  • 69. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do
  • 70. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do
  • 71. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do おかげで
  • 72. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do とても疲れたけど
  • 73. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do 楽しかったです!!
  • 74. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do 動画も順次公開していきます
  • 75. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do お楽しみに!!
  • 76. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do Photos by june29, snoozer05, noplans, mrkn and dara
  • 77. ガラパゴスに 線路を敷こう 携帯電話用Railsプラグイン Jpmobile しだら ようじ SHIDARA Yohji Lay Rails on “Galapagos” Jpmobile: A Rails Plugin for Japanese Mobile Phones
  • 78. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do Photo taken by Kath B http://flickr.com/photos/kathb/2196643434/
  • 79. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do Photo taken by Kath B http://flickr.com/photos/kathb/2196643434/ 「日本のモバイル市場はま さにガラパゴス諸島。独特 の進化・発展を遂げて外に も出られない、内にも入れ ない状況になっている。」 The Market of Japanese Cellphones has evolved Exclusively, just like Galapagos. Movability 代表取締役社長 兼 CEO 三木雄信氏 http://plusd.itmedia.co.jp/mobile/articles/0612/01/news126_2.html
  • 80. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do 日本の携帯電話には 魅力的な機能が沢山 Japanese mobile phones have a lot of fascinating features ...
  • 81. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do しかし, どの機能もキャリアごとの 独自仕様に基づいて提供される However, these features are provided with Cell-phone-operator-specific specifications,
  • 82. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do しかも, しばしばドキュメントされていない which is sometimes undocumented.
  • 83. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do たとえば, 端末位置情報を 端末に要求する場合: Example. Requesting GPS location of device:
  • 84. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ 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)
  • 85. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do もちろん戻り値もそれぞれ違う! Of course, the responses are also in various formats!
  • 86. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do もう興味ないですよね・・・ I guess you shouldn’t want to know them!
  • 87. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do つまり In short,
  • 88. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do 携帯電話サイトの開発というのは working on websites for Japanese mobiles is
  • 89. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do バッドノウハウの蓄積 collecting boring “know-hows.”
  • 90. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do でも, 日本の携帯電話には 魅力的な機能が沢山あるのも事実 But we cannot give up the fascinating features of Japanese mobile phones ...
  • 91. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do 携帯電話サイトも Rails流につくりたい Motivation: want to build websites for Japanese mobile phones in Rails way.
  • 92. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do Jpmobile My answer:
  • 93. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ 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
  • 94. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do <%= get_position_link_to "GPS", :action=> ... %> for all Japanese mobiles: after
  • 95. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do 紹介されています Jpmobile is introduced in ...
  • 96. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do 自己紹介 Who am I?
  • 97. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ 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
  • 98. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do 最近のプロジェクト: My recent work:
  • 99. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do http://buzztter.com extracts buzzphrases from twitter.com
  • 100. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do ところで, 私事ではありますが By the way,
  • 101. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do スープカレーが大好き I love soupcurry! (a typical Sapporo food)
  • 102. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do
  • 103. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do 06: 108 07: 45 08(-6/22): 30
  • 104. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do Webサイトまで作ってしまった so that I made a website:
  • 105. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do http://soupcurry.info
  • 106. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do http://soupcurry.info
  • 107. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ 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 ;-)
  • 108. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ 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 ;-)
  • 109. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do soupcurry.infoから 汎用的な部分を切り離したものが 最初のJpmobile The reusable component dragged out from soupcurry.info is the origin of Jpmobile.
  • 110. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do Jpmobileの機能 Features of Jpmobile
  • 111. OSC2008-do œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ 携帯電話の判別/キャリア判別 Detecting mobile phones and its operator
  • 112. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do 携帯電話を扱う上で 最も基本的な処理 is the most fundamental procedure to handle mobile phones
  • 113. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ 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:
  • 114. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do with Jpmobile, <% if request.mobile? %> from mobile! <% else %> from PC! <% end %> Jpmobile では
  • 115. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ 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
  • 116. OSC2008-do œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ テンプレートの切り替え Switching templates for mobiles
  • 117. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do 携帯/PC, もしくはキャリア毎に テンプレートを切り替えたい If you want to switch templates for PCs and for mobiles, or for each operator,
  • 118. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do mytemplate.html.erb mytemplate_mobile.html.erb を置くだけで自動的に切り替え just put mytemplate.html.erb and mytemplate_mobile.html.erb, or
  • 119. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do mytemplate_mobile_docomo.html.erb mytemplate_mobile_au.html.erb を置けばよい put mytemplate_mobile_docomo.html.erb and mytemplate_mobile_au.html.erb. (DoCoMo and au are cell-phone-operators)
  • 120. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ 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
  • 121. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do PCからのアクセスでは Access from PC: mytemplate_mobile_docomo.html.erb mytemplate_mobile.html.erb mytemplate.html.erb
  • 122. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do DoCoMoからのアクセスでは Access from DoCoMo: mytemplate.html.erb mytemplate_mobile.html.erb mytemplate_mobile_docomo.html.erb
  • 123. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ 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
  • 124. OSC2008-do œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ 端末位置情報の取得 Getting position of mobile-phones
  • 125. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ 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:
  • 126. OSC2008-do œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ 端末製造番号/契約者番号等の取得 Getting production-numbers and/or subscriber-identifiers.
  • 127. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ 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.
  • 128. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do 端末あるいは契約者の識別子を 取得できる機能がある Usually the identifier of the device or the subscriber can be obtained.
  • 129. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do もちろん仕様はバラバラ Of course they are based on the various specifications!
  • 130. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do with Jpmobile, request.mobile.ident_device request.mobile.ident_subscriber request.mobile.ident = ident_subscriber || ident_device Jpmobile では
  • 131. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do 平文で渡されるだけなので それだけでは信頼はできない Note that they are not creditable because these identifiers are just passed as plain text.
  • 132. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do IPアドレス帯域の検証と 組み合わせると多少はよくなる The security will be slightly improved with combining IP-address verification.
  • 133. OSC2008-do œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ IPアドレス帯域の検証 Validation of IP-address range
  • 134. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do PCからアクセスできないサイトを 作りたい場合や We may want to block PCs for some (marketing?) reasons,
  • 135. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ 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.
  • 136. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do キャリアがWebで公開している IP帯域情報を利用できる The operators provides the information of the IP-address ranges on the website
  • 137. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ 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).
  • 138. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do Jpmobileはscrapeした テーブルを同梱しているので Since Jpmobile contains the tables obtained from these machine-unfriendly websites,
  • 139. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do request.mobile.valid_ip? Just do これだけ
  • 140. OSC2008-do œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ セッションIDの付与 Adding session IDs to URL and FORM
  • 141. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do クッキーに対応していない端末 もある Some devices does not support cookies.
  • 142. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do セッションIDをURLやフォームに 付加して引き渡す必要がある For them, you need to pass the session ID via URL and FORM parameters.
  • 143. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do class MyController < ApplicationController trans_sid end
  • 144. OSC2008-do œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ ディスプレイ情報の取得 Getting specs of the screen
  • 145. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do 端末の画面サイズは 機種によって大きく異なっている The screensize differs according to the model.
  • 146. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do 表示を最適化するために 画面情報が必要になる In order to optimize the output, we need the information about the screen.
  • 147. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do HTTPヘッダから情報が渡される こともあるし, 渡されないこともある The information may be passed via HTTP header, or not.
  • 148. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ 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.
  • 149. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do request.mobile.display.colors request.mobile.display.width request.mobile.display.height
  • 150. OSC2008-do œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ 絵文字の相互変換 Conversion of the Emoticons
  • 151. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do 日本の携帯電話には 表情豊かな絵文字が沢山ある Lots of lovely emoticons are available in Japanese mobiles.
  • 152. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do もちろんキャリア毎にバラバラ Each operator have own set of emoticons and own encoding.
  • 153. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do 仕様はとてもとても複雑なので これだけでもう一度発表できそう The specifications are so complex that I can make another presentation.
  • 154. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do 変換規則も複雑で, 機械可読な変換 テーブルも公開されてない The mappings (between operators) are also complex and not publicly available in machine-readable format.
  • 155. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do Jpmobile では Unicode の 私的領域にすべての絵文字を マッピングして保持し Jpmobile maps all emoticons (of all operators) into Unicode Private Area, and
  • 156. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do 出力時に相手にあわせて 自動的に変換する the output is transparently converted into the format appropriate for the target device.
  • 157. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do in a controller: class MyController < ApplicationController mobile_filter end
  • 158. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do PCでも絵文字を 表示できるようにする予定 I’m going to add the feature to send emoticons PCs with embedding images.
  • 159. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ 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.
  • 160. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ 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).
  • 161. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do in a controller: class MyController < ApplicationController mobile_filter end
  • 162. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do まとめ Summary:
  • 163. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do 日本の携帯電話には 魅力的な機能が沢山 Japanese mobile phones have a lot of fascinating features.
  • 164. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do 携帯電話用サイトには厄介事が一杯 But we need lots of boring know-hows to build websites for Japanese mobile phones.
  • 165. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do それ, Jpmobile が簡単にします! Jpmobile helps you!
  • 166. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do 最後に Finally, I want to ask your help:
  • 167. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do 学生なので, 手元に検証機が沢山あ るわけではないのです I’m a student, so I don’t have many mobile-phones to test Jpmobile on.
  • 168. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do 研究室の人に 缶コーヒーをごちそうして テストに協力してもらっています I often ask my colleagues for help, paying a canned coffee.
  • 169. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ 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.
  • 170. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do 時間がかかるかもしれませんが, 対応していきます It may take long, but I’d like to work on it.
  • 171. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do http://jpmobile-rails.org
  • 172. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do メーリングリストつくりました I’ve made the ML for Jpmobile: http://groups.google.com/group/jpmobile
  • 173. œ { Œ ^ C g Ł œ {Ruby c2008 S f [ ^ œ { Œ ^ C g ¨ œ { Œ ^ C g Ł œ { Œ ^ C g ¨ OSC2008-do Thank you!