Plagger入門以前

イントロダクション

はてブで「それPla」がPlagger本体より先に普及したが、その実体はよく見えてこない。有名な「Googleで検索するとピザが届く」を筆頭として、何でもPlaggerで出来るという謳い文句を聞いて、いざやってみようと情報収集してみても、全くの初心者向けのドキュメントというものは未だに存在していない。つまり、「はてな村」のように「Plagger村」がある。


例えば、滅多に使わない「Notify::Eject」を使ったような、アドホックな実践例は見つかる。しかし、そもそも「config.yaml」をどう書くのかとか、一から順序を踏まえた記事をほとんど見ない。一階から二階に続く階段が無いのに、五階六階の案内図だけ貼ってあるようなものだ。もっとも技術者向けのマニアなツール自体は必要だし、それを無理に大衆化する必要もないが、入口の看板(「それPla」)だけがネオンで光っているために迷子になってしまう。


実際にPlaggerを使いこなすためには、(たとえシノプシスだけでも、面倒臭がらずに)「ソースが読めるか」どうかが壁になる。そして、一般ユーザはソフトを使う際にその習慣がないため、このキャズムを超えてマジョリティにまでは普及しないだろう。だから、たとえPlaggerの本がオライリーから出ても、ネトランでブレイクするのは難しいだろう*1


そこでここでは使い方以前に、そもそもPlaggerは何に使えるものなのか、という「入門以前」の素朴な(Plaggerが使える者にとっては退屈な)説明をする。適当に書いているわけではないが、私自身がまだ学習している最中なので、色々間違っているかもしれないし、上級者から見れば勘所を外しているかもしれない。だから以下での説明は一生徒のリポートに過ぎない。私は現時点でPlaggerを1%も使いこなせていないと思うが、それでも素晴らしい可能性を感じるので、その一端を書いてみる。

Plaggerとは何か

私が捉えている「Plagger」とは、「プラグインで拡張可能な、RSS/Atom入出力変換ソフトウェア、及びフレームワーク*2のことだ。すなわち、「ネット上の情報を入力し、編集加工して出力する装置と、その拡張のための枠組み」を指す。もっと端的に言うと、「ネット情報自動収集システム」だ。


入力できるフォーマットは、RSSを配信しているブログはもちろん、していない普通のサイトからも取得することができる。最初から多くの有名サイトに対応しているが、拡張の手間を惜しまなければ、かなり柔軟に対応することができる。乱暴に言うと、「はてなアンテナ」で巡回できるところならまず取って来れるし、ログインが効く分もっと多い。そうして取得したデータを、重複を省いたり複数のフィードを一本化したり、加工できる。そしてそれを、有名なGmailへ送信する*3こともできるし、RSSJavascriptJSON・CHTML…などの各種データとして出力できる。他にも2chdatやpdfやswfでも…要するに、何でも入出力・加工できるところが魅力だ。

なぜPlagger

今述べたようにPlaggerはネットのデータを自動で収集する道具だが、ソースを読んだり面倒な手間を掛けなくても、既存のサービスで代替することはできないだろうか。実はできなくもない。「それPla」というのは裏を返せば「それPla以外」ということでもある。しかし、「Pla以外」はあまりに雑多なのが問題なのだ。


カスタマイズ性が低い代わりに、ボタンを押すだけで使えるタイプの、アプリ・サービスで代用できる場合はよくある。しかし例えばやりたいことが100個位あったとすると、100個のアプリを探してきてダウンロードしたりサービスに登録するより、Plagger1つで済めばその方がスマートだ。そしてもし既存のものがまだなくても、自分で拡張することができる。「天気予報で雨のときに携帯にメールを送ろう」とか、「AのときにBを〜」という思いつきをすぐに(とは行かなくても)実現できる。


ここで振り返ってみよう。はてなで言えば、ブラウザのブックマークから「はてなアンテナ」に乗り換えることで、更新されてないページを何百も開く必要がなくなり、更に「はてなRSS」に乗り換えることで、更新情報を時系列でストックして一覧できるようになって、更に大量の情報から目的とする記事を見ることが出来るようになった。


これがPlaggerなら更に幅広く扱え、かつ奥深く改造できるという訳だ。だから、いったんはてなアンテナを使うと便利で手放せないように、Plaggerを使い始めると手作業で情報を収集する気がなくなるだろう。特に大量かつ多様な情報に関する単純作業から解放して時間を生み出してくれる。特定の情報だけ集めるなら、例えばはてなRSSキーワード登録でもできるが、正規表現などがある程度自由に使えるので、ふるい分けの精度が全然違う。


Plaggerが使えるかどうかの分かりやすい基準として、試みに以下の条件式を挙げてみる。これが成立すれば使わない手はない。ここで当然、「使ってみなければどれ位時間が掛かるか分からないので事前に判断できない」というディレンマが出てくるが、例えば毎日1時間、単純作業が削減できると踏めば、Perl自体を学んでも構わないだろう。

Plaggerが産み出す時間>Plaggerを習得する時間

Plaggerはどのように使うのか

「入門以前」だから使い方には触れないが、それでも概要だけ簡潔に述べておく。インストールはPPMの登場以来楽になったが、その次にどうすればいいか。基本的には「config.yaml」に設定を書いて、WindowsXPなら「コマンドプロンプト」(もちろんバッチファイルでも)からPlaggerを起動するだけだ。設定を書くYAMLという書式は、HTMLやXMLたちの遠い親戚のような、簡単なデータ記述用言語で、UTF-8Nで書く。そして、実行時「-c」のコマンドオプションを付ける事で、任意のディレクトリのYAMLを適用できる。


config.yamlには、下の表にあるように「入力」→「処理」→「出力」の順にモジュールを並べて書くだけで使える。大雑把に、購読がRSSを吐くサイトで、取得が吐かないサイト(カトゆーとか)からの生成、出力がデータ書き出しで、通知が何かのイベントを起こす。三段階それぞれに多種多様なプラグインが用意されており、その可能な組み合わせ数は爆発的に多い。(本当はLWPなどのモジュールだけでも相当有り難いことなのだが)これが私のようにコードが書けない素人には大変楽で、「Ruby on Rails」のように「生産性が十倍」かもしれない。

入力 処理 出力
購読(Subscription) 変換(Filter) 出力(Publish)
取得(CustomFeed)   通知(Notify)

参考リンク

このブログは萌えがテーマなので、次の解説の予定は今のところない。しかし、今まで述べたことは初歩の初歩に過ぎないので、もっと先に進んだテキストを厳選して紹介しておこう。


Plagger
公式。
plagger - otsune FreeStyleWiki
それPlaキングのまとめ。「それPla」と唱えて極楽浄土。
しげふみメモ:Windowsで簡単にPlaggerをインストールする方法
最終兵器PPMの登場で、インストールはもはや遠い日の花火ではない。私も一発で入った。
Muibrog - いまPla もくじ。
config.yamlの書き方。普通のサイトから自在に情報を得る101の方法。
jun-ichi.blog.hatena - Plaggerについての情報源の整理
リンク集。ここから更に広大なPlaggerワールドへSETSUZOKUせよ。
萌え理論Blog - Plaggerが「便利ツール」だという誤解
今回の続編で、Plaggerの敷居の高さに焦点を当てた解説。

*1:裏を返せば、インストーラー・説明書・GUIなどをつけてパッケージングすれば、あるいはASPで提供すれば、爆発的に普及するかもしれない

*2:例えば、ソフトウェアとしての「plagger」、フレームワークとしての「Plagger」、というように書き分けたい気もする

*3:なぜGmailに送るかというと、大容量で検索が効き、重くならないので好まれているようだ