Fedora Core5
Fedora Core5で作るネットワークサーバー構築ガイドを購入しました。
SOBA Project, Inc.でホスティングしているサーバーはLinux系のものが多いのですが、この本は非常に便利です。
一般的な本に書かれているWebサーバーやメールサーバーの立て方のみならず、RAID5やVPN、LDAPについても詳しく書かれています。
« 2006年09月 | メイン | 2006年11月 »
Fedora Core5で作るネットワークサーバー構築ガイドを購入しました。
SOBA Project, Inc.でホスティングしているサーバーはLinux系のものが多いのですが、この本は非常に便利です。
一般的な本に書かれているWebサーバーやメールサーバーの立て方のみならず、RAID5やVPN、LDAPについても詳しく書かれています。
Yahooで買ったものにポイントがつくサービスがあるのですが、ポイントはいつかは使用期限が来てしまいます。私のYahooポイントも12月末に切れるようなので、Yahooで物を買わないといけなくなりました。
それで見つけたのがこれです。
私はいわゆるスーパーカーブームのときに小学生だった世代です。
これは京商のモデルですが、シフトノブやシートベルト、エンジンにいたるまで精巧によくできています。
私の場合、Yahooポイントが切れることがなければ、物を買わなかったと思うので、こうゆうビジネスはよくできていると思います。よい意味で人に購買意欲をわかせるような物の売り方、そして製品を作らないといけないと思います。
本日は某所に出張しました。
開発の仕事をしていると出張は少ないですが、たまに外に出るのは気分転換にもなるし
お客様の声を聞くのは、開発のためにも非常に役に立ちます。
Javaで次のような関数呼び出しを行ったとします。
try {
System.out.println("My address=" + java.net.InetAddress.getLocalHost().toString());
} catch (UnknownHostException e) {
e.printStackTrace();
}
私のメインのマシンでは、正常にホスト名を表示します。
ところが、ホスト名を日本語にすると、UnknownHostExceptionをはくようです。
このあたりはJavaの実装が甘いのではないかと思ったりもします。
解決方法として、Java1.4から導入されたjava.net.NetworkInterfaceクラスを用いて、
まず、NICを取得する。
java.util.Enumeration enuIfs = NetworkInterface.getNetworkInterfaces();
while (enuIfs.hasMoreElements())
{
NetworkInterface ni = (NetworkInterface)enuIfs.nextElement();
}
次に、それぞれのNICに対して、IPアドレス、ホスト名を取得する
java.util.Enumeration enuAddrs = ni.getInetAddresses();
while (enuAddrs.hasMoreElements())
{
InetAddress in4 = (InetAddress)enuAddrs.nextElement();
in4.getHostAddress();
in4.getHostName();
}
こうすれば、当然ながらExceptionは発生しません。
ただし、getHostName()では日本語のホスト名ではなく、やっぱりIPアドレスが取得されます。
eclipseは間違いなく最強のJava開発ツールです。
私の周りでは、少し前までは、emacs + javac + jdb という玄人っぽい開発者も見かけましたが、
現在SOBA Project, Inc.ではほとんど全員がeclipseを使っています。
SOBAはほとんどのコードはJavaで書かれているので、eclipseの恩恵は計り知れません。
私は、ブレークポントを設定しておいて、一行おきにデバッグするノーマルなデバッグが好きですね。
これで、開発初期のほとんどの不具合は回避できます。
もう少し複雑な不具合の場合、JProfilerなどのプロファイラーを使用します。
Javaで参照が残ったままだと、メモリリークする可能性がありますが、JProfilerを使用すると簡単に見つけられます。
この主のツールは英語版のみでほとんどOKです。
日本語訳をたまに見ますが、よく訳を間違えていますね。
SOBA Project,Inc.では一定のコーディングルールを決めています。
基本はeclipseのデフォルトformatterを使用しますが、一部分だけSOBA独自の決まりがあります。
たとえば、TABは使用せず、必ず、インデントは4行スペースにしています。TABそのものは便利ですが、エディターによっては崩れることもあるので、SOBAでは使用しないようにしています。
その他、多少の規則を決めています。
コーディングルールを定着させておくと、デバッグなどで他人が書いたソースを読むときも可読性が上がるのでよいです。