2002年12月のアレ

Home
Prev, Next

2002年12月


2002年12月27日

Tallyho! が消滅するとかいうので大量(って程ではないけど)にサイト移転中のようだ。


2002年12月26日

国立国語研究所国立国語研究所「外来語」委員会第1回中間発表ならびに中間発表に関する御意見の受付 に関するコメント。 個人的には「ブロードバンド」の言い換え例希望。 コメントといっても、相手は「世間一般の国語」のプロなんだから、 こちらの感覚がずれている可能性は高いかもしれない。 なお、以下の引用は、同サイトで発表された ○第1回中間発表 本文 より使わせていただいてます。

アクセス [情報・市場などの場合]
意味 いつでも利用できる状態にある情報や物に対して,近づいて利用すること。
言い換え語例 接続(する)。接近(する)。利用(する)。参入(する)。
(略) 注記 (前半略) コンピュータにかかわる分野では, 接続して利用することを一語で言い表せる「アクセス」が, 法律名及び条文でも使われており,定着しつつある。

そもそも、 インターネットで接続されているコンピュータに「近付いて」というのがおかしい。 「ADSLで接続する」は、プロバイダとの間の回線をADSLにした、というような感じ。 「ADSLでアクセスする」はokだが、意味が違うと思う。 「ホームページにアクセスした」はokだが、 「ホームページに接続した」は意味が分からない。 connect に成功したがデータはまだgetしてない、という感じ? 接続というと connect というイメージもあるので、 アクセスは接続の一種ということか。 「USBケーブルで接続して」は問題ないが、 「USBケーブルでアクセスして」は完全にNG。 論理的接続というか、プロトコルが関与するかどうか、というのがポイント?

例えば、ファイルをオープンできなかった場合は議論の余地なしとして、 オープンに成功時点でアクセスしたと言うのでしょうか? 意見が分かれるような気もする。 または、socket で accept まで行った段階で既にアクセスしたことになる? まだアクセスしてない?

個人的には、言い換える時には(言い換えないが)「参照」を使うと思う。 または、「サイトに行く」とか「見る」。 何か動きを含んだ言葉のような気がする。

インタラクティブ
意味 情報が,送り手から受け手への一方通行でなく,双方向にやりとりされること。また,その状態。
言い換え語例 双方向の。双方向性。双方向的。
説明付与例 インタラクティブ(情報が双方向にやり取りできる状態)。インタラクティブ(双方向的)。
用例 放送局と視聴者の関係も,よりインタラクティブにコミュニケーションしていると感じています。(新聞)
注記 「 平成13 年度国語に関する世論調査」によれば,「インタラクティブ」の意味を理解している人は10 %以下であり,一般向けには使わないのが望ましい。

これは説明自体がずれている、というかもしかすれば間違っていると思う。 ということで、使わない方がいいのでは? インタラクティブは単に双方向にデータが流れるという意味ではなく、 利用者の意思でコントロールできること。 こちらから積極的に注文を出せる、みたいな。 inter-active なんですよね。 つまり、ROM【謎】じゃなくてactive。 「双方向の」だと単にtwo-wayという意味しかないので、多分、多くの状況で意味がずれるのでは。

例。 ラジオは一方的な情報伝達だからもちろんインタラクティブではない。 電話は? 電話で通話するのは双方向だがインタラクティブとは言わない。 しかし、携帯電話の留守番電話サービスのように、 プッシュボタンで何番にするか指示して録音を聞く、 というのはインタラクティブ。 Lモードはインタラクティブ。 自動販売機やATMはインタラクティブ。 PHSで、持っていれば自分のいる位置が遠隔地から分かる、 というのがありましたっけ。 あれはインタラクティブではない。 データが自動的に出て行くから。 持っている人が「位置発信」ボタンを押したら位置情報が発信される、 という仕組みになっていたらインタラクティブ。

用例を解説するならば、 朝生みたいな番組で、視聴者からのFAXや電話を番組で紹介するだけなのはインタラクティブではない。 アニメとかラーメンのベスト100ってあるけど、 あれは微妙か。結果で番組の内容は変わるけど、 どっちだといわれたら、個人的判断としてはインタラクティブではない。 視聴者からのアンケートで次回のテーマを決定すればインタラクティブ。

ところで、リアルタイム性は必要ないですか、インタラクティブって?

オンデマンド 意味 一方的に供給するのではなく,利用者の注文(要求・請求)に応じて個別にサービスを提供すること。
言い換え語例 注文対応。受注対応。
説明付与例 オンデマンド(注文に応じておこなうサービス形態)。
用例 インターネットのようなオン・デマンド型の送信行為を(白書)
注記 「オンデマンド出版」は「オンデマンド(注文対応)出版」などとすれば分かりやすい。

全然分からない。 というか、普通、注文してから対応するのでは。 注文していないのに勝手に送って来るというのは、 某BBのADSLスタートキット【謎】位しか知らない。 モノ自体はタダらしいが、いきなり送ってきてびっくりしたという話をどこかの掲示板で見た。 それってもしかして、ノーデマンドか?

という話ではなくて、 ポイントは、 要求(があるまで対応を待ってから)後に作業開始、って感じなんですけどね。 言い換えれば、要求があるまで何もしない。 でも受注生産とは何か違うような気がする。そうでもないか。 用例って、そう考えると私の解釈が微妙に違うような気もする。 このページ読んでるみたいなのはオンデマンドではなくて、 フォームにいろいろ指定してsubmitすればページが生成されて…というのは間違いなくオンデマンドなのだが。

注記に「オンデマンド出版」という表現が出てくるが、 これは、 あらかじめ印刷してあったものを発送するのではなくて、 注文を受けてから(1部ずつ)印刷して発送する、という意味のはず。 言い換え難しいですね。 かなり私の趣味ではないが「注文後作成型出版」が意味としては近いのでは。 あ、「注文後作成」「注文後製作」あたりはいいかもしれない気がしてきた。

コンテンツ
意味 インターネットや電子媒体における情報の内容。デジタル放送における番組の内容。
言い換え語例 情報内容。内容。番組。
(略)
注記 情報のデジタル化に伴い,よく使われるようになってきていると思われるが,分野によって指示するものが異る。(略) デジタル以外のものに「コンテンツ」を使うことは避けるのが望ましい。

自分がコンピュータ系だからか、 番組というのは全然ピンと来ない。内容というよりも、何というか、 うーむ、難しいですね。 情報という大きな枠組みがあって、その中の一種。 意味不明か。

「意味」の説明はよくできている。 つまり、「番組の内容」であって、「番組」ではない。 それで合っていると思う。 例えばドラマをビデオ録画すると、テープの中にデータが記録されることになる。 このデータがコンテンツだ。 ってアナログだと使うのを避けた方がいいのか。 ってことは、HDD録画やDVD録画はok? なんで?

しかし、そうか、分野によって意味が違うのか。

Webの場合だと、例えば掲示板システムはコンテンツではなくて、 掲示板に投稿された個々の文章がコンテンツ。

セキュリティー
意味 安全を守ること。またそのための設備や対策。
言い換え語例 安全性。安全対策。保安。
(略)

これはもう「場合によっては全然違う」としか言いようがない。 場合によっては、警備とか、防衛。 ポイントは、「安全」の2通りの意味、 すなわちセキュリティとセーフティの区別だと思う。 例えば車に乗る時にシートベルトを着用するのは、 セキュリティーじゃなくてセーフティでしょう。 単に「安全」と言ってしまうとどちらか分からなくなるのが問題なのだ。

コンピュータ分野の例。 パソコンを落としても壊れないようにするのは、多分セキュリティーとは言わない。 雷対策の安全装置はセキュリティーか? 微妙ですか。 個人的には言わない。 外部から侵入できないように firewall を設置するのはセキュリティー。 パスワードを使うのはセキュリティ。 ちょっと待てよ、「セキュリティー」と「セキュリティ」、どっちだ?

バリアフリー
意味 体の不自由な人でも,生活に不自由がないよう障壁や障害を取り除くこと,あるいはその状態。
言い換え語例 障壁除去。
説明付与例 バ リアフリー(障害者や高齢者の生活に不便な障害を取り除く)。 バリアフリー(障壁をなくすこと)。バリアフリー(障壁のない)。 用例 コンピュータの普及は,障害者の生活をバリアフリーにした。(新聞)
注記 概念の浸透とともに定着が進みつつある語であり, 言い換えてしまうとかえって分かりにくくなる面もある。 高齢者のことを考えると説明を付与しての使用が望ましい。

障壁除去 で本当に意味が分かるんですか? ちなみに、私は分からないぞ。 バリアフリーなら分かるけど。 一番よく見かけるのは、新築マンションとかじゃないですか、 洋間と和室の間に段差がないってやつ。 バリアを「障壁」に対応させた時点で既におかしいのでは。 例えば洋間と和室の間にある段差を「障壁」と表現するか? 普通。

バリアフリーのポイントは、体の不自由な人 でも という所にある。 つまり、バリアフリーにすれば、体が不自由でない人も、 大抵の場合、格段に便利になります。 というのがポイントだと思う。 例えば、駅の階段に車椅子用のレールが設置されていることがある。 個人的には、あれはバリアフリーというのにはかなり抵抗がある。 もちろん、ないよりあるに越したことはないのかもしれないが、 車椅子に乗ったことがないから分からないけど、あれってかなり不自由ですよね? 階段ではなくスロープにするとか、エレベータを設置するのはバリアフリー。

なお、「意味」の文章は句読点の位置が間違っていると思う。 用例もちょっと違和感があるというか意味不明。皆さん分かります? コミュニケーションツールの話なのだろうか? コンピュータが普及したら洋間と和室の段差がなくなる、なんてことがあったりするのかも。 歩道と車道の段差がなくなるとか、階の移動用のエレベータが必ず設置されるとか。

ライフライン 意味 生きるために不可欠な物資(特に,水道・ガス・電気など)の補給路。
言い換え語例 生命線。
説明付与例 ライフライン(生活必需物資補給路)。
用例 阪 神・淡路大震災においては,建築物の倒壊,(略)通信網や交通網の混乱,ライフラインの機能停止など大規模な被害が生じ(白書)
注記 「 生命線」などの言い換え語で,かえって分かりにくくなる場合は,外来語に説明を付与する形で使うのが望ましい。

全然分からなくなってますけど、言い換えると。 というか、分かる場合が思いつかない。

ところで、私の感覚では 電気、ガス、水道、電話、等の生活上必須の サービス という意味だと思っていたのだが (だからそれを「生命線」と言うのだ、といわれたらどうしようもないが)、 「補給路」なんですか。 というか、電気の補給路って何? 電線? 個人的には生命線というのは手のひらの皺の一種のこと。

とりあえず、オーディエンス希望【違】。

リニューアル 意味 新しくすること。特に施設や商品などについて全面的に改新すること。
言い換え語例 改装(する)。改修(する)。刷新(する)。
説明付与例 リニューアル(改装)。リニューアル(改修)。リニューアル(刷新)。
用例 空家発生時に住宅性能等の向上を図る「リニューアル事業」(白書)/5 月10 日発売号からリニューアルされて新登場(新聞)
注記 店舗などの場合は「改装」,住宅などは「改修」,商品などには「刷新」と使い分けるのがよい。

どちらかというと新装開店。その実は何も変わってないことが多い。 意味が合っているのに、言い換えがおかしい。 「改装」って「新しく」という意味含まれますか?

空家改装って、白書ではリニューアルと言って何か雰囲気を作りたいのかもしれないが、 庶民的にはリニューアルじゃなくてリフォームとかいう。 匠が出てきて劇的なbefore-after位の変化があれば…いや、 あれでもなおリフォームかもしれない。 私の感覚では、リニューアルというのは全構造をチャラにして一から設計し直す場合。 空家だったら、全部壊して更地にしてから立て直すならリニューアル。 廃材を再利用したらどうだろ?

他の例としては、某党から離党して某新党を作る、みたいな感じ。 とにかく、「新」がポイントだと思うのですが。 構造改革されていたらok。形式が重要。中身が全然変わらないじゃないか、というのでも 「某新党」という名前になっただけで十分リニューアル。 というか、リニューアルってその程度の意味しかないというような、 ある意味アイロニーというか、そういう雰囲気ありません? とにかく「新」が入っていたらリニューアルというのにも抵抗がなくなる。 「改装」という日本語で和英辞典引いても renewal って出てこない。 本当に「改装」(特に、newという含みを持たない)という意味で使うことあるのだろうか?

§

てな感じで考えたのだが、 さて、ご意見募集中ということだから、 研究所にメールを送ればいいのだが、 メール用の表現に直すのが大変だ、 というか、どういうメールを送ればいいのか、 サイトに出ていた書き方を読んでもよく分からないというか、 「簡潔に」というところでアウトか? 気が向いたらメールしてみよう。 その前に、面白そうなので編集して FPROGORG の「混沌の廃墟にて」に出してみるとか。


2002年12月25日

ロジテックダイレクト を見たら、例のHDD、売り切れたか?

まさか裏ページ見て買いに行った人はいないと思うが、 もしかして…? (^^;

§

asahi.com で、携帯電話の未承諾広告の件で、 規制をすり抜けているメールが9割だという報道があったのだが、 どんなのかというと、 「未承諾広告※」を「末承諾広告※」にしたとかいう。

どうせやるのなら 「フ、セオツケュケ「ィ」にする位の悪知恵働かせて欲しいものだが (ちなみに、これだと違法になるのだろうか? あっEUCで出しちゃった、みたいな)、 「末承諾広告※」ならすり抜けでも何でもないじゃん。 紛らわしくも何ともない、というか、100%違法じゃん。 なんで逮捕しないのだろう? というか、発信元から課金するという話、なかったっけ? ま、それはいいとして、 DoCoMo談。 「迷惑メールが巧妙に送りつけられることは承知」なんだそうです。 だいたい、DoCoMo はそれで儲かるんだから、全然本気じゃないでしょ。 むしろ迷惑メールが増えた方がグッド、とはまさか考えてないと思うが、 妙案がないとか開き直ってる。 前かな言ってるのだが、発信元に課金すればいいだけだろ。 発信元の課金を今の倍(同報の場合は同報数倍)にして、受信は全部無料、 で、コストに合わないと思ったメール業者か完全根絶、 コストに見合うと思えば存続するが、受信者は料金払わないですむので迷惑度激減、 って簡単な話なのでは。

もっとも、DoCoMo以外の携帯にすれば簡単解決らしいので、 密かに検討中。 と言いたいところだが、実は全然迷惑メール来ないので別に困ってないのだな、これが。


2002年12月24日

Apache 2.0 と SSL の話。 結局、最初からやり直すことにしてみる。 というか、今までやっていた手順って、1.3x の手順混じっているのか?

./configure --enable-mods-shared=all --disable-info --with-mpm=worker

これが、httpd をリンクする所でエラーが発生して中断。

collect2: ld returned 1 exit status
make[1]: *** [httpd] エラー 1
make[1]: 出ます ディレクトリ `/home/mai/freesoft/apache/httpd-2.0.43'
make: *** [all-recursive] エラー 1

何なんでしょうね。 もしかして中途半端にコンパイルしたのが残っているのがいけないのか? 全部削除してからもう一度 tar を展開し、 ./configure からやり直してみる。 今度はうまく行った。 やはり何か残っていたのだ。 しかし、mod_ssl が見当たらない。 明示的に追加しないとダメなのか?

./configure --enable-ssl --enable-mods-shared=all --disable-info --with-mpm=worker

mod_ssl.so ができている。うまいぞ。 実行できるのか?

cd /usr/local/apache2
bin/httpd -f conf/httpd.conf

ok。では SSL はどうよ?

# bin/httpd -f conf/httpd.conf -DSSL
Syntax error on line 114 of /usr/local/apache2/conf/ssl.conf:
SSLCertificateFile: file '/usr/local/apache2/conf/ssl.crt/server.crt' does not exist or is empty
#

あか〜ん。 そりゃま、certificate 関連の処理何もしてないから当然か。 しかし、どうやって作るのだろう? 実はマニュアルに書いてあるのだ。 知ってみれば簡単というか、 マニュアルも見ないでインストールしていたのか? > 自分

Apache HTTP サーバ バージョン 2.0 ドキュメント の「 Apache の SSL/TLS 暗号化 」というのを見ながら作業。 とりあえず、conf に ssl.crt というディレクトリ作る。 ちなみに、マニュアル、 ここまでは日本語だが、さらに1レベルリンクをたどるといきなり英語になります。 「よくある質問」(FAQだな)の、 About Certificates あたりから見よ。

Ok, I've got my server installed and want to create a real SSL server Certificate for it. How do I do it?

とか書いてある。

mkdir ssl.crt
cd ssl.crt
openssl genrsa -des3 -out server.key 1024
password = ...
openssl rsa -noout -text -in server.key

ふむ、いいのでは?

# openssl req -new -key server.key -out server.csr
Using configuration from /usr/share/ssl/openssl.cnf
Enter PEM pass phrase:
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [GB]:JP
State or Province Name (full name) [Berkshire]:Tokyo
Locality Name (eg, city) [Newbury]:Wahaha-kuウソ。こんなことを書いてはいけない、多分
Organization Name (eg, company) [My Company Ltd]:Phinloda's private site
Organizational Unit Name (eg, section) []:phinloda
Common Name (eg, your name or your server's hostname) []:www.phinloda.com
Email Address []:phinloda@st.rim.or.jp

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

ところで、これに対する証明書はどうやって発行するのだろう?

You now have to send this Certificate Signing Request (CSR) to a Certifying Authority (CA) for signing.

んなー、自証用の手順じゃなかったのか。 やり直し。

How can I create and use my own Certificate Authority (CA)?

こっちか?

openssl genrsa -des3 -out ca.key 1024
openssl req -new -x509 -days 365 -key ca.key -out ca.crt

この2つを実行。 画面表示はさっきのと似ているので省略。 で、次は?

So a script named sign.sh is distributed with the mod_ssl distribution (subdir pkg.contrib/). Use this script for signing.

とか書いてある。 何か詰めが甘いんじゃないですか > Apache2。 まあいいけど、 mod_ssl: The Apache Interface to OpenSSL から、 mod_ssl-2.8.12-1.3.27.tar.gz をget。 展開すると、 pkg.contrib/ に、確かに sign.sh というスクリプトがある。 これを current directory にコピーして実行してみる。

# ./sign.sh server.csr
CA signing: server.csr -> server.crt:
Using configuration from ca.config
Enter PEM pass phrase:
Check that the request matches the signature
Signature ok
The Subjects Distinguished Name is as follows
countryName           :PRINTABLE:'JP'
stateOrProvinceName   :PRINTABLE:'Tokyo'
localityName          :PRINTABLE:'Wahaha-ku'
organizationName      :PRINTABLE:'Phinloda's private site'
organizationalUnitName:PRINTABLE:'phinloda'
commonName            :PRINTABLE:'www.phinloda.com'
emailAddress          :IA5STRING:'phinloda@st.rim.or.jp'
Certificate is to be certified until Dec 24 11:31:55 2003 GMT (365 days)
Sign the certificate? [y/n]:y


1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated
CA verifying: server.crt <-> CA cert
server.crt: OK
#

これでいいのか? とりあえず起動する。 エラー発生。 mod_unique_id がいかんとかいう話。 ドメイン名を www.phinloda.com としたのがダメなのか。 LANの中からだと、www.phinloda.com は見えないで、 ローカルの別ドメインで見えてしまうようだ。

とりあえず、 httpd.conf から、mod_unique をコメントアウト。 もう一度。 エラー発生。 conf/mime.type がないとな。 コピーすればいい。

今度は動いたようだ。 ようだ…が、これってどうやって確かめるのだ? まあいいや。

ここで一旦中断して、 default の設定では動くようだから、 内部で使う個人用のポートで動かすための設定。 ~/httpd.local みたいなディレクトリを作って、 その下に必要なデータだけ作る。 とりあえず、

mkdir ~/httpd.local
cd ~/httpd.local
mkdir conf logs
ln -s /usr/local/apache2/error error
ln -s /usr/local/apache2/modules modules
cd /usr/local/apache2/conf
cp httpd.conf magic mime.types ~/httpd.local/conf

これで、httpd.conf を修正すればいい。 LAN内部用なので、SSL は使わない。 多分、SSL 使うのなら ssl.conf とか、 今作った ssl.crt あたりを何とかする必要がある。

で、試しに動かしたら、今度もok。 okはいいのだが、何かプロセスがたくさん起動してしまう。 初期値が、

StartServers         2
MaxClients         150
MinSpareThreads     25
MaxSpareThreads     75
ThreadsPerChild     25
MaxRequestsPerChild  0

こうなっている。 ここを変えればよさそうに見えるのだが、 一人(〜せいぜい数名)がアクセスするという前提の場合、 どう設定すればいいのだろう?

まあそれもおいといて、 .htpasswd のありきたりな設定を追加。

AuthUserFile /usr/local/途中略/.htpasswd
AuthGroupFile /dev/null
AuthName "Private page"
AuthType Basic

これで、httpd.conf 側では、 AllowOverride AuthConfig Limit を追加。 認証機能が動いているのを確認。 とりあえずこれで Apache 1.3x から離れることができそうだ。


2002年12月23日

apache 2.0 の mod_ssl の使い方が分からなくて苦戦。 apache 1.x 系の使い方なら、参考になるページがわんさかあるのだが、 2.0 の設定例のページなんて一つも見つからない。 2.0 の FAQ ってありますか?

# bin/httpd -DSSL -f conf/ssl.conf Syntax error on line 52 of /usr/local/apache2/conf/ssl.conf: Invalid command 'SSLPassPhraseDialog', perhaps mis-spelled or defined by a module not included in the server configuration [root@dns apache2]#

雰囲気的にいけそうな configure としては、

./configure --enable-so --enable-shared=max --enable-module=all --with-ssl=/usr/local/ssl

これでいけそうな感じがしたのだが、ダメ。mod_ssl.so は生成されない。 明示的にやってみる。

./configure --enable-so --enable-shared=max --enable-module=all --enable-shared=ssl --enable-module=ssl --with-ssl=/usr/local/ssl

変わらない。ちなみに、shared でないと、

./configure --enable-so --enable-shared=max --enable-module=all --enable-ssl --with-ssl=/usr/local/ssl

これで httpd を起動すると、

# bin/httpd -DSSL -f conf/ssl.conf Syntax error on line 114 of /usr/local/apache2/conf/ssl.conf: SSLCertificateFile: file '/usr/local/apache2/conf/ssl.crt/server.crt' does not exist or is empty #

少し進んだ。 これは certificate のデータ作ってないから出たエラー。 ちなみに、apache 1.x だと、どのページ見ても出てると思うが、 make certificate TYPE=custom のようなことをする。 もちろん、apache 2.0 では make certificate は使えない。 さて、どうしようか?


2002年12月22日

12月24日の21:00から FPROGORG の 1ch で chat、って今年もやるのか? 去年だっけ、ずっと待っていたけど誰も来なかったような気がするが。

§

2台目のSCSI外付けHDDが届いているので、接続。 まず shutdown -t0 now でシステムを落とそうと思ったのだが、 落ちず。 流石は定評のある RedHat Linux ってことですか。 全然落ちてくれません。 もちろん、キーは受け付けないので何が何だか分からず。 外から telnet で入ろうとしてもだめ。 マウスの操作は可能だが、出るメッセージが文字化けしていて読めないし、 押すべきボタンも表示されない。 LINUXは堅牢だとは聞いていたが、これほどとは。

という訳で、電源ボタンをぽちッとな。

SCSI のドライブを増設して、電源on。 途中、fsck をするかどうか尋ねてくるのだが、 5秒以内に返答しないとチェックしないで次に進んでしまう。

Dec 22 17:29:25 dns fsck: /: 18573/131616 files (0.1% non-contiguous), 30023/263056 blocks
  ...
Dec 22 17:44:06 dns fsck: /usr1: 478724/4489216 files (21.6% non-contiguous), 7204071/8964262 blocks

fsckに、これ位の時間がかかった。 15分程度? ちなみに、だいたいこの程度使っている。 /usr1 がでかい。 if は Ultra SCSI 160 なのだが、 7200rpmだっけ、そのあたりのネックってことありますか?

% df -k
Filesystem           1k-blocks      Used Available Use% Mounted on
/dev/hda9              1035660    103536    879516  11% /
/dev/hda3               124443      8989    109028   8% /boot
none                    257192         0    257192   0% /dev/shm
/dev/hda7              1035660     33020    950032   4% /tmp
/dev/hda5             19829336   2368716  16453348  13% /usr
/dev/hda6             13274688    687636  11912728   6% /var
/dev/sda1             35293512  28252748   5247912  85% /usr1
/dev/hda2              2071416   1189532    776660  61% /home

増設したHDDは、 SCSI-ID = 1 としたから、sdb として認識されているはず。 /var/log/messages を確認。

Dec 22 17:44:36 dns kernel: Attached scsi disk sdb at scsi0, channel 0, id 1, lun 0

ok。12月14日の手順と同様にしてファイルシステムを作成。 ここでとんでもないというか、まあたいしたことはないが、 大きなミスをしていたことに気付く。 ラベルを付ける時なのだが、

/sbin/e2label /dev/sdb1 /usr2

となるのかな、とか思ったわけで。 これ自体は間違っていないが、 ということは、現在、SCSI-ID = 0 に対して、/usr1、 SCSI-ID = 1 に対して、/usr2、…と対応することになっている。

ヤバいですねぇ。何かの間違いがそのうち起きて、大変な惨事になる予感。 皆さんは真似するのなら、/usr0、/usr1、…のように、SCSI-ID と対応させておいた方がいいと思います。

ん、待てよ、今後の被害を拡大させる必然性はないのだ。 つまり、

/sbin/e2label /dev/sdb1 /usr0

とすれば、もし今後増設しても、2、3…が対応するのでは。 というか、/usr0と/usr1、こうやって設定しておいて SCSI-ID を入れ替えるというのはできないだろうか? とりあえず、e2label をやり直して、/usr0 に変更。

最後に、/etc/fstab の変更。今回はpico を使わずに直接 /etc/fstab を変更した。 mountして確認してok。


2002年12月21日

FPROGのRT会議で、Webフォーラム化の話。 FPROGのWebフォーラム化というのは、まだ企画は通ってませんが、 99%の確率で本決まりです。 というか、私自身は Webフォーラム化しないと、自然に枯れると思っているし、 ニフティは tty ベースのフォーラムを廃止するつもりはないと宣言しているが、… いや、何でもありません。

とにかく、 で、冗談で言ったのだが、Webフォーラムのブラウザを意図した操作をラップして、 ttyモードと同じ操作で処理できる機能を作る、という話。 本当に作ったら利用者いるのでしょうか? かなりマヌケなソフトだと思うのだが。

個人的には、WebのGUIをラップして、ユーザーカスタマイズした操作で閲覧/発言できるというツールはマジで作る予定。 とにかく、オフラインでコメント書きして、オートパイロットで登録、みたいなツールがないと絶対やっていけない。 手間的には、Web publishing ですか、そこまで同じUIでできるようにしておけば、 フォーラムのサイト管理が楽なのだが。

ただ、Webフォーラムって、多分、ごくありきたりの http ベースの、 ブラウザ操作べったりで、たまにデザインが変わって自動的にgetできなくなる、 というような感じになるような気がする。 理想的には Webサービス化してくれたら、対応ソフトが簡単に作れる(そうか?)から楽なのだが。 念の為、Webサービスって、WSDL+UDDI+SOAPをXMLで何々、という方の意味で言ってますが。FPROG会員には言うまでもないと思うが、 最近、何か別の意味に解釈する人が多いような気がする。 どういう意味か聞いてみたいけど、「Webのサービス」と言われそうな気が99.9%するので、 実際に尋ねたことがない。

Webチャット(って何?)でMacからフォントが指定できないという話。 Javaの設定で何とかならないのでしょうか。 Webチャット(だから何?)も、対応ソフトみたいなのを作ってみたい気がするが、 プロトコルがどこに公開されている(いない?)か分からないので、手つけず。 ちなみに、Webチャットで会話するデータ、 パケットが生で流れているような気がしますが、気のせいですか? 暗号化されているのでしょうか?

まあどっちみち、telnet で接続して RT 会議に入ったら完璧に生出しなわけで、 こだわらない。 個人情報とかうっかり話す方が悪い。

そういえば、 セキュリティ系の本で、 e-コマースサイトの構築時の注意として、 セキュアで入力された個人情報を生のメールで返信するというバカをするな、 というような警告が書いてあった。 つまり、インターネットのメール、暗号化してあればいいのだが、 普通はしてないだろ。 折角、電話番号とかを暗号化して送信したのに、 お申し込み情報は次の通りです、 みたいなメールが平文でインターネット流れたら意味ないだろ、という話。 そりゃそうだが、じゃあどうするのか。

で、かなり昔だけど、ニフティがインターネットプロバイダ化しないと宣言しつつ、 徐々にプロバイダ化していた頃だが、 ニフティの人【誰】と会話する機会があって、 その時に私がこういうことを言ったと思う。 インターネットのメールは基本的に「誰でも読める」「届く保証はない」という大原則があるのだから、 ニフティメールはそこをカバーすればニーズがある。 つまり、e-コマースの注文情報が、 @niftyのIDから@niftyのIDに送られる場合に外部を通らない、 という仕組みになっていれば、メールの内容が傍受される心配はない。 もっとも、メーラーで普通に読んだりしたらダメダメなんですけど。 暗号化してあればいいのか。

でもそういう戦略って聞いたことないですね。 まあどうでもいいが。 今となっては@niftyの中だけでオンラインショッピングが完結するというのはありそうにないし。 というか、そういえば@niftyで買い物したことないぞ。自分。

とりあえず、Tipsというか、基本の話だが。 SSLで接続したサイトで入会処理とか注文した後、 平文メールで「あなたのパスワードは ***** です」とか、 入力した電話番号送って来るサイト。 逝ってよし。


2002年12月20日

tomcat を 4.1.17 にバージョンアップ。 まず、tomcat4 のコピー。 /var に cd して、root 権限で tar を展開。 すると、jakarta-tomcat-4.1.17 というディレクトリができるので、 次のような手順でコピー。 シンボリックリンクがあるので、 単にコピーするというのではなく結構複雑。

chown -R tomcat4:tomcat4 jakarta-tomcat-4.1.17
mv tomcat4 tomcat4.old
ln -s ./jakarta-tomcat-4.1.17 tomcat4
cd /var/tomcat4
rmdir logs
ln -s /var/log/tomcat4 logs
mv temp temp.orig
ln -s /var/cache/tomcat4/temp temp
rmdir work
ln -s /var/cache/tomcat4/work work
pushd !$
rm -rf *
popd
cd /var/tomcat4/webapps
mv ROOT ROOT.orig
pushd /var/tomcat4.old/webapps
tar cvf /tmp/ROOT.tar ROOT
popd
tar xvfp /tmp/ROOT.tar
rm /tmp/ROOT.tar

環境によって異なると思うので手順省略するが、 追加した自作の servlet は再コンパイルしてみた。 しなくてもいいような気がするが、何となく。

問題は conf である。 入れ替えたら今迄の設定が全滅する。 しかし、 bug が修正されていたりするのなら、入れ替えないとまずい。 この confだが、rpm でインストールすると /etc/tomcat4 へのシンボリックリンクになっているが、 基本的にそういうポリシーなんでしょうか。 いや、いいのですが。 tomcat のバージョンアップで conf の下が基本的に全入れ替えになるという想定なら、 むしろ /etc/tomcat4 からそれぞれの /var/tomcat4*/conf へのリンク、という発想もあると思うのだが、こだわらない。

cd /etc/tomcat4
mkdir old
cp -p * old

tomcat4.conf だけが新しい conf になかったのだが、いいのか?

cd /var/tomcat4/conf
cp * /etc/tomcat4
cd ..
rm -rf conf
ln -s /etc/tomcat4 conf

catalina.policy 変更あり。
jk2.properties コメントのみ変更。
server-noexamples.xml.config 一致。
server.xml はこちらで変更した。 path = /examples となっている Context をごっそりと削除する。 acceptCount が 10 から 100 に変更されているようだが、これって? とりあえず、気にしない。 もう一箇所。 AccessLogValve というのを探して、 コメントアウトを外しておく。 最終的には apache と連携するようにして、 ここはコメントアウトというのが正統派なんですか?

web.xml はこちらで変更したので、それにあわせる。 先日書いたが、結局訳がわからなくなるのでメモっておくと、 The mapping for the invoker servlet というコメントに続く個所が、 次のようにコメントアウトされている。 これをコメントではなく有効にする。

<!--
    <servlet-mapping>
        <servlet-name>invoker</servlet-name>
        <url-pattern>/servlet/*</url-pattern>
    </servlet-mapping>
-->

という感じで tomcat4 start したら、/var/tomcat4/logs がないと怒られる。 symbolic link 作ったつもりなんですけど、できてなかった。 作り直して起動。 らんだむCGりんくが動かない。 javac するの忘れていた。 javac randcg.java を実行して、ok。

で、struts は根こそぎ消滅しました。 もう一度入れ直すか。

§


2002年12月19日

analog をインストール。 書くの面倒なので手順省略。 tomcat のログを食わせるのはどうするのだろ? 単純に指定したらダメだったが。 ちなみに、apache のログなら何てことはない。 しかし自分しかアクセスしないログを見ても面白くも何ともない。 と思ったが、 何かコピーし忘れていた画像ファイルがあったようで、 エラーが出ていたので修正。

tomcat を入れたと思ったらもう次のバージョンが出ていた。 セキュリティとかの問題があるのでバージョン上げておこう。

gzip -d jakarta-tomcat-4.1.17.tar.gz
tar xvf jakarta-tomcat-4.1.17.tar
cd jakarta-tomcat-4.1.17

コピーすればいいのか? あ、そういえば apache を 2.x にしていないぞ。

gzip -d httpd-2.0.43.tar.gz
tar xvf httpd-2.0.43.tar
cd httpd-2.0.43
./configure --enable-so
make
make install

ドキュメントが日本語化されているのだが、manual/dso.html の、 DSOの欠点の所。

すべてのオペレーティングシステムがプログラムのアドレス空間にコードを動的ロードすることをサポートしているわではないので

が抜けているようだが?

何か眠いのでとりあえず寝る。 後は明日。ってもう20日だが。


2002年12月18日

えーと、 とりあえず Struts。 jakarta-struts-1.1-b2.tar.gz を適当な所で展開して、 webapps 下にあるファイルを全部 /var/tomcat4/webapps にコピー。 その後、tomcat4 を再起動。

一度目、失敗。 ディレクトリ webapps に tomcat4 が書き込む permission がなかった。 chmod g+w で変更してから再起動。 今度はうまく行った。 http://localhost:8080/struts-example/ で表示確認。

§

RedHat 7.3 の less って、日本語非対応?  何か分からないので Solaris で使っていた less をコンパイル。 古いかもしれないが、日本語出ないのではどうしようもないので。

tar xvfp less*tar
cd less-332
patch -p1 < ../*patch
sh configure
make
su -
make install

面倒系というか、「*」を結構多用する系なので、実際はそんな感じで入力しているのだが。

90日間サポートとかあるはずなので、質問してみようか。

§

らんだむCGりんく。 javaのソースを適当な所にコピーしてコンパイル。 エラー多発。 CLASSPATH が設定されていなかった。 CLASSPATH に、/var/tomcat4/common/lib/servlet.jar を追加してok。 SearchDef.java というファイルをコンパイルし直そうとしたときに、 cp SearchDef.java $OLDPWD とやったら、どこに行ったか分からなくなった。 そこで禁断のワザさくれつ。

find / -name SearchDef.java -ls

別に禁じ手でも何でもないけど、 多分会社とかでこういうのやったら誰かに怒られる。 そうでもないか。

必要なデータとか、tmp にコピーして、tomcat4 を再起動。 しかし、らんだむCGりんく、動かず。 要するに、web.xml の invoker の所がコメントアウトされているために、 …/servlet/cglinks.randcg で servlet が起動しないということなのだが、 tomcat 4.x ってそうだっけ? とりあえず、その個所のコメントを外したら無事起動。

アクセスログが記録されていない。 server.xml のそれっぽい所がコメントアウトされているので、 コメントアウトアウト【謎】してアクセスログを記録するようにする。

まだ本稼動ではないため、このリンクもいきなりアクセスできなくなっているかもしれませんが、

らんだむCGりんく

さて、とりあえず古いバージョンが動いたので、 次はこれを Struts を使うように修正したいのだが…。


2002年12月17日

何だ結局 perl かよ、とかいう声が聞こえるような気がするが、 多分空耳。 関係ないが、空耳アワーのテーマ曲(か?)の音程ってソラミミなんですね。 本当に関係ない。

で、@nifty のサービスにドメイン名獲得とかダイナミックDNSとかあるのだが、 IPが変わった時にダイナミックDNSを自動的にアクセスして設定変更するにはどうするか。 DICEというフリーソフトがあるけど、 ソースがないので何となくノレないという話までしましたっけ。 Java で書こうと思ったら、 ダイナミックDNSの設定サーバーが SSL V2 で、JSSE がサポートしていなくて頓挫したというのが前回【謎】までのあらすじ。 結局、こういう perl スクリプトを書いた。 長いぞ。

#!/usr/local/ActivePerl-5.8/bin/perl

use Encode;
use Net::SSLeay qw(get_https post_https make_headers make_form);
use MIME::Base64;

if ($#ARGV != 2) {
  print STDERR "usage: perl updateip.pl username password command\n";
  print STDERR "command = {newip|offline}\n";
  exit 0;
}

($user, $pass, $command) = @ARGV;
if ($command ne "newip" && $command ne "offline") {
  print STDERR "command must be \"newip\" or \"offline\"\n";
  exit 0;
}

$htmlfile1 = "ipcheck1.html";
$htmlfile2 = "ipcheck2.html";

# get 1st page
($page) = get_https('www.atnifty.com', 443, '/ddns/p13.php');
&create_file($htmlfile1);

# read it
open (IN, $htmlfile1) or die "what??\n";

$status = 0;
$mode_count = 0;

while (<IN>) {
  &get_form_information($_);
}

close IN;

# some variables
#$command = "newip"; # use this to update IP address
#$command = "offline"; # use this to disable dinamic DNS

if ($action =~ /^(.+?)(\/.+)$/) {
  $post_url = $1;
  $post_dir = $2;
} else {
  print STDERR "bad action : $action\n";
  exit 0;
}

# post values
($page, $response, %reply_headers) =
  post_https($post_url,
      443,
      $post_dir,
      make_headers('Authorization' =>
        'Basic ' . MIME::Base64::encode("$user:$pass",'')),
      make_form(
        ipaddress => $valuemap{"ipaddress"},
        nifty_id => $valuemap{"nifty_id"},
        update => $command,
        valid => $valuemap{"valid"}));

print "response = $response\n";

&create_file($htmlfile2);

exit 0;

#### subr

sub create_file($) {
  my $filename = shift;

  open(OUT, ">$filename") or die "cannot create $filename\n";
  binmode OUT;
  $octets = decode("shift-jis", $page);
  $euc = encode("euc-jp", $octets);
  print OUT $euc;
  close OUT;
}

sub get_form_information($) {
  my $tmp = shift;

  if ($status == 0) {
    if ($tmp =~ /^<form/) {
      $status = &found_form($tmp);
    }
    return;
  }

  if ($status == 1) {
    $status = set_value($tmp);
    return;
  }
}

sub found_form {
  my $tmp = shift;

  if ($tmp =~ /action=\"https:\/\/(.+?)\"/) {
    $action = $1;
    return 1;
  }
  print STDERR "cannot set action\n";
  return 0;
}

# map some keys to values
sub set_value {
  my $tmp = shift;

  if ($tmp =~ /javascript/) { # end of form
    $mode_count = 1;
    return 0;
  }

  if ($tmp =~/^<input\s+type=/) {
    if ($tmp =~ /name=\"(.+?)\"\s+value=\"(.*?)\"/) {
      if ($mode_count == 0) {
        $valuemap{$1} = $2;
      }
    }
  }

  return 1;
}

当然動作は保証しないぞ、 というか、本当にこれで動くのか? いやその、 一応、IP設定と、オフラインの設定はテストしたら動いているように見えるけど、 「ようだ」って何。 何かSSL V2 の方のアクセスに時間がかかりすぎているような気がするのだが。 動作内容は極めて簡単なことで、 要するに HTML のデータ受け取って POST するという処理を書いただけ。 で、何度でも言わせてもらうが、 こういうのは利用者に html を解釈するような処理を書かせるのではなくて、 本来、Webサービスとして提供すべき機能なのだ。 と思う。 いや、実際、勝手に解釈しているだけなので、アレなんですけど。

ちなみに、サービスのデザインが変わったらいきなり対応できなくなるので、 そのあたり注意が必要である。 というか、どうやってチェックするか? エラー発生時のログを確認しておくとか、 それこそ定期的にアクセスして、形式が変わっていないかどうか調べてみるとか。

先のコードは、 perl updateip.pl username password command という感じで使います。 パスワードこんな所に書くのはイヤなので、本番までに何か考えることにする。 command は、 newip か、 offline のどちらかを指定する。 perl は、5.8 でないと動かないでしょう、多分。 もっとも、 decode, encode あたりの所をカットすれば、 漢字コードの処理がおかしくなるだけで、 動作上は問題ないかもしれない。 もちろん、 openSSL と、 Net::SSLeay をインストールしておかないと動かない。

ということで、IPが変わったらこれを呼び出すような処理を crontab に突っ込めば、 自動的に IP 変更に対応できるってことになる。

あとは port=80 をあけて、 www.phinloda.com のコンテンツを用意すればいいのだが、 あ、コンテンツ作ってないか。

§

さっきの perl コードでちょっと不審な点の補足。 $page をわざわざファイルに保存してから1行ずつ読み直しているのは、 デバッグ時にファイルを作るようにすれば圧倒的に役に立つから。 本来、ファイルに落とす必要はなくて、 $page を \n か何かで split して処理すれば済む話だ。 頻繁に実行するものでもないし、負荷とかは気にしないのだ。 これが Webコンテンツ絡みの話になってくれば、 毎秒数十回実行されたりする可能性も出てくるので、 悠長なことはしていられないし、 排他制御も必要になってくる。 このコード、数十日に1回程度実行するというつもりで書いているので、 これでいいのだ。

($page) = get_https('www.atnifty.com', 443, '/ddns/p13.php');

「https://」とソレとソレを連結すれば、ダイナミックDNSの設定ページのURLになる。 SSLeay で https を呼び出してページを get する処理はこの1行で済む。 当然、@nifty 以外のその手のサービスを使うのなら、ここを書き直す必要がある。

ユーザー名とパスワードは、@niftyのIDとパスワードを入れる。

§

ポート閉じていたらアレなので、 tomcatのカスタマイズ。 admin とか manager をリモートから操作されたくないので、 ばさっと外す。 example も外したら tomcat が起動しなくなった。 server.xml を編集して、example の定義個所をごっそり削除して解決。 index.html を追加して、 FPROG Home Page に有無を言わさずリダイレクトするように設定。 試したい方は http://www.phinloda.com:8080 をクリックしてみそ。 なお、今のところ tomcat は手動で run させているので、 気が向かない時は応答しないかもしれません。

ここだけの話、 実はindex.jspが残っているので、 直で指定したら例の Tomcat のスタートページが表示されます。 こんなページにあまり来てもらってもログが増えるだけだし無意味なので、 あえてリンクせず。 勝手に来るのは自由ですが、面白くも何ともないと思う。 ただ、自分が使うので重宝しているだけ。

admin とか、直リンクされたらアウトなんだろうか? ユーザー登録してないからいいのか。


2002年12月16日

ルータのルーティング設定を変更して、 外部から Solaris ではなく RedHat を見に行くようにした。 で、AirH" からチェックしようとしたら、こんなのが。 それにしても、これって何?

C:\>nslookup phinloda.com
DNS request timed out.
    timeout was 2 seconds.
*** Can't find server name for address 202.248.37.74: Timed out
DNS request timed out.
    timeout was 2 seconds.
*** Can't find server name for address 202.219.63.253: Timed out
*** Default servers are not available
Server:  UnKnown
Address:  202.248.37.74

DNS request timed out.
    timeout was 2 seconds.
DNS request timed out.
    timeout was 2 seconds.
*** Request to UnKnown timed-out

ポート殆ど開けてない(80とか)し、 開けている 8080 に対応付けてある tomcat が普段動いていないので、 らんだむCGりんくとか、 移転サイトチェックを使いたい人、暫くお待ちください。

§

Windows Update を実行。 当然だが、実行後、Windows Updateがうまく動作しなくなる。 当然なんですよね?

MicroSoft が「MicroSoft を信頼できるサイトから外すように」 と警告しているようだが、 当たり前だろ。 というか、まさか、信頼しているユーザーがいると思っているのだろうか? もちろん「信頼できるサイト」のリストに登録しているユーザーは多数いるのだが、 それは単にクリックする手間を省きたいからだと思う。

多分、 元ネタ 。 これって要するにパッチ当てても無駄って書いてあるように見えるのだが、 とりあえずこだわらない。 だいたい、Windows Update の時以外に IE 使うことないし。多分。 html-help とかで知らないうちに使ってますか。そうですか。

だいたい、3回に2回は Windows Update の最初のハンドシェイクに失敗するというのが謎。 まあ、MicroSoftだから、これでも割といい方なのかもしれない。

§

昨日の perl の 5.6.1 になってしまう件。 要するに、Makefile.PL の先頭行が、

#!/usr/bin/perl

となっていただけの話。

#!/usr/local/AcitevPerl-5.8/bin/perl

にしてあっさり解決。


2002年12月15日

RedHat 7.3 ネタはまだまだ続く。 HDDが増設できたので、Solaris からコピーする。 ということで、nfs を設定しなければならない。

その前にちょっと。 実はこのHDD、 Ultra 160 SCSI対応の、 ロジテックのLHD-U2W36Hというモデルである。
ロジテックダイレクト Logitec Direct からネット購入した。 関係ないが、バナー広告じゃないのでクリックしてもペイバックがないというのが何となくひっかかるが、まあいいや。

カタログには、Windows/Mac対応、となっている。 LINUX対応とは書いてなかったが、 経験的に、こういうのは大抵動くと踏んで、ギャンブルで購入。 実際動いている。

気になるお値段ですが、定価は128,000円とか、その位する。 ただ、旧モデルということで、6月6日に特売を発表。 この時の価格が、39,800円。 いきなり1/4になった。 (※後日注: むしろ1/3 ですね。暗算できないか?) それが、実は12/7に注文した時には、 アウトレットのコーナーで30,000円という値段だった。 これなら何とか買えるということで購入。 というか、外付けの Ultra 160 SCSI って、 このクラスの製品は殆ど売ってないんですよね。 というか、だいたい外付けのpc用SCSI HDDというあたりで選択肢が殆どなくなってしまう。 pc用というと、USBとかIEEE1394とか、 全部そんな感じになっている。 サーバー用のRAIDモデルならあったと思うのだが、 最近は Ultra 320 にシフトしているか。

30,000円、 お得な買い物したと思った人いますか? あんたも甘いよ。 さっき見たら19,800円に値下げされていた。 ロジテック、恐るべし。 でも、動くの確認したらもう一台getする予定だったので、早速…。 まさか HDD をナンピン買いするとは思わなかった。

まだあるみたいなので、Ultra 160 のHDD欲しい人は狙い目かな? それとも、秋葉とか行けば、もっと安くgetできるのだろうか?

§

/etc/exports を編集して次の行を追加。

/usr1 192.168.0.0/24(rw)

0/24 で ok のはずだが、実はもっと絞ってある。 具体的には1つしかアドレス開けてない。 もちろん、設定ファイルを編集しただけでは使えないから、 デーモンにこれを読み直してもらう。

/sbin/service nfs reload

ここまでが LINUX。 次に、クライアントになる Solaris に root で入って、/usr1 を nfs mount する。 とりあえず mkdir /usr1 でディレクトリ作って、 chmod g+s /usr1 。 man nfs_mount で確認して、こうだっけ。

mount -o rw,grpid dellpc:/usr1 /usr1

ipchains とか設定してないような気もしたのだが、特にエラーもなかったので見たら、 ちゃんとマウントされているようだ。

# ls /usr1
lost+found

そういえば、昔は 「LINUXのnfsは使い物にならない」というような話を聞いたような記憶があるのだが、 今はどうなんでしたっけ。 何がどう使えないのか具体的には分からなかったのだが、 速度が出ないとか? やってみれば分かるか。 /usr1/pc のようなディレクトリを作って、 chmod mai /usr1/pc みたいに owner を変えておく。 nfs マウントしたファイルシステムは、 rootで書き込むといろいろと摩訶不思議なことが起こるというのがポイント。 できれば、共通のユーザーIDを使って、そのユーザーが作ったファイルをコピー、 というのが一番問題ない。 Solaris 側のデーターだが、こういうデーターは全部 owner=mai にしてあるので、 問題ないはずである。 ただ、ダウンロードしたデータをうっかりルートで tar xvfp したりしていたら、 permission denied とか出てコピーできないかもしれませんが。

コピーは cpio で実行。 念の為、これは Solaris。 LINUX だとオプションとか違うかも。 確認してないですけど。 tar 使ってコピるという手もあるはずだが、とりあえず cpio。

cd /home2
find . -depth -print | cpio -pdmv /usr1/pc

これは root ではなく一般ユーザー権限 (ここでは mai) で実行。 maiって何? って、単にそういうユーザーがいるだけの話。 アスキーネット知ってる人いますか。いないですか。そうですか。 あるいは二十年前、 下北沢のゲーセンでハイスコアに mai という名前入れる奴いただろ。 知らないか。そりゃそうだ。 ところで私、何歳なんですか?

余談はさておき、 最初うっかりlのオプションを付けて大変な目にあった。 で、様子を見た感じでは、うまくコピーされているような気がする。 何度か、nfs server not responding というメッセージは出ていたようだが。

前にも書いたが、 このコピーは Solaris 側が 10Mbps の 10base-T で繋がっているため、 Ultra 160 の恩恵は全く受けられない。 ということで、速度も測定していない。 コマンド入れて寝る、って感じなのですな、実際に。 で、どうなったか。

solaris% ls -lR | wc
  430196 3656807 29126598
linux% ls -lR | wc
wc: :120863: 無効または不完全なマルチバイトまたはワイド文字です
wc: :120870: 無効または不完全なマルチバイトまたはワイド文字です
wc: :133125: 無効または不完全なマルチバイトまたはワイド文字です
  ..途中略..
133127,134599,134600,134601,134605,134606,134607,134608,134609,134610,134611
134612,134613,134614,134615,134670,134673,138541,138543,140074,140077,145503
145505,146878,146881,152682,152684,154183,154186,156201,156202,156203,156204
156205,156206,156210,156211,156212,156213,156214,156215,156216,156217,156218
156219,156220,156221,156222,156223,156224,156225,156226,156227,156228,156229
156230,156235,158124,162584,162585,162586,162588,162590,162591,162592,162595
162596,162597,162598,162599,162600,162601,162602,162603,170215,170217,170517
173099,173103,173107,173111,173115,173119,173123,173127,173131,173135,173139
176998,177001,182056,182057,183948,186114
  ...

 430196 3656807 28723294

なんだこれ? 行数は合っているようだが。 df -k で容量をチェック。

/dev/sda1             35293512  14492076  19008584  44% /usr1

一部コピーできなかったのだろうか? script取っておけばよかったな。

§

もう一つ大きいのをコピー開始。 見てると結構細かいファイルが大量にある。

§

Net::SSLeay のインストール。

./Makefile.PL -t

を実行したら、こんな感じでメッセージが出るのだが。

$ ./Makefile.PL -t
Checking for OpenSSL-0.9.6g or newer...
You have OpenSSL-0.9.6b installed in /usr
openssl-0.9.6d and earlier versions have security flaws, see advisory at
 www.openssl.org, upgrading to openssl-0.9.6g is recommended.

いいんだろうか? RedHat がリリースしているセキュリティパッチは 0.9.6b のようだが。 まあそれは気にしないとして、もっと気になるのがこれ。

gcc -c -I/usr/include -I/usr/inc32 -fno-strict-aliasing -I/usr/local/include -O -DVERSION=\"1.21\" -DXS_VERSION=\"1.21\" -fPIC -I/usr/lib/perl5/5.6.1/i386-linux/CORE -DPERL5 SSLeay.c

/usr/lib/perl5/5.6.1 を -I している。 しかし、先日インストールした perl は /usr/local/ActivePerl-5.8 に入れたし、 PATH も いきなり /usr/local/ActivePerl-5.8/bin を見るようにしてある。 いいのか? あまりよくないような気がするのだが、 そもそも、なんで -I/usr/lib/perl5/5.6.1/i386-linux/CORE というのがコンパイラに分かるのかが分からん。 これは -I/usr/local/ActivePerl-5.8/lib/5.8.0/i686-linux-thread-multi/CORE となるのが正解だと思うのだが。


2002年12月14日

カウンタが123456だった。

123456

§

てなわけで(なにが?)、 openSSL をインストール。 セキュリティパッチ出てますので、更新ですか。

-rw-rw-r--    1 mai      mai       1410550 12月 14 00:33 openssl-0.9.6b-28.i386.rpm
-rw-rw-r--    1 mai      mai       1401436 12月 14 00:37 openssl-0.9.6b-28.i686.rpm
-rw-rw-r--    1 mai      mai       1220450 12月 14 00:34 openssl-devel-0.9.6b-28.i386.rpm
-rw-rw-r--    1 mai      mai         21642 12月 14 00:34 openssl-perl-0.9.6b-28.i386.rpm
-rw-rw-r--    1 mai      mai        620160 12月 14 00:35 openssl095a-0.9.5a-18.i386.rpm
-rw-rw-r--    1 mai      mai        632646 12月 14 00:38 openssl096-0.9.6-13.i386.rpm

という状態で、

rpm -iv openssl*.rpm

でいいのか? 何か ssh に影響出そうな気もしたけど、こだわらない。

§

SCSI のケーブルが到着。 デジカメで撮影してコネクタの形状を紹介したかったのだが失敗。

SCSI cable

暗くて何が何だか分かりません。 サイズですが、 いわゆるハーフピッチとかハイピッチとか呼ばれている68pinあたりのコネクタの、 さらに半分程度です。 ピンを曲げないように注意深く挿入。

ケーブルを買ったのに随分大きな箱が送られてきた。 前に紹介したように、 確認のメールがASCIIの所しか読めなかったので、 何か間違いがあったかなと一瞬ヒヤっとしたが、 要するにプレゼントでした。 Windows xp のロゴの入ったメモクリップと、 携帯電話用USB充電器、 Adaptec のメモ帳、ペン。 とりあえず好感度upだが、 気を遣う余裕があるのなら、 メールを普通のテキストで送った方がいいと思う。

memo stand
USB cable
memo, pen

接続するドライブ。 Ultra SCSI 160。

HDD

とりあえずpcの電源を落として接続後、 電源を入れて再起動。 途中で何か出てくるかと思ったが、 別に何てこともなく起動した。 ハードウェアブラウザでディスクドライブを見ると、 ちゃんと認識されている。


ということで、ファイルシステムを作ることに。 まず、次のコマンドを実行。

fdisk /dev/sda

ちょっと気になったのは、/dev/sda というのは SCSI ID=0 に対応している。 つまり、これを boot disk にすることも可能だ。 というか、SCSI ID=0 以外だと、後から増設した SCSI ドライブは起動ドライブに指定できない、なんてことがあるかもしれない。 だったら、今回はデータ格納用ということで、IDを0以外にした方がいいのでは?

Solaris の時は、後でIDを変更してもファイルシステムは別に問題なく使えていた。 もちろん、ソフト的な設定変更は必要ですが。

気になったけど、とりあえずそのまま先に進もう。 こんな表示が出ている。

デバイスは正常な DOS 領域テーブルも、Sun, SGI や OSF ディスクラベルも
含んでいません
新たに DOS ディスクラベルを作成します。あなたが書き込みを決定するまで、変更は
メモリ内だけに残します。その後はもちろん以前の内容は修復不可能になります。

このディスクのシリンダ数は 4464 に設定されています。
間違いではないのですが、1024 を超えているため、以下の場合
に問題を生じうる事を確認しましょう:
1) ブート時に実行するソフトウェア (例. バージョンが古い LILO)
2) 別の OS のブートやパーティション作成ソフト
   (例. DOS FDISK, OS/2 FDISK)

コマンド (m でヘルプ):

LINUX系の人なら、これで分かるのだろうか? LINUX小心者なので何か意味わからないんですけど、 とりあえず、p で現状確認。

コマンド (m でヘルプ): p
ディスク /dev/sda: ヘッド 255, セクタ 63, シリンダ 4464
ユニット = シリンダ数 of 16065 * 512 バイト

 デバイス ブート   始点      終点  ブロック   ID  システム

コマンド (m でヘルプ): 

何にもない。当たり前。 n を指定して、領域作成。

コマンド (m でヘルプ): n
コマンドアクション
   e   拡張
   p   基本領域 (1-4)

ここで p を指定。

コマンド (m でヘルプ): p
領域番号 (1-4): 1
最初 シリンダ (1-4464, 初期値 1): 
初期値 1 を使います
終点 シリンダ または +サイズ または +サイズM または +サイズK (1-4464, 初期値 4464): 
初期値 4464 を使います

コマンド (m でヘルプ): 

p でどうなっているか確認

コマンド (m でヘルプ): p
ディスク /dev/sda: ヘッド 255, セクタ 63, シリンダ 4464
ユニット = シリンダ数 of 16065 * 512 バイト

 デバイス ブート   始点      終点  ブロック   ID  システム
/dev/sda1             1      4464  35857048+  83  Linux

コマンド (m でヘルプ): 

okですね。 w を指定して、書き込む。

コマンド (m でヘルプ): w
領域テーブルは交換されました!

ioctl() を呼び出して領域テーブルを再読込みします。
ディスクを同期させます。
#

次は mkfs を実行する。 /sbin/mkfs -t ext3 /dev/sda1 なのだが、 前もってチェックしたサイトのページには ext2 と書いてあった。 ext3 というのは、RedHat 7.2 あたりで追加された新形式らしい。 Webの情報は、ユーザーが実際に行ったという実績的信頼性が高いのだが、 特殊な条件下でないと同じ結果が得られなかったりするのと、 この種の obsolete な情報を最新だと思ってしまうトラブルには気をつけないといけない。

もちろん、このページも同様ですので、念の為。

# /sbin/mkfs -t ext3 /dev/sda1
mke2fs 1.27 (8-Mar-2002)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
4489216 inodes, 8964262 blocks
448213 blocks (5.00%) reserved for the super user
First data block=0
274 block groups
32768 blocks per group, 32768 fragments per group
16384 inodes per group
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
	4096000, 7962624

Writing inode tables: done
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 22 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.
#

mkfs って日本語化されていないですか。 というか、fdisk って日本語化されているんですね、 と思えばびっくり。 それはそうとして、 次は mount point を作成。 mkdir /usr1 。何となく、 chmod g+s /usr1 。 というか、指が勝手に実行したんだけど、 ところで chmod する必要あるのか?

あまり気にせずに、次はラベル付けを。

/sbin/e2label /dev/sda1 /usr1

そして、/etc/fstab の編集。 Solaris だと vfstab かな。 vi で編集してもokだと思うのだが、 RedHat のマニュアルに pico -w /etc/fstab を使えと書いてあったので信じてやってみた。 別にどうってことはないが、vi でやった方が簡単だったかも。 もちろん、(v)fstab 編集の未経験者はマニュアル通りの方がいいでしょう。 いずれにしても、次の1行を追加する。 どこに追加してもいいと思うけど、 常識的に、 別のハードディスクをマウントしているあたりの後の行に入れると分かりやすいか。

LABEL=/usr1		/usr1			ext3	defaults	1 2

最後に mount。 オプションは? 分からんな〜。 とりあえず mount してみよう。 mount /dev/sda1 /usr1 ですか。

# df -k
Filesystem           1k-blocks      Used Available Use% Mounted on
/dev/hda9              1035660    103364    879688  11% /
/dev/hda3               124443      8989    109028   8% /boot
none                    257192         0    257192   0% /dev/shm
/dev/hda7              1035660     33064    949988   4% /tmp
/dev/hda5             19829336   2347080  16474984  13% /usr
/dev/hda6             13274688    612848  11987516   5% /var
/dev/hda2              2071416    830916   1135276  43% /home
/dev/sda1             35293512     32828  33467832   1% /usr1
#

で、うまく認識しているようだ。 ところで、Used 32828 って何だろ? 気にしない。


2002年12月13日

13日の金曜日ではないですか。 そうですか。 結局、

javax.net.ssl.SSLException: SSL V2.0 servers are not supported.

の件、Sunのforum見ても結局未解決ということで、要するに、 JSSE だけでは SSL V2.0 は使えない という、まさに使えないということが分かったような気がしますが。 なんで SSL V2 なんて使ってるんだ > ダイナミックDNS。 ダイナミック DNS が SSL V3 だったら何も問題なく動作していたような気がする。 ちなみに、この種のサイトをNetscape で表示すると、

Webサイト *****.******.**.jp は表示中のページに対して強度の低い暗号化を使用しています。
強度の低い暗号化を使用すると、この情報は非認可のユーザによって見られる可能性があります。

とか脅してくれはりまっせ。 いいのかな。

という訳で、自分で SSL V2 を実装するか、という崖っぷちまで来てしまった。 金を出せばサードパーティのがありそうな気がするのだが、 というか、まてよ、Apache とか V2 も使えるのか? というか、 mozilla ってなんで V2 が使えるんだ、いや使えるのが当たり前か。 OpenSSL 呼び出すような Java のコード書けばいいんですかね。 もしかして、perl の方が楽ですか?

しかし、どうして JSSE は V2 を実装していないのだろうか? V2 を実装する位なら素通ししても同じだ、とか思っているのかも。

§

Etheral の Win版って、ず〜〜っと capture し続けていると w2k 飛びません? いいけど。 それはそうとして、100Mのダムハブって絶滅種?

tcpdump も調べておかないと。


2002年12月12日

3時に寝て6時半起きはキツいなあ。 この時間に出社すると、唯一の楽しみは、 女子高生の登校時間と衝突してコリジョンが多発するということだ【危】。 3時まで何やっていたかというと、ただのJavaですが。

§

ど根性ガエルのDVDボックス、何となく欲しい。

§

Mail ONって、 Netscape 7.0 で使うと文字コードを必ず誤判断して大化けするというのは仕様ですか? それはそうとして、 NTT Communications のサイトを見る時って、 世界中のどこからアクセスしても日本国の法律と東京都の条例に拘束されるらしい。 凄いサイトだ。

そういえば東京都の条例ってどこでアクセスできるのか忘れた。


2002年12月11日

LINUX の pc で java をコンパイルできるように、 パス変更。 いや、パスを追加するスクリプトを作成。

で、ちょっとハマる。 こんなのが出た。

javax.net.ssl.SSLException: SSL V2.0 servers are not supported.

これ結構キツいみたいで、FAQ サイトとか見ても、 レスポンスが0個とか、「私も知りたい」みたいなのばかりだし。 ただし、思考錯誤(ママ)の結果、 Sun のドキュメントに、 JavaTM Secure Socket Extension (JSSE) というのがあって、その中に、

ClientHello メッセージの送信後ソケットが切断される

というのが出ているが、どうも原因はこれらしいという所まで見えてきた。 解決方法も書いてある。

ClientHello メッセージの送信後ソケットが切断される
解決法: SSLSocket.setEnabledProtocols でプロトコルの調整を試みてください。 (略) この場合は、setEnabledProtocols を使って、送信時の SSLv2 の ClientHello パケットへのカプセル化を無効にします。

って、具体的に何をどうすれば動作するのかが全然分からん。


2002年12月10日

nslookup で指定した DNS から情報を get する処理。 Solaris では動いていたのが LINUX で動かない。 例によって怪しいのは firewall の設定。 /etc/services/ipchains に次の行を追加して解決。

-A input -s xxx.yyy.zzz.nnn 53 -d 0/0 -p udp -j ACCEPT

xxx.yyy.zzz.nnn は見に行きたい DNS の IP を直書きしている。 これは一体何なのかというと、 ある DNS が reachable かどうかを監視したいので、 わざわざそこを見に行くという話。 で、unreachable になっていたら担当者に「落ちてないか?」と連絡するわけです。 ところで、

# nslookup www.****.** ***.***.***.**
Note:  nslookup is deprecated and may be removed from future releases.
Consider using the `dig' or `host' programs instead.  Run nslookup with
the `-sil[ent]' option to prevent this message from appearing.
Server:         ***.***.***.**
Address:        ***.***.***.**#53

Name:   ***.****.jp
Address: ***.**.***.***

みたいな表示が出ているのだが(* は伏字)、 nslookup ってなくなるんですか。

§

密かに注文していた外付HDDが到着。 こうやってpcのコストが跳ね上がっていくのだ。 世の中厳しい。 で、とりあえず Ultra 160 の 38GB でしたっけ、 そのあたりの HDD をget。 しかしケーブルが…。

以前見つけていたサイトのネットショップで、 定価が1万ン千円みたいなケーブルがあったのだが、 何かあるだろと信じて探しまくったら意外と簡単に見つかったのが、 ECバイヤーズ というサイトで、 ACK-68V-68HD-LVD-2M-ICE とか、 ACK-68V-68HD-LVD-6M-U320 というのがいけそうな気がする。 この6Mというのが\11,500と出ているのだが、 2Mのものがあってオープンプライス。 これの半額程度だったから、早速注文してみた。 だいたい、新宿ヨドバシとか行ってもなかったんですよ、確か。 SCSI外付けという時点で既にアウトだし。

で、注文ありがとうというメールが早速届いたのだが、 これがやられたというか、 おもいっきりMIMEされていて、@nifty で全然見えない。 んがー。 デコーダーはないのか。 って、何か昔作ったような気がするのだが。 というか、 寄せては返す波のように 何度も作ってはまた作って、という作業を繰り返したような青春の記憶があるのだが、 また作るというのはパスするとして、 多分、ASCII で読める所から想像する【笑】と、

=1B$B>&IJL>=1B(B =1B$B!'=1B(BACK-68V-68HD-LVD-2M-U320

多分これが型番、多分というが、絶対間違いない。

=1B$B9g7W=1B(B =1B$B!'=1B(B\6,069

うーむ、端数が怪しい。 つまり、税込み\6,069だな。 割と重要な情報は分かるものだ。 しかし、ちょっと分からないのがこれ。

=1B$B<uIUF|=1B(B =1B$B!'=1B(B2002/12/11

受注日か発送予定日か、どちらかだと思うのだが、 どっちだろ?

今時、@niftyのttyでメール受ける方がrareだと思うけど、 何となく、利用者を失っているような気がしないでもない。 このモール。 単にテキストで送れば済む話なんですけどね。


2002年12月09日

errata をもう少し真面目にチェック。 /root/install.log の内容と RedHat の提供している errata を比較すればいいはずなのだが、それって具体的にはどうするのだろう? まさか、 全部目視チェック?

crontab の 5 分おき設定にルーターの設定チェック処理を追加。 最近のルーターはipが変わったらメールしてくれるような機能を持っているのもあるらしいが、 私のにはそんな機能ないので、syslogを見て確認している、というのを4月頃に書いた。 その話。

httpd を起動。 これは最初から入っているのだが、 ポートと document root を指定して、 group=apache を含むユーザーを作ってそれで起動しようとしたらダメ。 何か最初に root じゃないと書けない所に書きに行ってますが、 ってことは、必ず root で起動しないとダメなんか。

§

St. Andrews のロードバンカーが改造されて、 壁の高さが50cm低くなったというのだが、 最近のイギリスは、伝統を軽視するようになったか。

難しすぎるので簡単にしたそうですが、 あれって難しいのでしたっけ。 後ろに出して次でグリーンに乗せればいいと思っていたのだが、 そんな簡単な話じゃないのか。

§

LINUX の話。 うっかりというか、my knowledge database のネタデータを /home に入れてしまった。 デフォルトのパーティションだが、

Filesystem1k-blocksMounted on
/dev/hda519829336/usr
/dev/hda613274688/var
/dev/hda22071416/home

という感じなので、/home が最初から少なく設定されているのだ。 ということで、var に移動したのだが、ここでふと疑問が。 こういうデータは本来どこに入れるのが正しいのだろうか?

いや、もちろん HDD 追加して /database に mount しろ、 というのは分かってますけれども。


2002年12月08日

crontab で指定したプログラムが思った通りに動かない件。

Can't fix broken locale name "ja_JP.eucJP=".

というエラーが出ていることがわかった。 で、起動するスクリプトを調べてみたら、

setenv LANG=ja_JP.eucJP

とかいう。んがー。

setenv LANG ja_JP.eucJP

に修正して解決。 つまり、環境変数 LANG がないので発狂していた、というだけの話ですな。

§

ftp の話。ipchains を停止したら実行できることが分かった。 ということは、firewall だけの問題か。 iptable にリプレースするという案も浮上中。

要するに fpt の passive mode を RIMNET がサポートしていないので、 active mode で通信しないといけないのだが、 そうすると firewall でひっかかるという話。 Linux IPCHAINS-HOWTO というドキュメントの、 FTP Nightmares という所に書いてある。 ポート1024以上を開けると解決するのだが、 それってちょっと何というかアレですね。 とりあえず、RIMNET だけ指定して 1024 以上のポートを開けてみたので、 暫定的に解決。

§

4月の日記に書いたように、syslog にルータの出力を追加する処理が必要になる。 同じように書けばいいのか? とりあえず、最後に追加してみた。

/sbin/service syslog restart

§

Solaris で perl 5.8 をインストール。 su で root になって、csh を実行後、 次のように path をセットしてから make install。

set path=(/usr/local/bin /opt/sfw/bin /usr/bin /usr/ccs/bin /usr/sbin /usr/ucb)

§

also herehttp://www007.upp.so-net.ne.jp/phinloda/ に移転しました。 でも更地。 10MBまで無料になったらしいので、 ここが一杯になったら凍結してそっちに移動すればいいか。


2002年12月07日

240MB程度のファイルを Solaris pc から LINUX pc に転送したら戻ってこない。 ちょっと考えてみると、 Solaris が 10Mbps で繋がっているのだから、 大雑把に考えて 1MB/s 出るとしても、240MBだと240秒、 ってことは3分かかるのか。

ってことは、80GBだと、80000MB だとして、80000秒? ってことは 22時間かかるの? そんなものか。 仮に10MB/s 出るとしても、2〜3時間。 いや、22時間と2時間って大分違うか。

§

Red Hat LINUX 7.3。 RIMNET に ftp 転送できない。 関係ないが、man ftp を実行すると、

/usr/share/groff/1.17.2/tmac/docj.tmac:57: can't find macro file `mdoc/common'
/usr/share/groff/1.17.2/tmac/docj.tmac:58: can't find macro file `mdoc/syms'
:128: warning: numeric expression expected (got `F')
:977: warning: numeric expression expected (got `F')
troff: automatically ending diversion `eB' on exit

とか出ている。何でしょね。

で、RIMNETのftpがPassive modeに対応していない、 というのが原因らしい。 これはちょっと大変なことで、 ftp が使えないと Solaris を止めて LINUX に移行することができなくなる。

しかし、PASV にした覚えはないのだが。

§

cron 不調。 動くには動いているのだが、 手動で起動したら問題ない perl script が、 cron から起動すると動作していないように見える。


2002年12月06日

Perl は結局 5.8.0 をインストール。 これが結構諸悪の根源というか、 例えば Windows でこれをインストールしたら mknmz が動かなくなったりするかも。

Linux でのインストール先は、 /usr/local/ActivePerl-5.8/bin/perl となった。

§

namazu のインストール。 って、RedHat 7.3 には最初から入っているのだが、 Perl をつい 5.8 にしてしまったので、 とりあえず make しようと思ったわけだが。 普通に ./configure しようとしたら、File-MMagic がないというので怒られる。 で、まず File-MMagic を作る。

% cd File-MMagic
% perl Makefile.PL
% make
% su
# make install

後は make して、make install で ok。

§

NKF.pm を作る。

mkdir …/nkf192
cp nkf192.shar …/nkf192
cd nkf192
sh nkf192.shar

で、失敗。NKFがないといわれる。 mkdir NKF をしてから sh nkf192.shar を実行すればok。 Makefile の PERL = perl5 という所を PERL = perl に変更してから、 で、make してから、 cd NKF で、もう一度 make。 su - root で make install。

§

crontab を作成しようとしたら。

bash: ./hour.csh: /bin/csh: bad interpreter: Permission denied

単に hogehoge.csh に x の permission がなかっただけ。


2002年12月05日

ssh の設定。というか、既に動いている。 VAIOからアクセスできるように鍵を用意すればいいはず。 ssh-keygen を実行。-t を指定しろと怒られる。

[mai@dns mai]$ ssh-keygen -t rsa1
Generating public/private rsa1 key pair.
Enter file in which to save the key (/home/mai/.ssh/identity):
Created directory '/home/mai/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/mai/.ssh/identity.
Your public key has been saved in /home/mai/.ssh/identity.pub.
The key fingerprint is:
**:**:**:**:**:**:**:**:**:**:**:**:**:**:**:** mai@dns.***.***
[mai@dns mai]$ cp identity.pub authorized_keys

で、identity を VAIO にコピーして、ssh でログインできるようになった。 telnet が不要になるはずなので、firewall を修正して telnet のポートを閉じる。

su - root

/etc/sysconfig/ipchains を編集し、 port=23 の行を削除。

service ipchains restart

で更新。 telnet で接続できないことを確認。

という処理をうっかり telnet で入ってやってしまったのだが、 restartしても、 既に張られているconnectionは切れないのか。

ついでに telnet のサービスを disable にしておく。 /etc/xinetd.d/telnetdisable = yes となるように変更して、 service xinetd restart 。 そういえば 2002-12-02付で、xinetd のセキュリティパッチが出ている ので、 RedHat のサイトから 7.3 用のupdateをgetして、

rpm -Fvh xinetd-2.3.7-4.7x.i386.rpm

を実行。

service xinetd restart

でいいのか。

眠いので今日はここまで。というか今日は始まったばかりだが。 何か生活時間帯が壊れている。

§

で、後から気付いたのだが、 外からアクセスする時って Solaris を経由して LINUX に入るので、 Solaris に identity がないと LINUX に入れないぞ。

ssh1 -i identity.dellpc -l mai dellpc

みたいなことをするのだが。

§

さて、perl。 Solaris では jperl が結構使われているのでややこしい。 LINUX に標準で入っていたのは perl 5.6.1 で、jperl は存在しない。 ということで、スクリプトをいくつか LINUX に移行するためには、 perl 5.00x に相当するバージョンの jperlをインストールする必要がある。

かなと思ったのだが、実は perl 5.8.0 という、 日本語がきっちり使えるバージョンが既に出ているので、これを使うことにした。 まず Solaris で実験。

sh configure -de

を実行して、暫しの間ボケーと見ているといい。 実はボケーだとダメですけど。 多分、200MHz Pentium の Solaris でもスクロールが速くて読めないのだから、 1.7G では全然読めないだろう。 段階的にCPU速度を上げている人は、 忍者の修行と同じで、読めるのかもしれない。 昔、パソコン通信というものがあって(今もあるのか)、 300bpsだとか2400bpsという速度でテキストデータをやりとりしたものだが、 300bpsだと誰でも読める速度、 2400bpsというのは、慣れると普通に読める速度だ。 これが9600bpsになった頃から怪しくて、 かなり熟練しないと目で追いつくことができない。 14400bps を超えるとだんだん忍者の領域に近くなってくる。

ちなみに、インストールする時とか、script かけとけばいい。 とか書いているうちに

Now you must run make.

とか出てしまった。 ありゃりゃ、gmake を指定するのを忘れたぞ。 configure の時に -DMAKE=gmake とかするのだっけ? まあいいか、試しに make だとどうなるのかやってみよう。 ここで時間を測定すれば気が利いていたのだが、測るのを忘れた。 200Mと1.7Gでどの程度違うのかとか、気になりますよね。 ならないですか。 そうですか。 まあ、 暇があったら後でやってみよう。 とりあえず、無事、

Type 'make test'to run test suite.

と出たので、make test を実行。

t/op/mkdir .. FAILED at test 3

とか出ているけど気にしない【マジ】。

§

ところで、LINUX 版は tar.gz が ActiveState で公開されているので、 コンパイルをサボってこれを入れてみることにした。 gzip -d で展開して tar を展開すると、install.sh というのがあったので、 とりあえず root になって ./install.sh とかいう。 で、後は全部 default ということで Enter だけ押したら何となくうまく行った?

    Please modify your startup environment by adding:

        /usr/local/ActivePerl-5.8/bin to PATH
        /usr/local/ActivePerl-5.8/man to MANPATH

というので、~/.bash_profile を見ると、

PATH=$PATH:$HOME/bin

となっているので、

PerlDir=/usr/local/ActivePerl-5.8

PATH=$PerlDir/bin:$PATH:$HOME/bin
MANPATH=$PerlDir/man

と変更すればいいのか?

[mai@dns mai]$ perl -v

This is perl, v5.8.0 built for i686-linux-thread-multi

2002年12月04日

tomcatの続き。 よく見ると tomcat4-admin-webapps-4.1.12-full.2jpp.noarch.rpmtomcat4-webapps-4.1.12-full.2jpp.noarch.rpm をインストールしないとダメなのでは。 と勝手に想像して、

rpm -i tomcat4-*-webapps*

を実行、あっ -v 忘れた、というのは既に遅い。 ところが、状況変わらず。 /var/tomcat4/webapps を見たら、

admin.xml  manager.xml

となっていて、何か増えているが、うーむ、分からん。

ということで、訳わかんないので、 jakarta-tomcat-4.1.12.tar.gz をgetして、開いてみると、webapps の下には、

ROOT  admin.xml  examples  manager.xml  tomcat-docs  webdav

となっている。 ROOTがあるなぁ。 試しにこのまま /var/tomcat4 にコピーして動かしてみると? 動くか。

何かわからないが動いたから吉。 permission とか、これでいいんか?


2002年12月03日

で、動かないsambaの続き。接続しようとすると、次のようなメッセージが出る。

次のエラーが発生したため、ネットワーク ドライブを割り当てることができませんでした。
そのアカウントは、このワークステーションからのログインを許可されていません。

で、何か結局分からないのだが、swatでGLOBALSのsecurity を SHARE にして、 encrypt passwords は yes に変更。 パスワードを登録したら解決。

§

という訳でダウンロードしたjavaをインストール。 ダウンロードした J2SE 1.4.1 を chmod a+x で実行できるようにしておく。

-rwxrwxr-x    1 mai      mai      40663612 11月 30 03:58 j2sdk-1_4_1_01-linux-i586-rpm.bin

で、実行するとライセンスとか表示されるので、 よく読んで yesと入力すれば、.rpm のファイルが生成されるので、

rpm -iv j2sdk-*rpm

とかやってインストール。 成功すれば、/usr/java にディレクトリが出来ている。

§

で、tomcatのインストールは。

Preparing packages for installation...
tomcat4-4.1.12-full.2jpp

Don't forget to setup vars in /etc/tomcat4/tomcat4.conf to
adapt the RPM to your configuration.
Also edit/create /etc/java/java.conf to define your default JDK

For security purposes, tomcat4 service is installed
but not activated by default.
use your service installer for such purposes
ie: ntsysv

かと表示されている。 ntsysv って何だろ? で、調べてみた。成程。 で、アレなんですけど、man ntsysv すると、 simple interface for configuring runlevels って書いてあるのだが、ntsysv って文字列はどこから出てきたんでしょうか?

って FAQ かな。 とりあえず走らせてみると、

[root@dns root]# tomcat4 run
Using CATALINA_BASE:   /var/tomcat4
Using CATALINA_HOME:   /var/tomcat4
Using CATALINA_TMPDIR: /var/tomcat4/temp
Using JAVA_HOME:       /usr/java/j2sdk1.4.1_01
2002/12/03 3:36:34 org.apache.commons.modeler.Registry loadRegistry
情報: Loading registry information
2002/12/03 3:36:34 org.apache.commons.modeler.Registry getRegistry
情報: Creating new Registry instance
2002/12/03 3:36:35 org.apache.commons.modeler.Registry getServer
情報: Creating MBeanServer
2002/12/03 3:36:37 org.apache.coyote.http11.Http11Protocol init
情報: Initializing Coyote HTTP/1.1 on port 8080
サービス Tomcat-Standalone を起動します
Apache Tomcat/4.1
java.lang.IllegalArgumentException: ドキュメントベース /var/tomcat4/webapps/examples が存在しない,または読めないディレクトリです

(以下略)

で、確かに /var/tomcat4/webapps/examples は存在していない。 今日はここまで。

§

で、買ったデジカメだが、SONYのp9。 もう少しバッテリーが持ってくれたらいいような気もするが、 1時間でも十分か。いや、60分【寒】。 で、渋谷で撮ってみたのがこれ。 サイズは縦横1/4にしてある。previewはさらに1/4。 元のデータサイズは1,856,853バイトで、そんなのここに登録したらパンクする。

渋谷

@nifty、割り当てサイズって 10Mでしたっけ、既に 7,680,283 バイトも使ってるぞ。 今時、例えば isweb でも 50MBとか使えるのだが、 @homepage ってセコいというか、 5MB追加で+200円らしい。 そういうビジネスだと言ってしまえばそれまでだが、 何も自宅に外からアクセスできるサーバーがあって、HDDが30GBほど余っているのに、 200円払って5MB追加するというのが何というか、アレですね。 そのうち、過去ログは別サイト、みたいな感じになるのだろうか。 画像はpreview以外の自宅のサーバーというのがアリかもしれない。 そのためには固定IPをgetするか、あるいはvirtual DNS みたいなの使う必要がありそうだが。

§

CQAに来た問題。何かの課題らしい。

0以上の整数x,yを入力させ、その和x+yを関数で計算し出力するプログラムを作成せよ。 なお、和を計算する関数plus(x,y)はint型で定義し再帰呼び出しで和を計算すること。 また、関数内では+,-は使用しないこととする。

で、回答。

【A】C言語の関数定義は簡単です。int 型の関数 plus は、

int plus(int x, int y)
{
    (ここに処理の内容を書く)

    return 戻り値;
}

のように書きます。

また、再帰呼び出しというのは、 このように定義した関数 plus の中から自分自身、 すなわちここでは関数 plus を呼び出すことを意味します。 plus の中で plus を呼び出すと、 さらにその呼び出した plus の中から plus を呼び出して…という繰り返しになり、 いつまでたっても終わらないような気がするかもしれませんが、 再帰呼び出しを使う場合は、 常に plus を呼び出すのではなく、ある条件に達したら呼び出さないようにすることで、 有限回で処理を完了させることができます。

ということは、大雑把なイメージとしては、 次のような感じの関数を作ることになります。 但し、??? の部分にどのような処理が入るのか考える必要がありますが。

int plus(int x, int y)
{
    ...
    ??? = plus(???, ???);
    ...

    return 戻り値;
}

後は、問題文の条件に合うようなアルゴリズムを考えて、 C言語で実装すればいいことになります。

ところで、C言語を使うのであれば「+」という演算子を使えば加算は実現できますから、 わざわざ plus という関数を作成する意味がありません。 また、仮に作成するにしても、

int plus(int x, int y)
{
    return x + y;
}

とすればいいだけなので、 再帰呼び出しを使うとか、 関数内で「+」「-」を使わないで実装するという条件は、 C言語の仕様とは関係ない、いわば単なるパズルに過ぎない話と思われます。 ということは、本人が解決しないとネタばらしになってしまうと思われますので、 とりあえず回答は省略させていただきます。

で、 まさか

int plus(int x, int y) {
    return !x ? y :
           !y ? x :
           (plus(x & 1 && y & 1, plus(x >> 1, y >> 1)) << 1) |
           ((x & 1) ^ (y & 1));
}

とかいう関数作れという話でもないと思うが、 この課題、一体何をさせたいのだろうか?


2002年12月02日

福岡市の小学校に 「国を愛する心情」「日本人としての自覚」 という評価項目があるというので話題になっているそうだが、 この項目、具体的にどういう態度によって採点されるのか知りたい。 外国人に強制するのが問題というのだが、 そういうのは「国」とか「日本」をその人の国に置き換えればいいだけの話。 分からないのは、何をもって「日本人としての自覚」とみなすかという所だ。 例えばこんなのか?

§

で、SCSIのケーブルの話。 1万円以上するとかいう噂で、マジで参ったものだが、 39160って結構高いんですね、知らなかった。 もしかして、所謂「外部ストレージ」を使うようなボードなのか? 無知って怖い。 とにかく自宅で使うので、最大の選択要因は音なんですよ。 音が静かでないと、他がどうであれ却下ということになってしまう。 マシンルーム作っちゃうという案もないわけではないが。 Before-Afterに申し込むには予算が足りなすぎ。

マシンルームをアジトに、ってのも面白いかもしれませんけど。 Bフレッツを使えば、アジトとオフィスが100Mで繋がるから、 速度的には隣にマシン置いてあるのとあまり変わらないだろ。 ただ、多分、アジトの場所ってBフレッツ対象外なんだよな。

余談はいいとして、今週末までにいくつかソフトを移行しないとヤバい感じになってきた。 そのためにすべきことはというと、 ssh、samba、apache、tomcatを動かすこと。 namazu も必要かもしれない。 そして、必要なデータをコピーする。

ん、それだけか? 意外と少ないような…。 もちろん、tomcat ということは java が動く環境にするということで、 その裏にいろいろ必要なものがある訳だが。


2002年12月01日

telnetが使えたので、リモートからtelnetで入って samba を設定してみることに。 はて、どこをあければいいのか? この付近かな。

portprotcol
137tcpNETBIOS Name Service
137udpNETBIOS Name Service
138tcpNETBIOS Datagram Service
138udpNETBIOS Datagram Service
139tcpNETBIOS Session Service
139udpNETBIOS Session Service
901tcpswat

ipchains をコマンドラインから使うにはどうするか。 で、Webで ipchains>samba で検索して、 何と書いてあるか見ると。

Security Level を No firewall にセットする

と書いてありました。

…なんやそれ?

まーそりゃ簡単でいいというか、 ルーターでパケットのフィルタリングしているのに何故firewallを重ねるのかという話はあるかもしれない。 合理的に考えるのなら、 ルーターから入って来る可能性のあるパケットだけチェックすればいいわけです。 ただ、あえてルーターから入ってくるように設定してあるパケットを、 外部から見せるために配置するサーバーで firewall で reject するという使い方は有りえるのか? とか考えると firewall を使わないというのは意外と正解なのかも。

で、気を取り直して 他のページを見ると、 日本sambaユーザー会のサイトの中がヒットした。 まず lokkit を使えと。 で、139/tcp、138/udp、137/udp をスルーさせるといいらしい。 ってことは 139/udp とかは不要? 後で試してみよう。 あと、swat を使うのなら 901/tcp もスルーさせること。これは基本なのでok。 ところで lokkit 使えない場合はどうする?

日本sambaユーザー会のサイト談。 /etc/sysconfig/ipchains を直接変更すればいい。 ええ、私もそれでいいような気がしました。 ただ、このファイルの先頭に、

Manual customization of this file is not recommended.

と書いてあるのがすごく気になるのだが。 まあとりあえず lokkit でポートを追加したら、 /etc/sysconfig/ipchains には次のような行が追加されていた。

-A input -s 0/0 -d 0/0 139 -p tcp -y -j ACCEPT
-A input -s 0/0 -d 0/0 138 -p udp   -j ACCEPT
-A input -s 0/0 -d 0/0 137 -p udp   -j ACCEPT
-A input -s 0/0 -d 0/0 901 -p tcp -y -j ACCEPT

これは当方が予期していた結果と一致するので、多分これでいいのだろう。 で、swat を起動しようとすると、connection refused になってしまう。 先ほどのページを見ると、 /etc/xinetd.d/swat を編集しろと書いてある。 で、それを見ようとしたら、 /etc/xinetd.d/swat というファイル自体が存在しない。 swat ってインストールされてないんですか? samba は入っているようなのだが。

§

で、ちょっと気味が悪いので、やっぱりローカル以外は reject するように変更。

  1. /etc/sysconfig/ipchains を手で変更する。 具体的には、ローカルからのみアクセス許可する所に対して、 -s 0/0 となっている個所を -s 192.168.0.0/24 に変更した。
  2. service ipchains restart を実行。
  3. /sbin/ipchains -L で変更されていることを確認。

という感じの手順。

§

top で見ると、 何か実メモリがいつも99%程度使われているのだが、 これってそういうものなんでしょうか? Solaris のを見ると、

Memory: 128M real, 35M free, 91M swap in use, 511M swap free

という感じなのだが、LINUX の方は、

Mem: 514388K av, 501168K used, 13220K free, 0K shrd, 68496K buff

とか出ている。 何か見方間違ってるのか?

§

で、sambaがまだ動かない。これが動かないとどうも困るのだが、 と思って RedHatのサイト を見たら、samba のエラッタ( samba(RHSA-2002-266J)) が出ていたから、 最新版をgetした。 エラータか? まあいいや。 ちなみに、転送速度ですが、約30KB/s 程度しか出ない。 こんなものか、というより、どこかでトラフィック制限かけてるような雰囲気がひしひしと。 Bフレッツにしてから「おお」と思ったのって1度だけだな。1MB/s 程度でしたけど。

で、VAIOでgetしてからハタと気付いたのだが、 このファイル、どうやって LINUX にコピーするのだっけ。 そりゃsamba で接続してcopyですか。 あかんがな。 バケツに穴やがな。 ということで、LINUXからダウンロードやり直し。 もっとも、VAIOでtomcat起動できるので、 LINUXからhttpでVAIOをアクセスしてダウンロード、 という感じでVAIOからコピーするという比較的簡単な手はあるのだが。

で、samba関係の最新のrpmをget。 swatは入ってなかったので、 rpm -i samba-swat* だっけ、そんな感じで入れておいた。 他は rpm -Fvh samba* で更新。

で、swat 動くか。 動くには動いたが、VAIOからだと拒絶されている。 xinetd.d の swat を編集して、 only_from 127.0.0.1 の行の下に、 only_from 192.168.0.0 を追加。 これでとりあえず swat を VAIO から表示させることに成功。

で、samba がこれで使えるかと思ったら、まだダメ。 w2k から接続しようとすると、既に指定してあるのに、 パスワードを聞いてくる。 これはもしかして、例の encrypted password 系の症状か、 ということで、swat の設定で encrypt を no にした。 これで、パスワードは通ったのだが、 今度は connection refused ということで、何ですか、分かりません。 今日はここまで。


(C) 2003 Phinloda, all rights reserved

RIMNET: phinloda@st.rim.or.jp