SlideShare a Scribd company logo
1 of 119
Twitterのフォロワの
  増減がわたし…、
    気になります!
     北䑓如法 (きただいゆきのり)
        @Hiroshima.rb
      2012年10月20日(土)
オープンソースカンファレンス 2012 Hiroshima
北䑓如法
北䑓如法
• きただいゆきのり
北䑓如法
• きただいゆきのり
• にょほう (ω)
北䑓如法
• きただいゆきのり
• にょほう (ω)
• ハイパ・メディア・トランスレータ
北䑓如法
• きただいゆきのり
• にょほう (ω)
• ハイパ・メディア・トランスレータ
• Apple の動画などを広島弁に吹き替え
北䑓如法
• きただいゆきのり
• にょほう (ω)
• ハイパ・メディア・トランスレータ
• Apple の動画などを広島弁に吹き替え
• 昨年の OSC 2011 広島の PR ビデオも
Twitterのフォロワの
 増減がわたし…、
Twitterのフォロワの
 増減がわたし…、
気になります!
というわけで
Twitterのフォロワの増減
 を監視するサービス
  diff-followers
      を作成中
※まだ個人用です
※自分だけ使っています
うまくいけば
みんなが使えるような
ウェブサービスにしたい
フォロワの増減監視?
「りむったー」とかあっ
    たし
類似サービスあるし
「なんでTwitterフォロワ
監視サービスなんて作る
     んだ!!」
参考
「なんでRubyなんか作っ
た!? 迷惑だ!」に対する
          Matzの答え
http://el.jibun.atmarkit.co.jp/rails/2012/10/ruby-
                  matz-7080.html
まつもとゆきひろ氏
札幌Ruby会議2012
  基調講演にて
「モチベーションだ」
“考えてみたら、われわれにとって最も大切
 なリソースはマンパワーではなくて、
モチベーションだと思うんですね”   Matz
おおそういうこと
モチベーションですね
作ってみたくなったから
  作り始めた
diff-followers
チラ見せ
sneak preview
diff-followers構成
diff-followers構成
diff-followers構成




           開発マシン
diff-followers構成



 サーバ(家)
ウェブサーバ
gitレポジトリ
           開発マシン
diff-followers構成



 サーバ(家)
ウェブサーバ
gitレポジトリ
                       開発マシン
           ソースを管理
           push/pull
diff-followers構成



 サーバ(家)
           デプロイ(配備)
ウェブサーバ
gitレポジトリ
                       開発マシン
           ソースを管理
           push/pull
diff-followers構成
           Twitter




 サーバ(家)
              デプロイ(配備)
ウェブサーバ
gitレポジトリ
                         開発マシン
             ソースを管理
             push/pull
diff-followers構成
            Twitter

日々リクエスト
 1回/1時間




  サーバ(家)
               デプロイ(配備)
 ウェブサーバ
 gitレポジトリ
                          開発マシン
              ソースを管理
              push/pull
diff-followers構成
             Twitter

日々リクエスト
 1回/1時間
            フォロワ
            情報ゲット



  サーバ(家)
                デプロイ(配備)
 ウェブサーバ
 gitレポジトリ
                           開発マシン
               ソースを管理
               push/pull
diff-followers構成
             Twitter

日々リクエスト                      みんな
 1回/1時間                    (今は自分だけ)
            フォロワ
            情報ゲット



  サーバ(家)
                デプロイ(配備)
 ウェブサーバ
 gitレポジトリ
                           開発マシン
               ソースを管理
               push/pull
diff-followers構成
             Twitter

日々リクエスト                         みんな
 1回/1時間                       (今は自分だけ)
            フォロワ
            情報ゲット
                           アクセスして情報を見る


  サーバ(家)
                デプロイ(配備)
 ウェブサーバ
 gitレポジトリ
                              開発マシン
               ソースを管理
               push/pull
ソフトウェア構成
• Ruby (プログラミング言語(わかるわー))
• Rack + Unicorn (ウェブサーバ)
• Sinatra (軽量ウェブアプリDSL)
• DataMapper (O/Rマッパ)
• Capistrano (デプロイ)
• など (haml, sass, git, sass, crontab,
各々の気に入っている
 ところをご紹介
Sinatra
シンプルにウェブアプリ
   が作れる
require 'sinatra'

get '/' do
  '世界の皆さん、おはようがんす'
end

get '/kakure' do
  '見つかっちゃった!!!'
end
require 'sinatra'

get '/' do
  '世界の皆さん、おはようがんす'
end

get '/kakure' do
  '見つかっちゃった!!!'
end
require 'sinatra'

get '/' do
  '世界の皆さん、おはようがんす'
end

get '/kakure' do
  '見つかっちゃった!!!'
end
require 'sinatra'

get '/' do
  '世界の皆さん、おはようがんす'
end

get '/kakure' do
  '見つかっちゃった!!!'
end
require 'sinatra'

get '/' do
  '世界の皆さん、おはようがんす'
end

get '/kakure' do
  '見つかっちゃった!!!'
end
好き
次
DataMapper
自力でデータ永続化
                           データベース
         自力でアプリのモデルデータを
                            sqlite3,
モデルクラス    データベースに読み書き
                          PostgreSQL,
                           MySQL,...
DataMapper
                   データベース
                    sqlite3,
モデルクラス
                  PostgreSQL,
                   MySQL,...
DataMapper
                                 データベース
         仲介                仲介     sqlite3,
モデルクラス        DataMapper
                                PostgreSQL,
                                 MySQL,...
DataMapper
                                 データベース
         仲介                仲介     sqlite3,
モデルクラス        DataMapper
                                PostgreSQL,
                                 MySQL,...




          いわゆるO/Rマッパ
   モデルクラスとデータベースの仲介役
O/Rマッパ他にもあるけ
     ど
気に入っている
次
Capistrano
Capistrano
Capistrano
• デプロイするのにいろいろ便利
Capistrano
• デプロイするのにいろいろ便利
• rubyとsshだけで動く
Capistrano
• デプロイするのにいろいろ便利
• rubyとsshだけで動く
• ソースをレポジトリから配置
Capistrano
• デプロイするのにいろいろ便利
• rubyとsshだけで動く
• ソースをレポジトリから配置
• ウェブサーバの再起動
Capistrano
• デプロイするのにいろいろ便利
• rubyとsshだけで動く
• ソースをレポジトリから配置
• ウェブサーバの再起動
• などなど思いのまま
他にも地味に
うれしい機能
集合クラス Set
差集合
                           A    B



• 集合 A, B に対して
• AB = A-B := { x ∈ A | x ∈ B でない }
  (差集合)

• Ruby で Set というクラスは差でいきな
  り計算できる
差集合
                 A   B



• {前回の調査から今までにフォロウした
 アカウント}
 = {今のフォロワ} − {前のフォロワ}

• {前回の調査から今までにフォロウを外
 したアカウント}
 = {前のフォロワ} − {今のフォロワ}
集合演算はRubyでなくて
 もできるのが多いが
これでもBASIC少年だっ
  た僕には感涙
「キャー今風∼! 楽∼!」
ここで
最近のニュース!
最近のニュース!
• Hiroshima.rb会長(ひむひむ)が開発に参
 加
最近のニュース!
• Hiroshima.rb会長(ひむひむ)が開発に参
 加

• Git レポジトリを共有
最近のニュース!
• Hiroshima.rb会長(ひむひむ)が開発に参
 加

• Git レポジトリを共有
• 秋の夜長リファクタリングをしてもらっ
 てソースがすっきりしてきた
最近のニュース!
• Hiroshima.rb会長(ひむひむ)が開発に参
 加

• Git レポジトリを共有
• 秋の夜長リファクタリングをしてもらっ
 てソースがすっきりしてきた
最近のニュースと言えば
Twitterと関係する
ニュースと言えば
世間を騒がせているあれ
Twitter API
90+
Twitter API
accounts                               lists
             direct messages

     friends                   user timeline




             90+
                                                 block
suggestion

                    Twitter API             favorites
     followers                     search API
                       geo & locations
      trends                               streaming API
Twitter API
Twitter API version 1.1
 + Display Guidlines
diff-followersでは
従来のver.1を
使用して情報得ている
移行しなければならぬ
Twitter API v1.1 に
Twitter API v1.1 に
(((;゚Д゚))ガクガクブルブル
なぜv1.1が世間を騒がせ
   ているのか
かなり厳格になっている
ツイートの表示だけでも
  規約が厳しく
クライアントのユーザ数
  も制限 (10万)
影響
サービス継続断念
クライアントも次々
 と開発終了宣言
影響は計り知れない
「どうしてこうなった」
そういう声はおいい
(多いの意味の広島弁)
なぜじゃ…
Twitter社がここまでする
   理由を考えた。
Twitter
er
er
er
er
er
er
er
_人人人人人_
> 平家er <
 ̄^Y^Y^Y^ ̄
_人人人人人_
> 平家er <
 ̄^Y^Y^Y^ ̄
_人人人人人_
> 平家er <
 ̄^Y^Y^Y^ ̄
驕れる者久しからず
ただ春の夜の夢の如し
猛き人もついには滅びぬ
ひとへに風の前の塵に同じ
オープンソースでTwitter
APIをさわる一人として
Twitter 社、おごる平家
のようにならないでくれた
    らいいな!
以上、
diff-follwersの紹介でし

More Related Content

Viewers also liked

ユーザーストーリー駆動開発で行こう。
ユーザーストーリー駆動開発で行こう。ユーザーストーリー駆動開発で行こう。
ユーザーストーリー駆動開発で行こう。
GuildWorks
 
Robomec2014 rtm講習会第1部(その2)
Robomec2014 rtm講習会第1部(その2)Robomec2014 rtm講習会第1部(その2)
Robomec2014 rtm講習会第1部(その2)
openrtm
 
Pre rondhuit-naming-story
Pre rondhuit-naming-storyPre rondhuit-naming-story
Pre rondhuit-naming-story
Koji Sekiguchi
 
Lucene terms extraction
Lucene terms extractionLucene terms extraction
Lucene terms extraction
Koji Sekiguchi
 
Redmineをつかったスクラム開発のはじめの一歩
Redmineをつかったスクラム開発のはじめの一歩Redmineをつかったスクラム開発のはじめの一歩
Redmineをつかったスクラム開発のはじめの一歩
kiita312
 
Unityのオンラインゲームをhtmlに移植してわかったこと
Unityのオンラインゲームをhtmlに移植してわかったことUnityのオンラインゲームをhtmlに移植してわかったこと
Unityのオンラインゲームをhtmlに移植してわかったこと
Kouji Hosoda
 

Viewers also liked (20)

国境を越えた役務の提供に対する消費税が2015年度〜適用?
国境を越えた役務の提供に対する消費税が2015年度〜適用?国境を越えた役務の提供に対する消費税が2015年度〜適用?
国境を越えた役務の提供に対する消費税が2015年度〜適用?
 
コミュニティマネージャー感謝の日ミートアップワークシート共有
コミュニティマネージャー感謝の日ミートアップワークシート共有コミュニティマネージャー感謝の日ミートアップワークシート共有
コミュニティマネージャー感謝の日ミートアップワークシート共有
 
150130 edison-ug
150130 edison-ug150130 edison-ug
150130 edison-ug
 
ユーザーストーリー駆動開発で行こう。
ユーザーストーリー駆動開発で行こう。ユーザーストーリー駆動開発で行こう。
ユーザーストーリー駆動開発で行こう。
 
Robomec2014 rtm講習会第1部(その2)
Robomec2014 rtm講習会第1部(その2)Robomec2014 rtm講習会第1部(その2)
Robomec2014 rtm講習会第1部(その2)
 
RTミドルウエア講習会2015
RTミドルウエア講習会2015RTミドルウエア講習会2015
RTミドルウエア講習会2015
 
正直過ぎる家入さんは他候補者の凄さを無効化する20140127 f
正直過ぎる家入さんは他候補者の凄さを無効化する20140127 f正直過ぎる家入さんは他候補者の凄さを無効化する20140127 f
正直過ぎる家入さんは他候補者の凄さを無効化する20140127 f
 
ゲーム”DAI-ENJO”から始めるLEAN UX by チームAnchoco
ゲーム”DAI-ENJO”から始めるLEAN UX by チームAnchocoゲーム”DAI-ENJO”から始めるLEAN UX by チームAnchoco
ゲーム”DAI-ENJO”から始めるLEAN UX by チームAnchoco
 
Kanban in wonderland
Kanban in wonderlandKanban in wonderland
Kanban in wonderland
 
Pre rondhuit-naming-story
Pre rondhuit-naming-storyPre rondhuit-naming-story
Pre rondhuit-naming-story
 
Lucene terms extraction
Lucene terms extractionLucene terms extraction
Lucene terms extraction
 
Serf2Excel - Serf を実運用に活かす話 + Consul もあるよ
Serf2Excel - Serf を実運用に活かす話 + Consul もあるよSerf2Excel - Serf を実運用に活かす話 + Consul もあるよ
Serf2Excel - Serf を実運用に活かす話 + Consul もあるよ
 
【java8 勉強会】 怖くない!ラムダ式, Stream API
【java8 勉強会】 怖くない!ラムダ式, Stream API【java8 勉強会】 怖くない!ラムダ式, Stream API
【java8 勉強会】 怖くない!ラムダ式, Stream API
 
Redmineをつかったスクラム開発のはじめの一歩
Redmineをつかったスクラム開発のはじめの一歩Redmineをつかったスクラム開発のはじめの一歩
Redmineをつかったスクラム開発のはじめの一歩
 
Intel® Curie™ Module High Density System-in-Package for IoT 2016 teardown rev...
Intel® Curie™ Module High Density System-in-Package for IoT 2016 teardown rev...Intel® Curie™ Module High Density System-in-Package for IoT 2016 teardown rev...
Intel® Curie™ Module High Density System-in-Package for IoT 2016 teardown rev...
 
PHPでセキュリティを真面目に考える
PHPでセキュリティを真面目に考えるPHPでセキュリティを真面目に考える
PHPでセキュリティを真面目に考える
 
40分濃縮 PHP classの教室
40分濃縮 PHP classの教室40分濃縮 PHP classの教室
40分濃縮 PHP classの教室
 
とあるイルカの近況報告
とあるイルカの近況報告とあるイルカの近況報告
とあるイルカの近況報告
 
MySQLと正規形のはなし
MySQLと正規形のはなしMySQLと正規形のはなし
MySQLと正規形のはなし
 
Unityのオンラインゲームをhtmlに移植してわかったこと
Unityのオンラインゲームをhtmlに移植してわかったことUnityのオンラインゲームをhtmlに移植してわかったこと
Unityのオンラインゲームをhtmlに移植してわかったこと
 

Similar to Twitterのフォロワの増減がわたし…、 気になります! (OSC 2012 広島, Hiroshima.rb)

fluxflex meetup in Tokyo
fluxflex meetup in Tokyofluxflex meetup in Tokyo
fluxflex meetup in Tokyo
Kyosuke Inoue
 
Fluxflex meetup 2011 in Tokyo
Fluxflex meetup 2011 in TokyoFluxflex meetup 2011 in Tokyo
Fluxflex meetup 2011 in Tokyo
Kyosuke Inoue
 
泥臭い運用から、プログラマブルインフラ構築(に行きたい)
泥臭い運用から、プログラマブルインフラ構築(に行きたい) 泥臭い運用から、プログラマブルインフラ構築(に行きたい)
泥臭い運用から、プログラマブルインフラ構築(に行きたい)
Akihiro Kuwano
 

Similar to Twitterのフォロワの増減がわたし…、 気になります! (OSC 2012 広島, Hiroshima.rb) (20)

Prestoで実現するインタラクティブクエリ - dbtech showcase 2014 Tokyo
Prestoで実現するインタラクティブクエリ - dbtech showcase 2014 TokyoPrestoで実現するインタラクティブクエリ - dbtech showcase 2014 Tokyo
Prestoで実現するインタラクティブクエリ - dbtech showcase 2014 Tokyo
 
[db tech showcase Tokyo 2014] D33: Prestoで実現するインタラクティブクエリ by トレジャーデータ株式会社 斉藤太郎
[db tech showcase Tokyo 2014] D33: Prestoで実現するインタラクティブクエリ  by トレジャーデータ株式会社 斉藤太郎[db tech showcase Tokyo 2014] D33: Prestoで実現するインタラクティブクエリ  by トレジャーデータ株式会社 斉藤太郎
[db tech showcase Tokyo 2014] D33: Prestoで実現するインタラクティブクエリ by トレジャーデータ株式会社 斉藤太郎
 
Data management of cosmos db using apache gremlin
Data management of cosmos db using apache gremlinData management of cosmos db using apache gremlin
Data management of cosmos db using apache gremlin
 
情報爆発シンポジウム infoplosion
情報爆発シンポジウム infoplosion情報爆発シンポジウム infoplosion
情報爆発シンポジウム infoplosion
 
高速処理と高信頼性を両立し、ペタバイト級の多種大量データを蓄積する、ビッグデータ/ IoT時代のデータベースとは??
高速処理と高信頼性を両立し、ペタバイト級の多種大量データを蓄積する、ビッグデータ/ IoT時代のデータベースとは??高速処理と高信頼性を両立し、ペタバイト級の多種大量データを蓄積する、ビッグデータ/ IoT時代のデータベースとは??
高速処理と高信頼性を両立し、ペタバイト級の多種大量データを蓄積する、ビッグデータ/ IoT時代のデータベースとは??
 
Prepを使ってデータを武器にしよう!
Prepを使ってデータを武器にしよう!Prepを使ってデータを武器にしよう!
Prepを使ってデータを武器にしよう!
 
Prepを使ってデータを武器にしよう
Prepを使ってデータを武器にしようPrepを使ってデータを武器にしよう
Prepを使ってデータを武器にしよう
 
機械学習でお小遣いを稼ぐ! - 本推薦 Twitter bot の紹介 -
機械学習でお小遣いを稼ぐ! - 本推薦 Twitter bot の紹介 -機械学習でお小遣いを稼ぐ! - 本推薦 Twitter bot の紹介 -
機械学習でお小遣いを稼ぐ! - 本推薦 Twitter bot の紹介 -
 
Tableauのつまづきポイント
TableauのつまづきポイントTableauのつまづきポイント
Tableauのつまづきポイント
 
fluxflex meetup in Tokyo
fluxflex meetup in Tokyofluxflex meetup in Tokyo
fluxflex meetup in Tokyo
 
アプリチームを支えるSlack bot
アプリチームを支えるSlack botアプリチームを支えるSlack bot
アプリチームを支えるSlack bot
 
Firebase & BigQuery で Android アプリの成⻑を支える
Firebase & BigQuery で Android アプリの成⻑を支えるFirebase & BigQuery で Android アプリの成⻑を支える
Firebase & BigQuery で Android アプリの成⻑を支える
 
スマートニュースの世界展開を支えるログ解析基盤
スマートニュースの世界展開を支えるログ解析基盤スマートニュースの世界展開を支えるログ解析基盤
スマートニュースの世界展開を支えるログ解析基盤
 
広島IT勉強会カレンダー(仮)はRubyを使っています
広島IT勉強会カレンダー(仮)はRubyを使っています広島IT勉強会カレンダー(仮)はRubyを使っています
広島IT勉強会カレンダー(仮)はRubyを使っています
 
Fluxflex meetup 2011 in Tokyo
Fluxflex meetup 2011 in TokyoFluxflex meetup 2011 in Tokyo
Fluxflex meetup 2011 in Tokyo
 
Deep learning Libs @twm
Deep learning Libs @twmDeep learning Libs @twm
Deep learning Libs @twm
 
Twitter API
Twitter APITwitter API
Twitter API
 
Apache Drill Overview - Tokyo Apache Drill Meetup 2015/09/15
Apache Drill Overview - Tokyo Apache Drill Meetup 2015/09/15Apache Drill Overview - Tokyo Apache Drill Meetup 2015/09/15
Apache Drill Overview - Tokyo Apache Drill Meetup 2015/09/15
 
ビッグデータ&データマネジメント展
ビッグデータ&データマネジメント展ビッグデータ&データマネジメント展
ビッグデータ&データマネジメント展
 
泥臭い運用から、プログラマブルインフラ構築(に行きたい)
泥臭い運用から、プログラマブルインフラ構築(に行きたい) 泥臭い運用から、プログラマブルインフラ構築(に行きたい)
泥臭い運用から、プログラマブルインフラ構築(に行きたい)
 

Twitterのフォロワの増減がわたし…、 気になります! (OSC 2012 広島, Hiroshima.rb)

Editor's Notes

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n
  31. \n
  32. \n
  33. \n
  34. \n
  35. \n
  36. \n
  37. \n
  38. \n
  39. \n
  40. \n
  41. \n
  42. \n
  43. \n
  44. \n
  45. \n
  46. \n
  47. \n
  48. \n
  49. \n
  50. \n
  51. \n
  52. \n
  53. \n
  54. \n
  55. \n
  56. \n
  57. \n
  58. \n
  59. \n
  60. \n
  61. \n
  62. \n
  63. \n
  64. \n
  65. \n
  66. \n
  67. \n
  68. \n
  69. \n
  70. \n
  71. \n
  72. \n
  73. \n
  74. \n
  75. \n
  76. \n
  77. \n
  78. \n
  79. \n
  80. \n
  81. \n
  82. \n
  83. \n
  84. \n
  85. \n
  86. \n
  87. \n
  88. \n
  89. \n
  90. \n
  91. \n
  92. \n
  93. \n
  94. \n
  95. \n
  96. \n
  97. \n
  98. \n
  99. \n
  100. \n
  101. \n
  102. \n
  103. \n
  104. \n
  105. \n
  106. \n
  107. \n
  108. \n
  109. \n
  110. \n
  111. \n
  112. \n
  113. \n
  114. \n
  115. \n
  116. \n
  117. \n
  118. \n
  119. \n
  120. \n
  121. \n
  122. \n
  123. \n
  124. \n
  125. \n
  126. \n