Enviar búsqueda
Cargar
最近つくったrecent_zombies - Perlで始めるTwitterタイムライン分析
•
2 recomendaciones
•
2,081 vistas
Masahiro NAKAYAMA
Seguir
最近つくったrecent_zombies Perlで始めるTwitterタイムライン分析
Leer menos
Leer más
Tecnología
Denunciar
Compartir
Denunciar
Compartir
1 de 16
Descargar ahora
Descargar para leer sin conexión
Recomendados
実用裏方 Perl 入門
実用裏方 Perl 入門
keroyonn
Mojoliciousをウェブ制作現場で使ってみてる
Mojoliciousをウェブ制作現場で使ってみてる
jamadam
Chiba.pm #1 lt @studio3104
Chiba.pm #1 lt @studio3104
Satoshi Suzuki
Oneliner
Oneliner
NNCT programming study group
Nginx lua
Nginx lua
Moriyoshi Koizumi
Yapc -asia 2012 lt @studio3104
Yapc -asia 2012 lt @studio3104
Satoshi Suzuki
もにかじ2 lt @studio3104
もにかじ2 lt @studio3104
Satoshi Suzuki
サーバー実装いろいろ
サーバー実装いろいろ
kjwtnb
Recomendados
実用裏方 Perl 入門
実用裏方 Perl 入門
keroyonn
Mojoliciousをウェブ制作現場で使ってみてる
Mojoliciousをウェブ制作現場で使ってみてる
jamadam
Chiba.pm #1 lt @studio3104
Chiba.pm #1 lt @studio3104
Satoshi Suzuki
Oneliner
Oneliner
NNCT programming study group
Nginx lua
Nginx lua
Moriyoshi Koizumi
Yapc -asia 2012 lt @studio3104
Yapc -asia 2012 lt @studio3104
Satoshi Suzuki
もにかじ2 lt @studio3104
もにかじ2 lt @studio3104
Satoshi Suzuki
サーバー実装いろいろ
サーバー実装いろいろ
kjwtnb
20140828 #ssmjp 社内チューニンガソンで優勝したはなし
20140828 #ssmjp 社内チューニンガソンで優勝したはなし
Masahiro NAKAYAMA
20140704 cassandra introduction
20140704 cassandra introduction
Masahiro NAKAYAMA
今日から使い始めるChef
今日から使い始めるChef
Masahiro NAKAYAMA
ChefとCapistranoの境界線 (Chef Casual Talks Vol.1) #eytokyo #opschef_ja
ChefとCapistranoの境界線 (Chef Casual Talks Vol.1) #eytokyo #opschef_ja
Masahiro NAKAYAMA
Chef Howto with Vagrant + Berkshelf
Chef Howto with Vagrant + Berkshelf
Masahiro NAKAYAMA
セキュリティ・キャンプ参加してみた #ssmjp #seccamp
セキュリティ・キャンプ参加してみた #ssmjp #seccamp
Masahiro NAKAYAMA
qpstudy 2014.04 ミドルウェア設計の勘所
qpstudy 2014.04 ミドルウェア設計の勘所
Masahiro NAKAYAMA
今期の好きなアニメ「アイドルマスターシンデレラガールズ」 #infrapre
今期の好きなアニメ「アイドルマスターシンデレラガールズ」 #infrapre
Masahiro NAKAYAMA
クリスマス直前!HTML5 で作る♥はじめての iOS & Android アプリ開発
クリスマス直前!HTML5 で作る♥はじめての iOS & Android アプリ開発
Osamu Monoe
OAuth 2.0の概要とセキュリティ
OAuth 2.0の概要とセキュリティ
Hiroshi Hayakawa
クラウドセキュリティ基礎 @セキュリティ・ミニキャンプ in 東北 2016 #seccamp
クラウドセキュリティ基礎 @セキュリティ・ミニキャンプ in 東北 2016 #seccamp
Masahiro NAKAYAMA
エンジニアが知っておくべきSSL/TLSの知識(仮)
エンジニアが知っておくべきSSL/TLSの知識(仮)
Masahiro NAKAYAMA
TwitterのOAuth脆弱性
TwitterのOAuth脆弱性
Masahiro NAKAYAMA
クラウドセキュリティ基礎 #seccamp
クラウドセキュリティ基礎 #seccamp
Masahiro NAKAYAMA
15分で分か(った気になれ)るDocker
15分で分か(った気になれ)るDocker
Masahiro NAKAYAMA
Api gatewayの話
Api gatewayの話
Hiroshi Hayakawa
Perl 非同期プログラミング
Perl 非同期プログラミング
lestrrat
swooleを試してみた
swooleを試してみた
Yukihiro Katsumi
Inside Movable Type
Inside Movable Type
純生 野田
PHP Object Injection入門
PHP Object Injection入門
Yu Iwama
3時間濃縮CakePHP2.1 in PHPカンファレンス北海道2012
3時間濃縮CakePHP2.1 in PHPカンファレンス北海道2012
Yusuke Ando
Cinnamon - simple deploy tool
Cinnamon - simple deploy tool
Yuki Shibazaki
Más contenido relacionado
Destacado
20140828 #ssmjp 社内チューニンガソンで優勝したはなし
20140828 #ssmjp 社内チューニンガソンで優勝したはなし
Masahiro NAKAYAMA
20140704 cassandra introduction
20140704 cassandra introduction
Masahiro NAKAYAMA
今日から使い始めるChef
今日から使い始めるChef
Masahiro NAKAYAMA
ChefとCapistranoの境界線 (Chef Casual Talks Vol.1) #eytokyo #opschef_ja
ChefとCapistranoの境界線 (Chef Casual Talks Vol.1) #eytokyo #opschef_ja
Masahiro NAKAYAMA
Chef Howto with Vagrant + Berkshelf
Chef Howto with Vagrant + Berkshelf
Masahiro NAKAYAMA
セキュリティ・キャンプ参加してみた #ssmjp #seccamp
セキュリティ・キャンプ参加してみた #ssmjp #seccamp
Masahiro NAKAYAMA
qpstudy 2014.04 ミドルウェア設計の勘所
qpstudy 2014.04 ミドルウェア設計の勘所
Masahiro NAKAYAMA
今期の好きなアニメ「アイドルマスターシンデレラガールズ」 #infrapre
今期の好きなアニメ「アイドルマスターシンデレラガールズ」 #infrapre
Masahiro NAKAYAMA
クリスマス直前!HTML5 で作る♥はじめての iOS & Android アプリ開発
クリスマス直前!HTML5 で作る♥はじめての iOS & Android アプリ開発
Osamu Monoe
OAuth 2.0の概要とセキュリティ
OAuth 2.0の概要とセキュリティ
Hiroshi Hayakawa
クラウドセキュリティ基礎 @セキュリティ・ミニキャンプ in 東北 2016 #seccamp
クラウドセキュリティ基礎 @セキュリティ・ミニキャンプ in 東北 2016 #seccamp
Masahiro NAKAYAMA
エンジニアが知っておくべきSSL/TLSの知識(仮)
エンジニアが知っておくべきSSL/TLSの知識(仮)
Masahiro NAKAYAMA
TwitterのOAuth脆弱性
TwitterのOAuth脆弱性
Masahiro NAKAYAMA
クラウドセキュリティ基礎 #seccamp
クラウドセキュリティ基礎 #seccamp
Masahiro NAKAYAMA
15分で分か(った気になれ)るDocker
15分で分か(った気になれ)るDocker
Masahiro NAKAYAMA
Api gatewayの話
Api gatewayの話
Hiroshi Hayakawa
Destacado
(16)
20140828 #ssmjp 社内チューニンガソンで優勝したはなし
20140828 #ssmjp 社内チューニンガソンで優勝したはなし
20140704 cassandra introduction
20140704 cassandra introduction
今日から使い始めるChef
今日から使い始めるChef
ChefとCapistranoの境界線 (Chef Casual Talks Vol.1) #eytokyo #opschef_ja
ChefとCapistranoの境界線 (Chef Casual Talks Vol.1) #eytokyo #opschef_ja
Chef Howto with Vagrant + Berkshelf
Chef Howto with Vagrant + Berkshelf
セキュリティ・キャンプ参加してみた #ssmjp #seccamp
セキュリティ・キャンプ参加してみた #ssmjp #seccamp
qpstudy 2014.04 ミドルウェア設計の勘所
qpstudy 2014.04 ミドルウェア設計の勘所
今期の好きなアニメ「アイドルマスターシンデレラガールズ」 #infrapre
今期の好きなアニメ「アイドルマスターシンデレラガールズ」 #infrapre
クリスマス直前!HTML5 で作る♥はじめての iOS & Android アプリ開発
クリスマス直前!HTML5 で作る♥はじめての iOS & Android アプリ開発
OAuth 2.0の概要とセキュリティ
OAuth 2.0の概要とセキュリティ
クラウドセキュリティ基礎 @セキュリティ・ミニキャンプ in 東北 2016 #seccamp
クラウドセキュリティ基礎 @セキュリティ・ミニキャンプ in 東北 2016 #seccamp
エンジニアが知っておくべきSSL/TLSの知識(仮)
エンジニアが知っておくべきSSL/TLSの知識(仮)
TwitterのOAuth脆弱性
TwitterのOAuth脆弱性
クラウドセキュリティ基礎 #seccamp
クラウドセキュリティ基礎 #seccamp
15分で分か(った気になれ)るDocker
15分で分か(った気になれ)るDocker
Api gatewayの話
Api gatewayの話
Similar a 最近つくったrecent_zombies - Perlで始めるTwitterタイムライン分析
Perl 非同期プログラミング
Perl 非同期プログラミング
lestrrat
swooleを試してみた
swooleを試してみた
Yukihiro Katsumi
Inside Movable Type
Inside Movable Type
純生 野田
PHP Object Injection入門
PHP Object Injection入門
Yu Iwama
3時間濃縮CakePHP2.1 in PHPカンファレンス北海道2012
3時間濃縮CakePHP2.1 in PHPカンファレンス北海道2012
Yusuke Ando
Cinnamon - simple deploy tool
Cinnamon - simple deploy tool
Yuki Shibazaki
Okinawapm#3
Okinawapm#3
Kei Kamikawa
F#入門 ~関数プログラミングとは何か~
F#入門 ~関数プログラミングとは何か~
Nobuhisa Koizumi
What's Temporal model FuelPHP東京勉強会03
What's Temporal model FuelPHP東京勉強会03
Takayuki Yamaguchi
Continuation with Boost.Context
Continuation with Boost.Context
Akira Takahashi
Hachiojipm #5 LT資料 [テーマ:最近いいなと思ったもの]
Hachiojipm #5 LT資料 [テーマ:最近いいなと思ったもの]
norry_gogo
var RAC3 = ReactiveCocoa + Swift @ ReactiveCocoa Tokyo #rac_tokyo 10/18
var RAC3 = ReactiveCocoa + Swift @ ReactiveCocoa Tokyo #rac_tokyo 10/18
Syo Ikeda
Development app-with-elixir
Development app-with-elixir
k1complete
MySQLerの7つ道具
MySQLerの7つ道具
yoku0825
Migr8.rb チュートリアル
Migr8.rb チュートリアル
kwatch
CakePHP+Smartyハイブリッドによるラクラク開発
CakePHP+Smartyハイブリッドによるラクラク開発
Shinzo SAITO
Similar a 最近つくったrecent_zombies - Perlで始めるTwitterタイムライン分析
(16)
Perl 非同期プログラミング
Perl 非同期プログラミング
swooleを試してみた
swooleを試してみた
Inside Movable Type
Inside Movable Type
PHP Object Injection入門
PHP Object Injection入門
3時間濃縮CakePHP2.1 in PHPカンファレンス北海道2012
3時間濃縮CakePHP2.1 in PHPカンファレンス北海道2012
Cinnamon - simple deploy tool
Cinnamon - simple deploy tool
Okinawapm#3
Okinawapm#3
F#入門 ~関数プログラミングとは何か~
F#入門 ~関数プログラミングとは何か~
What's Temporal model FuelPHP東京勉強会03
What's Temporal model FuelPHP東京勉強会03
Continuation with Boost.Context
Continuation with Boost.Context
Hachiojipm #5 LT資料 [テーマ:最近いいなと思ったもの]
Hachiojipm #5 LT資料 [テーマ:最近いいなと思ったもの]
var RAC3 = ReactiveCocoa + Swift @ ReactiveCocoa Tokyo #rac_tokyo 10/18
var RAC3 = ReactiveCocoa + Swift @ ReactiveCocoa Tokyo #rac_tokyo 10/18
Development app-with-elixir
Development app-with-elixir
MySQLerの7つ道具
MySQLerの7つ道具
Migr8.rb チュートリアル
Migr8.rb チュートリアル
CakePHP+Smartyハイブリッドによるラクラク開発
CakePHP+Smartyハイブリッドによるラクラク開発
Más de Masahiro NAKAYAMA
ハッカソンについて(分散アーキテクチャ時代におけるWebシステムの開発と運用) #seccamp
ハッカソンについて(分散アーキテクチャ時代におけるWebシステムの開発と運用) #seccamp
Masahiro NAKAYAMA
イントロダクション(分散アーキテクチャ時代におけるWebシステムの開発と運用) #seccamp
イントロダクション(分散アーキテクチャ時代におけるWebシステムの開発と運用) #seccamp
Masahiro NAKAYAMA
クラウド時代のものづくり(分散アーキテクチャ時代におけるWebシステムの開発と運用) #seccamp
クラウド時代のものづくり(分散アーキテクチャ時代におけるWebシステムの開発と運用) #seccamp
Masahiro NAKAYAMA
めもおきば新刊のお知らせ サーバーレスでHelloWorldする25の方法 #ssmjp
めもおきば新刊のお知らせ サーバーレスでHelloWorldする25の方法 #ssmjp
Masahiro NAKAYAMA
クラウド時代における分散Webシステムの構成とスケーリング #seccamp
クラウド時代における分散Webシステムの構成とスケーリング #seccamp
Masahiro NAKAYAMA
#ServerlessDays Tokyo 2019 「サーバーレス」な同人誌の紹介
#ServerlessDays Tokyo 2019 「サーバーレス」な同人誌の紹介
Masahiro NAKAYAMA
サーバーレス時代の システム設計ワークショップ
サーバーレス時代の システム設計ワークショップ
Masahiro NAKAYAMA
#ssmjp 2018/12 技術系同人誌を手に入れよう
#ssmjp 2018/12 技術系同人誌を手に入れよう
Masahiro NAKAYAMA
FaaSのインターフェースに見るサーバーレス #serverlessconf #serverlesstokyo
FaaSのインターフェースに見るサーバーレス #serverlessconf #serverlesstokyo
Masahiro NAKAYAMA
クラウドでハンズオンする話 #ssmjp
クラウドでハンズオンする話 #ssmjp
Masahiro NAKAYAMA
SORACOMでデータ上げてクラウドで分析・可視化するハンズオン #SecHack365
SORACOMでデータ上げてクラウドで分析・可視化するハンズオン #SecHack365
Masahiro NAKAYAMA
IoT時代のセキュアなクラウドインフラ構築術 #seccamp
IoT時代のセキュアなクラウドインフラ構築術 #seccamp
Masahiro NAKAYAMA
Serverless book
Serverless book
Masahiro NAKAYAMA
クラウドではじめるリアルタイムデータ分析 #seccamp
クラウドではじめるリアルタイムデータ分析 #seccamp
Masahiro NAKAYAMA
技術系同人誌を書こう #ssmjp
技術系同人誌を書こう #ssmjp
Masahiro NAKAYAMA
「サーバレスの薄い本」からの1年 #serverlesstokyo
「サーバレスの薄い本」からの1年 #serverlesstokyo
Masahiro NAKAYAMA
BluetoothメッシュによるIoTシステムを支えるサーバーレス技術 #serverlesstokyo
BluetoothメッシュによるIoTシステムを支えるサーバーレス技術 #serverlesstokyo
Masahiro NAKAYAMA
IoT(Bluetooth mesh) × サーバーレス
IoT(Bluetooth mesh) × サーバーレス
Masahiro NAKAYAMA
Serverless Architecture Overview #cdevc
Serverless Architecture Overview #cdevc
Masahiro NAKAYAMA
細かすぎて伝わらないSORACOM Funnelのオプション紹介 #soracomug
細かすぎて伝わらないSORACOM Funnelのオプション紹介 #soracomug
Masahiro NAKAYAMA
Más de Masahiro NAKAYAMA
(20)
ハッカソンについて(分散アーキテクチャ時代におけるWebシステムの開発と運用) #seccamp
ハッカソンについて(分散アーキテクチャ時代におけるWebシステムの開発と運用) #seccamp
イントロダクション(分散アーキテクチャ時代におけるWebシステムの開発と運用) #seccamp
イントロダクション(分散アーキテクチャ時代におけるWebシステムの開発と運用) #seccamp
クラウド時代のものづくり(分散アーキテクチャ時代におけるWebシステムの開発と運用) #seccamp
クラウド時代のものづくり(分散アーキテクチャ時代におけるWebシステムの開発と運用) #seccamp
めもおきば新刊のお知らせ サーバーレスでHelloWorldする25の方法 #ssmjp
めもおきば新刊のお知らせ サーバーレスでHelloWorldする25の方法 #ssmjp
クラウド時代における分散Webシステムの構成とスケーリング #seccamp
クラウド時代における分散Webシステムの構成とスケーリング #seccamp
#ServerlessDays Tokyo 2019 「サーバーレス」な同人誌の紹介
#ServerlessDays Tokyo 2019 「サーバーレス」な同人誌の紹介
サーバーレス時代の システム設計ワークショップ
サーバーレス時代の システム設計ワークショップ
#ssmjp 2018/12 技術系同人誌を手に入れよう
#ssmjp 2018/12 技術系同人誌を手に入れよう
FaaSのインターフェースに見るサーバーレス #serverlessconf #serverlesstokyo
FaaSのインターフェースに見るサーバーレス #serverlessconf #serverlesstokyo
クラウドでハンズオンする話 #ssmjp
クラウドでハンズオンする話 #ssmjp
SORACOMでデータ上げてクラウドで分析・可視化するハンズオン #SecHack365
SORACOMでデータ上げてクラウドで分析・可視化するハンズオン #SecHack365
IoT時代のセキュアなクラウドインフラ構築術 #seccamp
IoT時代のセキュアなクラウドインフラ構築術 #seccamp
Serverless book
Serverless book
クラウドではじめるリアルタイムデータ分析 #seccamp
クラウドではじめるリアルタイムデータ分析 #seccamp
技術系同人誌を書こう #ssmjp
技術系同人誌を書こう #ssmjp
「サーバレスの薄い本」からの1年 #serverlesstokyo
「サーバレスの薄い本」からの1年 #serverlesstokyo
BluetoothメッシュによるIoTシステムを支えるサーバーレス技術 #serverlesstokyo
BluetoothメッシュによるIoTシステムを支えるサーバーレス技術 #serverlesstokyo
IoT(Bluetooth mesh) × サーバーレス
IoT(Bluetooth mesh) × サーバーレス
Serverless Architecture Overview #cdevc
Serverless Architecture Overview #cdevc
細かすぎて伝わらないSORACOM Funnelのオプション紹介 #soracomug
細かすぎて伝わらないSORACOM Funnelのオプション紹介 #soracomug
Último
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
Ryo Sasaki
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
taisei2219
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Yuma Ohgami
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
iPride Co., Ltd.
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
Toru Tamaki
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
sugiuralab
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
Toru Tamaki
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
danielhu54
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
Toru Tamaki
Último
(9)
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
最近つくったrecent_zombies - Perlで始めるTwitterタイムライン分析
1.
最近つくった recent_zombies
Perlで始めるTwitterタイムライン分析 2013-02-01 Xtone Ltd. ピザ会 Aki / @nekoruri
2.
夜中に地震が起きる
3.
とりあえずTwitterに
書き込む
4.
_人人人人人人人人人_ > 人がいっぱい! <
 ̄Y^Y^Y^Y^Y^Y^Y^Y ̄
5.
可視化 市民、幸福は義務です
6.
recent_zombies • 自分のTLで直近N分に発言した人を数える –
要するに「今TLに居る人」の数 – Twitter API: User Streams で漏らさず取得 https://dev.twitter.com/docs/streaming-apis/streams/user – 可視化というぐらいでグラフ表示 – だいたい2時間ぐらいで作った – とりあえず、直近5分と直近30分で運用 – githubで公開 https://github.com/nekoruri/recent_zombies
7.
出力例 直近5分 直近30分
8.
出力例 直近5分
地震で跳ね上がったけど Twitterごと落ちた\(^o^)/ 直近30分
9.
10.
つくりかた • Perl製83行 • 偉大なるCPANライブラリ
– AnyEvent::Twitter::Stream – Net::GrowthForecast • 割り切った仕様 – アクセストークンは自分で取得 – 既に建ってるGrowthForecastを利用
11.
イベント駆動 • AnyEvent::Twitter::Stream
– TwitterのUser Streamsを追いかける – 1件ごとにコールバックが呼ばれる – ツイートの発言日とuser.idを記録 • AnyEvent->timer – 1分毎にコールバックが呼ばれる – 直近60秒、300秒のuser.idの数を数える – GrowthForecastに投げる Net::GrowthForecast++
12.
実際のソースコード #!/home/masa/perl5/perlbrew/perls/perl-5.16.1/bin/perl use strict; use warnings; use
AnyEvent::Twitter::Stream; use Net::GrowthForecast; use Time::Piece; use List::MoreUtils qw(uniq); use Data::Dumper; require 'config.pl'; our ($consumer_key, $consumer_secret, $token, $token_secret); my $gf = Net::GrowthForecast->new(host => 'localhost', port => 5125);
13.
while(1) {
my $done = AnyEvent->condvar; my $streamer = AnyEvent::Twitter::Stream->new( consumer_key => $consumer_key, consumer_secret => $consumer_secret, token => $token, Twitterに接続 token_secret => $token_secret, method => 'userstream', timeout => 45, on_tweet => sub { my $tweet = shift; tweetが来たら save_tweet($tweet); }, save_tweetを呼ぶ on_error => sub { my $error = shift; warn "ERROR: $error"; $done->send; }, エラーやStreamsが切れたら on_eof => sub { 次のループで再接続 $done->send; }, ); my $timer; $timer = AnyEvent->timer( after => 0, 60秒ごとに interval => 60, cb => sub { update_gfを呼ぶ update_gf(); }, ); $done->recv; イベント待ち開始 }
14.
my %tweets; sub save_tweet {
my $tweet = shift; return unless $tweet->{text}; 時刻をunixtimeに my $ts = Time::Piece->strptime($tweet->{created_at}, "%a %b %d %H:%M:%S %z %Y"); $tweets{$ts->epoch}{$tweet->{user}{id}}++; } sub update_gf 1秒毎にuser_idを保存 { my $now = localtime->epoch; my $delete_period = 300; # 古いキーを削除 foreach my $old_key (grep { $_ < $now - $delete_period } keys(%tweets)) { delete $tweets{$old_key}; } 古すぎるデータは削除 #last60 my @last60_users = uniq( map { keys $tweets{$_} } grep { $now - 60 <= $_ } (keys %tweets)); $gf->post( 'twitter', 'recent_zombies', 'last60', scalar @last60_users); #last300 my @last300_users = uniq( map { keys $tweets{$_} } grep { $now - 300 <= $_ } (keys %tweets)); $gf->post( 'twitter', 'recent_zombies', 'last300', scalar @last300_users); } user_idをuniqして数えて GrowthForecastに投げる
15.
幸せなUser Streams生活を!
16.
おわり
Descargar ahora