SlideShare ist ein Scribd-Unternehmen logo
1 von 40
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 APIやStreaming
  APIを使うモジュールが充実している

• Perl自体も今もモダンに進化している
• みなさんもPerl書いてみませんか?
質問 / 気になる点
• 懇親会に出ますので、その時に気軽に
 声をかけて下さい(喜びます)

• perlbrew/cpanmのインストールでうまく
 行かない等あれば、私に協力できるこ
 とがあるかもしれません(質問歓迎)

• 検索すると色々出てきます(他力本願)
ご清聴
ありがとうございました

Weitere ähnliche Inhalte

Was ist angesagt?

Composer による依存管理 と Packagist によるライブラリの公開
Composer による依存管理 と Packagist によるライブラリの公開Composer による依存管理 と Packagist によるライブラリの公開
Composer による依存管理 と Packagist によるライブラリの公開
Shogo Kawahara
 
Pythonスタートアップ勉強会201109 python入門
Pythonスタートアップ勉強会201109 python入門Pythonスタートアップ勉強会201109 python入門
Pythonスタートアップ勉強会201109 python入門
Takayuki Shimizukawa
 
Pythonの環境導入 2014年春季版
Pythonの環境導入 2014年春季版Pythonの環境導入 2014年春季版
Pythonの環境導入 2014年春季版
Katsuhiro Morishita
 

Was ist angesagt? (11)

YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情
YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情
YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情
 
excelファイルをプログラムで出力しよう
excelファイルをプログラムで出力しようexcelファイルをプログラムで出力しよう
excelファイルをプログラムで出力しよう
 
先取り Go1.5
先取り Go1.5先取り Go1.5
先取り Go1.5
 
PHPデプロイツールの世界
PHPデプロイツールの世界PHPデプロイツールの世界
PHPデプロイツールの世界
 
「Python言語」はじめの一歩 / First step of Python
「Python言語」はじめの一歩 / First step of Python「Python言語」はじめの一歩 / First step of Python
「Python言語」はじめの一歩 / First step of Python
 
Javascriptを書きたくないヒ トのためのPythonScript
Javascriptを書きたくないヒ トのためのPythonScriptJavascriptを書きたくないヒ トのためのPythonScript
Javascriptを書きたくないヒ トのためのPythonScript
 
Composer による依存管理 と Packagist によるライブラリの公開
Composer による依存管理 と Packagist によるライブラリの公開Composer による依存管理 と Packagist によるライブラリの公開
Composer による依存管理 と Packagist によるライブラリの公開
 
第1回python勉強会
第1回python勉強会第1回python勉強会
第1回python勉強会
 
Pythonスタートアップ勉強会201109 python入門
Pythonスタートアップ勉強会201109 python入門Pythonスタートアップ勉強会201109 python入門
Pythonスタートアップ勉強会201109 python入門
 
Ubuntu LibreOffice Update
Ubuntu LibreOffice UpdateUbuntu LibreOffice Update
Ubuntu LibreOffice Update
 
Pythonの環境導入 2014年春季版
Pythonの環境導入 2014年春季版Pythonの環境導入 2014年春季版
Pythonの環境導入 2014年春季版
 

Ähnlich wie PerlのTwitterモジュールの紹介 #twtr_hack

Perl入学式をやってみた! - YAPC::Asia 2012
Perl入学式をやってみた! - YAPC::Asia 2012Perl入学式をやってみた! - YAPC::Asia 2012
Perl入学式をやってみた! - YAPC::Asia 2012
Takayuki Fukumoto
 
Perl入学式に参加して初めてwebアプリを作った話
Perl入学式に参加して初めてwebアプリを作った話Perl入学式に参加して初めてwebアプリを作った話
Perl入学式に参加して初めてwebアプリを作った話
Yuzo Iwasaki
 
PDP-11のインタプリタを作った話
PDP-11のインタプリタを作った話PDP-11のインタプリタを作った話
PDP-11のインタプリタを作った話
kanorimon
 

Ähnlich wie PerlのTwitterモジュールの紹介 #twtr_hack (20)

これからPerlを使っていくみなさんへ #Perl入学式
これからPerlを使っていくみなさんへ #Perl入学式これからPerlを使っていくみなさんへ #Perl入学式
これからPerlを使っていくみなさんへ #Perl入学式
 
anything-php-funcref-perl.el
anything-php-funcref-perl.elanything-php-funcref-perl.el
anything-php-funcref-perl.el
 
Perl入学式をやってみた! - YAPC::Asia 2012
Perl入学式をやってみた! - YAPC::Asia 2012Perl入学式をやってみた! - YAPC::Asia 2012
Perl入学式をやってみた! - YAPC::Asia 2012
 
10分でわかるPythonの開発環境
10分でわかるPythonの開発環境10分でわかるPythonの開発環境
10分でわかるPythonの開発環境
 
How to run P4 BMv2
How to run P4 BMv2How to run P4 BMv2
How to run P4 BMv2
 
実"戦"CakePHP Plugin
実"戦"CakePHP Plugin実"戦"CakePHP Plugin
実"戦"CakePHP Plugin
 
.NETのTuple応用チャレンジ WCFとC++/CLI
.NETのTuple応用チャレンジ WCFとC++/CLI.NETのTuple応用チャレンジ WCFとC++/CLI
.NETのTuple応用チャレンジ WCFとC++/CLI
 
YAPC::Asia2015
YAPC::Asia2015YAPC::Asia2015
YAPC::Asia2015
 
PHPで並列処理する ライブラリを作った
PHPで並列処理する ライブラリを作ったPHPで並列処理する ライブラリを作った
PHPで並列処理する ライブラリを作った
 
Pyconjp2014_implementations
Pyconjp2014_implementationsPyconjp2014_implementations
Pyconjp2014_implementations
 
PEP8を読んでみよう
PEP8を読んでみようPEP8を読んでみよう
PEP8を読んでみよう
 
Perl入学式に参加して初めてwebアプリを作った話
Perl入学式に参加して初めてwebアプリを作った話Perl入学式に参加して初めてwebアプリを作った話
Perl入学式に参加して初めてwebアプリを作った話
 
NDS#31
NDS#31NDS#31
NDS#31
 
PDP-11のインタプリタを作った話
PDP-11のインタプリタを作った話PDP-11のインタプリタを作った話
PDP-11のインタプリタを作った話
 
Products.PloneOrg
Products.PloneOrgProducts.PloneOrg
Products.PloneOrg
 
ライブラリ・ファースト 第91回 PHP勉強会@東京 #phpstudy
ライブラリ・ファースト 第91回 PHP勉強会@東京 #phpstudyライブラリ・ファースト 第91回 PHP勉強会@東京 #phpstudy
ライブラリ・ファースト 第91回 PHP勉強会@東京 #phpstudy
 
メルマガシステム失敗談 #perlbeginners
メルマガシステム失敗談 #perlbeginnersメルマガシステム失敗談 #perlbeginners
メルマガシステム失敗談 #perlbeginners
 
オープンCAEとPython
オープンCAEとPythonオープンCAEとPython
オープンCAEとPython
 
今日から始めるPython
今日から始めるPython今日から始めるPython
今日から始めるPython
 
Deep learning reading club @ nimiri for SWEST
Deep learning reading club @ nimiri for SWESTDeep learning reading club @ nimiri for SWEST
Deep learning reading club @ nimiri for SWEST
 

Mehr von 鉄次 尾形

Mehr von 鉄次 尾形 (20)

Perl入学式 2018年度の報告
Perl入学式 2018年度の報告Perl入学式 2018年度の報告
Perl入学式 2018年度の報告
 
【公開版】AWS基礎 for 新卒エンジニア
【公開版】AWS基礎 for 新卒エンジニア【公開版】AWS基礎 for 新卒エンジニア
【公開版】AWS基礎 for 新卒エンジニア
 
俺のこだわりデスクのその後
俺のこだわりデスクのその後俺のこだわりデスクのその後
俺のこだわりデスクのその後
 
Hokkaido.pmと7年
Hokkaido.pmと7年Hokkaido.pmと7年
Hokkaido.pmと7年
 
WordPress 運用を支える Perl
WordPress 運用を支える PerlWordPress 運用を支える Perl
WordPress 運用を支える Perl
 
障害対応とその防止策
障害対応とその防止策障害対応とその防止策
障害対応とその防止策
 
働きやすい社内を目指す!二酸化炭素計測ツール
働きやすい社内を目指す!二酸化炭素計測ツール働きやすい社内を目指す!二酸化炭素計測ツール
働きやすい社内を目指す!二酸化炭素計測ツール
 
Perl ウェブ開発の中世〜CGI と Plack の間〜
Perl ウェブ開発の中世〜CGI と Plack の間〜Perl ウェブ開発の中世〜CGI と Plack の間〜
Perl ウェブ開発の中世〜CGI と Plack の間〜
 
コードの動的生成のお話
コードの動的生成のお話コードの動的生成のお話
コードの動的生成のお話
 
三角関数の加法定理はなぜ難しいのか
三角関数の加法定理はなぜ難しいのか三角関数の加法定理はなぜ難しいのか
三角関数の加法定理はなぜ難しいのか
 
Perlで生きる10年
Perlで生きる10年Perlで生きる10年
Perlで生きる10年
 
穏やかにファイルを削除する続き
穏やかにファイルを削除する続き穏やかにファイルを削除する続き
穏やかにファイルを削除する続き
 
日本全国ぶらりPerl旅
日本全国ぶらりPerl旅日本全国ぶらりPerl旅
日本全国ぶらりPerl旅
 
穏やかにファイルを削除する
穏やかにファイルを削除する穏やかにファイルを削除する
穏やかにファイルを削除する
 
最近のメールまわりのお仕事のお話
最近のメールまわりのお仕事のお話最近のメールまわりのお仕事のお話
最近のメールまわりのお仕事のお話
 
再帰、漸化式、差分方程式とアルゴリズム Gx#20
再帰、漸化式、差分方程式とアルゴリズム   Gx#20再帰、漸化式、差分方程式とアルゴリズム   Gx#20
再帰、漸化式、差分方程式とアルゴリズム Gx#20
 
超小規模環境のMySQL #mysqlcasual
超小規模環境のMySQL #mysqlcasual超小規模環境のMySQL #mysqlcasual
超小規模環境のMySQL #mysqlcasual
 
mod_perlプログラマーがYAPCで語るレガシー開発論
mod_perlプログラマーがYAPCで語るレガシー開発論mod_perlプログラマーがYAPCで語るレガシー開発論
mod_perlプログラマーがYAPCで語るレガシー開発論
 
東京近郊のPerlコミュニティのご紹介 #lcs2015
東京近郊のPerlコミュニティのご紹介 #lcs2015東京近郊のPerlコミュニティのご紹介 #lcs2015
東京近郊のPerlコミュニティのご紹介 #lcs2015
 
4月16日だからFoursquare 位置情報とライフログ
4月16日だからFoursquare 位置情報とライフログ4月16日だからFoursquare 位置情報とライフログ
4月16日だからFoursquare 位置情報とライフログ
 

Kürzlich hochgeladen

Kürzlich hochgeladen (10)

論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 

PerlのTwitterモジュールの紹介 #twtr_hack

Hinweis der Redaktion

  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