HYSPRO Diary
2003-08-04 (Mon)
_ Florida 1日目(4日)
Houston経由でFloridaはOrlandoに到着。ホテルに着いたのは21時過ぎ。疲れました。
米国への入国手続きが今まで経験したことのない厳しさでした。9.11以降は初めてなので、きっとその影響でしょう。まず、入国の尋問(?)が、一問一問丁寧です。ゲートは沢山あるのですが、なにせ想定していない遅さのスループットなので、ものすごい待ち行列です。見ていると、日本人は比較的はやいのですが、そのほかの外国籍は3-5分くらいやりとりしていることもよくあります。
荷物のチェックも厳しい。X線のモニタを見ている係員も真剣で、写った陰についてなにかと回りの係員と協議し始めます。ボディチェックも厳しいです。金属探知機で針一本見逃さない感じです。
そのため、乗り継ぎ便に2時間以上あったにもかかわらず、休む間もなくぎりぎり着いたくらいです。乗り継ぎ便はかなり余裕をみて、いつもの一本うしろくらいがよいでしょう。
部屋からネットに繋がらない。同僚の部屋も繋がらないそうなので、ホテル全体の問題だろう。フロントに言ってはみたが、ネット回線はアウトソースなのでそちらのhelp deskに電話してくれと、予想通りの反応をする。電話をするがなぜか外線電話がかからない。夜中なので誰も出ないだけかもしれない。ネットはあきらめて寝る。IT関係者が数百人泊っているので、きっと、開業以来の初めての負荷によりホテルの回線がパンクしたのであろう。
2003-08-05 (Tue)
_ Florida 2日目 (5日)
8時からkey note。morning session、afternoon sessionと続く。もう少し分かるようになっていると思っていた英語があんまりだったので、軽いショックを受ける。1語1語は比較的聞き取れているのだが、意味となって頭に入らない感じなので、もう少しということだと極めて前向きにとらえる。
ホテルが出す食事は比較的大味でなく、日本人の口に合い安心する。
米国の技術者と話す。newsで議論した相手が私の名前を覚えてくれていて、名乗ったら喜んでくれたので、こちらもとっても嬉しい。新製品の仕様を聞き出す。マーケティング上欲しいと私が思っていた機能が開発中で次期リリースの目玉とのことだった。greate!
相変わらずアメリカの屋内は寒い。上着を一枚持って来たのにまだ寒い。コートでも着たいくらいだ。ホテルの部屋の冷房はデフォルトが20度で設定されていた。即座にOFFにする。もう2度とつけることはないだろう。東京電力のデンコちゃんがアメリカにいたら、間違いなくぶちぎれているだろう。でもセッションで隣に座るアメリカ人は男も女も、短パンTシャツで平気そうだ。不思議だ。
運がよいとネットに繋がるようになったが、激重。おそらく皆使っているので、仕方ない。遅さにあきれて皆やめれば、僕だけ速くなる、わけはないか。
2003-08-07 (Thu)
_ Florida 4日目(7日)
午前のセッションはその題名から、これを聞きに海を渡ったんだというほど注目していたセッション。部屋に入ると、なんと講師は、私の名前を覚えてくれていたと5日に書いた彼。すごい人だとは思っていたが、なんとこの講座の担当だったとは。中身は非常に濃く、神ですね。名刺をもらってよく見ると、Query Processingという製品エンジン部分の開発部長でした。神どころか、ドラゴンボールでいうところの界王です。肩書き通り、すごすぎました。改めていろいろお話する。
ところで、名刺は、name cardという人よりも、business cardと呼ぶ人の方が多い。受付とかでいきなりbusiness cardとか言われると、一瞬戸惑います。
夜は、Disney WorldのPleasure Islandというテーマパークでパーティ。ここOrlandoは亜熱帯気候で今は雨期だそうで、着くやいなやスコールと稲妻が響き、あまり移動できずに一カ所に留まる。なお、このPleasure Islandテーマパーク自体は全く面白くないので、Orlandoに行かれる際は観光から外してください。
さて、いよいよお楽しみのCirque Du Soleil貸し切り。団体という一体感もあるし、既にみんな酒が入っているので、会場内はすごい熱気。会場に来る道中も、ぞろぞろ歩きながら陽気なNOAA(米国政府の日本で言うところの気象庁)の人と友達になる。La Noubaという公演だったのですが、いやー、期待を裏切らずに、感動です。BEAUTIFULLです、美しい。特に中華独楽の章がすごい。10歳ほどの女の子4人が、一糸乱れず高度な技を繰り出します。いやもう、大人がどんなすごいことやってもこれには勝てませんね。彼女たちがステージから去るときは、退場してもなお拍手が鳴り止みませんでした。
自転車で人間を飛び越える演技では、お偉いさんをステージに招くという粋な配慮。もともと人気者の人なので、わんやわんやの歓声がおこる。
おみやげを買うために、団体バスを見送り、タクシーで帰る。
2003-08-08 (Fri)
_ Florida 5日目(8日)
ついに帰途に着く日。長かったが一瞬で終わった気のする一週間でした。技術情報を得たのはもちろんですが、向うの技術者とたくさんお話でき、人脈をつくれたことがなによりの収穫です。朝から晩までハードなスケジュールなのですが、ここでしかできないことが多すぎるので、楽しみなイベントです。
ホテルのロビーに4時集合で、空港に。
翌土曜日、14時過ぎ成田に到着。18時ごろ無事帰宅。
2003-08-13 (Wed)
_ tmpfs
tmpfsは、ramdiskのようなものなのですが、サイズを動的に自動調整してくれます。そして、swapのように、memoryとdisk間のやりとりも自動でやってくれます。dWを参照。
設定は簡単です。まず、kernel optionで、File Systemにて、Vertual Memory Support(shm fs)がONになっているか確認します。そしたら、
# mount tmpfs /tmp -t tmpfs
すればOK。ブロックデバイスではないので初期化も不要です。umountは、
# umount -t tmpfs /tmp
です。fstabに書くには、
/dev/shm /tmp tmpfs defaults 0 0
とすればよいでしょう。
_ NFSの設定
ディスクを提供するサーバーは、kernelでやるかuser modeでやるかの2択です。後者の場合は、nfs-user-serverとnfs-commonとをapt-get install。hosts.allowなどでportmapを有効にし、NFSで提供するディスクを/etc/exportsで教えてあげればOK。
クライアント側は、nfs-commonをapt-get installし、mountすればOK。
_ EJBはO/R mapping toolではない!?
MavenでEARを作るのは面倒だと以前書きましたが、これはMavenのせいではないように思えてきました。もともとEAR(J2EE)の開発は大変なのです。
J2EEの設計思想は、JAR,WAR,EJBの開発者は別々で、それらを集めるアセンブラ、配備するデプロイアも別々で、しかも同時期にそれらが開発される・行われるとは限らず(コンポーネントを買ってくる)、扱うデータベースなど他のシステムも多種多様というのを想定しています。それに最適化するのがJ2EEなのです。それらを一人でやろうとすれば大変なのは当然です。逆に言うと、効率的なJ2EE開発をするには、そのような開発組織を組む必要があります。
つまり、EJBは、O/R mapping技術というより、むしろ、開発プロセス・開発体制に近いのです。だから、技術部分だけをとりあえげて、EJBと他のO/R mapping toolsとを比較しても、あまり有益ではないでしょう。もちろん、J2EEが想定しているそのようなプロセスが、現実にそくしている・そぐわない、といった議論は別途必要です。
_ もうちょっと抽象的な話をすると
J2EEといえども、所詮「フレームワーク」に過ぎません。道具なので、利用目的にそって選ばないといけません。J2EEの大きなプロセスをとれないのなら、別の技術の選択を考えたほうがよいかもしれません。
それから、「フレームワーク」とは、あまりできない人(組織)がそれなりにできるようになるためのものだと最近私はとらえています(善悪の判断をしているわけではないですよ)。Strutsしかり、デザパタしかり、EJBしかり、XPしかり、ひょっとしたら、Object-Orientedしかりかもしれません。細かなフレームワークにとらわれずに、もうちょっと自由な発想でよいのではないでしょうか。
2003-08-14 (Thu)
_ Windows地獄への旅……からの生還
言いたかったことを言ってくれた記事です。「Windowsシステムのトラブルシューティングをする際にしばしば感じるむなしさ」「Windowsの中にある陰鬱な湿地帯であるレジストリ」、共感します。
でも、Nortonを入れればまだましになるというのは新発見です。半年もつWindowsがNortonで2年くらいにもしなるなら買う価値あります。
2003-08-15 (Fri)
_ Happy Birthday to Debian
今夜24時から29時、いざ新宿です。
_ manの出力をテキストへ
$ man hoge | col -bfx > ls.txt
_ 20日水曜日、サーバーメンテナンスの予定です
20日、終日サーバーを止める予定です。ふふふ、復活したらCATVの超速になっていることでしょう。同時に、tdiary-1.5.5-1.debを配布するつもりです。
ご迷惑をおかけしますが、よろしくお願いします。
2003-08-20 (Wed)
_ 祝ブロードバンド!
ついにサーバー回線がブロードバンドになりました。といっても、DNSの変更がまだルートに反映されていないので、みなさんが見られるのは数時間先のことなのですが。家庭内もサーバーもブロードバンドで快適です。
家庭内の無線LANは、802.11bから802.11gへアップしました。
_ 一週間のまとめ
Debian BOF徹夜のその足で、かみさんの実家に帰省し、夏休みをとっていたので、間があいてしまいました。今回は平凡な日記です。
_ Debian BOF
「家に帰って日記を書くまでが遠足です」、かなり気に入りました。ツボです。
_ Universal Studio Japan
かなり面白かったです。実のところ全く期待していなかったのですが、なかなか楽しい雰囲気で気に入りました。また何度も行きたいです。
夜の花火が、花火だけでなく、湖の上のステージがgoodです。
_ 高速道路プロトコル
_ サーバーメンテナンス
2003-08-21 (Thu)
_ tdiary-1.5.5-1.deb 書き込みテスト
いいみたい。キャッシュを削除する必要はないようです。
_ tdiary.deb英語対応の方針
いろいろあって、思案しています。
1. tdiary-core-en, tdiary-core-jpなど、言語別にパッケージをわける
2. インストール時にdebconfで言語を選択する
3. tdiary-setにて、個人の設定時にシンボリックリンクなどをわける
本来は(3)が望ましいのですが、プラグインの形でも言語が分かれているので、プラグインを一つにするという現在の方針からずれます。
パッケージが多くなるのはユーザーにとっても面倒なのですが、英語だけでなく今後多言語対応していくうえで、問題のないやり方がいいです。うーん。週末MLに相談しよう。
_ アーカイブの作り方
dpkg-scanpackage以外にも、
% apt-ftparchive packages . | gzip -c9 > Packages.gz % apt-ftparchive sources . | gzip -c9 > Sources.gz
_ があるようです。
_ ところで
昨日の日記がアイデアメモのまま次の日になってしまいました。想い出なので、必ず書きます。
2003-08-23 (Sat)
_ XDocletオフ
いや〜、びびりました。濃すぎます。Paul McCartneyのコンサートの次に興奮しました。有名オープンソースのコミッタクラスのレベルは格が違います。ラップトップを広げてもらい、実際のプロジェクトを題材にいろいろデモを見せてくれました。Thanks Brian!
_ Value Object
XDocletのValue Object担当だけあって、Value Objectの使い方は神です。しかも、公にしていない彼独自のノウハウを教わりました。基本はここなのですが、そこから先がすごいんです。
他人に教えるほどには理解できていないので、研究します。
_ Entity Bean vs Hibernate
「もうEntity Beanは使わない。Hibernateだ」という真意をつかみました。これには時代の変遷を理解をしなければなりません。Servlet -> JSPでModel IとかIIとかいっているようにです。
Stage 1. Entity Bean
Stage 2. Entity Beanを効率よく使うためにValue Object
Stage 3. Value Objectを保存するためにEntity Bean
Stage 4. [Value Object + Entity Bean]としてHibernate
(1)から直接Hibernateに飛ぶのではなく、きちんとその中間段階があるわけです。ここを把握しないときちんとした議論にならないでしょう。(3)で主客が逆転し、Value Object中心の世界があります。DynaBeanやXMLを伴ったweek typedの世界です。
そういう嗜好だからこそ、XDocletの開発に携わっているそうです。
XDocletによるソースの自動生成は、間違いなく次世代の主流です。ますます自動生成の部分が多くなるでしょう。
こういう時代の流れを聞くと、日本は2年くらい遅れているなと感じてしまいます。まるで、今の自分が2年前の自分に最新テクノロジーを紹介しているような錯覚にとらわれました。あたりまえに、XDoclet + Value Object + EJB + JBoss + MySQL + IDEAの世界がそこにはありました。そして彼はすでにHibernateに移行してしまったわけです。
_ IDEA
彼はIDEAユーザーでもありました。「IDEAやEclipseがなかったら、Java will die」とまで言ってました。ちなみに、IDEAは"アイディア"と発音するそうです。
IDEAの真髄はLive templateにありました。この機能は注目してなかったのですが、使いこなすとすごすぎます。XDocletでソースの生成の達人だけあって、IDEAのLive templateを使って、XDocletタグも含めたEJBやHibernateのメソッドを自動生成していきます。ここすらも自動生成なので、少ないコーディングで恐ろしく多くのソースが生まれます。
ふふ、そのtemplateをもらってきました。といっても、ちゃんとXDocletについています。これを入れて、ソースのどこかでejb.pfと打ち、TABを押すと、あら不思議。
_ 英語
彼の話を聞いていると、自分がJavaのbeginnerのようだし、英語はろくにしゃべれないしで、かなり落ち込みました。精進、精進。ちょっと最近、英会話ができないと生活に困ります。
_ フリーランス
話にはきいていまいしたが、実際に目にして驚きました。彼はフリーランスのJava developerなのです。プロジェクトごとに契約して、チームを編成します。だから、仕事場は自宅というか、ネットさえあれば場所を問いません。そういう生活スタイルもあって、オーブンソースにコミットしやすいのでしょう。
以前来て気に入った日本に仮住まいし、3ヶ月仕事をしていたそうです。日本を気に入ったので、定住しようと思っていると言ってました。歓迎します。そのようなフリーランスの開発者が世界中にいるそうです(つまり、米国人技術者が世界中に住んで開発している)。
Thanks Brian! Keep in touch. I welcome you.
とらねこさん、たかはしさん、お疲れさまでした。
2003-08-24 (Sun)
_ XDocletを注意深く見てみると
いろんなのがあることに改めて気付きました。
さて、EntityBeanを1つ書くだけで、Value Objectはもちろん、Session Facadeまで自動生成できました(Session Facadeは昨夜の話とは関係ありません)。
ここで注目は、Session Facadeの生成とは、その種となるSessionBeanが生成されるということです。つまり、もう一度XDocletをまわすと、SessionBeanのHomeやらRemoteやらが自動生成されます。
よって、1つのEntityBeanを書くと、14個のクラスが自動生成されることになります。ここまで来ると、なんか呆然(笑)。
しかも、Mavenで。たぶんマニアックだと思います。
_ やっと満足に内蔵無線LANが使えるようになった with Debian
kernelで無線LANのドライバを入れておきます。ESSID anyで暗号なしの時はこのままでOKなのですが、WEPのやり方が分かりませんでした。
$ apt-get install wireless-tools すればOKです。設定の仕方はドキュメントに書いてあります。/etc/network/interfacesの書式が拡張されるので、それを使います。こんな感じです:
auto eth1 iface eth1 inet dhcp wireless_channel x wireless_mode managed wireless_essid xxx wireless_key xxxx....xxxx
2003-08-26 (Tue)
_ 30分ほどサーバー接続不能でした
失礼しました。たまたまアクセスしたら繋がらなく、原因が30分前だったのでluckyでした。
原因はDHCPでした。dhclientがrealse timeがきてipを取りに行った時に、その時だけなぜかDHCPサーバーを見つけられず、瞬間的にDHCPが切れました。そして、PPTPが切れ、繋がらないというわけでした。
というわけで、DHCPのdhclient-exit-hooksをしかけて、DHCPが切れた時に、PPTPを張り直すようにしました。帰宅したら、きちんと動くかテストします。
PPTP管理、もうちょっと経験が必要のようです。
_ .zshrc
My Zsh設定を一挙公開。「Software Design 9月号」の情報を加えました。
何がすごいって、$ ant [TAB]すると、build.xmlからtargetを読んで補間するんです。感激。cvsもいろいろ補間し、しかも、サーバーからモジュールを読んで補間します。$ cd -[TAB]で、ディレクトリスタックを補間。素晴らしい。
###
# Set shell options
###
bindkey -e
autoload -U compinit; compinit -d ~/.zcompdump
zstyle ':completion:*' group-name ''
zstyle ':completion:*:messages' format '%d'
zstyle ':completion:*:descriptions' format '%d'
zstyle ':completion:*:options' verbose yes
zstyle ':completion:*:values' verbose yes
zstyle ':completion:*:options' prefix-needed yes
zstyle ':completion:*:default' menu select=1
zstyle ':completion:*' matcher-list '' \
'm:{a-z}={A-Z}' 'l:|=* r:|[.,_-]=* r:|=* m:{a-z}={A-Z}'
setopt auto_list auto_param_slash list_packed \
completeinword printeightbit pushdminus\
auto_menu auto_cd correct auto_name_dirs \
auto_remove_slash extended_history \
hist_ignore_dups hist_ignore_space \
prompt_subst auto_pushd pushd_ignore_dups \
rm_star_silent sun_keyboard_hack \
extended_glob list_types no_beep \
always_last_prompt cdable_vars \
sh_word_split auto_param_keys
# basic setting
export LANG=ja_JP.eucJP
export LC_CTYPE=$LANG
export LC_ALL=$LANG
export XMODIFIERS="@im=kinput2"
alias show='apt-cache show'
alias search='apt-cache search'
alias rm='~/bin/rm.sh'
alias xemacs='XMODIFIERS=@im=_XWNMO xemacs'
alias tree='tree -C'
alias free='free -mt'
alias df='df -H'
alias ps='ps -H'
alias ls='ls -F --color=auto'
alias ping='ping -c4'
alias -g L='| lv'
alias -g H='| head'
alias -g T='| tail'
alias -g G='| grep -i'
alias -g W='| wc'
alias -g S='| sed'
alias -g A='| awk'
export DEBEMAIL=beatles@sgtpepper.net
export EDITOR=emacs
####################
# Java Environment
####################
export JAVA_HOME=/usr/lib/j2sdk1.4
export PATH="$PATH:$JAVA_HOME/bin"
# Ant
export ANT_HOME=/usr/share/ant
# Maven
export MAVEN_HOME=~/share/maven
# XDoclet
export XDOCLET_HOME=~/share/xdoclet
# Tomcat
export CATALINA_HOME=~/local/tomcat
export CATALINA_TMPDIR=/tmp
# JBoss
export JBOSS_HOME=~/local/jboss3
# CVS
export CVS_RSH=ssh
# Proxy for apt-get
export http_proxy=http://localhost:3128/
export ftp_proxy=http://localhost:3128/
# ^[ is C-q ESC
PROMPT='%{^[[$[32+$RANDOM % 5]m%}%U%B$HOST'"{`whoami`}%b%%%{^[[m%}%u "
RPROMPT='%{^[[33m%}[%~]%{^[[m%}'
_ 日経コンピュータ 8/25号
「オープンソース第2幕」ということらしい。Eclipseがとりあげられているのは驚きです。そこまできたか。
さらに驚きは、PostgreSQLの事例で、知人の名前を目にしたことです。システムのことは、WEB+DB Pressで知ってはいたのですが、日経コンピュータで大きく取り上げられるとは凄いですね。
2003-08-27 (Wed)
_ WEB+DB PRESS Vol.16
月曜に発売されたWEB+DB PRESS Vol.16に、記事を書きました。特集2のJBoss入門記事で、Mikiさんと一緒に書きました。
JBoss本では間に合わなかった情報を入れているので、そのAppendixのような感じになっています。JBoss 3.0と3.2とで大きく変わっている訳ではないのですが、JBoss 3.2でのやり方とかその後知ったことを入れつつ、XDoclet + EJB CMPの解説になっています。
この号は他にも盛り沢山なので、楽しめると思います。JBoss本とあわせて、ご覧下さい。
2003-08-28 (Thu)
_ WebWork2
サンプルが動かないのでパッチを送ったら、コミット済みだとの返事をもらいました。CVS HEADを使っているのにおかしいなと思って調べたら、つい最近、Opensymphony全体がjava.netに移行したのね。そういう大事なことは真っ先にWebに書いて欲しい...Wikiには書いてありました。Bug Tracking Systemもjava.netにあるし、JIRAは使っていないのかな。混乱します。
でも、SourceforgeのCVSは回線が不安定で使いにくいので、java.netの方がよいかも。
WebWork2、シンプルで気に入りました。
cvs ckeckoutするには、java.netへの登録が必要です。anonymousやguestだと落とせませんでした。また、module名は、ドキュメントのようにopensymphony/webworkではなく、単にwebworkです。webwork moduleがWebWork2です。
2003-08-29 (Fri)
_ 「Rubyシェルプログラミング」 るびきち著
るびきちさんの新刊です。
irbshを解説した本で力作です。Rubyを対話式に書けるirbがあるのですが、それをベースにEmacsのshell modeで動くようにるびきちさんが作ったのがirbshです。そのirbshの操作方法を作者自ら解説しています。
対話シェルの使い方はキーボード操作が多く、それを説明するのは難しい作業だと思います。しかも、説明しすぎると臨場感を失い、読むのにあきてしまいます。しかし、この本はスクリーンショットをまじえ、丁寧に解説してます。そして、256本のような軽妙な語り口でテンポよく進んでいきます。るびきちさんらしい逸品です。インストールの説明で無駄に紙面を使わずに、本筋をきちんと説明している点に好感を持ちます。
で、濃いですね。かなりマニアです。私もここまで使いこなす自信がありません(^^;。
Rubyが好きで、シェル好きで、Emacs好きで、Unix好きな人のための本です。まあ、シェルはスポーツみたいなもので体で覚えるものだから、地道にやっていきます。
2003-08-31 (Sun)
_ DynaMock
MockObjectsに、DynaMockという機能を見つけました。JavaのProxyメカニズムを使っているこの機能は、Mockクラスをプログラマが書くことなく、MockObejetctを使えるという便利なものです。しかし、これだけでは使い方がよく分かりません。目下研究中。
_ 昨日、14時から23時接続不能でした
失礼しました。でも、だんだんコツをつかんできました。
DHCPが切れて、PPTPのコネクションは自動回復したのですが、routeの設定が自動回復できていませんでした。ログを調べたところ、PPTPの接続には10秒ほどかかるので、それをきちんとまってrouteをしなければならないということだと思います。すみません。
テストしたときはうまくいっていたので、微妙なタイミングなんだと思います。
Debian links:スレッドテンプレ, Debian Quality Assurance, Debian Package Tracking System
written by はんばあぐ

_ zunda [アメリカ人と同室になると冷房の設定でモメますよ〜]
_ みずみず [お勤めご苦労!上着あれでもまだ寒いのかぁ。お役ごめんと言うことで、帰国したら私のものになるのは確実だな(ぇ 今日は加..]