2002.1.3 〜 2002.6.30

[1999.9-2000.9 2000.9-2001.3 2001.4-2001.12 2002.1-2002.6 2002.7-2003.1 2003.2-2003.12 2004.1-2004.12 最新版]

僕のホームページ[1]および[2]の更新メモですが、自分のページ作成に関して参考にしたサイトなどや興味あってちょっと調べたことなどを紹介しています。


2002.6.30
 Strutsメモ
2002.6.29
 JDK1.4.1βをインストール。JDEEでBeanShellを起動(M-x bsh)しようとするとエラーが発生。
if: Invalid vm path c:/WINNT/bin/javaw.exe
BeanShellを起動するためにjavaw.exeを探すロジックのバグらしい。ちょっと追っかけてみると、beanshell.elの中でbsh()が定義され、(bsh-internal t)が呼ばれている。bsh-internal()の中で(jde-run-get-vm)を評価している個所でエラーとなっている。環境変数PATHにあらかじめJDKを指定していると正常に機能するが、PATHに指定しない場合に動作しない。
jde-run-get-vm()の中で、jde-get-jdk-dir を評価している。jde-get-jdk-dirは、環境変数PATHにJDKを指定している場合"c:/jdk1.4.1"のように返すが、指定していない場合"c:/WINNT"のように返す。jde-run-get-vm()は、jde-get-jdk-dirの評価に"bin/javaw.exe"を付けて返すので、"c:/WINNT/bin/javaw.exe"というパスとなってエラーになる。
 カスタマイズ変数jde-jdk、jde-jdk-registryといったあたりが定義されていない場合にjde-get-jdk-dirがエラーとなる値を返す。これらの変数が定義されていないとシステムパス上にあるjava.exeを探しにいく。WindowsNT系の場合、c:/WINNT/system32/javaw.exeを見つけ、そのディレクトリc:/WINNT/system32を取り出し、親ディレクトリc:/WINNTを返す。これはjavaw.exeがbinディレクトリ内にあるという想定で設計されているからだ。その後、jde-run-get-vmが想定に従ってjde-get-jdk-dirが返したc:/WINNTにbin/javaw.exeを付けてしまう。
 ここで安直にjde-run-get-vmを修正してc:/WINNT/system32/javaw.exeを返すようにして、BeanShellを起動できるようにしたとする。JDEEはコンパイルにもBeanShellを使っており、c:/WINNT/system32/javaw.exeを使ってBeanShellを起動しても、コンパイルするためのtools.jarが引っ掛けられない。そこで、安直な修正ではなく、きちんとJDKの下のjavaw.exeを指定するようにユーザが指定するべきである。
2002.6.28
 JavaのWebフレームワークは、Servletを使ったものが基本のようだ。ServletだけでWebアプリを作ろうとすると、htmlの生成から永続記憶域のアクセスまで、すべて自前で記述することになってめんどっちーから、フレームワーク化しようってのが基本なのかなぁ。。。で、よく名前を目にするのがJakarta一族のStrutsおよびTurbine、
 と書いてみたけど、Java 2 Enterprise Editionを使ったフレームワークもあるなぁ。。。
2002.6.27
 Jakarta Turbine メモ。
2002.6.26
 とりあえず動き始めたNTEmacs 21用の.emacsファイル。フォント設定が思うようにいかない。。。
 Java Project ExampleページのイテレーションNo.3でユースケースを取り入れ始めたけど、単純な機能だとわざわざユースケース書くほどのことはなさそうだなぁ。。。
 Debian potatoのIPv6化、ちょっと挫折。デフォルトでカーネルモジュールにipv6なんてあるから期待して有効にしてみたけど、実は古くて使いものにならない。USAGIプロジェクトがLinuxのIPv6化を進めているけど、カーネルには反映されていないようだ。
2002.6.25
"JAVA Developer誌"、ぱらぱらと眺めてみると、昨日はサーバサイド中心と書いたけれど、PDA上のJava、Robocode、Java3Dなんて記事も連載でちょっとあるんですね。書評では読書会で現在読んでいるEffective Javaが紹介されていたり。
2002.6.24
 Java 2 SDK, v.1.4.1βが公開されています。
 ソフトバンクから、Javaの月刊雑誌Java Developerが新刊されました。サーバサイド中心でした。
2002.6.23
 昨日は、Java読書会「Effective Javaを読む会(第2回)」でした。午後から訳者の柴田さんも見えられ、有意義な読書会となりました。
 唐突に、NTEmacs 21.2を入れてみました。というか、JDEEの最新版(2.2.9β10)がEmacs20.7ではエラーになるという状況だったので、21系ならどうかと試しでした。Cygwinを入れている環境では、GNU emacsのソースを持ってきてmakeするだけと実に簡単なものです。cc-modeも5.28と最新だ。先日出たばかりのJDEE2.2.9β10がMeadow(Emacs20.7相当)ではエラーとなってしまうがEmacs21系では動く(これはJDEEの開発側で確認が抜けていたのだろうけど)。JDEEがMeadowよりきびきび動くような気がする。
2002.6.17
 昨日Java Project ExampleページのイテレーションNo.2が完了としたけど、2,3追加事項があったので追加。1つが実行可能JARファイルの作成、もう一つがjavacの@オプション。
 JARのドキュメントを読んでいたら、インデックス生成機能があることを知った。
2002.6.16
 Java Project ExampleページのイテレーションNo.2が完了。しかし、先はまだまだ遠い。
2002.6.15
 アサーションをGoogleっていたら、IPAのサイトに「IPA ISEC セキュア・プログラミング講座」を見つけた。Javaについてかかれている章があり、アサーションも解説がある。
2002.6.13
 Java Project ExampleページのイテレーションNo.2を記述中。テストを書いて、コードを書いて、と繰り返しているところ。コーディング・コンパイル・実行(テスト)が小刻みに繰り返すので、一度に考える問題が非常に小さくて済む。また、割と自然にメソッドが分割されていく。優れたプログラマーが自然と行っているプログラミングを、テストファーストでプログラミングすることである程度は取り込めるのではないかと思う。
 イテレーションNo.2では、当初JUnitテストファースト、Antによるビルドを導入しようとしていた。これもかなりやりたいことを削った結果であるが、それでもボリュームが大きくなりすぎてしまった。そこで、Antを次回以降に延期した。一つのイテレーションで、あれもこれもと欲張らない方がいい。一つことでも導入するのは大変なのだから。
2002.6.12
 JUnitテスティングフレームワークのページに、U.S.のオンラインJava Worldの記事「JUnit best practice」で紹介されているプラクティスを箇条書きで追加。
2002.6.9
 JDK1.4.0の日本語版ドキュメントがβ版のものから正式版のものに更新され、APIドキュメントも日本語化されています。
 Java Project Exampleページを記述していて、テストファーストといいつつ、ついついテストケースより本来の実装のことを考えてしまう自分を発見。Webページ上は先にテストケースを記述していることになっているんだけど、実際には先に本来開発するクラスの実装を書いてしまってからテストケースを書いてたりします(そのときわざわざ書いてしまった実装をコメントアウトしたり等・・・)。テストファーストの難しさは、習慣を変えることの難しさなんだなぁ、などと感じています。ページ作成の方は、イテレーションNo.2の実装途中。ちょっとテストを書いて、ちょっと実装して、の繰り返し中です。
 次回Java読書会「Effective Javaを読む会(第32回)」は6/22(土)予定。順調に開催中。今回はもしかして訳者の柴田さんが見えられるかも。
2002.6.7
 JUnitを使ってプログラミングをしていく際のテクニックやスタイルが書かれている、まさーるさんのWebサイトJUnit実践講座を見つけました。テストコードには即値を書くとかコメントはたっぷりとかはすごい納得できます。今作成中のJava Project ExampleページでイテレーションNo.2からJUnitを導入していきますが、その際に参考になりそうなノウハウがいろいろ載っています。
 Emacs JDEE(Ver.2.2.9以降)には、JUnitのテストケースの雛型を生成するコード生成機能があります。それなりに便利です。テンプレートを使っているので、雛型を自前でカスタマイズするのも容易です。
  1. jde-gen-junit-test-class
  2. jde-gen-junit-test-class-buffer
  3. jde-gen-junit-add-test-to-suite
1.は、あらかじめEmacsのbufferにテストケースのソースファイルを開いておいて(空でよい)から実行するものです。クラス宣言とコンストラクタ、suiteメソッド、mainメソッドが雛型として作られます。
2.は、1.と同様ですが、新たなbuffer(ファイル)を作って雛型を生成します。
3.は、suite.addTest(...)を生成します。
2002.6.5
 Apache 2.0.36をWindowsへ入れてみた。日本語ページが化け化けになってしまったが、それはhttpd.confのデフォルトに、AddDefaultCharset ISO-8859-1 という記述があるから。今回はWindowsマシンに入れたので、コンテンツがほぼSJISなので、AddDefaultCharset shift_jis に変更した。しかしこれではSJIS以外のコンテンツを置くときに問題が出そうだ。正しい処置は、コンテンツのファイル名の拡張子に必ずCharsetを追加する(例えば、index.html.sjis)ことなのかな。
 MySQLも3.23.49を入れてみた。my.iniにlanguageという設定がコメントアウトされて記載されている。エラーメッセージを各国語に設定できるものだが、日本語を指定しても化けてしまった。これは、エラーメッセージがEUC-JPなため。
 Web+DB on Windowsページに上記内容を追加中。
2002.6.4
 Java 2 Standard Editionメモのページに、IBM developerWorksサイトのMerlinの魔術シリーズの最新記事(プリンタAPI)へのリンクを追加しました。
 Java Project Exampleページで時刻プログラムのイテレーションNo.1まで終了。
2002.6.3
 里帰り出産だった妻子が今日から戻り、これから一緒に暮らす。すぐには実感がわかないが、なんとも不思議だ。
2002.5.31
 Javaごはんの日
2002.5.29
 Java Project Exampleページ作成に着手。時刻プログラムを題材にしたJavaのプログラム開発プロジェクトの模様を書いてみようというものです。果たしてまとまるか!
 5.26にJava読書会「Effective Javaを読む会(第1回)」実施。参加人数20人と過去最高でした。次回6/22予定。
 一週間ちょっと暴れていた口内炎がようやくおさまり、醤油が大丈夫になりました。お刺身も冷奴も食べられない、ドレッシングもかけられない、ちょっと固い食べ物は痛い、となかなか辛かったのですが。嫁さんが実家に戻っているので、ついつい外食中心になってしまったせいかもしれないなぁ。
2002.5.16
 「設計する人間と実装する人間が同じであるため、実装可能な設計と現実的なスケジュールを実現しやすい」という考え方があるようです。"Architect also Implements"パターン(by Jim Coplien)。とっても同意です。
 Java 2 Standard Edition, v1.4で導入されたアサーション。アサーションの使い方を見ていると、事前条件とか契約による設計という用語が出てきます。
 「契約による設計(Design by Contract)」は、ルーチンの呼び出し側と実装側に契約条件を指定し、これを守る責任を明示的に割り当てる設計アプローチです。契約条件は、不変条件と事前条件、事後条件から成ります。契約条件が満たされないことがバグとなります。契約による設計を意識すると、今まで漠然と決めていたメソッドの引数・戻り値・例外・エラー処理が、明確に考えられるようになってきます。また、メソッドのテストケースも明確に考えられるようになります。AspectJの応用例にも契約による設計を実現するものがありました。AspectJの例では、サブクラスでオーバーライドされるメソッドについても契約をチェックできるのでJ2SEのassertよりも適用が容易で効果も高いと考えます。 
2002.5.15
 JDEEは、依存しているeieio/semantic/speedbarの各パッケージのバージョンをmin-maxでチェックしています。そのため、JDEEより新しいeieio/semantic/speedbarを入れると起動時にエラーとなってしまいます。そのときは、customizeで、jde-check-version-flagをnilに設定するとチェックしないようになります。このcustomize項目は、.emacsに記述します。
2002.5.14
 ManeuverRecordページSwingコーナーに画像ファイルの読み書きについて記述を追加しました。Java 2 SE, Ver.1.4で搭載されたimage I/O、JIMIについて簡単に記述しましたが、JAIはまだ今後です。
2002.5.13
 オープンソースUMLツールIIOSSの新しいバージョン1.1.2が出ております。Windows上の印刷ができないバグが解消されました。
 java.sun.comサイトのJava Live! ChatにHigh Performance GUIs with the JFC/Swing APIが掲載されています。
2002.5.11
 今月から(5/25開催)のJava読書会は、「Effective Java」になります。今までの流れだと、だいたい設計よりの本、言語よりの本と交互になっています。前回はデザインパターン入門だったのでちょっと設計寄りでした。
 ちょっと前になりますが、4.18発売のSoftware Design誌に初めて書いた雑誌記事が載りました。Meadowについての記事です。また、翻訳に参加した書籍が出版されました。
2002.5.9
 Java & CORBAページに、corbaname URLを使用して直接目的のオブジェクトリファレンスを獲得する方法を追記しました。また、OpenORB Tipsページを1.2.1にあわせて修正。
 Java Programming How Toページに、型に安全な定数の作り方、を追加開始しました。
2002.5.6
 黄金週間は子育てに追われていました。。。
 AspectJのページを構成し直し(Webページのリファクタリング)。
 4.24発売のジャバワールド誌6月号にはJava 1.4関係ネタが特集されていたので買ってしまいました。来月号にはアスペクト指向プログラミングの記事があるようです。購読をやめようと思うと読みたい記事が載ってくるなぁ。
 マシンの大幅パワーアップを図ろうといろいろ検索していたら、マシンがハングしたりフリーズしたりと機嫌を損ねているような感じです。Win2kですが、今まで半年に1回程度だったのが、昨日今日で連続しての発生です。PentiumIII 500MHzなので決して遅いわけではないから、パワーアップは取りやめようかな。(でもJavaをやっているとマシンパワーが欲しくなるんだよなぁ)
 2002.4.7に紹介したMorphicレッスン(もうひとつのSqueak入門)サイトの作者である鷲見さんからメールを頂きました。なんか嬉しいですね。メールに刺激されて、Morphicレッスンの前提であるSqueakのバージョン3.2gammaをWindows2000上で動作するようにしました(実は4.7の時点で動かせずに挫折していたのです)。
2002.4.25
 AspectJのページの記述続行。
 非Javaな仕事をしていると、Javaの良さが見えてきます。C++でコンパイラのバージョンが違うだけのためにエラーと戦っているとむなしくなります。またリンクエラーはけっこう解決に時間を食います。Javaはビルド作業(コンパイル・リンク)の効率が断然良いのです。うーむ、やっぱり仕事はJavaでしたい。
2002.4.19
 AspectJの1.0.4リリース。主にバグフィックス。
 AspectJのページに、SoftwareDevelopment誌2002年5月号(今月号はアスペクト指向プログラミングが主題)の記事へのリンクを追加。AspectJ創始者の紹介/インタビュー記事、テスト作業を中心としたAspectJの使い方に関する記事があります。
 Java 2 Standard Editionメモページを更新。IBMのdeveloperWorksの新着記事「Merlinの魔術:アサーションの使用」をリンクに追加。櫻庭さんのJava in the BoxサイトでJ2S v1.4セミナー資料が公開されています。
 今月は「マルチパラダイムデザイン」を読んでいます。かな〜り難解ですが、是非ともマスターしたい内容が書かれているので頑張って読み進めている最中です。共通性とバリエーション、ドメインエンジニアリング、ソフトウェアファミリあたりが下敷きとなっているのですが、これが初めてに近い概念なのでなかなか本題に達していません。ちなみに、アスペクト指向プログラミングもこの本で触れていました。
2002.4.18
 Javaツール/ライブラリ・リンクのページを更新。Orbacus for Javaのライセンスが非商用利用無償から30日間評価に変わったのかな。営利企業のフリーソフトは、よく最初はフリーだけどバージョンアップ時にライセンスを有償に変えることがある。
2002.4.14
 AspectJのページを加筆。HelloWorldプログラムに簡単なアスペクトを織りこむ例を記述しました。AspectJは主要な開発環境向けのプラグインも揃っています。
2002.4.8
 昨日Squeakをやろうと決めたのに、なぜかAspectJのWebページを作り始めてしまった。われながら気まぐれだなぁ。AspectJは去年の春先からちょっとかじっていたのですが、Webページ化はしていませんでした。Java読書会では何度か話題にしていたんだけど。。。ということで一年越しにWebページ化着手しています。
2002.4.7
 昨晩のNHK教育番組「未来への教室」でアラン・ケイが出ていた。子供たちにSqueak(Smalltalk)を教えていました。映像で見る限り、プログラムを組んでいるという光景ではなく、画面にお絵かきした後、Drag & Dropをするとプログラムが動くという様子でした。
 Squeakは2000年の最初にチャレンジしかけてそのままになっていた。チャレンジのきっかけは、書籍「達人プログラマー」で”毎年少なくても一つの言語を学習する”とあり、たまたまその頃にJava互助会MLで紹介されていたのでした。あれから2年以上経過しているのに、それができていない自分を発見した。ちょっとBlue...。
 よし、これからSqueakと戯れてみよう!
2002.4.2
 Emacs用Java開発環境JDEEの最新βバージョンは2.2.9β9.1です。もう少ししたら正式な2.2.9がリリースされると思われます。2.2.8からは大分機能がアップしており、ビルドにAntを呼び出したり補完機能の向上、コンパイルサーバ導入によりコンパイル実行時間を短縮等が加わっています。
2002.3.31
 今日の買い物:「ソフトウェア職人気質」、「XPエクストリームプログラミングアドベンチャー」の2冊です。ソフトウェア職人気質は、達人プログラマーとも通じる本です。ソフトウェア開発という仕事のなかで、実際にはソフトウェアを作らない人達がやたらと多い気がします。現実にめげそうになったプログラマには是非読んでもらいたい本ですね。今のソフトウェア開発のやり方が唯一無二のわけはないですから。
2002.3.30
 本日のJava読書会「デザインパターン入門」を読む会では、Memento、State、Flyweight、Proxyの4章を読みました。デザインパターン入門は次回で読了予定なので、次の課題本の選定に入ります。リファクタリング、Effective Java、Javaの鉄則、他が候補にあがっています。読書会ページで投票中。現在のランキングはこちら
2002.3.21
 Windows上でのCVSクライアント。メジャーなのはWinCvs、VisualStudio上に統合して使用するものではCvsInでこれはWinCvsを必要とする。CvsInはSCC APIには非対応。Microsoft SCC APIを使うCVSクライアントとしては、Jalindi Iglooがある。
2002.3.18
 昨日のjde-compile-option-vm-args問題は、ちょっと深いようです。しかし、代替策として、bsh-vm-argsに-Duser.language=enを指定する方法でいけます。
 今週の通勤本(鞄に入れて持ち歩いている本)は、「Javaの落とし穴」です。C Magazineの書評があります。50項目のうち、いくつかは勉強になることがあります。
2002.3.17
 2.21メモの後日談。デフォルトのLocaleはシステムプロパティuser.languageで切り替えられるので、わざわざJDEEのソースを変更しなくてもよかったりします。と思いきや、JDE2.2.9beta9ではプロジェクト設定でjde-compile-option-vm-argsに-Duser.language=enとしたらエラーとなってしまいました。とりあえずつたない英語でバグレポート。。。
 Javaツール&ライブラリリンクページを更新。JBuilder6 Personal、JRefactory、Artistic Style、Jinsight(更新漏れ)、JACの最新バージョン記載。また、JAI、JIMIを追加。
2002.3.10
 Java 2 Standard Edition, v 1.4で追加された次の2つ、SwingのJFormattedTextFieldと正規表現を使う記事"Regular Expression Based AbstractFormatter"がSunのSwing Connectionにあります。例として電話番号の入力などに使えます「(XXX)XXX-XXXX」
 Swingのページに、Themeのカスタマイズを追記しました。
2002.3.6
 アスペクト指向プログラミング(AspectJ)に関する記事が、JavaWorldオンラインに掲載されています。"I want my AOP!, Part 1"、 "I want my AOP!, Part 2"。Javaについての技術情報が日米では全然違いますね。日本では初心者向けの記事・書籍が中心で、ある程度以上の深い内容はほとんど流れていません(そうした雑誌はことごとく廃刊になっちゃうし)。
2002.2.24
 「デザインパターンと契約」という本を買いました。なんとサンプルコードがEiffelなんですね。単なるGoFのデザインパターン解説ではなく、ユーザインタフェース構築のためのパターンの結合では、MVC、PAC、Observer、Commandなどを素材に詳しい検討がされていたりとなかなかよさげ。付録にJavaへ契約(DBC)を組み込むiContractが紹介されています。
 Meadow+JDEEで、メニューが消えてしまう問題は、SKK10をSKK11へ変更したら解消されたようです。そこでMeadowで開発のページにSKK11のインストール方法を追記しました。
2002.2.17
 Java 2 Standard Edition, v 1.4.0が正式リリースされました。2.13付ですが日本時間は2.14、バレンタインリリースですね。
 Meadowで、SKKとJDEEを両方起動すると、メニューバーのJDEEおよびSKKが拡張した部分が消えてしまう現象が、ほぼ確定的に発生するようになりました。JDEEだけのときは稀にしか発生していないようです。最小化して元に戻すと再びメニューバーに拡張メニューが表示されますが、マウスでメニューバー上のどこかをクリックすると拡張部分が消えてしまいます。
SKK10.62a、JDEE2.2.9beta8、APEL10.3
SKK11.xを使うと大丈夫かもしれません。
2002.2.12
 Java 2, Standard Edtion, v1.4時代のHelloWorldページのプログラムに国際化(リソースバンドル)を追加。
2002.2.11
 JDEE 2.2.9beta8メモ。多数のソースファイルをコンパイルする時に、毎回javacプロセスを起動すると遅くなるため、BeanShell経由のCopmileServerという仕組みが導入されています。ところがBeanShellが日本語を通さないので、エラーメッセージが化け化けです。BeanShellを見たところ、どうやらJavaCCの自動生成コードが怪しい気がするのですが、複雑で追いきれません。javacの出力メッセージを英語にできればよいのですが、Windowsではコントロールパネルで全体を変更しないと駄目なようです。そこで、回避策として、CompileServerがコンパイルする部分にLocaleをUSにするコードを追加してみました。java/src/jde/util/CompileServer.javaの中です。
    static {
        try {
            if (compiler != null) {
                Class[] params = new Class[] {String[].class};
                compile = compiler.getMethod("compile", params);
+               Locale.setDefault(Locale.US);
            }
これで、C-c C-v C-cでコンパイルしたときにエラーメッセージが英語で表示されるようになりました。
2002.2.7
 Mozilla 0.9.8を入れてみました。先にMozillaをインストールしてからJava 2 SDK(RE)をインストールすると、自動的にJava Plug-inがMozillaに入ります。今回のように、Java 2 SDK(RE)が先に入っていた場合は、手動で Plugin用ファイルをコピーする必要があります。Java 2, SDK(RE) ver. 1.4の場合、その中にあるNPOJI610.dllというファイルを、MozillaのPluginsディレクトリにコピーすればOKです。
 Javaツール・ライブラリリンクページ更新。今回はXerces2.0.0、SmartDoc1.0が目玉でしょうか。JLintが1.11→1.12とひそかにマイナーバージョンアップしていました。
2002.2.3
 Emacs用の統合環境ソースコードブラウザECBのページをVer.1.60対応に修正しました。また、Meadow,JDE,Cygwin,CVS関連リンクのページに、Meadow関連のリンク切れを修正しました。CVSのページにWinCvs入手・インストールを加筆しました。Java 2 Standard Editionメモのページに、IBM developerWorksサイトのMerlinの魔術シリーズの最新記事へのリンクを追加しました。
 オープンソースなUMLツールIIOSSの新しいバージョン1.1.1が出ております。Javaで書かれたデスクトップアプリケーションです。
2002.1.28
 あちゃっ、777を自分で踏んでしまった。なんてこった。
 仕事の方が今月で一段落し、次の仕事へ移行中。自分の仕事を作り出す努力をしていなかったので、また、しばらくJavaから離れ、今度はC++とCORBAな世界らしい。まあ、逆に言えば仕事にしばられずにJavaができるということではあるが。。。2002年は趣味なJavaになるかなぁ。
2002.1.27
 Web+DB on Windowsページを更新しました。大きな変更点は、PHPのバージョンを3から4へ上げたことです。合わせてマルチバイト対応版に置き換えています。また、ApacheとMySQLも今日現在の最新版へ上げました。(PHP4.1.1 + マルチバイト対応パッチ、Apache 1.3.23、 MySQL 3.23.47)
 Java 2 Standard Edition(J2SE)のVer.1.4がβ版からリリース候補に上がりました。2002年第一四半期(1〜3月)中には正式版が出そうな感じです。本格的にソフトウェア開発をするときに欲しくなる機能が標準として揃っています。Javaの威力はこの標準ライブラリにあるといっても過言ではないかな。
2002.1.26
 JDEEは2.2.9へ向けて開発中です。最近開発ピッチが速いのでウォッチするのも大変。日本語で情報交換できる掲示板かMLがあるといいかなぁ。今までは1つのファイルをコンパイルするのに毎回javacプロセスを起動していたので、コンパイル対象ファイルが多いと時間がかかっていました。そこで、javacコンパイルサーバというプロセスを立てておき、コンパイル時はこのサーバを呼ぶ機能が追加されました。javacコンパイルサーバは、BeanShellを使って起動しているのですが、BeanShellは日本語コードをうまく扱えていないので、javacのメッセージが化けてしまいます。うーむ。ソースが少ない場合は従来のjavacを使い、ソースが多いときはAntを使った方がよいかも。旧来のjavacを使うには、customizeでjde-compilerの項をjavac serverからjavacへ変更します。
 「ジャバワールド 2002.3」購入。創刊号から買っているけど、そろそろ止めようと思っていながら惰性で買ってしまいました。
 もうすぐこのページのヒットカウントが777になりそうです。
 この一週間は精神的にヘビーな一週間でしたが、とりあえず良い方向になったのでひとまず良。
2002.1.21
 週末のお買い物(雑誌)。
 「Java Press Vol.22」JDK1.4のAssertion APIが解説されています。吉田弘一郎氏がJiniの近況について書いています。Jiniびいきだったんですね。JXTAについては触れていないようですが。UML/J2EE特集はなんか表面的なものばかりな気がする。
 「XML Press 」なぜか表紙がDuke人形!。J2EE特集。Java PressよりもJava度が濃いぞ。
 「C Magazine 2002.2」XP(eXtreme Programming)が特集になっていたので買い。
 JDEE2.2.9β8がリリース。そろそろ様子見がてらと思いMeadowに入れてみた。そしたらsemantic関係のinit error。semantic-1.4beta11ではNGでした。そこで最新のbeta13を入れました。すると今度は、Invalid face property. underline。うーん、よく分からない。調べても簡単にはfaceの設定が分からない。とりあえず下記のように変えてみた。(ちょー適当)
--- semantic-util-modes.el.org  Tue Dec 18 12:03:17 2001
+++ semantic-util-modes.el      Mon Jan 21 18:07:22 2002
@@ -336,12 +336,11 @@
   "*Hook run at the end of function `semantic-show-unmatched-syntax-mode'."
   :group 'semantic
   :type 'hook)
-
 (defface semantic-unmatched-syntax-face
   '((((class color) (background dark))
-     (:underline "red"))
+     (:background "red" :underline t))
     (((class color) (background light))
-     (:underline "red")))
+     (:background "red" :underline t)))
   "*Face used to show unmatched-syntax in.
 The face is used in  `semantic-show-unmatched-syntax-mode'."
   :group 'semantic)
JDEE2.2.9β8は他にもコンパイルエラーのメッセージが化けたりと問題が多いです。CompileServerという仕組みが導入され、javacがBeanShell上で実行されるようになったためなのですが、BeanShell上で日本語がうまく通らない。。。
2002.1.14
 Java 2, Standard Edition, v1.4に新たなSwingのレイアウトマネージャSpringLayoutが追加されるようです。The Java TutorialのHow to Use SpringLayoutに解説があります。"Spring"は「バネ」の意のようですね。
2002.1.13
 OpenORBの1.2.0版IDLコンパイラで日本語が化けるバグのパッチを年末に、OpenORBのbugzillaに登録しておきました。先週そのパッチがOpenORBのソースに反映されました。bugzillaに登録したバグのステータスが変更されるとメールがくる仕組みになっているんですね。bugzillaおもしろいかもしれません。
 OpenORBのcvsソースには、libというディレクトリがあって、そこにプログラム中で使用するライブラリやビルドに使用するライブラリがバイナリで格納されています。cvsのツリーには、ライブラリは入れないというポリシーだったのですが、今回のOpenORBパッチ作業をやっていて、ライブラリがcvsに置かれていることが非常に便利だと痛感しました。
 IBM dw:Java technologyから、ホロニックなソフトウェア開発の記事が公開されています。ソフトウェア開発の成功に到達しやすい環境を作り出すことを目標としています。ホロンとは全体の一部として機能しつつ個体性を維持する実体だそうです。
 Java 2 Standard Editionメモのページに、J2SEバージョン1.4に関するリンク集を追記しました。
2002.1.12
 Swing(Metal Look & Feel)の標準フォントで日本語が汚く表示されてしまう件の回避策として、標準フォントをボールドからプレーンに変更して対応する方法をManeuverRecordページSwingコーナーに追加しました。
 JDK1.4のjavax.swing.BoxクラスがJComponentを継承するようになりました。JDK1.3ではJComponentを継承していなかったので、Swing部品の機能が使えなかったのでJPanel等にBoxLayoutを指定していました。
2002.1.10
 Java & CORBAページに、Portable Interceptorを書き始めました。
2002.1.7
 オブジェクト指向設計/プログラミングに関する文献の翻訳、モノづくり日記などのソフトウェアの設計に関する話題が掲載されているWebサイトTENDER BRAINSを見つけました。
 CORBA Workshopサイトには、CORBAに関するプレゼン資料(英語)がいくつかあります。ObjectByValueのプログラミングについてはこの資料が役立ちました。
2002.1.5
 Java Programming How Toページに、import文どちらの形式を使うか、java.util.Timerの使い方、コレクションを扱うTips、の3つを追加しました。
 Meadow で開発ページを、Meadow 1.15pre1に対応させるように修正しました。
 SmartDocページに、Javaソースコードの色づけ、外部ファイルをソースコードとして取り込む方法を追記しました。
2002.1.3
 Java 2, Standard Edition, v 1.4時代のHelloWorldを作成しました。Java Programming How Toページを新規に設置し、そこからたどれます。Assert、Logging、Swingダイアログを使ったプログラムとなっています。解説はまだ途上ですが、これからぼちぼち追記しています。
 Java & CORBAページに、CORBAサーバ起動用プログラムの作成を楽にするためテンプレートメソッド・パターンもどきを使ったユーティリティクラスを追加しています。クラスを増やしたくなかったのでクラスを分けてはいません。そのうち拡張するときに整理する予定です。

Contact me : torutk@alles.or.jp