January 24, 2004
CGI など Web アプリのリクエスト/レスポンスをチェックするために Mozilla に LiveHTTPHeaders プラグインを入れてみました。cookie などの動作確認に使えそう。
■インストール
mozdev.org - livehttpheaders: installation のページにある
[Install version 0.8 of LiveHTTPHeaders now]
をクリックすれば良いようなのですが、Mozilla 1.4 on FreeBSD ではうまく動かなかったので、ダウンロードページから livehttpheaders-0.8.xpi を入手しました。
(2005/01/02追記: 編集→設定→詳細→ソフトウェアインストール→「ソフトウェアのインストールを可能にする」のチェックを外している場合はクリックでインストールできないようです。チェックを入れるとできました。)
root ユーザで Mozilla を起動して livehttpheaders-0.8.xpi を「ファイル(F)」⇒「ファイルを開く(O)」で読み込めばインストール完了。
■ 起動方法
「ツール(T)」⇒「Web 開発」⇒「Live HTTP Headers」を実行するか、Ctrl+I で Header 情報が見れます。
これでちょっと便利になりました。
■ 参考ページ
コンピュータ系blog - HTTPリクエスト/レスポンスのキャプチャ
January 22, 2004
spam が増えてきたので、MT-Blacklist を入れて対応することにしました。
■ 必要なものを入手
mt-blacklist.pl (v1.62)
http://www.jayallen.org/projects/mt-blacklist/
YAML_extlib.tar.gz
MT-Blacklist User Guide から入手。
■ インストール参考ページ
Tak's ウエブログ - MT-Blacklist 1.62
みらのさんの MT-Blacklistを使用した場合の文字化け対策
■ ファイル設置
MT-Blacklist User Guide に従ってファイルを置きます。
MovableType の設置ディレクトリを $MT とすると
$MT/mt-blacklist.cgi (755) $MT/plugins/Blacklist.pl $MT/extlib/jayallen/Blacklist.pm $MT/extlib/jayallen/MTBlPing.pm $MT/extlib/jayallen/MTBlPost.pm $MT/extlib/jayallen/Blacklist_Config/ (777) $MT/extlib/Yaml.pm $MT/extlib/YAML/Error.pm $MT/extlib/YAML/Family.pm $MT/extlib/YAML/Node.pm $MT/extlib/YAML/Transfer.pm
Blacklist_Config ディレクトリは、CGI が書込めるパーミッション(777など)に設定します。
■ Blacklist.pm の設定
Blacklist.pm にある以下のパスを環境にあわせて書換えます。
(作成した Blacklist_Config ディレクトリまでのパスを指定)
$blacklist_config_directory = '/path/to/extlib/jayallen/Blacklist_Config/';
■ MTBlPing.pm 文字化け対策
TrackBack で文字化けを防ぐには、MTBlPing.pm に以下の修正を加えると良いようです。(Takさん、みらのさんに感謝)
--- MTBlPing.pm.orig Thu Jan 22 17:00:34 2004
+++ MTBlPing.pm Thu Jan 22 17:06:36 2004
@@ -36,11 +36,20 @@
#print STDERR "In ".__PACKAGE__." at ".__LINE__."\n";
#warn "In ".__PACKAGE__." at ".__LINE__."\n";
- my($title, $excerpt, $url, $blog_name) = map scalar $q->param($_),
- qw( title excerpt url blog_name);
+ my($title, $excerpt, $url, $blog_name, $icode) = map scalar $q->param($_),
+ qw( title excerpt url blog_name charset );
MT::App::Trackback::no_utf8($tb_id, $title, $excerpt, $url, $blog_name);
+ require Jcode;
+ my $charset = {'Shift_JIS'=>'sjis','ISO-2022-JP'=>'jis','EUC-JP'=>'euc',
+ 'UTF-8'=>'utf8'}->{$app->{cfg}->PublishCharset} || 'utf8';
+ my $incoming = {'shift_jis'=>'sjis','iso-2022-jp'=>'jis','euc-jp'=>'euc',
+ 'utf-8'=>'utf8'}->{lc($icode)} || Jcode::getcode($excerpt . $title . $blog_name);
+ $title = Jcode->new($title, $incoming)->$charset();
+ $excerpt = Jcode->new($excerpt, $incoming)->$charset();
+ $blog_name = Jcode->new($blog_name, $incoming)->$charset();
+
return $app->_response(Error => $app->translate("Need a Source URL (url)."))
unless $url;
@@ -103,7 +112,11 @@
$ping->ip($app->remote_ip || '');
if ($excerpt) {
if (length($excerpt) > 255) {
- $excerpt = substr($excerpt, 0, 252) . '...';
+ $excerpt = substr(Jcode->new($excerpt, $charset)->euc(), 0, 252);
+ if ($excerpt =~ /\x8F$/ or $excerpt =~ tr/\x8E\xA1-\xFE// % 2) {
+ chop $excerpt;
+ }
+ $excerpt = Jcode->new($excerpt . '...', 'euc')->$charset();
}
$title = first_n_words($excerpt, 5)
unless defined $title;
■ mt-blacklist.cgi 初期設定
mt-blacklist.cgi にアクセスして、初期設定を行います。
Would you like to activate MT-Blacklist? を [Yes] にする。
If yes, enter the full path and filename of the file: で blacklist.txt を保存するパスを指定する。
blacklist.txt は Blacklist_Config 以下に保存することにしました。
その他は特に変更していません。
[Save Configuration] ボタンを押して設定完了。
■ blacklist.txt の登録
http://www.jayallen.org/comment_spam/ に Latest Master Blacklist file があるので、この内容を mt-blacklist.cgi の [Add] のページで import しておきました。
これでしばらく様子をみることにします。
(追記)
Trackback rebuild で lib/MT/App/Trackback.pm に修正を加えていたので、MTBlPing.pm の該当部分にも修正を追加。
--- MTBlPing.pm~ Thu Jan 22 22:16:11 2004
+++ MTBlPing.pm Thu Jan 22 22:19:41 2004
@@ -143,6 +143,8 @@
$app->rebuild_indexes( Blog => $blog )
or return $app->_response(Error =>
$app->translate("Rebuild failed: [_1]", $app->errstr));
+ $app->rebuild_entry( Entry => $entry )
+ or return $app->error($app->translate( "Rebuild failed: [_1]", $app->errstr));
if ($app->{cfg}->GenerateTrackBackRSS) {
## Now generate RSS feed for this trackback item.
■2004/07/21 追記
日本語以外のコメントを拒否する修正を追加
January 21, 2004
市販の会計ソフトはいろいろありますが、ここ 3 年ほど「自分でできる青色申告」(ローカス)の本に付いていた「財務会計システム」というのを使っています。VBA マクロで作られているので、Excel さえあれば手軽に使えるのも魅力的。
さてこの本、平成 16 年度版がほしいなと思って、出版社のホームページで調べてみると、どうやら廃版になったらしく、別の出版社から同様の内容で出版されてました。それで買った本がこちら。
ソフトは Excel 2000 と Excel Version 2002 に対応しているようです。
他にも以前と同様に青色申告システム、経費精算フォーム、各種帳票フォームが付いてます。
ちなみに「自分でできる青色申告(平成 13 年度版)」附属の「財務会計システム」を Excel Version 2002 で使おうとすると、対応していないので計算がむちゃくちゃになりました(^^;
というわけで、新しい「財務会計システム」に登録データの移行を行って、めでたく平成 15 年分の会計処理完了。
(2005/01/20追記)
平成17年度版からはソフトをダウンロードするようになったようです。
書籍には CD-ROM が添付されなくなりました。
http://bookstore.tac-school.co.jp/manual/
January 14, 2004
siteAS - Sano さん作の Alternate mt-isbn が公開されていました。Net::Amazon を使って、amazon の画像ファイルやタイトルなどを取得できるようです。Amazon 利用者には嬉しいかも。
January 12, 2004
Individual Archive でコメント一覧に加えて TrackBack の一覧を表示できないかと調べてみると、解決方法がありました。numalog - MTいじり を参考に、Ping を受け取ったらすぐ Individual Archive も Rebuild することで表示可能に。
lib/MT/App/Trackback.pm に以下の修正を加えます。
--- Trackback.pm.orig Mon Jan 12 13:33:37 2004
+++ Trackback.pm Mon Jan 12 13:38:20 2004
@@ -209,6 +209,8 @@
$app->rebuild_indexes( Blog => $blog )
or return $app->_response(Error =>
$app->translate("Rebuild failed: [_1]", $app->errstr));
+ $app->rebuild_entry( Entry => $entry )
+ or return $app->error($app->translate( "Rebuild failed: [_1]", $app->errstr));
if ($app->{cfg}->GenerateTrackBackRSS) {
## Now generate RSS feed for this trackback item.
あとは、TrackBack Listing Template などを参考に Individual Entry Archive のテンプレートに TrackBack 一覧を表示させるためのタグを追加します。
<MTEntryIfAllowPings> <div class="comments-head">TrackBack(<$MTEntryTrackbackCount$>)</div> <div class="trackback-url">TrackBack URL for this entry: <$MTEntryTrackbackLink$></div> <MTPings> <div class="trackback-body"> <a name="<$MTPingID$>"></a> <a href="<$MTPingURL$>" target="new"><$MTPingTitle$></a><br /> <b>Excerpt:</b> <$MTPingExcerpt$><br /> <b>Weblog:</b> <$MTPingBlogName$><br /> <b>Tracked:</b> <$MTPingDate$> </div> </MTPings> </MTEntryIfAllowPings>
January 09, 2004
ZDNet/JAPANはそのブランド名を「ITmedia」に変更し、IT情報総合サイトとして新しく出発することになりました。(from ITmedia Headlines )
Tips for Linux とかは Linux に限らず使えたりするので役立ってます。
January 01, 2004
キャッシュするように修正を加えてみました。
--- mt-bk1.pl.orig Thu Jan 1 14:06:43 2004
+++ mt-bk1.pl Thu Jan 1 15:50:58 2004
@@ -25,6 +25,8 @@
<\/div>
__EOF__
+my $CACHE_DIR = "/path/to/bk1_cache";
+my $EXPIRE = 24; # hour(s)
;#====================================================================
use strict;
@@ -46,16 +48,17 @@
sub to_html {
my $bibid = shift;
my $url = "http://cgi.bk1.jp/xml.cgi?bibid=$bibid&aid=$AID";
+ my $cache = "$CACHE_DIR/$bibid.xml";
;# Get XML
- my $ua = new LWP::UserAgent;
- $ua->agent("mt-bk1");
- my $http_request = new HTTP::Request('GET', $url);
- my $http_response = $ua->request($http_request);
- my $content = $http_response->{'_content'};
+ unless (-f $cache && -M _ < ($EXPIRE / 24)) {
+ my $ua = new LWP::UserAgent;
+ $ua->agent("mt-bk1");
+ $ua->mirror($url, $cache);
+ }
my $ProductInfo;
- $ProductInfo = XMLin($content);
+ $ProductInfo = XMLin($cache);
my $ProductName = $ProductInfo->{Details}->{ProductName};
my $SeriesName = $ProductInfo->{Details}->{SeriesName};
mirror() を使ったキャッシュは WEB+DB Vol.18 の宮川さんの記事を参考にしました。
bk1 の書籍を取り込めるプラグイン(mt-bk1.pl)が公開されていました。bk1 をよく利用するので自分としては aws.pl よりこっちのほうが欲しかったんです。XML::Simple を入れて使ってみました。
あと要望としては、取得した XML を一定時間キャッシュできるようになると、頻繁にビルドするときに重くならなくて良いかなと。

自分(うち)の会社の強化マニュアル青色申告 平成16年度版
自分(うち)の会社の強化マニュアル青色申告 平成17年度版
Movable Typeで今すぐできるウェブログ入門