Ellinikonblue.net Devlosxom

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

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 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 17, 2009 at 22:47

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 の方に ページを作ってアップしたいと思います。
Posted on Nov 24, 2008 at 16:52

bsnap_lt 要求仕様

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

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

小粋空間 「 Lightbox JS で画像を表示する」
Posted on Sep 17, 2007 at 13:05

gsitemap 仕様 v2007.9.16

 bsnap_hs/bsnap_tx プラグイン より先に手をつけていた gsitemap プラグイン を公開しました。
 entries_kache プラグイン のインデックスファイル出力タイミングとのかねあいで、 試行錯誤したために少々手こずった上、詰めの際に凡ミスを連発しましたが何とか entries_kache プラグイン のインデックス更新タイミングに同期して、 出力できるようになったので、ここで FIX しました。

 以下に 2007 年版 gsitemap プラグイン の 2007.9.16 時点の仕様をまとめておきます。
  1. entries_kache プラグイン が出力するインデックスファイルをサイトマップファイルに変換するため、 このプラグインのインストールは必須です。 インデックスファイルの仕様上、entries_index プラグインファイルでも代替可能。
     ただし、entries_index プラグインの場合は、アクセスごとにインデックスファイルが更新されるため、 サイトマップファイルもその都度更新されます。効率低下の原因になるため、 entries_kache プラグイン のインストールを強く推奨します。
  2. タイムゾーンの設定は自動で行うようになっています。 国外のレンタルサーバなどではプログラム的に修正が必要かもしれません。
    (要望があれば、手動設定するように修正することは簡単なので用意します)
  3. 本バージョンは blosxom の 動的生成の仕組みを利用していないために専用のフレーバは必要ありません。
     その代わりに、出力されるサイトマップファイルの形式の変更には、 プログラム本体の変更が必要になります(そんなに難しい修正ではないですが…)。
以下、サイトマップファイルの出力例です。
<?xml version="1.0" encoding="utf-8"?>
<urlset xmlns="http://www.google.com/schemas/sitemap/0.84">
  <url>
    <loc>http://www.ellinikonblue.com/blosxom/</loc>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
     <loc>http://www.ellinikonblue.com/blosxom/blosxom/plugins/20070916gsitemap2007.html</loc>
     <lastmod>2007-09-16T17:30:01+09:00</lastmod>
  </url>
  :(以下、繰り返し)
</urlset>
Posted on Aug 12, 2007 at 00:25

gin プラグイン仕様 v2007.8.11

 対策を 施した にもかかわらず、また消えました。。。エイリアス情報 orz
 アルゴリズム的に消えないと思っていましたが、 ここは消えた現実を真摯に受け止めて、気合いを入れ直してコードを見直したのですが、 私の能力ではもう解決不能。。。

 と言うことで、仕様を変更することにしました。
 これまでは gin プラグインが出力したカテゴリ情報ファイル (categories_index.json) に直接、カテゴリに対するエイリアス情報を 書き込んでいましたが、エイリアス情報は別ファイル (categories.alias) とし、カテゴリ情報出力時にエントリ情報シーク結果とマージして、 出力するようにします。
 この仕様であれば、一度作成したエイリアス情報は基本読み込むだけですから、 消えることはありません。 また、gin プラグインが出力するカテゴリ情報を利用する categories プラグインを 作り替える必要もありません。名案!(自画自賛。失礼 (_ _"> )

 エイリアス情報を記載する categories.alias ファイル(ファイル名はデフォルト)は 以下のようなディレクトリ名とエイリアス名をセットにして記載する JSON 形式ファイルとします。
{
  { "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": "仕様" }
}
 現在、この仕様で gin プラグインを改装中です。
 そんなに難しい改造でもないので、時間さえとれればすぐにできると思います。 うまく動き始めたら即 Ellinikonblue.com Weblog の方でテストを開始するつもりです。
Posted on May 05, 2007 at 13:52

gin プラグイン仕様 v2007.5.4

 blosxom における エントリのメタ情報を一括してインデクシングするプラグインを こつこつ作っていました。 gin(Generate INdex) プラグインと命名しました。 ジン (gin) は様々なカクテルのベースになるお酒なので、それにちなんでみました。
 この gin プラグインが、ある程度形になってきましたので、 とりあえずここまでの仕様とまとめておきます。
  1. エントリの分類(カテゴリ)、エントリ日時を一括してインデクシングします
  2. インデクシングされた情報は JSON 形式で出力されます
  3. エントリの分類情報で、子カテゴリ数を親カテゴリに含めるかどうかは、 このプラグイン内で設定します
  4. エントリの分類名に対するエイリアス(別名)は、このプラグインが出力する JSON ファイルに記述します
  5. gin プラグインが出力する JSON ファイルを元にする archives/categories プラグイン互換のプラグインを用意しました
    (現在このページで使用中)
 分類情報の JSON ファイルは以下のようになります。
{
	{ "directory": "/home/public_html/devlosxom/data", "count": 7 },
	{ "directory": "/home/public_html/devlosxom/data/About", "count": 2, "alias": "このブログについて" },
	{ "directory": "/home/public_html/devlosxom/data/Doc", "count": 4, "alias": "ドキュメント" },
	{ "directory": "/home/public_html/devlosxom/data/Doc/Idea", "count": 1, "alias": "アイデア" },
	{ "directory": "/home/public_html/devlosxom/data/Plugin", "count": 1, "alias": "プラグイン" },
	{ "directory": "/home/public_html/devlosxom/data/Plugin/Spec", "count": 1, "alias": "仕様" }
}
 エントリ日時情報の 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
}
 今後、さらに以下の機能を追加していく予定です(優先順位順)。
  1. entries_kache プラグイン に同期して、メタ情報を更新するようにする
  2. 最終的には entries_kache プラグインの機能を取り込んで、 entries_kache プラグインが出力するエントリに関するメタ情報も JSON 形式で出力するようにする
 entries_kache プラグインと同期して更新するところまでできれば、 Ellinikonblue.com Weblog の方でも紹介して、 そろそろこのブログもオープンにしようかな。。。
Posted on May 04, 2007 at 13:39

nofound プラグイン仕様 v2007.4.18

Ellinikonblue.com Weblog 「 nofound プラグイン」

 ずいぶん前に Ellinikonblue.com Weblog の 方に書きましたが、 徒書notfound プラグイン をベースにした nofound プラグイン が何とかできました。
 これ以上手を加えることもないとは思いますので、 その改変した部分を仕様としてまとめておきます。
  1. @noindex_flavours に設定したフレーバーに対して、インデックスページを要求する (例 index.writeback )は not found を返すように設定可能にした
  2. 設定値 @except_flavours, @noindex_flavours は正規表現形式ではなく、 リスト形式で記述できるように変更