2006年初頭から「Plagger」という技術が、一部で話題になりました。まだまだ知名度が低い「Plagger」ですが、便利でカスタマイズ性が高いものなので、2007年では爆発的に流行するかもしれません。豊富なプラグインを自在に組み合わせ、欲しい情報を収集し、加工して出力するPlaggerの仕組みや使い方を紹介します。 1. 何でもできる? Plaggerの正体に迫る 今回は話題のPlagger(プラガー)を取り上げます。 この連載を読んでいる読者の皆さんは、ネットワーク技術や知識に興味を持っている人が多いでしょうから、「Plagger」という単語は一度は耳にしたことがあるでしょう。しかし、Plaggerという言葉を聞いたことはあっても、いったいどんなものかピンと来ない人もいるかもしれません。今回はPlaggerがどういった働きをするか? その動きの仕組みなどを中心に紹介していきます。 ●
イベントハンドラ 2種類 customfeed.handle subscription.load config.yamlのmodule: Subscription::Configのfeed urlを使う場合はcustomfeed.handleを使いましょう。 プラグインコード上でいえば、「$args->{feed}->url」を参照するなら customfeed.handle、不要ならば subscription.load となります。 ※オレオレプラグインならばとりあえずsubscription.loadで作ればいいんじゃないかな イベントハンドラ内で feed 生成 「Plagger::Feed->new」で feed をつくり、イベントハンドラの最初の引数へ追加する。 とうぜん、feed 内の各 entry も生成する。(Plagger::Entry->new) entryの作り方
Plagger::Plugin::Publish::TagCloudというアイデアを見たので野良試作。HTML::TagCloudにデータを渡してるだけだけど。 MYCOMジャーナルをFilter::Summarize::Japaneseでタグづけして、Publish::TagCloudにかけるとこんな感じ。 設定はこんな感じ。 mycomjournaltag.yaml global: log: level: debug plugins: - module: Subscription::Config config: feed: - http://journal.mycom.co.jp/haishin/rss/index.rdf - module: Filter::EntryFullText - module: Filter::Regexp config: regexp: s/\[IMAGE
HTML::TagCloudの出力するCSSが0.34で修正された結果、P::P::Publish::TagCloudがエラーになるようになった。そこで更新。古いHTML::TagCloudでも同じ結果になるようにした。 package Plagger::Plugin::Publish::TagCloud; use strict; use warnings; use base qw ( Plagger::Plugin ); our $VERSION = 0.02; use Encode; use HTML::TagCloud; use File::Spec; sub register { my ($self, $context) = @_; $context->register_hook( $self, 'publish.feed' => \&feed, ); } sub feed { m
はてラボで、はてなミュージックなんてな素敵サービスがリリースされ、音楽好きとしてはこれ以上ない楽しみなわけで、さっそく遊んでいます。しかし、いまんとこはてなミュージックの曲情報更新クライアントは Windows + iTunes にしか対応していないわけで、 はやくMacではてなミュージックしたいです。 なんてな記述も見受けられます。まぁ、ちょっと追加のコードを書きさえすれば、まさに「それPla」な話。そこで、はてなミュージックの更新クライアントの挙動を調べて、まずは WebService::Hatelabo::Music というモジュールを作り、それを Plagger から使うために Plagger::Plugin::Publish::HatelaboMusic というプラグインを作りました。 WebService::Hatelabo::Music Plagger::Plugin::Pu
サキとは彼女の自宅近く、湘南台駅前のスーパーマーケットで待ち合わせをした。彼女は自転車で後から追いつくと言い、僕は大きなコインパーキングへ車を停めた。煙草を一本吸ってからスーパーマーケットへ向かうと、ひっきりなしに主婦的な女性かおばあちゃんが入り口を出たり入ったりしていた。時刻は午後5時になる。時計から目を上げると、待たせちゃったわねと大して悪びれてない様子でサキが手ぶらでやってきた。 お礼に料理を作るとはいえ、サキの家には食材が十分足りていないらしく、こうしてスーパーマーケットに寄ることになった。サキは野菜コーナーから精肉コーナーまで、まるで優秀なカーナビに導かれるように無駄なく点検していった。欲しい食材があると、2秒間程度それらを凝視し、一度手に取ったじゃがいもやら豚肉やらを迷うことなく僕が持っているカゴに放り込んだ。最後にアルコール飲料が冷やされている棚の前へ行くと、私が飲むからとチ
まったりとしたチャット ircdを動かして日々の何気ないチャットをやっていたある日, url送ったらそのページのタイトルを返してくれるボットが欲しいなぁ という話がでてきました.これはPOEを使ってみるチャンス,ってことでircbot作りに挑戦することにしました. サンプル POE::Compoennt::IRCにはいくつかサンプルがついていたり,podにもサンプルがついているのですが,一番簡単なのがPOE Cookbookだったので,これをベースにしてみました.やることは簡単で,元のスクリプトの if ( my ($rot13) = $msg =~ /^rot13 (.+)/ ) { $rot13 =~ tr[a-zA-Z][n-za-mN-ZA-M];となっている部分を,urlを受け取ったらそのタイトルを返すように書き直せばいいわけです.これを実現するために見つけたのがHTML::Ta
別に見なくてもいいけど気になる ログに残さなくて良い がんがん更新される というFeedがあって、そのエントリはメッセンジャーに送れるといいなあと思ったのです。探してみたけど上手く見つからず。 お知らせとか タイムアウト処理を実装しました。 ウェイトを実装しました。一気にメッセージが送られてくるとメッセンジャーがしばらく固まってしまうので、メッセージの間隔を指定できるようにしました。 文字化け直しました。適当にやり過ぎた。。。処理中はutf8フラグを付けたままにしておいて、最終的に出力するときにencodeするようにしようね。お兄さんとの約束だぞ(*^ー゚)b hookをちょっと真面目に使いました。Publish::Debugをコピって作っていたので、Feedが複数個あると複数回ログインするようになっていました。この修正で、複数個Feedがあっても1回しかログインしないようになりました。(
日本の総理大臣の演説をタグクラウド化 US Presidential Speeches Tag Cloud が面白かったので日本の総理大臣版を3分ハッキング。コード自体は15分くらいでかけたんだけどデバッグやらデータの解析やらに時間がかかってトータルでは2時間くらいか。 Japanese Prime Minister Speeches Tag Cloud 首相官邸ホームページ からリンクをたどって HTMLをダウンロード、HTML::TreeBuilder で as_text して Text::MeCab に食わせ、名詞(代名詞などをのぞく)の頻度を YAML データとしてつっこみ、HTML::TagCloud でタグクラウド化しました。スライダーの JS などは元の US Presidential のほとんどパクリです。 IE だと行間がかなりつまってるのは HTML::TagCloud
0.5.6から実装されたinclude,recipe,define_recipesの使い方 概要 Plaggerを使いこなすようになると、用途別にconfigを分割して複数の設定でPlaggerを実行するようになってくると思います。 そんなときに、殆ど共通なglobalや他のplugin設定を複数のファイルに同じ内容で書くのは手間でしょう。 また、数多くプラグインを使用するとconfigファイルが大きくなってしまい見通しが悪くなります。 includeを使うことで共通の設定を一つにまとめることができます。 recipeを使うことにより使用するpluginを見通しよく管理します。 そして、define_recipesを使ってrecipeで設定したpluginを使用する事ができます。 サンプル 複数のSNSを利用するための設定を例として取り上げます。 Yahoo360Jは一時間おき,Mixiは
■ [prog] CVSって、checkoutしないとログ見れないもんなんでしょうか とIRCで聞いたら「cvs rlog」というコマンドがあると教えてもらった。 しかしmanに書いてないとか罠すぎる! ■ [Plagger] PlaggerでSubvesionのコミットログをIRCに通知する Notify::IRCを使ってみた。非常に簡単に使えて感動。 まず、IRC用にいくつかライブラリが必要。 cpan> install POE POE::Component::IRC POE::Component::IKC 次にsvnirc.yamlを書く。 plugins: - module: CustomFeed::SVNLog config: target: svn://somewhere/some/project title: proj reverse: 0 fetch_items: 10 #
Plagger now can use ThinkPad ShockMgr as an event to inject the process. This movie uses Notify::MSAgent to alert the move of your ThinkPad.
http://subtech.g.hatena.ne.jp/otsune/20061022/HatenaGraphの指摘がもっともだと思ったので。あと、WebService::Hatena::Graphのバージョンが上がってインターフェースが変更になったのでその対応も。 まずは本文から正規表現でデータを抜き出す部分をFilterプラグインにして分離。とりあえずこんな感じにしてみた。ネーミングセンス0なのは生まれつきなのでツッコミに期待。 package Plagger::Plugin::Filter::ScrapeMetaData; use strict; use base qw( Plagger::Plugin ); sub register { my($self, $context) = @_; $context->register_hook( $self, 'update.entry
del.icio.us に登録したエントリをはてブにシンクロするためのレシピ。1日1回動かすような用途を想定しています。del.icio.us に登録した順番ではてブに登録されるように del.icio.us の RSS のエントリーの順序を逆転させるためのフィルタ (Reverse) を用意しました。del.icio.us の RSS を入力としているので、登録エントリ数が多いと RSS から漏れてしまうエントリが発生するという問題があります。del.icio.us API で前回取得したエントリー以降を取得できれば完璧なのですが、とりあえず運用でカバーしています。(私は1日30エントリもブックマークしないので....) global: # plugin_path: **** # assets_path: **** timezone: Asia/Tokyo log: level: inf
What's worepo? Welcome to worepo, a repository of add-on packages for Fedora Linux. worepo provides many useful packages, especially for Plagger. Supported distribution worepo only supports current major version of fedora linux and there is no exception. Information (2008-01-01) I moved rpms into 'deprecated' directory because I don't have enough time to maintain my worepo rpms. Sorry for the inc
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く