#java

なぜDIコンテナを使うのかの勉強メモです。

SpringをはじめとするDIフレームワークでは、他クラスへの依存はインターフェイスを介したものになります。インターフェイスを介するため、呼び出す側はそのインターフェイスを実装しているクラスの完成を待つ必要がなくなります。DIコンテナを利用すればDIコンテナが設定ファイルの記述に従ってインターフェイスの実装クラスをセットします。そのため、設定ファイルの内容を切り替えることで単体テスト用のモックオブジェクト(ダミーオブジェクト)に切り替えることができます。

サンプル

JuchuImplクラスはZaikoHikiateImplクラスに依存しています。 そのためJuchuImpl単体のテストを行おうとしても、 ZaikoHikiateImplクラスのhikiate()メソッドにバグがある場合テストができませんでした。

単体テストを行いにくいクラス

public class JuchuImpl implements Juchu {
    public void juchu(Integer syohinCode, Integer suryo) {
        ZaikoHikiate hikiate = new ZaikoHikiateImpl();
        hikiate.hikiate(syohinCode, suryo);
        // 受注を処理
    }
}

DIにより依存を低めたクラス

public class JuchuImpl implements Juchu {

    private ZaikoHikiate hikiate;

    public void setHikiate(ZaikoHikiate hikiate) {
        this.hikiate = hikiate;
    }
    public void juchu(Integer syohinCode, Integer suryo) {
        hikiate.hikiate(syohinCode, suryo);
        // 受注を処理
    }
}

JuchuクラスはZaikoHikiateImplクラスが完成していなくても ZaikoHikiateインターフェイスを実装したモックオブジェクトを DIコンテナにセットしてJuchuImplの単体テストを実行できます。

#jquery

jQueryのAPIを一枚の紙にまとめたものです。 ノートはPDFファイルで、ダウンロードすることができます。 jQuery APIノート

jQuery-api-note

作者はMattさんです。ありがとうございました。

他にもHTML、CSS、JavaScript、PHP、Mac、Windows、Photoshop、Browserなどのノートが満載です。

HTML, CSS, PHP, Javascript And More Cheat Sheets 興味のある方は直接作者のサイトを参照してください。

#movie

映画アバターに関連するニュースやYoutube映像、ゲームなどの情報を一応リストアップしました。

アバターポスタ

映画館でアバターを見ました。最高です。 ストリー、3Dの表現力、監督が創った世界:パンドラ。 素晴らしかったとしか言えません。 映画アバター公式サイト

iPhone/iPodにもアバターゲームが登場

ジェームズ・キャメロン アバター

AppStoreでチェック Youtubeでチェック

iPhoneゲーム:アバター

AppStoreでのレーティングもレビューも大好評です。 私も買いたい。。

ジェームズ・キャメロン、「アバター」のビジョンを語る

</param></param></param></embed>

実際はタイタニックよりも前でアバターの脚本ができたんです。 ただし当時の映画レベルではキャメロン監督が創造に応えなかったので テクノロジーが進化するまでずっと10何年間も待ってたそうです。

映画『アバター』をゲーム化、米国では間もなく発売

プレーステーション3、XBOX360、ニンテンドーDSにて1月7日発売予定だそうです。 Youtubeで実際の開発現場をチェック アバターの公式ゲームサイト

いくつか面白い記事

#jquery

iframeでXMLを読み込んた場合、XMLのdocumentを正しく指定すれば 普通のDOM操作のようにXMLに対して操作できます。 FirefoxとIEの取り方が異なるため、その方法を紹介します。

サンプル

こんなXMLファイルの中の各name要素のテキストを取るとします。

<?xml version=”1.0″ encoding=”utf-8″ ?>
<games>
    <game>World of Warcraft</game>
    <game>Warcraft III</game>
    <game>StarCraft</game>
    <game>Final Fantasy</game>
</games>

IEの場合XMLDocument

$("iframe").attr("src",xmlUrl).one("load", function(){
    var xmlDocument = this.contentWindow.document.XMLDocument;
    $(xmlDocument).find("game").each(function(){
        var game = $(this).text();
       // ほかの処理
    });
});

Firefoxの場合ActiveElement

$("iframe").attr("src",xmlUrl).one("load", function(){
    var xmlDocument = this.contentWindow.document.ActiveElement;
    $(xmlDocument).find("game").each(function(){
        var game = $(this).text();
       // ほかの処理
    });
});

xmlUrlは実際XMLファイルのURLです。

参考サイト

下記の英語掲示板で見つけたんです。 How to Get XML Document from iFrame

#jquery

そもそもIDというのは一つのページ内でユニークなはずですが、 何らかの理由で同じIDを持つ形になったとしましょう。 その場合普通のjQueryの#idセレクタでは一つの要素(順番的に最初に合致した要素)しか選択できません。 そこで[id=xx]の形で属性フィルタで全ての選択することができます。 以下サンプルコードです。

$("#foo").css("background-color","gray");
$("[id=bar]").css("background-color","green");
<h2>use #id selector</h2>
<input type="text" id="foo" value="Text1" />
<input type="text" id="foo" value="Text2" />
<h2>use attribute selector *id=xx*</h2>
<input type="text" id="bar" value="Text3" />
<input type="text" id="bar" value="Text4" />
<input type="text" id="bar" value="Text5" />

jQuerySelectorByID

Demo

以下のjsfiddleで実際実行してみてくださいー

#webservice

Gravatar とは、ブログに投稿したりコメントしたりした時に、 どのサイトでもあなたの名前の横に表示される画像です。
Gravatarはメールアドレスをキーとしたアバター管理Webサービスです。 自分のアバターをGravatarに登録すれば他のサイトでも汎用的に使えるんです。 サイトごとにアバターをアップロードする手間がなくなるので結構便利です。 例えばこのブログでもGravatarが使えるので、 コメントの際にメールアドレスを入力すればGravatarで登録したアバターが表示されます。

公式サイト

http://www.gravatar.com

一回登録し、アバターをアップロードしてください。 複数のアバターをアップロードした場合はどのアバターを使うか選択できます。

Gravatar

良かったらGravatarに登録し、ここにコメントを入れてみてください。 メールアドレスが同じであればGravatarに登録したアバターが表示されるはずです。