なつみかん(NATSU-MICAN)
ver.2.0(19991019)
「なつみかん」とは
「なつみかん(NATSU-MICAN)」とは、ふるふるさんが「ぽぽぽ」で用いるために開発した「みかん(MICAN)」というシステムをひやが改造して作ったもので、「天野みどりのアンテナライフ」のために開発されました。その後大幅な改良が重ねられ、すでにみかんの原形をとどめていないので、ベースバージョン表記を無くしました。
何をするシステムかというと、ある(複数)サイトの更新された時間を、様々な方法を用いてそれぞれ取得し、これをリスト化してHTMLとして書き出すシステムです。
同様のシステムとして「朝日奈アンテナ」がとても有名ですが、朝日奈アンテナから必要な部分だけを強化し、高速化しています。
なぜ「なつみかん」かというと、ひやが夏が好きだからです。天野みどりも夏のキャラだし(^^;
「朝日奈系」に対抗して「柑橘系」とでも呼んであげてください(笑)
「なつみかん」の特徴
- 他の更新時刻取得サイトが書き出す情報からの更新時刻取得(リモート情報取得)に特化しており、様々な形式(LIRS形式、朝日奈アンテナ形式、DI形式、わっちりんく(す)形式など)から情報取得できます。
- リモート取得で更新時刻を得られなかった場合、自動的にHTTP/1.1のHEADリクエストによる取得に切り替えて試み、それでも更新時刻が得られなかった場合、HTTP/1.0のGETリクエストに切り替えて、そのコンテンツ内に表記してある更新時刻を取得しようとします。それでも情報が取得できなかった場合は、ファイルサイズに変更があったかどうか判断して更新されたかチェックします。そしてどうしても取得できない場合には、過去に得た情報を利用します(サイトがダウンしている場合など)。
- ローカルファイルからのリモート情報・サイト情報の取得も容易です。同一サーバーに複数の更新時刻取得サイトや更新時刻を得たいサイトがある場合に有効です。
- 極力余分なトラフィックを発生しないため、軽快で高速です。
- 取得するサイトや参照するリモートサイトの情報はデータベースとして存在し、HTMLとしては用意されないので、サイトの追加や削除、整理、スクリプトにかける、Microsoft Excelへ持っていく、などが容易です。もちろん、更新時刻を得た後それをHTMLとして出力する機能も標準で持っています。
- HTMLとして出力する際、テンプレートやベースとなるHTMLを自由に編集できます(HTMLの知識が必要)。また、データベース中に追加情報を埋め込むことができ、それも併せてHTML出力できます(Perlの知識が多少必要)。また、スクリプトの現在の状況を動作と連携して表示するSSIも利用可能です(SSIの知識とPerlの知識が多少必要)。
- 他のリモートサイトに情報を提供できるように、LIRS形式、朝日奈アンテナ形式で情報を出力できます。
- 取得した情報は全て新しい順に自動的にソートされて保持・HTML出力されます。
- スクリプトは全てPerlで書かれているため、広く知られているPerlを理解していれば改造も容易です。
- 旬ごとに最新のURLが切り替わる、等の場合にもある程度自動対応できます。
- 国際化に対応しており、サーバー設置箇所や更新時刻を得たいサイトのローカルタイムに柔軟に対応できます。また、内部時計が遅れているサーバーに対しても誤差を指定できます。
- LIRS形式を標準とし、時差(誤差)情報やファイルサイズの保持、情報の鮮度の計測などができます。
- 更新時刻取得サイトから得た全ての総合情報を吐き出すことができます。
「なつみかん」の弱点
- HTTP/1.1の「Transfer-Encoding: chunked」を理解していません。よってGETリクエストはHTTP/1.0にて行っています。
- 内部処理においてURLの大・小文字は区別していません。
- プロセスの制御や管理をしていません。そのため、爆発的にCPUパワーを食う瞬間もあります。
- 複数接続には対応していません。対応する予定も今のところありません。
- WWWサーバーソフト名を理解できません。対応する予定も今のところありません。
- 情報取得方法を限定できません。ただし、ファイルより直取得の場合のみ限定できます。また、リモートサイトを全く指定しなければ、全て自力取得にすることは可能です。
- 取得した情報をソートしないことができません(スクリプトを書き直すことにより対応可)。
- 認証のかかったサイトの更新時刻を得ることができません。
「なつみかん」使用上の注意
- アンテナと言うモノは、毎時毎時サーバーのマシンパワー、ネットワークトラフィックを発生させて情報を取得します。また、リモート取得でしたら一つの情報取得で数十サイトの更新時刻を同時に得ることができますが、自力取得となると、更新時刻を取るためだけに無駄なネットワークトラフィックが発生することになります。それを考慮に入れた上で、アンテナ新規構築を心がけて下さい。
「なつみかん」のダウンロード
- 「なつみかん」を利用するには、UNIXやUNIXサーバーの知識及びPerlの知識、HTMLの知識が必要です。HTTP/1.0以上、クライアントサーバー通信などが解れば尚良いです。
- 「なつみかん」ご利用の際には、Perl5.005以上が必要です。また、同一ディレクトリ内に「jcode.pl」が必要です(添付はしていません)。
- このアーカイブの中のファイルは、全てEUCコード、改行LFになっています。
- 「なつみかん」ご利用におけるいかなる事故・損害にも、当方は責任を負いかねます。
- 「なつみかん」設置の際のご質問等には一切お答えしません。ここにあるものだけで自力で何とかする、というやる気のある方のみご使用下さい。
- 「なつみかん」のバグ修正やプログラムの改良の義務は作者のひやにはありません。ただ、実現するか否かはさておいて、ご報告やご提案は大歓迎です。
「なつみかん」ver.2.0(991019)のダウンロード
natsu2.0.tar.gz
「なつみかん」ディレクトリ&ファイル構成
- $basedir(./:755)
- なつみかんの実働に使うディレクトリです。
動作には必要です。
- $datadir(./data/:755)
- なつみかんで使われる設定ファイル(mican.cfg)や元HTMLファイル(base.html)等を格納しておくディレクトリです。
動作には必要です。
- $tmpdir(./tmp/:777)
- ゲットしたリモートアンテナ情報や、各種テンポラリファイルを一時保管しておくディレクトリです。
動作には必要です。
- natsumican.cfg(data/natsumican.cfg)
- 利用するアンテナ情報、および取得するサイトの情報を記入しておきます。
必要に応じて書き換えて下さい。
動作には必要です。
- base.html(data/base.html)、base_get.html(data/base_get.html)
- HTMLとして書き出す際の元となるHTMLファイルです。
必要に応じて書き換えたり、差し替えたりして下さい。
- nm.ph
- なつみかんの環境ごとの設定です。詳細はドキュメントあるいはファイル内のコメントを参照して下さい。
必要に応じて書き換えて下さい(Perlの知識orプログラムの知識が少々必要)。
動作には必要です。
- nm.sh(744)
- なつみかんを起動するためのシェルスクリプトです。
Perlの位置や実行ディレクトリ位置を必要に応じて書き換えて下さい。他は特にいじる必要はないと思います。
いろいろ修正するためにはUNIXシェルとシェルスクリプトの知識が必要です。
動作には必要です。
- nm_mf.pl(744)
- なつみかんのHTML出力モジュールです。
追記情報がある場合、このファイルの先頭のサブルーチン部分を修正することにより、様々な形態で追記情報を出力できるようになります(Perlの知識が必要)。
- nm_tg.pl(744)
- なつみかんの更新時刻取得モジュールです。
通常、改変する必要はありません。
動作には必要です。
- nm_info.pl(755)
- なつみかんの動作状況モニタリングSSIモジュールです。HTML出力モジュールで出力されるHTML(通常日の目を見るHTML)にSSIとして埋め込んで使用します。
通常、改変する必要はありません。
- nm_lib.pl
- なつみかんの基本ライブラリです。なつみかんの各モジュール内部から直接呼び出されます。
通常、改変する必要はありません。
動作には必要です。
- LIRS.pm
- LIRS形式をサポートするためのモジュールです。
通常、改変する必要はありません。
動作には必要です。
- cfgconv.pl(744)
- おまけです。
なつみかん1.0の設定ファイル(natsumican.cfg)をなつみかん2.0で使えるLIRS形式に変換します。
使用法は、
perl cfgconv.pl [source file(and path)] [target file(and path)]
です。
通常は一度しか使わないと思います。また、このスクリプトの使用における支障などに、作者は一切責任を負いません。
- makehtml.pl(744)
- おまけです。
GetWeb!やGetYou、波乗野郎などのWebサイト取得プログラム用の「index_get.html」から「?MMDDHHSS」や余分なリンクを省きます。
通常は使わないと思いますので、消してしまってもかまいません。
- natsumican.html
- このファイルです。「なつみかん」の概要などが書かれています。
動作には不要です。
- natsumican_quickstart.html
- 「なつみかん」を素早く設定し動作できるように記したマニュアルです。
動作には不要です。
- natsumican_reference.html
- 「なつみかん」の設定方法や置換指定子などを解説したリファレンスマニュアルです。
動作には不要です。
- natsumican_history.html
- 「なつみかん」の更新履歴が記されています。
動作には不要です。
- natsu.css
- 上記HTMLのスタイルシート設定ファイルです。
動作には不要です。
- LIRS.txt
- LIRS ver.1.0の仕様書です。
動作には不要です。
- cron.txt
- 「なつみかん」を定時起動するためのcrontabの設定ファイルです。
直接の動作には不要ですが、crontabを使う場合は参考になるかもしれません。
ファイル名横の()内の数字は基本のディレクトリ位置もしくは推奨パーミッションです。記述のないものは+rであれば何でも大丈夫なはずです。
「なつみかん」ドキュメント
「なつみかん」についてあれこれ
製作のいきさつ;
- はうンサーバーに林立する各種アンテナサイトの情報を利用するなどして、天野のはうンサーバーにおける負荷を減らしたかった
- 朝日奈2000が私の手元でどうしても動かなかった
- 取得サイトの設定ファイルをデータベース化したかった
- 朝日奈アンテナが得る情報は根底にdi作成というのがあるのですが、天野アンテナではdiのような高度な情報を生かしていない(生かすつもりもない)のに、高度な情報を時間とマシンパワーをかけて得ようとする朝日奈の挙動に不満があった
今後のこと:
バグつぶし
動的URL自動追尾機能の強化←ちと無理そう
「なつみかん」著作権表示など
- 「みかん(MICAN)」の著作権は原作者のふるふるさんにあります。また、「なつみかん」の著作権はひやにあります。
- 「なつみかん」の改造は、自己の責任に基づいてご自由に。ただ、参考にさせていただきたいので、ぜひ改造点を(もしよろしければその部分のソースも)お教え下さい。
- バグ修正やプログラムの改良の義務は原作者のふるふるさん及び作者のひやにはありません。
"MICAN" (c)Copyright 1998-1999 konishi(fulufuru) All Rights Reserved.
"NATSU-MICAN" (c)Copyright 1998-1999 hiya All Rights Reserved.
(C)Copyright 1999 hiya. All Rights Reserved.
Contact : hiya@hauN.org