HYSPRO Diary
2002-07-01 (Mon)
_ エッセイ 経験って何?
能力主義を掲げるうちの会社も経験の名のもとに単純な年功序列で判断するときがあるので注意が必要だ。一般論として経験を語るとき、次の2つに注意する。
第一に、その経験が本当に有利に働いているかを明らかにする必要がある。多くの場合、経験がないよりあったほうがよいだろう。しかし、例えば、新しい物事を始める場合など、経験が邪魔をすることもある。
第二に、何の経験かを語る必要がある。経験が勤続年数を指すのなら、社会人3年目の私は社内の人間の誰にもまさらない。これが単純な数字として現れるだけに、多用される。しかし、そこで必要な経験は勤続年数なのだろうか。もし、ある知識を学んだ経験が最も影響を与えるのなら、私はおとっていないかもしれない。
もうちょっと具体的に経験が語られるとき、例えば、「経験上××だ」という場合、2つの注意が必要である。
一つ目は、それだけでは全く論になっていない。どういう経験をして、何があったから××がよいと判断したのか、明確に語る必要がある。
2つ目は、その経験が今回も当てはまるという普遍性を語る必要がある。前回は特殊な状態であって、今回には適応できないかもしれない。逆に、今回が特殊かもしれない。
2002-07-02 (Tue)
_ Gentoo Linux
最近やたらとGentoo Linuxの文字を目にするようになりました。Kondaraが解散したことをきっかけに、distribution比較が盛んになったから(というか、私自身がそのような情報を好んで読むようになったから)のようです。
Gentooの創設者のエッセイが興味深いです(最終回にリンクしてあるので、第1回からお読みください)。開発裏話やオープンソース論が面白いです。
最近ちょっと思ったのは、オープンソースが他にネコババされない大きな力は、オープンソース自身の開発の勢いだと思います。ネコババというと言葉が悪いですが、派生が生じないという意味です。派生して独自バージョンを作っても、派生元とマージする労力の方が大きい場合、オープンソースのコミュニティに還元したほうが得です。だから、マージするのが大変なくらい開発元に勢いがあれば、派生は生じないでしょう。
例えば、Apacheものを見ていると、あっという間に新しくなるので、マージして管理する気力がそがれ、派生するより貢献したほうが得です。ApacheのライセンスはGPLでないので、商用版とかを勝手に作ってもいいのですが、自社によほどの開発力がないと、この「お得さ」は逆転しないでしょう。
このお得さがどれほどなのか、光電効果の仕事関数になぞらえて、数値化できたら面白いですね。
_ 著書
本を書きました。「SQL Anywhere Studio 8 公式デベロッパーズガイド」(翔泳社)という本です。Sybase社(iAnywhere社)のAdaptive Server Anywhere 8というモバイル系Databaseの入門本です。もし本屋で見つけたら、平積みに移してください(笑)。一見、「若奥様必見!手軽なお料理」本みたいですが、まちがいないくパソコンの本です。
新高輪プリンスホテルで開催されたこの新製品発表会に一日参加していたので、仕事はメールチェックで終わってしまいました。Ariadnaは明日。
_ miki [出版おめでとうございます。はんばあぐさんって本を書かれる方なのですね。どうりで文章がしっかりしていると思った。書店に..]
_ はんばあぐ [お褒めにあずかり光栄です(^.^)。むちゃくちゃ近いです。私は武蔵小杉周辺に住んでます。職場は渋谷なので、東急東横線..]
_ miki [>今月のどこかの金夜などいかがですか。 もちろんOKです。ぜひ、裏話を聞かせてください。 場所等の打合せは詳細はメー..]
_ ASIP [いいですね、飲み会。私は日記にも書いたように関西在住なので...(参加したとしても話についていけるとは思えませんが...]
_ miki [ASIPさん、東京へ出張する機会があったら是非声をかけてくださいね。JavaOneとかはどうですか? それから、私は..]
_ ASIP [mikiさん、すみません。"オープンソース(JBoss)への積極的な貢献とその精力的な活動"から30代前半の方だと思..]
_ はんばあぐ [5月末のASIPさんの日記につっこみ損ねたのですが、私は1974年生まれなので、ASIPさんとさほど違わないのですが..]
_ ASIP [日記を読んで「私と同じくらいの年齢の方だな」と思っていたのですが、mikiさんを"気軽に飲みに誘われていた"ので「私..]
_ miki [JavaOneは昨年行ったのですが(横浜が好きなんです)、あそこは講演を聞きにいくところではなくて、「人」に会いにい..]
2002-07-03 (Wed)
_ DebianのJavaパッケージ管理は芸が細かい
Javaパッケージ管理の話題の続きです。まず、ここに記録する意味で再録です。
Debianでは、Javaのパッケージを置くべき場所が決められています。例えば、/usr/share/javaに.jarが溜められるという具合です。そして、リンクでもって各Javaアプリケーションが使うようになっています。さらに芸が細かいのが、例えば、/usr/share/java/servlet-2.3.jarがオリジナルで、/usr/share/java/servlet.jarというリンクが作られ、バージョン情報が消えるところまで自動化されています。
そして、こういったやり方をLinux distributions間で標準化しようという動きがあるそうです。RPMでもそうなると幸せですね。
Javaの配置を守ることもさることながら、さらにDebianの芸が細かいのがリンクを用いたディレクトリ配置ポリシーです。例えば、Tomcat 3.3をaptでinstallすると、次のような構成になります。
$ ls -l /usr/share/tomcat drwxr-xr-x 2 root root 104 6月 26 11:23 bin lrwxrwxrwx 1 root root 11 6月 26 11:23 conf -> /etc/tomcat lrwxrwxrwx 1 root root 13 6月 26 11:23 doc -> ../doc/tomcat drwxr-xr-x 2 root root 48 4月 24 20:08 examples drwxr-xr-x 5 root root 192 6月 26 11:23 lib lrwxrwxrwx 1 root root 15 6月 26 11:23 logs -> /var/log/tomcat drwxr-xr-x 2 root root 48 4月 24 20:08 modules lrwxrwxrwx 1 www-data www-data 23 6月 26 11:23 webapps -> /var/lib/tomcat/webapps lrwxrwxrwx 1 root root 17 6月 26 11:23 work -> /var/cache/tomcat
_ こういったリンクの使い方は、当たり前といえば当たり前ですが、最初驚きでした(例えば、文書ファイルを月ごとに仕分けて保存している場合、currentというリンクを作るなど)。また、Debianだと自動でここまでやってくれるのが嬉しいです(ひょっとしたらTomcat最新のrpmでは既にこんな具合になっているのかも知れませんが、4.0.2では、etc以外、/var/tomcat4にそのまま展開されていました)。
とここまで書いて、改めてKondaraマシンをよく見たら、regexpやxerces・servletapiのrpmは、既に、/usr/share/javaに展開されていて、バージョンを除いたリンクも作られていました。Javaの配置ポリシーは、RPM陣営でもかなり普及しているのかもしれません。
_ web-app_2_3.dtdやweb-jsptaglibrary_1_1.dtd not found?
Debianで、# /etc/init.d/tomcat4 start して、Strutsで作った自作Webアプリを動かすと、なぜか上記エラーが出ます。servlet-2.3.jarでなくservlet-2.2.jarが、参照されているか上書きされているかのどちらかが原因だと思うのですが、その様子はなし。で、# $CATALINA_HOME/bin/catalina.sh start すると、正常に動作します。その後、# /etc/init.d/tomcat4 start すれば正常に動きます。
コンパイル・キャッシュが利いて動作するようになったと思うのですが、詳細は不明です。catalina.shと/etc/init.d/tomcat4で、なんか設定が違うのでしょうが、ちょっと見たけど、原因は不明です。とりあえず動くようになりましたが、気持ち悪いです。うーん。
2002-07-04 (Thu)
_ WoodyにてTomcat 4.0.3へ.warのdeploy
ここの続きです。server.xmlにて、HostのunpackWARsをfalseにし、ContextのdocBaseで直接.warを指定すれば問題ないです。security managerの設定が難しい場合は、/etc/default/tomcat4でnoにすればOK。/etc/init.d/tomcat4を編集しても/etc/default/tomcat4の設定が勝つので注意です。
/etc/init.d/tomcat4を見ても、結局、catalina.shを呼び出しているので違いはないはずなのですが、なんか動作が違います。tomcatを動かすユーザーかなぁ。
2002-07-05 (Fri)
_ JBoss first touch
JBossにfirst touchしました(私の好きなサッカー用語です)。3.0.0 with tomcat 4.0.3と2.4.6 with tomcat 4.0.3の両方をDLしましたが、とりあえず3.0.0をinstallしました。といっても解凍するだけですが。X on Windows(Cygwin)上で操作するので、export JBOSS_HOME=/usr/local/jboss3して、いざ、bin/run.sh。15秒ほどして起動完了。ただし、java.lang.NoClassDefFoundError: org/apache/catalina/LifecycleListener が出ているので、ちょっと不安です。JBossがちゃんと動いているのか分からないので、テストしたいのですが、Tomcatのようなデフォルトのexampleはないのかしら。
mikiさんのサンプル&ドキュメントが大変心強いです。しかし、ドキュメントはJBoss2.4ベースでサンプルはJBoss3.0を謳っているので、mikiさんの100 beansを体験するには、どちらがよいのでしょう。
100 beansを助けられるようになるが、今年後半の目標です。とりあえずMLに加入しました。
2002-07-10 (Wed)
_ XP祭り 2002の感想
参加してきました。素晴らしく盛り上がり、とても楽しかったです。
XPのメーリングリストを読んでいると、「良い子ちゃん」の集まりのようで、ちょっと距離を置いてました。しかし、XP祭りの後半からなかなかキレた「連中」が多いことが分かってその印象が変わり、そして、2次会の飲み会で多くの方と語り、知り合えて、なかなかよいコミュニティだと実感できました。
「良い子ちゃん」と言っている意味は、ちょっと真面目すぎる感じがMLでしたからです。正面から正攻法で勉強してしまう感じです。もちろん真面目であることは美徳なのですが、もう少し貪欲というかずる賢くてもいいと思います。「勉強」するくらいなら、簡単なプロジェクトを一本立ち上げてやってみて、一発狙ってみるくらいの不良さが欲しいです。XP祭りでは、そういった連中も見受けら、安心しました。
さて、講演や話を聴いて、日本のXPの平均値は、とりあえずXPを一通りやってみた、というところだと感じました。しかし、先端の方では、XPだけでは足りないことが分かり、それを補完するものを探す動き、探して実践してみた動きがあります。XPが悪いので別のものという意味ではありません。XPは開発者よりの視点であり、マネージャー側の視点が弱いので、それを補う何かということです。
それから、XP信奉者は、なぜかNEC社員が多いです。いまのところ、彼らを抱擁する力もNECにあるようです。彼らがスピンアウトすることなく、出世していくのなら、数年後のNECは素晴らしい開発会社になるかもしれません。
最後に、本場XP界でも年に1度カンファレンスがあるそうで、つい先日イタリアの島で、150人ほどが集まったそうです。そこでは、ファウラーさんをはじめ、そうそうたるメンバーが一堂に会すそうです。来年もイタリアだそうなので、彼らに直談判したい方は、どうぞご参加ください。
_ JBossは金のにおい
なぜなら、マーケティング的にも「○○エンジン」と呼べるからです。Cocoonも同様で、ActionやGeneratorをあらかじめ作りこんでおいて、あとはXMLでカスタマイズということで、エンジンとして使えます。JBossのMBeanにもそのにおいがします。Strutsはそこまではいきません。
2002-07-13 (Sat)
_ ASAのデフォルトオプション
Adaptive Server Anywhereにデフォルトオプションがあるのですが、JDBCを使う場合は注意が必要です。通常のデフォルトオプションとは別に、JDBC接続中に限り上書きされるデフォルトオプションがあるからです。
Adaptive Server Enterpriseとの互換性のためだそうですが、知らないとはまります。つまり、知らなかったので、はまりました(正直、こういう仕様は人心を惑わすので、やめて欲しいです。だって、「デフォルト」じゃないじゃん。せめて、JDBC_xxx_OPTIONみたいに、上書きではなく、デフォルトオプションの中に組み込んで欲しい)。例えば、CREATE TABLEするとき、カラムのNULL制約は、通常NULL可です。しかし、JDBCの場合は、NOT NULLになります。
このJDBCデフォルトオプションを変えるには、次のようなスクリプトを実行します。
CREATE PROCEDURE my_startup_procedure()
BEGIN
IF connection_property('CommProtocol')='TDS' THEN
SET TEMPORARY OPTION ALLOW_NULLS_BY_DEFAULT='ON';
END IF
END;
SET OPTION LOGIN_PROCEDURE= 'DBA.my_startup_procedure';
commit;
2002-07-15 (Mon)
_ Object指向とXML
Object指向とは何かを改めて考えてみたら、(現実世界の)何かをobjectでwrapすることだと思いました。例えば、Customerクラスを作ったときは、ビジネス上の顧客という実体をobjectでくるんだわけです。言うなれば、「class 顧客 implements Object」ですね。Entity Beanは、databaseをwrapしobjectとすることで、Object指向プログラミングのcontextにdatabaseを入れてしまえます。
そうなると、XMLの位置づけが難しくなります。XMLは次世代技術を担うはずで、それならばObject指向と絡むのが必然だと思うのですが(いや、不可分の関係になるとさえ思っていいます。極端な話、メソッドの引数がXMLになったり、method invocationはXMLを通さないと出来ないとか。Cocoon2のpipelineを見ているとそんな気もするのです)、どうなるのかなと。XMLをobjectへbindする技術はあるのですが、wrapするとはどういうことなのかなと。DOMとも違うように感じるのですが。
_ 最近の読書
久しぶりに、読みたい本が爆発しました。
モア・サーブレット&JSP。素晴らしいです。Servlet2.3/JSP1.2の記述をこの人の本で読めて感動です。前作コア・サーブレット&JSPの改定版の装いです、かなり書き直されているので、続編ですね。
UNIXという考え方。いまさらな感はありますが、読んでみました。素晴らしいです。当たり前といえば当たり前ですが、こうやって文章で読むと迫力があります。特に5章に感動しました。この人、ビジネスセンスもあります。
Java言語で学ぶデザインパターン入門 マルチスレッド編。 Java言語で学ぶデザインパターン入門が素晴らしかったので、即買いです。大変すばらしいです。例えがうまく、サンプルも豊富で、数冊のJava Thread関連をまとめ上げた感じです。reviewerが沢山いらっしゃるのはうらやましい限りです。Open Sourceじゃないけれど、reviewerの力があってこそのよい本だと(著者の力量はもちろんですが)、本を書いて実感しました。
Enterprise JavaBeans 3rd Edition。今全力で読んでます。これくらいは読んでおかないとEJBの会話になりません。前作を読んでいるので、とりあえず必要なところを読んでいるのですが、かなり書き下ろしています。ほんと、外人さんはよい本を書きますね。この素晴らしい著者が、OpenEJBの開発者と知って少々ショックです。気持ちのいい英語なので、がんがん読めます。
JBossの本が発送されたので、これも読まねば。
こんなによい本を読めるなんて、幸せです。
_ miki [XMLが絡むところと言えば、(1)オブジェクトの永続データ、(2)オブジェクトのメタデータ、(3)オブジェクト間通信..]
_ miki [はんばあぐさんお勧めの「モア・サーブレット&JSP」は会社帰りに買ってみます。楽しみです。Oreilly EJB本の..]
_ はんばあぐ [モア・サーブレット&JSPは間違いなく良書なのですが、すでに知っている知識も多いため、ざっと立ち読みしてください。値..]
_ miki [モア・サーブレット&JSP、買いました。web.xmlと宣言的セキュリティの章が私にとってはとてもタイムリーです。良..]
_ ASIP [妥当なXML文書を操作するためのAPI(I/F)を生成するための技術や XMLを汎用的に操作するAPI(I/F)にw..]
2002-07-16 (Tue)
_ Debian覚え書き
インストール x-window-system-core kterm xterm kde-i18m-ja language-envなど。
設定 set-language-env。dpg-reconfigure -plow xserver-xfree86など。
フォント ttf-kochi-gothic-naga10 ttf-kochi-mincho-naga10。xfontselで確認。
KDEの初期設定:まず国は日本で、言語をDefaultで起動する。設定のユーザーメニューで、言語日本、文字コードをjisにする。フォント設定で、kochiを選択。
_ やっほぅーー
やっと満足なDebian Woodyが作れるようにになりました。苦節二カ月、何度インストールしたことか。知ってみれば簡単ですね。ATOKが賢いそうなので、買おうかなと値段を調べたのですが、素のATOKは\8,400O、ATOKが付属するOmoikaneは\10,800。うーん、悩むなぁ。
_ BlackDown
BlackDownの位置が変更されたようです。
deb ftp://ftp.tux.org/pub/java/debian woody non-free
すればOK。ただしちょっと重そうです。
2002-07-18 (Thu)
_ JBoss on Debian 環境構築成功
True Type Fontがアンチエイリアスで表示できるようになり、Goodです。
快適にJavaが動きます。Javaのライブラリに関連したパッケージで自分でインストールしたのはXdocletだけでした。さすがDebian。antも1.5になっているし、素晴らしいです。
IDEA Ariadna on Linuxも始動です。Pure JavaだからPlatform間の安定性に関係はない筈ですが、なんか、Linuxの方が安定してそうです。Font選択で落ちることもないですし(この部分はVMがnativeを呼んでいるので、安定性に関連するかも)。Pentium4 1.6AGHzだと、IDEAが速すぎるくらいです。う〜ん、贅沢ですね。
PostgreSQLも何の迷いもなく動くので、EJBのテストに適します。
JBossのrun.shも20秒台を記録しました(^.^)。
Neverbirdのant testも動き、Debian環境が本格的に動き始めました。jb-libraryでTestに失敗するので、明日見ます。
2002-07-19 (Fri)
_ JBoss3でEJBが動いた(感涙)
自分で作ったEJBが、JBoss3で動きました。感動です。しかも、Antを使って、auto deploy -> JUnit -> auto undeploy まで出来ました。というのも、Neverbirdのbuild.xmlやら何から何まで参考にしたからです(ほとんどパクリですが)。でもでも、自分で作ったんです。感動(涙)。
改めて、mikiさん、感謝です。Neverbirdがなかったら、ここまでやるのに1ヶ月じゃ足りないでしょう。いや、途中でめげていたかも。このご恩は、Neverbirdで返します。IDEAにも感謝です。あのエラーチェックがなかったら、ケアレスミスで動かず、はまっていたでしょう。
でも、すごいぞCMP 2。ここまで来るのは大変ですが(これが一番のネックか(笑))、雛形が出来てしまえば、あとは型どおりにBeanを作るだけで、transactionやrelation・securityなど、cotainerの様々なsupportが受けられます。これでEnterprise開発がぐっと楽になることでしょう。
2002-07-20 (Sat)
_ Woody release
Debian GNU/Linux 3.0r0、コードネームWoodyがついにreleaseされました。
このバージョンをCD-Rに焼きたいのですが、ブロードバンドでない人に取得手段はどこかにあるのでしょうか(CDにしても何枚もだから、ブロードバンドでも大変かも)。雑誌に収録されるのを待つのも手ですが、秋葉原にそんなネット喫茶があるという噂を以前どこかできいたような。
2002-07-23 (Tue)
_ Tomcat 4はClustering対応
Tomcat 4はClusteringに対応しているようです。「In Memory Session Replication」と呼ばれている機能です。新・日々是雑記で知りました。
2002-07-24 (Wed)
_ JavaGroups
A Toolkit for Reliable Multicast Communicationを提供しているJavaGroupsがあるのですが、TomcatもJBossもこれを使ってClusteringを実現しているそうです。大雑把に言えば、Clusteringのベース機能において両者に優劣はないわけで、JBossファンとしても、Tomcatファンとしても安心しました。
_ JBoss + PostgreSQL 7.2
JBossの設定ファイルで、Databaseへのmappingを指定する部分があるのですが、PostgreSQLだけでなく、PostgreSQL 7.2用の設定例も用意されているので、新しいPostgreSQLを使う場合は注意しましょう。
2002-07-26 (Fri)
_ 訓 私の長所と欠点
ある洞窟の前に立っている。この中のどこかにお宝、黄金のカップ、があるという情報を得たからだ(ただ、確からしいものの、完全な信憑性ではない)。かなりの速さで私はお宝を見つける。また、どんな困難があっても、私はかなりめげない。がんばって突き進んでいく。これが最大の長所。さて、ついに大広間にたどり着き、その奥の壁の台座に黄金のカップが置かれているのを見つけた。しかし、私の最大の欠点は、そこでクエストを終えてしまうことだ。発見で達成感を味わってしまい、なぜかカップを手にすることまではしない。せめて、「あそこにカップがあるけどどうする」と街の人に聞けばいいのに。
ということを今日上司と飲んでいて気づきました。ことあるたびに言われるのが、プレゼン能力・アピール能力が稚拙なため、せっかくの能力がもったいないということなのですが、ここでも何度か書いているように、それは重々意識していて、少しずつ進歩させているのですが。視点を変えると、上の物語かなと。
_ Linuxで日本語文字コード
Emacs: M-x set-buffer-file-encoding-system -> euc-japan-unix, shift_jis-dos
Shell: nkf -e file.name
2002-07-29 (Mon)
_ Linux commandメモ
jigdo-list:ISOイメージDL
nice, renice: 優先度の調整
xload:CPU負荷を表示
vmstat:リソース状況
IGNOREEOF環境変数:Ctrl+Dを調整。
2002-07-30 (Tue)
_ wgetで帯域制限
limit-rateオプションで設定します(1.8.1からの新機能らしいです)。byte単位です。8KB/sに制限したい場合は、
wget --limit-rate=8000 http://www.yahoo.co.jp
とします。~/.wgetrcファイルでも設定できます。
limit-rate=8000
と書けばOK。
Debian links:スレッドテンプレ, Debian Quality Assurance, Debian Package Tracking System
written by はんばあぐ

_ ASIP [Kondara Projectの解散の通知がありました。商用まわりの複雑化が原因だそうです。]
_ はんばあぐ [ご一報Thanksです。ここのつっこみをメールで飛ばしているので、携帯メールで読み、びっくりしました。かなりショック..]
_ ASIP [Kondara Projectの後継としてMomonga Projectが発足されました。公式サイトは http:/..]
_ はんばあぐ [私もとらねこさんちで知りました(^.^)。早速MLにも入りました。]
_ ASIP [私も公式サイトを最初にみた時点でMLに即座に入りました(^.^)。]
_ はんばあぐ [KondaraのDNAを受け継ぐ人々が現れたことはとても嬉しいです。そして、それに立ち会えそうなことも。でも、1.0..]
_ ASIP [そうですね。mph-getについてはそのまま使い続けられるのではないか と思っています(Kondara Projec..]
_ はんばあぐ [mphの商標問題もそうですが、システム的に、Momongaはrpm4.xを使うそうです。なので、rpm3.xなAsu..]
_ ASIP [「rpm4.Xとrpm3.Xの互換性はないのでrpm4.Xなmomongaでrpm3.xなAsusumiのパッケージ..]
_ ASIP [Ariadna build632、出ました。]