« Dec 2003 | Jan 2004 | Feb 2004 »

January 24, 2004

Mozilla LiveHTTPHeaders

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

mt-blacklist.pl

spam が増えてきたので、MT-Blacklist を入れて対応することにしました。

■ 必要なものを入手

mt-blacklist.pl (v1.62)
http://www.jayallen.org/projects/mt-blacklist/

YAML_extlib.tar.gz
MT-Blacklist User Guide から入手。

■ インストール参考ページ

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 年度版がほしいなと思って、出版社のホームページで調べてみると、どうやら廃版になったらしく、別の出版社から同様の内容で出版されてました。それで買った本がこちら。

自分(うち)の会社の強化マニュアル青色申告 平成16年度版
TAC株式会社編著・デスクトップ監修
TAC株式会社出版事業部 / ¥ 2,000 / 2003.12

ソフトは Excel 2000 と Excel Version 2002 に対応しているようです。
他にも以前と同様に青色申告システム、経費精算フォーム、各種帳票フォームが付いてます。

ちなみに「自分でできる青色申告(平成 13 年度版)」附属の「財務会計システム」を Excel Version 2002 で使おうとすると、対応していないので計算がむちゃくちゃになりました(^^;

というわけで、新しい「財務会計システム」に登録データの移行を行って、めでたく平成 15 年分の会計処理完了。

(2005/01/20追記)

自分(うち)の会社の強化マニュアル青色申告 平成17年度版
TAC株式会社編著・デスクトップ監修
TAC株式会社出版事業部 / ¥ 2,000 / 2004.12

平成17年度版からはソフトをダウンロードするようになったようです。
書籍には CD-ROM が添付されなくなりました。
http://bookstore.tac-school.co.jp/manual/

January 14, 2004

alternate mt-isbn

siteAS - Sano さん作の Alternate mt-isbn が公開されていました。Net::Amazon を使って、amazon の画像ファイルやタイトルなどを取得できるようです。Amazon 利用者には嬉しいかも。

January 12, 2004

Trackback rebuild

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

ITmedia
ZDNet/JAPANはそのブランド名を「ITmedia」に変更し、IT情報総合サイトとして新しく出発することになりました。(from ITmedia Headlines )

Tips for Linux とかは Linux に限らず使えたりするので役立ってます。

January 01, 2004

cache patch for mt-bk1.pl

キャッシュするように修正を加えてみました。

--- 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 の宮川さんの記事を参考にしました。

mt-bk1.pl

bk1 の書籍を取り込めるプラグイン(mt-bk1.pl)が公開されていました。bk1 をよく利用するので自分としては aws.pl よりこっちのほうが欲しかったんです。XML::Simple を入れて使ってみました。

あと要望としては、取得した XML を一定時間キャッシュできるようになると、頻繁にビルドするときに重くならなくて良いかなと。

Movable Typeで今すぐできるウェブログ入門
平田大治著
インプレスネットビジネスカンパニー / ¥ 1,800 / 2003.08


« Dec 2003 | Jan 2004 | Feb 2004 »

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