Home日記コラム書評HintsLinks自己紹介
 

フィンローダのあっぱれご意見番 第97回「プライベートサーバ」

← 前のをみる | 「フィンローダのあっぱれご意見番」一覧 | 次のをみる →

NTTのIP接続サービス(仮称)の実験エリアが5月から拡大されるということで、 早速申し込んでみたのだが、 ゴールデンウィークの真っ只中にNTTから確認の電話がかかってきたのにはびっくりした。 NTTといえば休日はしっかり休んでいるようなイメージがあったのだが、 最近は祭日でもお仕事なのだろうか。 代休があるのかもしれないが、とにかく休日に連絡してもらえるというのは実はありがたい。

このサービスを申し込めば、 毎月4500円(5/11現在)で接続時間無制限という、いわゆる固定料金になる。 最近は 接続時間が無制限のコースが用意されているプロバイダも多いから、 これと組み合わせると、24時間回線を繋ぎっぱなしにしても料金は定額、という仕組みである。 @niftyの場合、 無制限コースというのが5000円、これは少し(いやその…)高いとは思うのだが、 とりあえず毎月9500円でインターネットに繋ぎ放題という環境を得られる。

このサービスを申し込む時にアンケートがあったので、 すかさず料金が高いという項目にチェックした。 個人的にはインターネットは仕事に使っているようなものだから、 毎月一万円といってもそれだけのメリットはあるかもしれないし、 実際、電話代が毎月一万円程度なので、元は取れそうな気がするのだが、 そうでない一般家庭でこの料金設定が受け入れられるかといえば、ちょっと疑問に思うわけだ。 では、どの程度が限界かというと、 例えば朝日新聞の朝刊、夕刊をセットで購読すると、 1か月の料金は3925円なのだが、 このあたりが臨界点ではないかと思う。 つまり、プロバイダの料金も合わせて4000円/月というラインが 利用者が爆発的に増えるのではないかと予想する。 実際にそこまで値段が下がってくるかどうかは今のところ分からないし、 現状だと@niftyと組み合わせたらNTTの料金がマイナス1000円になってしまう。 将来的には期待できない金額でもないと思いたい。

残念なことに、このIP接続サービスは5月11日から実験エリアが拡大されたわけだが、 私の場合は工事がそれには間に合わないということで、 この原稿を書いている時点ではまだサービスを使っていない。 何か面白いことがあればまた後日紹介したい。

§

前回、 モバイルpcと、PIAFS対応のPHS、自宅にルータ、この組み合わせで 自宅にダイヤルアップ接続する環境を意外と簡単に構築できたという話をした。 何か面白い使い方があれば紹介すると予告していたが、実際あまり面白いわけでもない。 やっぱりPHSの料金というのがちょっと…。

これは使えるのでは、というようなアイデアもないわけではない。 とりあえず、httpサーバはSolaris 8/intel版に最初から入っているApacheを使う。 ここにフリーの検索ソフトとして有名なnamazuをインストールして、検索ページを作成した。 これで、自宅のハードディスクにある情報を検索するプライベートサーバが出来あがる。 ここまでは前回紹介したのと同じである。 わざわざ自宅のpcのデータから検索しなくても、WWWには大規模な検索エンジンがたくさんあるのに、 そんなことをして何が面白いかと思われるかもしれない。

確かにWWWには役に立つページがいくつもあるし、 検索エンジンを使えば効率的に目的のページを見ることができる。 経験的に、何かソフトをインストールした時にトラブルが発生するというのはよくあることだが、 その解決のヒントを得るには検索エンジンが一番である。 よくあるトラブルというのは実際よくあるわけで、 誰かがどこかでそのことを世界に向けて情報発信(古いか?)しているわけだ。

ところが、ある程度WWW慣れしてきた人は実感できるはずだが、 一度見たページが二度目見たときには見つからないことがよくある。 そのページの構成がちょっと変わったとか、 他のプロバイダに引っ越したという場合もあれば、 完全閉鎖してこの世界から消滅していることもある。

従って、重要なヒントはファイルに保存して手元に置いておきたいのである。

  

また別の話になるが、 例えばプログラマーズフォーラムの過去の全発言から検索したいことがある。 これは@niftyの検索機能では実現できない。 なぜなら、古い発言は既に@niftyの会議室上にはないからである。 過去の発言の中にはデータライブラリに登録されているものもある。 しかし、そこは検索の対象外だし、仮に検索できたとしても、 データライブラリに入っているのは個々の発言ではなく、 例えば1000発言集めた記録だから、 それがヒットしても実際の内容を読むのにこれまた苦労することになる。 掲示板や電子会議の発言のようなものは、 発言単位で検索できるというのが実用的に使うための必要条件なのだ。

 

※ 既に過去の発言もデータライブラリも消滅しているから、 手元で検索するしかない。

さて、プライベートサーバを使えば、これらの情報を検索する機能が実現できる。 発言単位で分けたファイルを用意しておき、namazuで検索できるようにすればよいのだ。 これがダイヤルアップでアクセスできれば、外出していても自分だけの検索サービスとして使える。

§

この検索機能は、公開されたページではなく、 自分だけがダイヤルアップして利用できるものだ。 著作権の問題がかかわってくるので、このことは極めて重要である。 他の人が作成したページとか、 @niftyで公開されている発言など、いずれも著作者が著作権を持っていると考えられる。 これを勝手に複製したら著作権の侵害ということで、違法行為となってしまう。 ただし、これには例外があって、著作権法第三十条に次のように書いてある。

---- fig.1 (著作権法第三十条) ----

  著作権の目的となつている著作物(以下この款において単に 「著作物」
  という。)は、個人的に又は家庭内その他これに準ずる限られた範囲内
  において使用すること(以下「私的使用」という。)を目的とする場合
  には、公衆の使用に供することを目的として設置されている自動複製機
  器(複製の機能を有し、これに関する装置の全部又は主要な部分が自動
  化されている機器をいう。) を用いて複製するときを除き、その使用す
  る者が複製することができる。

---- fig.1 end ----

何か分かりにくいが、要するに、私的使用ならコピーは合法だというのがこの条文の趣旨だ。 ラジオの音楽を録音したり、TV放送の映画を録画しても訴えられないのは、この条文があるからである。

さて、@niftyの発言などは、この条文によって、 個人的に使用することが目的であれば著作権法的にはコピーして問題ない。 コピーというのは、具体的には、 発言などを自分だけが使うハードディスクに保存することを意味する。 それを検索ツールを使って表示しても、当然問題ないはずである。

しかし、自宅でしかそれが使えないのは不便だ。 ならば、そのデータをWWWの個人ページに置いたらどうだ? 個人ページに置けば、どこからでも見ることができる。 しかし、これはマズい。 WWWで公開するということは、その著作物を自分以外の誰かに見せることを想定することになる。 これは私的使用ではないから、著作権法第三十条の条件を満たさない。 従って法的にマズいのである。 結局、このようなデータは誰からでも見えるサイトには置けないのだ。

もうお分かりだと思うが、 そこで登場するのがダイヤルアップでアクセスできるプライベートサーバなのである。 自分しか使わないという制限によって著作権法における私的使用という条件を満たすことが可能になるのだ。 もっとも、これってダイヤルアップである必然性はなくて、 要するに自分だけが使える状況ならいいわけだから、 アクセス制限すれば…ということで、やはりIP接続サービスが気になる存在ではある。

§

さて、珍しくC言語の話題を。 Solarisにはstrncasecmp() というライブラリ関数がある。 man strncasecmp で見れば書いてあるが、 大文字、小文字を区別しないで文字列を比較する関数である。 但し、namazuのソースを見ると、 lib/ 下に strncasecmp.c があって、 このライブラリ関数がない環境でもmakeできるように工夫されていることが分かる。 このソースの中に、

   c1 = TOLOWER (*p1++);

のようなコードがある。 TOLOWERは実際にはマクロになっていて、 うまく設定しておけば、 使用する言語に応じてきっちり処理できることを期待しているらしい。 で、どうも何かの設定を間違ってしまったらしくて、 漢字コードが入るとこの処理がうまく行かないのだが、結局、この処理を

    c1 = *p1++;
    if (! (c1 & 0x80))
        c1 = TOLOWER(c1);

に置き換えて、Solarisの標準関数ではなく、 namazuのstrncanecmpを使うようにしてやったら動作が期待通りのものになった。 もともとtolower関数は大文字以外の値は変更しないはずだから、 何か環境がおかしいのかもしれないが、どうも釈然としない話ではある。

とはいっても、このコードのc1はunsigned charだから、 このままでは1バイトの比較しかできるわけがない。 つまり、2バイトコードのアルファベットに対して大文字と小文字を同一視するとか、 もっと過激かもしれないが、2バイトコードの「a」と1バイトコードの「a」を同一視する、 というような離れ業はこのコードでは無理のような気がする。 では、ちゃちゃっとこの関数を変更すればもしかして…と考えてみたが、世の中そう甘くはなさそうだ。 それにしても文字コードの処理はいつまでたっても頭痛の種のようである。

§

参考ページ
全文検索システム Namazu http://www.namazu.org/
  「チュートリアル」からインストールに必要な情報が得られる。

  

(C MAGAZINE 2000年7月号掲載)
内容は雑誌に掲載されたものと異なることがあります。

修正情報:
2006-03-12 裏ページに転載。

(C) Phinloda 2000-2006, All rights reserved.