« 2004年08月 | メイン | 2004年10月 »
infoseekでA3スポーツバック
2004年09月29日

明日のお天気が心配で、infoseekを訪ねてみたら...

いや~ん、とってもとっても気になってるA3スポーツバックの宣伝が.....

「いまどきの宣伝ってすごいのね。
私がAudiのサイトでA3スポーツバックを眺めてよだれをたらしているの、よくわかったわねぇ~。感心、感心。」
っと思ったのでした(笑)。

天気もそっちのけで、audiのサイトにイってしまった私でした。
気持ちはすっかりA3スポーツバックへ移りかけたころ....

「しかし待てよ。
amazonじゃあるまいし、ただのinfoseekがどーやって私が訪れているサイトまでチェックしてるっていうワケ?
も、もしかしてツールバーがスパイウエア??(んなぁワケあるまい....)」

っという疑問がフツフツとわいてきたのでありました。

とりあえずはクッキーを疑い、普段デスクトップとしてはつかっていないGnome上のMozillaからinfoseekへアクセスしてみました。(わたしって疑り深い性格だわ。)

yahoo_a3_s.png

なんのことはない、誰が訪問してもA3スポーツバックの宣伝が表示されているんだ....。

#でも、明日には変わってしまうかもしれないので、キャプチャしておきました。

すごいな、スポーツバック。まだ売ってもいないくせに宣伝ばっかしないでよ!!

資料請求だってとっくのとうにしたのに、「まだありません」ってメールしか来ていないし(悲っ)

もちろん、DVDだって送られてきていないわよっ!ぷりぷり。

しっかしなぁ~。この宣伝につられて資料請求したら本当に資料来るの?本当に....
資料が用意ができたから大々的に宣伝しているのかしら??

こないだタイヤ交換のときに、営業さんつかまえて「DVD来たらくださいね!」ってお願いしたんだけれど、まだな~んも連絡ないし。

うーみゅ。
私、やる気まんまんなんですけれど、なんだかさびしい....(笑)。

ひとつ気になること。
やっぱり、エンジンスタートはボタンなのかな?

おっといけない、明日の天気を調べるのを忘れていました....笑。

投稿者 megu : 23:44 | コメント (2)

バリゴ社の温湿度計

サイドバーをハロウィンにしようと思って、プーさんを撮影していて、ふと思い出した温度計の存在。

こだわって、こだわって...やっと見つけて伊東屋で購入したのでした。(輸入住宅つながりのお友達に教えてもらって、すごーく欲しくなってしまったんです。)
手に入れたときのヨロコビといったら....!!

今ではネットショップもいっぱいあって、入手しやすくなっているようです:-)

私の「モノに対するこだわり」なんてたいしたことないかもしれないけれど、
お鍋(←ぜったいにル・クルーゼ...今度エントリーしますね!)と、この温度計にはこだわっています!


性能もさることながら、インテリアを損なうことのない温度計なんて、なかなかないですもの。


バリゴ社の温湿度計です。
barigo_s.jpg

このきれいなデザインは、見せるために作られたものではなくて、良いものを作った結果だと思うのです。
機能美なのでしょう....う~ん、すばらしい。

Audi Avantは世界一美しいワゴンだと思うけれど、生まれが同じドイツということで通じるところがあるかも??

上段が気圧
中段が温度(摂氏)
下段が湿度

今朝、写真を撮ったとき、
気圧1021hpa、気温24.0度、湿度68%を指しています。

我が家に温度計は必須です。
全館空調システムなので、必要ないのかと思ったら、かえって気になってしまって...。
家の中の温度は一定といっても、どこにセンサーがあるのか?
設定温度ぴったりになっているわけではないようです。

引っ越してきた当初は、室内の気温が気になって、あちこちに温度計を置いたものですが、
「インテリア的に気に入らな~い!」ものばかり。
ほかのものは早々と撤収してしまいました。

さて.....気圧は何の参考にしていいかわからないけれど、今朝の気温は少し低め、湿度は高めかしら?
#エアコンの設定温度を変えたほうがいいのかも?

こだわりのモノ....これから、また少しずつ紹介できたらと思います:-)

投稿者 megu : 12:43 | コメント (7)

Namazuによる全文検索導入
今日、とあるところででちょっとした検索をするという話がでました。
Namazuを使うというので、ためしに使ってみようかと突如思いつきました(笑)。

遠い昔にインストールしたような記憶があるのだけれど...すっかり忘れています。
つい2ヶ月ほど前に起動不可能になって立ち上げなおした、このサーバーには入っていない...

..のはずが...
/usr/bin下に、namazuとmknmzが存在。ついでにkakasiもいました。

$ which namazu
/usr/bin/namazu
$ which mknmz
/usr/bin/mknmz
$ which kakasi
/usr/bin/kakasi

#インストール時にNamazuを選択した記憶も、その後インストールした記憶もないのだけれど?

mknmzコマンドでblogのアーカイブ以下のインデックスを作って、namazuコマンドで検索してみて、今更ながら感激。

mknmzの結果↓
インデックスを書き出しています...
[基本]
日付:                Tue Sep 28 22:27:40 2004
追加された文書の数:  89
サイズ (bytes):      1,728,459
合計の文書数:        89
追加キーワード数:    10,693
合計キーワード数:    10,693
わかち書き:          module_kakasi -ieuc -oeuc -w
経過時間 (秒):       74
ファイル/秒:         1.20
システム:            linux
Perl:                5.008001
Namazu:              2.0.12

さて、昨日のエントリの玄関ドア。キーワード"玄関ドア"で検索してみます。


$ namazu "玄関ドア" ./

検索結果

参考ヒット数:  {  [ 玄関: 4 ]  [ ドア: 8 ]  :: 4 }

検索式にマッチする 4 個の文書が見つかりました。

1. megu's blog: 2004年09月 アーカイブ (スコア: 11)
著者: 不明
日付: Tue, 28 Sep 2004 01:58:49
megu's blog なにがなんだかわからないまま自宅サーバーにMTをいれてしまいました。こ
れからどーなるか...? « 2004年08月 | メイン 玄関ドア 2004ॲ
0;09月28日 我が
/home/blog/public_html/archives/2004/09/index.html (109,226 bytes)

---- (中略)----

現在のリスト: 1 - 4

ありゃりゃん、htmlに対して検索かけてるから余計なものまでくっついて来ちゃいました(笑)。
まぁいっか。

「さぁ!Webから検索しなくっちゃ...(ついでにmt-search.cgiとの比較も...うっしっし)」

なぁんて思いながらnamazu.cgiを探すも...

『ない、ないっ、ない~っ!!』

ルートディレクトリ(/)から下全部、findかけたけれど見つかりませんでした。とほほ。

#なんだ、がっかり。

すでに入っていたnamazuのバージョンは、Namazu 2.0.12。
Namazuのサイトでは、2.0.13が公開されているので、どーせだから新たにインストールすることにしました。


(インストール手順のメモ)

(1)Namazuのサイトから2.0.12をダウンロード
$ wget http://www.namazu.org/stable/namazu-2.0.13-1.tar.gz

(2)解凍します。
$ tar xvfz namazu-2.0.13-1.tar.gz

(3)
$cd namazu-2.0.13
$./configure

っとやってみたら
configure: error: you need to install the included File-MMagic first
    The simplest way to install File-MMagic is:

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

     Then, simply run configure again.
      % cd ..
      % ./configure

だって~~~!!

...ここは素直に従います。

(4)File-MMagicをインストール
やり方は、上記./configure時に言われたとおりです。


(5)再度namazuのmakeにチャレンジ
$ ./configure
$ gmake
※ここに「make には GNU make の使用を推奨します。」と書いてあるので、GNU makeを使用しました。

(6)rootになってインストール
# gmake install

(7)確かめてみる。
$ which namazu
/usr/local/bin/namazu
$ namazu -v
namazu of Namazu 2.0.13

(8)namazu.cgiをblogサイトへコピーしてくる。
$ cp /usr/local/libexec/namazu.cgi .

(9).namazurcの設置
$ cp /usr/local/etc/namazu/namazurc-sample .namazurc
$ vi .namazurc
 ・Indexを編集
    Index         /home/blog/hogehogenamazu ←索引を作成したディレクトリ
 ・Replace文を編集
    Replace  /home/blog/public_html/   http://blog.kiyo.com/
 ・Lang jaのコメントをはずす
 ・ContentTypeを編集
    ContentType     "text/html; charset=euc-jp"

(10)テンプレートの編集
/usr/local/share/namazu/templateの下に各種テンプレートがあります。
今回は、ほぼそのまんま...NMZ.foot.jaのメールアドレスだけ修正してみました。

(11)新しいmknmzで索引の作り直し。
ところが、下記のようなエラーになります。
Run mknmz with the environment variable PERL_HASH_SEED=0

PERL_HASH_SEED環境変数を0にセットするようにして、再度トライしました。
 $ vi .bash_profile
export  PERL_HASH_SEED=0
 $ source .bash_profile
 $ mknmz ~/public_html/archives


やっと、やっと....検索できるようになりました。

もう夜中じゃないの~!

サイドバーに、Namazuによる検索も追加しましたので、試してみてみてくださいねっ!

っとここまで書いて試してみたら、日本語(UTF-8)が化ける事に気付きました(泣)。
インデックスはEUCで作成されているのですが..(システムの環境変数とシームレスだから)
blogサイトがutf-8で書かれているので、そのままPOSTするとEUCに変換されずに、検索処理に入ってしまうようです。

さて、どうしよう...
そこで「Javascriptで、文字コードの変換はできないかな?」っとサーチしたところ、
複数の文字コードをformからCGIへ送信する方法を発見。

一筋縄ではいかなかったけれど、無理やりどうにかこうにか設置にこぎつけたのでした。
『Submit直前にcharasetを変更するなんて...』
下記のようなスクリプトを仕込みました。

これは、上記のサイトを見るとわかるのですが、もうどうしようもなくて....
別Windowを開くことになってしまいました。え~ん、IEめっ....!!

function submitNamazu(){
	document.charset='EUC-JP';
	swin=window.open("","swin","");
	namazuform.target="swin";
	namazuform.submit(); 
	swin.focus();
	document.charset='UTF-8';
}

ところがどっこい、fireFoxを含めてMozillaで調べてみると、このスクリプトが思惑通り動いてくれていない様子...
#出てきた画面がまっしろけ

でも、IE以外では、Accept-charsetが使えるようなので、ここはuserAgentでも調べて分岐させるのがいいのでしょうか....。
結局、nabigator.appNameからブラウザを判断、IEの場合のみ別Windowで対処することにしました。
(Namazu検索のForm生成部分)
<form method="get" name="namazuform" action="/namazu.cgi" Accept-charset="euc-jp">
<a href="http://www.namazu.org">Namazu</a>による検索<br />
    <input type="text" name="query" size="20">
    <script type="text/javascript">
    <!--
    if( navigator.appName.indexOf("Microsoft") != -1 ) {
        document.write('<input type="button" onClick="submitNamazu();return;"value="検索" />
            ※Windowが開きます。');
    }else{
        document.write('<input type="submit" value="検索" />');
    }
    // -->
    </script>
</form>

(感想)
今回はなんだか「やりなおし」が多かったです。
File-MMagicをインストールにしても、PERL_HASH_SEED環境変数にしても...

しかもまた文字コードで困るの図....(って、いつも同じじゃん!)

投稿者 megu : 01:44 | コメント (5)

玄関ドア
2004年09月28日

我が家の玄関ドアは木製です。

耐久性のことなど考えるとちょっと....なのですが、
デザインにひとめぼれしてしまったのと、なんともいえない趣があるのと、なんといっても「家の外観にあうのはこれしかない!」という思い込みであこがれのノードのマンチェスター(木製の両開きドア)にしました。

とてもとても重たいドアです。

そして5年が経ち....

最近、その重さに耐えかねてきたのか?
ちょうつがいのところが緩んできてしまって、だんだん下がってきてしまいました(泣)

娘が1年生になって、自分でドアを開け閉めする機会も増えてきました。

小さな体で「よいしょ、よいしょ」と開けたり閉めたり。
見ていてもかわいそう....。
最新のドアなら、こんなことはないでしょうね。

「修理をお願いしなくちゃ」
と思いつつ、なかなか重たい腰をあげられなかったのです。

だって、面倒なんですもん~<こらっ。

今日やっと、やっと、、、ハウスメーカーのカスタマーセンターに電話しました。
今度みにきてくださるそうです。
ちょっと面倒くさいけれど、我慢しよう。
修理が終わったら明るい未来が開けてくる(本当かしら?)

しかし....うちにはまだひとつ、修理を頼まなくてはならないものがあります。
...それは食器洗い機。
下段しか洗えなくなっているので、食器を下の段だけに納める技術が身についてしまいました(笑)。
でも、それでは根本的な解決にはなっていません。

でも、この状態ですでに1年以上我慢している私って.....。

#こんなヤツもいると、笑ってやってください。

投稿者 megu : 01:39 | コメント (0)

コメントの投稿時のHTTP_REFERERチェックをはずしました

ちょっと考えさせられることがあって、コメント投稿時のHTTP_REFERERのチェックをやめました。

#コメントスパムは別の手を使ってくるのがわかったし。

エラーになって投稿できなかった方、本当にごめんなさい。

ただ...まだコメントスパマー用のスクリプトは入れてあるのです。
入力の途中でIPアドレスを変えたりしない限り大丈夫とは思うのですが....。

もし、それでも駄目な場合は....掲示板を設けましたので(左にリンクがあります)、こちらのほうへよろしくお願いいたします。

投稿者 megu : 01:19 | コメント (0)

Struts1.2.4のサンプル
2004年09月27日

Struts1.2.4のValidateのサンプルですが、日本語も表示されて(Japaneseをクリックしてくださいね)、データ型チェックフォームでも、日付は日本の標準書式yyyy/mm/ddでチェックされるのだけれど.....(すばらしいっ!!)

ただ...肝心の日本語の入力が駄目なんです(泣)。

#たとえば名前欄に「めぐ」と入力すると一発でノックアウトです~。

まだ、素のままじゃ使えないかな?
どこかでエンコーディングを指定してあげて、正しくユニコード化してあげないと駄目かな。


あと、Struts1.2.2 and Tomcat5.5.0 上で発生していた、

>jspで余計なパッケージのimport文があると、
>「生成されたサーブレットのエラーです:
>The import java.sql is never used」 ←(例)
>なぁんてエラーになってしまいます。

という件については、Tomcat5.5.2になってから治っているようです。

投稿者 megu : 12:29 | コメント (7)

サイドバーを動的にincludeしてみた
2004年09月26日

この週末も雨....

子供たちの勉強につきあいながら、問題のjspのボタン部分のタグの日本語表示ことでも調べようかと思っていたのだけれど(だってStruts1.2.4のサンプルがうまく動いてるんですぅ~)、挫折。
#だって、「さて、やろう」とすると、娘が「みてみて」攻撃してくるんですもん....泣。(←人のせいにしてはイケマセン)

でも、その代わりといっちゃぁ何ですが、個別アーカイブや月別の表示にもサイドバーを設けるようにしました。
「はっ」と、とある方法がひらめいたので....笑。

といっても、たいした方法ではありません。(ぶたないでね~)

例のコメントスパム撃退法と同じで、思いついたことをやっちゃっただけでベストな方法ではないはず。

phpを使ってサイドバーのコンテンツをincludeしちゃえばいいんですけれど、そこは意地でもphpを使っていない私としては(動くのに...笑)、apacheにお願いしちゃうことにしました。

#include virtualを使います。

(1)メインインデックスのテンプレートからサイドバーの部分を切り離して、sidebar.htmlを作って
(2)↓みたいな感じで各テンプレート(メイン、個別、月別、カテゴリー別各アーカイブ)にincludeしちゃいました。
<!--#include virtual="/sidebar.html" -->

表示するときちょっぴり時間がかかるような気がする...(笑)。
そりゃ、最初から固定で作られているよりはかかるのアタリマエだけれど。
ちょっと気になる速さではある...。

(追記)
さて、sidabar.htmlはインクルードされるわけなので、「自分自身の位置」が変わるわけであります。
当然『相対パス』で指定されていたファイルは、各アーカイブから参照された場合、index.htmにいた今までとは場所が異なるので、NOT FOUNDになってしまいます。

「そんなこと、あったりまえじゃない~。わっはっは!」
っと言いたいところが、チェックが甘かったためいくつか取り残しがありました。

っというワケで、sidebarのテンプレートを修正したのですが、修正後、構築しなければならないのは、sidebar.htmlのみであります。

いくつものファイルを再構築しなおす必要はないのです。
ココがポイント。
ココが今回の改修の目的なのでありました。(本当か?まだまだコンテンツ少ないくせに...笑)

投稿者 megu : 18:33 | コメント (0)

新しいタイヤになって来ました!
2004年09月23日

お墓参りから帰ってきてから、タイヤを新しいのに交換していただいてきました。

パンクしたのは前輪左側と後輪右側でしたが、前の2輪を新しいものにしていただきました。
(そのほうがいいとのアドバイスがあったので。)

すったもんだあった覚えのないパンク修理の件、結局なにもわからなかったのですが、サービスしてくださいました。今回の新しいタイヤの代金や工賃、一切請求されなかったのです。

かえって悪いなぁって気持ちがむくむくとわいてきました。
『工賃くらいはまけてくれるかな』と甘い期待は抱いていたのですが(笑)。

新しいタイヤをつけていただいて、「どうもありがとうございました。」と送り出されて、変な詮索した私がいけなかったなと再び反省。
でも、うれしかったです!!うれしかった!!
まだまだこれからも頼りにしちゃいます。

#でも....次の定期点検(1年点検)まではサービスのお世話にならずにすみますように....。

今日はとても混んでいました。
商談用のテーブルも足りないくらい....
#待っているあいだ、テーブルひとつ占有してしまうのがなんだか申し訳なかったです~。

先週の土曜日も混んでいました。
新しいA6があるせいか、アイ,ロボットのせいか?はわからないけれど、このところ週末にディーラーへ行くとすごい混みようです。

#売れてるのかなぁ??

でもいいと思いますよ!このお店で買って、それで正解っ!って思いました。

投稿者 megu : 21:26 | コメント (2)

コメントスパムのログ
2004年09月22日

コメントスパムのログへのリンクをサイドバーに設けました。

#これでチェックしやすくなります。
それと、ブラックリストの登録のお役に立てれば....

最近のは、一回Postして上手くいかなかったのであきらめた様子です。

でも、IPアドレスは同じ(どちらも66.135.34.87)なので、
「どこのサイトは駄目だった」
などのメモは取っていないようですね。

いい加減破られてしまうかな?と思っていたけれど、
この方法、まだ大丈夫みたいです!!

投稿者 megu : 12:55 | コメント (4)

キアゲハが羽化しました

kiageha.jpg

子供たちが大切に育てていたキアゲハの幼虫が、今朝、羽化していました。
「みて!みて!!」

朝呼ばれていくと、かわいいちょうちょが....。

いや~ん、かわいい。目がくりくり。
羽もとてもきれいです。

実はゆうべ、息子が
「このさなぎ、もう死んじゃってるかもよ。だって、ここの色変だもん。」
って言ってたんです。

でも違ったんですね。羽化する前って色が変わるのかしら?

---
初夏にパセリの苗を植えて、「キアゲハが来るといいね!」と話していたですが、
そのあと期待にこたえて幼虫が数匹、生まれたのですが、せっかく育った幼虫は
いつのまにか姿を消していました。

すっかりあきらめていた頃、8月も終わりになって、また幼虫をたくさん発見!
キアゲハがひらひら飛んでいるのを見かけたので、卵を産み付けてくれたのでしょうか?

その後は、黒くて小さな幼虫が毎日毎日たくさん生まれて大変でした。

2つ植えたパセリの苗は結構大きく育っていたのに、あっというまにはげ坊主(笑)。

大きくそだった幼虫のうち、一匹がパセリを離れて冒険しようとしていたところをつかまえました。
そして息子の虫カゴに入れて観察していたら、その日の晩にさなぎになったのです。

それをきっかけに、息子は大きくなった幼虫をつかまえてはわりばしを立てた虫カゴにいれて
観察していました。

結局さなぎは6つ....。

そのうちのひとつが今日はじめて羽化したのです。

虫なんて大っきらいだった私も、これをきっかけにキアゲハの幼虫だけはイケるようになりました(笑)。

まだ羽化したばかりのちょうちょはおとなしかったです。
息子がさわると「ビクっ」として、羽を広げていましたが...(←そんなことしちゃだめですって~~)

この蝶は幼虫の頃からおとなしい子でした。
ほかの活発な幼虫においかけまわされてもじーっとしていました。
こんな小さな生き物にだって性格ってあるんですよね~(笑)

「なにもない家の中じゃかわいそう..」.と思って、
わりばしごと庭に出してやることにしました。

kiageha2.jpg


でも、あいかわらずじーっとしているんです。

もしかしたら、もう少し家の中で様子をみてあげたほうがよかったのかも??

投稿者 megu : 12:35 | コメント (0)

明日は新しいタイヤ

知らない間にタイヤのパンク修理されてしまっていた件について.

『信頼していたのに...』
などと考えて、うじうじ悩んでいたけれど、

やぁっとふっきれた感じです。

今朝は4本のタイヤ、しっかりチェックしてから車に乗って、運転してきました:-)。

明日にはスペアを新しいタイヤに交換していただく予定です♪

投稿者 megu : 12:20 | コメント (0)

落ち込みモード
2004年09月19日

三連休だというのに.....
少し遠出しようと思っていたのに....

なんだか気分が乗らなくて結局家にいます。

「どーせ出かけないのなら、サーバのバックアップ機の用意でも。」
と思っても、気合がはいらず。

近頃はまっていたTomcatをさわる気分でもなし。
「Tomcat上でCGIを使えるようにして、その上でMTを動かしたらどう?」
なぁんて構想もあるにはあるのだけれど。

コメントスパムだって防御できてうれしかったはずなのに。

なぁんて
ひとりごとを書いてますます落ち込んでどーするって感じですよね(笑)。

さて、掃除でもしましょうか。
あぁ車も洗わなくちゃ。

投稿者 megu : 13:57 | コメント (4)

覚えのない修理

先週のパンクでタイヤを駄目にしてしまったので新しいのを頼んでいたのですが、
今日、用意できたのとのことで、ディーラーへ行ってきました。

その時に見ていただいたのですが......

なぁんとまたまた別のタイヤがパンクしている!とのこと。(なんでよ~っ!)

今回は、ぺちゃんこになっていたワケではなくて、右側後輪の空気圧が1.0まで落ちていたのでみてみたら、「パンクの修理の跡から空気がもれている」とのことでした。

そして、一度修理したところは、さらに修理することはできなくて、このタイヤも交換!!なんですって。

#ちなみに、一本、工賃込みで27825円なり~でした(泣)。

ちょっとちょっと一気に2本??(5万ちょいじゃん!んーなの、コーティングかなにかにあてたほうがずっとシアワセなのに。)

....っというよりも、問題なのは、

私には右側後輪のタイヤのパンク修理をした記憶がまったくない!

っということなのです。

なにせ、パンク自体今回、『初体験』だったのですから。

そう伝えると、サービスフロントの方は「えっ!」っとのけぞった感じ(笑)。
#まさかねぇ~~

私は、バルブ切れやオイル交換、何からなにまで、すべてディーラーにおまかせしているので、記録を調べていただきました。
タイヤのパンクを修理した記録なんてありませんでしたっ。

でも、実際に目の前に修理されて、しかも空気のぬけるタイヤがある。
(シャボンをつけて、空気がぷくぷく抜けるところを見せていただきました。)

じゃ、いったいいつのまに??

疑わしいのは~

去年の夏に板金修理に出したとき?(コンビニ駐車場でいたずらされちゃいました)
それとも今年のお正月に板金修理に出したとき??(ガードレールにほお擦りしちゃいました)

...なぁんて思いつくのは、板金修理工場。
#どちらもディーラーでお願いした修理です。

とりあえずは、調べてくれるとおっしゃってくださっているのですが、こういう場合どうなるのでしょう??
タイヤは保証の対象になっていないけれど、事情が事情じゃないですかっ。

っというよりも、問題なのは知らない間に修理されちゃったということで、なんだかとっても気持ち悪くてイヤなんですけれど。

なんだかとってもフクザツモードな私です。

まだアンケート発送していないけれど、送る気なくなってきちゃいました。

投稿者 megu : 01:06 | コメント (2)

ココセコム、今日はバッチリ位置検索
2004年09月18日

今日も娘は
「ひとりでピアノの先生のおうちまで行く」
といいました。

前回ひとりで行かせたとき、ココセコムを持たせて検索したけれど、ぜんぜんまとはずれな位置情報が返ってきて、「解約してやる!」と思っていたのですが....

今日はバッチリでした。

地図では先生のお宅の前の道路を指していたので、誤差5メートル以内!!
(レッスンルームは道路沿いのお部屋です)

すごいぞ、すごい。

ちゃ~んと行けた娘もえらい(親ばか)。

環境がよくてクリアに検索できたのでしょうか。

っというワケで、やっぱり解約するのはやめにしておくことに:-)

投稿者 megu : 10:10 | コメント (0)

Audiからアンケート用紙が届く

パンクから一週間。
あたらしいタイヤをお願いしてあるけれど、まだ連絡がありません。
(うーん、不安だわ、週末ロングドライブしたいのに)

さてさて、アウディからエマージェンシーアシスタンスについてのアンケート用紙が届きました。
#最近のアウディってアンケートが好きよね(笑)


というか、アンケートが来たり、点検後に連絡がくるようになったのって今の車になってから。
(前の車はファーレンから購入だったので、また事情が違っていたのかしら??)

ちょっと面倒くさいけれど(笑)、〇をつけるだけなので回答しておきました。
忘れないうちに投函しなくっちゃ。

全部、無難なところ(良い)に〇をつけちゃいました。
悪い・普通・良い・非常に良い
と来たら、なにもなければ「良い」に〇をつけてしまう私です。

オークションの評価ならすべて「非常によい」にするところですが(笑)、とても親切にしておいていただきながら、これなんです。非常に良いに〇をつけるのは本当にすべて100%満足じゃないといけない。
今回のロードサービスの方、すごく感じがよかったけれど、いつもお世話になっているディーラのメカニックの人ほどじゃなかったし....(笑)。
ちえの輪解けなかったし.....(これは冗談)。

あと、よっぽどなにかなければ「悪い」なんかにしないですよね。

ところで、アンケートや冊子が届く反面、
『DMがち~っとも来ないのはなぜなんだろう?』
っと不思議に思っていたんです。

そしたら、めずらしくこの週末のフェアのDMが届きました。
『いや、本当、めっずらし~!!』
っと、よーく見たら、こないだ資料請求したときにメールをくださった別のディーラー(YANASE系列)からでした。

....なんだ、やっぱり。
ディーラーが怠慢なだけなんじゃん(笑)。
営業の人にも「ぜんぜん届かないじゃないですかぁ~」って冗談で言っておいたんですけれどね。
登録もれしちゃってるのかな?

行く行かない、買う買わないは別にして、フェアのお知らせはいただけたらうれしいですよね。

いま、どんな車があるのかわかるし。

投稿者 megu : 08:14 | コメント (0)

Tomcat5.5.2
2004年09月17日

っというワケで、Tomcat5.5.2に入れ替えちゃいました。

ここからダウンロードしてきて、解凍して、
$TOMCAT_HOMEを、$HOME/jakarta-tomcat-5.5.0から$HOME/jakarta-tomcat-5.5.2に変更しました。

(もとのディレクトリはそのままおいてあります。すぐに戻せるように...。
私って貧乏症なんでしょうか?こうやって、なんでも取っておくのでディレクトリが増殖していっちゃいます。
そのうちお掃除しなくちゃ。)

インストールはTomcat5.5を入れてみたと同じです。
(1).bash_profileの変更
export TOMCAT_HOME=$HOME/jakarta-tomcat-5.5.2 ←5.5.0だった部分
(2)common/libの下に必要なjarファイルを置いて(jdbc、dbcp関連)、
(3)conf/server.xmlのポートを変更
(4)conf/web.xmlのlistingのデフォルトを変更
(5)bin/setclasspath.shを変更(Tomcat5.5を動かしてみる参照)
CLASSPATH="$CLASSPATH":"$JAVA_HOME"/lib/tools.jar
CLASSPATH="$CLASSPATH":"$CATALINA_HOME"/common/lib/jsp-api.jar
それと、もうひとつ。実は、common/lib/jsp-api.jarへのCLASSPATHの追加もここでしています。(下の行)
NoClassDefFoundErrorになってしまったので...。まったくもって原因がわからないのです。
私は仕事ではTomcatを使っていないのですが、職場のTomcat使い(笑)に聞いたならWindowsであれば自動的にパスが通るのですって?
っというか、デフォルト設定で、なぜこんなところでエラーになるのだろう?

エラー画面↓
tomcaterror.jpg

とりあえず、今は無理くりCLASSPATH設定で走っています。

次は「Tomcat5.5でSSI」の予定です。

投稿者 megu : 13:00 | コメント (3)

Tomcat5.5でMovableTypeのエントリーの表示
2004年09月16日
先日のサンプルJSPをもう少しだけバージョンアップしました。

とても簡単でシンプルすぎるくらいシンプルなのですが、
エントリー一覧から、エントリーの内容を表示するものです。

エントリー一覧

リンクをクリックすると、さらにJSPでエントリーの内容を表示するようにしてみました。
jspの構成は2つからなります。

entry_list.jsp...エントリーの一覧を表示するもの。
entry.jsp...ひとつのエントリーの内容を表示するもの。

entry.jspには引数としてentry_idを与えます。パラメタ名は"id"です。


(1)entry_list.jsp
<% response.setContentType("text/html;charset=UTF-8"); %>
<%@ taglib uri="/tags/struts-html" prefix="html" %>
<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jstl/sql" prefix="sql" %>
<%@ page pageEncoding="euc-jp" %>

<sql:query var="rs" dataSource="jdbc/postgres">
    select  entry_id,entry_title
    from    mt_entry
    where   entry_status = 2
    order by entry_created_on desc
</sql:query>

<html>
<head>
    <title>Entries</title>
    <link rel="stylesheet" href="http://blog.kiyo.com/styles-site.css" type=
"text/css" />
</head>
<body>
    <div id="container">
        <div id="banner">
        <h1><a href="http://blog.kiyo.com/">megu's blog</a></h1>
        </div>
        <div class="content">
            <div class="contenttitle">
                Entry Titles
            </div>
            <c:forEach var="row" items="${rs.rows}">
                <html:link action="entry.jsp?id=${row.entry_id}">
                   ${row.entry_title}</html:link><br />
            </c:forEach>
        </div>
    </div>
</body>
</html>
エントリーリストを表示するjspです。
とりあえずは、エントリーのタイトルだけを、登録日の降順に表示しています。
クエリは

select entry_id,entry_title
from mt_entry
where entry_status = 2
order by entry_created_on desc

の部分です。検索条件の entry_status = 2というのは下書きモードのものを除いています。

リンク部分は、htmlタグを用いています。
<html:link action="entry.jsp?id=${row.entry_id}">
の部分です。
とび先は、entry.jsp、idにqueryから取得したentry_idを指定しています。


(2)entry.jsp
% response.setContentType("text/html;charset=UTF-8"); %>
<%@ taglib uri="/tags/struts-html" prefix="html" %>
<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jstl/sql" prefix="sql" %>
<%@ page pageEncoding="euc-jp" %>

<sql:query var="q_entry" dataSource="jdbc/postgres">
    select  entry_title
            ,case
                when entry_convert_breaks = '0' then
                    entry_text||entry_text_more
                else
                    replace(entry_text ,'\n','<br />\n')
                    ||
                    replace(entry_text_more , '\n','<br />\n')
            end as entry_text
    from    mt_entry
    where   entry_id  =  ?
    <sql:param value="${param['id']}" />
</sql:query>

<html>
<head>
    <title>entry</title>
    <link rel="stylesheet" href="http://blog.kiyo.com/styles-site.css" type=
"text/css" />
</head>
<body>
    <c:forEach var="row" items="${q_entry.rows}">
    <div id="container">
        <div id="banner">
        <h1><a href="http://blog.kiyo.com/">megu's blog</a></h1>
        </div>
    <html:link action="entry_list.jsp">Back</html:link>
        <div class="content">
            <div class="contenttitle">
                ${row.entry_title} <br />
            </div>
                ${row.entry_text} <br />
        </div>
    <html:link action="entry_list.jsp">Back</html:link>
    </div>
    </c:forEach>
</body>
</html>
上はひとつのエントリーの内容を表示するjspです。
ちょっぴり工夫(?)したのは、Convert Line Breaksの指定。
これが指定されている場合は、改行コードをbrタグに置き換えないといけないので。
でも、指定されていない場合はそのままの表示です。
この対応は、クエリ上でやってしまうことにしました。caseを使いました。
entry_convert_breaksが'0'の場合はそのまま
'1'の場合は、改行コードを変換しています。

また、バインド変数の指定ですが、
<sql:param value="${param['id']}" />
こうやって指定します。
(?が出てきた順に割り当てられます。)

※実は、クエリが1行しか値を返さないときの、値のとり方がわかっていないのです(恥)。
なので、forEach使っちゃっていますが、もっと良い方法がみつかったらまた更新することにします。


本当は....

MTのテンプレートをまだまだ使いこなせない私は(使いこなせないどころかちっともわかっていない)、自分でもできそうなsqlタグでのアクセスが楽しくてたまりません。
これなら、いろいろできそうです。
テーブル構成さえわかれば、条件も好き勝手に検索できるし。更新もできます。

でも、本来の目的からははずれちゃっていますね(笑)。
そもそも、MTを使っているのだから.....

このエントリーの目的は、Tomcat5.5とコネクションプール、それからタグライブラリの使い方のメモであって、エントリーを表示するのが目的ではないはず....。でした。

投稿者 megu : 19:16 | コメント (0)

コメントスパムを防御できた!
2004年09月15日

先日仕込んだとりあえず版のコメントスパム対策ですが、今日みごとにひっかかってくれました。

う、う、うれしい~っ。
#でもどうせ「イタチごっこ」だろうから、そのうち破られちゃうのかなぁ?

9月6日に仕込んだものの、な~んもひっかかってくれなくてさびしかったんです。
それがやっと9日目にしてコメントスパムがやってきました。

そのときのログです。→spammer.txt

コメントスパムのログの1つを例にとります。


---- spammer info( 05:18:47 15/Sep/2004) ----
query_string:damedamespam_051831_150904_mail.gamblingshift.com_66.135.34.87
posted address:64.5.152.67

敵はformに記述しておいたパラメタ(damedamespam_051831_150904_mail.gamblingshift.com_66.135.34.87など)をただしく返してきていました。

ですけれど、POSTするときにIPアドレスを偽装していたのです。
"66.135.34.87"というIPアドレスで、コメントを投稿するFormを表示したくせに、実際にPOSTするときいは"64.5.152.67"になっています。

こんなことやる人、普通いないので、スパマー確定ですよね。

しかも最初の登録時に、


You must comment in the right way.

っと画面に表示されているはずなのに、しつこく6回もトライしているなんて....あきらめの悪い奴です。

対応方法ですが、SSIを使える環境であれば実装できます。
(1)Formタグを表示する場所は2箇所です。
ひとつは、Individual Entry Archiveテンプレート。
コメントを入力していただく部分のformタグに、上記query_stringを出力するSSIの実行を入れます。
もうひとつは、lib/MT/Template/Context.pmです。(確認入力のformはなぜかここで定義されています。)
1220行目付近にformタグの記述がありますので、そこに同じくquery_stringを出力するSSIの実行を入れます。

#CGIで出力した結果に、SSIがあってもちゃんと動作するんですね。
Apacheの設定で拡張子cgiでSSIを動くように設定が必要ですが、本当はとても危険だと感じています(もしかしたらやめるかも)。
確認入力からのPOSTの場合は、スパムのチェックをパスするようにすればよいのかもしれません。
#こんなこと、ここで書いても大丈夫ですよね?
#敵は日本語、読めないですよね?(笑)

(2)SSIとmt-commentsの修正内容については、まったくもってお恥ずかしいスクリプトですし、公開は控えたほうがよいと考えています。
(たぶんいらっしゃらないとは思いますが、興味のある方にはご連絡いただければお返事さしあげたいと考えています。)

(3)MTの管理画面で最初にアクセスしてきたIPアドレス(damedamespamについているほう)をブラックリストに登録すべきです
※POSTしてきたアドレスではないですよ~!!(こちらは単なる踏み台なので)

(追記)
っと思っていたのですが、MTの管理画面で禁止IPに登録しても、通常のアクセスはできちゃうのでしょうか。「コメントやトラックバックの送信元IPアドレスを制限することができます。」
って書いてるので。
じゃぁ、意味がないかも。
すべてのアクセス(閲覧も)禁止!っていう設定はできないのかなぁ??

(さらに自分にツッコミ)
もう、ぼけちゃってますよねぇ~
最初に閲覧されるのは静的なHTMLなんですから、.htaccessででも拒否すればいいですね。
#でも、気力わきません。たいした手間でもないのに、「なぜ.htaccessだと疲れるのか?」謎ですが。

投稿者 megu : 12:52 | コメント (3)

Tomcat5.5 PostgreSQLでDBCP
Tomcat5.5のサンプルを使って、MovableTypeのコンテンツを登録してあるPostgreSQLにアクセスしてみることにしました。

参考にしたのは以下のサイトです。
http://jakarta.apache.org/tomcat/tomcat-5.5-doc/jndi-datasource-examples-howto.html

※設定についての説明がTomcat5.5のコンフィギュレーションファイルと異なる部分があった部分と、自分の環境にあわせた部分をメモしておきます。

上記サイトではPostgreSQLに関してはテストはしていないと書いてありますが、問題なく繋がりました。
#ただアクセスして結果を表示するところまでの確認です。
(ConnectionPoolの内部の動作確認(アクセス数とConnection数の確認など)や性能の調査まではしていません。)
(環境)
Fedora Core1 の1ユーザー下にJDK5.0とTomcat5.5をインストール済。
今現在インストールされているもの。
(表示はabc順)
apache-ant-1.6.2
commons-collections-3.1
commons-dbcp-1.2.1
commons-pool-1.2
jakarta-struts-1.2.2
jakarta-taglibs-standard-1.1.1
jakarta-tomcat-5.5.0
jdk1.5.0
pg74.215.jdbc3.jar

※上記のうち、commons-ではじまる3つは今回のDBCPを使うためにダウンロードしきした。
また、JSTLタグ(SQLなど)を使うためにjakarta-taglibs-standard-1.1.1をダウンロードしました。

I.用意

1)JDBC(PostgreSQL7.4用の最新)
下記サイトからダウンロードしてきました。
$wget http://jdbc.postgresql.org/download/pg74.215.jdbc3.jar

こちらは最初からjar形式ですので、そのまま$CATALINA_HOME/common/libの下におきます。
ただ、パスがうまく通らなかったので(私だけ?)、
$CATALINA_HOME/conf/setclasspas.shを修正して無理やりPATHを通しました。
(Tomcat5.5を動かしてみる参照。)


2)DBCP(コネクションプール)を使うには下記の3つのコンポーネントが必要になります。
Jakarta-Commons DBCP
Jakarta-Commons Collections
Jakarta-Commons Pool

私はそれぞれ以下のサイトからダウンロードしました。
http://sunsite.tus.ac.jp/pub/apache/jakarta/commons/dbcp/binaries/commons-dbcp-1.2.1.tar.gz
http://sunsite.tus.ac.jp/pub/apache/jakarta/commons/collections/binaries/commons-collections-3.1.tar.gz
http://sunsite.tus.ac.jp/pub/apache/jakarta/commons/pool/binaries/commons-pool-1.2.tar.gz

tar xvfz で解凍後、jarファイルにCLASSPATHを通しました。
※JDBCと同様のセッティングをしました。
ここでもなぜか$CATALINA_HOME/common/libに置くだけでは駄目。
自動的にjarファイルにclasspathを通すにはどうすればいいのだろう?(だれか教えて悲願モード)



3)サンプルではSQLタグ(これ簡単でわかりやすくて面白い)と、COREタグを使っていますが、これらを利用するために、Jakarta Taglib Standard 1.1をダウンロードしました。
http://www.meisei-u.ac.jp/mirror/apache/dist/jakarta/taglibs/standard/jakarta-taglibs-standard-current.tar.gz

tar xvfz で解凍後、jarファイルをアプリ(今回はDBTtestという名前のディレクトリ)の下のWEB-INF/libの下に置きます。

II.PostgreSQLの設定
PostgreSQLのデフォルトの設定は、UNIXドメインソケット経由のアクセスになっています。
JDBCからアクセスするためには、TCP/IP経由の接続を可能にしなくてはなりません。

/usr/local/pgsql/data/postgresql.confのtcpip_socketの部分を下記のように修正します。

tcpip_socket = true #もともとあるのでコメントをはずすだけ。

III.Tomcatの設定を行う
1)server.xml
jakartaの説明サイトには、server.xmを修正するように記述してあります。
私も最初HOSTタグの中に、Contextタグを置いて、DatabaseのResoureNameを指定したのですが
実行時にResourceNameを見つけられずに接続できませんでした。

$CATALINA_HOME/confの下をよーく見ると(見なくても?笑)、context.xmlというファイルがあります。
「あっ、ここに設定するのかしら?」
と思って開いてみたら、

<Context>
        <WatchedResource>WEB-INF/web.xml</WatchedResource>
        <WatchedResource>META-INF/context.xml</WatchedResource>
</Context>

っとなっていました。
っというわけで、META-INF/context.xmlに記述することにしました。

META-INF/context.xmlの内容
<Context path="/DBTest" docBase="DBTest"
                        debug="5" reloadable="true" crossContext="true">
        <Logger className="org.apache.catalina.logger.FileLogger"
                prefix="localhost_DBTest_log." suffix=".txt"
                timestamp="true"/>

        <Resource name="jdbc/postgres" auth="Container"
        type="javax.sql.DataSource" driverClassName="org.postgresql.Driver"
        url="jdbc:postgresql://127.0.0.1:5432/blog"
        username="scott" password="tiger" maxActive="20" maxIdle="10" maxWait="-1"/>
</Context>

※上記設定は下記の場合を想定しています。
Path:DBTest
postgreSQLのポート:5432
データベース名:blog
ユーザー:scott
パスワード:tiger

2)web.xmlの設定
下記内容を追加します。(こちらはjakartaのサイトのサンプル通りです。)
<resource-ref>
    <description>postgreSQL Datasource example</description>
    <res-ref-name>jdbc/postgres</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
</resource-ref>

IV.いよいよJSP

サンプルのまんまじゃつまらないので、このブログのEntryを一覧表示してみました。
ソースは下記の通りです。
<% response.setContentType("text/html;charset=UTF-8"); %>
<%@ taglib uri="/WEB-INF/sql.tld" prefix="sql" %>
<%@ taglib uri="/WEB-INF/c.tld" prefix="c" %>
<%@ page pageEncoding="euc-jp" %>

<sql:query var="rs" dataSource="jdbc/postgres">
    select  entry_title
    from    mt_entry
    order by entry_id
</sql:query>

<html>
<head>
    <title>Entries</title>
    <link rel="stylesheet" href="http://blog.kiyo.com/styles-site.css" type="tex
t/css" />
</head>
<body>
    <div id="container">
        <div id="banner">
        <h1><a href="http://blog.kiyo.com/">megu's blog</a></h1>
        </div>

        <div class="content">
            <div class="contenttitle">
                Entry Titles
            </div>
            <c:forEach var="row" items="${rs.rows}">
                ${row.entry_title} <br />
            </c:forEach>
        </div>
    </div>
</body>
</html>

設定さえできれば、検索はすっごく簡単。
SQLタグってカンタン便利ですね!

クエリを変数として定義するのではなくて、そのまま記述できるというのがいいです。
結果の取得方法も簡単。
面倒なメソッドの記述が一切不要になっています。
これでStatementもResultSetも自動的に制御されちゃうのでしょうか。

MVCできちんと作るのも業務としてはいいかもしれないけれど、ちょこっとりスト出力くらいならこれがわかりやすくていいかも。
(なんとなく、ColdFusionのCFQUERYタグの使い方に似ているようです。)

Tomcat5.5が立ち上がっているときは上記設定のサイトの実行結果を実際にご覧いただけます。
http://www.kiyo.com:8280/DBTest/test.jsp
※実際にこのblogに登録されているエントリーの一覧を動的にご覧いただけます。
 エントリーを追加しても、再構築の必要はもちろんありません(笑)。

投稿者 megu : 07:43 | コメント (0)

パンク初体験
2004年09月12日

今日、買い物を終えて、さぁ出発....

っと出たところで
「なんか車が変。ガタガタする.....」
ってなワケで、降りてみたら、左側前輪がぺっちゃんこ。

ひぇ~、走っちゃったじゃないの。<10メートルくらいだけれど。

とりあえず、通路ではなく、駐車位置にバックでいれて、
ディーラーのサービスに電話しちゃいました、私.....。

いえ、なにかあるとサービスに電話しちゃうクセがついているんです。
携帯にしっかり登録してあるし。
いままで調子悪くて連絡っていうパターンが多かったので。

でもよく考えてみたら、パンクはディーラーじゃないよなぁ~~

サービスフロントの方、そこは親切に
「エマージェンシーアシスタンスに電話してください。車検証入れに連絡先のカードが入っていますよ。」
っと教えてくださいました。

そーだった、そーだった!!
こういうときはサービスフロントじゃなくて、エマージェンシーアシスタンスね。

エマージェンシーアシスタンスでは、JAFに入っているか聞かれました。
入会していることを伝えると、Audiの契約先のロードサービスと、JAFとどちらが早く対応できるか調べた上で返事をしてくださるとのことでした。

電話を待つ間、自宅に連絡を入れると、夫に
「JAF呼べばいいのに、JAF!!」
っと言われて、
「そうかぁ~JAFでもよかったか。」
と思い始めました。
なぜならJAFをとても信頼しているので...。
私は何度かお世話になっているのですが、なにをするにもとても詳しく説明してくださります。
手際もいいです。レッカー車もきれいだし。(お世話にならないほうがいいけれど)

今回は結局、Audi契約のロードサービスの方がみえたのですが、30分足らずで到着。
親切な方でした。タイヤの交換はすっごく早かったです。
ですが、最後のジャッキを折りたたんでしまうところで四苦八苦。
これってまるで「ちえの輪」。あれこれ試してみても、元の位置におさまらないんです。
結局そのままに....(笑)
#あとでサービスの人から聞いたのですが、ほとんどの場合、私と同じように元の位置にもどらないままやってくるそうです(笑)

それにしてもいつパンクしたのでしょう??
高速に乗ってきたので、「あぁ、高速道路の真ん中でパンクしなくてよかった。」なんて思ったけれど、実際に釘を踏んだのはいつだったのか気になります。
高速降りてからか、それとも駐車場に入ってからなのか。
しかも気付いたときにはぺっちゃんこでした。
2時間くらいのあいだに、どんどんぺっちゃんこになってしまったのでしょうか。
(ささっていたのは小さな釘だったんです。)
それとも、それまでも少しずつ少しずつ抜けていってたのかしら?

タイヤを交換していただいて、帰る途中、アウディから連絡をいただきました。
パンクしたタイヤを見ますので、持ってきてくださいって....。
エマージェンシーアシスタンスの方も、販売店に見せてくださいっておっしゃっていたけれど、まぁ、丁寧なこと。

#夫の車が少し前にパンクしたのですがそのときは、JAFに来てもらってテンパーに交換してもらって、その足で自分でスーパーオートバックスへ行って修理してもらったそうです。どこにもディーラーさん絡んでいないんです。というか、それがフツーなんでしょうね(笑)。

パンクしたタイヤを預けるつもりでディーラーへ行ったら、「タイヤを交換したので調整しますね。」っということで、みてくださいました。

その間、ショウルームで新しいA6やA4S-lineを見ました。
A6ってよくみると内装のメーター類、メーターパネルの形が変!!
こないだのお披露目会では気付かなかったけれど、「たれ目」みたいな形状になっているんです。
#たれ目のパンダちゃんに見えないでもない....
これも見慣れればよくなるのでしょうか?
でも〇で統一されている今のデザインのほうがおしゃれだと思うのだけれど。
新しく出るA4も同じようなメーターになっちゃうのかなぁ?
もしかしてA3スポーツバックも??
#そういえば、audi.co.jpでA3スポーツバックの資料請求をしたら、『まだカタログもなくて価格も未定で、わかっていることは年内の12月に2.0FSIと3.2クワトロが導入され、3.2クワトロは来年になるということ。』なぁんてメールが別のディーラーさんから届きました(自宅住所がテリトリーなんだそーですが、そこにはお世話になっていないんです。)
サイトには資料は10月中旬以降に発送って書いてあるのだけれど.....。

私はタイヤパンクくらい(?)で丁寧に対応していただいて、なんだか満足なのでした。
(でも面倒な客だなぁ~って思われているかも?)

私はパンクに気付かず車を動かしてしまったので、ホイールでタイヤを踏みつけてしまっていて、もう使えないそうです。新しいタイヤの手配をお願いしました。
#一週間くらいかかるそうなので、スペアタイアがテンパーじゃなくてよかったです。

あの10メートル走行さえなければ.....

初心に戻って、教習所で教えていただいたことを思い出して....
『始業点検』
って大切ですね。

車に乗る前にくるりとひとまわりする。
タイヤは押して確認です。
くらいは....

#これをやっておけば、タイヤを修理するだけで済んだのに。

運転席側から乗って、GO!!っていう人、気をつけてくださいね。

投稿者 megu : 00:01 | コメント (2)

Tomcat5.5を動かしてみる
2004年09月09日

Tomcat5.5を少しさわってみました。
PostgreSQLとの連結はうまく行きそうですが、他の部分でまだちょっともたついています。

なにせなかなか時間がとれないのがつらいです。
#夜中の作業なのでどんどん睡眠時間がなくなってしまう~っ!(ひとりごとモード)

キーワード=Tomcat5.5での検索によるアクセスは、私にとって異例のアクセス数だし、
『何か書かなくては...』
とも感じていて、あまり役には立たないかもしれないけれど、メモ書きを残しておきます。

(1)やっぱり日本語がうまくいかない....

jsp中、日本語で書いた文字がすべて化けてしまいます。(変数は大丈夫)

JSPソースはEUC-JPで書いているので、JSP→Servlet生成時にUTF-8へうまく変換できていないのだと思います。


pageEncoding属性を指定してみるもエラーになってしまいます。
<%@ page pageEncoding="charset=euc-jp" %>

HTTPステータス 500 -
type 例外レポート
メッセージ
説明 The server encountered an internal error () that prevented it from fulfilling this request.
例外
org.apache.jasper.JasperException: サポートされていないエンコーディングです: charset=EUC-JP
	org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:50)

「私、なにかイケナイことしたかしら...?」と思い、
euc_jp
EUC-JP
EUC_JP
などといろいろ試してみましたが、すべて駄目。

....っというのは、あとで気付いたのですが、私のオオボケでした(苦笑)。
× <%@ page pageEncoding="charset=euc-jp" %>
○ <%@ page pageEncoding="euc-jp" %>

まったくなにをやってるんだか...
#やっぱり寝不足だわ。

jsperr.png

でも、ボタンのところ....「結果」と表示したかったのに、上手く変換されていません。

う~~ん

その他の上手く表示されている日本語の部分はプロパティファイル(ApplicationResource.properties)を用いての表示です。
こちらは表示するエンコーディング(iso-2022-jp)にあわせてあるので文字化けしません。

※入力文字列の日本語処理についてはこれから...。

(2)jdbcの設定とCLASSPATHの設定

→$CATALINA_HOME/common/libの下にpg74.215.jdbc3.jarを置いてみたけれど、自動的にPATHは設定されなかったです。

$CATALINA_HOME/bin/setclasspath.shを下記のように修正しました。

(43行目付近)
CLASSPATH="$JAVA_HOME"/lib/tools.jar

CLASSPATH="$CLASSPATH":"$JAVA_HOME"/lib/tools.jar
とする。

※setclasspath.shにてCLASSPATHがリセットされてしまうので、
ユーザーの環境変数の$CLASSPATHを無理やり繋げているだけです。

※jdbcについては.bash_profileにて下記のようにCLASSPATHを設定

export  CLASSPATH=$CLASSPATH:$CATALINA_HOME/common/lib/pg74.215.jdbc3.jar

(3)その他メモ
jspで余計なパッケージのimport文があると、
「生成されたサーブレットのエラーです:
The import java.sql is never used」 ←(例)
なぁんてエラーになってしまいます。

『大は小を兼ねる』
だから、
「まぁまぁ、、、いいじゃないの、そのくらい....」
っと言いたいところですが....

参照もしていないものを宣言しちゃうのもなんなので仕方ないでしょう。
これ、以前の環境ではエラーにならなかったよーなきがするのだけれど....気のせい?

#これ、Struts(1.2.2)のサンプルでも同じ現象が出ています。
#Struts Examples のUpload example(/struts-examples/upload/upload.do)がエラーになります。

(追記)
jspから生成されたらしきjavaソースをみつけたので日本語部分の内容を確かめてみました。

($CATALINA_HOME/work/Catalina/localhost/***/org/apache/jsp/struts内にありました。)

すると....JSPではEUCだった日本語はutf-8へきちんと変換されているのです。
↓はutf-8で表示したもの。結果ボタンの部分です。


private boolean _jspx_meth_HTML_submit_0
(javax.servlet.jsp.tagext.JspTag _jspx_th_HTML_form_0, PageContext _jspx_page_context)
throws Throwable {
PageContext pageContext = _jspx_page_context;
JspWriter out = _jspx_page_context.getOut();
// HTML:submit
org.apache.struts.taglib.html.SubmitTag _jspx_th_HTML_submit_0
= (org.apache.struts.taglib.html.SubmitTag)
_jspx_tagPool_HTML_submit_value_property_nobody.get(org.apache.struts.taglib.html.SubmitTag.class);
_jspx_th_HTML_submit_0.setPageContext(_jspx_page_context);
_jspx_th_HTML_submit_0.setParent((javax.servlet.jsp.tagext.Tag) _jspx_th_HTML_form_0);
_jspx_th_HTML_submit_0.setProperty("enter");
_jspx_th_HTML_submit_0.setValue("結果");
int _jspx_eval_HTML_submit_0 = _jspx_th_HTML_submit_0.doStartTag();
if (_jspx_th_HTML_submit_0.doEndTag() == javax.servlet.jsp.tagext.Tag.SKIP_PAGE)
return true;
_jspx_tagPool_HTML_submit_value_property_nobody.reuse(_jspx_th_HTML_submit_0);
return false;
}
※表示幅の関係で途中改行を挿入した部分があります。


.....っということは、表示に至るまでのエンコーディングが悪いということ?
もしかしたら、サイト全体をutf-8で表示することにしちゃえばいいのかも??

ごめんなさい。もう少し試行錯誤して考えてみます。

思えば私って、なにをやっても何を使っても同じようなことばかり悩んでいるみたい。
MTでも確か文字化け文字化けって騒いでいた記憶があります(^^;
それで、utf-8に落ち着いたんですが....。

P.S.
ひどいソースで作業しているので、公開できずごめんなさい。
人様にお見せできるようなシロモノができたあかつきには載せますので....。

投稿者 megu : 02:32 | コメント (0)

コメントスパム対策とりあえずバージョン実装
2004年09月06日

とりあえずモードのチェックをmt-comments.cgiに入れました。
その1)コメントフォームを表示したときのパラメタ(QUERY_STRING)が引き継がれていないと×
その2)引き継がれている場合、その内容がこちらにセーブしたものと一致しなければ×
その3)その内容にはIPアドレスが含まれます。POSTされた時のIPアドレスが一致しなければ×
以上です。
その4)×になった場合はspammer.txtに出力しています。
※一件目は私がテストで実行したモノです。これからが楽しみ....(なんちって)

#あぁ、私ってやっぱり性悪。

これで昨日きたスパムには対応できるはず...

でも....
もし、上手くコメントできない場合がありましたらごめんなさい。

投稿者 megu : 12:58 | コメント (0)

コメントスパムでわかったこと
2004年09月05日

今、コメントスパムの予防策はしていないですが、記録を取っています。
「いつひっかかってくれるかなぁ~」
と心待ちにしていたのですが、今日やっと来てくれました。

#スパムがうれしいなんて、今日くらい(笑)。

わかったことがいくつかあります。

(1)ヤツはダサいことに、ひとつひとつコメントしているらしい。
 →だからhiddenに標準でない項目を追加したって駄目なんです。
(2)コメントをPOSTするときだけ、一時的にIPアドレスを変えている。
 →ブラックリスト対策かも。これじゃ、いくら禁止IPに登録しても太刀打ち不可です。
(3)でも、ひとまずアクセスするとき(コメントフォームを表示するとき)に使うIPアドレスはだいたい決まっているらしい。

っということです。
一発屋なんかじゃなかったんです。悪さをするとき、一瞬だけIPアドレスを変えていたのです。

ログを晒します。ふっふっふ...(不気味)

まず、コメントスパムを送ってきた人が最初にコメントFormを表示してきたときに使ったIPアドレスです。
コメントスパムは6通あったのですが、対するFormの表示、まんま6回ありました。
私の予想では、一回だけFormを表示して中身をチェックしてから何かツールを使ってばんばんPOSTしてくるのかと思ったら違った....(笑)。
(意外と原始的な方法だったのですね。)

65.75.146.170 host170.easymanaged.com
65.75.166.200 host200.easymanaged.com
65.75.166.210 host210.easymanaged.com

今回使われたのは、この3つのIPアドレスでした。
おそらく、皆様のブラックリストにはこのIPは登録されていないのではないかと思います。
なぜって....このIPでは悪さはしないから。(ただ、コメント用のフォームを表示するだけなので。)
お手軽にコメントスパム対策をするならば、このホスト(easymanaged.com)をアクセス禁止にするといいかも。....でもすぐに別のでくるだろうけれど。

※追記
この3つのホストのうち、
host170.easymanaged.comはオンラインカジノのサイトです。
ほかの2つもサーバはあがっているようです。
オンラインカジノのスパムに関しては、こちらのホストに対してアクセス制限をすればなんとかなるかも。
※追記おわり
※さらに追記
上に、皆様のブラックリストに...というくだり、これは誤りのようです。
どうやら、一瞬IPアドレス変異現象にはいきさつがありそうです。
過去には*.easymanaged.comなんてIPで普通にコメントがPOSTされていたのかもしれません。
それで、いっせいにeasymanaged.comが禁止IPに登録されたものだから、敵は一瞬芸を使うようになった???よーな気がしてきました。
※さらに追記おわり

ひとつだけ例にとって説明します。

(1)敵はまず、http://blog.kiyo.com/archives/2004/08/post_16.htmlにアクセスしました。
※そのとき、Formタグのmt-comments.cgiに下記のようなパラメタをSSIでもって付与しておきました。
damedamespam_15051905_host170.easymanaged.com_65.75.146.170

(2)その後、コメントをPOSTしてきました。
QUERY_STRINGにはしっかり、damedamespam_15051905_host170.easymanaged.com_65.75.146.170が設定されてきました。何も改ざんされていません。そのものです。
ただ、IPアドレスだけは違っていました。
65.75.146.170ではなくて、198.165.90.74 (cache-sp-01.cheznoo.net)です。

アクセスされた日時は"15:05:30 05/Sep/2004"でした。
上のサイトを表示してから、POSTを受付けるまでの時間は、たったの11秒です。
強力プロキシ切り替えツールでも使っているのでしょうか?(笑)
USER_AGENTからは、"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; Q312461; AIRF)"ということになっているのですが...。
それとも、インターネットオプションの接続のLANの設定を開けっ放しにしておいて、オペレーションしているのでしょうか?(だとしたら笑える)

前回、もしかしたらイケるかも?と書いたあの方法だと、すでにIPアドレスが異なる時点で、このコメントスパムは除去できたワケです。

あとはセーブしておいた情報の保持期間(表示してもすべての人がコメントしてくださるわけでないので)の制御など、考えなくてはなりません。
セッションを使えればいいのですけれどね。アプリケーションサーバが必要になってしまう...やっぱりphpなのかな??
でも、comments.cgi自体はperlなので、コンテンツだけをphpにしても駄目ですね。

とりあえずはセッションなんて考えないで、普通にファイルに保持して、使われない場合は適当な期間で削除していくようにするつもりです。

ただ、この方法にしたって、まともにひとつのIPアドレスで、内容だけがスパムなものをコツコツとPOSTされてしまったらひとたまりもないわけです。
「全部英語だったらスパムと判断する。」
なんていう方法も見かけたけれど、今日、「カジノさん」からPOSTがありました。
敵は日本語も覚えたようです(笑)。

話は変わりますが、スパムメールに下のような内容のものがありました。

最近電話くれないね、嫌いになったの?
彼女出来たのかな?たまには連絡ほしいな。
美香

普通に読んで何も問題のない内容、もちろんSpamAssassinだってスパムとは判断しないし、クライアント側に仕込んだウィルスバスターだって無反応。
Fromアドレスはごくごく普通の一般的なプロバイダのアドレス。踏み台だって使ってやしない。
これと同じで、まともにコメントされちゃって、その内容だけがSPAMじゃね....。
手でこつこつIP禁止指定したって、イタチごっこだろうしね....。

本当、皆さまご苦労さまです...。


※またまた追記
その後、やっぱり気になって"easymanaged.com"でググってみたら、
NET侍さんのサイトがヒットしました。
あれま、host170.easymanaged.comにはアクセスしちゃいけなかったんですね。
ここからリンクしてみた上に、確認のために何回もアクセスしちゃいました。
host200(空白のサイトがあった)もhost210(確かTESTとか出た)も、存在しないホストも試しに...
tracerouteもしたし、pingも打ったし。
わはははは....
もう笑うしかありません。
#ストーリーは決めたものの、まだ仕込んでいないんです。
だって眠たいんですもの。明日は朝早いし、月曜日だし....泣。
大丈夫かな?
※またまた追記ここまで

投稿者 megu : 21:54 | コメント (3)

Tomcat5.5を入れてみた
Tomcat5.5がリリースされました。

とりあえずインストールしてみることに。

同時にTiger(JDK5.0)も入手。

今までのJavaの環境はそのまま残しておくことにして、あらたにtigerというユーザーを作り、そこで作業することにしました。

(1)Tiger(JDK1.5 改め JDK5.0)をダウンロード
J2SE 5.0をダウンロード
http://java.sun.com/j2se/1.5.0/ja/download.html
こちらのサイトからダウンロードできます。

(2)実行(bin形式のものをダウンロードした場合)
$ ./jdk-1_5_0-rc-linux-i586.bin
実行するだけで展開されます。途中、ライセンスの確認入力があります。確認できたらyesと答えると続行されます。

(3)JAVA_HOMEの設定と、PATHの設定

.bash_profileに下記を追加(bashの場合)
#For    jdk1.5.0
export  JAVA_HOME=/home/tiger/jdk1.5.0
export  PATH=$PATH:$JAVA_HOME/bin
※/home/tiger はユーザーディレクトリ。その直下にjdk1.5.0を展開しました。

.bash_profileを保存したら、
$ source .bash_profile
とやってから、
$ java
と打ち込んでみて、パスが通っていることを確認します。

$ java
Usage: java [-options] class [args...]
(to execute a class)
or java [-options] -jar jarfile [args...]
(to execute a jar file)
....以下略

のようにjavaが動けばOK
駄目だったら、環境を確認してくださいねっ。

(4)Tomcat5.5をダウンロード
$ wget http://www.meisei-u.ac.jp/mirror/apache/dist/jakarta/tomcat-5/v5.5.0/bin/jakarta-tomcat-5.5.0.tar.gz

(5)展開
$ tar xvfz jakarta-tomcat-5.5.0.tar.gz

(6)TOMACAT_HOME,CATALINA_HOMEの設定
.bash_profileに下記を追加
#For    TOMCAT
export  TOMCAT_HOME=$HOME/jakarta-tomcat-5.5.0
export  CATALINA_HOME=$TOMCAT_HOME
(7)起動前の設定
$ source .bash_profile
$ cd $CATALINA_HOME/conf

1)server.xmlの修正
$ vi server.xml

server.xmlの83行目付近。私は、Portを8080から8280に修正、あとはデフォルトのままです。
<Connector port="8280"
           maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
           enableLookups="false" redirectPort="8443" acceptCount="100"
           debug="0" connectionTimeout="20000"
           disableUploadTimeout="true" />

2)web.xmlの修正
70行目付近、listingsのデフォルトがtrueになっているので、falseに修正します。
<init-param>
    <param-name>listings</param-name>
    <param-value>false</param-value>
</init-param>

(8)起動してみる。
$ $CATALINA_HOME/bin/startup.sh
Using CATALINA_BASE:   /home/tiger/jakarta-tomcat-5.5.0
Using CATALINA_HOME:   /home/tiger/jakarta-tomcat-5.5.0
Using CATALINA_TMPDIR: /home/tiger/jakarta-tomcat-5.5.0/temp
Using JAVA_HOME:       /home/tiger/jdk1.5.0

(9)Webブラウザから確認する。
http://www.kiyo.com:8280/
Tomcatのメイン画面が表示されれればOK。

(10)サンプルを動かしてみました。
「っく~!!日本語が化けてしまう~!!」

servletのサンプルRequest Parametersで、日本語を入力すると見事に処理されません。
Tomcat5.0.16では大丈夫だったのですが。

Tigerも影響しているのでしょうか?
ちょっと中身を見る時間が必要かもしれません。

(11)Tomcatをシャットダウンする。
$ $CATALINA_HOME/bin/shutdown.sh

しばらく待つと終了します。
ログを確認するには、
$CATALINA_HOME/logs/catalina.out を参照。

────────────────────────────
(追記)
Tomcat5.5関連で、検索サイトからアクセスの多さにビックリしています。
たしかに"Tomcat5.5"でググると、日本語のサイトはここと、もうひとつくらいしかヒットしませんね....(なぜだろう?もっとあってもよさそうなのに。)

#せっかくお越しいただいたのに、「インストールしました」っていう内容しか書いていなくてごめんなさい。

日本語が化ける件については、Responseのヘッダにエンコーディングをちゃんと指定すればちゃんと表示されるはずです。

じゃ、
「Tomcat5.5って何よ!」
「Tomcat5.0とは何が違うわけ?」
ということに関しましては、とりあえずリンクを設けておきます。

jacarta.apache.orgのChangeLog
http://jakarta.apache.org/tomcat/tomcat-5.5-doc/changelog.html


※翻訳サービスにかけてみました。
※かえってわかりにくいけれど、笑えます...。Tomcatは雄ネコちゃんであります。antはアリだよなぁ~やっぱり。
changelogの日本語訳


も少し要約されていてわかりやすいと思った説明
http://www.jaxmagazine.com/itr/news/psecom,id,17504,nodeid,146.html

大きな変更追加点って、このサイトにも出ているけれど

(1)デザインおよびテストはJ2SE5.0上で動作するということ。
(2)EclipseJDTがバンドルされたので、Tomcat実行時にはJREのみでOKということ。

なのでしょうか。

投稿者 megu : 12:53 | コメント (0)

アウディって悪役のイメージ?

今日、アイ・スパイという映画をwowowで見ました。
途中から見たのだけれど、と~っても面白かったです。

スパイ用の秘密兵器にもう一方の人に見えているのと同じ画像が見えるというコンタクトレンズなんてあって楽しかった!!
あらすじがココに出ています。
(かなりネタばれですが、詳しく説明されていて楽しいサイトです。いちど見た映画をおさらいするのにはいいかも。)

さて、気になるAudiなのですが....


主役のエディ・マーフィーはホーンテッドマンションでもBMWに乗っていたけれど、今回のカーチェイス(といってもキャリアカーの上(笑))で活躍するときもBMWのコンパーチブルに乗っていました。
そして悪役の車が、Audiなんです~
アウディばかり5,6台だったかな?はっきりみえなかったけれど、A8だったんだろうな。
キャリアカーから落とされたBMWで、何台も壊されちゃったけれど。(あぁもったいない)

#正義の味方はBMWで、悪はAudiってのは定番なのかしら?

そのシーンを見ながら、思い出したことがありました。

「マトリックスリローデッドにも似たようなシーンがあったなぁ~。」

悪役のスミス(「私」「私」...っていっぱい「私」が増殖しちゃう、おでこの広い気持ちの悪いやつです)もAudiに乗っていたなぁ...って。

ほんの一瞬しか見えないんですけれどね。
ネオを探しに来るときかなにか、路地に止まって車から降りてくるときに一瞬FourSilverRingsが見えるんです。

なんか、いかにも「悪者が来ました~!」ってシーンだったので、Audiが使われているのが、なんか気に入らなかったのです。

今日見たシーンもやくざの集団みたいな人が黒いアウディ数台に乗っておいかけてくるんですもの~

どーしてベンツにしなかったんだろう?
#そのほうがピッタリなのに....(失礼いたしましたっ)。

私としては、Audiは、そんなイジワルでイヤミなイメージではなくて、おしゃれなイメージでいて欲しいのだけれど。

釣り目になって、シングルフレームになったらますますイジワルっぽいイメージになってしまうのではないかと心配です~。

投稿者 megu : 01:54 | コメント (0)

キーでエントリー
2004年09月01日

先日、発症したリモコンキーの不具合、また再現しちゃいました。

『しばらく様子をみてくださいモード』のまま約1週間再発しなかったので

「もしかして、あれは気のせいだった?」
「ちゃんとボタンを奥までおしていなかったのかしら?」
なぁんて自分をせめつつあったところでした。

なので、今日は何度も何度も奥までぎゅ-っと押しましたが....

駄目でした。
愛車はうんともすんとも反応してくれませんでした(涙)。

今日はスーパーの駐車場にとめて、これからお買い物...っていうときにコトは起こったので、キーをかけずに車を離れるわけにもいかず....。
はじめて鍵穴にキーをさしてドアをあけたこないだとは逆で、鍵穴にキーをさしてロックしました。

そうすると、ちゃーんと「ガシャン」という音がして、ロックできたよ...っと知らせる(?)赤い光が点滅しはじめました。

お買い物を終えて、治っていないかちょっと期待しつつキーのボタンを押してみたけれど、やはり無反応でした。
それから家に帰って、車からおりたとき、あまり期待しないでキーのボタンを押したら治っていました。
(前回と同じだわ...走ると治るわけ??)

でも....サービスの人は、車本体じゃなくて、キー側に問題があるようなこといっていたんだけどなぁ~
ならばどうして走るとなおるわけ??

もういちど起きるようだったら連絡してみようかな?
また入院かしら??全部のキーを預けて...

う~ん、フクザツ。


投稿者 megu : 23:52 | コメント (4)