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

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

徹夜

 

何年ぶりかに午前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

 

Hibernate&DBUnitの連携コードでgithubデビュー

遅ればせながらgithubデビューです。

コードを公開する自己満足とdropwizardのサンプルをcloneしたいから。

 

Hibernate.cfg.xmlに書いた設定でDBUnitを動かせたら便利かと思いました。

すでに誰かがやってたりしてそうですが勉強ですね。

 コードは以下です。至らないところばかりですがお手柔らかにお願いします。

https://github.com/taketsuru-devel/HibDBUnit

 

以下、参考文献。

自身のプロジェクト外のhibernate.cfg.xmlを読み込む際の注意点

http://d.hatena.ne.jp/chofutaro/20140719/1405751057

 

同じことを考えていた外人さん

http://www.inspire-software.com/en/index/view/articles-design-and-impl-dbunit-hibernate-integration-testing.html

 

HibernateToolでの罠(私もはまりました)

http://handatec.blogspot.jp/2012/06/hibernate.html

 

githubデビューの手引き

http://shim0mura.hatenadiary.jp/entry/20111212/1323660740

Mavenで参照するJarのJavadoc

というわけで勉強中なのですが、mavenが思った以上に便利でたまげています。

antとかだとbuild.xmlとかクラスパスとかjar本体全て共有する必要があるけど、

mavenはpom.xmlひとつでjarはリポジトリを参照しにいくから

プロジェクトのサイズが減る、という認識。

他にも機能はあるようですがまだ追いきれていません。

 

jarの管理目的でEclipsemavenプラグインを使うと、自分の場合はjarのみで

ソースやjavadocはダウンロードされませんでした。

解説サイトの情報が古かったりするのでどちらも参照したい。

いろいろ見てると下記の赤枠をチェックすることで解決。

( デフォルトではチェックされていなかった )

f:id:taketsuru:20150111222111p:plain

すでにローカルに保存されているjarに対してもEclipseを再起動すれば

バックグラウンドで読み込んでくれました。

f:id:taketsuru:20150111222101p:plain

 

ひとまずJunitDBunitHibernateを勉強中。

最低限のことならぼちぼちできそう。