PlaggerでBase class package "DateTime" is empty

さくらのVPSにperlbrew+cpanm+plaggerって入れてて

Base class package "DateTime" is empty.
    (Perhaps you need to 'use' the module which defines that package first.)
 at /home/kzfm/plagger/lib/Plagger/Date.pm line 3

というエラーが出ていてなんだかなぁと思ったらシェバンだった

#!/usr/bin/env perl

で解決

nikkei_btj twitterをircに流したらいい感じ

えと、僕とボットしかいない職場のircですが、それだけだとさびしいので、smilesを打ち込んだらInchiを返す人口無能でもいれたろかと思ったがそれはあまりにも孤独すぎだろうと思いとどまった。むしろ、黒い独り言を垂れ流して、負のオーラで仲間をひきつけるチャンネルを作ろうとか(謎)

というより、頻度の高いニュースサイトなんかを流すと、にぎわっているようでよいのではないかと。というわけで、ちょっと前に見つけたnikkei_btjをircに流してみた、plaggerで。

plaggerの設定はirc.yamlを参考に書き換えるだけだった、お手軽!そしてnikkei_btj調子いいっす。感謝!

planet chemoinformaticsをちょっと修正

リンク切れのとこを消して、Chemical blogspaceChemSpider Blogを追加した。

が、ちょっとインフォマティクスと関係なさげなのが混じってるようなのであとで調整するかもしれん。あと全文とってこなあかんな。

07.11.20 追記

latest postは全文じゃないのと、ケミカルなのではずした。ケモインフォっぽいフィードを選んで追加することにした。

plaggerでlivedoorクリップにはてなとdel.icio.usを同期

もともとdel.icio.usを仕事とかプログラム関係のブックマークとして利用してたんだけど、職場のファイアーウォールがyahoo関係を遮断するようになって、そのとばっちりでdel.icio.usが使えなくなって以来、livedoorClipの利用頻度が増えた(一発クリップとか便利だしな)

そういうわけでメインがLDCになってるんだけど、やっぱはてなにもdel.icio.usにも同期させるのが便利でよかろうと、こことかここを参考にplaggerで。

global:
  assets_path: /usr/local/plagger/assets
  timezone: Asia/Tokyo
  log:
    level: error

plugins:
  - module: Subscription::Config
    config:
      feed:
        - http://clip.livedoor.com/rss/clips/fmkz336

  - module: Filter::Rule
    rule:
      module: Deduped
      path: /tmp/dedupe-livedoorclip.db
      compare_body: 1

  - module: Filter::Reverse

  - module: Publish::Delicious
    config:
      username: kzfm
      password: XXXXXX
      interval: 2
      post_body: 1
  - module: Publish::HatenaBookmark
    config:
      username: kzfm
      password: XXXXXX
      interval: 2
      post_body: 1

あとは一日二回適当にcronでまわす。

Yahoo! Pipes

PlaggerっぽいことをwebブラウザのGUIでコントロールするよ。

って感じかな。
http://radar.oreilly.com/archives/2007/02/yahoo_pipes_the.html http://radar.oreilly.com/archives/2007/02/yahoo_pipes_dec.html

なかなか快適。

クックパッド+Plaggerで生活のクオリティーがあがった

U隊長は、RSSリーダーみたいなネット接続全開中みたいなツールとは無縁で、もちろんblogなど書かない(たまにミクッとく?くらい)系の、世間一般的にはごく普通のネットユーザーだ(多分)。

cookpadをU隊長のGmailに送るのを続けて約半年。

当初は普段使いのメーラーの他にGmail使うのが面倒だったみたいで、最初はあんまりみてなくて、意味ないことしたかなぁと思っていたのだが、Gmailの操作性は良かったみたいで、いつの間にかショートカットを使ってcookpadを流し読みしては気になるのに★つけたりするようになってた。

で、秋頃から、うちの食卓にハック的な小技のおかずが並ぶ機会が(格段に)増えた。

web人間論にフローを読むとかいう話があったんだけど、cookpadのレシピはお料理hacksって感じで、フロー読みするのにちょうど良いのかな?とか思った。

ProductName ウェブ人間論 (新潮新書)
梅田 望夫
新潮社 / 714円 ( 2006-12-14 )


要するに、コンテンツの大きさ(この場合はU隊長がレシピを流し読みして実際の料理としてイメージできるか)のバランスがよかったのかなと。なんちゅうか、これがマイクロコンテンツに必要な条件なのかなと。もちろんサクサク読むための環境も必要なんだろうけど。

などと、ワイン飲んで手作りニョッキ食べながら思った。

ニョッキ

plaggerでRule::Fresh

統計学関連なんでもありをPlaggerでGmailに送るようにしたのだが、うまくいかない。

日付しかパーズしてないのに毎日三回チェックしちゃだめジャン。

というわけで、時間もパーズするように書き換えたのだけどうま拾ってくれてないっぽい。

2006/10/30(Mon) 13:18
\d{4}/\d{2}/\d{2}\(\w{3}\) \d{2}:\d{2}

%Y/%m/%d(%a) %H:%M

これだとDateしか引っ張れない。DateTimeあたりで躓いてんのかなぁ、、、わからん。あとでちゃんと調べることにして取り合えずRule::Dedupedで重複チェックを。

あと、デバッグするのにPublish::CSVに出してたのだけど、こういう場合は普通どこに出力するのがよいのだろうか?

統計学関連なんでもありをgmailで

最近、ANCOVAっておもろいじゃんって気付いた。こんなんは見つけたけど、もっとQSARの部分で使っている論文とかないのかな(コンビケム+ANCOVAみたいな)。
というわけで、統計も色々覚えないとなぁと統計学関連なんでもありなど眺めながら勉強してますが、やっぱメールで読むのは楽なのでCustomFeed::Config を使ってplagger+gmailで。

CustomFeed::ConfigはFilter::EntryFullTextみたいにYAMLを書けばいいので、便利ですな。で、初めてCustomFeed::Configをさわってみたのだけど、

  • リンクを辿ってbody抽出はFilter::EntryFullText
  • リンクを辿らないでbody抽出はCustomFeed::Config

こんな認識でいいのか?

CustomFeed::Config用のYAML

author: kzfm
match: http://aoki2.si.gunma-u.ac.jp/taygeta/statistics.cgi
extract: <table border=0 cellpadding=2><tr>.*?<b>(.*?)</b></font>.*?(\d+/\d+/\d+)
.*?<font color="#000000">No.(\d+)</font>.*?<font color="">(.*?)</font>
extract_capture: title date link body
extract_date_format: %y/%m/%d
extract_after_hook: $data->{title} =~ s/^Re: //;

Config YAML

plugins:
  - module: Subscription::Config
    config:
       feed:
         - url: http://aoki2.si.gunma-u.ac.jp/taygeta/statistics.cgi

  - module: CustomFeed::Config
  - module: Filter::BreakEntriesToFeed
    config:
      use_entry_title: 1

  - module: Filter::Rule
    rule:
      module: Fresh
      mtime:
        path: /tmp/toukeinanndemo.tmp
        autoupdate: 1

  - module: Publish::Gmail
    config:あとは一緒

これで、新着をgmailで読める。

PlaggerでChangeLog(4)

Filter::ChangeLogなんて作る必要なかった。既存のFilter::Ruleを利用すればいいだけだった。

    rule:
      expression: $args->{entry}->{meta}->{cltag} eq "TODO"

Net::MovableTypeを使ってblosxomに投稿

あーそういえば、BXRってのがあったなというのを思い出したので、Net::MovableTypeで投稿することを思いついた。

my $mt = new Net::MovableType('http://localhost/blosxom-xmlrpc.cgi/RPC2');
$mt->username('kzfm');
$mt->password('okbkj');
$mt->blogId(1);

$entry = {
    title       => "Hello World from Net::MovableType",
    description => "おーけーおーけーOK牧場"
};

$mt->newPost($entry);

mttest

おー、かなりOK牧場だ。

ちなみにpackage blosxomのnewPostをちょっといじって常にランダムなファイル名を付与するようにした。ファイル名考えなくていいってだけでも精神的にはかなりラク。

#    if ( defined( $struct->{'postid'} ) ) {
#        $filename = BXR::getFilenameFromPostId( $struct->{'postid'} );
#    }
#    else {
#        $filename = lc( $struct->{'title'} );
#        $filename =~ s/\W+/_/g;
#        $filename =~ s/_+$//;
#        $filename = BXR::getRandomFilename() unless $filename =~ m/[a-z]/;

これで、Plagger::Plugin::Publish::MTを使ってChangelog2blosxomができるはず。ここまでやれれば、僕はchangelogだけに集中すればよくて、それ以降の処理はplaggerがよきにはからってくれるのでかなり調子いいかも。あとは学会とかセミナーの参加ログもchangelogでとってるのでms-wordにpublishしたいなぁ。