121 Views
February 25, 24
スライド概要
2012/03/21 に Twitter API 勉強会@渋谷 で発表したスライドです。
I like 🚌 and ☕
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のインストールでうまく 行かない等あれば、私に協力できるこ とがあるかもしれません(質問歓迎) • 検索すると色々出てきます(他力本願)
ご清聴 ありがとうございました