Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
PerlのTwitterモジュールの紹介
Search
OGATA Tetsuji
March 21, 2012
Technology
0
11
PerlのTwitterモジュールの紹介
2012/03/21 に Twitter API 勉強会@渋谷 で発表したスライドです。
OGATA Tetsuji
March 21, 2012
Tweet
Share
More Decks by OGATA Tetsuji
See All by OGATA Tetsuji
Hokkaido.pmがあって YAPCでトークできた
xtetsuji
0
17
モダンmod_perl入門 #yapcasia
xtetsuji
0
11
札幌でテンプレート #hokkaidopm
xtetsuji
0
18
すごいmod_perl
xtetsuji
0
8
Perl WAF Overview, with mod_perl - Hokkaido.pm#7 #hokkaidopm
xtetsuji
0
8
mod_perl hacks PHP
xtetsuji
0
5
文字化け2011〜まだまだ化けます〜
xtetsuji
0
11
mod_perl温故知新 〜Perl CGIの高速化からメールサーバまで〜
xtetsuji
0
7
Other Decks in Technology
See All in Technology
テストコード品質を高めるためにMutation Testingライブラリ・Strykerを実戦導入してみた話
ysknsid25
7
2.6k
DynamoDB でスロットリングが発生したとき/when_throttling_occurs_in_dynamodb_short
emiki
0
230
BLADE: An Attempt to Automate Penetration Testing Using Autonomous AI Agents
bbrbbq
0
310
Making your applications cross-environment - OSCG 2024 NA
salaboy
0
190
組織成長を加速させるオンボーディングの取り組み
sudoakiy
2
170
10XにおけるData Contractの導入について: Data Contract事例共有会
10xinc
6
650
複雑なState管理からの脱却
sansantech
PRO
1
150
AWS Lambda のトラブルシュートをしていて思うこと
kazzpapa3
2
180
Terraform Stacks入門 #HashiTalks
msato
0
360
AIチャットボット開発への生成AI活用
ryomrt
0
170
【Pycon mini 東海 2024】Google Colaboratoryで試すVLM
kazuhitotakahashi
2
520
B2B SaaSから見た最近のC#/.NETの進化
sansantech
PRO
0
840
Featured
See All Featured
GraphQLの誤解/rethinking-graphql
sonatard
67
10k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
109
49k
Into the Great Unknown - MozCon
thekraken
32
1.5k
Why You Should Never Use an ORM
jnunemaker
PRO
54
9.1k
Building Your Own Lightsaber
phodgson
103
6.1k
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
Speed Design
sergeychernyshev
25
620
KATA
mclloyd
29
14k
Being A Developer After 40
akosma
86
590k
Become a Pro
speakerdeck
PRO
25
5k
Fontdeck: Realign not Redesign
paulrobertlloyd
82
5.2k
How to Ace a Technical Interview
jacobian
276
23k
Transcript
PerlͷTwitter Ϟδϡʔϧͷհ גࣜձࣾfonfun ඌܗ మ࣍ (OGATA Tetsuji) Twitter: @xtetsuji 2012/03/21
ࣗݾհ
ࣗݾհ • ඌܗ మ࣍ (OGATA Tetsuji) • Twitter: @xtetsuji •
Blog: http://post.tetsuji.jp/ • Α͘ॻ͘ͷ: Perl / Shell Script / JavaScript • ʮTwitter APIษڧձʯલճॳग़੮Ͱɺ ͻΐΜͳ͜ͱ͔ΒLTΛ͢Δ͜ͱʹͳͬͨ
ॴଐհ • גࣜձࣾfonfun(ϑΥϯϑΝϯ) http://www.fonfun.co.jp/ • ओྗɿϦϞʔτϝʔϧ http://rmail.jp/ (Twitter: @rmailjp) •
Hokkaido.pm http://hokkaido.pm.org/ (Twitter: @hokkaidopm)
͡Ίʹ • ֶੜͷօ͞Μɺࣾձਓͷօ͞Μɺ Java HackerͷΈͳ͞Μɺ͜Μʹͪ • Javaશવॻ͚·ͤΜ(͢Έ·ͤΜ) • PerlΛ9ॻ͍͍ͯ·͕͢ɺͦΕ΄Ͳ PerlΓ·ͤΜ(͕ࣝภ͍ͬͯΔ)
͡Ίʹ • ͱ͍ͬͨΘ͚ͰɺࢲPerlͷදͱ͍͏ ྗྔͳ͍ͷͰɺ͋·Γظ͠ͳ͍Ͱ Լ͍͞ • Apache mod_perlৄ͍͠΄͏Ͱ͢
Agenda
Agenda • ΠϚυΩͷPerlͷհ • Perlʹৄ͘͠ͳ͍ਓ͚ɿPerlڥߏங • Twitterؔ࿈ͷPerlϞδϡʔϧΛ͍͔ͭ͘ հ
ΠϚυΩͷPerlͷհ
ΠϚυΩͷPerlͷհ • ܰྔݴޠͰΑ͋͘Δޡղ • ݹ͍: Perl • ৽͍͠: PHP, Python,
Ruby
ΠϚυΩͷPerlͷհ • ਖ਼͍͠ཧղ • ʑਐԽΛଓ͚͍ͯΔ: Perl, PHP, Python, Ruby •
Perlࠓʮݹ͍ʯͷͰܾͯ͠ແ͘ ʮݹ͔͘Β͋Δʯͱ͍͏ઌൃͳ͚ͩ • ݕࡧͰग़ͯ͘Δʮݹ͍ใʯ͕ωοΫ
ΠϚυΩͷPerlͷհ • Perlࠓ༷ʑͳϋοΧʔ(Perl Monger) ʹΑͬͯʑਐԽΛଓ͚͍ͯΔ • ͯ͢հ͖͠Ε·ͤΜ͕ɺࠓճͷ ͷϕʔεͱͯ͠ʹཱͭΛগ͠…
ΠϚυΩͷPerlͷհ • ڥߏங: Perlbrew • Rubyͷrvm(Ruby Version Manager)ɺ PythonͷpythonbrewͷΑ͏ͳͷ •
طଘͱผͷPerlڥΛ؆୯ʹ࡞Δࣄ ͕Ͱ͖Δͷ
Perlbrew • ৄ͘͠ http://perlbrew.pl/ Λࢀর͢Δ ͔ɺ”perlbrew” Ͱݕࡧͯ͠ΈΔ • ͱͯ؆୯ •
OS(Distribution)ඪ४ͷPerlڥΛԚͣ͞ ʹࡁΉ
Perlbrew
Perlbrew • PerlbrewͷΠϯετʔϧ • $ curl -kL http://install.perlbrew.pl | bash
• γΣϧڥมͷઃఆ(.bashrcʹه) • source ~/perl5/perlbrew/etc/bashrc • ͜Ε͚ͩ
Perlbrew • Perlbrewͷҙ • Ϗϧυʹඞཁͳڥ͕ඞཁ • Linux(e.g. Debian)ͩͱbuild-essential • Mac
OS X ͩͱ Xcode + α
Perlbrew • PerlbrewͰ Perl 5.14.2 ΛΠϯετʔϧ • perlbrew install perl-5.14.2
Perlbrew • Perl 5.14.2 ͕ೖͬͨΒ͑ΔΑ͏ʹ͢Δ • $ perlbrew switch perl-5.14.2
• cpanm (App::cpanminus) ೖΕΔ • $ perlbrew install-cpanm cpanm ίϚϯυ͕͑ΔΑ͏ʹͳΔ
Perl and CPAN
Perl and CPAN • CPAN (͠ʔͺΜ) = Comprehensive Perl Archive
Network • PerlϞδϡʔϧͷڊେͳϥΠϒϥϦ
Perl and CPAN
Perl and CPAN
Perl and CPAN • Ϟδϡʔϧݕࡧ metacpan.org ͔ search.cpan.org Ͱߦ͑Δ •
ͦΕͰ search.cpan.org ͰʮTwitterʯΛ ݕࡧͯ͠ΈΔ͜ͱʹ…
Twitter Module of Perl
Twitter Module of Perl
Twitter Module of Perl • ࠓճ144ݸݟ͔ͭͬͨ • ͪͳΈʹ “Tweet” Ͱ51ݸݟ͔ͭͬͨ
• ͲΕΛ͏ͱΑ͍͔ɺ׆ൃʹϝϯς φϯε͞Ε͍ͯΔ͔͕Ұͭͷࢦඪ • ࠷ऴߋ৽͕ҰͭͷࢀߟʹͳΓ·͢
Twitter Module of Perl • େ͖͚ͯ͘ҎԼͷΑ͏ͳͷ͕͋Δ • ୯ମͰ͑ΔAPIͷϥούʔ • ԿΒ͔ͷϑϨʔϜϫʔΫͷϓϥάΠϯ
(WAFؚΉ)
Twitter Module of Perl • ͨͿΜ࣌ؒࠩ͠ഭ͖ͬͯͨ͜Ζͳͷ Ͱɺ͍͔ͭ͘ओཁͳϞδϡʔϧΛհ • ԿΒ͔ͷϑϨʔϜϫʔΫͷϓϥάΠϯ ͱͯ͠ͷTwitterϞδϡʔϧׂѪ
Net::Twitter • OAuth͔Βߘ·ͰɺҰ࿈ͷREST APIʹ ରԠ͢Δϝιου͕ἧ͍ͬͯΔ • ଟ͘ͷPerl TwitterϞδϡʔϧ͜ΕΛ ͍ͬͯΔέʔε͕ଟ͍(ͬΆ͍) •
ಉ͡࡞ऀͷܰྔ൛Ϟδϡʔϧ Net::Twitter::Lite͋Δ
AnyEvent::Twitter:: Stream • ͪ͜ΒREST APIͰͳ͘Twitterͷ Streaming APIΛར༻Ͱ͖Δͷ • ϞμϯͳPerlͰσϑΝΫτελϯμʔυ Ͱ͋ΔΠϕϯτۦಈϑϨʔϜϫʔΫ
AnyEventΛϕʔεͱͨ͠Ϟδϡʔϧ
Tweet::ToDelicious • ͪ͜ΒԠ༻ϞδϡʔϧͷҰྫ • Twitter APIʹAnyEvent::Twitter::StreamΛ ͬͨϞδϡʔϧ • πΠʔτʹURLؚ͕·Ε͍ͯͨΒࢦఆͷ DeliciousΞΧϯτʹϒοΫϚʔΫొ
͕Ͱ͖Δ
؆୯ͳαϯϓϧ
؆୯ͳαϯϓϧ • ϞμϯͳPerlͷڥPerlbrewͰ࡞Εͨ • cpanmೖΕͨ • ඞཁͳϞδϡʔϧͷΠϯετʔϧ • $ cpanm
AnyEvent::Twitter::Stream • ґଘϞδϡʔϧࣗಈతʹೖΔ
؆୯ͳαϯϓϧ • AnyEvent::Twitter::StreamΛͬͯɺݕࡧ ΛோΊͳ͕ΒৄࡉΛϩάʹه͢Δɺ ؆୯ͳΞϓϦέʔγϣϯΛ࡞ͬͯΈΔ • https://gist.github.com/2139804 twitter-stream-search.pl (by xtetsuji)
• ͨͿΜखܰʹࢼͤΔͣ
؆୯ͳαϯϓϧ DEMO
·ͱΊ
·ͱΊ • PerlʹTwitterͷREST APIStreaming APIΛ͏Ϟδϡʔϧ͕ॆ࣮͍ͯ͠Δ • PerlࣗମࠓϞμϯʹਐԽ͍ͯ͠Δ • Έͳ͞ΜPerlॻ͍ͯΈ·ͤΜ͔ʁ
࣭ / ؾʹͳΔ • ࠙ձʹग़·͢ͷͰɺͦͷ࣌ʹؾܰʹ Λ͔͚ͯԼ͍͞(تͼ·͢) • perlbrew/cpanmͷΠϯετʔϧͰ͏·͘ ߦ͔ͳ͍͋ΕɺࢲʹڠྗͰ͖Δ͜ ͱ͕͋Δ͔͠Ε·ͤΜ(࣭ܴ)
• ݕࡧ͢Δͱ৭ʑग़͖ͯ·͢(ଞྗຊئ)
͝ਗ਼ௌ ͋Γ͕ͱ͏͍͟͝·ͨ͠