jQuery Mobile覚書(form周り)
-
jQuery Mobileでformのpost送信したければformの属性にdata-ajax="false"を指定。
一括指定する方法もあるらしいけど、今回はこっち。
( $.mobile.ajaxFormsEnabled = false をjQuery mobile.jsの読み込み前に実行:
-
普通のformだと$.postの引数に$(form).serializeArray()を使っていたが、
jQuery Mobileはformの構造を変えるので使えない
<form><input></form>が<form><div><input></div></form>みたいに変化し、レイアウト用のdivが挟まる。
その結果inputはformの直接の子ではなくなるので反応しなくなるっぽい。
JavaのPython化?
最近、データ処理用途にPythonも使っています。
itertoolsなどの各種Generatorが非常に面白く、種類が多くて使いこなせていませんが
どれにしようかなと悩むのが楽しかったり。
で、Java8も最近やっと調べ始めたのですが、ラムダ式の他にもStreamAPIを知りました。
何というか、まんまPython。
ただStreamAPIは非常にまどろっこしい。Pythonみたいにもっと簡単に書けたら捗るんだけどなぁ。
なぜかPythonみたいにIteratorベースじゃないし。
あとはyieldが使えるとうれしいのですが。
かなり近づいてきた感がありますが、クラスの宣言の楽さやジェネリクスなどがあるから
まだJavaのほうがなじむ感じがします。
Pythonは繰り返しをスマートに書こうとすればするほど一行が伸びるので、
適度に区切るとJavaでも事足りるかな、と。
jqueryのloadのcallbackでハマる
loadで持ってきたDOM要素に対してコールバックのタイミングでjqueryのセレクタが機能しない。
下記のalert文の時点でURLの要素が何も表示されてないことより確認。
ブラウザ依存(環境はFirefox)?他は未確認。
$("#id").load("URL",null,function(){
alert(URLの要素)
URLから取得した要素に対しイベント追加
});
悔しいので
- 2行に分けて$("#id").ready(function()…にして区切ってみる
- コールバックをsetTimeoutで明示的に遅らせてみる
とかとかいろいろ試した結果、
$.get(URL,{},
function(data){
dataにイベントを追加
$("#id").html(data)
},
"html"
);
に落ち着きました。
load()はDOM操作のない情報に対して向いているという解釈でいいのかな。
load()は$.get()に対して記述が楽以外のメリットがないと使わないほうが紛れがないですね。
load()も結局パラメータなしのGETリクエストなので。
jqueryのパフォーマンスで上回るとかあるのかもしれない。
Dropwizard勉強中のTips
勉強中に引っかかったところをメモしておきます。
- HibernateBundleのインスタンスはテーブル毎に必要
- サンプルではテーブル1つしかなく、インスタンス名もhibernatebundleなので
これひとつで済むと誤解していた。 - しかしサンプルを良く見るとHibernateBundleのコンストラクタに
テーブルのDAOクラスを渡している。
テーブルを増やすとここ以外にも定義、initialize(),run()にも追加必要。
慣れてきたらfactoryみたいな補助クラスを作りたい… - Viewで使用するmustacheのリソースにアクセスするにはdropwizard-views-mustacheのライブラリが必要
- freemakerを使うならdropwizard-views-freemakerのライブラリ
- test.mastacheを参照したければ
- [src/main/resources/viewソースのパッケージ/test.mastache]に配備
dropwizardの規則に加え、使用しているライブラリも知らないものばかり。
(今回のmastacheの前にjerseyの壁もありました。RESTってはじめて聞いた)
先は長いぞ。。。
mysql workbenchをCentOS6.5へインストール
知っている人には今更な話ばかりなのですが。
レンタルサーバーのcui環境に慣れきったいたのでmysqlにguiがあるとは考えもしませんでした。
( さすがにjavaは自宅PCのeclipseで書いてます。最初の一年はsakuraエディタでしたが )
というわけで早速開発環境のCentOS6.5へインストール。
MySQL :: Download MySQL Workbench
すると依存性で引っかかる。
python-paramikoとprojが必要らしい。
前者はyumでかかったが後者がかからずちょっと調べる。
fedoraプロジェクトで作成されているEPELに入っているらしい。
fedora愛好家がfedoraのパッケージを他のRedHat系でも使いたいから開発しているとか。
どうでもいいことですが、移植って多大な時間と労力がかかるのに
平然とやってのける人達の本業って何なんでしょうか。
仕事をしながら片手間なのかな…すごいとしか。
そんな人たちの成果を拝借するためにはyum install epel-release。
からのyum install proj。
で、rpmは成功。実行しようとするとlipzip.soとlibtinyxml.soがいないと怒られる。
これらは依存性チェックで引っかからないらしい。なぜ…
欲しければやるぞとyum install libzipとyum install tinyxml。
やっとGUIとご対面できた。