2008年12月23日火曜日

seam-2.1.1.GAがリリースになりました!!

今朝JIRA見たら、2.1.2.CR1がリストされていたので、さっそくseam-2.1.1.GAをダウンロードサイトからダウンロードしています。

2008年12月18日木曜日

Seam 2.1.1.GAリリース間近?

JIRAではここ2日、すべて終わっていることになっていますが、まだ出てきませんね,,,。

2008年12月3日水曜日

Seam 2.1.1.CR1 にアップグレード

してみました。 richfaces のバージョンが上がって(3.2.2) おり、dataTableに拡張機能満載の extendedDataTableが使えるようになっていました(これってSP1の頃からかもしれませんが、確認していません。 また、まだユーザレビューの段階ということになっています)。 テーブルのサイズが大きいとちょっと時間が掛かりますが、グルーピングをしてくれるし、グルーピングした上で、他のカラムのソートをしても、ちゃんとグルーピングを維持してくれているので感激です。 使った限りでは styleをちゃんと反映してくれていないのと、テーブルのselectionの説明が不十分で使い方がわかりません(サンプルが無いと、わからない私が悪いのかもしれませんが)。

これで、Excelへの出力が255行の制限を取っ払ってくれると、やりたいことは殆ど網羅されたことになります。

期待が膨らみます。

2008年11月10日月曜日

URLRewriteFilter on Seam 2.1.0.SP1

Seam In Actionに「2.1からは標準でURLRewriteFilterが機能する」みたいな事が書いてあった(p121)ので、何も考えずにurlrewrite.xmlを突っ込んでみたら、「うん?何かおかしい、、、動いていないじゃーん」ということでweb.xmlや*.jarを調べてみると、確かに設定されていない。  もっとも、これはeclipse-europaで使っているJBossTool(2.1)の所為かもしれないのですが、、、。
いずれにせよ、web.xmlの設定と*.jarの追加で動くようにはなりました。

やれやれ、、、。

そういえば、 components.xmlのsecurity関連の設定も一行足さないとだめですね、2.1に移行する時には。

2008年11月7日金曜日

JBoss 4.2.3 と seam

JBoss 5.0.0.CR2がJNDI見てくれなくて、seam 2.1 の実験が出来ないので、JBoss 4.2.3 にUpgradeして見ました(jkd1.6.0でコンパイルしています)。 

あー、これもエラーで立ち上がらない!!  「SeamListener2回呼ぶなよエラー」が出て、立ち上がるのですが、webからアクセスするとこのエラーが発生して動きません。 jdk1.6.0の所為? と思って google してみましたら、ありました!!
Re'Problem with JBoss 4.2.3 で xxx-ejb/META-INF/MANIFEST.MFの jboss-seam.jar を消しておかないといけないみたいです。 (JBossTools の問題みたいですが、認識されているので、そのうちFixされるのでしょう)

え、何故そんなにjdk1.6.0にこだわるかって? だって、binary の seam.2.1.0.SP1.jar はjdk1.6.0でコンパイルされていて、jdk1.5.0では 「.classが.......」というエラーが出て立ち上がらないので、、、。

W*sでjdk1.6.0が随分早く動くのはJBossUGで木村さんが何か動かしていた時に気がついたのですが、FreeBSD-currentでも立ち上がるまでの時間で見る限り 33sec vs. 58sec で60%程度にスピードアップしているみたいです。 (体感としてどうなのかはわかりませんが、、、)

2008年11月4日火曜日

JBoss 5.0.0.CR2 と seam 2.1.0SP1

Excelやpdfへの出力が簡単にできそうだったので、 seam2.1.0SP1に移行したくて実験してみました。
今の環境の都合上(jdk1.6.0に移行させたい事もあって) jboss5.0.0.CR2の上で動かす実験をしてみました。
手順は;
  1. eclipseで適当な名前で seam projectを 2.1.0.SP1で作る。
  2. seam 2.0.3で動いているプログラムの自分で手を入れた物についてコピペで 1.で作ったプロジェクトに貼り付ける。
  3. components.xmlの頭の部分は 2.0xsdが 2.1xsdになっているので、これを間違わないように変更。 (これ以外、特段に変更するところはない、と思います)
 さて、deployしてスタート。
 立ち上がりは、問題なくスタート。 でも、DBにアクセスするところで下のエラーが出てアウト!!
org.jboss.seam.InstantiationException: Could not instantiate Seam component: latestRegistrationQuery
: : : :
Caused by: java.lang.IllegalArgumentException: EntityManagerFactory not found in JNDI : java:/agrEntityManagerFactory
: : : :
www.seamframework.org に同じ問題の書き込みがあり;


03. Nov 2008, 14:09 CET | Link

that's most probably a bug in latest jboss 5.0.0cr2: jboss 5.0.0cr2 bug when used with seam 2.1.0


あっさり、JBoss 5.0.0.CR2 のバグみたいです。 
JBoss 5.0.0.GAでは直る、という事なので急ぐこともないので移行は暫くお休み。

2008年10月30日木曜日

Seam 2.1.0 SP1 Out!!

Seam 2.1.0.GAが出てから、あまり時間が経っていませんが, Seamp2.1.0.SP1になっていますね。
バグフィックス版ですね。

Seam の UrlRewriteFilter

Seam 2.1 では標準でUrlRewriteFilterがサポートされているみたいなので、2.0で早速実験。
UrlRewrite.xml自身は特に理解が難しい物でもないので、日本語対応の物にしてみました。 ところが、UrlRewriteすると、そのままではcssが適用されなくなってしまいます。 これに付いては、「Seam In Action」(120ページ)に;
Quote

Friendly URLs can cause relative paths to bread since the servlet path is no longer representive of the rendered view. A reference to a stylesheet may stop working because the browser thinks that the friendly URL is the base URL of the resource. To solve this problem, you should use absolute reference to such resource, such as
#{facesContext.externalContext.request.contextPath}/stylesheet/theme.css

Unquote
とあります。  最初、これってどこに適用すれば良いのか分からなくて四苦八苦したのですが、 layout/template.xhtml への追加で解決。

これで、 「http://xxxx/会社別登録農薬一覧/日本農薬」などというURLの指定が可能となりました。 これ以外にも、下のような物を入れてみました(これって、xhtml書かなくても、使いまわしが出来てしまうので、癖になりそう。 楽!!)

実際の物は http://www.agriculture.jp/にありますが、この「登録農薬適用表」等の使われている用語はcrawlerはどうやって見つけ出すんですかね? (URLどうするか、決めかねている部分が有るんで、http://www.agriculture.jp/agr/登録農薬適用表/xxxxxx (登録番号) とagrをつけないと駄目です)


^/登録農薬適用表/([0-9]+)$
/ApplicationsListByRegistration.seam?registrationsRegistrationNumber=$1


^/会社別登録農薬一覧/(.*)$
/RegistrationsList1.seam?productName=&companyName=$1


^/製品名別登録農薬一覧/(.*)$
/RegistrationsList1.seam?productName=$1&companyName=


^/作物別登録殺菌剤一覧/(.*)$
/ApplicationsListByCrop2.seam?applicationMethod=&pestsRank=2&cropForSearch=$1


^/作物別登録殺虫剤一覧/(.*)$
/ApplicationsListByCrop2.seam?applicationMethod=&pestsRank=1&cropForSearch=$1


^/作物別登録除草剤一覧/(.*)$
/ApplicationsListByCrop2.seam?applicationMethod=&pestsRank=3&cropForSearch=$1

2008年10月11日土曜日

jboss.org の wikiが変わりましたね

wikiがseamframeworkで使われている物に変わりましたね。
これは確か、 seam/example/wiki だと思うのですが、これで、DBのschemaの変更の可能性など出ていたワーニングは無くなるのかな? そろそろ、日本語化をして、使っても良いのではないでしょうか? (ソース見ていても、機能が大きくて、今一何がどうなっているのか私には理解できていません。 動かして、理解するしかないかもしれません)。

2008年10月5日日曜日

Seam 2.1.0 CR1

がリリースされましたね。 excel ファイルを作ってくれる機能が追加されているので(pdfと同じように)、切り替えようと試みたのですが, jdk1.6.0でコンパイルされているバイナリが配布されていて、jdk1.5.0で動かすと.class bad version number のエラーが出ます。

この際、jboss5CR2/seam-2.1.0CR1に置き換える必要がありそうですが、この組み合わせで動くかどうか、、、、。
example/wikiも動くのだろうか?

しばらく様子見にしようかなー、、、、。

2008年10月2日木曜日

IPアドレス

アクセスログ見ていると、色々おもしろいことが分かります。
デュポンは通信会社でもないのに、クラスAですが、これは多分核開発などで政府との関係が強かった時代のDARPAの関係なのでしょうね、、。 (想像ですが)

JTがクラスBなのは何故なんだろう?

そもそも、クラスAとかBとか持っていても、セキュリティ上外部とはプロキシ通して繋いでいる場合が殆どなので、256^3のアドレス持ってどうするんだろ? 社内のネットに割り振って使っているようですが、外部に出るときはプロキシー。 JTだって256^2だと、社内で割り振るには足りないけど、全部管理する事は出来ないので、持っているけど使っていない、という状況なのではないでしょうか?

IPの枯渇って言うけど、何かモッタイナイ使い方の結果として「足りない」のは、、、、、

どっちの仕事? sql それとも java?

DBとの組み合わせでWEBアプリ作っていると、どうしてもひっかかります。
例えば、 "売上のトランズアクションデータから、今年の売上の多い製品を順に並べて、製品名と金額を表示して、更にその横に前年の売上の金額と、今年の売上との比率を表示する"といった処理のニーズは結構多いと思いますが、 これってちょっと工夫するとSQL一発で出来ます。
しかし、O/Rマッピング使ってseamで同じ物を作ろうとして、つっかえています。 どうしても、SQLで出来るだけのことをやらせて、Javaでは表示だけ、、、と考えてしまうからのようです。 個別の製品の売上を一つづつ取り出して、これを今年と去年と2年分やって、そのデータをJavaで用意したテーブルに入れて、前年比の計算やソートはJavaでやれば良いのですよね。 これって、DBエンジンとのやり取りが非常に多いので、抵抗が有るのですが、これしかないような,,,。
いろいろgoogleしても、CRUD以外の集約関数を多用したO/Rの例がみつからないので、「これで良いのだ」と納得することにしましたが、なにか居心地が悪い。

この割り切りで、やっとこさ必要なカラムだけを表示するテーブルが出来ました。 でも、なんかすっきりしないなーー。

2008年9月17日水曜日

サーバをFreeBSD 7.0R に

無鉄砲に8.0-currentでサーバを動かしていたのですが、最新の物にUpgradeした途端にAdaptec2830SAを認識してくれなくなってしまい、挫折。 
元の current にも戻れないので、やむなく 7.0R へダウングレード。 
これも、ld-elf.soがうまく置き換わっていなかったために、四苦八苦。 結局半日かかってしまいました。
AdaptecのRAIDカードはリブートする時に完全に前の状態がクリアされていない場合があるみたいで、動作がおかしい時があります。 3時間程はこれで取られてしまい、結局は一旦電源を落とすことで解決。

やれやれ、、、。

2008年9月12日金曜日

言葉の定義(意味)

Seam In Action を読んでいると、component, context, contextual variables, conversation 等聞き慣れない(?)言葉が沢山出てきます。 「これって、知らないのはあなただけ」みたいな本が多かったのですが、Seam In Action ではかなりのスペースを割いて説明されています。 なーんだ、英語圏のJava屋さんだって、ほんとの所分かっていないんじゃん! と、何か一安心。

多くのソフトウェア関連の翻訳本でカタカナが氾濫していますが、使われているカタカナ名詞の意味していることが、完全に理解され(合意され)ているのか、時々不思議に思うことがあります。 いや、理解できていないのは自分だけだと思って、何か非常に情けなくさせられるような気がします。 勿論、カタカナ名詞を適当な日本語の接続詞で繋いだだけのような翻訳本もありますが、この類の物はちらっとみれば翻訳者が理解していないことは分かるので、こういったものを別にしても、の話です。

外資に30年勤めていて、ビジネス上でもこの類のミスコミュニケーションには悩まされました。 適当な日本語が無いと、カタカナ名詞でそのまま使いますが、これが人によって解釈が大幅に違うのに、お互い分かったような気で話が進み、最後にお互いの解釈が違ってうまくいかなくて、お互いを非難する(したくなる)事は多々ありました。 特にカタカナ英語を多用して、「自分は色々な事を知っている。偉いんだ。」といった自己陶酔にも似た状態に居る人が結構居るのですが、そういう人に限って良く分かっていないんですよね。 (解決方法は唯一、めんどうでも具体的に詳細を説明して、相手と合意する。 その時出来るだけ動作や行為を含む名詞を使わない)。

おもしろい例として(実害はありませんが)、AccountabilityとRespoinsibilityがあると思います。 日本には責任の上位概念としてのAccountabilityというものが元々存在しませんので、英文の解説書などから漠然と、Responsibilityより偉いんだー、と納得させていましたが、そのうち日経新聞等で「説明責任」という翻訳を使い始めました。 翻訳としては、大変すっきりしていて良い訳語だとは思いますが、本来の言葉が持っている意味については別途、詳しい説明を加えないと伝わらないと思います(そもそも、存在し無かった概念ですから)。 {武士社会では「説明責任」はなかったのでしょうね。 「問答無用で腹切ってお詫びしちゃった」から)。 
訳語が良すぎて、昔からあったような顔しているから危険です(知らない方が悪い事になってしまいますが、ちゃんとした解説が無ければ、この単語から直接伝わる範囲を越えた意味を持っているのですから)。  私は,今でも何とはなく「説明責任」(言い訳する責任?)がResponsibilityの上位概念であることには違和感を感じています。

ビジネスで良く使われる言葉でおもしろいのは、イニシアティブ: フランス語(だったかドイツ語だったか、有名な将軍の戦略の教科書に使われている)の軍隊用語が、ビジネス英語に転用されたようですが、そもそも元言語から英語へ転用したときに、英語圏でこの単語の意味が共通の認識を得ているのか甚だ疑問を感じますが、それをまた日本語に持ってきてカタカナで使っている時には尚更です。  
しかし、この言葉、明治時代に直接軍隊用語として日本語に訳されているのです。 日本語訳は 「独断専行」!! 
後に、アホな軍人が多用していたこの言葉の語源ですが、これも本来の意味を歪めて使われているようです(元の意味は、想定外の状況が起こった場合、現場の責任者の責任で、任務の遂行の為の最善の方法を考え実行する、くらいの意味のようです。 あくまでも遂行すべき任務は事前に定められ与えられたものですから、上部の意思を無視して勝手に侵略するような行為とは違います)。

昨日の「その時歴史が、、、」でも同じような話がありました。 「国体」って言葉、あんだけ使われていて、日本の方向性の判断の基礎になっていたのに、その解釈は人によって違っていたって? 
 
ファジーでアジャイルな文化も心地よいものではありますが、もう少し言葉の定義に気をつかう必要があるように思います。  食料自給率ではありませんが「ソフトウェア関連の本のカタカナ名詞を50%以下にする運動」とか、少なくともカタカナ名詞には詳細な説明をつけるとか、、、。

2008年9月9日火曜日

Seam In Action が着た!

昨年の12月29日に予約していたSeam In Action が今日着ました。 589ページ(ページが振ってある所だけで)。
自慢できるほど内容が理解できているわけではありませんが、この本のドラフトと1年近くお付き合いして、少しはseamの良さが理解できたような気がします(読んだだけでは、実際に使えないのは外国語と一緒で、実際に自分で使ってみないと、、、)。

幾つかのつまみ食いで、今のWEB(http://www.agriculture.jp/)ももう少しマシになるかも,,,。

2008年8月30日土曜日

JBoss Seam テクニカルセミナー

28日にRedHat主催で,首記のセミナーが行われました。 100人の定員に対してほぼ満席でしたので、Seamファンの私としても、大変心強い思いがしました。 セミナー終了後のRedHat主催の懇親会で、何と私としては珍しく、「マスタリングJavaEE5」が当たってしまいました。 執筆者の斉藤さんのサインも貰っちゃった。 (書店で立ち読みした事はあったのですが、値段が高かった、分厚かった、字が細かくて読むのが辛かった為に、買うのをためらっていたのでした)。 ラッキー!!

セミナーの内容は、私にとって特に新しい物はありませんでしたが、 Seamを使う人が増えてjjbug-seamのMLに多くの方が参加して、オープンなサポート体制が充実してくれたら嬉しい限りです。 (木村さんがjjbug-seamに積極的に参加してくれそうなので、このMLの活性化が期待されます。)

その後は例によってJJBugの2次会でした。 皆本さんに「何故Seamなの? PHPでもいいのでは?」という質問を頂き、ハタと考えたのです、何故Seam?
 1)元々は市場調査などの営業分析データをExcelで処理していたのですが、その都度の入力は無駄なので、個人的にDB作ってデータを管理していました。
 2)Excelだけでは処理しきれないこともあり、ODBCとExcelで処理をしていました。(どっぷり浸かっていると、これはこれで住み心地の良い環境なのですが、不定期に使うことになるので、データの管理とかインターフェースを思い出すのに時間が係るとか、営業が片手間でデータ管理している、特有の問題を抱えていました)
 3)これを解決するのに、当然PHPが最初に、、、(これはもう10年以上前のPHP3の時代なので、今とは状況は違うと思いますが、、、)。 SQLを作って動作を確認して、これをPHPで表示させるコードを作って、、、、。 「こんな機能も、あんな機能も、、と付け焼き刃的に」機能を増やしていったために、ちょっと管理しきれなくなって、ここでストップ。 (インタープリター型の言語なので、履歴管理がちゃんとしていないと、結構面倒だった)
 4)その後、StrutsとかSpringとかモジュールを作ったら、それを拡張して使えるように出来ないだろうか(仕事上は、結構、対象とするデータは異なるが、分析パターンは同じという分析処理が多いのでこの様な発想になる)、いろいろ試行錯誤しているうちにSeamにたどり着いたのでした。 幸いにも(不幸にも?)R&Rは、まだ無かったんですね。
 5)昨年までははSeam-genを使ったCRUDアプリを作っては、その可能性を感じていましたが、実の所、「ここから先は、どうしたら良いのか?」がよく分からなくて足踏みしていました。 Seam-In-Actionのドラフトを読み、ここら辺がやっと解決されていきましたので、少しづつですが、自分が描いているような物が作れるようになってきたように思います(まだ、道半ばですが、、、)

 番外)SpringでDIやAOPを知り、その頃ちょうどSAPのバージョンアップとSOX404の導入・実装(?)を主導していたので、ここでも、JBoss・Seamにより将来性を感じたのでした(jBPMを使えば、殆どSOX404はシステムに実装できると思います。勿論ユーザ管理とか、人的な部分は残りますが)。 実際、既存のSAPで全てのログを取って、データの入力者を検証するとか、入力の誤りがないことを確認するとか、SOX404の要求を満足させようとしたら、毎月何百ページのログを呼んで、確認して、認証する、アホな仕事が発生してしまうのですよ。 これを2年もやらされたのでした。

結論から言えば,「特にJBoss/Seamである必要はなかった」 「ただ、その時のめぐり合わせでSeamに魅力を感じた」だけなのです。 営業分析データですから、ミッションクリティカルではないし、EJB3である必要は無いのですが,,,。 スピードさえ問題なければ、システムの機能がToo much でも問題は無いので,,,。

2008年8月8日金曜日

Project BlackBox UnderGround

テレビ東京のWBSで紹介していたサンマイクロの地底データセンタープロジェクトに興味があったので、問い合わせて担当責任者の方と面会、お話を聞くことが出来ました。
データセンターの電力消費の40%近くが冷却に費やされているのは衆知の事実ですが、データセンターが都心にあり、電力の送電ロスが30%近くもあるといわれているという現実を考えると、「何故データセンターが都心に無ければいけないの?」という疑問は、これだけネットワークが発達した日本では素人でも疑問に思う所です。 
色々お話を聞いていると、「消費電力を削減するー>水冷を活かせる場所(BlackBoxを商売上有利に活用できる)。発電場所に近い所ー>送電ロスの分だけ、電力会社に価格を下げるよう交渉できる?」等を目玉に考えてられており、「グリーンIT」でお役所の後ろ盾も貰っているようでした。 ちょっと疑問だったのは、「発電場所に近い」が本当にメリットになるのだろうか?ということです。 何百キロも離れた東京は論外ですが、発電所の近くは、「その発電所が停止したときのバックアップが十分か? 変電設備を特注で作る必要が出て来て、却って設備が高くつかないか?」等門外漢としては?? 電力供給もネットワーク化されており、多様な電力ソースからの供給が可能で、且つ送電ロスが最小で済む所、という視点で見ないと、却って脆弱性が高くなるような気がします。 また、二酸化炭素排出から見れば、消費電力の大きいデータセンターは原発の近くが良いのでしょうが、これも、原発が事故で止まった場合はどうするか?を考えると問題があるのかもしれません。
また、地底というのは、温度が下がった状態を維持できれば良いですが、一旦内部の温度が上がってしまうと、今度はこの排熱をどうするのでしょうか? その点では両刃の剣のような気もします。 (セキュリティ対策としては良いのでしょうが、冷却としては問題がありそう)
おもしろい、新しいアプローチでBlackBoxも20フィートコンテナでモジュール化されており、かなり効率的にデータセンターの構築が可能であることは確かですが、周辺技術を考えると、色々難しい問題がありそうです。

「グリーンIT」が、一極集中を地方分散に方向転換させるための、大きな枠組みを与えるような物になれば、これは地方にとって大変良いことですが、地方がこれに気づいていない(そもそも、このような地域起こしに知識が無い)事も問題です。

2008年7月18日金曜日

ダイナミックレンジ(ついでに無線の話)

もう35年以上前の話。 世の中、真空管からトランジスタに移行している頃ですが、コンテスト(48時間で、どれだけ多くの国や局と更新するかを競う競技)等で、このトランジスタ製の受信機を使うと、何かとっても賑やかなのに、うまく聞こえない、全体にガサガサ、ワサワサしているのです。 多分、航空母艦等の軍事通信が集中する状況でも同じような問題があったのでしょう。 受信機のダイナミックレンジが話題としてアメリカ当たりで取り上げられ始めました。 感度を上げて、更に80db以上のダイナミックレンジを確保する為には、全体の利得配分の見直し等、非常にデリケートな設計が求められていました。 頭にいきなりアンプをくっつけると、アンプその物の出すノイズと、下手をすると後段の飽和で必ずしも感度も、ダイナミックレンジも広がらないのです。 アポロ計画が終了して大量に解雇になったNASAの元技術者たちが、この様な技術をアマチュアの市場に製品として出してきました。 しかし、これは、ビックリするほど単純な、まっすぐなデザインの代物で、ほんとに目から鱗だったのを記憶しています。
自分なりに少し理解できたので、実験して当時のHamJournalに記事を書いてみましたが、国内メーカの物はダイナミックレンジが60db程度しかなく、大変悪い結果となった為に、結構風当たりが強かったことを記憶しています。 実際にはアンプの利得の最適化だけではなく、周波数変換の為の局発のレベルなど、最適化の為には真空管時代とは比べ物にならない位、設計が複雑になっています。
大学の学部学生の頃は、専攻(農学)とはまったく関係の無いこの話を一生懸命追っかけていました。 

最近のアマチュア無線の機械の広告を見ると、殆ど全部に「ダイナミックレンジXXdb」と謳ってあるので、「あー、やっと常識として定着したんだなー」と思っています。 技術って、認識されてから常識として定着するまでには思いの外時間が係る物なのですね。

小学校の同級生

昨日は40年ぶり位に、小中学校の頃の同級生と再会して食事をしました(彼は国鉄の職員の息子さんで、いつの間にか来て、いつの間にか居なくなっていたので、小学校だったのか、中学校だったのかも定かではないのだけれど、その後もアマチュア無線でつながっていたので、お互いよく覚えているのですが、その頃よりお腹は出ていたけど、ほとんど変わっていなかったのにはびっくり)。
日本が「技術立国」を目指し、「科学」(理系)に力を注ぎ、それが少しづつ実を結んで、新幹線、東京オリンピックと大きなイベントもあった頃の友達です。 その頃は、勉強そっちのけでひたすら、アマチュア無線の開局準備に走っていましたので、ラジオや送信機を、いろんなメーカの回路図見ながら、自分なりにデザインしていました。 また、操作性の良いデザインを追求して、これも各社のデザインを拝借して自分なりのデザインを考える、楽しい毎日でした。  きっと、ほんとに夢中になっていたのでしょう、回りの人にも影響を与えていたみたいで、昨日も「お前の所為で、アマチュア無線の道にはまった」みたいな事を言われましたが、そのお陰で彼は、電力会社の職と、年齢を越えた多くの友達を得たのだから、「感謝状の一つ」も頂いても宜しいのでは?
しかし、世の中が「出来上がって」しまい、個人が工夫で大メーカの製品を凌駕するような余地も狭まり、我々の世代の人間に取っては「寂しい」時代になってしまいました。
久しぶりに秋葉原のラジオデパート等歩いて回りましたが、真空管のオーディオアンプの自作キットを売っていて、その宣伝文句に「自分で"空中配線"してみよう」って書かれていました。 プリント配線に対抗する言葉のつもりなのでしょうが、本来”空中配線"は「下手くそな配線」を指しており、決して良い言葉ではない事なんかもう誰も覚えていないのかな?と感慨も深い物がありました。

あの頃の人を巻き込むような、情熱とエネルギーはどこへ行ってしまったんだろう?

2008年7月10日木曜日

seam-2.0.3GA jboss5.0CR1

seam-2.0.3GAではjdk1.6.0がやっとサポートされたみたい(まだリリースになってませんので、「みたい」)。
jboss5.0CR1(こちらは既にリリースされています)もjdk1.6.0がサポートされていますので、いよいよjbossもjdk1.6.0で動くようになりそうです。
ちょっとjboss5.0CR1をいじったところでは、ファイル構成が変わっているのか、一部のjarが見つからない、と言ってきて seamは動きませんでした。(seam は今でも大体は1.6.0で動きます。 test環境が動かないとか、細かいところで色々あるかとは思いますが) 現時点で深入りしてもしょうがないので、ほってありますが、、。

selectOneMenuで、、、

過去3ヶ月、過去6ヶ月とかのselectOneMenuを作ってitemValueに直接Date型の値を入れたらうまく行きませんでした。 これに気がつくのに2日もかかってしまった。
安全を見越して、selectOneMenuには整数を入れておき、受け取る側で分岐させるのが間違いのない方法なのですね。

疲れた,,,。

2008年6月28日土曜日

やっと見せられるところまで完成

IE6のカラム落ち、や画面デザインというもっとも不得意な部分も何とか誤魔化して、一応動くようにはなったものの、負荷テストが出来ない。 ajaxってJmeterでどうやってテストするんだろ?

ま、後はスポンサー探してお金にすることを考えなければなりませんが、当面は実験的にwww.agriculture.jpで公開。

portlet化する方法を勉強して、wikiのサンプルとともにportalで動かすところまでは完成させたいな。

2008年5月31日土曜日

seam-2.0.1GAと seam-2.0.1SP1

ここ1ヶ月くらい、レスポンス時間が実用に耐えないレベル(5ー8秒)なので、DBを色々いじっていました。 でも、DBのplannerみても1msから150ms位で、seamで実際に動作しているスピードとのギャップが大き過ぎるなー、、、と感じながらも、seamframework以上に何もしていなかったので、seamをいじることも出来ずにいました。

ところが、2.0.1.SP1が出て、ドキュメントにスピードの改善があったので、昨日、急遽入れ替えてみました。http://jira.jboss.com/jira/browse/JBSEAM-3024
うわーお!! メッチャ違う! 全てが2秒以内に収まり、サクサク感もあり、今までのスピードが嘘のようになりました。

これで、先に進む元気が沸いてきました。 (折角作っても、遅かったら使ってくれませんからね)。

Profiler動かさないとダメかな?と思ってJProfilerのLinux版を持ってきましたが、私の環境(FreeBSD)で動かすのにはちょっと手間が係りそうです、、、。 取り合えず、そのままではライブラリが見つからない、、、って言ってきます。

2008年4月20日日曜日

Seam-In-Action のドラフトバージョン

がManningから入手可能(一部フリー)なので、Dan Allenの言うところのseamframework の利用方法について、勉強しています。
EntityQueryを利用したcomponents.xmlにクエリーコンポーネントを記述する方法はJavaでクエリーのビジネスロジックを書くよりは格段に簡単ですし,xhtmlのフォルダの場所と近い(Eclipseの場合)ので、効率よく必要なものが作れました。 たいがいの物はこれで済みそうです。

一難去ってまた一難。 今度はRichFacesのdataTableでsordByとかfilterByがうまく動いてくれない(Exampleを真似しても、言われているようには動いてくれない)。 何か間違っているのだろうか?

2008年4月1日火曜日

JBoss4.2.2/seam 2.0.1GA/PostgeSQL 8.3

この組み合わせ、ひょっとすると問題なのかもしれません。
PostgreSQLを8.3.1にバージョンアップしたのですが、今まで動いていたアプリが一部、
org.hibernate.HibernateException: Wrong column type: xxx
というエラーを吐いて起動出来なくなりました。 やむを得えず persistence.xml のしたの行をコメントアウトしたところ、動くようになりました。


hibernate が PostgreSQLのバージョンに対応できていないみたい、、、。

2008年3月24日月曜日

eclipse-europa (Winter) on FreeBSD

eclipse 3.3.2 をFreeBSD-current(amd64)にポートしました(http://www.tydfam.jp/eclipse-devel332.tgz)。
jdk15でのコンパイルで、FreeBSD-eclipseでも何人かの方からリポート頂いていますが、問題はなさそうです。 私の所でも問題なく動いています。
現在の所、jdk16でコンパイルした物は、時々おかしくなる場合があるみたいなので、もう少しいじって見ないと、何とも言えませんが。

2008年3月2日日曜日

JBoss Portal 2.6.4続き

pgpool の問題でうまく動かなかったのですが、素のPostgreSQL8.3では日本語も含めてPortalはうまく動くようです(1日〜2日動かしてみた限りでは問題がありませんでした)。
ただ、forum portletは何故かPostgreSQLではエラーが出てしまい、うまく動きません。mysql5 では問題が発生しないので、ここで躓いています。
他のCMSを使ったことがないので操作性が良いのか悪いのか何とも言えないのと、これ全体の日本語化にはかなりの労力が必要なことが予測され、JBossPortalが日本でどのくらい普及するのかは??ですが、OSSでこの位の完成度であれば、決して悪くは無いのでは?

Portalそのものは追い追い勉強してゆくとして、bridge で seam で作ったプログラムがそのままPortalに移せるのか? blogやwikiそれにforumなどJBossが提供しているPortletが日本語で問題なく使えるのか、等など、実際に使おうとするともう少し調べたり情報を集めたりが必要になりそうです(JBossの提供しているPortletについては少なくとも全部日本語化しなければならないので、これに結構時間が必要ですね)。

2008年2月28日木曜日

JBoss Portal 2.6.4 & PostgreSQL 8.3

JBoss Portal 2.6.4 を入れてみました。
hsql,mysqlでは問題なく動作するようですが、PostgreSQL 8.3 を使おうとすると下のようなエラーが出ます。 JDBCも新しい8.3のものに変更しているので、これで動いてくれないとがっかりです。 googleしてみましたが、この手のエラーについて幾つか見つかったものの、jdbcの問題によるものみたいで、参考にはなりませんでした。 当該のSQLをコピペで直接PostgreSQLで実行しても、すんなり動くので ? に挿入される文字列の問題なのか、本当にjdbcのimplementationの問題なのかは分かりません。 Postgresql側で詳細なlogを取ってみる方法もあるのでしょうが、、、。

2008-02-28 10:17:16,939 DEBUG [org.hibernate.SQL] insert into JBP_PORTAL_OBJECT_PROPS (OBJECT_KEY, NAME, jbp_VALUE) values (?, ?, ?)
2008-02-28 10:17:16,940 DEBUG [org.hibernate.persister.collection.AbstractCollectionPersister] done inserting collection: 16 rows inserted
2008-02-28 10:17:16,940 DEBUG [org.hibernate.jdbc.AbstractBatcher] Executing batch size: 1
2008-02-28 10:17:16,940 DEBUG [org.hibernate.jdbc.AbstractBatcher] about to close PreparedStatement (open PreparedStatements: 1, globally: 1)
2008-02-28 10:17:16,941 DEBUG [org.hibernate.jdbc.ConnectionManager] skipping aggressive-release due to flush cycle
2008-02-28 10:17:16,941 DEBUG [org.hibernate.jdbc.ConnectionManager] aggressively releasing JDBC connection
2008-02-28 10:17:16,941 DEBUG [org.hibernate.jdbc.ConnectionManager] releasing JDBC connection [ (open PreparedStatements: 0, globally: 0) (open ResultSets:
0, globally: 0)]
2008-02-28 10:17:16,941 DEBUG [org.hibernate.jdbc.AbstractBatcher] about to open PreparedStatement (open PreparedStatements: 0, globally: 0)
2008-02-28 10:17:16,941 DEBUG [org.hibernate.jdbc.ConnectionManager] opening JDBC connection
2008-02-28 10:17:16,941 DEBUG [org.hibernate.SQL] select objectnode0_.PK as PK64_, objectnode0_.PATH as PATH64_, objectnode0_.NAME as NAME64_, objectnode0_.P
ARENT_KEY as PARENT4_64_ from JBP_OBJECT_NODE objectnode0_ where objectnode0_.PATH=? or objectnode0_.PATH is null
2008-02-28 10:17:17,011 DEBUG [org.hibernate.jdbc.AbstractBatcher] about to close PreparedStatement (open PreparedStatements: 1, globally: 1)
2008-02-28 10:17:17,011 DEBUG [org.hibernate.jdbc.ConnectionManager] aggressively releasing JDBC connection
2008-02-28 10:17:17,011 DEBUG [org.hibernate.jdbc.ConnectionManager] releasing JDBC connection [ (open PreparedStatements: 0, globally: 0) (open ResultSets:
0, globally: 0)]
2008-02-28 10:17:17,014 DEBUG [org.hibernate.util.JDBCExceptionReporter] could not execute query [select objectnode0_.PK as PK64_, objectnode0_.PATH as PATH6
4_, objectnode0_.NAME as NAME64_, objectnode0_.PARENT_KEY as PARENT4_64_ from JBP_OBJECT_NODE objectnode0_ where objectnode0_.PATH=? or objectnode0_.PATH is
null]
org.postgresql.util.PSQLException: An I/O error occured while sending to the backend.
at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:218)
at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:451)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:350)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:254)
at org.jboss.resource.adapter.jdbc.WrappedPreparedStatement.executeQuery(WrappedPreparedStatement.java:236)
at org.hibernate.jdbc.AbstractBatcher.getResultSet(AbstractBatcher.java:186)
at org.hibernate.loader.Loader.getResultSet(Loader.java:1787)

2008年2月25日月曜日

seam-gen の吐いたコードでの日本語サーチ


1.2.1GAの頃から、「日本語をサーチのinput box に入れると文字化けしてしまう」というのに気がついていましたが、2.0.1GAでもこれは変わっていません。 目的の物をある程度の所まで仕上げたので、先送りしていたこの問題にちょっと頭を突っ込んで見ましたが、バグなのか設定ファイルのどこかが足りないのか、やはりうまくゆきません。
デバッガで追っかけてみると、context のlocale.language="en"となっているのですが、これは"ja"になっていてくれないと、おかしいのではないかと思います(デバッガの該当画面を添付)。
同じ問題は野上さんのところでも確認されたので、バグ或いは設定ファイルの説明の欠落、ということでしょうが、「1.2.1の頃に明確にしてJIRAしておけば良かった」と反省しています。

2008年2月23日土曜日

glassfish v3 が動いた!!

2月21日時点でのsvnで取ってきたソースで無事コンパイル、動作確認が出来ました。
前にも書いた通り;
cd /usr/local/glassfish/v3/api
mvn -U install
cd ..
mvn -U install
cd distributions/glassfish/target
unzip -d (glassfish install directory) glassfish.zip
unzip -d (h2 install directory) javadb.zip
でインストールは終了。

(glassfish install directory)/bin/asadmin start-domain1

で起動。http://xxxx:8080/ でホーム画面が表示され、

テスト用として配布されている hello1.war を asadmin deploy hello1.war として
http://xxxx:8080/hello1 で無事hello1が表示されました。 

後は、seam の ear をdeployして走るかどうか、その時の変更点(Seam In Actionの内容を参考に)と、スピードなどをjbossと比較してみたいと考えています。 hello1.war のdeployの感じではjboss4.2.2GAよりも遅いような気がしますが、、、。

2008年2月16日土曜日

glassfish v3 のインストール

glassfish v2 のコンパイルはうまく行かなかったので、あまり期待はせずに v3のインストールをhttp://wiki.glassfish.java.net/Wiki.jsp?page=V3FullBuildInstructions に従って、やってみたらすんなりコンパイル、インストール、実行が出来ました。 
環境は: FreeBSD-8.0(current), jdk1.6.0です。(jdk1.5.0ではうまくいかなかった)
cd XXX/glassfish
svn checkout https://svn.dev.java.net/svn/glassfish-svn/trunk/v3
cd v3/api
mvn -U install
cd ..
mvn -U install
リビジョン18105では、
[INFO] Compiling 1 source file to XXX/glassfish/v3/common/amx-impl/target/classes
XXX/glassfish/v3/common/amx-impl/src/main/java/org/glassfish/admin/amx/AMXConfigRegistrar.java:58: シンボルを見つけられません。
シンボル: メソッド getObjectName()
場所 : org.jvnet.hk2.config.ConfigBean の クラス
ObjectName objectName = cb.getObjectName();
^
XXX/glassfish/v3/common/amx-impl/src/main/java/org/glassfish/admin/amx/AMXConfigRegistrar.java:94: シンボルを見つけられません。
シンボル: メソッド setObjectName(javax.management.ObjectName)
場所 : org.jvnet.hk2.config.ConfigBean の クラス
cb.setObjectName( objectName );
^
エラー 2 個

コンパイル出来ていませんので、後日再トライしてみます(昨日は出来たのに、、、)。

ところで、このwiki.glassfish.java.netって結構止まっている時が長いような、、、。

水冷にトライ、、、、

水冷にトライしようと、システム買ってきてしまったが、これがデカくてケースに収まらなくギブアップ。
ま、当面はこのままでゆくか、、、。

水冷はかなり気を入れて掛からないと、出来ないことを確認。

Phenom にシステム変更

GigabyteのGA-MA790FX-DQ6とPhenom(9500)にシステムを変更してみました。
何もせずに「すんなり」とは行ってくれません。
 1)SB600のオーディオがノイズ拾って酷い。
    ーー>これはIRQの所為みたいで、使ってないものを極力disableして解決。
       (どれが原因なのかは??)
 2)USBマウスを差し込んだまま立ち上げるとpanicして立ち上がらない。
    Freebsd-usbに同じような症状のレポートが上がっているが、解決方法は不明。
    立ち上がった後に、USB差し込むとちゃんと認識してくれるので、当面はこれで行く。

Opteron(dual) x2 よりは少しは省電力になることを期待しての導入ですが、、、.

2008年2月8日金曜日

Seam-gen でお勉強

やっと開発環境(Eclipse-devel)がそれなりに動いてくれるようになったので、ちょっと気を入れて seam でプログラム作成中。 
 seam-gen の吐き出すコードが seam-frameworkを使っていますが、これの拡張方法とか詳細に説明した資料が無いので、結果として seam-gen でCRUD出来たら、それでお終い状態が続いていましたが、 Dan Allen の Seam In Action (5月くらいの出版予定)が seam-gen をベースに説明されている事に意を強くして、これをベースに作ってみることに、、、。 少しは分かって来たような気がしてきました。 (ORもOOPも初めての、昔C屋には、頭では分かっても、実際に作ってみると、未だに中々勘どころが掴めてないのですが)

それで、備忘録(JPA/HQL)
ORマッピングではエンティティとテーブルが一致するコードになるので、 例えば「AオブジェクトをBオブジェクトのプライマリキー以外でソートしたい(AとBにはプライマリキーでOneToManyの関係がある)」というニーズをどう処理するのか? にハマってしまった。 Bの要素をselect の中に含めてしまうとentity Aの要素と異なるものが含まれてしまうので、うまく行かない。
JPAの説明(EJB3 in Action)見るとJOINはあるので、使えるはず。 ということで、
select a from A a join a.xxx B b order by b.yyy desc とやってみると出来るではないですか!! SORT するための要素が select の中に含まれていなければいけないのはPostgreSQLだけの制約だったかな?

 Seam in Action まだ半分くらいしか出来ていないし、肝心の seam-gen の詳細に関わる9章は、まだPre-releaseもされていませんが、5章位までの所を読む限り、期待が出来ます。

2008年1月8日火曜日

腹の立つ判決:福岡の飲酒運転事件

何か矛盾しているという指摘は皆さんがしているとおりですが、そもそも「業務上過失致死」の「業務上(運転業務)」は飲酒した状態では、「業務をしてはいけない」事になっているので、飲酒の状態で「業務」と見做すことそのものが矛盾しているように思います
飲酒量によらず、飲酒した状態での運転は「業務」とは見做されない(禁止されているのだから)。 
であれば、飲酒状態で事故を起こせば、「危険運転」(致死罪でないとしても)として裁かれるべきではないだろうか?  
そもそも、飲酒運転を禁止しておいて、死亡事故を起こしたときだけ「危険運転致死罪」を適用して、それ以外は「業務上過失」とするのは、つぎはぎの法律の盲点ではないですか? 飲酒運転も業務として認める、という姿勢では飲酒運転はなくならない、と思います。

2008年1月2日水曜日

JBossTools は便利!!

移植の問題(私の能力の問題)でFreeBSDの環境ではvisual なxhtmlの編集は出来ませんが、それでもxhtmlを書き直すと、変更が即座にwebに反映されて確認できるなど、いままでとは格段に状況が改善され web の部分で色々実験する気分が沸いてきました。

関係ないけど、BS2で今60年代のポップやっています。 ジミヘンとか、懐かしいなー。 この時代のポップスだったら、殆ど全部しっているけど、思い出せるかな? ジャニスやってくれないかな? この時代って何だったんだろう? 特に69年って、何だったんだろう? (Sun Spot がMax だったけど、この二人が死んだんですよね。ジミヘンは68年だったかな? 学園紛争も世界中で盛り上がっていたし、 Sunspotって人間の行動習性に影響するのかな?

2008年1月1日火曜日

Seam In Action が Underway

Seam In Action が Dan Allen により執筆されているようなので、早速Manningで購入(まだ、半分も出来ていないですが)。
seam-gen でprototypingしたソースを、らしくしてゆくところから始まっており、期待できます。 彼は、seam-gen を高く評価していて、サンプルソースもseam-genで作られたものをベースにしていること、spring bean をseam に取り込んでゆく予定であること、groovyも使ってゆくことなどを、内容で明言しているので、私の思っているところと、かなり一致しており、個人的におおいに期待しています。

取りあえず、seam-gen の吐くコードが気に入らないので、templateを書き換えちゃえ、なんて所や、jboss ではなくてglassfishでseam-genの生成したコードを走らせる方法にも言及しているので、この先が期待されます。 JBossToolsが出ているのに、コマンドラインのsema-genを使って、IDEに取り込む部分があり、ちょっと??と思っていましたが、著者とのForumに同じような懸念が掛かれており、DanもJBossToolsに対応したものに書き直すと明言しているのも気に入っています。

ただ、進捗があまり早くない!! (JBossToolsが出れば、これを自分自身がある程度使いこなさなければならないので、やっぱりしかたないのかな、、。)

早く完成版が出ることを期待しています。

php のインストールの確認

phpって最初のfacebook書くときに使われたみたいで、それなりに歴史のある言語で、私も2006年位から使っていますが、CLIで使う事はあまり無いので、apacheとの連携のトラブル(mod_phpのバージョンの齟齬)などは気になりますが、拡張モジュールのインストールの問題に...