2005年10月アーカイブ

使ってみて qwik.jp の便利さを再発見しました。これは使っていて気持ちいいですね。

qwikWebは、メールとWebをあわせた新しいコミュニケーションツールです。メールを送るだけで、メーリングリストや書き込み可能なWebサイトを立ち上げることができます。

"好きな名前@qwik.jp"というMLを作成すると、 "http://qwik.jp/好きな名前/"というWikiが用意される。

このWikiにはQuickMLに追加されたメンバーのみが閲覧編集できて、 かつMLに投稿されたメールのアーカイブが閲覧できる!

特に qwikWeb の付箋機能がお気に入りです。 要望があるとすれば、携帯電話のブラウザ対応をもうすこしがんばってほしい。

qwikWebはオープンソース(GPLライセンス)で開発されていてhttp://qwik.jp/qwikWeb.html からリンクをたどるとソースをダウンロードすることができます。

use utf8; とすればスクリプトの中でUTF8が使える、という話を The Perl Journalの Simon Cozen 氏の記事 Ten Things You (Probably) Didn't Know About Perlで見かけた。どれどれ、と 変数名と関数名にUTF8を使ってスクリプトを書いてみた。(「package My::ひと;」は使えませんね「package My::ひと;」を使うには それより前で「use utf8;」すると良いようです(Inaba Hirotoさん情報。ありがとうございます))

package My::Person;
use utf8;
sub 新 {
    my $抽象的な名前 = shift;
    my %おぷちょん = @_;
    my $化身 = bless { なまえ => $おぷちょん{なまえ},
                       うまれ => $おぷちょん{うまれ} }, $抽象的な名前;
    return $化身;
}
sub なまえ {
    my $化身 = shift;
    return $化身->{なまえ};
}

package main;
my $せっきー = My::Person->新(なまえ => "Masayoshi Sekimura",
                              うまれ => "Hokkaido");

print $せっきー->なまえ,"\n";

実行した。

$ perl -w -Mstrict use_utf8.pl
Masayoshi Sekimura

驚いた。さらに、Filter::Pyuuta を思い出してしまったので悪ノリしてみた。

package My::Person;
use utf8;
use Filter::Pyuuta;

sub 新 {
    ここだけの話 $抽象的な名前 = 引っこ抜く;
    ここだけの話 %おぷちょん = @_;
    ここだけの話 $化身 = お清めをする { なまえ => $おぷちょん{なまえ},
                                 うまれ => $おぷちょん{うまれ} }, $抽象的な名前;
    戻る $化身;
}
sub なまえ {
    my $化身 = shift;
    戻る $化身->{なまえ};
}

package main;
ここだけの話 $せっきー = My::Person->新(なまえ => "Masayoshi Sekimura",
                                        うまれ => "Hokkaido");

書く $せっきー->なまえ,"\n";

「ここだけの話」がブログ女王の接頭辞になりつつあるこのご時世、トラックバックがたくさんやってきそうなスクリプトになりました。(Filter::Pyuuta は EUC-JP から UTF-8 に変換する必要があります。あと shift と bless をmapに追加しないといけません)

yaml ファイルで書かれた設定ファイルとかの差分を調べるために diff を取ろうとすると 以下 diff -u file1.yaml file2.yaml のようにどのキーの値が違うのかがわかりにくい。

-- file1.yaml  2005-10-18 00:22:33.000000000 +0900
+++ file2.yaml  2005-10-18 00:22:53.000000000 +0900
@@ -1,9 +1,11 @@
-template:
-  path: /home/sekimura/templates
 database:
   host:     localhost
   port:     5432
-  passwd:   dbpasswd
   user:     dbuser
+  passwd:   dbpassword
 app:
   name: Sandbox
+template:
+  path: /home/sekimura/templates
+author:
+  name: Masayoshi Sekimura

そんなわけで簡単なYAMLをキー単位で差分を取る ydiff というツールを作ってみた。 ydiff file1.yaml file2.yaml を実行した結果が以下。

--- file1.yaml database
+++ file2.yaml database
@@ -1,5 +1,5 @@
 ---
 host: localhost
-passwd: dbpasswd
+passwd: dbpassword
 port: 5432
 user: dbuser
--- file1.yaml author
+++ file2.yaml author
@@ -1 +1,2 @@
---- ~
+---
+name: Masayoshi Sekimura

この diff でそのまま patch を当てるってことはできないけども、 databaseキー の passwd にスペルミスっぽいのがあるのと、 file1.yaml にauthorキーが無いのがわかる。十分便利。

ちなみにこんなスクリプトです。

#!/usr/bin/perl
use strict;
use warnings;

use YAML qw(LoadFile);
use Text::Diff;

my ($file1, $file2) = @ARGV;

my $yaml1 = LoadFile($file1, NULL);
my $yaml2 = LoadFile($file2, NULL);

my %all_keys = map { $_ => 1 } (keys(%$yaml1), keys(%$yaml2));
for my $key (keys %all_keys) {
    print diff(\YAML::Dump($yaml1->{$key}), \YAML::Dump($yaml2->{$key}),
                   {
                       FILENAME_A  => $file1." ".$key,
                       FILENAME_B  => $file2." ".$key,
                   });
}

YAMLがハッシュでないと動かないけど、たいていの設定ファイルはこんな感じなのでOKかと。

MT3.2になってから、コメントスパム、トラックバックスパムは SpamLookup プラグインで楽させてもらってます。 最初のスパムをつぶしてしまえば、Junk判定されたコメントの メールアドレスやコメント本文に 含まれる URL を覚えていいて、次回のスパムにJunkなメールアドレスやURLを含む コメントやトラックバックは意識しなくてもどんどんJunkコメント/トラックバックとして処理してくれてます。

で、それぞれのSpamLookup plugin がJunkコメント/トラックバックとして処理するところを みんなで共有しようという仕組みを miyagawa さんが提供してくれています。ぐれいと。

Bulkfeeds では、ボランティアによる SPAM サイト登録 と、自作の SPAM フィルタによるブラックリストの強化を行ってきましたが、API による公開の準備ができたのでお知らせします。

今回の API および機能拡充は以下のリストから構成されます。

1. DNS によるブラックリスト問い合わせ API の公開(ベータ)
2. Movable Type の JunkFilter フレームワークと連携した自動登録
3. REST による ブラックリストへの URL 登録 API の公開

この「Junkコメント/トラックバックとして処理」のSpamLookupが自動的に やってくれている部分にHookをかけて、rbl.bulkfeeds.netにスパムのターゲットサイトの ドメインを集める部分と、 集めたターゲットサイトをドメインBlackListをDNS問い合わせに対応する部分で スパムコメントをエンドユーザ側から包囲してしまうわけです。豪快にして合理的。

もう http://www.gaycoock.com とか書いたコメントやトラックバックは投稿できないですよ。

Alt-Tab Replacement

| コメント(0)

週アスの「ウィンドウズXP調査団」に乗っていた Alt-Tab Replacement 使ってみました(Microsoft PowerToys for Windows XP から ダウンロードできます)。Alt-Tab でタスクを切り替えるときにサムネイルで作業を確認できてます。こりゃ便利ですね。

ScreenCastをWinkで作成してみました。

Ajaxian.com

| コメント(0)

Ajax な例をいろいろと追いかけたいあなたならもうチェックしているでしょうけど、Ajaxian.comが面白いです。

Ajaxian.com

最近のエントリーだと、ER図を書けちゃう WWW SQL Designerとか、37signalsの新しいサービスWriteboardのリリース情報をキャッチしたりと 更新が見逃せないサイトになってます。