2008-03-01から1ヶ月間の記事一覧
Note: this is not a language comparison exercise [i.e., X versus Y comparison to "conclude" which one is better!]. Rather, it is an attempt to give head-start to the Java programmers who want to learn other languages that run on the Java p…
上井草駅の発車メロディーをガンダムの主題歌「翔べ!ガンダム」に変更することが発表された。 やべぇ、すげぇ、楽しみだー!
うちの最寄り駅(西武新宿線の上井草駅)に ガンダムの銅像が3月23日付けで登場しました。 たまたまテレビ撮影している現場に通りかかったのですが、 取材でインタビューに答えていた高齢の方が 『自分よりも○○さんの方が適任なのに〜。』とか言いながら と…
安定化に向かおうとしているなかの、最後の大仕事として 「SetupSelectの無限階層化」をやろうと決意し、 絶対にデグらないようにとテストテストしたつもりでしたが、 開発者の自分が現象を先に掴むことができませんでした。 非常に悔しい悔しいバグでした。…
Scalaが依然として静的型付け言語であるということを思い出してほしい。「動的言語の特徴のように見える物」が、実はそうでもないことがみえてくるのではないだろうか。実際Scalaを学んでいくと「型安全性と実行効率を引き換えに記述性と柔軟性を手に入れる…
S2JDBCを使ってエンティティ内にビジネスロジックを定義する リッチドメインモデルの手法は効果的なのだろうか? 現時点での私の考えはNo。 「S2JDBCのようなレイジーロードをサポートしていないO/Rマッパーで リッチドメインモデルを実現するのは実務的では…
アクションの粒度はユースケースなので、 ちょっと規模大きくなるとソースコード量がわりとすぐに肥大化してしまう。 肥大化すると、いろいろと面倒なので、分かりやすさも考慮すると、 アクションの粒度はTeedaと同じページ単位の方が良い気がしてきた。 (…
lift Web Frameworkは、Java仮想マシン上で動作する関数型言語「Scala」で書かれたWebアプリケーションフレームワーク。既存のフレームワークのよい点を積極的に取り入れながら開発が進められており、Smalltalkのフレームワーク「Seaside」に搭載されている…
Apache MavenによるJavaプロジェクトポータビリティの向上 http://japan.internet.com/developer/20070109/27.html 社内の人に教えてもらったMaven2の良さげなページ。 ps. なんだかんだ言ってもMaven2は敷居が高いなぁ。 そもそもあれだけ複雑なXMLの手書き…
前々から気になっていたプログラミング言語Scalaで HelloWorldを書いてみました。 HelloWorld.scala object HelloWorld { def main(args: Array[String]): Unit = { System.out.println("Hello World") } } 環境構築は http://www.scala-lang.org/ からダウ…
[Action側] public String[] hoge = {"aaa", "bbb", "ccc"}; [JSP側] ${fn:join(hoge, '=')} これは、正しく動作しませんでした。理由は、以下のSeasar MLのひがさんの説明を参照。 ActionやActionFormのプロパティは、 publicフィールドを ELやStrutsが参照…
原則として、データベースに対する作業は必ずバージョン管理しなければならない 実際にはなかなか大変だろうけど、この記事に書いてあるような やり方を目指したいものです。
Coberturaというユニットテストのカバレッジを表示する Maven2プラグイン(※1)のレポートで 常にカバレッジが100%になってしまう問題に遭遇して困っていました。 HTML report shows all 100% but cobertura:check shows correct coverage - only in 2.1, work…
自前で持っているフレームワークの代わりに SAStrutsを導入する大企業が今後は増えると予想してみる。
RubyのBDD対応テスティングフレームワーク「rspec」から影響を受けて開発された。 こいつの調査をしなければ、、、。
「オブジェクトのプロトタイプ」というものについてお話ししたいと思います。 ズバリ、分かりやすい記事だ! JavaScriptのプロトタイプに限った話ではありませんが、 文法やサンプルコードの理解だけでは、表面的な理解になってしまいます。 技術を学ぶには…
Coding Conventions - Flex SDK - Confluence http://opensource.adobe.com/wiki/display/flexsdk/Coding+Conventions
Adobeさんと一緒にFlex3、BlazeDS、Seasar2のセミナーを3/26に行います。S2BlazeDSの紹介もするので、お楽しみに。https://g203.secure.ne.jp/~g203204/Adobe/Flex/20080326/ あー、このセミナーに出席したいけど、 この日は予定が入っていて行けないなぁ。…
まさに「忍法身代わりの術」。 SASturtsのアクションは、自分自身のプロパティにアクションフォームが 存在しなければ、自分自身がアクションフォームとして振舞うようです。 > Thanks id:jflute さん なるほど。だから、アクションに定義したプロパティが …
「足の裏以外が1点でもリングに接した状態=グラウンドポジション」と明文化。その上で、立った選手のグラウンドポジション選手の頭部、顔面への蹴りや踏みつけは禁止(ひざ蹴りは可)などと決まった。 ルールが明確になるのはとても良いこと。 素朴な疑問…
http://www.amazon.co.jp/gp/registry/wishlist/ref=topnav__gw アマゾンに「ほしい物リスト サーチ」機能が付いたようです。 名前またはEメールアドレスを入力することで、 他人の「ほしい物リスト」を閲覧できます。 個人情報保護とかの兼ね合いで、色々と…
アイポ4 http://aipostyle.com/ 今、うちの会社で導入を検討しているオープンソースの グループウェアです。無料でダウンロード可能。 普段は割と辛口なんですが、めずらしくうちの社員からの評価は高いです。 せっかくなんで、ソースコードとかを覗いてみま…
コピーが無料であれば、コピーできないものを売る必要がある。さて、コピーできないものとは何か? ネットワーク経済に関する私の研究によれば、無料でありうるものにお金を払うような無形の価値として、八つのカテゴリーがあると思われる。 現在、会社で(…
SAStrutsでコードを書く時に、よくStrutsのリファレンスを活用します。 SAStrutsとStrutsのアクションクラスのソースコードは見た目が全然異なるだけに、 Strutsの知識が活用できてしまうのは、不思議な感覚です。 改めてSAStrutsがStrutsの薄いラッパーフレ…
SAStrutsではなく、生Strut向けに書かれていますが、 私はSAStrutsのコードを書いている時に、 以下のサイトを良く活用させてもらっています。 忘れっぽいエンジニアの Jakarta Strutsリファレンス http://struts.wasureppoi.com/ サンプルコードもあるし、…
S2Tigerって、testの規模がmain超えてるし (^^;OSSでtestがmainを超えるって、あんまりなくない? 以下は、id:cero-tさんのエントリーに対するid:higayasuoさんのコメント S2JDBCが、隅々までテストされているからでしょう。 起きそうな例外は、メッセージが…
今日、事務所の目の前のビルで火災がありました。 はしご車がビルの屋上まで伸びるのを見てビックリしました。 ものすごい数の消防車が来ています。 交通整理の笛の音が何時までも鳴り止まない。 火災があった付近のビル内の飲食店も営業を停止したため、 普…
結局のところは、JSP内でゴリゴリは極力避けるべきという結論に行き着くんですかね。 MVCパターンに従う必然性は無いのですが、MVCに従って役割分担すれば、 そういう結論が得策に思えます。 理由は以前のコメントにも書かせていただいたのですが、次のよう…
JSTLのfn:joinで配列を指定の文字で連結する JSTLを使って、配列を指定の文字で連結するにはfn:joinを使用します。 fn:joinの引数は、1番目が配列で、2番名が連結文字です。 具体的な使用例はこんな感じ。 <% String[] fuga = {"aaa", "bbb", "ccc"}; requ…
SAStrutsは、いざとなったらJSPのスクリプトレットでゴリゴリやれてしまうのが、1つのメリットだと思う。 ただ、JSPのスクリプトレットは、ソースコードのメンテナンス性を悪化させやすいので、極力避けたいところ。 とはいえ、taglibやFunctionで対応する…