2010年2月13日

テクニカルな覚え書き -1-

読み返すと、年が明けてから、ひとつとてテクニカルな話題を書いていない。

わっさー 用のボットを作るかもしれない、途中で投げ出すかもしれない。ちょこちょことアイデアだけはある。

昨九月に、ワッサー・ゲイザー という開発コードで、MH 風のメッセージで各記事をまとめて、メーラとして読んだり、高評価をつけるという話をしていた。

そのプロトタイプで、Perl でダウンロードツールを作って自分の記事をローカルに保存してみたりしたが、メモリリークを解消することができずに、これでは公開もできないと放ってある。

その時には、API を使うことにこだわり、さらに API で不足な部分を ユーザ用の Web から取ってくることに頭が凝り固まっていて、先に進まなかった。

2週間ほど前に、Gtalk からメッセージを送受信したら一番楽であることに気づく。気づいたきっかけは、ボット好きのユーザと知り合ったこと。

ならば、私もボット作ってみようじゃないか。もう、自分が読める記事を全部読もうと思わなくなったし、メーラ風のインタフェイスを作る興味も失せたが。リハビリには良いだろう。

というわけで、最初に入れた Perl のモジュールは、Net::XMPP3 。jabber で使われる XMPP プロトコルで、メッセージを送受信するためだ。

Net::XMPP がバグを抱えたまま長くメンテされていないので XMPP3 という名前で bug fix した、のだそうだ。ただし、インストール時のテストプログラムの名前が Net::XMPP のままになっている。

アカウント設定などの周辺作業を了えて、さて、ちょっとテストしようかというところで、PC が壊れて中断していた。

今日、Ports の更新をしていて、p5-Astro というジャンルがあるのに気づいた。

おりしも昨日、発言として 日出・月出・月齢告知 機能をつけると宣言したばかり。ここから使えるものがあるかな ?

Astro::MoonPhase , Astro::SunTime , Astro::Sunrise というのがある。

Astro::SunTime よりも、Astro::Sunrise のほうが、きめ細かな指定ができそうだとインストール開始。タイムゾーンを取得できないと、インストーラがテストで停まる。

PERL_DL_NONLAZY=1 /usr/local/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/00load.t ....... ok
Subroutine main::ok redefined at t/01basic.t line 9
Cannot determine local time zone
# Looks like you planned 237 tests but ran 232.
# Looks like your test exited with 2 just after 232.
t/01basic.t ...... 
Dubious, test returned 2 (wstat 512, 0x200)
Failed 5/237 subtests 

ports 更新作業をしながらのかたわら、あまり重い処理をさせるのは鬱陶しいので、軽く流す程度に調べていると、CPAN の中には DateTime::Event::Lunar というのもあるのを発見。こちらをまずインストール。

依存で入った、DateTime::Util::Astro が、太陽と月の出入り、月相くらいならば計算できるようだ。私は DateTime 型を他でも使っているので、こちらでテストして、うまくいけば常時稼働環境に仕込むことに決めた。

0 コメント:

コメントを投稿