• Like
Ruby on Rails でつくるアタシ好みの愛され Web サービス
Upcoming SlideShare
Loading in...5
×

Ruby on Rails でつくるアタシ好みの愛され Web サービス

  • 2,823 views
Uploaded on

 

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
2,823
On Slideshare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
Downloads
14
Comments
0
Likes
5

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. RubyonRailsでつくる アタシ好みの 愛されWebサービス しだら ようじ SHIDARA Yohji 日本Rubyの会 Ruby札幌 Lovable Webservices Development by Hand with Ruby on Rails. 2008-08-08 釧路工業技術センター オープンソフトウェアシステム構築講座
  • 2. 設樂 洋爾 / SHIDARA Yohji / dara ‣dara@ruby-sapporo.org ‣http://d.hatena.ne.jp/darashi http://twitter.com/darashi ‣札幌生まれ, 札幌育ち, 札幌大好き ‣大学院生 ‣Ruby札幌 運営チーム ‣RubyKaigi2008 実行委員 / スピーカ
  • 3. 今日お伝えしたいこと:
  • 4. Ruby on Rails をつかって 自分好み の Webサービス を 作ってみませんか!
  • 5. そのためにお話したいこと:
  • 6. ‣Ruby on Rails のご紹介 ‣Rails による 私の 開発事例 ‣コミュニティとのかかわり
  • 7. ‣Ruby on Rails のご紹介 ‣Rails による 私の 開発事例 ‣コミュニティとのかかわり
  • 8. Rubyとは
  • 9. まつもとゆきひろさん(通称Matz) によって開発された オブジェクト指向スクリプト言語
  • 10. http://www.ruby-lang.org/ja/about/
  • 11. http://www.ruby-lang.org/
  • 12. http://www.ruby-lang.org/
  • 13. Ruby on Rails とは
  • 14. Rubyで作られている Webアプリケーション フレームワーク
  • 15. http://www.rubyonrails.org
  • 16. http://www.rubyonrails.org
  • 17. http://www.rubyonrails.org
  • 18. 2つのキーワード ‣DRY: Don t Repeat Yourself 「同じことを繰り返さない」 ‣CoC: Convention over Configuration 「設定より規約」
  • 19. 価値観
  • 20. 「楽しい」
  • 21. Railsプロダクト
  • 22. http://www.ruby-lang.org
  • 23. http://aboutme.jp
  • 24. http://tabelog.com
  • 25. http://www.iknow.co.jp
  • 26. http://30d.jp
  • 27. http://twitter.com
  • 28. 大規模システムでの実績も
  • 29. 気付いていないだけで Railsで稼働しているサイトも 身近にあるかもしれません
  • 30. ‣Ruby on Rails のご紹介 ‣Rails による 私の 開発事例 ‣コミュニティとのかかわり
  • 31. 私事ですが、
  • 32. スープカレーが大好き
  • 33. 06: 108皿 07: 45皿 08(-8/8): 34皿
  • 34. Webサイトまで作ってしまった
  • 35. http://soupcurry.info
  • 36. http://soupcurry.info
  • 37. 最寄りのスープカレー店を 携帯電話のGPS機能で検索できる
  • 38. Ruby on Rails を つかっています
  • 39. なぜ soupcurry.info を つくったのか
  • 40. チキン 辛さ8 CHAIN GANG ORIGINAL SOUP CURRY & BAR 龍祈 http://soupcurry.info/shop/138 スープカレー ‣中毒性がある →我慢できない ‣店ごとに個性的 →食べ歩きを楽 しみたい ‣店舗が乱立気味 →好みにあった お店でぐゎらチキ天 ぐゎらん洞 http://soupcurry.info/shop/5
  • 41. よくあるシチュエーション ‣ 今すぐカレーを食べたい気分だ。 ‣ 今日は普段行かない場所に居るので、折 角だから近くの行ったことのないお店で 食べてみたい。 ‣ お目当ての店に着いたけれど、スープが 切れて閉店していた。近くのお店はどこ だろう。 ‣ ガイド本は持ち歩きたくない。 ‣ お店のレビューを見たい。 ‣ 不慣れな土地でも迷わずに行きたい。
  • 42. ソリューション ‣携帯電話用 スープカレー店データベース ‣レビュー検索エンジン +
  • 43. 「こんなサイトがあったらいいな」
  • 44. http://soupcurry.info
  • 45. http://soupcurry.info
  • 46. サイト規模
  • 47. 全国のスープカレー店 484店舗を網羅
  • 48. Google検索「スープカレー」第2位 (2008-08-03現在)
  • 49. Google検索「スープカレー」第2位 (2008-08-03現在)
  • 50. アクセス解析 (PCのみ)
  • 51. 携帯電話からのアクセス 61,234 PV/月 (2008年07月)
  • 52. LOC: 1211行
  • 53. soupcurry.info ツアー
  • 54. トップページ
  • 55. 店舗情報ページ(1) - 店舗概要
  • 56. 店舗情報ページ(2) - レビュー検索
  • 57. 店舗情報ページ(3) - 付近のお店
  • 58. 携帯電話 - GPSで最寄りの店舗を検索
  • 59. 携帯電話 - GPSで最寄りの店舗を検索
  • 60. 携帯電話 - GPSで最寄りの店舗を検索
  • 61. 携帯電話 - 店舗情報
  • 62. 携帯電話 - 店舗情報
  • 63. 携帯電話 - 店舗情報
  • 64. EZナビウォークと連携
  • 65. EZナビウォークと連携
  • 66. EZナビウォークと連携
  • 67. レビュー検索 ‣APIを利用 ‣ Web検索 Yahoo! Japan ‣ blog検索 Technorati ‣定期的に巡回 ‣検索ヒット数から有名度指標を 計算して表示
  • 68. hotpepper.jp API ‣Web上にクーポンがある場合は 表示 ‣電話番号をキーにして クエリを発行
  • 69. 定休日の自動判定 ‣定休日文字列から定休日を判定 ‣ 火曜日(祝日の場合は翌日) ‣ 火曜日(祝日の場合は営業) ‣ 月曜日/第2,4土曜日 ‣ 無休(年末年始を除く)/その他/不定 ‣Rubyの柔軟な文字列処理: わずか78行
  • 70. 運用
  • 71. サイトポリシー ‣客観的情報サイトに徹する ‣自動化できる部分はどんどん自動化 ‣レビュー検索, クーポン検索 ‣負担なくデータを更新できるインタ フェイス (当初は緯度経度と電話番号のみを格 納していた) ‣技術遊びのテストベッド とにかくおもしろそうなことをやる
  • 72. 管理画面 - トップ 各種リマインダ
  • 73. 管理画面 - 店舗情報編集
  • 74. 履歴 ‣ 2003年ごろ 構想, プロトタイプ作成 ‣ 2005/01/24 soupcurry.infoドメイン取得 ‣ 2005/02/11 第1世代 リリース (Ruby CGI, さくらインターネット) ‣ 2005/12/08 第2世代 開発開始 ‣ 2006/01/24 第2世代 リリース (Ruby on Rails, bluehost) ‣ 2008/01/19 サーバ移転 (site5.com)
  • 75. フィードバック ‣ 20件のフィードバック (2008年7月) ‣ データの鮮度維持に不可欠 ‣ 開店, 閉店, 誤情報の訂正, 臨時休業, 臨時 営業, 定休日・営業時間の変更, システム改 善の提案, ... ‣ スープカレーファンの方, お店の方からも ‣ 投稿フォーム設置により増加 (以前はメールのみ) ‣ サイト開設をきっかけに交流
  • 76. 大事なこと
  • 77. 世界がかわった
  • 78. 世界がかわった ‣スープカレー店を沢山覚えた (覚えなくていいように作ったは ずなのに・・・) ‣沢山の人が使ってくれている ‣スープカレー仲間ができた ‣サイトの構築・運営を自分の肌に 触れるものとして学んだ
  • 79. こんなサイトがあったらいいな
  • 80. それを形にするための強力な道具
  • 81. Ruby Ruby on Rails
  • 82. soupcurry.infoの もう一つの意味
  • 83. 携帯電話用サイト
  • 84. キャリア毎に仕様が全然違う
  • 85. 携帯電話用サイトを作るには 大量の雑多なノウハウが必要
  • 86. それらをモジュール化し soupcurry.info から 切り離して公開
  • 87. 携帯電話用Railsプラグイン jpmobile
  • 88. http://jpmobile-rails.org
  • 89. jpmobileが 紹介されています
  • 90. 実際のプロダクトにも
  • 91. http://tabelog.com
  • 92. 日本Ruby会議2008 jpmobile について メインセッションで発表
  • 93. ガラパゴスに 線路を敷こう 携帯電話用Railsプラグイン Jpmobile しだら ようじ SHIDARA Yohji Lay Rails on “Galapagos” Jpmobile: A Rails Plugin for Japanese Mobile Phones
  • 94. http://flickr.com/photos/june29/2600992008/
  • 95. http://flickr.com/photos/june29/2600166483
  • 96. 自分の話をこんなに沢山の人が聞い てくださって、沢山のフィードバッ クをもらえる。それも直接。 RubyKaigiってすごい。本当にす ごいところなんだな。発表を終えて から痛感しました。去年は当日ス タッフとして参加して、今年は実行 委員としても参加して、なんだかわ かったような気になっていたのです が、このスケール、この一体感。本 当に大舞台で喋ってしまった!と。 世界が少しまわった気がしました。 http://d.hatena.ne.jp/darashi/20080626/1214493910
  • 97. ここまでのまとめ
  • 98. なぜ soupcurry.info を つくったのか
  • 99. 「こんなサイトがあったらいいな」
  • 100. 結果
  • 101. 気がついたら世界がかわってた!
  • 102. ‣Ruby on Rails のご紹介 ‣Rails による 私の 開発事例 ‣コミュニティとのかかわり
  • 103. 日本Rubyの会
  • 104. http://jp.rubyist.net?About
  • 105. http://twitter.com/takahashim/statuses/881234363
  • 106. 入会案内 ‣日本Rubyの会には、本会の趣旨に 賛同する個人ないし法人が、会員と して参加することができます。入会に 際して、特に会費などは徴収しており ません。日本Rubyの会メーリング リストへ登録すれば、その時点で、 本会に入会したとみなされます。 登 録の前に、「日本Rubyの会とは」 および「日本Rubyの会会則」をよ くご確認ください。 http://jp.rubyist.net?Admission
  • 107. Ruby札幌
  • 108. Ruby札幌とは ‣札幌にて Ruby に関する活動を 行っているコミュニティです。 Ruby勉強会@札幌 や 開発集会 @札幌、Ruby Sapporo Night などのイベントを定期的 に開催しています。 ‣From Sapporo, with Love for Ruby.
  • 109. http://ruby-sapporo.org
  • 110. Rubyコミュニティと私(1) ‣2007-03-24 Ruby勉強会@札幌-2 ‣2007-05-26 Ruby勉強会@札幌-3 発表 ‣2007-06-09,10 日本Ruby会議2007 当日スタッフ ‣2007-08-13 Ruby札幌運営チーム結成
  • 111. Rubyコミュニティと私(2) ‣2008-02-16 日本PostgreSQLユーザ会 北海道支部/Ruby札幌 合同セミナー ‣2008-06-20,21,22 日本Ruby会議2008 実行委員・メインセッション発表 (最初は発表とコミュニティ出展だけ の予定だったが・・・) ‣2008-06-28 オープンソースカンファレンス2008 Hokkaido 発表
  • 112. オンラインでの交流チャネル(1) ‣blog http://d.hatena.ne.jp/darashi ‣twitter http://twitter.com/darashi ‣ML(Mailing List)
  • 113. オンラインでの交流チャネル(2) ‣Rails chat http://andworkspace.net ‣ustream.tv http://ustream.tv ‣irc
  • 114. 最初のきっかけは勉強会
  • 115. 気がついたら
  • 116. 世界がかわっていた!
  • 117. ‣Ruby on Rails のご紹介 ‣Rails による 私の 開発事例 ‣コミュニティとのかかわり
  • 118. buzztter.com
  • 119. twitter の イマを切り取るサービス
  • 120. twitter.com
  • 121. http://twitter.com
  • 122. 「いまなにしてる?」で繋がる コミュニケーションツール
  • 123. http://twitter.com/darashi
  • 124. buzztter.com
  • 125. twitter の イマを切り取るサービス
  • 126. http://buzztter.com/ja 2008-08-04 03:48am
  • 127. http://buzztter.com/ja 2008-07-24 00:45am
  • 128. 基本的なアイディア:
  • 129. 普段より多く言及されている コトバを抽出する
  • 130. 扱うべきデータ量 ‣ 2008年8月3日 buzztter調べ ‣ 387,595 updates/日 ‣ 16,149.7 updates/時 ‣ 269.2 updates/分 ‣ データの大きさ (JSON response) ‣ 約13kB/20 updates ‣ 約240.8MB/日 ‣ 約85.8GB/年
  • 131. DB 解析 クローラ 言語推定 HOT通知bot 定時通知bot ユーザ Web UI twitter.com buzztter
  • 132. 入力データの厄介事 ‣ある程度のリアルタイム性が要求 される: ‣最新の20更新しか入手できな い。 ‣取りこぼしたら終わり。 ‣各国語が混在している。 ‣言語推定が必要。
  • 133. 解析 ‣直近1時間で頻出している フレーズを抽出 ‣過去の出現頻度と比較して スコアを決定 ‣言及数と言及者数を考慮 ‣最近活発なものほど高いスコア ‣ゴミを除去するための細かな処理
  • 134. Web UI ‣かなり素直な Railsアプリケーション ‣Twitter検索エンジンとしても動作 ‣Javascriptで自動更新 ‣RSS出力あり
  • 135. 定時通知bot ‣30分ごとに上位のフレーズを送信 ‣cronで定時実行 ‣言語ごとにtwitterアカウントを用意: ‣ 日本語版 http://twitter.com/buzztter ‣ 英語版 http://twitter.com/buzztter_en
  • 136. HOT通知bot ‣バースト状態を通知する。 ‣スコアが閾値以上 ‣直近8時間以内に通知していない
  • 137. ベッドの横から世界に発信
  • 138. 自作PC Core 2 Duo 6400 (2.13GHz) Memory: 4GB HDD: 500GB SATA
  • 139. 反響
  • 140. アクセス解析
  • 141. buzztterが 紹介されています
  • 142. twitter上での反響(1) ‣ twitter、buzztter、twitter検 索、tumblr、はてブ。これらが手放せ ない。 http://twitter.com/akio0911/statuses/387770042 ‣ buzztterはtwitter-erの心を映す鏡 http://twitter.com/maybowjing/statuses/ 344534932 ‣ 相変わらずbuzztterはよく空気を読ん でる。そもそも、そういう仕組みのモノ なんだけど。 http://twitter.com/NStyles/statuses/335544352
  • 143. twitter上での反響(2) ‣ buzzterだけで何が起きたかすべてわ かる http://twitter.com/packirara/statuses/876096752 ‣ ばずったー便利だな。映画何やってるか すぐ判る。 http://twitter.com/erinaceus/statuses/851255193 ‣ ばずったーの反応速度はすごいなー http://twitter.com/enryu951/statuses/866105443 ‣ 30秒でbuzztterが「ゆれ」「地震」 を検出 http://twitter.com/colspan/statuses/864082227
  • 144. 精読・速読・buzztter ‣ (略) buzztter というサービスが存在す るからだ。自分が「速読の Twitter」を 実行しなくても、このサイトを見れば Twitter の動きが大まかにではあるが読 める。(略) http://worstman.net/blog/088 ‣ [twitter][comment]buzztterってめ ちゃくちゃ偏ってるよ。あくまでもオレが 読んでる1500人強の全ログ傾向の印象だ けど→このサイトを見れば Twitter の動 きが大まかにではあるが読める http://b.hatena.ne.jp/otsune/20071024
  • 145. 系としてのbuzztter
  • 146. メディアとしてのbuzztter ‣重大ニュースの速報 辞任, 事故, 訃報, ... ‣twitterユーザにとっての重大ニュー ス 新商品, 新機能, 買収, 訃報, ... ‣twitterユーザが注目するテレビ番組 アニメ, お笑い, ドキュメンタリー, ... ‣災害情報 地震, 雨, 雷, 火災, 停電, 電車遅延, ...
  • 147. buzztterが与える影響 ‣ このbuzztterを見たあとでは、ばんごはんを餃 子にしても、あえて餃子を避けても負けな気がす る。(意識した時点でもう精神が餃子の支配下に 置かれる) http://twitter.com/hatoko/statuses/281085152 ‣ buzztter入りしているのを見て、なんだか久々 に赤福が食いたくなってきた http://twitter.com/AIce/statuses/346543102 ‣ buzztterで思い出したけど、今日は鰻でした http://twitter.com/ozon/statuses/866961564
  • 148. 履歴 ‣2007-04-12 プロジェクト開始 ‣2007-04-24 リリース ‣2007-04-28 bot リリース ‣2007-05-01 フレーズ抽出の実装 ‣2007-05-22 類似発言抽出機能 ‣2007-06-05 英語版リリース ‣2008-06-12 全面リニューアル
  • 149. buzztterに対するツッコミ ‣はい、buzztterダウト! http://twitter.com/night16/statuses/363321482 ‣buzztter は毛ずきらしい http://twitter.com/kommm/statuses/362095092 ‣@buzztter自重しろwwwwww http://twitter.com/scudroid/statuses/339228382
  • 150. buzztterに言わせたい ‣.@buzztterが北海道という単語を キーワードにするのが僕の夢。 http://twitter.com/smokeymonkey/statuses/ 386516592 ‣buzztter に「HOT: 女装」と言わ せるライフハック。 http://twitter.com/cress_cc/statuses/349727262
  • 151. buzztterの可能性 ‣ニュース速報より早い速報 ‣草の根的ニュースメディア ‣特定のユーザ層のためのニュース メディア ‣ゆるいコミュニケーションハブ ‣情報のサーキュレータ的役割
  • 152. まとめ
  • 153. Ruby on Rails をつかって 自分好み の Webサービス を 作ってみませんか!
  • 154. 世界がかわるかも!
  • 155. Ruby / Rails の始め方
  • 156. 続きは 明日のハンズオンで!