SlideShare une entreprise Scribd logo
1  sur  30
Télécharger pour lire hors ligne
Rubyist からみた soupcurry.info
dara
設 樂 洋 爾 (しだら ようじ)
dara@shidara.net
http://d.hatena.ne.jp/darashi
1
My Projects
• Web Services
• soupcurry.info http://soupcurry.info/
• FON finder http://fonfinder.orzorz.org/
• face detector http://face.orgorz.org/
• buzztter http://buzztter.com/
• RubyGems
• Locapoint http://locapoint.rubyforge.org/
• Jpmobile http://jpmobile.rubyforge.org/
• Objectdetect http://objectdetect.rubyforge.org/
2
スープカレー
3
チキン 辛さ8
CHAIN GANG ORIGINAL SOUP CURRY & BAR 龍祈
http://soupcurry.info/shop/138
• 中毒性がある
→我慢できない
• お店ごとに個性的
→食べ歩きを楽しみたい
• 店舗が乱立気味
→好みにあったお店で
典型的なシチュエーション
• 今すぐカレーを食べたい気分だ。
• 今日は普段行かない場所に居るので、折角だから近
くの行ったことのないお店で食べてみたい。
• お目当ての店に着いたけれど、スープが切れて閉店
していた。近くのお店はどこだろう。
• ガイド本は持ち歩きたくない。
• お店のレビューを見たい。
• 不慣れな土地でも迷わずに行きたい。
4
ソリューション
5
携帯電話用スープカレー店データベース
+
レビュー検索エンジン
スープカレー店位置情報サイト
soupcurry.info
6
http://soupcurry.info
サイト規模
7
• 全国約520店舗を網羅
• Code LOC: 1227
• Google検索「スープカレー」第1位 (2007/5/17現在)
アクセス解析
• PC: Google Analytics 2007/4/16-2007/5/16
• 14,372 セッション
• 10,745 ユニークユーザ
• 48,004 ページビュー
• 携帯: 2007/4/1-2007/4/30
• 36,961 ページビュー
8
トップページ
9
10
店舗情報(1)
店舗情報(2)
11
付近の店舗
12
13
GPSで最寄りの店舗を検索
店舗情報
14
EZナビウォークと連携
15
実際はURLへ単なるリンク
例) http://walk.eznavi.jp/map?datum=0&unit=1&lat=+43.07820&lon=+141.34624&fm=1
Jpmobile + GeoKit
• Jpmobile Rails用携帯電話プラグイン
キャリアの判定, 端末固有情報取得, 位置情報取得,
文字コード変換
• GeoKit http://geokit.rubyforge.org/
距離の計算, 近隣検索クエリ, Geocoding
16
request.mobile.position.distance_to(‘札幌駅’)
携帯電話から札幌駅までの距離:
レビュー検索
• Web検索 Yahoo! Japan / blog検索 Technorati
• cronで定期的に巡回
• 検索ヒット数から有名度指標を計算して表示
17
hotpepper.jp API
• Web上にクーポンがある場合は表示
• 電話番号をキーにしてクエリを発行(REST)
http://api.hotpepper.jp/GourmetSearch/V1/?ShopTel=0117371600&key=guest
18
http://api.hotpepper.jp
定休日判定
• 定休日文字列から定休日を判定
• 火曜日(祝日の場合は翌日)
• 火曜日(祝日の場合は営業)
• 月曜日/第2,4土曜日
• 無休(年末年始を除く)/その他/不定
• Rubyの柔軟な文字列処理: わずか78行
19
テーブル構成
20
• 店舗情報: shops, chains
• 地名データ: regions, prefectures
• オープンiエリアデータ: iareas, iarea_meshes
• レビュー: blog_articles, yahoo_results
• タグ情報: tags, tags_shops
• ユーザ情報: users, sessions
• ログ: logs
運用
21
サイトポリシー
• 客観的情報サイトに徹する
• 自動化できる部分はどんどん自動化
• レビュー検索, クーポン検索
• 負担なくデータを更新できるインタフェイス
(当初は緯度経度と電話番号のみを格納していた)
• 技術遊びのテストベッド
とにかくおもしろそうなことをやる
22
管理画面 (1)
23
各種リマインダ
管理画面 (2)
24
履歴
25
• 2003年ごろ 構想, プロトタイプ作成
• 2005/01/24 soupcurry.infoドメイン取得
• 2005/02/11 第1世代 リリース
(Ruby CGI, さくらインターネット)
• 2005/12/08 第2世代 開発開始
• 2006/01/24 第2世代 リリース
(Ruby on Rails, bluehost)
ホスティング
26
bluehost http://bluehost.com/
共有, Rails 1.2.3, MySQL 4.1.21, FastCGI
Dual Core AMD Opteron(tm) Processor 265 x 2, 4GB
試行錯誤
27
KML出力(Google Earth)
フィードバック
• 13件のフィードバック(2007年4月)
• データの鮮度維持に不可欠
• 開店, 閉店, 誤情報の訂正, 臨時休業, 臨時営業, 定休
日・営業時間の変更, システム改善の提案, ...
• スープカレーファンの方, お店の方からも
• 投稿フォーム設置により増加(以前はメールのみ)
• サイト開設をきっかけに交流
28
まとめ
• soupcurry.infoは
• 「今すぐスープカレーを食べたい」「自分好みの
スープカレーに出会いたい」という
カレー好きの願いを叶えるサイト
• 技術遊びのテストベッド
• Ruby On Railsのおかげで楽しくプログラミング
• 携帯サイト構築にはJpmobileをお試しください
29
Future Works
• 汎用位置情報サイト構築フレームワークの開発
• 集合知にあやかりたい: wiki的位置情報サイト
→Google Mapsの改良でモチベーション低下
• AjaxなUIを実装
• ぐるなびAPIにも対応?
• 評判識別精度の向上、評判の要約
30

Contenu connexe

En vedette (20)

Exploring Online Discussion in E-Learning1
Exploring Online Discussion in E-Learning1Exploring Online Discussion in E-Learning1
Exploring Online Discussion in E-Learning1
 
AP4R on RubyKaigi2007 (English only)
AP4R on RubyKaigi2007 (English only)AP4R on RubyKaigi2007 (English only)
AP4R on RubyKaigi2007 (English only)
 
Smile
SmileSmile
Smile
 
6025 2 Research Ppt
6025 2 Research Ppt6025 2 Research Ppt
6025 2 Research Ppt
 
Vendetta
VendettaVendetta
Vendetta
 
neckermann.com introscreen
neckermann.com introscreenneckermann.com introscreen
neckermann.com introscreen
 
Sperm Race
Sperm RaceSperm Race
Sperm Race
 
Assessment
AssessmentAssessment
Assessment
 
Administrate Me
Administrate MeAdministrate Me
Administrate Me
 
Por Que Creer Y Amar Al Obispo
Por Que Creer Y Amar Al ObispoPor Que Creer Y Amar Al Obispo
Por Que Creer Y Amar Al Obispo
 
Campo el Cueto Leon 2
Campo el Cueto Leon 2Campo el Cueto Leon 2
Campo el Cueto Leon 2
 
Cr Eando Una Empresa
Cr Eando Una EmpresaCr Eando Una Empresa
Cr Eando Una Empresa
 
Una bonita historia de las que enganchan
Una bonita historia de las que enganchanUna bonita historia de las que enganchan
Una bonita historia de las que enganchan
 
QuiéN Exposicionher
QuiéN  ExposicionherQuiéN  Exposicionher
QuiéN Exposicionher
 
Chambers And New Media
Chambers And New MediaChambers And New Media
Chambers And New Media
 
Nosotros los Chilenos
Nosotros los ChilenosNosotros los Chilenos
Nosotros los Chilenos
 
Campo el Cueto Leon 1
Campo el Cueto Leon 1Campo el Cueto Leon 1
Campo el Cueto Leon 1
 
Jair Adrian Hhhhhhhh
Jair Adrian HhhhhhhhJair Adrian Hhhhhhhh
Jair Adrian Hhhhhhhh
 
Pruebatres
PruebatresPruebatres
Pruebatres
 
Stelar
StelarStelar
Stelar
 

Plus de Yoji Shidara

絵文字Ruby: From Sapporo.rb with Love for Emoji.
絵文字Ruby: From Sapporo.rb with Love for Emoji.絵文字Ruby: From Sapporo.rb with Love for Emoji.
絵文字Ruby: From Sapporo.rb with Love for Emoji.
Yoji Shidara
 
Jpmobile: Who I Wanna Be And Who I Am
Jpmobile: Who I Wanna Be And Who I AmJpmobile: Who I Wanna Be And Who I Am
Jpmobile: Who I Wanna Be And Who I Am
Yoji Shidara
 
Building Static Website With Github And Jekyll
Building Static Website With Github And JekyllBuilding Static Website With Github And Jekyll
Building Static Website With Github And Jekyll
Yoji Shidara
 
From Japanese mobile-web world, to Latin-1 developers. (a part of "East Meets...
From Japanese mobile-web world, to Latin-1 developers. (a part of "East Meets...From Japanese mobile-web world, to Latin-1 developers. (a part of "East Meets...
From Japanese mobile-web world, to Latin-1 developers. (a part of "East Meets...
Yoji Shidara
 
The Way We Are Working On Our Website @とちぎRuby会議02
The Way We Are Working On Our Website @とちぎRuby会議02The Way We Are Working On Our Website @とちぎRuby会議02
The Way We Are Working On Our Website @とちぎRuby会議02
Yoji Shidara
 
Sinatraで鼻歌混じりのWeb開発 @OSC2009-Do
Sinatraで鼻歌混じりのWeb開発 @OSC2009-DoSinatraで鼻歌混じりのWeb開発 @OSC2009-Do
Sinatraで鼻歌混じりのWeb開発 @OSC2009-Do
Yoji Shidara
 
SAPICAの利用履歴を可視化する
SAPICAの利用履歴を可視化するSAPICAの利用履歴を可視化する
SAPICAの利用履歴を可視化する
Yoji Shidara
 
Twitter4Rでつくるゆるふわ愛されTwitter bot
Twitter4Rでつくるゆるふわ愛されTwitter botTwitter4Rでつくるゆるふわ愛されTwitter bot
Twitter4Rでつくるゆるふわ愛されTwitter bot
Yoji Shidara
 
Ruby on Rails でつくるアタシ好みの愛され Web サービス
Ruby on Rails でつくるアタシ好みの愛され Web サービスRuby on Rails でつくるアタシ好みの愛され Web サービス
Ruby on Rails でつくるアタシ好みの愛され Web サービス
Yoji Shidara
 
RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう
RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こうRubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう
RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう
Yoji Shidara
 
ガラパゴスに線路を敷こう: 携帯電話用RailsプラグインJpmobile
ガラパゴスに線路を敷こう: 携帯電話用RailsプラグインJpmobileガラパゴスに線路を敷こう: 携帯電話用RailsプラグインJpmobile
ガラパゴスに線路を敷こう: 携帯電話用RailsプラグインJpmobile
Yoji Shidara
 
Twitter分散クロールの野望
Twitter分散クロールの野望Twitter分散クロールの野望
Twitter分散クロールの野望
Yoji Shidara
 
Buzztterの裏側とその周辺技術
Buzztterの裏側とその周辺技術Buzztterの裏側とその周辺技術
Buzztterの裏側とその周辺技術
Yoji Shidara
 

Plus de Yoji Shidara (17)

20100721 Buzztter
20100721 Buzztter20100721 Buzztter
20100721 Buzztter
 
絵文字Ruby: From Sapporo.rb with Love for Emoji.
絵文字Ruby: From Sapporo.rb with Love for Emoji.絵文字Ruby: From Sapporo.rb with Love for Emoji.
絵文字Ruby: From Sapporo.rb with Love for Emoji.
 
Jpmobile: Who I Wanna Be And Who I Am
Jpmobile: Who I Wanna Be And Who I AmJpmobile: Who I Wanna Be And Who I Am
Jpmobile: Who I Wanna Be And Who I Am
 
Building Static Website With Github And Jekyll
Building Static Website With Github And JekyllBuilding Static Website With Github And Jekyll
Building Static Website With Github And Jekyll
 
Inside Buzztter
Inside BuzztterInside Buzztter
Inside Buzztter
 
From Japanese mobile-web world, to Latin-1 developers. (a part of "East Meets...
From Japanese mobile-web world, to Latin-1 developers. (a part of "East Meets...From Japanese mobile-web world, to Latin-1 developers. (a part of "East Meets...
From Japanese mobile-web world, to Latin-1 developers. (a part of "East Meets...
 
The Way We Are Working On Our Website @とちぎRuby会議02
The Way We Are Working On Our Website @とちぎRuby会議02The Way We Are Working On Our Website @とちぎRuby会議02
The Way We Are Working On Our Website @とちぎRuby会議02
 
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 サービス
 
RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう
RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こうRubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう
RubyKaigi2008弾丸レポート / ガラパゴスに線路を敷こう
 
ガラパゴスに線路を敷こう: 携帯電話用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