Program Note

Java(サーブレット,JSPなど),Linuxその他のメモ書きです。
まとまった情報ではないので、何かお探しの方はSearchで検索することをおすすめします。

2002年3月3日 17:38:05

[php]バージョンの確認方法

/usr/local/binの中にphp-configというファイルがあるので、
php-config --version
でphpのバージョンが確認できる。

2002年3月1日 22:17:41

[analog]OSリポートが出ない理由判明?

どうも、古いバージョンのanalog.cfgファイルを使ってたのが問題だったみたいです。
たぶん、バージョンが変わって設定も変わったのでしょう。
新しいバージョンのcfgファイルに必要な記述をして、問題なく動くようになりました。

[Linux]ProFTPDをinetd経由で動かす

今まで、inetd.confの記述が間違ってたんだろうなー。
http://www.itboost.co.jp/inst/inst_12.php

[Linux]Unknown serviceと出てinetd経由で起動しない

/etc/servicesの中からサービス名が探せないとこのエラーが出る。また、inetd経由の起動の場合、ここに指定してあるポートでサービスが起動するみたい

2002年2月27日 0:26:06

[HTML]一部のリンクの色だけ変更したい

ビルダーを使って作業していたら、一部のリンクの色だけ変えたくなった。
よくよく考えたら、そんなの今までやったことなくて、その文字だけ選んでカラーパレットで色を変えたが変わらない。
http://www.wakusei.ne.jp/ushikai/web/web08.htm#101
↑結構、有名な「牛飼い」の部屋ですね。Googleで探して、名前見つけたので飛んだら、ばっちり。
ちゃんとFONT指定でできるみたいですね。文字の選択方法が駄目だったみたいです。

2002年2月23日 13:34:59

[Java]JDK1.4

とうとう出ました。
http://java.sun.com/j2se/1.4/ja/index.html
Web Startも標準搭載で、今までのWeb Startはアンインストールしないと、インストールに失敗するみたいです。JDKはちゃんと入るけどね。

2002年2月23日 2:54:17

[analog]不正なログ?

どうやら、OSリポートなどが出なかったのは、access_logの一行目が指定した形式で出力されていないからのようだ。
でも、Referとか無いと後の情報は何もついてこないので、指定した形式に合わないことも多々あるハズなんだけど・・・。
とりあえず、一行目を削除してログは出るようになりました。

2002年2月22日 0:34:10

[linux]めっきり調子悪し

どうも、最近いろいろとサーバーに不可解な現象が起きている。
メールは安定しているんだか、安定していないんだかよく分からない状態。
analogもOSとかブラウザの種類とかが集計されなくなってしまった。
いっそのことログを全部削除してみたが、状況は変わらないように思う。
最近、トラブル続きでちょっとやな感じですね。

2002年2月21日 1:02:23

[qmail]やたらと応答が遅くなった

今日、いきなりメールが送れなくなった。qmailの設定をa-tak.comに切り替えてからである。切り替えてすぐの時は問題なく送れていたので、何が原因か探したところ、以下のページを見つけた
http://www.ez-net.ne.jp/index.asp?content=%2Fspecial%2Ftrouble%2Fserver%2Fsmtp%2Easp
miniDNSのMXレコードの設定がまずかったのかなぁ?
いつのまにやらスピードが速くなりました。原因不明です。

[qmail]Sorry, no mailbox here by that nameのエラー

どうも、今までメールが動いていたのは偶然のような気がしてきた・・・
送信はできるようになったが、自分宛のメールが届かない。
いくつか変更したが、qmailを再起動しないと変更が反映しないのを知らずに作業していたため、どれが原因だったのかこれまた、不明。
悲しいことだ(T_T)
ともかく、今後の為に何をやったかを書いておく。

■netconfで基本ホスト名に「ホスト名.a-tak.com」を指定した→今までlinuxとかいう適当な名前でした。
■上にともなって、/var/qmail/control/meファイルも「ホスト名.a-tak.com」に変更
■miniDNSのMXレコード登録も「ホスト名.a-tak.com」を登録
■localsファイルの削除
http://www.cla.kobe-u.ac.jp/Jouhou/96/miyake/sotsuron/10syou.htm(localsファイルの説明)
バーチャルドメインを使っているので、ローカル宛に普通に送っても届かないのかなと思い、localsファイルを削除。
このファイルに登録してあるドメインはローカルの物だと認識するため、これを消せば他の外部メールと同じように扱われるだろうと言う予測。
他にもいろいろ設定は変えているが、もう覚えていない(T_T)

qmailに関しては、ホントLinux Worldそのまんま設定したという感じなので、細かいところが分かってません。
まあ、なんにせよ/controlディレクトリ内が一番のポイントのようです(今日、初めて知ったんだけど)

2002年2月19日 22:14:23

[qmail]リファレンスのページ

日本語のリファレンスページを発見。なかなか良いです。そんなユーザーいません返信のドメイン名がdynodns.netのままだったんで、どこで変えるかここで調べました。
/var/qmail/control/defaultdomain
に指定するみたい。
http://www.big.or.jp/~mio/ca/qm/index.html

2002年2月18日 22:12:15

[Java]正規表現ができる

最近、正式公開されたJDK1.4では、正規表現のためのAPIが用意されたらしい。
これを使えば、BBSの書き込みにURLがある場合に、自動的にリンクに置き換えたりとか簡単にできるかも。
http://www.atmarkit.co.jp/fjava/rensai/jsp2_03/jsp2_03_3.html

2002年2月16日 14:00:36

[Linux]cronの設定2

/etc/cron.dailyや/etc/cron.houlyに入っているスクリプトは/etc/crontabファイルに実行時間が指定されている。
ファイルの中身はここと同じ

2002年2月14日 21:44:53

[qmail]転送されない

別ユーザーに転送する設定をしても転送されてこない場合、だいたい設定を間違えている。
/home/vpopmail/domains/a-tak.com/foo/Maildir/
頭に&はつけず、最後の/も忘れないように

2002年2月10日 10:50:14

[Java]JARファイルの作り方

http://cafe.justsystem.co.jp/Tips/javaapp/helloworldicojar/index.html
たぶん、配布するときは使うことになるだろうと思うのでメモ・・・

独自ドメインでダイナミックDNS

今はこんな便利なのがあるんですな
http://www.minidns.net/index.php
これなら、固定IPなくても、ドメイン取って安心だ。
というわけで、取りますa-tak.com。
DNSサーバー立てないと、www.a-tak.comにはできないんだっけな?

[Java]JTableの使い方

まったくもってサーバーサイドではお目にかからない、swing関連の情報を最近探しまくり。
この休み中にと思ったけど、GUIやイベント関連のことは知らなくてはいけないことが多くて、ちょっと無理かもという感じが(笑)
http://www.atmarkit.co.jp/fjava/rensai/java03/java03_01.html
↑ここにJTableの使い方が載っている。
APIドキュメントで情報はだいたい探せるようになったけど、サンプルが無いのはつらいね(APIドキュメントだもんね)。
Visual Studioが恵まれすぎなのだろうな。
TableModelが必要なのはAPIドキュメントで分かってはいたが、継承して実装するという使い方とは思わなんだ。

2002年2月4日 0:49:50

[Jamchi]進捗~♪

最近、進捗が遅かったけど、今日だいぶやったので50%はできたかなー。
とりあえず、フィルタリングデータを管理するFilterDataクラスは完成。動作確認もOK。
今、一定時間ごとに、今まで作ったクラスを呼び出して、メールチェックをさせる部分を作成中。
初のスレッドを使ったプログラムですが、とりあえず動作確認はOK。後は、フィルター後のデータを実際にユーザーに通知させる部分を作る。
あと、プログラム埋め込みだったりするメールサーバーの情報をファイルに保管するようにしないといけないし、その設定画面も必要だ。
とりあえず、通知画面を作ってから、アプリとして必要な機能を付け加えていく予定。

2002年2月2日 19:17:37

[Linux]必要な情報だけログから抽出する(grepの使い方)

たとえば、messageログの中からsmtpdに関する情報だけ表示したいときは
grep 'smtpd' /var/log/messages | less
とすれば、lessでsmtpdの文字列がある行だけ表示される。
grep '検索文字列" ファイル名
という指定をする。
逆にsmtpdに関する情報を除外したい場合は
grep -v 'smtpd' /var/log/messages | less
-vオプションをつける。

(2002.2.10追記)
「.(ドット)」や「\」は特殊な意味で使われるので、検索文字列に使うときは前に「\」をつける必要がある。

2002年2月1日 1:26:57

[Jamchi/XML]ちょっと使いたいかも

例のメールチェッカー「Jamchi」のフィルタリングのリストの保存形式をXMLで持たせた方が楽かも、と思ったので、勉強中。
http://www.atmarkit.co.jp/fxml/
andとかorでいくつも条件を並べるような事ができるようにすると、カンマ区切り形式だと横にずらずらと長くなってしまう。
可変長で、階層でandを表現すれば、いい感じなので、使ってみようかなと思ってる。
でも、ちょっと心配があるのが、
・XMLパーサーなんて使ったら重くなるんじゃ、メールチェッカーなのに←javaにした時点で既にアウト?(笑)
・データは階層だけど、メモリに取り込んだら、結局煩雑なのはいっしょかも←DOMの方使うと解決なのか?

[Java/XML]xercesのサンプルがうごかん!!

ここの記事通りにインストールして、サンプルを動かそうとするが、いきなりクラスがみつからんとかなんとかでエラー。
-classpathでjavaコマンドに教えてあげてるのになー。環境変数のclasspathにサンプルのjarのパスも与えることでなんとか回避。でも、なぜ?

[Jamchi]進行度合い

ちょっと、他の仕事もやったりなんかしてたので、進捗遅し。
35%といったところか?
現在、フィルタリング情報をファイルから読み込み、メモリに格納したところまで終了。たぶん・・・。
メモリに取り込んだデータを順次読み込み、MailDataクラスから受け取ったデータと照合する部分を作成中。
Enumerationを使いまくり。
これって便利だなぁ。
デザインパターンで言う「Iterator」というパターンを実現してくれるものみたいなんだが、これ使うとうまいことメソッドやクラスの切り分けができるような感じ。

[Java]interfaceをインプリメントしてメソッドを作ったらエラーが出た

interfaceを作成して、それをインプリメントしてメソッドを実装したところ、以下のようなエラーが出た場合。
Methods can't be overridden to be more private. Method void pM() is public in interface Refuelable.

JBuilderだとこんなエラー
"InterfaceTraining.java": エラー #: 459 : method pM() クラス Q は method pM() インターフェース P を弱い結合権限で実装することはできません(public) 行 32, 列 1

これは、クラスで実装したメソッドがpublicになっていないために発生する。詳しくは↓
http://java-house.jp/ml/archive/j-h-b/001275.html#body

ポイントは
・interfaceで定義したメソッドはすべて暗黙的にpublic宣言になっている
・実装するクラスの方もそれに合わせてpublicにしなくてはいけない 二つ目のポイントはクラスを継承した場合でも同じエラーになる(スーパークラスのメソッドがpublicでサブクラスがpublicじゃない場合)

[Java]Java Web Start

開発者用のページ↓

http://java.sun.com/products/javawebstart/ja/developers_ja.html
ここも為になるよん↓
http://javawebstart.s5.xrea.com/

[Jamchi]フィルタリング機能の仕様変更

ちょっとフィルタリング機能の仕様を変える。
元々の考えでは、単一の条件で通知するかしないかを判断させるつもりだったが、複数の条件をAnd,Orでつなげられるようにしようかと考え中。

[YahooBB]モデムのファームウェアアップ

またもやウィルスバスターのファイアウォールにひっかかる(^_^)
どうしてもモデムが検出されないので、おかしいと思っていたら、ログが出てる・・・。
FW止めたらうまくアップできました。

[Linux]IMAP before SMTP

http://www.atmarkit.co.jp/flinux/rensai/qmail02/qmail02b.html


2002年1月22日 20:08:02

[Java]お勉強タイム 継承とコンストラクタ

こういう基礎知識を知らずとも、とりあえず組めちゃう今の情報化社会に乾杯(笑)

継承によって作られたクラスのコンストラクタは、スーパークラスの引数無しのコンストラクタを勝手に呼び出す。
スーパークラスにさらにスーパークラスがあれば、そのコンストラクタも呼び出す。
そうやって、初期化処理が次々と行われる。

明示的にコンストラクタを指定することも可能。
super(a, b);
とかやれば、引数ありのコンストラクタを呼び出せる。

superの代わりにthisを使うと、同じクラスの引数違いのコンストラクタを呼び出す。
また、superかthisはコンストラクタの一番最初に書く必要があり、どちらか片方しか指定できない。

・・・という感じで「Java独習」も継承まで読み進めました。やっと本全体の半分ぐらいかな(^_^)

[Java]メソッドのオーバーライド(ポリモーフィズム)

■スーパークラスとサブクラスと参照

まず、スーパークラスはそれを継承して作られたサブクラスのオブジェクトを参照できる。
普通オブジェクト(インスタンス)を作成したい場合、
MyClass mc = new MyClass();
なんてやりますが、もしMyClassが、
class MyClass extends SuperMyClass {
・・・
}
と定義してあるならば、
SuperMyClass smc = new MyClass();
もOK。

■オーバーライド

MyClassにcalc()というメソッドが定義されているとします。もし、SuperMyClassにもcalc()というメソッドがある場合は、SuperClassMyClassのcalc()は見えなくなります。これをオーバーライドっていいます。

では、次にSuperMyClassを継承して作成したYourClassがあるとします。これにもcalc()メソッドがありオーバーライドされています。
MyClassのcalcメソッドは値を二倍にして、Aという変数にコピーする機能を持っていて、YourClassのcalcメソッドは値を二で割って、変数Aにコピーする機能が実装されているとしましょう。

SuperMyClass smc;
とオブジェクトを参照する変数を定義して、
smc.calc();
という形でcalcメソッドを実行するという処理を行う場合。
smcがどんなオブジェクトを参照しているかで動きが変わってくるのです。

SuperMyClass smc;
smc = new MyClass();
smc.calc();
とすれば、変数Aの値は二倍になるし、

SuperMyClass smc;
smc = new YourClass();
smc.calc();
とすれば、値は二で割った数値になるでしょう。

同じ名前のメソッドを使っても、まったく違う動きをさせることができる。
こんな感じでポリモーフィズムが実現されるわけやね。
Microsoft Wordのコピー&貼り付けが、こんな感じじゃなかろうか。
文字列をコピーするとき、画像をコピーするときは、内部の処理はだいぶ違うが、使う側はただ「コピー」を実行するだけでよい。

ちなみに、VBには継承はないけど、どんなオブジェクトも入れられるVariant型というのがあるので、同じような事ができたような気がするけど、よく調べてないので違うかも。


2002年1月20日 9:52:00

[Jamchi]進捗

例のメールチェッカー「Jamchi」。完成度は30%といったところか。
今週で終わらせる予定だったけど、いろいろあって作業できませんでした。

メールデータを保持・出力するMailDataクラスはテストしてもうまく動いている。
今はフィルタリングリストを管理するFilterDataクラスを作成中。
まともにやったことがないファイルの読み書きが入るので、お勉強しながら(^_^)
次はこのクラスが受け取ったメールデータをフィルタリングリストと照合して結果を返す所を作る。
ここができれば、裏方のシステムは、ほぼ完成。

この後はまったく未知の領域の画面周りに入る(笑)
スレッドなんかもどうやら絡みそうなので、いろいろ調べないといけないかも。

今のところ、我ながらソースも綺麗にまとまってて良い感じではある。

[Java]メソッドのスコープ

基本中の基本。すぐ忘れてしまうのでまとめ。

public  他のクラスからアクセス可
private  同じクラスからアクセス可
なにもつけない 同じパッケージ内からアクセス可(これをよく忘れる)

[Linux]errors occured while rotatingというメールが大量に届く

logrotateコマンドが出しているエラー。
ログファイルの分割を行ってくれる命令で、そのファイルが無かったりすると送りつけられる(笑)
うちは、htmlaccess.logが毎日送られてきたので、apacheの設定を疑ったが、このログはlinuxconfが生成する物らしい。
とりあえず、ファイルだけ空の物を用意しておき、エラーを出さなくした。
logrotate.dの中のlinuxconfをviで開いて、編集しても良い(このスクリプト自体別の場所に移動しても良い)