題名:Java Diary-50章

五郎の入り口に戻る

日付:2004/8/17

目次に戻る


サイトの引っ越しとそれに伴うあれこれの事-Part2

さて、Rubyでプログラムを書こうと決めるとさっそく会社の本棚からRubyの本を持ってくる。えーっとファイルを読み込むのはこうするのか、でもって文字列から特定のパターンを探すのは、、ちょっととっつきにくい書き方だけどこれは便利かもしれん。でもってファイルに書き出すのはこうか、と何カ所かチェックするとごりごり書き出す。誰かが作ってくれた便利なスクリプトも最大限に利用するから、私がやることは前述のいくつかの処理だけのはずだった。

何度かの失敗のあげくローカル環境-つまりパソコンの上-では動くようになった。次にはサーバー側に転送して試してみる。以前も経験したことだが、この「サーバー側で実行」というのはなかなか面倒だ。どんなエラーが起こったのかよくわからないからである。途中経過を書き出すのも簡単にはいかない。

それでも少なくとも数度はログの余分な箇所を除き、私が読みやすいフォーマットに整形するところまでは動いたのである。そして人間の願望というのは限りがないもので、メールで受け取る容量を減らしたいから、もうちょっと出力を簡単にできないか、と思ったところで問題が起こった。

実はパソコン上で動作させているときも、何度か直面していた問題だったのである。本に書いてある通りファイルを一行ずつ読み込む処理を書いたつもりなのに、一行ではなくファイル全体を読み込んでしまう。あれこれやったあげく、

「これは改行コードが異なるのがいけないのだ」

と原因を決めつける。

何度覚えてもどれがどれか忘れるのだが、「一行」というのを区切る方法というのは人間の目には同じに見えてもコンピューター上ではそのOSによって異なる。CRのみ、LFのみ、CR+LFとかなんとかあったはずだ。サーバーはUNIX,ローカルで試験しているのはWindowsかMacだからきっとそれが違うのがいけないんだ、と思い試験用のログファイルはわざわざ改行コードを変更していたのである。

それがサーバーで動かそうとした途端、何をやってもうまく動作しなくなった。何度動かしてみても

Internal Server Error

という文字が帰ってくるだけである。サーバーはUNIXのはずだから、改行コードが異なっているせいでは、、と推測したわけだがいかんせん靴を三重重ねにはいた上から書いているようなもので、サーバーの上ではデバッグもままらない。

しばらく修正、サーバーに転送、エラーという動作を繰り返したあげく、私はかんしゃくをおこした。ええい、もうサーバー上で何か動かすのはやめだ。そもそもアクセスログなどそんなにしょっちゅう見る必要はない。メールで送るとたとえば通信回線が細い環境で見るときに何かと苦労する。ここはFTPでまとめてダウンロードし、ローカル環境でゆっくり解析することにしよう。

そう思い立つとあれこれやりだす。そうきめてしまえばRubyを新たに覚える必要はない。使い慣れたJavaで十分だ。さて、FTPってどうやるんだっけ。以前GBputを作ったときに使ったライブラリを掲載していたサイトは行方不明になっている。しかし調べればJavaの機能にちゃんとFTPがあるではないか。これでいこう、とサンプルを使ってあれこれやり出すがなにかと面倒。やっぱりもう少し簡単に使えるようにしたライブラリはないかしら、、ということで別のFTPライブラリを探し使い出す。どうやらうまく動いているようだ。

次にやることは画面その他を作ること。Pure Javaの環境で作ろうかとも思ったが、またあの恐ろしいJavaでの部品配置をやるのもいやだ。ここはしばらく遠ざかっていたCocoa+Javaでやろう。以前作ったアクセス解析プログラムに機能を付加すればいいや。

そう考えてごそごそやりだすが、自分でも何をしているのかよくわからない。元々がいくつかのプログラムを切って貼ったようなものだし、おまけに解析対象のログフォーマットが何度か変わっている物だから妙な関数が一杯存在している。まあ、とりあえずここにFTPを放り込んで、、とやりだす。しかしそのうち妙な事に気がついた。画面上にある部品-たとえばボタン-を押しても全く反応しないのだ。

これはどうしたことか。あれこれやってみるが全く反応しない。デバッグしようにもデバッガを立ち上げると開発ツールごとお亡くなりになる。うーん、やっぱりJava環境に戻ろうかなあ、でもあの配置はいやだし、、ともんもんとやっているうち、一つの可能性に思い当たる。ひょっとすると開発ツールが新しいOSに対応していないのではなかろうか。そう考えるとAppleのサイトに行き、アップデータをダウンロードする。それが効いたのかそうでないのかはわからないが、とりあえずボタンは反応しだした。

それとともに、元あったプログラムを変更するのはやめ、全部造りなおすことにした。どうもそのほうがよさそうだ。プログラムの中で何をやっているのか自分でも分からなくなっているし、そもそもそんなに難しいことをしているわけではない。そう考えごりごり書き直す。そうしていると

「ああ、Rubyのあの機能は便利だったな」

と思うこともある。今まで正規表現というのは「なんだかよくわかんないし」ということで敬遠していたのだが、確かによく考えられており便利だ。Javaでも1.4から正規表現を扱えるようになったのだが、なぜだか今の環境で使おうとすると

Security Exception

とかなんとかいうエラーがでるのである。

さて、必要なコードだけを書いていくとプログラムはとても短く簡単になる。画面も「こんな機能いるかしら」と思い造りはしたが使わないものを取り除き簡単になる。実はこのとき「会社にいる時間外」に作らなくてはならないプログラムが山積していた状態なのだが、それから逃避するためにもこの新しいログ解析プログラム-LogAnalyzerの製作に邁進する。

そこそこ動くようになったところでふと我に返る。まだサイトの本格的な引っ越しは一月先だ。それからotsubo.infoだけに移行するのはもう少し先。ということは今作っているプログラムはあと数ヶ月動かなくても全く問題ないものではないか。私は何をやっているのだ。

というわけでLogAnalyzerの作成を一段落させた私は本来やるべきプログラム作成に戻っていくのだが、今回のごたごたで生じたNifty離れの気持ちは加速していた。sakura でメールアドレスがたくさん造れるのだからメールもそちらに移行してしまってはどうか。実は来年4月から転居することが予定されており、そこでは共同で光ファイバーが使えることになっていたのである。そうすればもうNiftyとは完全におさらば。あの必要な情報がどこに書いてあるか異常に見つけにくく、かつレスポンスの悪いnifty.comと格闘する必要も、5MBのディスクスペースに年2400円などという値段に驚愕する必要もない。元々は転居後もNiftyを使い続けるつもりだったのだが、サイトの引っ越しを強制されるなら、から始まってとうとうNifty脱会にまで話が進んだか。

こちらも数日考え、新しくotsub.infoに設定したメールアドレスの試験を行った後思い切った。とはいっても「メールアドレス変えました」と告知する相手って少ないなあ。私って知り合い少ないのだ、ということを今更のように思い知らされる。まあ前のアドレスが不達になっても私の名前を知ってさえいれば、サイトからメールを送ってもらえるし。

というわけで話は元に戻る。あれこれのプログラム作成だ。

前の章 | 次の章


注釈