Thursday, March 15, 2012

mixer2をmavenのセントラルリポジトリに登録しました

とりあえず最新版を登録しました。 http://search.maven.org/#artifactdetails|org.mixer2|mixer2|1.1.0|jar です。 以後、バージョンアップはすべてセントラルに登録していきます。

これまでは独自リポジトリでやっていたので、repositoryタグに http://mixer2.org/mvn/ を指定する必要がありましたが、 これからは普通に dependencyタグを書くだけで利用できます。

ソースコードも、プロジェクト自体をgithubに置いて晒すことにしました。 https://github.com/nabedge/mixer2です。 readme.mdファイルはそのうち作るつもりです。 これまでも*-sources.jarの形で公開はしていたのですが、これでみなさんにforkしてもらいやすくなりました。 ライセンスはApache License 2です。

詳しい説明は http://mixer2.org/site/にあります。 これからも、ごひいきに!

Wednesday, December 14, 2011

タリーズ行ったら7000円くれた

年末恒例福引大会とかそういうことではないです。残念。

普段、タリーズのプリペイドカードでコーヒーを買っているのですが、昨日、レジで僕のカードをバーコードリーダーでピってやったらレジのお姉さんの顔が変わって店長!とか言いだしたのです。

なに?オレおたずね者?イスにコーヒーこぼしたの見られてた?うわごめんなさいごめんなさい。

ということではなくて、この前来たときお釣り7000円をお姉さんが渡し忘れたらしいとのこと。
タリーズコーヒーで7000円て!?

思い出しました。確かにプリペイドカードが残高不足だったので3000円チャージしようとして1万円札を渡した気がします。 (ちなみに3000円チャージするとコーヒー一杯無料件がもらえる)

あとで気づいた店側が、僕のプリペイドカード情報にフラグつけて、レジ通した瞬間アラートが出るようにしてあったようです。店長さんが、いやあ、また来ていただけてホントよかったです、と言いつつ7000円くれました。1万円札出してお釣りもらうの忘れる自分も自分だなとあきれつつ、タリーズえらいなあ、と思いました。



Saturday, September 24, 2011

springの設定ファイルをWEB-INF直下に置くとテストが難しくなる

Spring + Struts あるいはSpring + SpringMVCといった組み合わせでWebアプリケーションを作る場合、
src/main/webapp/WEB-INF/applicationContext.xml
のような位置にspringのbean定義ファイルをつくる例が多いようです。実際、巷の書籍やIT系サイトの記事などでもそのようなサンプルがよく公開されています。

しかし、この配置方法には実は大きな問題があります。JUnitなどのテストケースを実行するとき、その設定ファイルをロードできません。なぜならWEB-INFの直下はクラスパスではないからです。 このスレッドでもほぼ同じ問題について議論されていますが、このときは結論はでていなかったようです。 結局、似たような設定ファイルをsrc/test/resources配下等に置いて二重管理するといった、気の進まない方法に頼ることになってしまいます。

eclipse上でsrc/main/resources/applicationContext.xml のようなビルドパスの通っている位置に移動させたうえで、web.xmlのほうには
    
        org.springframework.web.context.ContextLoaderListener
    
    
        contextConfigLocation
        classpath:mainContextConfig.xml
    
のようにclasspath:記法で書いておけば、クラスパス配下の設定ファイルをロードしてくれる(実体はWEB-INF/classes/mainContextConfig.xmlのようになる)。。。 はずなのですが、そうはとんやかです。

詳細は不明ですが、ContextLoaderListenerは強制的にWEB-INF/直下の設定ファイルを探しに行ってしまいます。 結果、FileNotFoundExceptionを吐いてWebアプリが起動しません。 これを防ぐため、たとえば
    
        contextConfigLocation
        WEB-INF/applicationContext.xml, classpath:mainContextConfig.xml
    
のように書いておき、applicationContext.xmlには<beans><!-- dummy! --></beans>のような無設定のダミーを仕込んで、本来の設定をすべてclasspath:mainContextConfig.xmlのほうに書いておくことで対応できます。

Sunday, August 28, 2011

Chrome+HTML5カンファレンスでライトニングトークしてきました。

先週、Chrome+HTML5 カンファレンス at Google Japan(六本木ヒルズ)で、ライトニングトークに参加してきました。お礼が遅れてしまいましたが、当日の運営の皆様に感謝します。

Thursday, August 4, 2011

mixer2がhtml5に対応しました

ここでの報告が遅れてしまいましたが、version 1.1.0 をリリースしました。 html5の全ての要素、属性に対応しています。下位互換性は保たれているので、従来のXHTML1.0 Transitionalでも大丈夫です。

詳しい使い方のサンプルなどはここで徐々に書いてゆこうかなと。ちょっと忙しいので時間とれてませんが。

Monday, July 11, 2011

xperia arc のOSアップデートで通話に不具合が出るようです

自分も使ってるxperia arcですが、7月初旬にAndroidOSの自動アップデートが配信された後、通話に不具合がでているようです。電話が繋がっても2分前後で切れちゃうとか、音声が全く聞こえないとか。

自分の場合は、電源きる&電池とSIMカードを抜く&再びSIMカードと電池入れる&電源入れる、で直りました。そんなこったろうと思った...

いまtwitterで xperia arc 不具合 みたいなキーワードで検索すると、ドコモショップ行かなきゃ、みたいな話をしている人が結構いますが、そもそもtwitterにそう書く前にTwitter上で検索してみてはいかがでしょう。私の投稿がヒットしますから。w

追加です

数十時間後、ほぼ同じ症状が再発しました。だめだこりゃ。ソニーエリクソンはもう少しテストしてから更新かけてほしいものです。

追加です。この件を解消するべく新たなアップデートが7月27日に出ているようです。 ドコモ、「Xperia arc」「Xperia acro」のソフトウェアアップデートを開始 - ITmedia +D モバイル

Thursday, May 5, 2011

mixer2 1.0.8リリース。TableBuilderでテーブルを組むのが楽になりました。

詳しくは公式サイトのほうをご覧ください。mixer2 - TableBuilder です。あとJavaDocも。→TableBuilder (mixer2 1.0.8 API)

table,tr,tdだけでなく、tbodyやthead,tfootタグにも対応していますので、ブラウザ側でも、たとえばjqueryのdatatables等のライブラリと組み合わせやすいでしょう。たとえば「ASCII.jp:JavaScriptだけで表<table>を並び替え!」とか。

Saturday, April 23, 2011

Tableタグを作るBuilderクラスをつくってます

mixer2で、table,tr,tdタグを組もうとすると、こうなります。

import static org.mixer2.xhtml.TagCreator.*;
...
Table table = new Table();
// 一個目のtd
Td td1 = td(); // td = new Td(); と同じ意味になります。
Tr tr = tr();
td1.getContent.add("a");
tr.getThOrTd().add(td1);
// 2個目のtd
td2 = td();
td2.getContent.add("b");
tr.getThOrTd().add(td2);
// tableに収める
table.getTr().add(tr);
...

面倒ですよね(笑)。他のタグならともかく、tableタグはデータ表示などの目的での利用頻度がものすごく高いタグですので、これじゃあちょっと、あんまりです。

そこで、こんな風に、わかりやすくtableを組めるTableBuilderクラスをつくっているところです。

...
TableBuilder tb = new TableBuilder();
tb.tr(0).td(0).add("a"); // 1行目、1列目のtdにaがはいる
tb.tr(0).td(1).add("b"); // 1行目、2列目のtdにbがはいる
Table table = tb.build(); // これでtableタグ全体ができる
...

もちろんこれだけでなく、行、列のindexを指定しなくてもadd("a")とかするだけで最後尾に自動的にtrやtdを作るようなメソッドもつくろうかなとも思っています。いろいろと試しているところです。

mixer2の次期リリースに搭載できると思います。乞うご期待。

Wednesday, April 20, 2011

mixer2 version1.0.6リリース。FormUtilクラスを追加しました。

formタグ内部のinputやselect等に、JavaBeanクラスの内容を自動的に挿入するユーティリティが追加されました。詳しくは mixer2 - Form and JavaBean をご覧ください。

Strutsのアクションフォームクラスや、Spring MVCのcommandクラスでも使われている、一般的なJavaBeanをそのまま使うことができます。Webアプリにおいて、formタグを使ったCRUD的な画面を生成する際に、結構便利に使えると思われます。

Saturday, March 19, 2011

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

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

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

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