2013年3月22日金曜日

Teedaで動的にValidatorを変更(ダイナミックバリデータ)する方法

この辺ですこしハマったりなんだり面倒だったので備忘録。

やるべきことは以下のような感じ。
  1. get + <id> + Validatorでメソッドを作る。
  2. 複数のValidator使いたい場合はValidatorChainを使う。
  3. Validatorメソッドが呼ばれるのはPageクラスに値がセットされる前なのでプロパティの値を使いたい場合はjava.util.Mapなparamプロパティを用意する。 

fugaFormのbarテキストはfooに値が入っているときのみ必須とかしたい場合は以下のような感じ。

Page [hoge.html]:
<form id="fugaForm">
 <input id="foo" type="text" />
 <input id="bar" type="text" />
</form>
Pageクラス [HogePage.java]:
class HogePage {
 public String foo;
 public String bar;

 public Map param;

 public validator getBarValidator() {
  ValidatorChain validatorChain = new ValidatorChain();
  String foo = (String)param.get("fugaForm:foo");
  if (foo != null && !foo.empty()) {
   validatorChain.add(new TRequiredValidator());
  }
  TLengthValidator lengthValidator = new TLengthValidator();
  lengthValidator.setMaximumLength(...);
  validatorChain.add(lengthValidator);
  return validatorChain;
 }
}


[参考]
http://teeda.seasar.org/ja/extension/reverse/validation.html#ダイナミックバリデータを使用するには
http://d.hatena.ne.jp/Leblanc/20071122/1195702264

2013年3月11日月曜日

Windows7のMySQLのサーバ用の設定ファイル

Windows7やWindows8でMyQLのサーバ用の設定ファイルは"C:\ProgramData\MySQL\MySQL Server 5.6\my.ini"にある。

"C:\Program Files\MySQL\MySQL Server 5.6\my-default.ini"とか"C:\Program Files\MySQL\MySQL Server 5.6\my.ini"はクライアント用。

2013年3月7日木曜日

初めてのpull requestがマージされました。

先日、遅まきながらpull requestデビューを果たしました。(デビューが遅くて恥ずかしや・・・)

それというのもredmine bitbucket pluginです。
このプラグインはBitbucketのリポジトリに変更が入るとRedmineに通知してくれるというあれです。

どんな変更を送ったかといいますと、gitコマンドとhgコマンドのパスを指定できるようにしてくれという感じです。

実際のやりとりを見ていただければわかりますが、僕の未熟さゆえすんなりとは行きませんでした。
何回かのやり取りを経てなんとかMergeしてもらえましたとさ。

めでたしめでたし。

2013年3月5日火曜日

MySQLでパイプ(||)を使って文字列を結合する。

MySQLはPostgreSQLなどのようにパイプで文字列結合が出来ません。
MySQLで文字列を結合する時はconcatかconcat_wsを使うかと思いますが、実は他のDBMSと同じようにパイプ(||)で文字列を結合するように設定することができます。

パイプを使用して文字列を結合する方法はsql_modeにPIPES_AS_CONCATを追加するだけ。

set sql_mode=PIPES_AS_CONCATするなり、my.cnf(my.ini)で設定するなりすると有効になります。
setだとセッション中のみ有効なので、my.cnfに設定しておくのが良いのではないでしょうか。

ちなみに、Amazon RDS for MySQL(AWS)でも[RDS Management Console] -> [DB Parameter Groups]で設定することで有効になりました。
(尚、RDSのdefaultのParameter Groupは設定が変えられないので、変えたいときは新規作成するとよいと思います。)


[参考]
http://www.s-quad.com/wordpress/?p=1319

2013年3月3日日曜日

WindowsでPILを正しくインストールする。

WindowsへPILをインストールする際に注意することを自分のためにまとめておく。
  • PILではなくpillowをインストールする。(pillowはPILをforkしたものらしい)
  • "pip install pillow"ではなく、"easy_install pillow"を使う。

pipを使ってインストールすると、インストール時にコンパイルが走って各種ライブラリが有効でないPILが出来てしまう。
easy_installを使うとコンパイルなしで全部入りのPILがインストールされる。


[参考]
http://cointoss.hatenablog.com/entry/2013/01/25/140313

twicca Tumblrプラグインv1.5.3を公開しました。


Twitterでエゴサーチしていたら、twicca Tumblrプラグインの認証周りにバグがあり落ちる問題を発見しました。
ちょっと調査したところ楽勝で再現したので修正しました。

oauth_verifierを処理するコードがヘボくて、Tumblrが返すURLに"#_=_"みたいなのが付くようになったことで上手く動いていませんでした。(地味に原因に気付くのに時間が掛かりました。)
java.net.URIを使ってなかったのは何故なのかと、このコードを書いた当時の自分に小一時間説教したいくらいです。



Playストアにはしばらくしたら反映されると思います。

ダウンロードは以下から。

https://play.google.com/store/apps/details?id=jp.yujideveloper.twiblr