bfep_asin プラグインをちょっと改良

[ プラグイン ]

 久々に思い立って blosxom のプラグインを いじってみた。 bsnap_asin プラグイン を延々と使っていると、 キャッシュファイルが一つのディレクトのしたにどんどんできるので、 あまりたくさんのファイルが一つのディレクトリ下にできるとファイルの検索効率が落ちると思い、 サブディレクトリを切ってキャッシュファイルをができるように改良。
 思ったより簡単に出来ました。

 現状、ASIN コードの下一桁をとってきて最大 36 ディレクトリができるようになっていますが、 原理的には、以下の三か所
:(略)
  $cache_dir = $asin_dir.'/'.substr( $1, 9, 1 );
:(略)
  my $cache      = "$asin_dir/".substr( $asinCode, 9, 1 )."/$asinCode.html";
:(略)
  my $tmp_file = "$asin_dir/".substr( $asinCode, 9, 1 )."/$asinCode.tmp";
:(略)
の substr の第二引数を 8 に、第三引数を 2 に設定すれば、 さらにたくさんのサブディレクトリを切るようになります(おそらく)。

 問題なさそうなので近々、 Weblog の方にも導入予定。 その後、Ellinikonblue.com PukiWiki で ドキュメント整理&公開予定。。。

May 23, 2010 at 00:15 | コメント (0) | トラックバック (0)

Markdown ってなに?

[ プラグイン ]

「 『 Google Insights for Search 』日本語化、未来予測機能も公開」INTERNET Watch より)

 ということで、Google Insights for Search で 検索ワードとして「 blosxom 」を 分析した結果
 まぁ、上記の検索結果は普段から何となく想像はつくことなんですが、 その関連情報に注目検索クエリとして「急激増加」となっていた 「 blosxom markdown 」
 Markdown ってなに?気になって調べますと…

hail2u.net 「 Markdown 」
にーやんのブログ
「 Markdown を Blosxom のプラグインとして使用する」
「 Markdown のシンタックス」
チェリオメアリー 「 Markdown 入れた」

 要は Wiki みたいに簡単に HTML を記述してしまって、 それが blosxom で使えて便利だねと。
 う~確かに便利そうだけど、記述シンタックスを見ていると、 うちの bracket_fep プラグイン と もろにコンフリクトしそう。。。
 一応こういうものがあるといことは覚えとく。。。ということで。

 しかし、私が今頃になって調べている話を hail2u.net では 5 年も前の話題。。。 やっぱりこの中の人はすげー。。。

Aug 24, 2009 at 23:51 | コメント (0) | トラックバック (0)

bsnap_asin: Product Advertising API 対応…勝った

[ プラグイン ]

 bsnap_asin プラグインProduct Advertising API 対応、 何とかできたみたいです。
 ここ一週間ぐらい、 ここEllinikonblue.com Weblog で 試験を続けましたが、特に問題なく動いているようです。
 やっと「勝った」って気分です (^^)b

 うまくいかなかった大きな原因は、XML の名前空間の問題。
 XSL スタイルシート中に記載していた以下の部分
<xsl:stylesheet version="1.0"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  xmlns:aws="http://webservices.amazon.com/AWSECommerceService/2005-07-26">
とリクエスト時に渡す Version 引数で同じ日付を指定しなければならず、 これを新しい日付にしていたら、そもそもその日付に名前空間が Amazon 側にないという、 ならどの日付の名前空間ならあるんだとちょっと調べてみましたがこちらで見あたらず、 結果、以前使っていた日付の名前空間を利用してみたところやっとうまくいきました。
 この Version の指定で帰ってくる XML の内容も違うので、 ちょっと時間をおいてじっくり見直して新しい XSL スタイルシートも考え直したいと思います。
# ひとまず今回はこれまでと同じ「 2005-07-26 」の名前空間を使っています。

 ひとまずどうにかこうにか 8 月以降も Amazon アソシエイト Web サービス 続行可ということで。 ほっ f^O^;
# ここまでの成果は近々、 Ellinikonblue.com PukiWiki の方で 公開いたします。

Jul 04, 2009 at 15:25 | コメント (0) | トラックバック (0)

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

Jun 22, 2009 at 00:43 | コメント (0) | トラックバック (0)

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 プラグイン も 専用プラグインを読み込むときはアルゴリズムが同じで、 このため古い方をアンダーバー付き、新しい方をなしで、同じファイル名でアップロードしてしまうと、 両方ともプラグインが無効になることがソースを読んでみてわかりました。

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

May 29, 2009 at 00:22 | コメント (0) | トラックバック (0)

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 プラグイン

May 09, 2009 at 22:09 | コメント (0) | トラックバック (0)

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

[ プラグイン » 仕様 ]

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

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

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

Feb 28, 2009 at 15:46 | コメント (0) | トラックバック (0)

bsnap_asin のテスト

[ プラグイン » テスト ]

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

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

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

 と言うことで、今ほしいものリストなどを並べてみる… (^^;>

Jan 31, 2009 at 15:41 | コメント (0) | トラックバック (0)

bsnap_lt プラグイン仕様 v2009.1.17

[ プラグイン » 仕様 ]

 bracket_fep プラグイン 専用プラグインとして、 bsnap_lt プラグインの実装が一応終了しました。

 事前に 仕様を考えました が 自動サムネイル機能以外は思ったより簡単に実装できました。
 こちらの エントリ のように、エントリのごとに表示することもできますし、 すべての画像を こちらの エントリ のように個別に表示させることもできます。
 またページごとにまとめて表示させることもできます。

 ざっと仕様は以下の通り。
  • Lightbox2 利用
  • blosxom エントリ中の 記述方法は snap_in / bsnap_hs プラグイン互換
  • 実際の画像とサムネイルの結びつけルールは bsnap_hs 互換
  • グルーピングなし、エントリごとグルーピング、ページごとグルーピングをオプションで設定可
 で、実装してみて bsnap_hs プラグイン と比較してどっちがいいかというと、 見栄えは確かに bsnap_lt プラグインの方がいいのですが、 それなりのサイズの画像を提供する場合、ネットブックなど解像度の低い環境などを考慮すると、 bsnap_hs プラグイン の方がいいかもしれないと思うこともあり、 Ellinikonblue.com Weblog への導入は迷っています。

 まぁひとまずできは悪くないので、 暇をみて Ellinikonblue.com PukiWiki の方に ページを作ってアップしたいと思います。

Jan 17, 2009 at 22:47 | コメント (0) | トラックバック (0)

bsnap_lt 要求仕様

[ プラグイン » 仕様 ]

 なんか実装している時間がないので、とりあえず要求仕様だけメモ。
  1. Lightbox2 を使用
  2. blosxom エントリ中の記述方法は snap_in / bsnap_hs プラグイン互換
  3. 実際の画像とサムネイルの結びつけルールは bsnap_hs 互換
  4. Lightbox2 の グルーピング表示を利用するためのオプションとして、グルーピングなし、 エントリごと、ページごとを切り替えることができるようにする
  5. 自動サムネイル化は実現可能かどうかも含めて検討
くらいで。

 以下も参考になりそうなので。

小粋空間 「 Lightbox JS で画像を表示する」

Nov 24, 2008 at 16:52 | コメント (0) | トラックバック (0)