These pages are written by only Japanese.

Welcom to My Diary.com
最新の日記タイトル一覧カテゴリ別タイトル一覧トップへ戻る〜

おはようございます♪ 現在は5月1日(水)5時3分。 外が白んでくる時間です。


hns - 日記自動生成システム - Version 2.19.5 (色々 Fixed)

先月 2003年02月 来月
01
02 03 04 05 06 07 08
09 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
Namazu for hns による簡易全文検索です。
詳細は 詳細指定/ヘルプをご参照下さい。
検索式:

2003年02月01日(土)(自宅)

(自宅)

行事終了

始めから予想してましたが、反省点ばかりが目立ちました。
幹事なので下座だと思って座った場所が、 実は上座だった *1 のが一番軽い反省点といえる程、減点だらけの一日で、 達成感とは無縁な気分で今日の一日は終わりました。
ここ半年程は自爆してばかりで、達成感とは無縁な状態が続いてますが…
*1: 入口に一番近いところに座ったのですが、 実はもう一つ入口がありまして…
いえ、会場の係の人に確認しておかなかった自分が悪いのですけど…


2003年02月02日(日)(自宅)

(自宅)

ほぼ一日通して死に体

昨日の余韻で夕方位になるまで、頭が真っ白でした。

[memo] メモ

日経B2O できる奴ほどよく眠る:

日常生活における反省点を沢山見付けました。
この平日の借りを週末で、というような、
まるで借金を返すような感覚で睡眠を考えるのは間違い。
まさしく、これを実践してました。
10代の間は無理が効きましたが、 ここ数年は、体がつらくなっているのを実感してます。
更に最近は、平日中に終わらなかった仕事を休日にやってますので、 借金が膨らみっぱなしです。
仕事から帰ってきて体がだるいとき、
確かに熱い風呂に入ればすっきりするでしょう。しかし、
それは疲れが取れた、というのとは違う。むしろ逆です。
だるいのは、体が眠りの準備を始めたというサインなのに、
熱い風呂に入ると、体温が上がって体が活動的な状態になってしまう。
これではせっかく眠りの準備が台無しで、良い眠りに入れるわけがありません。
寝る直前に熱いお風呂に入っていましたが、逆効果なのですね ただ、ぬるいお湯は、お風呂から上がった後が寒いので、 冬の間は、できれば熱いお湯に入りたいのですが…

PageRankをあげるために:

ZDNet エンタープライズ:Slammerが残した真の問題点と教訓:

[bookmark] ぶっくま〜く

http://www.gnu.org/software/commonc++/ common c++ 様のサイトで知りました。
Network から XML まで何でもありの無節操(←賞讃しているつもり)な ライブラリのようです。C++ はしばらく利用しない気もしますが、 後で辿れるようにブックマーク。

Windows Media Player9 download:

試す暇はありませんが…

Galatea FlashGuide Integrating Axis - Tomcat 4.x on Unix:

Hobbit's PDF Library:

Hobbit's PDF Libraryは,Javaを使って PDF(Portable Document Format)ファイルを
手軽に作成するためのパッケージライブラリです. 

java2 ee for linux

yoya@awm.jp% sh j2sdkee-1_4-beta-linux.sh
Using /var/tmp as temporary directory...
Searching for Java(TM) 2 Platform, Standard Edition...
Initializing InstallShield Wizard...
ERROR: could not initialize interface awt - exception: java.lang.InternalError:
Can't connect to X11 window server using ':0.0' as the value of the DISPLAY variable.
VNC のウィンドウで実行して、 聞かれるにボタンを押していってインストール完了です。
インストール先がデフォルトでは、
/${HOME}/j2sdkee1.4
となっていましたので、
/usr/java/j2sdkee1.4
に変更しました。

axis deploy

ある日、example の deploy が動かなくなりました。
[yoya@ns axis]$ java org.apache.axis.client.AdminClient  samples/userguide/example3/deploy.wsdd
- Exception:
java.lang.NullPointerException
        at org.apache.commons.discovery.resource.ClassLoaders.getAppLoaders(ClassLoaders.java:206)
	<略>
        at org.apache.axis.client.Service.getEngineConfiguration(Service.java:731)
        at org.apache.axis.client.Service.getAxisClient(Service.java:140)
        at org.apache.axis.client.Service.<init>(Service.java:149)
        at org.apache.axis.client.AdminClient.<init>(AdminClient.java:123)
        at org.apache.axis.client.AdminClient.main(AdminClient.java:339)
こういう場合は、100発100中 CLASSPATH が悪いと思い、 CLASSPATH のファイルを一気に減らしてみました。
cd lib
mkdir java.taihi
mv java/* java.taihi/.
. ~/.bashrc
尚、.bashrc では lib/java/*.jar を片っ端から CLASSPATH にいれる処理をしてます
この状態ですと、
yoya@awm.jp% java org.apache.axis.client.AdminClient  samples/userguide/example3/deploy.wsdd
- Processing file samples/userguide/example3/deploy.wsdd
- <Admin>Done processing</Admin>
問題ありません。 ここから、少しずつ CLASSPATH に追加していきます。
mv java.taihi/[A-m] java/.
↑言ってる事とやってる事が違ってる気もしますが…
yoya@awm.jp% java org.apache.axis.client.AdminClient  samples/userguide/example3/deploy.wsdd
<ERROR 時:分:秒,518 AdminClient:347> Exception:
java.lang.NullPointerException
        at org.apache.commons.discovery.resource.ClassLoaders.getAppLoaders(Clas
sLoaders.java:206)
	<略>
# 「時:分:秒」は実際の作業時間の値が入ります。
やはり、一度に移動しすぎました。
mv  java/[h-g]* java.taihi/.
yoya@awm.jp% java org.apache.axis.client.AdminClient  samples/userguide/example3/deploy.wsdd
- Exception:
java.lang.NullPointerException
at org.apache.commons.discovery.resource.ClassLoaders.getAppLoaders(ClassLoaders.java:206)
これで、[A-g]*.jar 内に犯人候補を絞りこめました。
そして、最後の一個…
mv java/commons-discovery.jar java.taihi/.
yoya@awm.jp% java org.apache.axis.client.AdminClient  samples/userguide/examp
le3/deploy.wsdd
- Processing file samples/userguide/example3/deploy.wsdd
- <Admin>Done processing</Admin>
こいつのようです。
axis のパッケージを import したコードをコンパイルする為に、 axis の lib に CLASSPATH を通しているのですが、 axis の lib の jar と衝突してたのでしょう。多分…
ですので、重複するファイルを消します。
cd ~/lib/java
yoya@awm.jp% rm commons-discovery.jar
yoya@awm.jp% rm commons-logging.jar
yoya@awm.jp% rm log4j-1.2.4.jar
yoya@awm.jp% rm saaj.jar
yoya@awm.jp% rm wsdl4j.jar
ごみ掃除が終わり、すがすがしい気分で deploy を実行。
yoya@awm.jp% java org.apache.axis.client.AdminClient  samples/userguide/example3/deploy.wsdd
yoya@awm.jp%
あれ…? 何も返事がありません…
yoya@awm.jp% java samples.userguide.example3.Client こんにちは

You typed : こんにちは
少し気持ち悪いのですが、これで動くので解決した事にします。

2003年02月03日(月)(自宅)

(自宅)

ツッコミの才能

技術者に必須の才能だと、最近よく思います。

仕事

この悔しさをバネにして生きてゆきます… (´Д⊂ヽ
駄目人間だと思われるのは構わないのですが、 実際に駄目な行動を取ってる自分が嫌な訳で…
現実は無情です。

お昼はかなり駄目…:

昔からそうですが、説明能力のなさ加減があまりに度を越してるのを実感する度に、 小学生からやり直したい気分になります。
叶わぬ夢ですが。

夕方はもっと駄目…:

査問会終了
もう、あんな屑コードは二度と *1 書かないぞ。と、お星様に誓ってみます。

new FileHandle:

査問会で問い詰められた問題の一つですが…
バージョンによって、
my $fh;
open($fh, "〜");
↑このコードでは特定のバージョンの perl でエラーが出るので、
my $fh = new FileHandle;
open($fh, "〜");
↑こちらに変更した件について説明したところ、 new FileHandle しないと open できない状況には誰もなった事が無いらしいそうで。
もしかして、何か勘違い or 見落としていたのかもしれません。
ただ、FileHandle の流儀にのっとるのであれば、
my $fh = new FileHandle;
$fh->open("〜");
もしくは、
my $fh = new FileHandle "〜";
ですので、中途半端ではありますが…

*1: 既に前科を持つが故に、何も言い訳が出来ない状況に陥っていますが…

[bookmark] ぶっくま〜く

お風呂でも IRC やメール書きをやりたいという話しをしたところ、 m 様から教えて頂きました。

タフブック @ Panasonic:

D Programming Language:

NetBSD で RMI サーバー起動失敗

yoya@alt% rmiregistry
yoya@alt% rmid
Activation.main: an exception occurred: File too large
java.io.IOException: File too large
        at java.io.RandomAccessFile.setLength(Native Method)
        at sun.rmi.log.ReliableLog.initializeLogFile(ReliableLog.java:472)
        at sun.rmi.log.ReliableLog.openLogFile(ReliableLog.java:452)
        at sun.rmi.log.ReliableLog.snapshot(ReliableLog.java:313)
        at sun.rmi.log.ReliableLog.<init>(ReliableLog.java:134)
        at sun.rmi.log.ReliableLog.<init>(ReliableLog.java:158)
        at sun.rmi.server.Activation.startActivation(Activation.java:143)
        at sun.rmi.server.Activation.main(Activation.java:1977)
もしかして、NetBSD1.6J + JDK1.3 の組み合わせで、 rmi は動かせないのでしょうか‥
一旦 *1 、IPv6 を捨てて NetBSD から Linux に乗り換える予定です。
*1: IPv6 router を入手するか、新規にマシンを購入するかは決めていませんが…

2003年02月04日(火)(ロマンスカー) BGM:ショスタコーヴィチ交響曲第8/10/11番

(ロマンスカー) BGM:ショスタコーヴィチ交響曲第8/10/11番

仕事

やっつけ仕事のつもりでなくても、結果的にそうなってる事を実感しました。 もう少し、何とかならないかとも思いますが…
解決法としては、 もっと資料を読み直して、 もっと過去のメールを読み返して、 今までの経緯を繰り返し思い出せって事でしょう。
あと、時間の大切さがまだまだ分かっていない所も、 修正しないと。社会人としては失格なままです。

ロマンスカーで帰宅

今日は通院の日ですが、普通に帰宅すると、 病院に間に合いそうもない時間まで仕事が終わりませんでした。
そうなりますと、 選択肢としてロマンスカーしか残っていません。
最近、また利用率が増えつつあるような気がします。

病院

筋肉の強化により改善の方向へ向かっています。 残念ながら、まだ病院通いは続きそうです。
筋肉が落ちると腰痛が再発しそうですので、 ストレッチや筋肉トレーニングは欠かせなくなりました。

マイクロ総研、OPT90などをWindows Messengerに対応させるファームウェア

awm.jp のルーターとして利用している OPT90 のファームも、 近いうちに更新する予定です。

[keyword] 検索きーわーど

bktr2jpeg:

Time::HiRes:

use Time::HiRes;
my $now = Time::HiRes::time;
これでマイクロ秒単位の時間の取得できます。 *1
自分は差分にしか興味がないので、いつから始まるかとか、 いつカウンタがひっくりかえるか等には興味がありません。(えー
いえ、興味がありつつも、調べるのをさぼってるだけですが…
だいたい精度も知りませんし…

*1: のはずですが、Linux で動かすと小数点以下は五桁(10μsec 単位)のような‥

[memo] メモ

<TWP特報> スクープ・テロ国家の原点 ロシアで制作された衝撃のドキュメンタリー:

前回の番組後、北朝鮮大使館から脅迫を受けました。
私たちが大胆にも北で何が起きているかを報じたためです。
この脅迫は北朝鮮の犯罪的性質の活動を証明しています。
だからこそ、現代の“偉大な指導者”金正日について放映する必要があります

2003年02月05日(水)(自宅)

(自宅)

仕事

昨日、駄目出しされた資料を修正して再レビュー。 とりあえず、次の段階へ進めそうです。

査問会

禊が必要な事は、頭では理解しているつもりなのですが、 行動に移せないという事は、理解してないという事ですよね…

[keyword] 検索きーわーど

implicit declaration of function `int close(...):

今まで自分が見てきたシステムでは、unistd.h をインクルードすれば、 close のプロトタイプ宣言が取り込まれて、警告を消す事が出来ました。
man で section 2 の close のマニュアルを読めば、 どのヘッダをインクルードすれば良いのかが載っています。

fork linux シグナル signal:

google でトップに来てました。
ごめんなさい。ごめんなさい。ごめんなさい。

Perl 子プロセスの終了:

wait システムコールで待てます。# 投げやりな回答。

perl 複数の子プロセス fork:

net.jxta.tls.password:

これを指定しないと、GUI でダイアログが開いて、ユーザ名(というか、principal)とパスワードの入力を求められます。
net.jxta.tls.principal と net.jxta.tls.password を -D で定義したり、 プログラム内で System.setProperty 等を使って同等な状態を作れば、 上記のダイアログは開きません。
開発中に、JXTA を何度も起動したり停止したりを繰り返すと、 このダイアログが 非常に邪魔に感じますので、 net.jxta.tls.* にはよく御世話になっています。

2003年02月06日(木)(自宅)

(自宅)

お食事

帰りがけに u 様達とお食事。

apt-get

yoya@awm.jp% su
Password: 
# apt-get  upgrade
パッケージリストを読みこんでいます... 完了
依存情報ツリーを作成しています... 完了
以下のパッケージがアップグレードされます:
  cvs mew mew-common telnet telnet-server wget
6 個のアップグレードパッケージ, 0 個の新規パッケージ,
0 個の削除/リプレースパッケージ, 0 個の保留パッケージがあります。
取得パッケージ: 2204kB のアーカイブを取得します。インストール後は 12.9kB が解放されます。
続行しますか? [Y/n]y
取得:1 http://www.t.ring.gr.jp 2.6/i386/updates telnet 0.17.6x-23vl1 [45.0kB]
取得:2 http://www.t.ring.gr.jp 2.6/i386/updates cvs 1.11.2-0vl3 [1148kB]
取得:3 http://www.t.ring.gr.jp 2.6/i386/updates mew 2.3-0vl1 [509kB]
取得:4 http://www.t.ring.gr.jp 2.6/i386/updates mew-common 2.3-0vl1 [146kB]
取得:5 http://www.t.ring.gr.jp 2.6/i386/updates telnet-server 0.17.6x-23vl1 [27.8kB]
取得:6 http://www.t.ring.gr.jp 2.6/i386/updates wget 1.8.1-0vl4 [328kB]
取得完了: 2204kB を 0s (3224kB/秒)
	  <略>

ぶっくま〜く

単一チップで40Gbpsを提供できる独自VLSIを搭載したルーターが出展:

ZDNN:プリンタトナーの“ぼったくり”に警鐘を:


2003年02月07日(金)(自宅)

(自宅)

分散ストレージ

ピアツーピア型広域分散ストレージのための高速コンテンツ発見:

似たコンテンツを沢山探す場合に、全部 DHT で処理をすると、 クエリの数がコンテンツ数に比例してしまう事への改良案のようです。
  • 似た時間にアクセスされたコンテンツを関連するコンテンツと推測
  • 関連コンテンツを近傍に配置してクラスタとする
  • 広域検索では分散ハッシュテーブル (DHT: Distributed Hash Tablel) でクラスタを探す。
  • それからクラスタ内を検索する。近傍にあるので高速。

次世代インターネット調査報告書:

第3章の 分散ストレージと Grid コンピューティング が要チェックです。
分散ストレージネットワーク技術の特許を出願しているそうですが、 どの辺をガードしちゃってるのかによって、自分のやる気が左右される訳でして…

JIRO:

Java + JINI を基盤とした分散ストレージシステムのようですが、 今、このページが読めなくて詳しい事が分かりません。

d2ml XMLデータタイプ:

分散する時に管理しなければならないデータが列挙されていて、 勉強になるかもしれません。

メモ

「『デフレ』に動じない中小企業経営者に学べ」(その1):

[bookmark] ぶっくま〜く

バチカンが宣言!――『ハリー・ポッター』を読むのは「罪」にあらず:

ヤフーオークションの闇:

MSNがOpera7では正常に表示されない〜MSNの対応に問題があるとOpera側が非難:

検索ワード

java File データ消去:

これを見ると、
File file = new File("〜");
file.delete();
といった感じでしょうか。

割り込みハンドラとは:

google で探せば、 といった答えが先頭に来ます。さすが…

ERROR: could not initialize interface awt:


2003年02月08日(土)(自宅)

(自宅)

アジャンタ

辛過ぎてあまり食べられませんでした…

いきなり始めるJXTAプログラミング

いい感じの説明です。
java  -Dnet.jxta.tls.principal=yoya -Dnet.jxta.tls.password=<秘密のパスワード> net.jxta.impl.peergroup.Boot
	<略>
JXTA> 
ぉぉっ。これで、GUI 無しで JXTA shell をいじれますし、 標準入力からコマンドを流し込んで、バッチ的な処理も出来そうです。
試しに、コマンドを一つ作って遊んでみます。

JXTA Shell コマンドの作成に挑戦:

yoya@awm.jp% cd ~ 
yoya@awm.jp% mkdir -p ~/net/jxta/impl/shell/bin/test/
yoya@awm.jp% cat > ~/net/jxta/impl/shell/bin/test/test.java
package net.jxta.impl.shell.bin.test;
import net.jxta.impl.shell.ShellApp;

public class test extends ShellApp {
        public int startApp (String[] args) {
                println("This is TEST. a.b.c..");
                return 0;
        }
}
^d
yoya@awm.jp% javac ~/net/jxta/impl/shell/bin/test/test.java
yoya@awm.jp% ls ~/net/jxta/impl/shell/bin/test/
test.class  test.java
実行
java  -Dnet.jxta.tls.principal=yoya -Dnet.jxta.tls.password=<秘密のパスワード> net.jxta.impl.peergroup.Boot
Jxta is now taking off. Please fasten your seat belts and extinguish all smoking materials.
<略>
JXTA>test
This is TEST. a.b.c..
JXTA>man
      <略>
test        No description available for this ShellAppxs
      <略>
man で表示する情報を与えていません。 getDescription メソッドを追加します。
public class test extends ShellApp {
       <略>
    public String getDescription() {
        return "TEST command. (c) yoya";
    }
}
もう一度 man を実行 *1
JXTA>man
      <略>
test        TEST command. (c) yoya
JXTA>man test
No help available for this ShellApp
今度は、help メソッドを追加
    public void help() {
        println("without arguments");
    }
JXTA>man test
withiout arguments

*1: JXTA を起動し直さないと反映されませんでした コマンドの class は、一度 load したら、 それを使いまわし続けるのかもしれません。

[news] ニュース

プロジーのDivXコンバータにGPL違反の疑い:

会社で話題になっていました。

2003年02月09日(日)(自宅)

(自宅)

NetBSD で net.jxta.impl.peergroup.Boot

先程は、Linux2.4 + JDK1.4 で試して、 今回、NetBSD1.6J + JDK1.3 で同じ事を試したのですが、 今度はプロンプトが出ません。
やはり、この環境は捨てるしかないのかも…
う〜ん。NetBSD でも Java できるぜって実証したかったのですが…
すみません。いますぐ OS を Linux に入れ換えて良いですか? > alt.awm.jp 関係者

ツッコミ:いい加減、生活マシンで遊ぶのやめい:

ぅぅぅ…
Linux 入れたら VMware でも動かして、周りに迷惑をかけない方法を模索してみます。

vip.awm.jp 不安定

まれに電源入れてもいっこうに画面が表示されない事があったのですが、 今日は、何度も起動し直さないと表示されないようになりました。
よくよく注意してみると、画面が表示されない時は、 ので、VGA カードの問題ではなく、BIOS の問題のような気がします。 また、 という条件から、CMOS 電池がへたってきたと推測し、 電池 ( Panasonic CR2032 ) を取り出して汚れを拭いてみました。
起動できました。(^^;
電池を買ってきて取り換えた方がよさそうです。

ニュース

NTT、3月からIP電話:

家庭のパソコンを常時接続できるADSL(非対称デジタル加入者線)を使って
電話をかける仕組みで、IP電話から固定電話への通話は全国一律3分8円となる
続く

2003年02月10日(月)[天気:曇り](帰りの電車) BGM:ブルックナー交響曲

[天気:曇り](帰りの電車) BGM:ブルックナー交響曲

日記の文体

ここしばらく、日記を書く際に文体を丁寧にしようと 心がけて来ましたが、 結局のところ、文章の内容が薄いままで文体だけ丁寧にしても、 読みにくい事に変わりが無い事に気づきました。# イマサラ的
去年の日記ほど、いい加減な言葉使いに戻すのはどうかと思いますが、 少しずつ崩して、日記の中身とつりあいの取れる所まで戻す予定です。
# 完全に去年の状態に戻りそうな予感。

通勤中に目に毒な…

通勤中に電車の中で、 黒いふりふりドレスを着た女の人を見かけました。
見かけましたが… それがいわゆるぽっちゃり系 (←死ぬ程オブラートに包んだ超控えめな表現)でしたので、 全く持って目に毒(←思いっきり誤用)でした。
ゴスロリを侮辱するなぁ〜〜っっ!! (゜Д゜)
その視覚を介した精神攻撃のせいか、 崩れ気味な天気で腰が痛むせいか分かりませんが、 今日は頭に霞がかかったようで、非常に困ります。

お仕事

アルゴリズムはほぼ(部分部分、まだ曖昧な部分が残っていますが) コードと一対一対応するところまで詳細化しました (レビューで殆ど手直しされているので、詳細化をしたというより、 してもらった感じもしますが…)ので、 とにかく手を動かさなければならないのですが。
今の状態でコーディングを強行する事は、 天気の悪い冬の雪山に裸で登るようなもので、 無理して書くと、また駄目駄目なプログラムが出来てしまいそうなので、 明日に先送りします。
まだ、ダメ社員から脱出できていないようです。

ニュース

IP電話サービス『OCN .Phone』の本格サービス提供開始について @ NTT Communications:

これ の続き
昨日、日記に記録した URL の ですが、NTT でなく NTT コムですよね。
# ↑ 某氏のツッコミがあるまで気付きませんでした。
記事の中では、「NTT コム」と書かれていますので、 タイプミスで書き忘れたか、故意にごっちゃにしてるか、 どちらかだと思いますが、 今では、NTT は持ち株会社ですし、 NTT だけだと NTT 地域会社と思われそうなので、 ごっちゃにするのはどうかと思います。

エレコム、シールド加工した厚さ1.4mmのLANケーブル:

検索ワード

spawn posix:

end of non-void function:

loli .rm:

すみません。 そんなファイル持ってませんし、そういう趣味もないです…

2003年02月11日(火)(自宅)

(自宅)

今日のはまり所

今日は、JXTA を起動しても一向に RDV との接続が成功しません。
そこで、警告レベルを INFO から WARN に上げてみました。 INFO にしておくと見過ごすエラーがあると思ったからです。
<ERROR ??:??:??,143 ServletHttpTransport:588> Error starting HTTP server:
java.io.IOException: Problem starting Jetty: org.mortbay.util.MultiException\
[java.net.BindException: Address already in use]
これだ…
プロセスを確認すると、RMI の activation で JXTA プロセスが動いていました。 rmid は止めたのですが、どうやらそれでもプロセスが残る事があるようです。
kill -TERM で止まらないので、-KILL でプロセスを止めて、 JXTA を起動し直したところ、RDV との接続ができました。

[bookmark] ぶっくま〜く

WinSCP 2.2:

いつのまにか、2.2 までバージョンが上がっていました。
今まで 2.0 を使っていたのですが、2.2 にしてから段違いに快適です。

[memo] メモ

Slammer対策のポートフィルタリングでDNSに悪影響も〜JPRSが注意呼びかけ:

そういえば、昔、NTP でこれに似た問題に出くわした事を思い出しました。

ワールドカップの贈り物 # デンマーク代表:


2003年02月12日(水)(自宅)

(自宅)

今日は寒すぎ

あまりに寒いので会社を休みました。
夕方に近付くにつれて、休んで正解だという思いを強くしました。
今日の寒さは異常です…

2003年02月13日(木)(自宅)

(自宅)

人生最悪の日 (謎

何もかもが駄目な週… 会社の中でも外でも…
蜘蛛の巣にかかった蝶のような気分です。 もしくはギロチン台の階段を登っているような…

雑多なお話

MOT:

最近は、MBA ばかりでなく MOT のような、 経営・技術、両方に精通する人材が求められるそうで。
# 自分は今のところ *1 どちらもダメですが…
技術基盤が揃ってきて、かつ使う技術要素の選択肢が増えてきた現在、 顧客の曖昧な願望から、 明確な要求仕様にまで練り上げる能力が重要になってきているけど、 日本人は、どうもそういう折衝が苦手な人が多いんじゃないかなと。
確かに、要求分析をする際には、
  • 実現したサービスで、どれだけの利益が得られるのか
  • そのサービスを構築するのにどの位のコストがかかるのか (そもそも、サービスを実現できるかのリスク)
といったところで、最大限の利益が得られるところに 落ち着かせると思うのですが、この辺の感覚も身につけていかないと 将来、役に立たない人材になるのかなと。思うわけです。
# 自分の場合は、頭を使う為の基礎力を何とかしないと、 永遠にスタートラインにさえ立てそうにありませんが…

P2P:

やはり、無線を使ったシステムの開発が流行りのようで…
<企業秘密ばかりでしたので、ここには何もかけません> (w
採算の問題で、表に出てこないだけで、 色々なアイデアを持っている人がいるのですね。
あと、P2P で一極集中な負荷を激減させるアプリケーションが 一般的になった場合、サービスプロバイダ(?)等のやっている 高価なサーバのリソースを切り売りする商売が 出来なくなるのではないかというありきたりな話も出ました。
peercast のような(そこそこ)実用的な *2 ツールもありますし、 そろそろ、現実的になりそうな話だと思います。 各社、どのようなビジネスモデルで攻めてくるのか楽しみです。

*1: 強がりをいってみるテスト
*2: 某ライブ実験ではブチブチ音が切れたり、 切断すると、次に繋げようとしてもなかなか繋がらなかったりと、 まだまだ問題はありそうですが…

「warning: recursive call.」エラー

このドキュメントは、FreeBSD の話ですが、NetBSD でも同様でした。
以下のように変えて実験してみます。
# $SIG{'CHLD'} = sub { shift; while( waitpid(-1,&WNOHANG)> 0) { } };
$SIG{'CHLD'} = 'IGNORE';

部長さまへ私信

!!!!!!
しょ… 紹介しるぅっっ!!!
コホン…
いえ… 冷静に考えますとですね。部長さまで 7,8才差という事は… <以下、自分の年齢が推測されそうな文章なので削除>

2003年02月14日(金)(自宅)

(自宅)

回復

お釈迦様が蜘の糸を…
閉塞感 *1 が緩和されてきましたので、 アイデアやコードの棚卸しを始めています。
*1: パニックともいいます

JXTA Shell 起動

shell だけ起動したい場合は、
import java.io.*;
import java.util.*;

import net.jxta.peergroup.*;
import net.jxta.peer.*;
import net.jxta.impl.protocol.*;


public class JxtaShell {
        public static void main(String []args) {
                JxtaShell test = new JxtaShell();
        }
        public JxtaShell() {
                try {
                        ResourceBundle jxtaRsrcs =
                                        ResourceBundle.getBundle( "net.jxta.impl.config" );
                        String platformPGClassName =
                                        jxtaRsrcs.getString( "PlatformPeerGroupClassName" ).trim();
                        String stdPGClassName =
                                        jxtaRsrcs.getString( "StdPeerGroupClassName").trim();
                        PeerGroupFactory.setPlatformClass(Class.forName(platformPGClassName));
                        PeerGroupFactory.setStdPeerGroupClass(Class.forName(stdPGClassName));
                        PeerGroup p = PeerGroupFactory.newPlatform();
                        p.startApp(null);
                } catch( Throwable e ) {
                        e.printStackTrace();
                }
        }
}
こんなので良いみたいです。
net.jxta.impl.peergroup.Boot のコード を丸写ししただけですが…
何をいいたいのかといいますと、 既に動いている JXTA のアプリケーションに上記のコードを利用 *1 して jxta shell の コンソールを開く事が出来れば、 rdvstatus や peers -r 等のコマンドで状態を把握したり、 自作のコマンドを外部コマンドとして登録して、 拡張機能を追加できるのではないかと…
コマンドの追加 は簡単ですし。
続く

rdvadd コマンドの追加 (失敗):

rdv を追加するコマンドの作成を試みました。 結果としては失敗なのですが、作業記録だけでも残します。
${WORK_DIR}/net/jxta/impl/shell/bin/rdvadd/rdvadd.java
に、以下のコードを置き、コンパイルを実施しました。 実行結果
JXTA>rdvstatus
	<略>

Rendezvous Connection Status:
____________________________

Is Rendezvous : [true]

Rendezvous Connections :

  [None]

Rendezvous Disconnections :

  [None]

Rendezvous Client Connections :

  [None]


JXTA>rdvadd http://alt.awm.jp:9700
<INFO 18:19:58,423 Shell:589> BEGINING OF COMMAND : rdvadd http://alt.awm.jp:9700
<INFO 18:19:58,437 HttpClientMessageSender:218> Ping OK  from : alt.awm.jp:9700
<INFO 18:19:58,442 HttpClientMessageSender:218> Ping OK  from : alt.awm.jp:9700
JXTA><INFO 18:19:58,454 WireFormatMessageBinary:471> sending class net.jxta.endpoint.NewMessage{63} to stream

<INFO 18:20:00,934 Shell:589> BEGINING OF COMMAND :
JXTA>rdvstatus
<INFO 18:20:02,774 Shell:589> BEGINING OF COMMAND : rdvstatus

Rendezvous Connection Status:
____________________________

Is Rendezvous : [true]

Rendezvous Connections :

  [None]

Rendezvous Disconnections :

  [None]

Rendezvous Client Connections :

  [None]


JXTA>
増えてくれません (ρ_;
まだまだ理解が不足しているようです…

*1: 実際にどう使えるかは、色々と調査/実験してみないと分かりませんが…

2003年02月15日(土)[天気:晴れ](ロマンスカー) BGM:「ダフニスとクロエ」組曲第二番 - ラベル作曲

[天気:晴れ](ロマンスカー) BGM:「ダフニスとクロエ」組曲第二番 - ラベル作曲

夜食を反省

昨晩、仮眠したつもりが、朝まで熟睡してしまいました。 あと、朝の目覚めが悪いのは、昨日の深夜、 晩御飯の余りを、無理して食べたせいでしょう。
夜食を取ると次の日の目覚めが悪いというのは、 何度も経験しているはずですが、全く反省が生かされていないようです。
# 馬鹿は死ななきゃ治らない。でも死んだら終わりなので。つまり、馬鹿は救われないという事でしょうか。

休日出勤

お昼に出社。 昨日、実施する予定の実験に、 準備不足で着手できなかったので、 今日はその埋め合せの作業です。
久々に出勤にロマンスカーを利用しました。 今日はよく晴れて、絶好のピクニック日和で、 窓から見る眺めも良いです。 ぅぅぅ‥ (ρ_;
暖かくなって体が完全に復調 *1 するまでは、ピクニックは自粛して、 ここ数ヵ月で遅延させてきた仕事を粛々と進めます。

環境構築:

プライベートネットワークを作る為に、 既に動いているサーバに、DEC の Ether カードを挿してみました。
Feb 15 17:08:41 cl◯ver /kernel: de0: system error: reserved #7
Feb 15 17:09:43 cl◯ver /kernel: de0: system error: reserved #7
Feb 15 17:13:46 cl◯ver /kernel: de0: system error: reserved #7
…壊れたかも…
仕方がないので、予備で持って来ておいた RealTek チップの載ったカードを使います…


今度は SCSI BIOS が動かなくなりますか…
しかも、RealTek なカードを外すと、SCSI BIOS 動いてるし…

… 2,3度カードの挿抜を繰り返した所、 どうも Ether カードとの組合せでなく、 単に SCSI カードの調子が悪いだけのようです。
Ether カードを取り替えて、SCSI が動かなくなったのは (恐らく)偶然…
rl0: flags=8802<BROADCAST,SIMPLEX,MULTICAST> mtu 1500
        ether 00:90:cc:??:??:??
        media: Ethernet autoselect (100baseTX <full-duplex>)
        status: active

※ ?? はプライバシーの問題で隠してます。:)
動きました。
今日は時間切れですので帰宅。 残り作業は明日以降に持越し…

*1: 多分、死ぬまで復調する事はなさそう。

Winamp ギャップレスモード

普通に、Winamp で複数の曲を連続して聴いていると、 曲と曲の間に(無音の)隙間が入ってしまいます。
クラシック等で楽章間で音楽が繋がっている場合に、 音がとぎれて曲を壊される事があり、 繋がる楽章は一つの mp3 ファイルにまとめるような事をしていました‥
ですが‥
「メニュー」 → 「オプション」→「プラグイン」
→「Output」→「Crossfading DirectSound output v1.3」
→「高度な設定」→「ギャップレスモード」
にチェックを入れると、隙間がなくなるのですね。 f(^^;
今まで気づかなかったのがどうかしているのですけど…

お買い物

プリント・サーバが一番の目当てでしたが購入できませんでした。
接続しようとしているプリンタが、 パラレルのポートが対応している事を確認して、いざ購入しようとした時、
あれ? パラレルだったっけ、ほんとに。
USB 接続じゃないよね。
という風に、途中で確認した事自体に確信が持てなくなり、 購入に踏み切れませんでした。
自分の記憶に自信が無いにも程がありすぎ…

ボイスレコーダー:

師匠のリサーチを信じて、 SANYO の DEGITAL TALKBOOK ICR-B80RM を購入しました。
使ってみて気になる欠点としては、
ID tag の表示が無い。
tag 入れるの面倒なので、自分は無くても良いです。
曲と曲の間にギャップが入る
倍音のつまった「きつい音」が強調される
ヴァイオリンやシンバル、クラリネットといった楽器の音がやたらと大きく聞こえる
内蔵スピーカーが付いている
イヤホンが抜けた途端に、周囲に音が洩れてカミングアウト… (w
といった所が思いつきます。
あと、64M byte の容量は少なく感じました。
12曲入れようとして、半分の6曲しか入りませんでしたので… (謎
ただ、これは 320k 圧縮のファイルを使用したからかもしれません。 今度からは、mp3 プレイヤー用に 64k 圧縮も作成しないと…
# また CD の山を押入れから引っ張り出さねば… (ρ_;
と、ここまで書いて、
お前はボイスレコーダーを買ったんだろ?
という突っ込みを受けそうなので、 ボイスレコーダーの出来について書きますと…
………
どう書けば良いのか分からないので、 某 O 線始発の S 駅で録音した音を晒して見ます。 雑音の多い電車の車内。扉の側。 しかも扉が開きっぱなしという状況で録音したにしては、 なかなかのものだと思います。
えっと、例として不適切な気もしますので、 今度、社内の会議を隠しどりして晒してみましょうか? (マテ
# … や… 冗談ですよ。冗談…
# 企業秘密以前にやばい会話も沢山ありますし…

ビットレート変換

押入れから、またあの CD の山を漁るのは気が滅入りますので、 音質が落ちますが、320Kbit → 64kbit で変換し直す事にします。
当初、 を試してみましたが、 フリー版では、4 つのファイルまでしか一括エンコードの処理が出来ない制限がありましたので、 ↑こちらに浮気しました。 から取得した lame_enc.dll を、AudioEncoder の exe ファイルのあるフォルダに 置いて、AudioEncoder を実行すれば lame で mp3 のエンコードが出来ます。
ビットレートを 64kbit で変換したのですが、 勝手に曲のサンプリング周波数が 44kHz から 22kHz に落とされました。
… と愚痴った所
<e> ビットレート下限があるんで仕方ないかと
<e> ステレオ 44kで64kは厳しいはず
なるほど…

低ビットレートへの再エンコード:

元の音に比べて音程がわずかに上下して、 気持ち悪いような良いような。f(^^;
歪んだレコードを聞いているような気分です。
量子化雑音が増幅されている所も含め、 まさしくレコードのような音質です。
CD から抽出した PCM 音源から、64kbit エンコードした時は、 それほど音質の劣化が気になった事がなかったので、 低ビットレートというより、再エンコードの問題だと思います。 まぁ、ぼーっと聞いてる分には気になりませんが…
ボイスレコーダの入手という当初の目的を完全に忘れてみるテスト

2003年02月16日(日)[天気:雨](自宅) BGM:チャイコフスキー交響曲第1番〜6番

[天気:雨](自宅) BGM:チャイコフスキー交響曲第1番〜6番

寒い

。。。 ぅぅぅ (ρ_;
まだ、会社帰りに寄り道をする体力は残っていないようです。
昨日は、晴れている割に 非常に冷え込んでいたという事もありますが。

JXTA 調査 properties ファイル

.properties に関して調べました。
JXTA Shell を起動しているプロセスが開いているファイルを strace で盗み見するという荒っぽい方法を使っています。
yoya@awm.jp% strace java -Dnet.jxta.tls.principal=yoya \
	     -Dnet.jxta.tls.password=<内緒> JxtaShell >& jxtashell.strace

JXTA Shell 以外でしか開かない properties ファイルもあるかも しれませんので、これが全てという訳ではありませんが、 参考程度にはなるかもしれません。

.properties 列挙:

yoya@awm.jp% grep properties jxtashell.strace
lstat64("/usr/java/j2sdk1.4.1_01/jre/lib/logging.properties",
{st_mode=S_IFREG|0444, st_size=2245, ...}) = 0
open("/usr/java/j2sdk1.4.1_01/jre/lib/logging.properties", \
O_RDONLY|O_LARGEFILE) = 5
      <略>
stat64("/usr/java/j2sdk1.4.1_01/lib/net/jxta/user_ja_JP.properties", \
0xbfffbb84) = -1 ENOENT (No such file or directory)
stat64("/usr/java/j2sdk1.4.1_01/jre/lib/net/jxta/user_ja_JP.properties", \
0xbfffbb84) = -1 ENOENT (No such file or directory
このように grep を書けているので、もしかしたら見逃しているのも あるかもしれません。m(__)m
properties ファイルを探索する順序ですが、 「/usr/java/j2sdk1.4.1_01/jre/lib/logging.properties」 を除いた残り全ては、 $PWD, $JAVA_HOME/lib/, $JAVA_HOME/jre/lib/ の順でファイルを検索していました
JXTA の properties
net/jxta/impl/config.properties
net/jxta/impl/config_ja.properties
jxta.properties
net/jxta/user.properties
net/jxta/user_ja.properties
net/jxta/user_ja_JP.properties
Log4J の properties
log4j.properties
cryptix の properties
cryptix/asn1/lang/lang.properties
cryptix-lib/Cryptix.properties
Cryptix.properties
META-INF/Cryptix.properties
cryptix/Cryptix.properties
cryptix-lib/Local.properties
Local.properties
META-INF/Local.properties
cryptix/Local.properties
cryptix/asn1/encoding/encoding.properties
Java 自身の properties
logging.properties
sun/awt/resources/awt_ja_JP.properties

jxta.properties - HTTP Configure:

jxta を起動した時の current directory に jxta.properties を置く事で、 JXTA が起動する HTTP サーバのパラメータを変える事が出来ます。
# JXTA Properties

# How long (in millis) the sessions/leases are for relay leases.
RelayServer.LeaseLength = 1800000

# The minimum and maximum size of the thread pools for the http server
HttpServer.MinThreads = 10
HttpServer.MaxThreads = 200

# how long (in millis) an http request has to finish transferring before the
# http server discards the request (in millis)
HttpServer.MaxRequestReadTime = 60000

# how long (in millis) a thread in the thread pool is allowed to be idle before
# it is reclaimed
HttpServer.MaxThreadIdleTime = 120000

net/jxta/impl/config.properties - Advertisement:

を読むと、
In order to have an advertisement recognized upon discovery,
it needs to be registered through the AdvertisementFactory registerAssoc method,
that reads in the net/jxta/impl/config.properties files to
get all the AdvertisementInstanceTypes. 
だそうです。
参考のため、JXTA platform のソースコードに含まれる platform/binding/java/impl/src/net/jxta/impl/config.properties への リンクを張り付けます。 この properties を利用する事があるとすれば、 AdvertisementInstanceTypes 位でしょう。

net/jxta/user.properties:

# Amount of time in minutes after which a connection is considered idle and may 
# be scavenged.
impl.endpoint.tls.connection.idletimeout=20

# Amount of time in minutes a connection must be idle before a reconnection 
# attempt will be considered.
impl.endpoint.tls.connection.minidlereconnect=5

# Amount if time in minutes which retries may remain queued for retrasmission.
impl.endpoint.tls.connection.maxretryage=10
各、Revision の history を見る限り、 チューニングが必要なパラメータを、impl.〜 で設定して、 デフォルトの値を決めたら、パラメータの設定を廃止するといった 使いかたをしているように見えます。# あまり根拠の無い推測。

Netscape 4.x Messenger の Drafts フォルダ

いまだに自分は Netscape4.x Messanger を使っているのですが、 大分、昔に、
localhost:xxx → mail.awm.jp:smtp
localhost:yyy → mail.awm.jp:imap
の設定にして、ssh port forwarding をするようになってから メールを書いている途中でセーブすると、 100% Netscape Messenger が落ちる症状に出くわして、 何度もメールを一から書き直すはめになる事がありました。
で… 設定を見直したところ、解決。
「メニュー」→「編集」→「設定」→「メールとグループ」→
「コピーとフォルダ」→「下書きとテンプレートの保存」→
「下書きの保存」→「フォルダの選択」
ここで、デフォルトでは、
右の Drafts フォルダ <ホスト名>
となっています。そこで試しに、
その他 <フォルダ名>
を指定して。明示的にフォルダ名を指定したところ、 Drafts にメールを保存しても、Netscape が落ちなくなりました。

2003年02月17日(月)[天気:晴れ](自宅) BGM:チャイコフスキー交響曲第一〜六番

[天気:晴れ](自宅) BGM:チャイコフスキー交響曲第一〜六番

病み上がり

昨日の風邪を引きずっていたせいか、体が重たく感じます。 特に腰の痛みが半端じゃなくて…
午前中の病院のリハビリをさぼり、 自宅で電気毛布にくるまって腰を温め続け、 お昼にはなんとか出社できる状態まで持ち直しました。

転職

前の会社で勉強した事が幾ど役に立たない罠…
わずか一年前、 しかもデバッグや障害対策で相当頭を使った事すら、 うっすらでしか覚えていない自分の記憶力に乾杯。 (やけ気味
う〜ん…
筋力トレーニングみたいに、頭脳トレーニングも必要なのだろうか…

フレッツ、工事情報

フレッツの工事の通知が、2月21日と28日の二種類が来てましたので、 どちらかなのか、もしくは両方なのかを確認する為に、 下記の URL にアクセスしました。 都道府県は<内緒>で「工事情報」 サービスは、「アクセス系サービス」でと…
Method Not Allowed

The requested method POST is not allowed for the URL /flets/customer/const/index.html.

ブラウザを変えてみた:

別の PC の IE で開いてみたら、今度は閲覧できました。
設定に依存する罠かもしれません。 くすん… (ρ_;

メモ

Download VNC 3.3.6:

何時の間に、3.3.6 に… セキュリティー的な問題ではないようで、ほっとしてます。

JXTA 2.0 リリース

取得方法:

今現在、zip や tar で固めた提供が見付かりません。
The platform, security, shell, cms, instantp2p  and myjxta2 code bases have
been tagged with the CVS tag: JXTA_2_0_Candidate_Release_20030215
という文章から考えると、cvs で持っていけという事でしょう。 自分(yoya)の場合は、
yoya@awm.jp% for module in platform security shell cms instantp2p myjxta2
> do
> cvs -d :pserver:yoya@cvs.jxta.org:/cvs checkout 
	     -rJXTA_2_0_Candidate_Release_20030215 $module
> done
のようにして取得しました *1
zip で圧縮します。
yoya@awm.jp% for module in platform security shell cms instantp2p myjxta2 ; do
> do
> zip -r9 $module.zip $module
> done

コンパイル方法:

build の手順は、全てに共通していて。
cd ${MODULE}/binding/java
ant
cp dist/*.jar ${JXTALIB}/. # instantp2p は dist でなく lib に出来ますが…
です。
platform を例にします。
cd platform/binding/java
ant
	<略>
    [javac] /home/yoya/cvs/platform/binding/java/impl/src/net/jxta/impl/peergroup/Configurator.java:792: \
警告: net.jxta.protocol.PeerAdvertisement の setDescription(java.lang.String) は推奨されません。
    [javac]                 advertisement.setDescription("Platform Config Advertisement created by : " + Configurator.class.getName() );
    [javac]                              ^
    [javac] /home/yoya/cvs/platform/binding/java/impl/src/net/jxta/impl/pipe/PipeServiceImpl.java:485: \
警告: net.jxta.pipe.PipeService の createMessage() は推奨されません。
    [javac]     public Message createMessage() {
    [javac]                    ^
    [javac] /home/yoya/cvs/platform/binding/java/impl/src/net/jxta/impl/pipe/PipeServiceImpl.java:279: \
警告: net.jxta.pipe.PipeService の createOutputPip
e(net.jxta.protocol.PipeAdvertisement,java.util.Enumeration,long) は推奨されません。
    [javac]     public OutputPipe createOutputPipe(PipeAdvertisement adv,
    [javac]                       ^
    [javac] 警告 3 個
    <略>
jar:
      [jar] Building jar: /home/yoya/cvs/JXTA_2_0_Candidate_Release_20030215/platform/binding/java/dist/jxta.jar
警告が3つ程表示されている *2 *3 なのですが…
けど気にしない… うん。気にしない…
この jar ファイルを適当な CLASSPATH が通っている場所に コピーすればインストール完了。
cp dist/jxta.jar ~/lib/java/jxta2/.

尚、幾どのモジュールは JXTA1.x でコンパイルする事が可能ですが、 myjxta2 だけは、JXTA2.x を CLASSPATH に通さないと コンパイルできませんでした。
以下に証拠
yoya@awm.jp java% echo $JXTA_LIB
/home/yoya/lib/java/jxta
yoya@awm.jp java% ant
    [javac] /home/yoya/cvs/JXTA_2_0_Candidate_Release_20030215/myjxta2/binding/java/src/net/jxta/myjxta2/net/DiscoveryHelper.java:242: シンボルを解決できません。
    [javac] シンボル: メソッド getAdvertisements ()
    [javac] 場所    : net.jxta.protocol.DiscoveryResponseMsg の クラス
    [javac]             enum = res.getAdvertisements();
    [javac]                       ^
    [javac] /home/yoya/cvs/JXTA_2_0_Candidate_Release_20030215/myjxta2/binding/java/src/net/jxta/myjxta2/search/PersonSearch.java:281: \
シンボルを解決できません。
    [javac] シンボル: メソッド getAdvertisements ()
    [javac] 場所    : net.jxta.protocol.DiscoveryResponseMsg の クラス
    [javac]         for (Enumeration r = res.getAdvertisements();
    [javac]                                 ^
    [javac] /home/yoya/cvs/JXTA_2_0_Candidate_Release_20030215/myjxta2/binding/java/src/net/jxta/myjxta2/chat/PipeHelper.java:360: \
シンボルを解決できません。
    [javac] シンボル: メソッド getAdvertisements ()
    [javac] 場所    : net.jxta.protocol.DiscoveryResponseMsg の クラス
    [javac]             Enumeration responses = res.getAdvertisements();
    [javac]                                        ^
count = 0, total = 6
    [javac] /home/yoya/cvs/JXTA_2_0_Candidate_Release_20030215/myjxta2/binding/java/src/net/jxta/myjxta2/search/GroupSearch.java:202: \
シンボルを解決できません。
    [javac] シンボル: メソッド getAdvertisements ()
    [javac] 場所    : net.jxta.protocol.DiscoveryResponseMsg の クラス
    [javac]             Enumeration enum = res.getAdvertisements();
    [javac]                                   ^
    [javac] /home/yoya/cvs/JXTA_2_0_Candidate_Release_20030215/myjxta2/binding/java/src/net/jxta/myjxta2/config/JxtaBuilder.java:244: \
net.jxta.impl.protocol.HTTPAdv の setPort(java.lang.String) は (int) に適用できません。
    [javac]     httpAdv.setPort(Integer.parseInt(httpPort));
    [javac]                ^
    [javac] /home/yoya/cvs/JXTA_2_0_Candidate_Release_20030215/myjxta2/binding/java/src/net/jxta/myjxta2/config/JxtaBuilder.java:413: \
シンボルを解決できません。
    [javac] シンボル: メソッド setLevel (org.apache.log4j.Level)
    [javac] 場所    : org.apache.log4j.Logger の クラス
    [javac]         jxtaLogger.setLevel(Level.toLevel(debugLevel));
    [javac]                   ^
    [javac] エラー 6 個
.bashrc を編集して

#export JXTA_LIB=$JAVA_LIB/jxta
export JXTA_LIB=$JAVA_LIB/jxta2
yoya@awm.jp% . ~/.bashrc
yoya@awm.jp% echo echo $JXTA_LIB
/home/yoya/lib/java/jxta2
yoya@awm.jp% ant
    <略>
    [javac] /home2/yoya/mitou/cvs/JXTA_2_0_Candidate_Release_20030215/myjxta2/binding/java/src/net/jxta/myjxta2/chat/ChatSession.java:308: \
警告: net.jxta.pipe.PipeService の createMessage() は推奨されません。
    [javac]             msg = pipeService.createMessage();
    [javac]                              ^
    [javac] /home2/yoya/mitou/cvs/JXTA_2_0_Candidate_Release_20030215/myjxta2/binding/java/src/net/jxta/myjxta2/chat/ChatSession.java:310: \
警告: net.jxta.endpoint.Message の newMessageElement(java.lang.String,net.jxta.document.MimeMediaType,java.io.InputStream) は推奨されません。
    [javac]             msg.addElement(msg.newMessageElement(SENDERMESSAGE, null, ip));
    [javac]                               ^
    [javac] /home2/yoya/mitou/cvs/JXTA_2_0_Candidate_Release_20030215/myjxta2/binding/java/src/net/jxta/myjxta2/chat/ChatSession.java:310: \
警告: net.jxta.endpoint.Message の addElement(net.jxta.endpoint.MessageElement) は推奨されません。
    [javac]             msg.addElement(msg.newMessageElement(SENDERMESSAGE, null, ip));
    [javac]                ^
    [javac] /home2/yoya/mitou/cvs/JXTA_2_0_Candidate_Release_20030215/myjxta2/binding/java/src/net/jxta/myjxta2/chat/ChatSession.java:311: \
警告: net.jxta.endpoint.Message の setString(java.lang.String,java.lang.String) は推奨されません。
    [javac]             msg.setString(SENDERNAME, myPeerName);
    [javac]                ^
    [javac] /home2/yoya/mitou/cvs/JXTA_2_0_Candidate_Release_20030215/myjxta2/binding/java/src/net/jxta/myjxta2/chat/ChatSession.java:312: \
警告: net.jxta.endpoint.Message の setString(java.lang.String,java.lang.String) は推奨されません。
    [javac]             msg.setString(SENDERGROUPNAME, peerGroup.getPeerGroupName());
    [javac]                ^
count = 0, total = 6
    [javac] /home2/yoya/mitou/cvs/JXTA_2_0_Candidate_Release_20030215/myjxta2/binding/java/src/net/jxta/myjxta2/chat/GroupChat.java:307: \
警告: net.jxta.pipe.PipeService の createMessage() は推奨されません。
    [javac]             Message msg = pipe.createMessage();
    [javac]                               ^
    [javac] /home2/yoya/mitou/cvs/JXTA_2_0_Candidate_Release_20030215/myjxta2/binding/java/src/net/jxta/myjxta2/chat/GroupChat.java:308: \
警告: net.jxta.endpoint.Message の setString(java.lang.String,java.lang.String) は推奨されません。
    [javac]             msg.setString(SENDERMESSAGE, gram);
    [javac]                ^
    [javac] /home2/yoya/mitou/cvs/JXTA_2_0_Candidate_Release_20030215/myjxta2/binding/java/src/net/jxta/myjxta2/chat/GroupChat.java:309: \
警告: net.jxta.endpoint.Message の setString(java.lang.String,java.lang.String) は推奨されません。
    [javac]             msg.setString(SENDERNAME, userName);
    [javac]                ^
    [javac] /home2/yoya/mitou/cvs/JXTA_2_0_Candidate_Release_20030215/myjxta2/bi
nding/java/src/net/jxta/myjxta2/chat/GroupChat.java:310: \
警告: net.jxta.endpoint.Message の setString(java.lang.String,java.lang.String) は推奨されません。
    [javac]             msg.setString(SENDERGROUPNAME, group.getPeerGroupName())
;
    [javac]                ^
    [javac] /home2/yoya/mitou/cvs/JXTA_2_0_Candidate_Release_20030215/myjxta2/binding/java/src/net/jxta/myjxta2/chat/GroupChat.java:329: \
警告: net.jxta.endpoint.Message の getElement(java.lang.String) は推奨されません。
    [javac]         MessageElement elem = msg.getElement(tag);
    [javac]                                  ^
    [javac] /home2/yoya/mitou/cvs/JXTA_2_0_Candidate_Release_20030215/myjxta2/binding/java/src/net/jxta/myjxta2/chat/GroupChat.java:332: \
警告: net.jxta.endpoint.Message の removeElement(net.jxta.endpoint.MessageElement) は推奨されません。
    [javac]             msg.removeElement(elem);
    [javac]                ^
count = 0, total = 6
    [javac] 警告 11 個
    <略>
      [jar] Building jar: /home2/yoya/mitou/cvs/JXTA_2_0_Candidate_Release_20030215/myjxta2/binding/java/build/lib/myjxta.jar
    <略>
      [jar] Building jar: /home2/yoya/mitou/cvs/JXTA_2_0_Candidate_Release_20030215/myjxta2/binding/java/build/lib/myjxta-images.jar

main:

BUILD SUCCESSFUL
Total time: 11 seconds
警告は大量に出ますが build は通ります。

試験:

yoya@awm.jp% java net.jxta.instantp2p.desktop.InstantP2P
	     <略>
<ERROR 22:57:52,330 PeerGroupFactory:239> Platform.init failed : 
java.lang.NoClassDefFoundError: COM/claymoresystems/ptls/SSLDebug
        at net.jxta.impl.endpoint.tls.TlsConfig.init(TlsConfig.java:112)
        at net.jxta.impl.peergroup.Configurator.configureTls(Configurator.java:288)
	     <略>
jar が足りないようです。 しかも、設定を全く保存せずに死にます… (ρ_;
まず、google で検索してみます。
これらをヒントに、それらしき jar を探してみると、 yoya@awm.jp% cd JXTA_2_0_Candidate_Release_20030215 yoya@awm.jp% ls cms/ instantp2p/ myjxta2/ platform/ security/ shell/ cms.zip instantp2p.zip myjxta2.zip platform.zip security.zip shell.zipxs yoya@awm.jp% find . -name "*.jar" -print | less <略> ./platform/binding/java/lib/jxtaptls.jar <略>
これかな…
yoya@awm.jp% cp ./platform/binding/java/lib/jxtaptls.jar ~/lib/java/.
yoya@awm.jp% . ~/.bashrc
yoya@awm.jp% java net.jxta.instantp2p.desktop.InstantP2P
	     <略>
<FATAL 23:11:05,952 TlsConfig:193> Cert generation failed
java.lang.NoClassDefFoundError: org/bouncycastle/jce/provider/BouncyCastleProvider
        at net.jxta.impl.endpoint.tls.TlsConfig.init(TlsConfig.java:186)
        at net.jxta.impl.peergroup.Configurator.configureTls(Configurator.java:288)
        at net.jxta.impl.peergroup.Configurator.<init>(Configurator.java:215)
	     <略>
今度は jce ですか。 今度は、securityタブの設定以外は、一通り保存しれます。
yoya@awm.jp% cp ./platform/binding/pjava/lib/jce.jar ~/lib/java/.
yoya@awm.jp% . ~/.bashrc
yoya@awm.jp% java net.jxta.instantp2p.desktop.InstantP2P
	     <略>
<ERROR 23:16:16,262 ServletHttpTransport:324> Failure during initialization: 
java.lang.NoClassDefFoundError: org/mortbay/util/MultiException
        at net.jxta.impl.endpoint.servlethttp.ServletHttpTransport.init(ServletHttpTransport.java:272)

	     <略>
まだまだ…
yoya@awm.jp% cp ./platform/binding/java/lib/org.mortbay.jetty-jdk14.jar ~lib/java/.
yoya@awm.jp% . ~/.bashrc
yoya@awm.jp% java net.jxta.instantp2p.desktop.InstantP2P
<ERROR 23:20:17,677 ServletHttpTransport:324> Failure during initialization: 
java.lang.NoClassDefFoundError: javax/servlet/ServletOutputStream
        at net.jxta.impl.endpoint.servlethttp.HttpMessageReceiver.<init>(HttpMessageReceiver.java:194)
        at net.jxta.impl.endpoint.servlethttp.ServletHttpTransport.init(ServletHttpTransport.java:272)
そろそろめげそう…
yoya@awm.jp% ./platform/binding/java/lib/javax.servlet.jar ~/lib/java/.
yoya@awm.jp% . ~/.bashrc
yoya@awm.jp% . ~/.bashrc
<FATAL 23:23:42,363 TlsConfig:193> Cert generation failed
java.lang.NoClassDefFoundError: cryptix/util/mime/Base64InputStream
        at net.jxta.impl.endpoint.tls.PeerCerts.genCert(PeerCerts.java:370)
        at net.jxta.impl.endpoint.tls.PeerCerts.genPeerRootCert(PeerCerts.java:131)
いい加減疲れて来たので、 platform の jar を丸ごとコピーします… # 挫折
yoya@awm.jp% cd JXTA_2_0_Candidate_Release_20030215
yoya@awm.jp% cd ./platform/binding/java/lib/*.jar ~/lib/java/jxta2/.

動作試験:

う〜ん… 色々な組合せで試しましたが
  • TCP outgoing <- Off
  • TCP incoming <- Off
  • HTTP outgoing <- On
  • HTTP incoming <- Off
で、外部の HTTP Relay を参照という設定にして やっと外の RDV と繋がりました。
少しマイナス印象です。

*1: 簡単に書いてますが、この間に cvs の転送が途中で止まったり、
cvs [checkout aborted]: connect to cvs.jxta.org(64.125.133.203):2401 failed: No route to host
で接続出来なかったりで、作業に時間がかかっています。(涙

*2: JDK1.3.1 で開発されているのを JDK1.4 で build しているので 当然といえば当然
*3: 1.3 でコンパイルしても警告が一杯でました…

2003年02月18日(火)(自宅)

(自宅)

冷え込み

昨日にも増して腰の痛みが激しいのですが、 最高温度が4度 & お昼過ぎから雪の降る確率70%という予報を聞いて納得。
今日は病院以外の外出はあきらめます。

病院

午後の診察が始まる2時に病院にいった所、 あまりに人が少ないので、休みなのかと思ったのですが、 看護婦さんに尋ねたところ、 午後は3時からだと教わりました。
あれ…? 記憶がおかしい…?
最近、変更されたとしたら、 自分と同じように誤爆する人もいると思う *1 のですが…

。。。:

もう何も言うまい

改善の兆し無し:

ここの所、まったく腰痛が治ってないようですが、 悪くなっている訳でもないので、しばらくリハビリを続けるとの事。
気候が温かくなるのを待ちます。

*1: 看護婦に質問すればすぐ分かるのに、気軽に聞けないダメな性格…

2003年02月19日(水)(自宅)

(自宅)

解離

頭で考えてる事と発言してる事が全然違うし…
素直になるのって難しい… (ρ_;

PC で電話録音計画

電話の音声を全て記録するツールを、 実現できないかという試みを週末に行う予定なので、 とりあえず、その事前準備。
今週末も風邪で倒れて何もできなくなる予感がしますが…

利用するコード:

audiorecord コマンドを少し改造して実現出来れば理想ですので、 まずは、改造の方法から調査。
src/usr.bin/audio/record/record.c
これですね。
yoya@alt yoya% cp -r <略>/curr/src/usr.bin/audio/record/record.c ~/prog/.
yoya@alt yoya% cd ~/prog/.
yoya@alt yoya% gcc record.c
record.c:50: libaudio.h: No such file or directory
record.c:51: auconv.h: No such file or directory
yoya@alt% cp -r <略>/curr/src/usr.bin/audio ~/prog/.
yoya@alt% cd ~/prog/audio/.
yoya@alt% make
	<略>
cc -O2  -Wall -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith \
-Wno-uninitialized -Wreturn-type -Wpointer-arith -Wswitch -Wshadow \
-Wcast-qual -Wwrite-strings  -Werror  -I/home/yoya/prog/audio/record/../common -c record.c
cc   -o audiorecord  record.o -L/home/yoya/prog/audio/common -laudio
groff -Tascii -mtty-char -mandoc audiorecord.1  > audiorecord.cat1.tmp && \
mv audiorecord.cat1.tmp audiorecord.cat1
audio ディレクトリを丸ごと作業ディレクトリにコピーする事で、 コンパイルが可能になりました。

仕様:

  • 音量は一定期間 PCM の(平均値からの距離)の値を加算 *1 して算出する事にする。
  • ユーザには無音かどうかを判断する音量の閾値を入力させる。
  • また、閾値を下回った時に、実際に録音を止めるまで判断を保留 *2 する秒数も入力させる。
  • 録音ツールは、audio デバイスを掴みっ放し。
  • 音量を常にモニタする
  • 一定音量以上になったら録音開始。音量のモニタは続ける
  • 一定時間、一定音量以下が続いたら、録音終了でファイルに落とす。
  • できれば、最後の無音の分を削る
  • 上と独立して、gogo あたりで定期的に、wav → mp3 変換を実行。

*1: 本来の音量の求め方は異なると思うのですが、 処理の軽さを優先という事にして、調査をサボります…
*2: どうせ後で無音部分を削るつもりなので、 それなりに長く待っても大丈夫だけど、 長すぎると、複数の通話がくっついてしまうので。 ほどほどに…

やけ食い

自分のふがいなさに乾杯…
でも、密かに尊敬する某氏と晩御飯をご一緒できたおかげか、 先月から深刻化していたコーディング恐怖症が かなり解消された感じ。

。。。:

…で、やはり食べ過ぎで気持ちが悪くなってさっさと寝る。← 馬鹿

ぶっくま〜く

goinfo.to:


2003年02月20日(木)(自宅)

(自宅)

寒…

今日はまた一段と冷え込んでいるようで、 こちらでは冷たい雨も降ってきてます。

作業

今日はリクライニングベッドで電気毛布にくるまって、 ノート PC で作業をしています。
腰が痛くないのっていいものですね…

椅子購入に挫折

家具屋:

御飯を調達するついでに、 近くの家具屋へ OA チェアを購入しに行きました。
以前行った時に、「これは!」という椅子に目を付けていて、 それを買うだけのつもりでした。ちなみに4万円。
お店で目当ての椅子は見付かりました。座り心地も確かめました。 もう文句無しです。これ以外に自分が座るべき椅子は見付かりません。
で…
さぁ買いに行こうと、値段を確認したら…
\78,000円

(´・ω・`)
そういえば、前に来た時にはセール中という張り紙がしてあった事を思い出しました。
あの時、特別に半額で売っていたのですね。 良い椅子ですが、8万の価値があるかといわれると少し微妙です。

次点:

万が一、先の椅子が購入できなかった場合の事を考え、 次点の椅子も考えていました。 ヨドバシで販売している OA チェアです。
早速お店にいって座ってみたのですが、 先程の家具屋の椅子の足元にも及びません。
それだけなら我慢できるのですが、胴の長い自分にあった椅子がなく、 頭を支えるでっぱりが、肩にぶつかります。
以前は気付かなかったのですが、 先の椅子があまりにもジャストフィットしていたので、 違和感に気付くようになってしまいました。
いくら2万円とはいえ… …
まだまだ椅子探しに時間がかかりそうです。

録音挫折

電話端末の隣に設置してる NetBSD で録音するつもりでしたが、
yoya@cam$ audiorecord
audiorecord: failed to open /dev/sound0: Device not configured
あれ… 何のサウンドカード挿したんだっけ… (汗 サウンドブラスター系だという記憶だけはあるけど…
# ベッドから抜けられないので、カードを確認しに行けません。

2003年02月21日(金)(自宅)

(自宅)

お仕事

無我夢中…
えぇ。無我夢中ですとも…

JXTA Shell Attach

帰宅途中に、net.jxta.instantp2p の中を眺めていたら、 前に調べていた事 が、全くのピント外れだった事が発覚。
PeerGroup group;
	<略>
group.startApp(null);
だけで良いようです。
デバッグモード時は、group.startApp(null) の一行を実行させて、 コンソールから入力するコマンド経由で 色々な内部データをモニタリングできるようにすると良いかもしれません。

サンプル:

import net.jxta.peergroup.PeerGroup;
import net.jxta.peergroup.PeerGroupFactory;
import net.jxta.exception.PeerGroupException;

public class RunJxtaShell 
{

	public static void main(String[] args) {
		try {
			PeerGroup group = PeerGroupFactory.newNetPeerGroup();
			new RunJxtaShell(group);
		} catch(PeerGroupException e) {
			e.printStackTrace();
		}
	}
	public RunJxtaShell(PeerGroup group) {
		group.startApp(null);
	}
}

実行:

yoya@awm.jp% javac RunJxtaShell
yoya@awm.jp% java -Dnet.jxta.tls.principal=yoya -Dnet.jxta.tls.password=<略> RunJxtaShell

SHELLNOWINDOW:

NUTSHELL JXTA 本の page292(12章)に、
The Java implementation of the shell uses two system properties to configure its graphics:
SHELLNOWINDOW
SHELLFONTSIZE
とあり、
SHELLNOWINDOW
	If true, then no AWT window is creaetd;
	the shell will run in the current terminal window.
↑この記述が前々から気になっていたので、試してみる。
yoya@awm.jp% java -DSHELLNOWINDOW=true \
	-Dnet.jxta.tls.principal=yoya -Dnet.jxta.tls.password=<略> RunJxtaShell
	<略>
JXTA>  
以上…

本日の測定

NAT 越しのハンディが付いています。 尚、NAT の機器は biglobe は AT 互換機(NetBSD1.6)、 bb.excite の方は OPT 90 です。

biglobe:

測定サイト http://speedtest.excite.co.jp/ v1.13
測定時刻 2003/02/22 03:36:48
ホスト名/IPアドレス FLH1Aal149.kng.mesh.ad.jp/220.144.161.149
プロバイダ/回線/地域 BIGLOBE/Bフレッツ ニューファミリータイプ/神奈川県
推定最大スループット 49.1Mbps(6284kB/s)

bb.excite:

測定サイト http://speedtest.excite.co.jp/ v1.13
測定時刻 2003/02/22 03:42:23
ホスト名/IPアドレス 15.16.111.219.st.excite.co.jp/219.111.16.15
プロバイダ/回線/地域 BB.excite/Bフレッツ ニューファミリータイプ/神奈川県
推定最大スループット 49.55Mbps(6342kB/s)

ものぐさな色の付け方

目的:

沢山の種類の名前があって、色を対応付けたい。 でも、一々、色との対応表を作るの面倒だし、 別の名前で幾ど同じ色のがあっても、めくじら立てたりしないよ。
という状況下で楽をする為に、ありがちな手法。
  • 文字列ハッシュで適当な値を生成 (これで一応、名前→色 の対応が固定される)
  • 生成した値を色相として、適当な彩度/明度で HSV → RGB 変換
この方法を用いて CGI を作成してみた。

色変換ツール:

のサブルーチンを、ほぼそのまま利用する。

色変換のテスト:

以下のようにして色相を一周するテスト
for(my $i=0; $i<360; $i+=10) {
	my ($r, $g, $b) = hsv2rgb($i, 0.1, 255); 
	<略>
( ソースコード )

文字列ハッシュ:

文字列ハッシュの良いアルゴリズムを忘れてしまいましたが、 確か学生の頃、5(2進で 101) をかけると、 ビットがうまい具合にシャッフルされるので、お薦めって聞いた覚えがあるので、 とりあえず、以下ので…
sub str_hash {
    my $value = 0;
    foreach my $str (@_) {
	foreach my $c  (split('', $str)) {
	    $value += unpack("c", $c) * 5;
	    $value = $value * 5 + 11;
	}
    }
    return $value;
}
本気でやるなら MD5 とか SHA とか使うのでしょうけど、 上記の方法だとデータに合わせてチューニングしやすいメリット *1 があります。 ( ソースコード )

*1: 本音は、CPAN の Digest module をインストールするのが面倒なだけですが…

キーワード

myjxta:

NetBSD1.6 perl インストール:

java simplex:


2003年02月22日(土)(自宅)

(自宅)

alt.awm.jp(biglobe側 g.w.)切断

午前11時40分頃に alt が外部ネットワークから切断されました。
www.awm.jp(bb.excite の線)は繋がり続けているので、 B フレッツの問題ではないでしょう。
yoya@alt% ifconfig -a
	<略>
pppoe0: flags=8851<UP,POINTOPOINT,RUNNING,SIMPLEX,MULTICAST> mtu 1492
        inet 220.144.161.149 -> 218.227.247.101 netmask 0xff000000
        inet6 fe80::250:8bff:fe66:248e%pppoe0 ->  prefixlen 64 scopeid 0xb
yoya@alt% ping 220.144.161.149
PING FLH1Aal149.kng.mesh.ad.jp (220.144.161.149): 56 data bytes
	<無反応>
^c
yoya@alt yoya% ping  218.227.247.101
PING 218.227.247.101 (218.227.247.101): 56 data bytes
	<無反応>
^c
20分程待ってみても繋がらないので、試しに、
yoya@alt% ifconfig pppoe0 down
yoya@alt% ifconfig pppoe0 up
とした所、復旧しました。
何が悪かったんだろうか…

アドレス:

IP アドレスまた変わりました…

購入

電話録音アダプタ MRH-441W:

Sound BLASTER 4.1Digital:

PS2 マウス (A Open 社製):

PC (NetBSD) で録音

カード交換:

サウンドカードが not configured と言われるので、 別のカードに交換してみる。 同じ ISA の SoundBraster *1 だけど、今度は認識してくれた。
sb1 at isapnp0 port 0x220/16,0x330/2,0x388/4 irq 5 drq 1,5
sb1: Creative SB AWE64  PnP Audio: dsp v4.16
audio0 at sb1: full duplex, mmap, independent
isapnp0: <Creative SB AWE64  PnP, CTL0022, , WaveTable> port 0x620/4 not configured
キニシナイ‥ キニシナイ‥
bash-2.05$ mpg123  <略>_L.mp3
High Performance MPEG 1.0/2.0/2.5 Audio Player for Layer 1, 2 and 3.
Version 0.59r (1999/Jun/15). Written and copyrights by Michael Hipp.
Uses code from various people. See 'README' for more!
THIS SOFTWARE COMES WITH ABSOLUTELY NO WARRANTY! USE AT YOUR OWN RISK!
	<略>
Directory: data/
Playing MPEG stream from <略>_L.mp3 ...
MPEG 1.0 layer III, 128 kbit/s, 44100 Hz joint-stereo
音も鳴りました

録音:

audioctl -w record.gain=127
とパラメータを変えて、以下のコマンドで録音が出来ました。
audiorecord -F wav rectest.wav
*2 ただ… 噂では聞いていましたが、本当にひどい雑音がのります。

録音に雑音が入るのについては、ある程度我慢したり、 適当なフィルタをかけたりといった対策が出来るかもしれませんが、 この雑音が受話器の方に逆流しているのが問題です。
つまり、雑音がそのまま、受話器で聞こえてしまってます。 まぁ、当り前ですが…
なので捨て…

PCI の方を試す:

雑音が出る状況は全く変わらない… (ρ_;

雑音:

ちなみに、前に購入したボイスレコーダーで録音すると。 (先頭の雑音はごめんなさい)
どうすれば…
続く

その後:

その後、どうせ同じように雑音が出るなら、PCI のカードを使うのは勿体ないと思い、 ISA のカードに戻したのですが、今度は認識されなくなりました。(ρ_;
仕方なく、PCI のカードを使った所、今度は認識はされても 音が聞こえません。
スピーカー端子から鳴らなくなっただけで、 ライン出力から(それもかなり大音量で)音が出ていました。
また録音レベルも下がりました。
色々と謎です。

色々とブックマーク:


*1: といっても、 実際に載るチップには色んな種類があるそうですが…
*2: -F wav を付けないと、wav のヘッダが付かないので、 当然、PC で再生できません。

ニュース

新世代P2P“検閲”ツール、海賊版戦争の新たな火種に?:

Audible Magicのソフトはデータストリームの内部まで深く入り込むことのできる
新世代のツールで、ネットワーク管理者は具体的に何のファイルが交換されているのか
を知ることが可能。
 ワイオミング大学では学生が交換しているファイルの内容と量を調べ、
例えばある24時間の例を取ると、Gnutellaネットワーク経由で最も多く交換されて
いたのはラップアーティストBig TymersのMP3ファイルで、回数は188回に上っていた。

『ウィンドウズ2000』起動ディスクで『XP』パスワードが無効に:

ロードマップから消えたRDRAM。メモリ紛争の勝者は?:

正式にIntelのロードマップから消えたRDRAM

goo、実効速度を計測できるスピードテストコーナーを開設:

スパムメールに返事を出したら――体験レポート:

スパムメールに返事を出したらどうなるか試そうと思った事は何度もありますが、 思い留まってよかったと思います。
# 偽のアドレス使っても良い訳ですが…

スパムメールの道程を追跡した地図が完成:

部長さまに私信

ぇ……、ボク20、相手15ですけど…。
あー。 それならおっけー デス。 (何が?
…僕の真の年齢を知る者は黙れ… (謎
頭の中で年齢が勝手に変換されてました。

2003年02月23日(日)(自宅)

(自宅)

電話のノイズ

これ の続き
録音アダプターから直接PCに接続している場合、 の2通りが考えられるとの記述がありますが、
PCの電源アースを十分にとってみてはいかがでしょうか?
PC本体の設計思想は、もともとノイズの発生を想定していて
電源コードでアースをとるようになっています、
しかし日本の環境は電源アースが十分にとれず様々の問題が起きています。
PCの電源コードにアースピンがあるのは、
リークした電流の除去/ノイズの消去などのためです。
我が家には、アース線は存在しません。(ρ_;
静電気対策のように、PC から地面まで線を引きますか…

alt.awm.jp(biglobe側 g.w.)切断

お昼の 12:25頃、また切断しました。
昨日と同じく、
yoya@alt% ifconfig pppoe0 down
yoya@alt% ifconfig pppoe0 up
で復旧。
う〜ん…

jigdo で debian ISO image 取得

jigdo-lite-settings.txt
jigdo='http://us.cdimage.debian.org/jigdo-area/3.0_r1/jigdo/i386/woody-i386-1.jigdo'
debianMirror='ftp://ftp.dti.ad.jp/pub/Linux/debian/'
nonusMirror=''
tmpDir='.'
jigdoOpts='--cache jigdo-file-cache.db'
wgetOpts='--passive-ftp --dot-style=mega --continue --timeout=30'
scanMenu=''
yoya@awm.jp% ls -l debian-30r1-i386-binary-1.iso
-rwxr--r--    1 yoya     yama     612073472 Feb 23 14:24 debian-30r1-i386-binary-1.iso*
yoya@awm.jp% md5sum debian-30r1-i386-binary-1.iso
16c8650697ac9b04c0d3072d2d146368  debian-30r1-i386-binary-1.iso

Yahoo! eグループ

ja-jxta ML を購読する為に、egroup にアカウントを作成しているのですが、 〜@par.allnet.ne.jp と 〜@awm.jp の両方でアカウントを作成していた *1 ので、 @par の ML を @awm.jp へ移す為に、久々にログインして作業しました。
で…気付いたのですが、 とすると、@par のウィンドウのアカウント名が yoya@awm.jp に変わり、 登録してる ML も yoya@awm.jp の ML が表示されます。
恐らく、アカウントがウィンドウで区別されない為に、 一つのブラウザで複数のウィンドウを開けて並行作業をする。 といった事が出来なくなっているのでしょう。
仕方が無いので IE と Netscape で分けて、作業しました。

。。。:

@par のアカウントを削除したいのですが、 それらしきメニューが見付りません。

*1: メールアドレス変更機能を使えば良かった訳ですが、 なぜ複数作ったのかは覚えていません。

気になるニュース

3月以降、電力不足が深刻化=原発の運転再開めど立たず−東電:

今後、関東地域に予想以上に厳しい寒波が到来した場合、
供給が間に合わず大停電が起こる可能性もある。

2003年02月24日(月)[天気:雨or雪](自宅) BGM:ティルオイレンシュピーゲルの愉快な悪戯

[天気:雨or雪](自宅) BGM:ティルオイレンシュピーゲルの愉快な悪戯

冷え込み

天気予報では温かくなると予想されている明日に望みをつなぎます。
めっちゃ腰が痛い…

病院

ここまで寒いとリハビリも意味なし… (ρ_;

お仕事

お仕事お仕事…

JXTA Shell rdvadd

これ の続き
動きました。f(^^;
Linux で動く JXTA から NetBSD の JXTA に繋ごうとして駄目でしたが、 rdvadd コマンドを NetBSD 側にコピーして、 NetBSD 上で Linux を指定して rdvadd したところ、 MyJXTA の状態が connected になり、 また rdvstarus で追加されている事を確認できました。
# NetBSD 環境では駄目かも… (ρ_;
ただし、その場限り繋ぐだけで、Config ファイルには残らず、 再起動すると消えていました。Platform Config への反映は 手動でやらないとダメかもしれません。
そもそも今日の NetBSD 側の JXTA は 9700 port (http transport)が 開かず、9701 (tcp transport) しか開いてなかったり、 JXTA を再起動すると、どちらも開かなくなったり… でもって、なぜか、warning も error も出さないしで、もう駄目ぽ…
# 捨てる捨てるいいながら、なかなか捨てられない自分が駄目駄目。

apt-get upgrade

以下のパッケージがアップグレードされます:
  TrueType-base TrueType-kochi XFree86 XFree86-100dpi-fonts
  XFree86-75dpi-fonts XFree86-Xnest XFree86-Xvfb XFree86-cyrillic-fonts
  XFree86-devel XFree86-doc XFree86-gl XFree86-gl-devel XFree86-legacy
  XFree86-libs XFree86-tools XFree86-twm XFree86-xdm XFree86-xf86cfg
  XFree86-xfs libpcap perl tcpdump tetex tetex-extra

足の冷え

先月末位から足の冷えがひどくて、湯たんぽを足につけっ放しで 何とか我慢できる状態でしたが、これは、ヘルニアの典型的な症状のようです。
なんでも、腰を通る神経だけでなく血管も圧迫されて、 下半身の血が巡りが悪くなるとか。

Debian に挑戦

インストール:

SCSI デバイスを認識させる為には、compact を指定します。 ただ、default でも compact でも 2.2 系kernel が入ります。

マウント:

NetBSD で作成されたパーテーションをマウントしたいのですが。
alt# mount -r -t ufs -o ufstype=44bsd /dev/hda1 /mnt/hda
mount: fs type ufs not supported by kernel
install に用いた cdrom から drivers.tgz を探して、 その中の ufs.o を /lib/modules/〜/fs/ にコピーして、 insmod してと…
alt# mount -r -t ufs -o ufstype=44bsd /dev/hda1 /mnt/hda
mount: wrong fs type, bad option, bad superblock on /dev/hda1,
       or too many mounted file systems
       (could this be the IDE device where you in fact use
       ide-scsi so that sr0 or sda or so is needed?)

vnc:

もう VNC から離れられない体になってしまったので、 真っ先に、VNC のインストールを試みる。
yoya@alt% make
	<略>
gcc   -I..   -I/usr/X11R6/include  -O2 -Wall  -c argsresources.c
argsresources.c:26: X11/Xaw/Toggle.h: No such file or directory
make[1]: *** [argsresources.o] Error 1
make[1]: Leaving directory `/home/yoya/vnc/vnc-3.3.6-unixsrc/vncviewer'
make: *** [all] Error 1
カーネルが 2.2 系の為か、rpm でバイナリを入れても、 libc6 が無い等と叱られて起動できない。

Vine Linux に挑戦

PS2 3button マウスや G200 8M のみならず、 モニタの RDF19X まで自動認識してくれて、すばらしい。
インストール自体はさくさく進む。
LILO 22.2 Loading LinuxEBDA too big
.
でも起動できず…

[memo] メモ

専用ソフト不要の快感 三洋電機「ICR-B80RM」 - 買い物山脈:

[bookmark] ブックマーク

スパムメールの対抗法:


2003年02月25日(火)(自宅)

(自宅)

。。。

こんな心臓に悪い事は、これっきりにしたい所です。 罪悪感で一杯ですし。

JXTA への不満

rdv と繋ぐ時に複数の候補を持っているはずですが、 そのうち、1つか2つしか繋いでくれません。
例えば、うちの場合、www.awm.jp と alt.awm.jp で JXTA を起動して実験を行っているのですが、 お互いを明示的に rdv として指定するので、お互いに 繋がるのですが、他には、JXTA のセンターノード的な 存在の infrasearch.com か、もしくは、<秘密>-lab にしか *1 繋がりません。
gnutella 並とはいいませんが、 もっとノード間コネクションに貪欲になってもらわないと、 実用的ではないと思います。

対処:

出来れば、properties ファイル等でコネクション数を指定できれば 良いのですが、今のところ見付かりません。
もし、機能追加でやると以下のような感じでしょうか。
独自に node リスト(プロトコル://ホスト/ポート番号)の
共有サービスを作成して、お互いの持っているノード情報を
共有し、文字列を取得して uniq を取って、
各ノードは、その node リストを元に特定の数の
コネクションを保持するように動く。
勿論、FireWall の中か外かで、プロトコル、ホスト/ポート番号
等が使えるか変わるので、Ping で反応の無い奴を一定特定時間で
expire したり、優先度を下げるような処理が必要だけど。
とまぁ、そういった独自のプロセスがあっても良いのではないか? connectToRdv メソッドで rdv を追加できる事ですし。

*1: 去年の7月頃にリリースされた JXTA は、もう少しマシだったかも…

2003年02月26日(水)[天気:晴れ](自宅)

[天気:晴れ](自宅)

積み重ね

何事も積み重ねが大切なんですね…

Debian インストール

よく見ると boot のパラメータに、2.4系kernel をいれるオプションがありました。 当然、SCSI のディスクを認識します。
また、こちらのオプションでインストールを開始すると、 ufs の指定が出来たので、BSD 系の fs のマウントも大丈夫そう(?)

ufs:

駄目でした。(ρ_;
以前と同じ状況 です。
その前 に、 FreeBSD で作成したパーテーションをマウントした事はあるのですが、 もしかしたら、 NetBSD で作成したパーテーションを Linux でマウントするのには コツが要るのかもしれません。
続く

FreeBSD 5 をインストール

NetBSD で使っていた /home をマウントできました。:)

Java:

↑この辺りを見て、設定して駄目なら ext2 パーテーションにデータをコピーして、 今度こそは、debian に入れ替えます。 とりあえず、ソースだけ落としておきました。
後は、 ここから、Patchset2 を落としてと。

2003年02月27日(木)[天気:晴れ](帰りのロマンスカー)

[天気:晴れ](帰りのロマンスカー)

知識のレベル

「何かの概念」をどの程度理解しているかの区分として、。
  1. 聞いた事さえない # 全くの初耳。
  2. 聞いた事はあるけど理解してない。
  3. 分かっているつもり # だけど人に説明できない
  4. 人に説明できる # だけど矛盾を指摘される
  5. 人に教える事が出来る
といったレベルを考えると、 自分には、(3) や (4) のレベルの知識 *1 が多過ぎる事に気付きました。
普段から脳内に議論する相手を作って (3) を (4) に、 実際に資料や人にあたって (5) まで持っていく努力が必要なのだと、 最近ひしひしと痛感しています。
電車に乗っている時に、(本を読む時以外は)考えを文章にまとめて、 それに自己ツッコミを繰り返すという日々を送っていますが、 頭が整理されていく喜びよりも、ゴミのような自分の頭を再認識させられて、 気持ちが滅入る事が多く、あまり救われない状況です。
かといって、今のままの自分では駄目な事も分かっていますが。
*1: 要するにまともに知識と呼べるような物は、 幾ど持ち合わせていないという事です。
本は沢山読むけど考証が足りない普段の習慣を考えると、 (3) の状態のデータが頭に溜るのは、当然の結果です。

Microsoft、Windowsに依存するP2Pアプリの開発促進 @ ZDNN

以下の4つの API が用意されています。 かなり低レベルの API ばかりですが、 まぁ… いきなりファイル共有を作る為の基盤を提供しちゃうと、 RIAA あたりから吊るし上げを食らう事は必死でしょうから、 これが無難 *1 ですよね…
JXTA なんて cms なんて、そのままなパッケージが…

Graphing API:

ピア間で効率的な信頼性のあるパスを提供する API です。 ピア同士はグラフ上に繋がっていて、それらの中での データの見え方に一貫性を持たせるのが狙いのようです。
ルーティングと同期のメカニズムなのかしら?

Grouping API:

PNRP Name Space Privider と Graphing API の技術を組み合わせた API です。
また、2つの技術に分けられます。
  • multiplexing layer (多重レイヤー?)
  • security
multiplexing layer によって、一つのグラフ、一つの Identity に対して、複数のアプリケーションを動かせます。
「サービス = グループ」といった感じ?
security によって、招待したピアしか繋がせない 閉鎖的なグループをグループの生存期間の間、 維持する事が出来ます。

Identity Manager API:

  • ピア ID の生成
  • グループ内の ピア ID の列挙
  • ID に紐づいたオブジェクトータの操作 (?)
といった機能を持ちます。

PNRP Name Space Provider API:

DNS の P2P 版です。 ピアに名前を持たせて、 その名前からピアを発見する為の API です。
ぶっちゃけ、Resolver。

*1: 例によって、隠し API が無いか気になるところです

FreeBSD 5 で PPPoE

を参考に作業を行う。
alt# cd /usr/src/sys/i386/conf
alt# cp GENERIC PPPOEKERNEL
     <identity の GENERIC を PPPOEKERNEL に変更>
     <options NETGRAPH を追加>
alt# config  PPPOEKERNEL
Kernel build directory is ../compile/PPPOEKERNEL
Don't forget to do a ``make depend''
alt# cd ../compile/PPPOEKERNEL/ # 4.x 系と場所が違う…
alt# make depend
rm -f .depend
mkdep -f .depend -a   -nostdinc -D_KERNEL -DKLD_MODULE -I- -I. -I@ -I@/dev -I@/.
./include -I/usr/include  /usr/src/sys/modules/vesa/../../i386/isa/vesa.c \
/usr/src/sys/modules/vesa/../../dev/syscons/scvesactl.c
alt# make
     <略>
awk -f /usr/src/sys/modules/vesa/../../conf/kmod_syms.awk vesa.kld  \
/usr/src/sys/i386/compile/YOYAKERNEL/modules/usr/src/sys/modules/vesa/export_syms |  \
xargs -J% objcopy % vesa.kld
ld -Bshareable  -d -warn-common -o vesa.ko vesa.kld
alt# make install
     <略>

失敗:

Feb 27 23:27:24 alt ppp[225]: tun0: Warning: deflink: Device (PPPoE:eth0) must begin with a '/', a '!' or contain at least one ':'

成功:

eth0 な訳なくて、fxp0 でした。
Linux ばかり触ってたもので… (言い訳

dhcpd 起動失敗

サンプルが提供されているので、 ドメイン名等を変更して、その設定を元に起動を試みました。

alt# cd /usr/local/etc
alt# cp dhcpd.conf.sample dhcpd.conf
alt# vi dhcpd.conf
     <パラメータの名前等を変更>
alt# /usr/local/sbin/dhcpd  fxp1
Internet Software Consortium DHCP Server V3.0.1rc11
Copyright 1995-2003 Internet Software Consortium.
All rights reserved.
For info, please visit http://www.isc.org/products/DHCP
old name service update routine line 11: illegal expression relating different t
ypes
    if (defined (ddns-fwd-name) and ddns-fwd-name !=
                                                  ^
can't parse standard ddns updater!
サンプルをそのまま使って起動しても同じエラーになります…
駄目…

蜘の糸

自分の体に絡まっている蜘の糸が切れたと思ったら、実は、 お釈迦様が地獄からひきあげてくれたかもしれない糸だったという事に気付く。
仏教的な観点だと数億年程度かけて業を昇華すれば救われるらしいのですが、 自分はキリスト教的な、地獄に一度落ちると永遠に救われない考えの方が好きです。 自分みたいな悪人は救われるべきではありません。

2003年02月28日(金)[天気:晴れ](自宅) BGM:アルメニアンダンスパート II

[天気:晴れ](自宅) BGM:アルメニアンダンスパート II

寒い…

最低気温2度デスか…
とりあえず、いつも通り病院でリハビリしてきます。

某M駅でごはん

前の職場にいた時の師匠にあたる T 師と晩御飯をご一緒する。 と思ったら、何故か大勢いた。 これじゃ飲み会だよ…(ρ_;
僕が着く前にボーリング場に行っていたらしく、 その時の成績の話をしていたが、正直全く興味がないので、 ボーリングの話が落ち着くまで、ひそかに note PC を広げて コードのデバッグ。(ぉ
しかしながら、延々とその話が続くので、 師匠の側に移動して、まったりとお話。
おかげで、色々と実のある話を聞けました。
何はともあれ、とにかくビザを取得しないと。 (謎
あと、Winny の話はもうちょっとしたかったな…

。。。:

ていうかデスよ。
てっきり師匠は、仕事に忙殺されてて、 しかも、自分が会社を辞める時に、 仕事の幾どを押しつけていった事への罪悪感もあって、 めちゃくちゃ心配してたんだけど、 見た感じかなり余裕がありそうじゃないデスか。
心配して損した (言い過ぎ
体の頑丈な人が羨ましいデス。

Microsoft、Windows P2P SDK

昨日 の続き 参考

PEER_ADDRESS の定義:

ヘルプから抜粋。
ピアの持つ IP アドレスを格納するエリアですが…
The PEER_ADDRESS structure specifies the information about the IP address.

typedef struct peer_address_tag {
  DWORD dwSize;  SOCKADDR_IN6 sin6;
} PEER_ADDRESS, *PPEER_ADDRESS;
Members
    dwSize 
	Specifies the size of this structure. 
    sin6 
	Specifies the IP address of the node in the peer-to-peer infrastructure. 
SOCKADDR_IN6 って… まさかね…
SOCKADDR_IN しか持たないノードは mapped address を使えって事なのかしら?

sample の build に挑戦:

SDK にサンプルが付いて来るのですが、バイナリは入っていなくて 自分でコンパイルしないといけません。
ヘルプに開発環境についての記述が見つからなかったので、 Microsoft Visual C++ 6 を利用して、 サンプルの GroupChat1 を Win32 Debug でビルドできないか 試したのですが、ダメでした。
  • mak → dsp 変換
  • include と lib のパスに、P2P SDK のパスを追加
結果 SOCKET が未定義で叱られているので、winsock2.h を インクルードさせてみたのですが、それでも別のエラーが出ます。
何か根本的に間違っているかもしれません。 → 続く

jnutella ML から:

興味深い URL が紹介されていたので引用。
以前から一部で話題になってた、C. Huitema の
PNRP(Peer Name Resolution Protocol) が実装されている様子です。
他に気になるのは、Pastry(http://research.microsoft.com/~antr/Pastry/)が
実装されているのかどうか、つー所です。
はぅっ… 見逃してました…

getBoolean

プロパティで実行ルートを切り替えるのに、
if (System.getProperty("STARTJXTASHELL").equals("true")) {
 	group.startApp(null);
}
としていたが、API ドキュメントを見ると、
if (Boolean.getBoolean("STARTJXTASHELL") {
	group.startApp(null);
}
の方がどうもお勧めらしい。
確かに、true という生の文字列と比較するのも嫌な感じですが、 かといって、ラッパークラスごときに、 システム・データを弄られるというのも何だか‥

FreeBSD update

このサイトを参考に作業を行う。

cvsup:

先のサイトで利用している stable-supfile は、
*default release=cvs tag=RELENG_4
一方、standard-supfile は、
*default release=cvs tag=RELENG_5_0
なので、後者を利用する。
yoya@alt% su
Password:
alt# cd 
alt# /usr/share/examples/cvsup/standard-supfile . alt# vi standard-supfile <CHANGE_THIS.FreeBSD.org を cvsup2.jp.freebsd.org 等に変更> alt# cvsup -g -L 2 standard-supfile > & cvsup.log & alt# tail -f cvsup.log Parsing supfile "standard-supfile" Connecting to cvsup2.jp.freebsd.org Connected to cvsup2.jp.freebsd.org Server software version: SNAP_16_1f Negotiating file attribute support Exchanging collection information Establishing multiplexed-mode data connection Running Updating collection src-all/cvs Edit src/UPDATING <略>

make world:

明日に後回し…

FreeBSD 5.0-RELEASE 初期利用者のための手引き:

目を通しておいた方が良さそう。

jdk1.3 が ports に存在したので、そこで make:

alt# cp ~yoya/java/NetBSD/bsd-jdk131-patches-7.tar.gz /usr/ports/distfiles/.
alt# cp ~yoya/java/j2sdk-1_3_1-src.tar.gz /usr/ports/distfiles/.
alt# cd /usr/ports/java/jdk13
alt# make
===: Command not found.
alt# ===>    Verifying install for /usr/X11R6/lib/libXm.so in /usr/ports/x11-too
lkits
===: Command not found.
alt# /open-motif
/open-motif: Command not found.
alt# >> openmotif-2.2.2.tgz doesn't seem to exist in /usr/ports/distfiles/openmotif.
alt# >> Attempting to fetch from ftp://openmotif.opengroup.org/pub/openmotif/R2.2/tar
う〜ん
まぁ無視するとして…
>> Checksum OK for j2sdk-1_3_1-src.tar.gz.
>> Checksum OK for bsd-jdk131-patches-7.tar.gz.
===>   jdk-1.3.1p7_2 depends on executable: gm4 - found
===>   jdk-1.3.1p7_2 depends on executable: zip - found
===>   jdk-1.3.1p7_2 depends on file: /usr/X11R6/lib/libXm.so - found
===>   jdk-1.3.1p7_2 depends on file: /usr/local/linux-sun-jdk1.3.1/bin/javac -
not found
===>    Verifying install for /usr/local/linux-sun-jdk1.3.1/bin/javac in \
/usr/ports/java/linux-sun-jdk13
===>  linux-sun-jdk-1.3.1.06_1 You must manually fetch the Java 2 Development \
Kit 1.3.1.06 archive (j2sdk-1_3_1_06-linux-i586.bin) from \
http://java.sun.com/webapps/download/Display?BundleId=7163, download \
the Linux GNUZIP Tar shell script into /usr/ports/distfiles and then \
run make again.
*** Error code 1

Stop in /usr/ports/java/linux-sun-jdk13.
*** Error code 1

Stop in /usr/ports/java/jdk13.
linux-sun-jdk-1.3.1.06_1 を取ってこないといけないのですが、 http://java.sun.com/j2se/1.3/ j2se1.3 download では、linux-sun-jdk-1.3.1.07_1 しか見付かりません。
う〜ん。とりあえず今日はあきらめ…

ぶっくま〜く


これで、28 日分だよ〜。

タイトル一覧
カテゴリ分類
Database
JXTA
Java
XML
awm
bookmark
keyword
memo
news
research
Powered by hns-2.19.5, HyperNikkiSystem Project