2009年4月15日水曜日

'テスト用の「人名」をランダムに生成するプログラム'があったらいいな

テスト用の「人名」をランダムに生成するプログラム
 があればいいな・・・
プログラムを検証するために、できるだけ実環境に近いデータでテストしたいというのは誰もが熱望するところです。もちろん、
実データを使うのが一番手っ取り早いと思われますが、昨今の個人情報ブームのせいで単純な名前すら入手できなくなってしまいました。

プログラムテスト用にいろいろなパターンの人名データを生成してくれるプログラム/サービスがあると便利なんだけど・・・
誰か作って~

・指定の件数の人名をランダムに生成する。
・実際にありそうな名前を生成する
・男性名/女性名、年代別、帰化人、など生成パターンを指定できる
・同姓同名を含めるかどうか
・「渡辺/渡邊」「斉藤/斎藤」など同じ読みで漢字が違うパターン
・「小谷=こたに/おだに」など同じ漢字で読みが違うパターン
・(現実的な)長い名前
・(現実的な)短い名前
・外国人(漢字表記なし/長い/ミドルネーム/逆姓名表記)
・外字を必要とする名前
・「江戸川乱歩/雪舟/ビートたけし」などの芸名、ペンネームへの対応

などなど、ちょっと考えただけでも意外と奥が深いものです。

2009年4月9日木曜日

フォルダのサイズを求めるJavaプログラム

今回はシンプルにJavaのプログラムサンプルです。
指定したディレクトリの論理的なファイルサイズを算出します。
ディレクトリ内にある全てのファイルのファイルサイズを合計します。
サブフォルダーがある場合には、サブフォルダー内のファイルサイズも加算します。
階層がいくら深くなってもどんどん加算します。


コマンドラインコール例

C:\> java  DirSize
2315491 .
C:\>
コマンドラインコール例

# java  DirSize  /home/root
328530000 /home/root
C:\>


DirSize.java
/**
* ディレクトリのサイズを求める
*
*/
public class DirSize {
/**
* @param args the command line arguments
*/
public static void main (String args[]) {
String checkdir;

if (args.length < 1) {
checkdir= ".";
}
else {
checkdir= args[0];
}

try {
System.out.println(DirSize.size(new File(checkdir)) +"\t"+ checkdir);
}
catch(Exception e) {
e.printStackTrace();
System.out.println(e.toString());
}
}

static long size(File file) throws IOException {
long size = 0L;
if (file == null) {
System.out.println("ERR: ディレクトリが見つかりませんでした。");
return size;
}

if (file.isDirectory()) {
File files[] = file.listFiles();
if (files != null) {
for (int i=0; i < files.length; i++) {
size += size(files[i]);
}
}
}
else {
size = file.length();
}
return size;
}
}

2009年4月8日水曜日

ApacheTomcatの設定をCGI確認用に変更する

1.$CATALINA_HOME/conf/server.xmlを変更する
  ・ポート番号を「8080」から「80」へ変更
   94行目: 
  ・

2. コンテンツを入れる
 $CATALINA_HOME/webapps/ROOT/ ディレクトリの中身を全て削除する。

 $CATALINA_HOME/webapps/ROOT/ にコンテンツをアップロードする。

3.httpファイルの確認
 http://localhost/
  ・静的なコンテンツの確認ができます。
  ・デザインや外部リンク/内部リンクの確認
  ・文字化け等の確認


-------------------

CGI部分の確認

まず、「%CATALINA_HOME%\server\lib」フォルダ以下のservlet-cgi.renametojarファイルを、servlet-cgi.jarに名前を変更します。

1.$CATALINA_HOME/conf/web.xmlを変更する

PuppyLinuxにApacheTomcatをインストールする

1.ApacheTomcatをダウンロードする。
 http://tomcat.apache.org/ から[Download] => [Tomcat5.5]を選ぶ。
 ([Tomcat6.x]もありますが、不必要に最新版を求める必要はありません。ここでは使い慣れたTomcat5.5を採用します。)
 
 [5.5.27] => [Binary Distributions] => [Core] => [tar.gz]
をダウンロードします。
  apache-tomcat-5.5.27.tar.gz

2.Tomcatを解凍する。
 '/opt'に解凍することにしました。
Tomcatを解凍
# cd /opt
# tar -xvzf /root/apache-tomcat-5.5.27.tar.gz
/apache-tomcat-5.5.27/......
/apache-tomcat-5.5.27/......
:
:
#
'/opt/apache-tomcat-5.5.27/'ディレクトリが作成されます。

3.環境変数「CATALINA_HOME」を設定する。
環境変数の設定('/root/.bashrc'に追記する)

export CATALINA_HOME=/opt/apache-tomcat-5.5.27

いったん、ターミナルを閉じる。

4.TOMCATを起動する。
Tomcatを起動
# $CATALINA_HOME/bin/startup.sh
Using CATALINA_BASE: /opt/apache-tomcat-5.5.27
Using CATALINA_HOME: /opt/apache-tomcat-5.5.27
Using CATALINA_TMPDIR: /opt/apache-tomcat-5.5.27/temp
Using JRE_HOME: /opt/jdk1.6.0_10
#
5. TOMCATの動作を確認する
Webブラウザ
http://localhost:8080/
かわいくないトラ?ネコ?のマークが表示されれば成功です!

(補足)TOMCATを停止する。
Tomcatを停止
# $CATALINA_HOME/bin/shutdown.sh
Using CATALINA_BASE: /opt/apache-tomcat-5.5.27
Using CATALINA_HOME: /opt/apache-tomcat-5.5.27
Using CATALINA_TMPDIR: /opt/apache-tomcat-5.5.27/temp
Using JRE_HOME: /opt/jdk1.6.0_10
#

2009年4月6日月曜日

PuppyLinuxにsunのJavaSE(JDK/SDK)をインストールする

CGI動作確認環境を作成するために、PuppyにWebサーバーをインストールする。
Webサーバーには「Jakarta-Tomcat」をインストールすることにしました。

”CGIの動作確認に なぜ? 「Apache HTTPD」を使わないのか?”
という疑問をお持ちになる方が居るかと思いますが、説明が長くなるので"いろいろ検討した結果「Tomcat」がベスト!"との結論に達した。とだけ答えておきます。
選択理由に興味がある方はコメントください。

Tomcatの動作にはJavaが必要です。それも、普通のJavaRE(ランタイム)ではなく、JavaSE(開発キット)版が必要になります。こいつをインストールした時点でPuppyは「かわいい子犬」から「獰猛な大型犬」へ変身してしまいます。USBブートだの1CDだのという贅沢はとは決別して「FULLインストール」してください。
以降、「FULLインストール」でのやり方。
  OS: PuppyLinux 4.1.2.1 日本語版 (Full install)
  H/W: Virtual PC (128MB) - Windows XP


* PuppyLinuxにsunの純正JavaSE(JavaDevelopmentKit / Sdk)をインストールする。

1.JavaSEのSTSをダウンロードする。
PuppyのPET置き場から「jdk_netbeans-1.6u10_6.1.sfs」をダウンロードする。
http://www.puppylinux.ca/tpp/bugs/

2.ダウンロードしたファイルをpuppyのファイルマネージャでクリックすると、ファイル内に「root / opt / usr」の3つのディレクトリが見えます。この3つのディレクトリをまるごと「/」ルートディレクトリに上書きコピーします。

3. puppyを再起動させてください。

Javaの起動確認
# java -version
java version "1.6.0_10"
Java(TM) SE Runtime Environment (build 1.6.0_10-b33)
Java HotSpot(TM) Client VM (build 11.0-b15, mixed mode)
#
'/opt/jdk1.6.0_10'にインストールされます。
リンク:'/usr/java'は、
'/opt/jdk1.6.0_10/jre'を指し示しています。


環境変数の設定('/root/.bashrc'に追記する)

export JAVA_HOME=/opt/jdk1.6.0_10

2009年4月3日金曜日

Apache2.2 のPETパッケージを作成してみた

PuppyLinux 4.1.2.1用のPetパッケージをソースからコンパイルして作成してみました。


[httpd-2.2.11-i686.pet] - Apache 2.2.11

インストールすると、「/usr/local/apache2」ディレクトリ配下に展開されます。
自動起動はしません。

Apache2の起動
#  /usr/local/apache2/apachectl start
httpd (pid 3916) already running
#
Apache2の停止
#  /usr/local/apache2/apachectl stop
#

Webコンテンツは、「/usr/local/apache2/htdocs」ディレクトリ配下に配置してください。


再度PETパッケージを作成するには(パッケージ作成者のみ)
Petの再作成
#  cd /root/mypet
# tar -c -f httpd-2.2.11-i686.tar httpd-2.2.11-i686/
# gzip httpd-2.2.11-i686.tar
# tgz2pet httpd-2.2.11-i686.tar.gz
#