« 2007年12月02日 - 2007年12月08日 | メイン | 2007年12月16日 - 2007年12月22日 »



2007年12月09日 - 2007年12月15日 アーカイブ

2007年12月09日

not simple 著オノ・ナツメを買ったよ

DSCF1050.jpg

not simple 著オノ・ナツメ を買いました。ビレッジヴァンガードでアート関係の本を買ったら袋の中にフライヤーが入っていたんです。トイレでなにげなくそのフライヤーを眺めていたら、

  • 1位 竹光侍(松本大洋)
  • 2位 オノナツメの作品
  • 3位 …

という漫画のベスト5が載っていまして、人気あるんだ!と思って買ってみました。
オノナツメの作品はいつもビレッジヴァンガードに何作品かならんでいるのですが、何の雑誌に掲載されているのかも知りませんし、もちろん立ち読みもできないようにパッケージされています。絵を見るとなんだか面白そうだなぁと思っては作品を手にとってウロウロとしていたのですが、それ以上後押しするものはなくて、いつも気になっているけど買わないでおこうという保留状態でした。

で、とうとう買ってみましたが、なんだか結構面白い。プロットが凝っていて映画みたいに読めますよ。オススメ。他の漫画も買ってみようかと思います。
not simpleは、イアンというオトコの複雑な不幸を描いた作品。
イアンという人格そのものにあまり味付けがされていなくて、ストーリーテリングする人物が他にいるので、このオトコの不幸に意味を与えてあげるのが読者だということなのかも知れません。本当に救いがないオトコなのでそんな気持ちになります。
あるいは、意味なんか与えないで欲しいというオノナツメの意思表示にも見て取れたりもします。物語がこれ以上ないくらい完成されているので、たぶん後者かもしれませんが。


ということで、オノナツメの作品が気に入ったので、

  • La Quinta Camera(ラ・クインタ・カーメラ)
  • Ristorante Paradiso(リストランテ パラディーゾ)

を買いました。が、not simpleが1番面白かったです。リストランテパラディーゾは女性には人気があるらしいです。


[ 最近のエントリーとその関連エントリー ]


[ スポンサードリンク ]

2007年12月15日

ExtJS2.0のデスクトップをムービーページにしてみました。

desktop.PNG

mojalogデスクトップはコチラ
静的なhtmlに手を加えただけですが、見栄えがいいですね。今のところはちょっと寂しい感じですがムービーとか、画像なんかもここに放り込んでおけば見やすいかもしれないです。メディアコンテンツをおいておけば、あまり迷うことなく直感でダウンロードできるって言うのはいいですね。
サーバサイドのスクリプトを組むにはもうちょっと勉強してからになりそうです。いまのところは、直接htmlをいじっていこうかと思います。


[ 最近のエントリーとその関連エントリー ]


2007年12月13日

Q&Aメッセージジェネレータ作ったよ!

ブログ更新できない言い訳ジェネレータのスクリプトを少し見直して、Q&Aメッセージジェネレータ作りました。
設問に対して答えが返ってくるという対話型のメッセージを組み立てたい時に使ったらいいんじゃないかと思いますが、まぁお遊びスクリプトです。
設置方法は、generator.jsとanswer.xml、question.xmlをサーバに置いて呼び出すhtmlにタグを打ってあげるだけです。

<question.xmlとanswer.xmlについて>

question.xmlとanswer.xmlに質問と解答を書いてあげます。全体の質問数と、回答数が同じでなければスクリプトエラーが起こると思います。

たとえば、「お金かして欲しいんだけどメールジェネレータ」を作ったとするとquestion.xmlはこのようになります。

<forms>
	<form>
		<title>誰に宛てますか?</title>
		<description>彼女に</description>
		<description>妻に</description>
		<description>親に</description>
		<description>友達に</description>
	</form>
・・・・

質問が1つ出来ました。今回は選択数が4つあります。この選択数にあわせてanswer.xmlに回答を書いていきます。

<fields>
	<field>
		<description>あのさ。ちょっと聞きたいんだけど、彼がサラ金に手を出したら嫌だよね!</description>
		<description>今月、家計苦しいのはよくわかってるんだけどね。</description>
		<description>今年の正月は帰るよ。で、ちょっとお願いがあるんです</description>
		<description>こんなことお前にしか頼めないんだけどさ</description>
	</field>
・・・・

これで回答が4つそろいました。このように、質問と回答を紐付けていってメッセージを作ることが出来ます。注意することは質問の数(formタグの数)と回答の数(fieldタグの数)が同じであることと、選択数(descriptionタグ数)がquestion.xmlとanswer.xmlであっているということです。

<generator.jsについて>

あとスクリプトの46行目と47行目に2つのxmlのパスを書いてあげてください。

    // set file on your server space, modify path
    var answerXmlPath   = 'http://ご自身のパス/answer.xml';
    var questionXmlPath = 'http://ご自身のパス/question.xml';

<htmlタグについて>

htmlには、表示させたい場所に以下のタグを打ってください

<div id="curform"><input type="button" value="start" onclick="QAGenerator.init()" /></div>
<div id="setField"></div>

レッツQ&Aジェネレータ!ダウンロードはこちらです。


<javascript method overload>

で、スクリプトのほうは勉強がてら作ってみたんですが、今回はjavascriptでメソッドの(見た目)オーバーロードをやってみましたのでちょっとメモしておきます。

ajaxでxmlを取得すると、これをパースするgetElementなんちゃらというメソッドを遣うことになると思うのですが、このメソッドを

function $( param ){
    return document.getElementById( param );
}

こんな感じでラップすることがよくあります。タグインスタンス?が返ってきて、使う側は

    $( "myid" ).innerHTML = "

hoge

";

このように実装します。で、このgetElementなんちゃらというメソッドをラップしたものをオーバーロードして使ったのが147行目あたりで使ってみました。

    var formList = Elem.getByNm( xmlData, "form" );
    var titleVal = Elem.getByNm( formList[ param ], "title", 0 ).childNodes[ 0 ].nodeValue;
    var itemList = Elem.getByNm( formList[ param ], "description" );

ElemというインスタンスのgetByNmをオーバーロードしています。こういう感じのことがしたかったというイメージが以下のスクリプト。

    // ※この実装例は飽くまでイメージです。
    function getByNm( name ){
        return document.getElementByName( name );
    }
    function getByNm( obj, name ){
        return obj.getElementByName( name );
    }
    function getByNm( obj, name, pos ){
        return obj.getElementByName( name )[ pos ];
    }
これではもちろんうまく動きませんので、これを実現するコードが1行目から記述してあります。
var Elem = function(){
    return {
        // add method.
        add : function( object, name, fn )
        {
            var old = object[ name ];
            object[ name ] = function(){
                if ( fn.length == arguments.length )
                    return fn.apply( this, arguments );
                else if ( typeof old == 'function' )
                    return old.apply( this, arguments );
            };
        },
        
        // overload methods.
        init : function(){
            this.add( this, "getById", function( name ){
                return document.getElementById( name );
            });
            this.add( this, "getById", function( object, name ){
                return object.getElementsById( name );
            });
            this.add( this, "getById", function( object, name, pos ){
                return object.getElementsById( name )[ pos ];
            });
            this.add( this, "getByNm", function( name ){
                return document.getElementByTagName( name );
            });
            this.add( this, "getByNm", function( object, name ){
                return object.getElementsByTagName( name );
            });
            this.add( this, "getByNm", function( object, name, pos ){
                return object.getElementsByTagName( name )[ pos ];
            });
        }
    };
}();
このjavascriptのメソッドのoverloadはJavaScript Method Overloadingにあったものです。もうちょっとうまく使えば、すっきりするのかもしれませんね。

[ 最近のエントリーとその関連エントリー ]


2007年12月12日

デュボネ買ってきた!

DSCF1051.jpg

酒屋にビールを買いに行ったら懐かしいお酒がおいてありました。デュボネって言うのですが、食前酒として飲まれているお酒です。酒屋さんによっては1000円ちょっとで変えるお手ごろ価格です。
ワタシ、昔バーテンをやっていたのですが、お店をはけた後によくロックで飲ませてもらっていました。結構美味しいんですよ。14.8度のアルコール度数で、仄かな甘みがある赤ワインのような感じの味です。
バーにだったら大抵置いてあると思うので頼んでみてはいかがでしょうか。レモンとよくマリアージュ(笑)します。

マリアージュ(笑)で思い出したのですが、「神の雫」はギャグ漫画だよね。演出に突っ込むのは野暮ったいですが、ワイン飲んでて、真剣に城やモナリザが見えちゃったらいいなぁなんて思います。俺も見せろー。
デュボネを飲んで、「こ、これは城だよ!城が見える!」なんて遊んでいるとスッと水を出されると思います(嫁に)(水とよくマリアージュ(笑)しますなんて)(ちっとも面白くない)


[ 最近のエントリーとその関連エントリー ]


2007年12月11日

ブログ更新できない言い訳ジェネレータ作ったよ!

ホームページを作る人のネタ帳さんのブロガーなら必ず一度はするであろう『更新のいいわけ』について今更考えるが面白かったので『ブログ更新できない言い訳ジェネレータ』を作りました!暇なんですねとか言わないでください。あはは。というか200エントリー目の内容がコレかよ。


これで更新できない言い訳もネタにできるよ!
ちなみにジェネレートされた文章が支離滅裂だったりすることを見なかったことにしていただけるとワタシの心の平安がジェネレートされます(ちっとも面白くない)
ちなみにこのジェネレータ、カスタマイズが簡単なので、スクリプトなども公開してみます。好きなようにいじってみてはいかがでしょうか。そのうち簡単な説明を加えたエントリをポストします。
※配置などはご自身の環境に合わせてください。
ダウンロード
<スクリプトはこちら>

function crtXMLHttpReq(){
    var xmlHttpInst = null;
    try{
        xmlHttpInst = new XMLHttpRequest();
    }
    catch( e ){
        try{
            xmlHttpInst = new ActiveXObject( "Msxml2.XMLHTTP" );
        }
        catch( e ){
            try{
                xmlHttpInst = new ActiveXObject( "Microsoft.XMLHTTP" );
            }
            catch( e ){
                return null;
            }
        }
    }
    return xmlHttpInst;
}

function setField( param )
{
    var selectList = document.selectForm.selectbtn;
    var value;
    for( idx = 0; idx < selectList.length; idx++ ){
        if( selectList[ idx ].checked ){
            value = selectList[ idx ].value;
            break;
        }
    }

    var renderItem = "";
    var xHttpInst  = crtXMLHttpReq();
    if ( xHttpInst ){
        // your place
        var sendUrl = 'http://***/answer.xml';
        xHttpInst.onreadystatechange = function(){
            if ( xHttpInst.readyState == 4 ){
                var xmlData = xHttpInst.responseXML;
                var formList = xmlData.getElementsByTagName( "field" );
                var itemList = formList[ param ].getElementsByTagName( "description" );
                renderItem = itemList[ value ].childNodes[ 0 ].nodeValue;
            }
        }
        xHttpInst.open( "GET", sendUrl, false );
        xHttpInst.send( null );
        $( "setField" ).innerHTML = $( "setField" ).innerHTML + '<br /><br />' + renderItem;
    }
}

function getForm( param )
{
    // if start
    if( param == 0  ){
        $( "setField" ).innerHTML = '';
    }
    // if end
    else if( param >= 4 ){
        $( "curform" ).innerHTML = '<table><tr><td>' + 'できた(゚∀゚)!' + 
        '</td></tr><tr><td align="left"><input type="button" value="もう1回言い訳してみる(゚3゚)" onclick="getForm( 0 )" /></td></tr></table></form>';
        return;
    }

    var renderItem = "";
    var xHttpInst  = crtXMLHttpReq();
    if ( xHttpInst ){
        // your place
        var sendUrl = 'http://***/question.xml';
        xHttpInst.onreadystatechange = function(){
            if ( xHttpInst.readyState == 4 ){
                var xmlData = xHttpInst.responseXML;
                var formList = xmlData.getElementsByTagName( "form" );
                var titleVal = formList[ param ].getElementsByTagName( "title" )[ 0 ].childNodes[ 0 ].nodeValue;
                var itemList = formList[ param ].getElementsByTagName( "description" );
                var itemLen = itemList.length;
                for( idx = 0; idx < itemLen; idx++ ){
                    renderItem = renderItem + 
                    '<tr><td><input type="radio" name="selectbtn" value="' + idx + '" ' + 
                    ( ( idx == 0 ) ? 'checked="checked"' : '' ) + 
                    '/>' + itemList[ idx ].childNodes[ 0 ].nodeValue + '</td></tr>'
                }
                renderItem = '<b>Q' + ( param + 1 ) + '.' + titleVal + '</b><br /><table>'+ renderItem + '</table>';
            }
        }
        xHttpInst.open( "GET", sendUrl, false );
        xHttpInst.send( null );
        $( "curform" ).innerHTML = '<form name="selectForm"><table><tr><td>' + renderItem + 
                                    '</td></tr><tr><td align="left"><input type="button" value=">次へ(ノ∀`)" ' + 
                                    'onclick="setField(' + param + ');getForm(' + ( param + 1 ) + ')"></td></tr></table></form>';
    }
}

function $( param )
{
    return document.getElementById( param );
}


[ 最近のエントリーとその関連エントリー ]


2007年12月10日

Firefoxビデオアワードの作品が公開されました!

FirefoxThumbnail.PNG


Firefoxビデオアワードの作品が公開されました!面白いと感じたら、投票していただけると非常にうれしいです。

すべての作品はココから見ることが出来ます。他の作品のクオリティの高さに愕然としました。\(^o^)/オワタ


[ 最近のエントリーとその関連エントリー ]


2007年12月09日

not simple 著オノ・ナツメを買ったよ

DSCF1050.jpg

not simple 著オノ・ナツメ を買いました。ビレッジヴァンガードでアート関係の本を買ったら袋の中にフライヤーが入っていたんです。トイレでなにげなくそのフライヤーを眺めていたら、

  • 1位 竹光侍(松本大洋)
  • 2位 オノナツメの作品
  • 3位 …

という漫画のベスト5が載っていまして、人気あるんだ!と思って買ってみました。
オノナツメの作品はいつもビレッジヴァンガードに何作品かならんでいるのですが、何の雑誌に掲載されているのかも知りませんし、もちろん立ち読みもできないようにパッケージされています。絵を見るとなんだか面白そうだなぁと思っては作品を手にとってウロウロとしていたのですが、それ以上後押しするものはなくて、いつも気になっているけど買わないでおこうという保留状態でした。

で、とうとう買ってみましたが、なんだか結構面白い。プロットが凝っていて映画みたいに読めますよ。オススメ。他の漫画も買ってみようかと思います。
not simpleは、イアンというオトコの複雑な不幸を描いた作品。
イアンという人格そのものにあまり味付けがされていなくて、ストーリーテリングする人物が他にいるので、このオトコの不幸に意味を与えてあげるのが読者だということなのかも知れません。本当に救いがないオトコなのでそんな気持ちになります。
あるいは、意味なんか与えないで欲しいというオノナツメの意思表示にも見て取れたりもします。物語がこれ以上ないくらい完成されているので、たぶん後者かもしれませんが。


ということで、オノナツメの作品が気に入ったので、

  • La Quinta Camera(ラ・クインタ・カーメラ)
  • Ristorante Paradiso(リストランテ パラディーゾ)

を買いました。が、not simpleが1番面白かったです。リストランテパラディーゾは女性には人気があるらしいです。


[ 最近のエントリーとその関連エントリー ]


ツリータイプ・カテゴリー

open all | close all

リファラから検索


サイト内検索