行動記録

WebDAVシステム構築ガイド released

MixiMessageExporter-0.01 Unix

MixiMessageExporter - mixi メッセージをメールとしてエクスポートするで公開されている MixiMessageExporter-0.01 ですが、 まあ、とりあえず Linux で動くように。 って、別に何もしなくてもふつーに動くでしょうけどね。 ログが Shift_JIS で切ないぐらいで。

MixiMessageExporter-0.01-unix.patch です。変更点はつぎのような感じ。

あと、コマンドラインにパスワードってありえない!とか思ったのでスクリプト内に埋め込んだのもついでに。MixiMessageExporter-0.01-hardcoding.patch です。

MixiMessageExporter - mixi メッセージをメールとしてエクスポートするで 0.04 が公開されています。 これはこのままで Unix 系 OS などでも動くので大体安心です。

アンチ CPAN なのかな?

LL Weekend 2004 の感想っぽいものから。greentea さんのバカが斬る:LLのここがダメ!から引用。強調は引用者。

まず、Perl。汚ない汚ないって気にしすぎってのが1つ。 あと、CPANがいいってのは分かるけど、それで終わりじゃ寂しくない? 裏でよく使われてるってのはLLWでもよく分かったけど、 それが表に出てこないっちゅーのもあるよね。

こういうイベントで Perl のコードが汚いってのは大概はネタでしょう。 だから、まあ、それはとりあえずどーでもいい。 しかし、「CPANがいいってのは分かるけど、それで終わりじゃ寂しくない?」という言葉の意図が全然わかんない。 どういう意図の発言なんだろう。 モジュールが CPAN に集約され、CPAN で完結できるからこそ便利だと思うんだけど。 次の展開があるという意味だろうか? そうだとしたら次の展開ってなんなんだろう? 使うためのドキュメントの充実という点ではいろいろできるだろうけど、 なんかそういう意味で言っているような文脈ではない気がするし。 greentea さんには、もうちょっと噛み砕いて私が理解できるように解説して欲しい。

なんか削除されたようで。解説は無しなのかな?

Perl の CGI モジュールの redirect メソッドに status が追加された

Perl の CGI モジュールの Revision History をみていると「Added -status argument to redirect().」という記述が。以前、宮川さん(誰)から教えてもらった気もするし、以前から実装はされていた気もするけど、POD には今回のバージョンから記述された模様。

Perl の CGI.pm 3.04 の header メソッドを RFC 3023 に対応させる patch

kyo さんが発見してましたが、Perl の CGI モジュールの3.04 以前では、header() メソッドの charset 指定は type が text/* な場合しか意味が無いという実装になっています。 この実装では、RFC 3023 XML Media Types にあるような application/xml などのときに charset が指定できません。暫定的には、kyo さんの仰るようにtype の指定の際に charset も併せて指定すれば回避可能ですが、根本的になおさなあかんやろう、と問題点がわかりやすいように適当な patch を書いて perl5-porters ML に投げてみた。

数日経っても反応がないけどどんなもんだろう。CPAN に投げるべきだったのかなぁ。でも、CPAN にアカウントないし。

Monday Module - HTML::LinkExtor

naoyaさんが Monday Module ひとり - HTML::LinkExtor で Monday Module の予行演習をやってるな。

僕もやってみよう。 ということで、アサマシゴールド(謎)を実装してみました。 もうちょっと作りこんで HTML を吐くようにすれば実用レベルかな(謎)。

#!/usr/bin/perl

###
# Copyright © 2003 IWAI, Masaharu All Rights Reserved.
#
# This program is free software; you can redistribute it and/or
# modify it under the same terms as Perl itself.

use warnings;
use strict;
use LWP::Simple;
use HTML::LinkExtor;

my $target = shift;

my $myid = 'review-22';
my $check = 'http://www.amazon.co.jp/exec/obidos/ASIN/';

my $content = LWP::Simple::get($target);
my $p = new HTML::LinkExtor(\&callback, $target);
my @urls = ();

sub callback {
  my($element, %links) = @_;
  if ( ($element eq "a") && ($links{href} =~ m!$check! ) ){
    push(@urls, values %links);
  }
}
$p->parse($content);

foreach my $url (@urls){
  $url =~ m!(${check}[\w]+/)!;
  print "$1$myid\n";
}