行く記憶の流れは絶えずして

戻ってこないのでメモするところ

jQuery Mobile覚書(form周り)

  1. jQuery Mobileでformのpost送信したければformの属性にdata-ajax="false"を指定。

    一括指定する方法もあるらしいけど、今回はこっち。

    ( $.mobile.ajaxFormsEnabled = false をjQuery mobile.jsの読み込み前に実行:

    jQuery Mobile の Ajax を使用したページやフォーム遷移を無効にする - 暇人じゃない )

  2. 普通のformだと$.postの引数に$(form).serializeArray()を使っていたが、

    jQuery Mobileはformの構造を変えるので使えない

    <form><input></form>が<form><div><input></div></form>みたいに変化し、レイアウト用のdivが挟まる。

    その結果inputはformの直接の子ではなくなるので反応しなくなるっぽい。

MySQL覚書(foreign keyなど)

  1. foreign keyを使いたければInnoDB

    MySQL(5.1.73)でのデフォルトはMyISAMというものらしい。

    さくっと調べた結果、MyISAMのほうが機能で劣る代わりに速いと解釈しました。

  2. foreign keyで制約するテーブル(例:売り上げレコード)はInnoDBである必要が有るのは分かるけど、

    制約のために参照する側(例:店舗一覧)もInnoDBでなければならない。注意。

  3. SQLでUnsignedの整数のデータをhibernateマッピングしたい場合、

    そのデータを表現できる整数型(int(11) unsignedならlong)でOK。

徹夜

 

何年ぶりかに午前7時まで徹夜。
途中でチャージマン研の動画を流していたので頭がいい感じに煮えてしまった。

何というか、スタックの上限が減る感じ。

過程の積み重ねができなくなったり、同時に物事を進められなくなったり。

 

若いころは疲れながらも達成感があったのですが、今は後悔しかない。


とはいえ得られたものも多くありました。

 

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環境に慣れきったいたのでmysqlguiがあるとは考えもしませんでした。

( さすがにjavaは自宅PCのeclipseで書いてます。最初の一年はsakuraエディタでしたが )

 

というわけで早速開発環境のCentOS6.5へインストール。

yumでかからないのでmysql公式からダウンロード。

MySQL :: Download MySQL Workbench

 

して、早速rpm -ivh パッケージ。

すると依存性で引っかかる。

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とご対面できた。

f:id:taketsuru:20150308025939p:plain