当サイトで生成している RSS(野良feed):


M.C.P.C.:カテゴリー RSS バックナンバー

2010.04.22
「ものかの」さんがblogに移転してたので、当方生成RSSを停止し、301リダイレクトするようにしたよ はてなブックマーク - 「ものかの」さんがblogに移転してたので、当方生成RSSを停止し、301リダイレクトするようにしたよ
2009.08.26
mixiの自分の日記のRSSを作るPerlスクリプト はてなブックマーク - mixiの自分の日記のRSSを作るPerlスクリプト
2009.03.10
「RSS 簡単一発作成 『RSS 生成 CGI』」から書き出されるRSS 2.0の日付情報が不正なので直すパッチ はてなブックマーク - 「RSS 簡単一発作成 『RSS 生成 CGI』」から書き出されるRSS 2.0の日付情報が不正なので直すパッチ
2009.02.15
XML::RSSの出力が文字参照になってしまった はてなブックマーク - XML::RSSの出力が文字参照になってしまった
2009.02.14
Fedora Core 4にRPMじゃなくてLibXML2を入れる はてなブックマーク - Fedora Core 4にRPMじゃなくてLibXML2を入れる
2009.01.14
QuarkのテクノロジーデータベースのRSSってないよね はてなブックマーク - QuarkのテクノロジーデータベースのRSSってないよね
2009.01.07
わがままだが、ネット上にある文章の日付には無意識的に年まで入れてほしい はてなブックマーク - わがままだが、ネット上にある文章の日付には無意識的に年まで入れてほしい
2008.10.01
ThunderbirdのRSSリーダはRSS 1.0のAnnotationに対応しているわけではなくtitle要素をメーリングリスト風にスレッド解釈してツリー表示している はてなブックマーク - ThunderbirdのRSSリーダはRSS 1.0のAnnotationに対応しているわけではなくtitle要素をメーリングリスト風にスレッド解釈してツリー表示している
2008.09.29
アドビユーザフォーラムのRSS、DreamweaverとFireworks追加 はてなブックマーク - アドビユーザフォーラムのRSS、DreamweaverとFireworks追加
2008.09.24
Opera Mailは、RSS 1.0のannotationに対応していないみたい はてなブックマーク - Opera Mailは、RSS 1.0のannotationに対応していないみたい

< 最後 « これより前10ä»¶ | 全件

2010.04.22

「ものかの」さんがblogに移転してたので、当方生成RSSを停止し、301リダイレクトするようにしたよ

「ものかの」さんがWordPressに移行して「monokano」 [tama-san.com] になっていたので、うちで「ものかの」さんのトップページをクローリングして生成していたRSSを停止し、今までのアドレスでアクセスしてきた人へは301リダイレクトで「monokano」さんのRSSに転送しました。

こんな感じにした。

filename: .htaccess

redirect 301 /rss/monokano.xml http://tama-san.com/?feed=rss2

いままでは、せっかくいい情報出ているのに、Permalinkが無いのがとってもとっても残念で、RSSを生成し、無理やりパーマリンクを付けていたのですが(URLに#とフラグメント識別子を使って無理やり日付を付けて、他の日付の書き込みと区別していた)、やっとPermalinkができたことになります。なにはともあれ、よかった。

このHTMLからRSSを生成するっていうのは、HTMLを解析し、取得できる構造を発見し、データを取得し、整理するというスクレイピングの知識、書き出すときの形式としてのXMLの知識、RSSリーダで利用しやすいメタデータを意識するというRSSの知識などがいっぺんに必要になって、身につけるとかなり(印刷物の製作業務にも!)応用が利きまして、「これは流行る!」と思ったが流行らなかった。どうやら、業界的なネットへの接続時間が実は少ないから、という推論があるんだけどどうだろう。

2010.04.22 午前 09:33 [RSS] | 固定リンク | コメント (0) | トラックバック (0) | このエントリーをはてなブックマークへ追加 livedoor Clipでこのサイトを登録している人数livedoor Clipでこの記事をクリップ!

2009.08.26

mixiの自分の日記のRSSを作るPerlスクリプト

コメント欄で問い合わせがあって、mixiの自分の日記をRSSに書き出すスクリプトが欲しいって言うんですけれども、3年半前のエントリであったため、すでにスクリプトの賞味期限が切れていたので、2009年8月現在でちゃんと動くスクリプトに直しました。

ユーザーID、パスワードはConfig:Pitで管理する方式です。

パスワード設定をコードに書かない(Config::Pit) - モダンなPerl入門 - モダンなPerl入門 [perl-users.jp]

スクリプトを動かす前に、上記リンク先を参照して、コマンドラインからアカウントとパスワードをセットしておこう。こんな感じでいいのでは。

$ perl -MConfig::Pit -e'Config::Pit::set("mixi.jp", data=>{ email => "ABC12345", password => "password" })'

filename: miximydiary2rss.cgi

#!/usr/bin/perl 
 
use strict; 
use warnings;
use WWW::Mixi::Scraper;
use XML::Feed;
use DateTime::Format::HTTP;
use Config::Pit;
 
my $config = pit_get( 'mixi.jp' );
die "not preset account data in Pit." if !%$config;
my $email    = $config->{email}    or die 'email not found.';
my $password = $config->{password} or die 'password not found.';
 
my $mixi = WWW::Mixi::Scraper->new(
  email    => $email,
  password => $password,
);
my @list = $mixi->parse( 'http://mixi.jp/list_diary.pl' );
 
my $rss = XML::Feed->new( 'RSS',
          version => '1.0', encode_output => 0 );
$rss->title( 'mixi My Diary RSS' );
 
foreach my $item ( @list ) {
  my $entry = XML::Feed::Entry->new( 'RSS' );
  $entry->title  ( $item->{subject} );
  $entry->link   ( $item->{link   } );
  $entry->content( $item->{description } );
  my $dt = DateTime::Format::HTTP
           ->parse_datetime( $item->{time} )
           ->set_time_zone( 'Asia/Tokyo' );
  $entry->issued ( $dt );
  $rss->add_entry( $entry );
}
 
print "Content-Type: text/xml; charset=UTF-8;\n\n"; 
print $rss->as_xml,"\n";
 
exit;
 
__END__

もしかしたら、mixiの隠しAPIで一発で出せるのかな?

2009.08.26 午後 10:24 [RSS] | 固定リンク | コメント (0) | トラックバック (0) | このエントリーをはてなブックマークへ追加 livedoor Clipでこのサイトを登録している人数livedoor Clipでこの記事をクリップ!

2009.03.10

「RSS 簡単一発作成 『RSS 生成 CGI』」から書き出されるRSS 2.0の日付情報が不正なので直すパッチ

とあるRSSを、XML::Feedでパースしたら、うまくいきませんでした。そのRSSを

RSS Validator - feedAnalyzer RSSの構文チェック [feedanalyzer.com]

で調べてみたら、

"lastBuildDate" の日付の表記が間違っています。
"pubDate" "lastBuildDate" などではRFC 822の表記方法を使用します。
○正 > "Fri, 01 Jun 2005 03:00:00 +0900" (一例です 文字の間のスペースに注意してください)
○誤 > "Fri, 01 Mar 2009 03:00:00 +09:00"

とか出まして、RFC 822に従っていないので、XML::Feed(が使っているDateTime)が日付として認識できなかったようです。

ということで、これを生成しているのはなにかと思って調べてみたら、

<generator>http://www.futomi.com/library/rss/index.html?1.1.0</generator>

と書いていたので、該当するアドレスに飛んでみたら、RSS生成スクリプトでした。

RSS簡単一発作成『RSS 生成 CGI』 - futomi's CGI Cafe [www.futomi.com]

というわけで、シェアウェアだそうなので、インストールすることはとりあえずせずに、問題箇所を探してみました。

Filename: admin.cgi.patch

*** admin.cgi.orig      2006-07-25 11:57:00.000000000 +0900
--- admin.cgi   2009-03-10 11:46:26.000000000 +0900
***************
*** 876,882 ****
        if($CONF{'TIMEZONE_OFFSET'} =~ /^\-/) {
                $tz_sign = '-';
        }
!       my $tz = $tz_sign . sprintf("%02d", abs($CONF{'TIMEZONE_OFFSET'})) . ':00';
        my $channel_pub_date = "$pubdate[6], $pubdate[3] $pubdate[4] $pubdate[5] $pubdate[2]:$pubdate[1]:$pubdate[0] ${tz}";
        #image::title
        my $image_title = $CONF2{'IMAGE_TITLE'};
--- 876,882 ----
        if($CONF{'TIMEZONE_OFFSET'} =~ /^\-/) {
                $tz_sign = '-';
        }
!       my $tz = $tz_sign . sprintf("%02d", abs($CONF{'TIMEZONE_OFFSET'})) . '00';
        my $channel_pub_date = "$pubdate[6], $pubdate[3] $pubdate[4] $pubdate[5] $pubdate[2]:$pubdate[1]:$pubdate[0] ${tz}";
        #image::title
        my $image_title = $CONF2{'IMAGE_TITLE'};

このスクリプトを使っている人は、上のパッチを当てるといいんじゃないでしょうか。

フィードアグリケータを作っている僕としてはこれどうすればいいんでしょうね。

2009.03.10 午前 11:55 [RSS] | 固定リンク | コメント (0) | トラックバック (1) | このエントリーをはてなブックマークへ追加 livedoor Clipでこのサイトを登録している人数livedoor Clipでこの記事をクリップ!

2009.02.15

XML::RSSの出力が文字参照になってしまった

昨日のLibXML2を入れ替えたあと、CPANからXML::Feedをいれたら、依存モジュールとしてXML::RSSのバージョンも新しくなってしまったせいで、XML::RSSの出力が文字参照になってしまって、それで出力していたfeedを受信していたThunderbirdが、すべてのエントリを毎回違うエントリと認識してしまい、大変なことになってしまいました。

Nix::WebLab: XML::RSS で文字化け [lab.z-nix.jp]

で、解決。XML::RSS->new(encode_output => 0);ていうふうにしたら直った。

こうしてみると、ネットにあふれているXML::RSSのサンプルはこれはいっていないのが多いから、あたらしめのXML::RSSを使ってしまい、うまくいかんと思っている人も多そうだな。

2009.02.15 午後 10:26 [RSS] | 固定リンク | コメント (0) | トラックバック (0) | このエントリーをはてなブックマークへ追加 livedoor Clipでこのサイトを登録している人数livedoor Clipでこの記事をクリップ!

2009.02.14

Fedora Core 4にRPMじゃなくてLibXML2を入れる

会社で作っていたfeedを一覧にするやつなんですけれども、いつもは自分で集めたRSSなんでRSS 1.0だけ集めてたんで、XML::RSSで用事が済んでいたのですが、今回はユーザにfeedのURLを入力してもらっていたので、atomに対応できないXML::RSSだと不足と相成りました。

というわけで、いまどきは、

RSS(XML::Feed) - モダンなPerl入門 - モダンなPerl入門 [perl-users.jp]

がいいらしいので、CPANから入れようと思って、とりあえずうちのサーバで試そうと思ったら、あちゃー、うちのFedora Core 4 PPCなんですけれども、LibXML2が古いーて出るし、パッケージはねえし、しょうがねえので、本家からtarとってきてビルド。

$ wget ftp://xmlsoft.org/libxml2/libxml2-2.7.3.tar.gz
$ tar zxvf libxml2-2.7.3.tar.gz
$ cd libxml2-2.7.3
$ ./configure --prefix=/usr
$ make
$ su
# make install

このあと、CPANからXML::Feed入れたらちゃんと入った。

これでatomもいけるね! でも、ちらっと、LibXML2使わないでXML::Feed動くってどっかで見たよなあ。

2009.02.14 午前 12:00 [RSS] | 固定リンク | コメント (0) | トラックバック (0) | このエントリーをはてなブックマークへ追加 livedoor Clipでこのサイトを登録している人数livedoor Clipでこの記事をクリップ!

2009.01.14

QuarkのテクノロジーデータベースのRSSってないよね

Quark:テクニカルサポート: 8テクノロジーデータベース [japan.quark.com]

RSS作りやすい構造。本文配信までやるとちょっと苦労かも。

PAGE2009までいそがしーので誰か作って

2009.01.14 午後 10:26 [RSS] | 固定リンク | コメント (0) | トラックバック (0) | このエントリーをはてなブックマークへ追加 livedoor Clipでこのサイトを登録している人数livedoor Clipでこの記事をクリップ!

2009.01.07

わがままだが、ネット上にある文章の日付には無意識的に年まで入れてほしい

200901aainsatsuko

つうわけで、
http://dtpwiki.jp/rss/insatsuman.xml
を修正しました。

どうなっているかっていうと、もとのページ
http://www.geocities.jp/insatsuman/notebook.htm
の日付に年がないので、2008年で決めうちしていたわけです。ネット上の文章の日付は年も付けてもらうと再利用時にありがたいってことですね。


(2009-01-09 1:33追記)

生成ソースの方で、「年」が追加されていました。ありがとうございました!

2009.01.07 午後 11:40 [RSS] | 固定リンク | コメント (0) | トラックバック (0) | このエントリーをはてなブックマークへ追加 livedoor Clipでこのサイトを登録している人数livedoor Clipでこの記事をクリップ!

2008.10.01

ThunderbirdのRSSリーダはRSS 1.0のAnnotationに対応しているわけではなくtitle要素をメーリングリスト風にスレッド解釈してツリー表示している

長らく勘違いしていたんですけれども、僕は、Mozilla ThunderbirdのRSSリーダ機能を使っていまして、これが、ちゃんとしたRSSであれば、ツリー構造で表示してくれるのが便利であって、これが、RSS 1.0のAnntationにより実現されていると勘違いしていました。

なぜ勘違いしていたかというと、自分で生成した野良RSSは、Annotationを入れていたんですけれども、それをThunderbirdに読ませたら、見事ツリー構造になったからです。

そして最近又野良RSSを作ることになったんですけれども、Annotationを入れるようにしっかり作ったのにツリー表示にならないのです。

よーく見てみたら、title要素によってその違いが出ていました。

いい例:

ほげほげ
Re[001]:ほげほげ
Re[002]:ほげほげ

悪い例:

ほげほげ
re[1]: ほげほげ
re[2]: ほげほげ

悪い例の方は、よーく見ると、re[1]:の後ろに半角スペースが入っているので、Thunderbirdがスレッドとして見なしてくれず、ツリー表示されなかったというわけ。

あちこちに、ThunderbirdはRSS1.0のAnnotation対応していると書いちゃったので、訂正しないと……

2008.10.01 午後 11:31 [RSS] | 固定リンク | コメント (0) | トラックバック (0) | このエントリーをはてなブックマークへ追加 livedoor Clipでこのサイトを登録している人数livedoor Clipでこの記事をクリップ!

2008.09.29

アドビユーザフォーラムのRSS、DreamweaverとFireworks追加

アドビユーザフォーラムのRSS生成を追加しました。

Dreamweaver
http://feeds.feedburner.jp/adobeforumsjp_dw
Fireworks
http://feeds.feedburner.jp/adobeforumsjp_fw

Acrobatも追加しようかと思ったんですけれども、2文字の略号ないよね。どうしよう。しょうがないからacroかな。

2008.09.29 午後 11:49 [RSS] | 固定リンク | コメント (0) | トラックバック (0) | このエントリーをはてなブックマークへ追加 livedoor Clipでこのサイトを登録している人数livedoor Clipでこの記事をクリップ!

2008.09.24

Opera Mailは、RSS 1.0のannotationに対応していないみたい

僕が作るRSSは、できる限り、RSS 1.0 annotationモジュールに対応しようと努力しておりまして、現在DTP駆け込み寺のRSSで実装済みです。これは何かというと、簡単に言うと、メールソフトでいうところのツリー表示(スレッド表示)が実現できるものです。

Opera Mail(Opera 9.5のメール機能)は、RSSも表示できるのですが、RSSを受信しても、ツリー表示にならないので、対応していないのかもしれません。

Mozilla Thunderbirdも同様にRSSを表示できますが、ツリー表示は対応しているよ。


(2008-10-1 23:44訂正)

M.C.P.C.: ThunderbirdのRSSリーダはRSS 1.0のAnnotationに対応しているわけではなくtitle要素をメーリングリスト風にスレッド解釈してツリー表示している
にあるとおり、Mozilla ThunderbirdのRSS表示機能は、annotationに対応してツリー表示しているわけではありません。訂正します。

2008.09.24 午後 11:34 [RSS] | 固定リンク | コメント (0) | トラックバック (0) | このエントリーをはてなブックマークへ追加 livedoor Clipでこのサイトを登録している人数livedoor Clipでこの記事をクリップ!

< 最後 « これより前10ä»¶ | 全件