« Nov 2003 | Dec 2003 | Jan 2004 »

December 28, 2003

blosxomインストール

blosxom を試してみる。

■ blosxom 入手

blosxom-2.0
http://www.blosxom.com/

■ blosxom.cgi の設定

$blog_title = "(サイト名)";
$blog_description = "(サイトの説明)";
$blog_language = "ja";
$datadir = "/path/to/blosxom_data";
$url = "http://www.domain.com/";
$plugin_dir = "/path/to/blosxom_plugins";

blosxom.cgi は http://www.domain.com/index.cgi に置く。

■ .htaccess の設定

DirectoryIndex index.html index.shtml index.cgi
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.cgi/$1 [L,QSA]

■ パーミッション設定

% chmod 755 blosxom.cgi
% mkdir /path/to/blosxom_data
% mkdir /path/to/blosxom_plugins
% mkdir /path/to/blosxom_plugins/state
% chmod 755 /path/to/blosxom_data
% chmod 755 /path/to/blosxom_plugins
% chmod 777 /path/to/blosxom_plugins/state

■ flavour 追加

Movable Type互換flavour をもとに変更。

あとは少しずつプグインを加えていくことにします。

■ 参考 & メモ

www.blosxom.com
blosxomサイトの日本語訳
blosxom.org
Blosxom による CMS 構築と SEO テクニック [.ppt 71k]
Standalone TrackBack (Artistic License)
TrackBack Development
lily (blosxom の ruby 版)

rss2mail-0.04

RSS の記事をメール送信するスクリプト(rss2mail.pl)を若干修正。
* dc:creator(投稿者$creator)取得
* dc:subject(カテゴリ名$subject)取得
* サイト名にタグが含まれる場合にデコードして表示

December 23, 2003

2.65 Released

movabletype.org : Download から upgrade 版を入手して、問題となっているファイルだけ置き換えました。

■参考
MT2.65の日本語化パッチは少々お待ちを

MovableType の設置ディレクトリを $MT とすると

% cd $MT
% cp /path/to/MT-2.65-upgrade/mt-send-entry.cgi .
% cd $MT/lib/MT
% cp /path/to/MT-2.65-upgrade/lib/MT/XMLRPCServer.pm .

MT を EUC-JP で使っている場合は、さらに NDO::Weblog からパッチを入手して XMLRPCServer.pm を修正する。

% patch < XMLRPCServer_2.65_euc.patch

とりあえずこれで良いみたいです。

December 14, 2003

Benchmark lock

ふと気になって、CGI の排他ロックなどでよく使われる flock(), mkdir(), symlink() の実行コストを比べてみた。結果は軽いほうから flock() < mkdir() < symlink() の順。

個人的には symlink() をよく利用していますが、flock() は予想通り速い。以下はテストコード。

#!/usr/bin/perl
 
use strict;
use Benchmark;
my $file  = 'f.dat';
my $lock  = 'f.lock';
my $count = shift || 1000;
my $loop  = shift || 1000;
 
open(F, ">$file") or die "Can not open $file: $!";
 
timethese($count, {
                   flock => sub {
                       for (my $i = 0; $i < $loop; $i++) {
                           flock(F, 2);
                           flock(F, 8);
                       }
                   },
                   mkdir => sub {
                       for (my $i = 0; $i < $loop; $i++) {
                           mkdir($lock, 0755);
                           rmdir($lock);
                       }
                   },
                   symlink => sub {
                       for (my $i = 0; $i < $loop; $i++) {
                           symlink(".", $lock);
                           unlink($lock);
                       }
                   },
                  });
 
close(F);
 
__END__

実行結果

Benchmark: timing 1000 iterations of flock, mkdir, symlink...
     flock:  3 wallclock secs ( 0.41 usr +  2.31 sys =  2.73 CPU)
     mkdir: 144 wallclock secs ( 0.95 usr + 142.73 sys = 143.68 CPU)
   symlink: 775 wallclock secs ( 1.51 usr + 125.84 sys = 127.34 CPU)

December 08, 2003

MT ISBN Bookmarklet

AUSGANG SOFTさんが、MT ISBN プラグイン用の Bookmarklet を作って下さいました。
MT ISBN Bookmarklet でAタグを出さない方法も参考になります。

December 01, 2003

カテゴリ別 RSS 作成

カテゴリごとにも RSS を出力するように設定してみました。
興味のあるカテゴリの記事だけ読みたい人向けには有効かもしれません。

archives ディレクトリ以下に各カテゴリ(xxx)ごとの cat_xxx.rdf (RSS1.0) を作成することにしました。

■Archive Template の作成

「Template の編集で」 Index Template にある RSS 1.0 Index を選択して、テンプレートの内容をそのままコピーします。

新しい Archive Template を作成します。

Template の名前は、"Category Archive RSS 1.0 Index" で作成しました。
Template の中身は、先程コピーした RSS 1.0 Index と同じでよいので、ペーストして、保存(SAVE)します。

■アーカイブの設定

「BLOG の設定」⇒「アーカイブの設定」で先程作成した新しいアーカイブテンプレートを追加します。

Archive の種類: Category
Template: "Category Archive RSS 1.0 Index"

を選択して登録します。

追加された "Category Archive RSS 1.0 Index" の Archive ファイルの Template 名 に

cat_<$MTArchiveCategory dirify="1"$>.rdf

を記入して、保存します。

■Category Archive テンプレートの編集

生成された cat_xxx.rdf をカテゴリアーカイブから参照できるようにリンクを張ります。
「Template の編集」で Category Archive のテンプレートに

<a href="<$MTBlogArchiveURL$>cat_<$MTArchiveCategory dirify="1"$>.rdf">&gt;&gt; Syndicate this category (XML)</a>

を追加すれば良いでしょう。

■Category のビルド

以上でカテゴリをビルドすれば、archives ディレクトリ以下に cat_xxx.rdf が追加されました。RSS 2.0 も追加したい場合は、同じように cat_xxx.xml で作成すればよいと思います。

« Nov 2003 | Dec 2003 | Jan 2004 »

Since 2003.6.19, Yutaka@smate.NET <yutaka@asmate.net>. Powered by MT 2.64