Ellinikonblue.net Devlosxom

ここはまだ壮大な夢の途中…

Posted on Jun 22, 2009 at 00:43

bsnap_asin: Product Advertising API 対応…光は見えた

 bsnap_asin プラグインProduct Advertising API 対応ですが、 やっと光が見えてきました。
 とは言っても、リクエストを出して、応答が帰ってきたところまでなんですが…

 bsnap_asin プラグイン は XSL スタイルシートを指定して、その応答をキャッシュして出力しているのですが、 これまで使用していた XSL スタイルシートを指定しても、 XML の生の応答が帰ってくるだけで、スタイルシートを適用してくれません。

 そもそもにして、webservices.amazon.co.jp や ecs.amazonaws.jp に リクエストを送っても 403 Forbidden が帰ってきますが、 同じリクエストを xml-jp.amznxslt.com に送れば応答は帰ってきます。 しかし、 XSL スタイルシートは適用されて戻ってきません。

 Signature を生成してつけるだけでこれまで通りなどとは思わぬ方がよいようです。 ぐったりです。

 とりあえず、以前 疑問に思っていたことがだいたい解決したのでその回答をメモ。
  1. Secret Access Key ってなに?
    Subscription ID (AWSAccessKeyId) をしたときと 同じで Amazon Web Services のホームページ にログインすれば表示されます。
  2. タイムスタンプは GMT or 日本時間?
    たとえ日本のサイトにリクエストするときでも GMT です。
  3. Signiture を作る際のテキストの改行コードは CR or LF or CR+LF ?
    LF 。
 その他。これまでの参考記事。

web2.0 的ラボ 「 Amazon Product Advertising API 電子署名と XSLT のまとめ」
RinGoon POP!! 「 [PHP] Amazon Product Advertising API で認証付きリクエストを送る方法まとめ」

 もう一息!?…そうなのか?くじけそう orz

Posted on May 29, 2009 at 00:22

bsnap_asin: Product Advertising API 対応…悪戦苦闘中

 先週末に bsnap_asin プラグインProduct Advertising API 対応に向けて 1st Try してみた訳なんですが、一筋縄でいくはずないんですよね…これが orz

 まずは RFC 2104-compliant HMAC with the SHA256 hash algorithm で Signature を生成しないといけないのですが、このために Digest::SHA を use してみるとエラー。
 XREA のサーバにはインストールされてないみたいなので、 ソースを引っ張ってきて、サーバにアップロード。そしてソースコード中に以下のコードを追加。
use lib '/Common/perl/lib/';
 Perl のライブラリパスを追加してみてもエラー。
 どうも SHA.pm は ソースだけでは動かないらしい。

 そこで今度は Digest::SHA::PurePerl を アップロード。
 これを use してもエラーは出なくなりました。 これでおそらくハッシュエンコードは大丈夫?

 ところがプラグインはうまく動作しない。というか、そもそもプラグインが有効になっていないよう。
 ここで時間切れで 1st Try は終了しましたが、 あとでよくよく考えてみると、 blosxom は プラグインのファイルの名前の最後に _ (アンダーバー)をつけると、 一時的にそのプラグインを無効にできますが、 bracket_fep プラグイン も 専用プラグインを読み込むときはアルゴリズムが同じで、 このため古い方をアンダーバー付き、新しい方をなしで、同じファイル名でアップロードしてしまうと、 両方ともプラグインが無効になることがソースを読んでみてわかりました。

 以上、作業日報かねて経過報告。
 余裕がないときに焦ってやると何でもうまくいかないものです。。。 時間に余裕があるときに再チャレンジすることにします。 (_ _;>
Posted on May 14, 2009 at 21:53

bsnap_asin: Product Advertising API 対応

「 アマゾン API を使うのに 2009 年 8 月 15 日から認証が必要になるらしい」たつをの ChangeLog より)

 うちの貴重な収入源である Amazon アソシエイト Web サービスProduct Advertising API 移行に伴い、 bsnap_asin プラグイン の対応をしなければなりません。
 タイムリミットは 8/15 。

 PHP や Ruby の実装はすぐに見つかりましたが、 blosxom は Perl 。
 Perl の実装はないか?と探してみたらありました。これを参考に(ぱくっ (^^;> )すれば 何とか対応はできそう。
# 感謝> たつをの ChangeLog の中の人

 あと以下の問題点の解決、および捜し物が必要(と考えています)。
  1. Secret Access Key ってなに?(秘密鍵ってわかりますが、入手方法とか)
  2. タイムスタンプは GMT or 日本時間? hail2u.net さんちの Kyo さんによると Expired があるらしい
    ( GMT っぽい)
  3. Signiture を作る際のテキストの改行コードは CR or CR+LF ?
    ( CR っぽい)
  4. RFC 2104-compliant HMAC with the SHA256 hash algorithm を利用必須のため、 Digest::SHA のお勉強(のためのドキュメント)
  5. URL Encode のため、URI::Escape のお勉強(のためのドキュメント)
 やっぱスクラッチビルドで当たり散らしてみるしかないか…時間との戦いかな orz

hail2u.net 「 Amazon Product Advertising API の認証を JavaScript で」
Posted on May 09, 2009 at 22:09

gin プラグイン再考

 そもそもにして、このサイトを立ち上げた理由の一つは、 この gin プラグイン を開発するためだったのですが、 すでに丸二年経過… orz

 なんでこんなに放置プレーになっているかというと、 途中で JSON の仕様を勘違いしていることに気づいたから。

 しかし、そろそろ初心に戻ろうと、今年は少し進展させたい。
 と言うことで、しっかり JSON の仕様を理解して(ると思う)、 このプラグインの入出力の鍵となる各ファイルの形式をもう一度見直した結果。

まず categories_index.json 。
[
	{ "directory": "/home/public_html/devlosxom/data", "count": 7 },
	{ "directory": "/home/public_html/devlosxom/data/About", "count": 2 },
	{ "directory": "/home/public_html/devlosxom/data/Doc", "count": 4 },
	{ "directory": "/home/public_html/devlosxom/data/Doc/Idea", "count": 1 },
	{ "directory": "/home/public_html/devlosxom/data/Plugin", "count": 1 },
	{ "directory": "/home/public_html/devlosxom/data/Plugin/Spec", "count": 1 }
]

次 categories_alias.json(categories.alias) 。
[
  { "directory": "/home/public_html/devlosxom/data/About", "alias": "このブログについて" },
  { "directory": "/home/public_html/devlosxom/data/Doc", "alias": "ドキュメント" },
  { "directory": "/home/public_html/devlosxom/data/Doc/Idea", "alias": "アイデア" },
  { "directory": "/home/public_html/devlosxom/data/Doc/Resources", "alias": "参考資料・メモ" },
  { "directory": "/home/public_html/devlosxom/data/Plugin", "alias": "プラグイン" },
  { "directory": "/home/public_html/devlosxom/data/Plugin/Spec", "alias": "仕様" }
]
最後に archives_index.json 。
[
	{ "year": 2007, "count": 7 },
		{ "year": 2007, "month": 5, "count": 1 },
			{ "year": 2007, "month": 5, "day": 4, "count": 1 },
		{ "year": 2007, "month": 4, "count": 2 },
			{ "year": 2007, "month": 4, "day": 18, "count": 1 },
			{ "year": 2007, "month": 4, "day": 7, "count": 1 },
		{ "year": 2007, "month": 3, "count": 3 },
			{ "year": 2007, "month": 3, "day": 24, "count": 1 },
			{ "year": 2007, "month": 3, "day": 3, "count": 1 },
			{ "year": 2007, "month": 3, "day": 2, "count": 1 },
		{ "year": 2007, "month": 2, "count": 1 },
			{ "year": 2007, "month": 2, "day": 26, "count": 1 },
	{ "count" : 7 }
]
 このデータ形式を元にコード書き直し。
 どこまでコードを使い回さなければならないかもだいたい見えたので、 ちょっとまじめにプログラム構造を考え直そうかと思っています。

 ただすぐにコーディングに入らない理由が一つ。  archives_index.json のデータを内部的にどういう構造で扱うかというところで、 ひらめきがない。。。これがひらめいたら。。。今年はちょっと進むと思うな > gin プラグイン
Posted on Apr 18, 2009 at 15:14

blosxom v2.1.2 upgraded

 とりあえず、ここ だけ blosxom を v2.1.2 にアップグレードしてみました。

 ひとまず blosxom.cgi のコンフィグレーションだけこれまで通りに書き換えて、 置き換えただけですが、 プラグインなども含めて、問題なく動作しているようです。
 二、三日、様子を見て問題なさそうだったら、 PhotologWeblog へ順次展開しようと思います。
Posted on Apr 09, 2009 at 23:54

blosxom v2.1.2 研究開始

KANGAROO-OASIS 「 blosxom version up 」
にーやんのブログ 「 Blosxom 2.1.1 以前にクロスサイトスクリプティングの脆弱性」

 SE と言う肩書きで本業にしていて、こういう話題には敏感にしているつもりなんですが、 自分が使っている blosxom にも XSS の脆弱性が あるとは…しかも、バージョンが 2.1.2 とかになってるし。。。いつの間にか。
 医者の不養生。いかんいかん。

しかも、さっとドキュメントを読んだ限り、
  • コンフィグレーションを外部ファイルから読み込める
  • プラグインディレクトリを複数指定できる
  • something.txt.200904060000 などというファイル名でエントリを登録すると、 エントリ日時を固定できる
などいろいろ機能アップもしているみたい。

 今年は gin プラグイン をそろそろ形にしたいと思っているので、それも含めて、 新しい blosxom の 研究開始!。。ひとまずここでアップグレードの実験から始めることにします。

 以上、実験メンテナンス期間突入宣言と言うことで。
# 閲覧が安定しないときは奮闘中だと思って、時間を変えてまたおこしください m(_ _)m
Posted on Mar 23, 2009 at 19:39

Brunch v0.11: Firefox v3.5 対応テスト版

 ここんところ、ほんと久々に家でゆっくりできる時間があったので、 先般、 公開された Firefox v3.1 beta3 で、 Brunch を 動かすテストしてみました。

 install.rdf を書き換えるだけで問題なく動作しました(ように見えました)ので、 とりあえず v0.11 としてさらしてみます。
 プログラム的にはまったく手を入れてませんので、ひとまずテスト版と言うことにしておきます。 これから個人的に使っている環境でも試しますが、 万が一、不具合等お気づきになり、お知らせいただければ、 Firefox v3.5 リリースまでには善処したいと思います。
# 特に問題なければ、このまま v3.5 対応版とすることになるでしょう。。。 ## プログラム的に変更がないので、プログラムの変更履歴は こちら 参照。
Posted on Feb 28, 2009 at 15:46

bsnap_asin プラグインの仕様と今後

 ここ でテストを始めた bsnap_asin プラグイン ですが、 今回は非常に調子よく動作したので、 Weblog への導入と うちの PukiWiki でも ページを作ってひとまず公開しました。
 アルゴリズムはほぼ元の asin_complex プラグイン のままですが、 ロック処理を見直し、ロック時間を極小化したおかげでこれまでよりもうまく動作しているようです。

 Weblog 側に導入したバージョンには、 以下の新しい例外処理を組み込んでいます。
  • Amazon.co.jp 側がうまく XML スタイルシートを取得できなかったとき、 リクエストした商品の XML ファイルをまるのまま返すので、 一定量以上のデータが帰ってきたときはその応答を無視する
 その他に bfep 化したために、 asin プラグイン 相当の機能は外しました。
# 別途、jasin プラグイン として実装済み。

 ひとまず、おざなりになっている PukiWiki の ページを整理することが優先ですが、今後、 以前に まとめたアイデア や その他の例外処理を順次実装していければなぁ…と考えています。
 とりあえず、今回をもって、単機能版の asin_complex プラグイン 開発はおしまいと言うことで。
Posted on Jan 31, 2009 at 15:41

bsnap_asin のテスト

 問題が起こるたびに突貫で何とかしていた asin_complex プラグイン のコードを見直ました。 また今回は bracket_fep 対応を優先させました。 そろそろ Weblog の方もこちらで置き換えようと 言うこともあります。

 何よりコードがひどい。
 思いつきでコードを付け加えてきたボロ雑巾のようなコードで、 この上、ECS4.0 対応を 行ったとき にほとんどエラー処理を考慮しなかったもので、 いざエラー処理を加えようとしてももう無理。。。何せコードを読み返していると 自分が何がしたかったのかが読めないコードに。。。 orz

 で、一気に見直し、比較的すっきりしましたし、 デバッグにも手こずらず、一応動いているように見えます。
 と言うことで当面 このサイトでテスト。
 問題がなければこのまま公開して、 Weblog の方も置き換え、 エラー処理の実装に入りたいと思います。

 と言うことで、今ほしいものリストなどを並べてみる… (^^;>
Posted on Jan 31, 2009 at 15:16

今頃、一年の計を…

 本業が忙しいのは相変わらずですが、 なにやらその製でアドレナリンが回っているのか、 ほったらかしになっているプラグインを整理し始めました。

 まずは最初に asin_complex プラグイン のコードの見直しをやり終えました。
 その他に、年末に Photolog の方に YUI Reset CSS の導入を終えています (まだ調整しなければならないですが…)。 今年こそは Weblog も 新フレーバーに置き換え、デザインも見直したいと思います。
 それに加えて今年こそは gin プラグイン を完成させたいと思っています。

 って、一月の最終日になってあれですが、一年の計など…予定は予定 (^^;>