HOSTSファイルは何処だ

バーチャルホストの設定をローカルで確認するためには、クライアント機で名前解決するための仕組みが無いといけない。グローバルで見えるサーバーならば、DNSが同じことをしてくれるんだけどね。

Windowsマシンの場合、その仕組みを提供してくれるのが、HOSTSファイルだ。HOSTSファイルに、IPとホスト名のマッピングを書くことで、名前解決を行ってくれるというわけ。まあ、大体 linux と一緒です。

が、しかし。

HOSTSファイルが見つからないんである。その昔、「C:\Windows」あたりにあったのを見た気がしたんだけど、見つからない。どうも Windows XP からは配置場所が変わったらしい。時間を返せ。

C:\WINDOWS\SYSTEM32\DRIVERS\ETC

こんなところにあるなんて、気付かないだろう。やられた。あと拡張子が無いからメモ帳で開けないのもイライラする。また Vista になったら、別のところに行ってしまったりするんだろうか。面倒くさい。

Webアプリデザイナーのストレス発散に

プログラマが知らない、デザイナーの苦労 : ITpro

このコラムを読んでいる間、しきりにうなづいていた。スタバにたむろする馴れ合い女子大生が、「うんうん、それ分かるー」ってな具合に。これは、かよわき大人の代弁者だ。自分、かなりスッキリしたッス。

以前、社内でシステムにおける UI の重要性を説いたことがあった。その場ではみんな理解を示してくれたけれども、なかなか手段を講じてくれない。かくいう自分も、コーディング等に追われて、ほとんど動けていない。ううう。

自分は両方を見ているから、デザイナーとしての思いも強いけれども、プログラマーの気持ちも痛いほどよくわかる。特にデスマーチの最中では、同じチームのプログラマーに、コーディング以外のことを強いることは、したくない。UI デザインの優先度は低くなくても、要件を満たす機能が実装できていなかったら話にならない。そんな葛藤がある。

品質より効率,美学より利潤,ではなく,品質向上のために効率化をはかり,美学を追求するために利益を還元することが必要ではないだろうか。

チームのみんながこの意識をホントに共有できれば、たとえ苛酷な状況でも、ちっとはマシなもんができるかもしれない。素敵な思想だなあ。

NFSの設定

複数構成のアプリケーションサーバーでサービスを運用する場合、ソースは一元管理にすると、保守がラクチンになる。そこで使うのが、NFS

が、しかし。

NFSの設定なんて年に一度もしないので、いつも方法を忘れて、あーだこーだと時間を無為にしている気がする。なんだかなあ。ということで、以下、簡易手順メモ。

続きを読む "NFSの設定"

properties ファイルの配置場所いろいろ

Tomcat5.0 クラスローダの手引き

properties ファイルを WEB-INF/classes 以外の場所に配置できないものかと調査中。結局、クラスローダーが見えないところには置けないっぽい。リポジトリのチェック順序とか見て、結構ガッカリ。

コアな話なので、また時間のあるときに調べてみよう。

JNDI を使用したユニットテストの方法

DBUnit のように DB 操作を行うユニットテストを実施する際、そこで使うコネクションをどう取ろうかという話。

バッチ処理のような単体プログラムであれば、単純に JDBC のコネクションを自前で生成すれば良いんだろうけど、Webアプリケーションのなかで、DB操作を行うメソッドを間接的に利用するクラスをテストしようとすると、ちと面倒なことになる。わざわざテスト用コネクションを受けるインタフェースと実装を用意しなくちゃなんない。うざー。

そこで考えてみる。

実際のアプリケーションは、tomcat などのコンテナの JNDI を使ってコネクションを張るわけで。じゃあ、ユニットテストケースからも tomcat が見えて、JNDI を使えれば良いんじゃないか、と。そんなことできるのか、と。ツールとか無いのか、と。あったよ、と。

JUnit JNDI DataSource helper package

こいつを使うことで、コンテナ上で動くのと同様に、DB操作するクラスのユニットテストができます。素晴らしい。結構、感動した。

以下、簡単な使い方のまとめ。

続きを読む "JNDI を使用したユニットテストの方法"

ビューのパフォーマンスが低下する原因

/ db

プロジェクトも終盤だというのに、ここに来てテーブル設計に凡ミスを発見。何とかその穴を埋めようと、ビューを定義したのだけれども、やけにパフォーマンスが悪い。なんでじゃ。

ビューの功罪
注意を要するケースがあります。それは、ビュー定義で集約操作を行なっているときです。具体的には、次のような演算が含まれる場合です。

AVG、COUNT、MAX などの集約関数
集約演算子( UNION、INTERSECT、MINUS 等 )

おー、バッチリ嬉々として UNION ALL とかやっちゃってましたよ。縦結合の代わりに横結合するようにしたら、劇的に軽くなった。ビューが単なるSQLクエリの束であることを考えれば、当然なんだけど、盲点でした。

ちなみに、ビューはSQLクエリでしかないということで、元となる実テーブルのインデックスが使えます。さっき試してみて驚いたけど、よく考えたら当たり前じゃないか。ううう。


最新エントリー
HOSTSファイルは何処だ
Webアプリデザイナーのストレス発散に
NFSの設定
properties ファイルの配置場所いろいろ
JNDI を使用したユニットテストの方法
ビューのパフォーマンスが低下する原因
あわせて読みたいブログパーツ