たつをの ChangeLog : 2006-10-17

いまさらですが、手軽で便利ですね、Cache::File。
手元にあるいろいろな Perl プログラムをキャッシュ化中。

Chris Leishman / Cache-2.04 - search.cpan.org
http://search.cpan.org/~cleishman/Cache-2.04/

#!/usr/bin/perl
use strict;
use warnings;

use Cache::File;
my $cache = Cache::File->new(cache_root => '/var/tmp/cache-test',
                             lock_level => Cache::File::LOCK_LOCAL(),
                             default_expires => '3 weeks');

my $key = "Yokuaru Namae";
my $data = $cache->get($key);
if ($data) {
    print "$key -> $data\n";
} else {
    $data = "Taro Yamada";
    $cache->set($key, $data, '10 minutes');
}

$key = "1374";
my Cache::Entry $entry = $cache->entry($key);
if ($entry->exists()) {
    $data = $entry->get();
} else {
    $data = "imi nashi san kyuu";
    $entry->set($data, '10 minutes');
}
print $entry->key(), " -> ", $entry->get(), "\n";
print "size = ", $entry->size(), "\n";
$entry->set_expiry('10 minutes');
#$entry->remove();

追記:
- [を] Cache::File で Storable[2006-10-24-6]
- [を] Cache::File の cache_umask[2006-11-27-5]

PerlでアマゾンWebサービスをいじるときは、
いつも、LWP で XML 取ってきて正規表現によるパターンマッチや
XML::Simple を使ってごにょごにょしているんだけど、
「CPANにあるなら使おうキャンペーン」中なので、
いまさらながら、某アルファギーク氏が昔「一番好きなPerlモジュール」
として挙げていたことで知られる Net::Amazon を試してみる。
Cache::File[2006-10-17-1]と連携できるのが嬉しいね。

Michael Schilli / Net-Amazon-0.35 - search.cpan.org
http://search.cpan.org/~mschilli/Net-Amazon-0.35/

ところで、locale を jp にすると、発売日(ReleaseDate)の情報が
取れないのですが、これってそういうもの?
追記061021: データがないのが取れてなかっただけの模様)
amazon がらみのサービスでよく「発売日が取得できなくうんぬん」とか
いうアナウンスがあったりするけど、それってこれがらみ?
あと、authors() と Authors() の使い分けが面倒くさい。

素直に自前のモジュール(Yasazon::Amazon とかある)を使い続けるかな…。

以下、動作確認サンプルプログラム:

#!/usr/bin/perl
use strict;
use warnings;
use Net::Amazon;
use Cache::File;
use Encode;
binmode STDOUT, ":utf8";

my $cache = Cache::File->new(cache_root => '/var/tmp/cache-amazon',
                             lock_level => Cache::File::LOCK_LOCAL(),
                             default_expires => '24 hours');

my $ua = Net::Amazon->new(token => 'YOUR_TOKEN',
                          locale => 'jp',
                          cache => $cache,
                          max_pages => 1,
                          );

#my $response = $ua->search(asin => '4873110505');
#my $response = $ua->search(blended => "Perl");
my $response = $ua->search(keyword => "Perl", mode => "books-jp");
#my $response = $ua->search(keyword => "Perl", mode => "books");

if (not $response->is_success()) {
    print "Error: ", $response->message(), "\n";
    exit;
}

print $response->as_string(), "\n";

for ($response->properties()) {
    print "Asin()\t", $_->Asin(), "\n";
    print "ProductName()\t", $_->ProductName(), "\n";
    print "Availability()\t", $_->Availability(), "\n";
    print "Catalog()\t", $_->Catalog(), "\n";
    print "authors()\t", $_->authors(), "\n";
    #print "Authors()\t", $_->Authors(), "\n";
    print "ReleaseDate()\t", $_->ReleaseDate(), "\n";
    print "Manufacturer()\t", $_->Manufacturer(), "\n";
    print "ImageUrlSmall()\t", $_->ImageUrlSmall(), "\n";
    print "ImageUrlMedium()\t", $_->ImageUrlMedium(), "\n";
    print "ImageUrlLarge()\t", $_->ImageUrlLarge(), "\n";
    print "ListPrice()\t", $_->ListPrice(), "\n";
    print "OurPrice()\t", $_->OurPrice(), "\n";
    print "UsedPrice()\t", $_->UsedPrice(), "\n";
    print "SalesRank()\t", $_->SalesRank(), "\n";
    print "Media()\t", $_->Media(), "\n";
    print "NumMedia()\t", $_->NumMedia(), "\n";
    print "ProductDescription()\t", $_->ProductDescription(), "\n";
    print "CollectiblePrice()\t", $_->CollectiblePrice(), "\n";
    print "CollectibleCount()\t", $_->CollectibleCount(), "\n";
    print "NumberOfOfferings()\t", $_->NumberOfOfferings(), "\n";
    print "UsedCount()\t", $_->UsedCount(), "\n";
    print "ThirdPartyNewPrice()\t", $_->ThirdPartyNewPrice(), "\n";
    print "ThirdPartyNewCount()\t", $_->ThirdPartyNewCount(), "\n";
    print "year()\t", $_->year(), "\n";
    print "browse_nodes()\t", $_->browse_nodes(), "\n";
    print "similar_asins()\t", $_->similar_asins(), "\n";
}
この記事に言及しているこのブログ内の記事

satoru-t のブログ記事「自転車置場の議論」
(http://0xcc.net/blog/archives/000135.html) を発端に、
今またパーキンソンの法則がブームのようです。

本ブログの読者たる最高の知識人諸子は、疑いもなく『パーキンソンの法則』
(至誠堂)について熟知されていることであろう。熟知せざる諸賢は、
残念ながら最高の知識人階級に所属されてはおらぬというだけのこと。
さりとてこれが気に病むべきことだというわけでもない。人には器があり、
属する階級というものがある。
山形浩生氏の「パーキンソンの法則書評」
(http://cruel.org/cut/cut199804.html)より、冒頭の4文字だけ改変。

「どうも最近野菜が足りない気がする!」ということで、
週末に深く考えずに楽天で野菜ジュースを発注。今日届きました。
30本入り×3ケース、です。今日から毎日野菜ジュースです。

野菜ジュース旬野菜

↓買ったやつ。
 伊藤園 旬野菜 190g缶 30本入

毎日飲むには家に常備することが重要です!
「飲むときにコンビニで買うからいいや」とかじゃ続かないでしょう。

宅急便(野菜ジュース)を受け取ってからプールへ。
ひがし健康プラザの地下プール。いつもより10分ほど短めに。
前回は[2006-10-10-1]でした。週末にも泳ぐ予定。
この記事に言及しているこのブログ内の記事

たつをの ChangeLog
Powered by chalow