なつみかん(NATSU-MICAN)
release ver.3.1b(20010312)
「なつみかん」とは
「なつみかん(NATSU-MICAN)」とは、ある(複数)サイトの更新された時間を、様々な方法を用いてそれぞれ取得し、これをリスト化してHTMLとして書き出す、俗に言う「アンテナシステム」です。
同様のシステムとして「朝日奈アンテナ」や「WDB」が有名ですね。
「なつみかん(NATSU-MICAN)」は、ふるふるさんが「ぽぽぽ」で用いるために開発した「みかん(MICAN)」というシステムをひやが改造して作ったもので、「天野アンテナ」のために開発されました。
ちなみに、なぜ「なつみかん」かというと、ひやが夏が好きだからです。天野みどりも夏のキャラだし(謎)
「朝日奈系」に対抗して「柑橘系」とでも呼んであげてください(笑)
オフィシャルサイトはこちらです。
http://amano.hauN.org/natsumican.html
「なつみかん」でできること
- 他の更新時刻取得サイトが書き出す情報からの更新時刻取得(リモート情報取得)を主としており、LIRS形式、hina.txt(朝日奈アンテナ旧形式)形式、DI(hina.di)形式(gzip圧縮DIも読み込み可能)など様々な形式から情報取得できます。
- リモート取得で更新時刻を得られなかった場合、自動的にHTTP/1.1のHEADリクエストによる取得に切り替えて試み、更新時刻が得られなかった場合、HTTP/1.0のGETリクエストに切り替えて、そのコンテンツ内に表記してある更新時刻を取得しようとします。
それでも情報が取得できなかった場合は、ファイルサイズに変更があったかどうか判断して更新されたかチェックします。
そして、最終的にネットワーク障害などで更新時刻が取得できない場合には、過去に得た情報を利用します。
- 自力取得時でも、HTTPヘッダーのif-modified-sinceを活用することで、相手先のファイルが更新されていなかったとき余計なアクセスをしません。
- 他のリモートサイトに情報を提供できるように、LIRS(更新時刻情報伝達仕様)形式で情報を出力できます。また、hina.txt(朝日奈アンテナ形式)、DI(hina.di)形式で情報を出力することもできます。
- 得た更新時刻情報は、LIRSやDIなどの仕様に基づき、自力取得後一定時間後に破棄されます。そのため、誤情報がアンテナ間でループするのを防げます。
- LIRS形式を標準とし、時差情報やファイルサイズの保持、所有情報の鮮度による情報の取捨選択をしています。
- 他サイトを含め複数のLIRSファイル(もちろん自サイトの出力も)をHTMLに併出力することが可能です。
- 取得した情報を全て新しい順に自動的にソートしてHTMLに書き出せます。また、ソートする場合、最新何サイトの情報を出力するかを、読み込むLIRSファイルごとに設定することができます。また、ソートしないで出力することもできます。
- 取得するサイトや参照するリモートサイトの情報は、LIRS形式に準拠したカンマ区切りのテキストデータベースとしてまとまっているので、サイトの追加や削除、整理、スクリプトにかける、Microsoft Excelへ持っていく、などが容易です。
- 旬ごと・月ごと・年ごとなどでURLが替わる場合にも、ある程度自動対応できます。
- 自力取得時、対象ファイルがDI(hina.di)やLIRS形式だった場合でも、それぞれの形式の仕様に基づいて正しく情報が取得できます。
- 国際化に対応しており、自サーバー設置箇所や更新時刻を得たいサイトなどのローカルタイムに柔軟に対応できます。また、サマータイムにもある程度対応しています。
- 指定したリモート情報元から得た全ての情報を集約して出力することができます。この機能を用いて「子アンテナ」に情報を提供するだけの「親アンテナ」として機能させることも可能です。
- 取得対象サイト、リモートアンテナサイトの設定をHTTP越しに取得して利用することができます。全く同一の情報に基づいたミラーサイトを他サーバーに簡単に作ることができます。
- 取得対象サイトの設定を複数指定し、マージして使用することができます。他サーバーのものを持ってくることもできます。
- HTMLとして出力する際、テンプレートやベースとなるHTMLを自由に編集できます(HTMLの知識が必要)。
- データベース中に追加情報を埋め込むことができ、それも併せてHTML出力できます(Perlの知識が多少必要な場合もあります)。
- スクリプトの現在の動作状況を、動作と連携して表示するSSIがコンポーネントに含まれています(使用するにはSSIの知識とPerlの知識が多少必要)。
- UNIX以外の環境・Windows上のPerlでも正常動作することが確認されています。(Windows、MS-DOSのバッチファイルの知識が多少必要)
- 情報取得方法を限定することができます。たとえば、リモート情報のみ使用する・自力取得のみ使用するなどが可能です。
- 日時でURLが変わるサイトの更新時刻も自動追従して取得することができます。
- 「古今東西」をはじめとする日記システム側からの更新時刻通知に対応しています。
「なつみかん」の弱点
- HTTP/1.1の「Transfer-Encoding: chunked」を理解できません。よってGETリクエストはHTTP/1.0にて行っています。対応する予定も今のところありません。
- 更新時刻取得対象サイト、リモート情報参照サイトの情報をメモリに保存しておくため、メモリを使います(天野アンテナぐらいのサイトで約5MB)。
- 複数同時接続には対応していません。対応する予定も今のところありません。
- WWWサーバーソフト名を理解できません。対応する予定も今のところありません。
- 認証のかかったサイトの更新時刻を得ることができません。対応する予定も今のところありません。
- DI(hina.di)形式出力は完全にはDI(hina.di)仕様に準拠していません。
- サイトの更新時刻が絶対取れる、というほど高度なシステムではありません。更新時刻が取得できるように努力していますが、どうしても取れないサイトがあるのはやむを得ないところです。
- 作者がわがままです:-)
「なつみかん」使用上の注意
- 「なつみかん」を利用するには、UNIXやUNIXサーバーの知識及びPerlの知識、HTMLの知識が必要です。HTTP/1.0以上、クライアントサーバー通信などの概念が解れば尚良いです。
- 「なつみかん」は、Windows上のPerl(ActivePerl 522)でも動作することが確認されています。この場合設定などが多少UNIXのものと違います(このマニュアルはUNIXのものをベースに書かれています)
- 「なつみかん」ご利用の際には、Perl5.004以上が必要です(おすすめは5.005以上です)。
perl -v
とするとちょっとだけ幸せになれるかもしれません。
また、いろいろとモジュールを使っています(TimeとかIOとかFileとか)。通常Perl5.004以上がインストールされていれば大丈夫だと思いますが・・・
なお、(私はLinux詳しくないので違うかも知れませんけど)「Red Hat Linux」で最初からインストールされているPerlを用いると、ネットワークのタイムアウト処理ができないためか暴走するらしいです(原因不明)。
- それから、「NKF.pm」「Jcode.pm」「jcode.pl」のいずれかが、ライブラリディレクトリに入っている必要があります(無いと動作しません)。これらは添付していませんので、ご自身で用意してください。
「NKF.pm」は、UNIXでnkfに添付されています。nkfもインストールされていないと動作しません。
「Jcode.pm」は、
http://openlab.ring.gr.jp/Jcode/index-j.html
などにあります。
「jcode.pl」は
ftp://ftp.iij.ad.jp/pub/IIJ/dist/utashiro/perl/
などにあります。
- さらに、LIRS入出力のためにgzip(とその場所)が必要です。gzipの場所は、
which gzip
とするといい感じです。
Windows上のPerlで動作させるには、http://www.gzip.org/などから、Windowsで動作するgzip.exeをダウンロードする必要があります(gzip124xN.zipなど)。
- このアーカイブの中のファイルは、全て漢字コードEUC、改行コードLFになっています(Windows関連ファイルなど一部除く)。また、必ず「なつみかん」で使われる全てのファイルは漢字コードEUC、改行コードLFに統一して下さい。これを変えた場合の動作は保証しません。
- 「なつみかん」設置の際の、FAQに類するご質問等には一切お答えしません。ここにあるものだけで自力で何とかする、というやる気のある方のみご使用下さい。
- 「なつみかん」のバグ修正やプログラムの改良の義務は作者のひやにはありません。ただ、実現するか否かはさておいて、ご報告やご提案は大歓迎です。
- 「なつみかん」ご利用におけるいかなる事故・損害にも、当方は責任を負いかねます。
- アンテナと言うモノは、毎時毎時サーバーやネットワークに大きな負荷をかけて情報を取得します。また、リモート取得でしたら一つの情報取得で数十サイトの更新時刻を同時に得ることができますが、自力取得となると、更新時刻を取るためだけに無駄なネットワークトラフィックが発生することになります。それを考慮に入れた上で、アンテナ新規構築を心がけて下さい。
「なつみかん」ver.2.xからのバージョンアップについて
「なつみかん」 ver.3.1は、ver.2.xから内部コードの大幅な書き直しをしています。そのため、ver.2.3以前の「なつみかん」とは設定方法が大幅に異なっています。
ver.2.xから移行される場合は、下記のことに注意してください。
(ver.2.xからのバージョンアップ用の「バージョンアップの手引き」は同梱されません)
- 実行ファイル・設定ファイルは全て、「なつみかん」ディレクトリ下の「./bin/」ディレクトリ内に移動しました。
- 「nm.ph」は大幅に書式が変更になっています。旧バージョンのものを参考にしつつ新しいものを書き直してください。
- 「nm.sh」は廃止になりました。代わりに、「nm.pl」内で、動作するモジュールなどを設定するようになりました。
- 「nm_tg.pl」「nm_op.pl」「nm_mf.pl」「nm_lib.pl」は廃止になり、同様の機能を持つモジュールが「なつみかん」ディレクトリ下の「./lib/」ディレクトリ内に入りました。
- 「nm_mf.pl」で設定していた「&etcscript」というサブルーチンは「nm.ph」に移動しました。
- 「nm_info.pl」は「info.cgi」に名称変更しました。
- テンプレートとなるHTMLに埋め込む指定子で、「<!--NATSUMICAN_OUTPUT:/dir-->」の利用法、書式が変わりました。また、「<!--NATSUMICAN_SORT_OUTPUT:n:/dir-->」が追加されました。
- 時刻取得対象サイトを指定するファイル(sites.lirs)、リモート情報利用対象サイトを指定するファイル(remote.cfg)の書式は変わりません。これらは、「なつみかん」実行ファイルと同じディレクトリ(./bin/)に入れてください。
- jcode.plが実行ファイルと同一のディレクトリになくても、@INCに指定されているディレクトリにあれば利用できるようになりました。また、jcode.pl以外にもJcode.pm、NKF.pmが利用可能です。
- UNIX環境では、setpriorityを使うことでnise値を指定(+10してあります)し、他のプロセスと協調動作するようになりました。
「なつみかん」ドキュメント
「なつみかん」著作権表示など
- 「なつみかん」はフリーソフトウェアです。ただし著作権は放棄しません。「なつみかん」の著作権はひやにあります。
- 「なつみかん」ご利用に際し、ひやが金銭の要求をすることは一切ありません。
- 「なつみかん」に関連する一切のトラブルについて、ひやは責任を負いません。
- 「なつみかん」の動作・配布等における商用利用(動作・配布に伴う直接的な金銭収受があるとみとめられる場合)をなされる場合には、事前にひやにご連絡ください。ただ、ご自身の責任に基づいてそれが行われれば、制限をするつもりはありません。
- 「なつみかん」の改造は、自己の責任に基づいてご自由に。ただし、プログラムに多少でも手を加えた場合、改造している旨をどこかに記載するか、あるいは「なつみかん」を使用していることを明記しないようにしてください。
- バグ修正やプログラムの改良の義務は作者のひやにはありません。
"NATSU-MICAN" Copyright (C) 1998-2001 hiya All Rights Reserved.
Copyright (C) 1998-2001 hiya. All Rights Reserved.
Contact : hiya@hauN.org