April 30, 2004

New Found Glory - Catalyst

New Found Glory - Catalyst [FROM US] [IMPORT]

MTV でヘビーローテーション中の All Downhill From Here が最高な New Found Glory のニューアルバムは 5.18 発売ですか。楽しみすぎ!

Posted by miyagawa at 07:58 PM | Comments (0) | TrackBack (1)

ハッスル劇場

スポーツナビ|格闘技|高田総統が長州抹殺を宣言!

高田モンスター軍総統が長州抹殺を宣言した。高田総統は29日、マスコミを都内某所の「総統の部屋」に招待。橋本真也との“OH砲”で『ハッスル3』(5月8日、横浜アリーナ)に出場すると一方的に宣言した小川直也に対し「ハッスル度は40パーセントだったが、査定試合をクリアした。まあいいだろう。私からの贈り物だ」とタッグでの出場を容認。その後、笹原ハッスル事業主任に一部対戦カードを発表させたが「長州力」の名前を聞くと「ゲスト気取りでハッスルに出場し、燃えカスのような試合をした長州の名前がなぜあるのか」と激怒。これに対して事情を説明したのは島田裕二参謀長。

高田はじけてんなー。

Posted by miyagawa at 06:46 AM | Comments (1) | TrackBack (1)

Google IPO

BBC NEWS | Business | Google to sell $2.7bn in shares

Internet search powerhouse Google has confirmed it is to float on the US stock market.
The company has filed papers proposing to issue stock to raise an estimated $2.7bn, documents showed.

Google IPO キター。

Posted by miyagawa at 06:03 AM | Comments (0) | TrackBack (2)

iTunes パーティシャッフル

dablog: iTunes4.5でシャッフル生活を充実させる

僕の場合をいうと、いままであるプレイリストで聴いている時に、"そのプレイリストに入っていないある曲を聴きたくなったけど、その曲の後は以前のプレイリストを継続したい"みたいなことがよくあって、その度に面倒な思いをしていたのですが、この機能を使えばプレイリスト外の曲を"パーティーシャッフルで次に再生"みたいなことが出来るので、凄く便利っぽいです。

ああ、これはすばらしい。Winamp から移行したときに一番不便だなとおもってたとこです。

Posted by miyagawa at 05:55 AM | Comments (1) | TrackBack (0)

ニューデザインパラダイス

ニューデザインパラダイス

『禁じられた遊び』『お厚いのがお好き?』に続く、大人のための知的情報番組。今度のテーマは"物のデザイン"。
デザインラボラトリー主宰・谷原章介の夢「21世紀の地球をもっと美しくすること」を実現すべく、今最も旬なクリエーターたちが、まったく新しいデザインの再生に挑む!!

「デザイン」・・・ それは地球に残された最後の資源。

この番組面白いですね。90年代前半のフジテレビ深夜番組全盛期を思い出させます。そしてBGM は大好きな ニューシネマパラダイスのそれ!

Posted by miyagawa at 01:25 AM | Comments (0) | TrackBack (5)

new Syndication Format SDF

Nick Bradbury: RSS, Atom...and SDF?

Daniel Henry calls for unity in the syndication war by proposing a new format called SDF.
I haven't had a chance to really read the spec, but David has obviously put a lot of effort into it. Although I'm certainly not wild about yet another feed format, if SDF ever gets widely used I'll support in FeedDemon.

yet another な Syndication フォーマット、だそうです。

Posted by miyagawa at 01:03 AM | Comments (0) | TrackBack (1)

Blosxom 3.0

raelity bytes

I've just uploaded Blosxom 3.0 2i (aka alpha 2). This is a minor update, fixing only a couple of things: permalinking (i.e. requesting a particular entry) now works and an individual entry's path is now normalized (huzzah!), so no more having to figure out whether to put $url$path$fn or $url/$path$fn or $url/$path$fn--Blosxom does that for you.

Blosxom 3.0 でましたねー。んー、いじるかどうしようか。。

Posted by miyagawa at 01:03 AM | Comments (1) | TrackBack (0)

April 27, 2004

Crypt::MP4Stream

search.cpan.org: William Herrera / Crypt-MP4Stream-0.01_02

Crypt::MP4Stream DRMS decoding of Apple style encrypted MP4 player files

iTunes の DRMS を解くモジュール DeCRMS.c の Perl port かな?

Posted by miyagawa at 09:02 PM | Comments (0) | TrackBack (0)

April 26, 2004

hirax さん@bkcon

Shibuya Perl Mongers : バッドノウハウカンファレンス 2004

平林純氏のさん招待講演が決定しました。 『史上最強科学のムダ知識』 を持参するといいかもしれません。

bkcon にて hirax.net の平林さんが講演してくれることになりました! ムダ知識本もっていってサインもらおう。。

Posted by miyagawa at 11:24 AM | Comments (0) | TrackBack (0)

April 23, 2004

Googlebot tries atom.xml

Finally Atom: GoogleBot hunts for Atom

Googlebot has been spotted in a server's logs looking for atom.xml (and index.rdf, but interestingly not rss.xml). A little impolite, as it would only appear to be fishing. Or could it be the end of civilisation as we know it..?

Googlebot が /atom.xml を探してるらしいという話題。

64.68.84.9 - - [23/Apr/2004:00:04:02 +0900] "GET /mt/atom.xml HTTP/1.0" 404 279 "-" "Googlebot/2.1 (+http://www.googlebot.com/bot.html)"

たしかにきてますね。

Posted by miyagawa at 02:37 AM | Comments (2) | TrackBack (7)

エアボードの疑問

ロケーションフリーテレビ「エアーボード」LF-X1 - SonyStyle

DVDやビデオもワイヤレスで楽しめる。操作もタッチパネルリモコンでらくらく。
ベースステーションにハードディスクレコーダーやビデオデッキなどを接続して、録画したテレビ番組やDVDソフト、テレビチャンネル切り換えなどをワイヤレスで楽しむことができます。操作も画面に表示されるタッチパネルリモコンに触れるだけ。 1階のリビングにあるDVDプレーヤーの映像を2階のプライベートルームで楽しむなど、離れた場所のAV機器の再生や停止などを簡単にコントロールできます。

基本的にテレビに支配されてる人間なのでベッドルームでも風呂でもテレビみてえなあ、とエアボードに注目。無線LANポイント機能とか全然イランのですが。

この、リモコンをボード側から操作する機能ですが、XFER にもついてるヤツだけど、SONY のエアボードの場合、非SONYな機械でも操作できるんすかねー? うちの東芝HDDレコーダ RD-XS41 が操作できるかなあ。

だったら買ってもいいかと思ってます。

Posted by miyagawa at 01:13 AM | Comments (2) | TrackBack (0)

April 22, 2004

Yahoo! Japan メディア検索

Yahoo! Japan がマルチメディア検索をスタートしたようですね。エンジンは All the Web を使用しているみたいです。(e.g. 「人質」を画像検索)

画像、動画、音声などが検索できますね。音声って使い道あるのかな。。。動画はニュースとか検索できると便利そうです。

Posted by miyagawa at 10:48 PM | Comments (0) | TrackBack (0)

Apache モジュール講習

MODULE.JP の小山さんが Apache モジュールの講習会やるそうです。

びぎねっと:トレーニング

本トレーニングでは、Apacheモジュールの開発やカスタマイズを行いたい方を対象に、C言語を利用したApacheモジュールの開発方法を解説します。さらに、実機を使用した実習で実際にモジュールの開発を行っていただきます。
講師には、『WebエンジニアのためのApacheモジュールプログラミングガイド』(技術評論社刊)の著者である小山 浩之氏をお招きいたしました。

Posted by miyagawa at 10:46 PM | Comments (0) | TrackBack (0)

Google 検索の文字コード自動判別

Google が検索に新機能追加 だそうで。これってMozilla系とか、タブブラウザのカスタム検索とかの方が普通に便利っぽいですが。Google をホームにしてる場合とかは便利なのかな。

それに関連してるのかわかりませんが、昨日あたりからSJIS で生クエリ投げたときに文字コード判別してくれなくなったみたいですね。僕の使ってる DonutP は、カスタム検索で日本語いれるとエスケープしないで投げてくれるので、うまいこと検索できなくなってしまいました。Sleipnir とかでも同様だとおもいます。(ITMedia に記事でてました。Sleipnir ってそんなメジャーなのか?)

Posted by miyagawa at 02:46 PM | Comments (0) | TrackBack (5)

April 21, 2004

JUGEM Atom 0.3対応

paperboy&co.、「JUGEM」がAtom0.3に対応

paperboy&co.は、同社が運営するブログサービス「JUGEM」にてAtom0.3への対応を開始した。

 Atom0.3は、RSSと同様にWebサイトの要約や見出しを配信するフォーマット。JUGEMではすでにRSSに対応しているため、2種類のフォーマットをサポートすることになる。「http://アカウント名.jugem.cc/?mode=atom」にアクセスすることで、最新15件のエントリがAtom形式で出力される。

JUGEM が Atom フィードを開始しました(すばらしい)。

しかしメディアはフィードの方ばっかり注目していますけど、「Atom 0.3 対応」というのは Atom API も含めて対応してるようなイメージを与えますので、Atom フィード 0.3 対応というのが正しいとおもわれます。

Posted by miyagawa at 04:08 PM | Comments (0) | TrackBack (0)

エンニオモリコーネ

聞き覚えのあるニューシネマパラダイスのあのメロディ。テレビのCMでやってました。

エンニオ・モリコーネ、奇跡の初来日公演! - goo 音楽

最近では、NHK大河ドラマ『武蔵』の音楽を担当して話題になった史上屈指のフィルム・コンポーザー、エンニオ・モリコーネの初来日公演が決定した。

ニューシネマパラダイスとか、海の上のピアニストのジュゼッペトルトナーレとのコンビはほんと最強ですよね。

気づいたら サウンドトラック を買ってしまいました。なんだかいまさらですが、前々から欲しいと思ってたもんで。

Posted by miyagawa at 05:34 AM | Comments (0) | TrackBack (0)

無敵会議: アクセス向上委員会

無敵会議 帰ってきたアクセス向上委員会にスピーカーとして参加してきました。大方の人は僕が何を言ってたかもわからないかとはおもいますが、まあそれはそれで問題ないのであまり気にしないでください(笑)。一応私の発表資料を このあたりにおいておきます。

どれも楽しかったんですが、個人的にはみん就のいとまささんの話が一番面白かったですね。

Posted by miyagawa at 05:27 AM | Comments (1) | TrackBack (2)

Lily Bulkfeeds プラグイン

antipop - lily 用 Bulkfeeds: Similarity Search プラグイン

やはり僕たちブロッガー(何)に欠かせないもの、それは Bulkfeeds: Similarity Search だよね! んなことないとかいうやつは、ブロッガー仲間に入れてやんないもんね!
…というわけで、Permalink に Similarity Search の結果を埋め込むプラグインを作成。上記は冗談としても、個人的に Similarity Search の結果はほんと重宝してるので、これは普通に必要なもの。まぁ、作ったとかいうようなものでもないわけだが。。

blosxom の Ruby 版 Lily 用の Bulkfeeds Similarity Search プラグインをけんたろさんが作ってくれました。

Posted by miyagawa at 02:12 AM | Comments (0) | TrackBack (0)

April 19, 2004

XML::Atom::Server メモ

XML::Atom::Server を使って Atom API サーバを実装実験中。気づいたことメモ。

password_for_user メソッドの実装

XML::Atom::Server ではWSSE認証のために password_for_user というメソッドを実装して、

sub password_for_user {
    my($self, $username) = @_;
    return $password;
}

みたいにする必要あり。ユーザの入力に password は含まれず、種 (Nonce + created) と PasswordDigest があるだけなので、パスワードがサーバ側でわからないとだめです。メソッドで password を文字列で返すってのが実装的には気持ちよくないんですが、まあこれがラクでいいのかな。別サーバとかにある場合は authenticate そのものをオーバーライドしてやればいいとおもわれます。

パラメータの解釈は PATH_INFO

パラメータの解釈には PATH_INFO を使用しています。

GET /atomapi/blog_id=12/entry_id=13

みたいなリクエストから

$VAR1 = { 
  blog_id => 12,
  entry_id => 13,
};

みたいなハッシュをパラメータとしてつくります。これは Atom API の Spec ではなく XML::Atom::Server の独自拡張だと思われます。

URIから実装メソッドへのマッピングがめんどくさい

TypePad Atom API にあるような、URI から実装メソッドへのマッピングを行うのは結構しんどいです。request_method の GET / POST / PUT / DELETE と、PATH_INFO からとったパラメータ ($self->{params} でとれる) をひたすら if .. elsif で判定して実装メソッドに dispatch してあげる必要アリ。具体的には、

  • GET で、blog_id だけある場合は getFeed
  • PUT で、entry_id がある場合は updateEntry
  • GET で、パラメータなしは getFeedRoot
  • ...

みたいになります(メソッド名は任意。もう少しエレガントにならんのかな。

レスポンスは生XML

handle_request メソッドで、レスポンスのXMLを生成して返しますがここが抽象化されていません。生のXML文書を文字列で返すAPIです。自分は「実装メソッド名.xml」なファイルを テンプレートで読み込んで吐き出すようにラッパーつくってみましたが。

まだまだ未成熟なAPIなので、ツールも使いにくい状態です。いろいろいじって、XML::Atom の方にもフィードバックしていきたいですな。

Posted by miyagawa at 06:55 PM | Comments (0) | TrackBack (0)

Atom の namespace 拡張

RSSについて
現状のAtomって、独自のモジュール追加みたいな拡張系ってどうなってるの? RSS 1.0はRDF αの制約の範囲内で、解釈の仕方を含めてある程度対応できると思うけど、 ホントにAtomはあくまでSyndicationのフォーマットで、それ以上では無いってことなの?
普通に xmlns を使って拡張できます。
<entry xmlns="http://purl.org/atom/ns#" xmlns:book="http://sixapart.com/atom/book#">
<book:isbn>:00000000000</book:isbn>
</entry>

RDF ではないので解釈の仕方は個別になってしまうのがネックですね。なるべくボキャブラリは統一したほうが、アプリケーション開発者に優しいでしょうね。(e.g. カテゴリは dc:subject で表す、など)

Posted by miyagawa at 03:02 PM | Comments (0) | TrackBack (0)

Atom just for Blogging?

Atom API のサーバ側をちょっといじくってるこの頃(というか今日見始めたばかりですが)。気になってきたことをメモです。

Atom API は汎用的コンテンツ編集API?

Atom API はBlog の XML-RPC まわりのために立ち上がったプロジェクトではありますが、仕様自体は拡張性があるので、別にBlogに限った用途なわけではありません。実際、TypePad の Atom API では、Blog 以外に TypeList や PhotoAlbum の編集を同様のAPIで処理することができます。

たとえば TypeList に書籍を追加するには、

POST /t/atom/lists/list_id=1 HTTP/1.1
Host: www.typepad.com
X-WSSE: my credentials

<?xml version="1.0" encoding="utf-8"?>
<entry xmlns="http://purl.org/atom/ns#" xmlns:book="http://sixapart.com/atom/book#" xmlns:rvw="http://purl.org/NET/RVW/0.1/">
  <book:isbn>0375412808</book:isbn>
  <content>This is a funny book.</content>
  <rvw:value>4</rvw:value>
</entry>

のようなリクエストを投げ、

HTTP/1.1 201 Created
Content-Type: application/x.atom+xml

<?xml version="1.0" encoding="utf-8"?>
<entry xmlns="http://purl.org/atom/ns#" xmlns:book="http://sixapart.com/atom/book#" xmlns:rvw="http://purl.org/NET/RVW/0.1/">
  <title>Jeffrey Steingarten: It Must've Been Something I Ate: The Return of the Man Who Ate Everything</title>
  <issued>2003-12-05T00:21:54Z</issued>
  <id>tag:typepad.com,2003:listitem-201</id>
  <book:title>It Must've Been Something I Ate: The Return of the Man Who Ate Everything</book:title>
  <book:author>Jeffrey Steingarten</book:author>
  <content>This is a funny book.</content>
  <rvw:value>4</rvw:value>
  <book:isbn>0375412808</book:isbn>
  <book:thumbnail>http://images.amazon.com/images/P/0375412808.01.THUMBZZZ.jpg</book:thumbnail>
</entry>

のようなレスポンスを受け取ります。エントリの要素の book:isbn は http://sixapart.com/atom/book# という namespace で拡張された要素を表しています。

こうしてみてくると、Atom というのは HTTP の REST アーキテクチャを利用した、汎用コンテンツ編集のAPIなのかなあ、という気もしてきます。よりライトウェイトになった SOAP のようなモノですね。実際、CPAN の XML::Atom モジュールでは、REST 風と SOAP 風での Atom API 実装をオプションで切り替えることもできます。つまり役割としてはSOAP とおなじレイヤーに位置しているということがいえます。atom-syntax メーリングリスト でもこれは話題になっていて、The Atom API is just for Blogging?スレッドからその様子を見ることができます。

しかし、ライトウェイトになった SOAP って、それ XML-RPC じゃダメなの?とか思ってしまいます。XML-RPC と違うのは、より REST アーキテクチャよりになっているということです。XML-RPC では、1つのエンドポイントURI (たとえば http://www.typepad.com/t/api)に対して、XML でエンコードされたメッセージを投げます。

もっともよく使われている XML-RPC の例としては weblogUpdates.ping がありますが、これは

POST http://example.com/rpc
Content-Type: text/xml

<?xml version="1.0" encoding="UTF-8"?>
<methodCall>
<methodName>weblogUpdates.ping</methodName>
<params>
<param><value><string>blogname</string></value></param>
<param><value><string>blogurl</string></value></param></params>
</methodCall>

のような HTTP メッセージになっていて、メソッドがPOST であることとエンドポイントURIは固定されています。Atom の場合は、もう少しHTTPを有効に活用するために、

  • URI が編集対象のオブジェクト(エントリ)を表現する
  • GET で既存のオブジェクトを取得、POST で新規投稿、PUT で編集、DELETE で削除

と、より直感的になっています。それ以外にも認証を WSSE (Web Service Security Enforcement) を使用している、とかもありますがここでは省略。

しかし URI で編集対象を表現して、HTTP のメソッドで内容を書き換える、っていうと WebDAV を思い出します。Atom Wiki でも Relationship between Atom and WebDAV としてこの関係が議論されています。WebDAV はバーチャルなファイルシステムに特化しているのに比べ、AtomはAPIなのでより自由度が高い (= 実装側でやるべきことが多いという意味でもある)というところが違いでしょうか。

SOAP よりライトウェイト、XML-RPC より REST 重視、WebDAV よりアプリケーション層の自由度が高い。Atom の特徴を、競合技術と比較するとこう表現することもできるかもしれません。

Posted by miyagawa at 01:55 PM | Comments (0) | TrackBack (2)

ecto for win32

chaotic intransient prose bursts: ecto for Windows beta updated

Alex writes re the ecto for Windows beta:
Build 0.3.3.1 is now available for download.

Mac 用 Blogging クライアントとしてマニアには話題だった ecto の Win32 版がでたみたいです。ちょっと試しましたが TypePad でやったところとりあえず日本語も問題なく通るようです。Atom API はチェックボックスありますがアクティブにならない、ってことは未サポートですかね。

Posted by miyagawa at 12:31 PM | Comments (0) | TrackBack (2)

April 16, 2004

livedoor Blog スタッフルーム

livedoor Blog のスタッフルームに書き始めました。

livedoor Blog 開発日誌:スタッフルーム3

プロデューサーのプーケット氏 に何か書いてくださいよーといわれたので初登場です。

Posted by miyagawa at 07:13 PM | Comments (0) | TrackBack (0)

バッドノウハウカンファレンス2004 登録開始

blog.bulknews.net: バッドノウハウカンファレンス 2004

バッドノウハウカンファレンス2004 を Shibuya.pm 主催で高林さんと開催します。ちょっと広めの部屋を予約したので (40人がとれなかったからですが) ぜひ遊びに来てください。

事前登録を開始しました。当日参加でもOKですが、ぜひ登録してくださいまし。

UPDATE: すでに70名を超える登録があります。部屋の定員が80名なので、これ以上のペースで登録が増えた場合には、当日参加をNGにする可能性があります。行こうかな〜と思っているけどまだ、という人はぜひ事前登録おねがいします。

Posted by miyagawa at 06:19 PM | Comments (0) | TrackBack (0)

tdiary2rss.cgi ソース

blog.bulknews.net: tdiary2rss.cgi
知り合いにしか教えていなかったのですが、任意の tDiary を RSS 化するCGIを公開しています。

興味ある人のために、ソースも公開。あんまキレイじゃない。

#!/usr/local/bin/perl -w

use strict;
use Cache::FileCache;
use CGI;
use Encode::compat;
use Encode;
use LWP::Simple;

use lib "/bulknews/lib";
use RSS::Simple;

my $cache = Cache::FileCache->new({
    namespace => "tdiary2rss",
    default_expires_in => 60 * 30,
});

my $itempat = <<'PAT';
<div class="section">
<h3><a href="(.*?)"><span class="sanchor">.*?</span>
</a> *(?:\[.*?\])?(.*?)</h3>(.*?)
</div>
PAT
    ;

my $q = CGI->new;
$q->charset("UTF-8");

my $url  = $ARGV[0] || $q->path_info;
$url =~ s!^/!!;

my $html;
unless ($html = $cache->get($url)) {
    $html = get($url);
    $cache->set($url => $html);
}
$html = decode("euc-jp", $html);

my $title = ($html =~ m!<title>(.*?)</title>!i)[0];

my $rss = RSS::Simple->new();
$rss->channel(
    title => $title,
    link  => $url,
);

while ($html =~ s/$itempat//s) {
    my($link, $title, $body) = ($1, $2, $3, $4, $5, $6);
    $title =~ s/<.*?>//g;
    my @date = $link =~ /(\d{4})(\d{2})(\d{2})/;
    $rss->add_item(
        dc => { date => "$date[0]-$date[1]-$date[2]T00:00:00+09:00" },
        link => $link,
        title => $title,
        content => { encoded => $body },
    );
}

print $q->header('text/xml'), encode("UTF-8", $rss->as_string);

RSS::Simple は適当にでっち上げた、XML::RSS 代替。なんとなく XML::RSS 使いたくなかったので。

Posted by miyagawa at 06:10 PM | Comments (1) | TrackBack (1)

10,000 Promises - Sailing

10,000 Promises - Sailing

「One True Love」に続くテンプロのセカンドシングル!
ストリートから生まれた新たなボーカルグループとして話題を集め、デビューシングル『One True Love』でいきなりTBS金曜ドラマ「奥さまは魔女」のエンディングテーマに抜擢された“テンプロ”のセカンドシングル。今作は、今後のテンプロの方向性を明確にするという位置づけの基、国内の他のボーカルグループとは一線を画した楽曲が出来上がりました。作編曲は、EXILE・BOA・Skoop On Somebodyなどで知られるFace 2 fAKE。

Pooh! のエンディングでかかってたんですけど。

作編曲は Face 2 fAKE。

あ、オリジナルなんだ。。。どこからどう聴いても Backstreet Boys の Shape of my heart にしか聴こえないんだけど。。。

Posted by miyagawa at 01:47 AM | Comments (0) | TrackBack (0)

April 15, 2004

tdiary2rss.cgi

知り合いにしか教えていなかったのですが、任意の tDiary を RSS 化するCGIを公開しています。

http://bulknews.net/syndicate/tdiary2rss.cgi/{tDiaryのURL}

みたいにして使えます。(e.g. Matz にっきのRSS)

教えてないはずなのに Matz にっきは Bloglines で 26 人も Subscriber が。。

Posted by miyagawa at 08:45 PM | Comments (0) | TrackBack (5)

GREE Night

GREE Blog: Gree Night 1.0

グリーの利用者1万突破の記念を含めて、グリーユーザによるオフラインミーティング「Gree Night 1.0」を開催したいと思います。

Gree Night が開催されます。自分も参加予定。

Posted by miyagawa at 05:18 PM | Comments (0) | TrackBack (3)

帰ってきたアクセス向上会議

無敵会議シリーズ featuring 橋本大也 & 百式

人気サイトの秘密をこっそり、ごっそり共有する会議です。
お金をかけず、発想や感性、個人の能力で、月間何十万、何百万、何千万ページビューの人気サイトを作ることは、どうしたらできるでしょうか?実際にそれを「やってみせた」作者をゲストスピーカーにお呼びしながら、皆で、未来の人気サイトの作り方を考えてみましょう。

おこがましいですがゲストスピーカーで参加します。興味ある方はぜひ。

Posted by miyagawa at 12:42 PM | Comments (1) | TrackBack (0)

MySQL Cluster

ITmediaニュース:MySQL、オープンソースクラスタリング技術発表

オープンソースクラスタリング技術「MySQL Cluster」は、プレビュー版がオープンソースGPLライセンスの下、MySQLのサイトで提供されている。製品版は今年7〜9月期に出荷開始の予定。

プレビュー版ダウンロードしようとしたけど見つからないな。。

Posted by miyagawa at 12:24 PM | Comments (0) | TrackBack (0)

April 14, 2004

PRIDE GP 初戦 7カード

PRIDE GP の初戦7カードが発表になってました。
(via 紙のプロレス i-mode)

小川直也 - レコ
ヒョードル - コールマン
ノゲイラ - 横井
ニンジャ - ハリトーノフ
シルバ - 戦闘竜
ヒースヒーリング - 高橋義生

小川はてっきりシルバあたりかとおもったけど。。
にしてもシルバ - 戦闘竜は寒いな。ノゲイラ 横井 楽しみ!

Posted by miyagawa at 08:03 PM | Comments (0) | TrackBack (1)

Bloglines Top Links & Citations

Bloglines | News

We have added two new features, Top Links and Citations. Top Links is a listing of the most popular links from the blogs that we index. The list is generated nightly, and you can view the overall ranking, or you can limit the listing to blogs that you subscribe to. The Top Links listing is a great way to find out what people are talking about today.
Citations is a way to search the Bloglines links database. Enter a partial URL, and it will find all matches for that URL from all the blogs that we index.

Bloglines に機能追加。Popdex 的なリンクランキング。

Posted by miyagawa at 05:29 PM | Comments (0) | TrackBack (0)

iPod リモコン壊れる

iPod のリモコンが不調。本体とつなぐ部分の端子がヘタってるせいか、音がガサゴソと切れます。Apple Store で検索してみると5000円もするのカー。まあ他にないからやむなく買いましたが。。

Posted by miyagawa at 03:58 PM | Comments (2) | TrackBack (3)

April 13, 2004

バッドノウハウカンファレンス 2004

Shibuya Perl Mongers : バッドノウハウカンファレンス 2004

Shibuya Perl Mongers Presents "バッドノウハウカンファレンス 2004" を2004年5月14日に開催します。

バッドノウハウカンファレンス2004 を Shibuya.pm 主催で高林さんと開催します。ちょっと広めの部屋を予約したので (40人がとれなかったからですが) ぜひ遊びに来てください。

Posted by miyagawa at 10:18 PM | Comments (0) | TrackBack (3)

mregexp - MySQL Regexp UDF

mregexp - MySQLで日本語の正規表現を扱う

今のところ(mysql 4.0.18, 4.1.1)、MySQLのREGEXP関数は日本語を正しく処理できない(一方、LIKEやSUBSTRINGなどは日本語の処理に対応している)。そこで日本語を正しく扱える正規表現関数、mregexpというものをユーザー定義関数(UDF=User Defined Function)という仕組みを用いて作った。

鬼車ベースの MySQL Regexp UDF。 (via MySQL ML)

Posted by miyagawa at 05:55 PM | Comments (0) | TrackBack (0)

小川がPRIDE参戦

nikkansports.com > バトルTOP > バトルニュース

小川直也(36=UFO)が12日、PRIDEヘビー級GP(25日開幕)参戦を正式表明した。プロレスイベント「ハッスル」で敵対する高田モンスター軍高田総統の挑発にブチ切れ。プロレスラーの復権とハッスルの認知度アップを目指して、3年半ぶりのPRIDE再上陸を決意した。対戦相手は明日14日にも決定するが、クロコップら最強トリオとの対戦も辞さない覚悟を示した。

小川キター。良成じゃないよ。

Posted by miyagawa at 10:46 AM | Comments (0) | TrackBack (0)

April 12, 2004

ネットランナーRSS特集

ネットランナー今月号でRSS特集が掲載されていました。
「激生情報ぶっこぬき!」ってことで RSS アグリゲータやら Bulkfeeds なんかも紹介されていました。

妙に濃い内容。。。充実しすぎでちょっとヤバかったです。

Posted by miyagawa at 04:16 PM | Comments (0) | TrackBack (1)

April 11, 2004

はてな引越し

hirokiazuma.com/blog: はてな引っ越し

はてなの引越し模様を azuma hiroki さんの Blog で moblog されてますね〜。家の近くなので遊びに行きたいのですが連絡先がわからない ;-) 今度平日遊びにいきますね>近藤さん

Posted by miyagawa at 04:04 AM | Comments (0) | TrackBack (3)

Bloggers meeting in Kyoto 2004 にいってきました

Bloggers meeting in Kyoto にスピーカーとして参加してきました。

前日に朝5時まで飲んでしまい、それから帰宅してパワポ書き。適当に1時間ででっち上げ、30分だけ寝よう。。と横になったら、目覚めて9時。思いっきり指定席とった新幹線に寝過ごしです。。ダッシュで品川からのぞみに乗る。チケットはそのまま使えました。

京都駅で kengo さん、工藤さんらと合流。会場であるデジタルハリウッド京都校へ。1Fがスターバックスカフェでした。会場で翔泳社毛利さん、インプレス安田さんと挨拶。営業おつかれさまです。

going my way の kengo さん。メタBlogサービスや RSS アグリゲータの活用法から FireFox, IRC などの小技など。Tips の方に目が行きがちですがどうやって情報をとりだし、それを配信していくかの参考になった方も多いのではないでしょうか。FeedDemon でRSSを大量に登録して、FeedDemon のウォッチリスト(キーワード検索)で読む、というのはローカルBulkfeeds みたいな感じで面白いなとおもいました。

読兎 の工藤さん。人工無能Blog、面白いですねえ。

3番目に自分。Bulkfeeds の紹介から Similarity Search の活用法、Bulkfeeds API による Hack など。やはり Bulkfeeds みたことはあるけど実際には使いこなしてない、という方がかなり多く、いろいろ終わった後声をかけてもらいました。

最後は COULD のヤスヒサさん。スタイルシートスタイルブックの作者でもある方です。Web デザイナーにとっての Blog ということで、非常に興味深い内容。自分も Web プロデューサー / ディレクター養成講座の講師などたまにやっていますが、考え方はかぶる内容もあったりして、参考になりました。ヤスヒサさん自身はデザイナであるのに PHP を使って自分で Blog ツールをつくってみたりして、SEO などにも造詣が深く、一緒に仕事してみたい感をかもしてましたよ。

というわけで、楽しい会でした。明日原稿がんばりたいので日帰りで帰ってきました。朝まで飲む組はまだやってるんですかね〜。

2004/04/21 追記: 適当にでっちあげたスライド をアップしておきました。

Posted by miyagawa at 03:51 AM | Comments (5) | TrackBack (9)

April 09, 2004

mt-comments のリネーム

コメントSPAM対策その3として、mt-comments.cgi をリネームしてみた。
たいがいのfloodスクリプトは、mt-comments.cgi を決めうちしてるとおもうので。

やり方はカンタン。mt.cfg を開いて、CommentScript ってのを探して、コメントスクリプト名を変更します。ここでは mt-com.cgi にしましょう。

CommentScript mt-com.cgi
とかします。

そんで mt-comments.cgi ファイルを mt-com.cgi にリネームして サイトをリビルド。これでおわり。

Posted by miyagawa at 12:11 AM

April 08, 2004

ミランも。。

昨季王者のACミラン大敗 サッカー・欧州CL - asahi.com : スポーツ

サッカーの欧州チャンピオンズリーグは7日、準々決勝第2戦の残り2試合があり、昨季優勝のACミラン(イタリア)が、アウエーでデポルティボ・ラコルニャ(スペイン)に0―4と大敗した。ミランは第1戦を4―1で勝ったが、2戦合計4―5となり、4強入りを逃した。デポルティボは初の準決勝進出で、3点差をひっくり返して勝ち進んだのは史上初。

うへー。。まじでポルト-モナコとかなったらどうしよう。UEFAカップかよ。

Posted by miyagawa at 10:32 AM | Comments (0) | TrackBack (0)

アーセナル敗れる

アーセナル、ロンドンダービーで負けてしまいましたね ...

今シーズンはトリプルも夢じゃないかと思ったのに、FA カップでユナイテッド、CL でチェルシーに負けちゃって。あとはリーグだけですか。今日の試合は同点のレーマンのしょぼいパンチングがなあ。。

レアルも負け。1st Reg のモリエンテス2点目が痛かったですね。
これで決勝 リヨン - モナコとかなったらどうすんだろ。フランスリーグ最強!とかなるんか。

Posted by miyagawa at 04:28 AM | Comments (0) | TrackBack (0)

it's me phone swindle

24 TWENTY FOUR でジャックバウアーが "Hey it's me" を多用するので、英語でも「オレオレ詐欺」ってのはありなのかな、Hey it's me 詐欺とかいうのかな、とか思って調べてみると、

E33 おれおれ詐欺

おれおれ詐欺をネットの英辞郎で調べたがヒットしなかった。それでちょっと時事英語関係のサイトを当たったら、それ専門の「時事英語辞典」があった。結構最新語が載っている。そこで「詐欺」で検索したら、おれおれ詐欺は、"it's
me" fraudと出てきた。

だそうで、やはり英語圏でも同じようなのはあるんですねー。

Posted by miyagawa at 04:24 AM | Comments (0) | TrackBack (0)

地上デジタルはコピーワンス

内村プロデューススペシャルを某氏のためにDVDに焼こうとおもって、ドンキホーテで DVD-RW 1.1 2倍速を購入してみる。

帰ってマニュアルを見てみると、東芝RD-Xシリーズでは、

DVD-RAM: コピーワンスは「移動」可能
DVD-R/DVD-RW: コピーワンスの録画、コピーとも不可

らしい。そのかわりDVD-RAM だと再生できる機械が限られるのかな。PS-Xとかで見る人には DVD-R 系なんですかね。

んで、本題の内村プロデュース、地上デジタルで録画したら、見事にコピーワンスかかってた。というか地上デジタルってどの番組でもコピーワンスなんですかね。。

Posted by miyagawa at 04:03 AM | Comments (0) | TrackBack (0)

April 07, 2004

TypeKey details

最近メッセやIRC とかで、「コメントSPAM対策はいいとして、TypeKey を導入しないとコメントできないってのは敷居高すぎでは?」とかいう声をよく聞きます。ちょっと誤解をまねいているところもあるようなので、私が FAQ を読んだり、シックスアパートの会見を読んで知る範囲で補足してみます。

TypeKey は MSN の .NET Passport のようなもので、ユーザを認証するだけのために利用されます。ここでいう認証は、Authentication の方で、Authorization ではありません。

ユーザは TypeKey に1度だけ登録すると、そのキーをつかって、TypeKey を導入したMT(あるいはTypeKey に対応した他のBlogシステム)サイトに、自分がたしかにそのユーザであることを通知できます。

TypeKey がやることは、それだけです。

その人がそのBlogでコメント許可されているかどうかは、Blog ごとの設定になります。これはおそらくMT側でハンドルされるのでしょう。MT3.0 のコメンター管理画面 ってのがそれでしょうね。

そして、MT3.0 になったら TypeKey がないとコメントできないのか、というとそうではありません。

With Movable Type 3.0 you have options. You can:

Only accept TypeKey-authenticated comments where the commenter sends an email address
Only accept TypeKey-authenticated comments
Accept TypeKey-authenticated and moderated comments
Accept TypeKey-authenticated and regular comments
Accept moderated comments
Accept unmoderated comments
Accept anonymous comments

1. TypeKey で認証されたEmailアドレスつきコメントだけを許可
2. TypeKey で認証されたコメントだけを許可
3. TypeKey で認証されたコメントを許可、それ以外はモデレーション
4. TypeKey で認証されたコメントを許可、それ以外の通常コメントも許可
5. すべてのコメントをモデレーション
6. すべての通常コメントを許可
7. 匿名コメントを許可

というレベルわけがBlogごとに設定できるようです。

モデレートというのは、投稿されたコメントはいきなり Blog に表示はされないでいったんペンディング状態になり、管理画面から「許可/拒否」を選択することではじめてBlogに表示される、という機能ですね。これと TypeKey によるユーザ認証を組み合わせれば、その人のコメントは、以降すべて許可する、ということができるようになります。(これがないと、Email アドレス詐称の可能性があるので、毎回モデレートしなければいけなくなる) これを行う画面も 記者会見で発表されています

つまり、MT 3.0 ではユーザごとにコメントを許可するかどうかを Blog で設定できる。ただしユーザを詐称されるおそれがあるので、それを助ける認証システムとして TypeKey を提供する。MT 以外でも使いたければ使ってね。というのが Six Apart の方針だと理解しています。これは共感できます。

以下技術的に考察すると、.NET Passport のように、他のシングルサインインサービスをMTから使用するという手段もありそうなのですが、その場合、

ユーザが submit → MT 側で .NET Passport の ID/PW をとる → .NET Passport で勝手に認証

という順番になってしまい、悪意のあるサイトでは .NET Passport のサインイン情報が盗まれてしまいます。(.NET Passport SDK を使ってサイト構築すれば、その問題はなくなりますが、そもそも .NET Passport の利用契約が必要だし、導入も簡単ではないでしょう)

TypeKey ではおそらく、

ユーザが submit → TypeKey へとんで認証 → 認証した結果を MT にリダイレクト

みたいになっているのではないかなー。

TypeKey 対応したコメント投稿画面 を見ると、やはりそのようになっていますね。気になるのは "You are not signed in" の部分ですか。どうやって TypeKey にサインインしてるかを各Blogサイトで把握するんでしょうね。TypeKey の Cookie をBlogサイトにとばすわけにはいかないでしょうし。

TypeKey 動作概念図 を見ると、やはり1回 TypeKey で認証してから、戻ってきたときのパラメータを MT 側でハンドルするみたいだけど、そうすると各サイトごとの2度目以降はどうやって認証するかが気になりますね。各サイトごとに固有になるような TypeKey 用 Cookie をはくのかなあ。

というわけで、平田さん、僕にもテスト版くださいよ、というお願いでした。

Posted by miyagawa at 10:26 PM | Comments (2) | TrackBack (4)

XML::RAI

search.cpan.org: Timothy Appnel / XML-RAI-0.2

XML::RAI RSS Abstraction Interface. An object-oriented layer that maps overlapping and alternate tags in RSS to one common simplified interface.

RAI = RSS Abstraction Interface だそうで。XML::RSS はいろんなバージョンのRSSをパースできますが、dc:date と pubDate とかの違いだとかはやっぱりマニュアルでやる必要があり、その差異を吸収してさらに統一的なインタフェースをもう1枚かませるモジュール(だと思う)ですね。

Timothy 氏は Net::Trackback の作者でもあります。

Posted by miyagawa at 09:04 PM | Comments (0) | TrackBack (0)

Bulknews マッチ対応

Bulknews - RSS Syndication

2004.04.05 Nikkei Net, ZAKZAK のリニューアルに対応しました。

なんだかリニューアル流行か?

Posted by miyagawa at 04:26 PM | Comments (0) | TrackBack (0)

Canon IXY Digital L を買いました

前からデジカメがほしいなと思いつつ買ってはいなかったのですが、ふらっと Canon IXY Digital L プラチナシルバー を買ってみました。

ソニーの Cybershot U4, T1 とかと悩んだんですが U4 より画素数とか性能もよく、T1 より軽い、あとSDカードなので東芝のノートPCでそのまま読める(まあUSBでマウントできるんでこれはいらないですが)ということでコレに決めました。まだ使い込んでないので感想とかはまた。

そうするとフォトアルバムのASPとか使いたくなるなあ。登録して使ってない TypePad の機能をつかってみるか。

Posted by miyagawa at 02:57 PM | Comments (0) | TrackBack (0)

XML::RSS::TimingBot

Journal of TorgoX (1933)

After my endless testing and bugswatting, XML::RSS::TimingBot is basically useable now. It's an LWP::UserAgent subclass that stops you from requesting RSS feeds more often than they say they'll update. I.e., when you request a feed, the module transparently looks for its elements and the like, and the next time you request it, if the previously-read information says that the feed won't updated by now, the module won't actually perform the request, but will generate a virtual response that looks like the server said "304 Not Modified" with no content. It also keeps track of last-modified times on RSS responses and inserts "If-Modified-Since" headers on subsequent outgoing responses. It's all very behind-the-scenes and transparent.

RSS フィードの syndication モジュールとかをつかってリクエスト周期を変更するモジュールかな? もうすぐCPAN にリリースされるとか。楽しみです。

Posted by miyagawa at 02:53 PM | Comments (0) | TrackBack (0)

Googlebot/Test

ふと access_log をみていたら Googlebot/Test という User-Agent を発見。

64.68.83.191 - - [07/Apr/2004:07:21:31 +0900] "GET /app/similar.js?url=http%3A%2F%2Fantipop.zapto.org%2F%3Fid%3D998&n=100&style=mt-comments&oe=euc-jp& HTTP/1.1" 200 2822 "-" "Googlebot/Test"

こんな感じでやってきます。javascript include を読みにきているようですねえ。昔のログをあさってみると、3/5 ごろから実験をはじめたのかな? javascript を使用してムダな広告やナビゲーションをコンテンツから除去して SEO、という手法が通用しなくなるのかもしれない。

Posted by miyagawa at 12:54 PM | Comments (1) | TrackBack (2)

April 06, 2004

AdSense 爆発中

AdSense のクリック単価がすごいことに。22クリックで $17 を記録しています。この変更の影響かな。にしてもすごい数字ですね。

Posted by miyagawa at 10:55 PM | Comments (3) | TrackBack (2)

Ctrlキーが

ノートパソコンのCtrlキーが死にました。
正確に言うと、中のゴムとかが弱っていてレスポンスが非常に悪い。
他のキーから移植してもあまりよくならないのである。
Emacs キーバインド人間にはつらい。。

Posted by miyagawa at 07:09 PM | Comments (1) | TrackBack (0)

MT コメントSPAM Blacklist ファイル更新

blog.bulknews.net: MT コメントSPAM対策
コメントSPAMがかなりひどくIPベース制限では効かなくなってきたので、URLベースではじくように改良。

一部の方に好評なようなのでさらに Hack。blacklist ファイルを Comment 通知メールから更新できるようにしてみます。

以下のような mt-blacklist-append.cgi ファイルを mt.cgi とおなじとこにおきます。$blacklist は blacklist ファイルの絶対パス、$password は適当に決めてください。

#!/usr/local/bin/perl -w

use strict;
use CGI;
use FileHandle;

my $blacklist = "/path/to/blacklist";
my $password  = "blahblah";

do_task(CGI->new);

sub do_task {
    my $q = shift;
    $q->param('password') eq $password
        or return show_error($q, "Password mismatch");

    my $out = FileHandle->new(">>$blacklist")
        or return show_erorr($q, "$blacklist: $!");
    $out->print($q->param('url'), "\n");
    $out->close;

    print $q->header, "Blacklist appended successfully.";
}

sub show_error {
    my($q, $msg) = @_;
    print $q->header, "Error: $msg";
}

このファイルに url ってパラメータをつけることで blacklist ファイルへの追記をおこないます。次に MT/App/Comments.pm の 120行目ぐらい。MT::Mail でメールをおくってるところのメール本文をこういう風に書き換えます。

           MT::Mail->send(\%head, <<BODY);
A new comment has been posted on your blog @{[ $blog->name ]}, on
entry #@{[ $entry->id ]} (@{[ $entry->title ]}).

$link_url

IP Address: @{[ $comment->ip ]}
Name: @{[ $comment->author ]}
Email Address: @{[ $comment->email ]}
URL: @{[ $comment->url ]}

Comments:

@{[ $comment->text ]}

Blacklist this URL?
@{[ $app->base . $app->path . "mt-blacklist-append.cgi?password=blahblah&url=" . MT::Util::encode_url($comment->url) ]}
BODY

password のとこは、さっき mt-blacklist-append.cgi に指定したやつをいれときます。

これで、Comment 通知のときに来るメールに、

Blacklist this URL?
http://blog.bulknews.net/mt/mt-blacklist-append.cgi?password=blahblah&url=http://.......

ってな具合のリンクがつくので、SPAM くらったらこれをワンクリックで、blacklist ファイルが更新できます。blacklist ファイルの permission は 666 あたりにしておく必要があります。

こういう Hack をしてると、MT をアップグレードするのがめんどくさくなるので、素人にはオススメできない。

Posted by miyagawa at 03:28 PM | Comments (0) | TrackBack (15)

goo Blog と FOAF

たまたま Bulkfeeds のログを眺めたら気づいたんですが、goo Blog が FOAF に対応していたみたい。FOAF Auto-Discovery もはいっていますね。

プロフィールを設定するとできるのかな。

Posted by miyagawa at 02:26 AM | Comments (0) | TrackBack (0)

MT 3.0

notes not Notes: Movable Type(MT)3.0 発表記者会見

Movable Type(MT)3.0 発表記者会見
4月6日(火)シックス・アパート : ウェブログ・ソフトウェア「Movable Type 3.0」発表

あ、今日なの?今日なの?

よかったー間に合って。(ってことは明日からガリっと書かないといけないんですけど、ね)

UPDATE: Ben と Mena が来日中だそうで、やっぱそうなんすね。

Posted by miyagawa at 02:02 AM | Comments (0) | TrackBack (1)

Bulkfeeds: パフォーマンス改善策

Bulkfeeds ですがパフォーマンスが明らかに落ちているので、以下の対策を施しています。処理は現在おこなっているところなので明日の朝ぐらいから反映されてくるとおもいます。

検索対象記事を1ヶ月以内に絞る

これはかなり悩みましたが、Blog 検索の特色上、基本的にはスピード命だろうと。1ヶ月以前の記事は google で工夫すれば検索できるはずなので、これははずすようにしました。テーブル上は残っているので Similarity Search とかは問題なく使えます。

Similarity Feed のキャッシュ更新を遅く

similarity feed は1回アクセスするとキューにいれてキャッシュを定期的にリビルドしてきましたが、現状でページ数が 50,000 近くになっていて、定期リビルドが1日じゃおわらなくなってきましたので、これも最新 3日間でアクセスがあったものだけを定期リビルド対象にするようにしました。もちろん古い記事でも再度アクセスされれば一応キャッシュキューには入ります。このアルゴリズムはイマイチ自信がないのでちゃんとできるかどうかは試してみないとわかりませんけど。

これ以外にも404エラーで消えているRSSのゴミ掃除とか、まだやることはあるのですがとりあえずこれで対策してみます。

クライアントの対策

いろいろチューニングしてみて、やはり検索自体は大して遅くないことがわかりました。もう古い記事のファイルは消しちゃったんですけど。。(再度作ろうと思えばつくれますが、ファイルシステム容量自体も結構やばかったんで、とりあえずこれでいきます)

直接的に重い原因とおもわれるのは、やはり Similarity Search による Apache の占有と、あとは無作法な RSS アグリゲータだろうということがわかりました。とくに Bloglines は同時に HTTP アクセスを 20個ぐらい投げてくれるので、ちょっとカンベンしてくれと。こちらは Inquiry から連絡して対応を待っています。
Posted by miyagawa at 01:46 AM | Comments (0) | TrackBack (0)

Amazon の輸入盤画像

AWS のRESTインタフェースで返ってくる ImageUrlSmall とか ImageUrlMedium のURLは、輸入盤の場合は 09 を 01 に置換しないとダメみたい。で、これを判断するために 「PATH_INFO の URL を受け取って、Content-Length: 807 のときはURLを置換したものをリクエストして返す mod_perl 用のプロキシハンドラ」というバッドノウハウの極みなものを書いてたんだけど、javascript を使ったもっとスマートな方法が hail2u に書いてありました。

hail2u.net - Weblog - Amazonの画像置換

AWSで返された画像のURLとかAmazonのASINコードから09で類推した画像が、1*1の黒いGIF画像だった場合に、01で類推できるURL無理やり置換してみる実験。

しかし、img タグに width とか height とかつけてるとそっちに引きずられて、このコードが動かなくなってしまうな。 if (this.width==this.height) だとうまくいく。でもこれだと正しい画像も表示できなくなるかも。

というわけでやはりプロキシなハンドラを使うことにした。一応mod_proxy 経由でキャッシュもみこめるし。

ちなみにコードはこんな感じであります。

package Bormius::AmazonImage;
# <Location /awsimg>
# SetHandler perl-script
# PerlHandler Bormius::AmazonImage
# </Location>

# see http://hail2u.net/blog/coding/air.html

use strict;
use Apache::Constants;
use HTTP::Request::Common;

use constant BLANK_IMAGE_LENGTH => 807;

sub make_request {
    my($r, $uri) = @_;
    my $request = GET $uri;
    return LWP::UserAgent->new->simple_request($request);
}

sub handler {
    my $r = shift;
    my $uri = $r->path_info();
       $uri =~ s!^/!!;

    my $res = make_request($r, $uri);

    # if it's a Blank Image, try 09 => 01
    if ($res->header('Content-Length') == BLANK_IMAGE_LENGTH) {
	$uri =~ s/\.09\./.01./;
	$res = make_request($r, $uri);
    }

    $r->content_type($res->header('Content-type'));
    $r->status($res->code);
    $r->status_line($res->status_line);
    my $table = $r->headers_out;
    $res->scan(sub { $table->add(@_); });
    $r->send_http_header();
    $r->print($res->content);

    return OK;
}

1;
Posted by miyagawa at 12:30 AM | Comments (0) | TrackBack (0)

April 05, 2004

AdSense AWS代替広告

Bulkfeeds では、Google AdSense の代替広告を AWS で表示していますが、狭いボックスに文字数短く5個並べていて、あまりクリックレートも購入率も高くなかったので、AdSense と同じような見た目になるようにHTMLをカスタマイズしてみました。

売り上げランキングでソートしてシャッフル、2個を取り出して、CustomerReview の1個目の先頭40文字をくっつけています。

サンプル: Google で検索

Posted by miyagawa at 10:48 PM | Comments (1) | TrackBack (2)

XML::Simple 2.12

search.cpan.org: Grant McLean / XML-Simple-2.12

XML::Simple Easy API to maintain XML (esp config files)

Blog Hacker 御用達 XML::Simple がバージョンアップしてました。

2.12 Apr 05 2004 - added NumericEscape option - added ValueAttr option (patch from Anton Berezin) - suppress 'wide character in print' warning (reported by Dawei Lin)

ValueAttr オプションはベンリかもしれない。

Posted by miyagawa at 09:04 PM | Comments (0) | TrackBack (1)

MT コメントSPAM対策

コメントSPAMがかなりひどくIPベース制限では効かなくなってきたので、URLベースではじくように改良。

MT/App/Comments.pm の 64行目あたり(MT 2.5系(古)での話なので、2.66系では多分違います。MT::IPBanList でごにょごにょやってるとこあたり)に、以下を追加

    use FileHandle;  
    my %banned_url;
    my $blacklist = "/path/to/blacklist"; # 適当に
    my $fh = FileHandle->new($blacklist) or die "$blacklist: $!";
    while (<$fh>) {
        chomp;
        $banned_url{$_} = 1;
    }

    if ($banned_url{$q->param('url')}) {
        return $app->handle_error('Banned');
    }

メンテナンスは、Ban したいURL を、$blacklist ファイルに追加していくだけでOK。パスは適当に変えてください。

Posted by miyagawa at 05:15 PM | Comments (0) | TrackBack (29)

April 04, 2004

gnews2rss は規約違反

gnews2rss が規約に違反しているのは google Hacks にも出ていますが、それはいいとして

ITmediaニュース:Google Newsの「RSSフィードお断り」にプログラマーが不満

IBM、Google、多数のブログツールベンダーの開発者がAtomシンジケートフォーマットを開発したことは、ソフト開発者の間で厳しく批判されている。Googleは傘下のBloggerサービスで、RSSを捨ててAtomを支持しているが、批判的な向きは、競合するフォーマットが提供されていることで、RSSのメインストリームへの採用が脅かされていると主張している。

Google と RSS ってネタになると、いっつも ITMedia (原文は internetnews.com か)はこういう煽りですな。あんま関係ないとおもうんだけど。

Posted by miyagawa at 02:59 PM | Comments (0) | TrackBack (0)

April 02, 2004

メンフィスベル

メンフィス・ベル

戦争映画だとおもうと、イマイチ(攻撃する側の視点しかない)ですが、青春映画だと思えば楽しめる。もちょっと日常のエピソードがあれば最後が泣けたような。7点。

Posted by miyagawa at 05:01 PM | Comments (0) | TrackBack (0)

シュレック

シュレック

アンチディズニーなCGアニメ。お子様向けストーリーだとおもいますが、まあ楽しめました。90分ぐらいで短いのもよい。 8点。

Posted by miyagawa at 04:57 PM | Comments (0) | TrackBack (2)

April 01, 2004

ReadOne がBulkfeeds連携機能をリリース

ReadOne-dev 〜ReadOne、機能拡張

機能拡張したウェブ版をリリースしました。変更点は以下。
・キーワードの設定時にBulkfeedsとの連携を可能に
・OPMLからニュースサイトを登録
・並び替えのデフォルトを設定可能に
・ピックアップの表示方法を微調整
・ニュースサイトのランキング詳細を表示
・検索機能がやや賢く
・古い記事は灰色、ないしは非表示設定可能に
・その他内部のリファクタリング

ReadOne で Bulkfeeds のキーワード連携をサポートしたそうです。

Posted by miyagawa at 03:59 PM | Comments (0) | TrackBack (0)

ソーシャルネットワーキングサイトはじめました

Blog の次はソーシャルネットワーキングだ! ということで、BulkDegreesというサービスを始めてみました。例によってインビテーションオンリーです。

GREE のシステムをライセンス購入して、Bulknews の RSS や Bulkfeeds の Blog 検索とインテグレーションしました。

UPDATE: これはエイプリルフールのネタです。

Posted by miyagawa at 12:23 PM | Comments (3) | TrackBack (7)