Saturday, March 19, 2011

mixer2 version1.0.4で部分マーシャル機能が追加されました

従来のmixer2は、Webページの全体、つまり<html>から</html>までを一気に文字列化する必要がありました。

version1.0.4以降、任意のタグ、例えば<div>から</div>までなど、htmlの一部分だけを出力(マーシャル)することができるようになりました。

これによって、たとえばVelocityやJSPなど、他のテンプレートエンジンと組み合わせて使うために、Webページの一部だけをmixer2で出力したいという要求に答えられるようになりました。

Sunday, March 6, 2011

オープンソースカンファレンス2011 Tokyo/Springへの謝辞

オープンソースカンファレンス2011 Tokyo/Spring - オープンソースの文化祭!に参加してきました。(土曜日だけですが)

セミナーをいくつか見て回りましたが、その中でも[パネルディスカッション] オープンソース/クラウド時代のキャリアデザインとははなかなか興味深かったです。超満員。事前登録しといてよかったー。

そして(自分的には)本題のLT(ライトニングトーク)でmixer2についてしゃべらせていただきました。5分しかないというのにその半分は笑いを取りにいくための思い出話(?)をしてしまいましたww。 しかしだからといってmixer2をかいつまんででも紹介するのは5分ではおさまるわけもないので、「詳しくはWebで!」ってやつです。

LTでしゃべれるのは10人前後(先着順)ですが希望者はもっといたようです。 本当はああいうのは若い学生さんとかに譲るべきなんでしょうが、ほんと自分なんかがしゃべらせてもらっちゃってすいません。

そして、スタッフなど中の人に心から感謝を申し上げます。お疲れ様でした。 すごい人数でしたので、来年は大学施設とかではなく、東京ビッグサイト?ww

mixer2での繰り返しデータの埋め込み

先月のことですが、こんなツイートを見かけました。

mixer2おもしろそう。 http://goo.gl/W1pRO スクリプトや式といった処理と、テンプレートをキレイに分けられそう。繰り返しデータの埋め込みもサポートされているなら、Wicketのテンプレートだけ取り出したような、自分的には理想のテンプレートエンジンになりそう。
とある方のつぶやきより)

mixer2に好感を持っていただけているようでうれしいです。

嬉しいよというついでに、「繰り返しデータの埋め込みもサポートされているなら」という点について、mixer2開発者としての説明をしてみたいと思います。

ツイート主さんの懸念、というよりは素朴な疑問と言うべきそれは、とても当然です。 Hello Worldには本当にHelloWorldを表示することしか書いてませんから。 どんなプログラマーでも、Javaでの開発でよく使われるJSPやVelocityのような従来のテンプレートエンジンとの比較を無意識に考えてしまうので、「じゃあ、ループしながら値を埋め込むようなときはどうすんだろ?」とふと思うのは当然です。

結論を言うと、
Q.たとえばDB検索の結果とかで複数の値があるとき、それを繰り返し処理しながら表示するのって、mixer2ではどうやんの?
A.普通にJavaでforやwhileなどを使ってください。
なのです。

具体的なサンプルソースは本家サイトのTIPSのページの下のほうに書いておきました。

さて、上のリンク先、見ていただけましたでしょうか?そう、コードが長いですww。 JSPだったら<c:foreach>のようなカスタムタグを含めた3,4行ですみそうなところが、 mixer2だと10行くらいになっちゃってます(コメント行いれると15,6行!)

もちろん、これがベストプラクティスだということではありません。 こうした繰り返し処理を簡略化する汎用ユーティリティのようなものをmixer2のほうで用意するべきなのかもしれません。

ともあれ、ひとまずはmixer2を使う側のコーディングでどうにでもなりますよ、ということはなんとなくわかっていただけると思います。なにしろ、VelocityのVTL言語でもなくJSPのカスタムタグでもなく、ただのJavaコーディングなのですから。