2004-04-08(Thu) [長年日記] [Edit]
■1 アラレ嬢壮行会@台南但仔麺
ジョジョとコスプレをこよなく愛すアラレ嬢が1年ほど豪州へ渡るということで、壮行会。妻は体調により不参加。顔ぶれはアラレ嬢と彼女の御母堂にりた姐、たらこせるのアニキ。彼らは一人残らず私の上京時からなんだかんだと世話になっている人達。このメンツが揃い踏みで呑むのはほんと久方ぶりである。妊娠のお祝いのお言葉などいただいて、恐縮しきり。
なんというか、自分のルーツを確認した会合だった。映画作家としてリュック・ベッソンはヤングジャンプ系で、コーエン兄弟はスピリッツ系であり、我われはティティを拝むにあたってはカネを払うべきで、子供の就寝時の読み聞かせはハインラインだよね、とかそういう話を紹興酒をボトルで3本空けつつ、『天国のドラゴンボール』のキャスティングをしている自分こそが自分なのだな、と。俺も頑張ろう。
近頃はiPodのおかげで、筋肉少女帯や岡村チャン、RCサクセションやAEROSMITHといった自分のルーツを確認している日々で、そういうのと相まって感慨深い夜だった。なんにしても遠からず父親なる人間のメンタリティではないことは確実なわけだが。文学のようにオレを憎むな!!
ところで、自宅の出発時点から『キラキラと輝くもの』を聴きはじめると、ちょうど有楽町あたりで『そして人生は続く』となる。朝っぱらから山手線で涙ぐんじゃう。また、iPod用にエンコしていて気づいたのだが、『SISTER STRAWBERRY』や『仏陀L』のCDが手元に無い。当時はカセットテープで聴いていたんだろうなあ。あとなぜか『UFOと恋人』も無いことに気づいた。
■2 あまり参考にならないJ2EE話
たぶん最近のこの日記読者が期待しているのは↑のような話ではないので、ちょっと近況っぽいことを書いておこう(誰が読んでいるのかよくわからんが)。
遅ればせながらJUnitEEとDbUnitを使い始めた。DbUnitは随分前に元同僚が見つけてきてはいたのだが、自分で本格的に使い始めたのは今日がはじめて。
ざっと見た限りでは、2PCってDBUnitでは標準では利用できない?……といっても「2PCはDbUnitのスコープじゃねーだろ」と言われればぐぅの音も出ないので、気にしてないんだけど。
で。これらについては「有用なドキュメント」は少ない*1。実務ゴリゴリで、技術的に面白いところは皆無だからか。といってもDBUnitに関しては、新進気鋭のヌーラボサイトの技術資料セクションにて『Web+DB Press Vol.17』の記事が公開されている(PDF)。バージョンは少し前のものだが、導入としてはDBUnit2.0でも充分に通用する。というか他にマトモな日本語記事が無い。
JUnitEEは使い方も簡単だし、ドキュメントもわかりやすいから英語で間に合うということかなあ。動かしてみるとなかなか面白いと思うし、Cactusよりも手軽で良いなあ、と個人的には思うんだけど。
そしてDbUnitなのだが、このテストデータってGroovy-Markupで書きたくなるやね。
*1 そして、このエントリもクズ記述の仲間入りという按配だ。
2004-04-10(Sat) [長年日記] [Edit]
■1 Seasarのからさわぎ
昼の部のみ参加。私じしんはIoCDependency Injectionコンテナの概念と、簡単な使い方ぐらいは理解しているつもりだが、S2を触った経験はナシ。
artonさん——そう、遂にあのartonさんと相見えることができたのだ。自分が喫煙者でよかった。そして、自分のことを認識してもらえたよ。無謀でも翻訳してよかった——も仰っていたが、実務の匂いがプンプンするイベントで、濃密で有意義な時間を過ごせた。「道具だけでは何も変わらない。今後は設計やプロセスについての事例やパターンを集めていきたい(要旨)」というはぶさんの言葉が頼もしかった。次回以降も期待age。
以下、会場では時間と度胸が足りずに質問できなかった(内容もトリヴィアルだし)ことが3点あるので書きつけておく:
「Type4」
個人的にはひがさんが日記で言及されていた頃からの謎だった。それが今回のまさたかさんのIoCチュートリアルでようやく理解できた。Seasar独自の機能だというのも印象的。しかし、だからこそ、引っかかることがひとつ。
資料の記述(8ページ)では:
- Type4
- コンポーネントメソッドによる初期化
と書かれていたが、ここで「コンポーネント」という一般的/ 包括的な名前を出さないほうが良いと思う(セッターだってコンポーネントのメソッドだ)。インジェクションの名前による分類(ファウラーによる)ではそれぞれ:
- Type1: インタフェース・インジェクション
- Type2: セッター・インジェクション
- Type3: コンストラクタ・インジェクション
とJava系技術者ならすぐに理解できるであろうJavaの基本的/具体的な術語を利用した名前がつけられている。S2独自のType4も可能ならそれに倣ったJavaの基本的/具体的な術語による名前をつけたほうがわかりやすいと思うのだが、どうか。
私の理解した範囲でだと:
- Type4: リフレクショナル・インジェクション、あるいは任意メソッド・インジェクション
なのだが——これがわかりやすいかと問われると返答に窮する。日本滞在中のファウラーたんに誰かがSeasarのType4を説明して命名してもらうというのはどうだろう。
分割したXMLファイルのinclude
これまたIoCチュートリアルの資料から。資料の記述(26ページ)では:
<?xml version="1.0" encoding="UTF-8"?>
<components namescape="car">
<include path="tutorial/org/seaser/console/other.xml" />
<component name="paintedCar">
....
</component>
</components>
となっていて、other.xmlでは名前空間"other"が定義されている。ここで、includeはcomponents(名前空間"car"を定義している)の子要素として記述されている。なので私には名前空間はネストしているように見えた(car:otherかな、と)。しかし、コードのサンプルを見ると名前空間は"car:"と"other:"。ネストはしないようだ。
<追記 date='2004-04-11 21:26:45'>正当なXML分割とインクルードは「コンポーネント定義の分割とインクルード」と「名前空間」を参照すると上の私の疑問は氷解。sugaさんのツッコミに感謝。書いてみてよかった。</追記>
ならば:
car.xml
<?xml version="1.0" encoding="UTF-8"?>
<components namescape="car">
<component name="paintedCar">
....
</component>
</components>
seasar-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<components>
<include path="tutorial/org/seaser/console/car.xml" />
<include path="tutorial/org/seaser/console/other.xml" />
<conponent name="rootNameSpaceComponent">
....
</component>
</components>
と書いたほうが(書けたほうが)直感的だと思うのだが、どうだろう(ツッコミを受けて修正。これで大丈夫かしら?……XMLのことをよくわかってないのが丸わかりだが)蛇足ながら付け加えておくと、個人的には名前空間のネストはサポートされてもされなくて良いと思う。
以上2点はS2の実態と現状を知らないので頓珍漢なこと書いているかもしれないけれど、いち聴講者の感想まで。
英語ドキュメントの整備
プロモーションの観点からも、Seasarも英語ドキュメントを整備したほうが良いと思う。これだけ日本人開発者を集められる素敵なプロダクトならば、なおのこと、英語ドキュメントは重要だと思う。といっても、ひがさん御自ら書くべきである、という主張ではない。
たとえばRubyで感慨深いのは、海の向こうに渡ってGroovyに影響を与えてJava開発者の手にやってきたということ。そんなことがSeasarでも起こると面白いな、と思った。
——とここまで書いていて、日本語のドキュメントはまさたかさんが作業されるようで、英語も視野に入れてらっしゃるようだ。期待したい。
雑感
ほんと、Dependency Injectionという命名におけるFowlerタンの敗因は「Dependency Injectionが省略表記できない」ことだと思う。
2004-04-11(Sun) [長年日記] [Edit]
■1 Groovy, PicoContainer, NanoWeb
どれもこれもcodehausのプロダクトなわけだが。
Groovy: Seasarのからさわぎでのtakaiさんのプレゼンを目撃して決意した。「汚れた世界では動的な言語が必要なのだ」を思想信条とする身としては、自分にできる何かをすべきだ、と。
PicoContainer: 人気ないねえ。Spring Frameworkは実務でも使ってる人がそれなりに居るみたいなのに。そこで、NanoWebだ。
NanoWeb: takaiさんから改めて「からさわぎ」会場の喫煙所でプッシュされた、Web層のフレームワーク。Groovy + PicoContainer + VelocityでMVCの'V'と'C'を担当。いいね。っていうか、このNanoラインナップは一体……。NanoContainer Hibernateはページも出来ているのだな。
2004-04-18(Sun) [長年日記] [Edit]
■1 「JavaだってLLだ!!」
ということで、勝手に普及プロジェクト第1弾として "Groovy - Scripting for Java"を翻訳、一通り完了。しかし、どう訳したもんだか悩ましいところと、Groovy 1.0-beta4で動作を確認すると挙動が違うように思えるところが見かけられたので、相談すべく勝手にレビューしてくれメールを(勝手に送りつけても大丈夫そうな人たちに)送信。
レビューしていただける方、募集
原文はプリントアウトするとA4で20ページぐらいの分量になるのだけれど、レビューしてやってもいいよという Groovy が気になるはメールで連絡ください(Linusの法則)。折り返しこちらから連絡さしあげます。
2004-04-19(Mon) [長年日記] [Edit]
■1
「Martin Fowler夫妻とGregor Hohpe氏を囲む会」
納品日。客先にてIBMのJ2EEコンプライアンスサーバと格闘。格闘。格闘。しかし埒が全然開かない。途中でリーダーに泣きを入れて出発させてもらったものの、会場に到着したのは終了15分前……。とにかく『PofEAA』にサインはもらって、「Dependency Injectionの記事を訳したのは漏れです!」と伝えた(と思う)。ふぅ。
帰り道にkdさんと一緒になったので、麺通団の店で一緒にうどんをすすってもらった。氏はきちんとbliki_jaの題字をきちんと「ぶりきじゃ」と書いてもらっていた。
これで神々の署名コレクションはRMSに続いて2つめ。しかし帰宅して自慢しても相変わらず妻には羨ましがられない。
Fowlerタン、相当Rubyが気に入っているようで。なんだか嬉しいね。
2004-04-20(Tue) [長年日記] [Edit]
■1 PofEAA Out Loud
「月刊ソリューションIT主催『アーキテクト・セミナー』」のキーノート・スピーチがFowlerタンによるPofEAAネタということで行ってきた。内容については基本的に既出。奇しくも読書会で完了している第2章までで打ち切り。普段は文字でしかお目にかかれないファウラー節を堪能する時間、と思って過ごす。あるいは声に出して読みたいPofEAA。ジェイツーダブリュイー。
質疑応答の時間は無し。よって、Dependency Injection のことは聞けず。PofEAAのWeb改訂版(? なんか遠からずやるらしいけど)で
Base Pattern あたりに収まるようなシロモノなのか、あるいは高度3万フィートの視点からJ2EEの解体・再構築への端緒となるのかとか、日々の活動の観点からはMockと組み合わせてTDDを加速できますかねとか(これは「午後の部」で出たのかな)、話は変わって、定義されているAspectの適用をコンポーネント側が選ぶIoCコンテナが日本にはあるんだけどどうよとか、オリジナルのInjection法、Type4に名前をつけてくれとかとか。
まあ、よしんば質疑応答の時間があったとしても、セミナーの客層/雰囲気からは私がそれをFowlerタンに問うには勇気が必要そうだったけれど。しかし昨日のXPJUGの質疑応答では誰も訊いてなかったみたいだし。
で、だ。なんか「午後の部」のほうが面白かったみたいじゃないですか(artonさんの日記に私の名前が出てるよ!!)
■2 熱死間近
Namazuのインデックスを引けるだけの容量的余裕が無くなったので、削除。いよいよHDD容量の限界が近づいている。 連休中に本格的に自宅で引き受けるようにしないと危険だな。自宅に引き取ったらそれはそれで 運用が不安定になる危険性があるわけだが。これを機会に色いろ整理したいなあ。
2004-04-21(Wed) [長年日記] [Edit]
■1 山手線の最終電車が遅れたおかげで電車に乗って家に帰ることができるる、というのは何かが間違っているように思うのだが、その間違いの半分ぐらいは自分の所為だったり。因果応報。ペイバック。
2004-04-22(Thu) [長年日記] [Edit]
■1 神、降臨——または、Wanderlustにおける日本語ファイル名の添付ファイルの送信および受信について
日本語添付ファイルの受信はできていたのだけれど、送信ができなくて時どき困っていた(添付されてきたファイルに記入して返信する場合(管理台帳.xlsとか経費申請書.xlsとか))。そこに神降臨である。以下はT-gnusの設定だそうなのだが、WanderlustもSEMI/FLIMは同じなので、使える。
;;日本語の添付ファイル名を正しく表示
;;これがないと化けます.
(defvar my-mime-filename-coding-system-for-decode
'(iso-2022-jp japanese-shift-jis japanese-iso-8bit))
(defun my-mime-decode-filename (filename)
(let ((rest (eword-decode-string filename)))
(or (when (and my-mime-filename-coding-system-for-decode
(string= rest filename))
(let ((dcs (mapcar (function coding-system-base)
(detect-coding-string filename))))
(unless (memq 'emacs-mule dcs)
(let ((pcs my-mime-filename-coding-system-for-decode))
(while pcs
(if (memq (coding-system-base (car pcs)) dcs)
(setq rest (decode-coding-string filename (car pcs))
pcs nil)
(setq pcs (cdr pcs))))))))
rest)))
(eval-after-load "mime"
'(defadvice mime-entity-filename (after eword-decode-for-broken-MUA activate)
"Decode encoded file name for BROKEN MUA."
(when (stringp ad-return-value)
(setq ad-return-value (my-mime-decode-filename ad-return-value)))))
(require 'std11)
;; ファイル名が日本語の添付ファイルをエンコードする [semi-gnus-ja: 6046]
(eval-after-load "std11"
'(defadvice std11-wrap-as-quoted-string
(before encode-string activate)
"Encode a string."
(require 'eword-encode)
(ad-set-arg 0 (eword-encode-string (ad-get-arg 0)))))
■2 持続可能ペースを越えたので泣きを入れて早めに帰宅
……といっても22:30なのだが。巡回や更新から一旦離れるのは悪くないことだとは思う。無いなら無いで暮らせるのだよ、ということに気づくことができるので。
2004-04-23(Fri) [長年日記] [Edit]
■1 うなづき系ウェブロ
- http://capsctrl.que.jp/kdmsnr/diary/20040423.html#p01
- http://capsctrl.que.jp/kdmsnr/diary/20040422.html#p08
- http://capsctrl.que.jp/kdmsnr/diary/20040422.html#p09
うんうん。行間を激しく読めてしまう(ように錯覚してしまう)のは、私の職務経歴の主戦場がDOA開発の「中流から下流」だったからだろう。私はチキンでカワードなのと、自分の考えを整理できないので、この件について現状ではなにも書けない。来るべきとき(そんなのあるのかよくわからんが)に備えて言葉と身体を鍛錬したい。いまはただ、DOA、属人性の排除、MVC、BCE——いずれも受容のされ方/使われ方は「なっちゃいねえな」と、言い捨てるのみ。
2004-04-24(Sat) [長年日記] [Edit]
■2 出社プレイ
夜までかけて(!)、どうにかテスト環境へのdeployを仕上げて逃げ帰ったら、さっそく障害報告のメールが来ていた……。
2004-04-25(Sun) [長年日記] [Edit]
■1 『CASSHERN』@丸の内ピカデリー2
断罪!!断罪!!また断罪!! そしてティティ。バトルシーンになると途端にキリキリのたどたどしくなるのはキリキリの技量が樋口チャンに付いていけていないと感じたのは贔屓の引き倒しだろうか。
佐田真由美が頑張っていた。ちょっと不安もあるが、今後も頑張ってほしい。強烈な磁力を感じた『天使の牙 B.T.A』は見逃したんだよなあ。不甲斐無い。
個人的な思いとしては本作は徹底して「映画」であることを拒否し続けているようにみえるのだが、私もCASSHERNの教えに従うことにする。赦す。
■2 横須賀に半年間勤務している間にゴッサム・カフェが閉店していた
ピカデリー2がリニューアルして椅子もマトモになったのは嬉しいのだが、マリオン映画鑑賞のお供、すばらしいホスピタリティのゴッサム・カフェが昨年9月末で閉店していた……。横須賀に勤務している間にそんなことになっていたとは。もうニューヨーク式ホットドッグを食べながらマリオンで映画を観ることはできないだなあ。ケータイを忘れたので店舗跡の撮影はできず。取り壊される前にその勇姿を撮影しておこう。
■3
ディズニー × エイベックス = CCCD
公開時に邦盤を(CCCDであるにも関わらず)うっかり購入してしまったのだが、果たせるかな。我が家のあらゆるCD再生可能機器では1曲目が再生できない。知財を守るためにはCDをCDプレイヤーで聴けなくするとは、さすが「ザ・知財」ともよぶべき企業は違うね。っていうか約2,800円返せ。
で、仕方ないのでダブるけど輸入盤をとうとう購入。ついでに『Island Favorites』も出ていたので捕獲するに至る。
他人事ではないので「海外盤CD輸入禁止に反対する」にも、自己満足に終わらない形で、手軽に賛意を表明する方法があればそうしたいと思う。が、サイトはざっと眺めたものの、どうすれば良いのかよくわからない。署名は誰がどこでまとめているのか。私はハンコを持っていつ何処へ向かえば? もう間に合わないのかな。
2004-04-26(Mon) [長年日記] [Edit]
■1 ThinkPad X40+WindowsXPで「クイック起動を表示する」のチェックが保存されない (3)
なぜか私のサイトに症例がにぽつぽつと集まってきているので、簡単にまとめておくと:
- この現象が発生するのはX40に限らない。
- 現時点で確認されているのThinkPadは、 X40, X31, X30, X22, T40
- こうなると機種は(たぶん)関係ない。するとIBM関連ユーティリティ?
- いまのところアヤシイと目をつけられている(症例報告者が共通して利用している)のは「IBM Access Connection」か?
日常的に利用するユーティリティだから、こいつが悪さしていると困るよなあ。もしかしたら新しいバージョンが出ているかもしれない、と思ったのでIBMのサイトをチェックしてみると——新しいのが出ていた。
IBM Access Connection v3.10
私の手元のバージョンはv2.73だった。READMEにはクィック起動に関する記述はない。とはいえメジャーバージョンが上がっているのだし、何かいいことあるかも、と人柱よろしくアップデートしてみた。……なんかSleipnirでプロキシ設定の切り替えが上手くいかなくなったような(IEに関しては無問題)。
また、新機能として「ThinkPad ホットキー機能 」バージョン 1.03.0391以上がインストールされていれば、「Fn + F5」でロケーションを切り替えられるとのこと。ついでなので、こちらもアップデート。しかし、キーボードだけでさくさく切り替えられるインタフェースではなかった。Alt+Tabでのウィンドウ切り替えのようなものを期待していたのだが。残念。
で、肝心のクイック起動のアイコンの保存だが……
アップデート以来、4〜5回再起動したと思うが、これまでのところ問題なし。しかし、v2.73だったときも、この1〜2ヶ月の間は問題なくクイック起動は保存されていたので、参考にはならないかもしれない。
2004-04-27(Tue) [長年日記] [Edit]
■1 「ぼくはDIContainerをダイコンと呼ぶね」
Dependency Injection Container、略して DIContainer を縮めてだいこんと戯れに命名したら思いがけず一部に好評で嬉しい。
あと、「どっちのコード・ショー」もGoogle的にはオリジンだと思い込んでいるのだが、どうか。
言葉遊びじゃなくコードで貢献できたらなあ。
2004-04-30(Fri) [長年日記] [Edit]
■1 『キル・ビル Vol.2』@錦糸町シネマ8楽天地
Vol.1でやりたい放題やって気が済んだのか、「マトモな」タランティーノ映画になっていた。
■2 『殺人の追憶』@錦糸町シネマ8楽天地
「MEMORIES OF MURDER」とはよくしたもので。人間、飛び蹴りができて一人前。『ほえる犬は噛まない』を見逃したのが悔やまれるな。
リーン開発の現場 カンバンによる大規模プロジェクトの運営(Henrik Kniberg/角谷 信太郎/市谷 聡啓/藤原 大)
『なるほどUnixプロセス ― Rubyで学ぶUnixの基礎』
SCRUM BOOT CAMP THE BOOK(西村 直人/永瀬 美穂/吉羽 龍太郎)
実践テスト駆動開発 テストに導かれてオブジェクト指向ソフトウェアを育てる(Steve Freeman/Nat Pryce/和智 右桂/高木 正弘)
The RSpec Book (Professional Ruby Series)(David Chelimsky/Dave Astels/Zach Dennis/角谷 信太郎/豊田 祐司/株式会社クイープ)
アジャイルサムライ−達人開発者への道−(Jonathan Rasmusson/西村 直人/角谷 信太郎/近藤 修平/角掛 拓未)
アジャイルな見積りと計画づくり ~価値あるソフトウェアを育てる概念と技法~(Mike Cohn/マイク コーン/安井 力/角谷 信太郎)
インターフェイス指向設計 ―アジャイル手法によるオブジェクト指向設計の実践(Ken Pugh/角谷 信太郎(監訳)/児島 修)
アジャイルプラクティス 達人プログラマに学ぶ現場開発者の習慣(Venkat Subramaniam/Andy Hunt/木下 史彦/角谷 信太郎)
JavaからRubyへ ―マネージャのための実践移行ガイド(Bruce A. Tate/角谷 信太郎)










○ なかよし [>分割したXMLファイルのinclude その例では、XMLのルート要素が複数になってしまうのでは...]
○ かくたに [あ、なるほど。]
○ suga [>名前空間はネストしているように見えた http://homepage3.nifty.com/seasar/IoCC..]
○ まさたか [ご指摘多謝です。あのPPT、再度Q&Aを受けてまとめなおしますので、さくっと反映させておきます。直し後も命名センスは..]
○ かくたに [ひえー。修正していただけるとは恐縮です。]