« 2008年01月 | メイン | 2008年03月 »



2008年02月 アーカイブ

2008年02月03日

27秒分撮影してみました

DSCF1571.jpg

撮影開始しています。先週末あたりからチョコチョコ撮り始めて27秒分たまりました。このペースだと、まにあわないんじゃないか?今日もこれからもう少しだけとってみます。
嫁さんにコレまでの撮影分を見せたらウケてたので、シナリオはこのままゴーです。完成すると、多分1分くらいになりそうです。いつもの尺ですね。


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


[ スポンサードリンク ]

2008年02月28日

やる夫がデザインパターンをやるようです 第2回

≪第1回第3回≫

やる夫は先日の失敗から継承について考えてみました。
Heroクラスを継承するヒーローたち全てが飛ぶわけではなかったのです。ということは、飛ばしてはいけない実装を個々のサブクラスにしてあげればよいわけです。
<やる夫>
     ____
   /      \ そういえばボケモントレーナーを実装したときに
  /  ─    ─\ punch()メソッドやkick()メソッドを
/    (●)  (●) \ オーバーライドしたな。。。
|       (__人__)    |
/     ∩ノ ⊃  /
(  \ / _ノ |  |
.\ “  /__|  |
  \ /___ / 
class Hero {
    punch()
    kick()
    jump()
    display()
    fly()
}
class ボケモントレーナー extends Hero {
    punch(){
        // ボケモントレーナー自身はパンチ出来ない。
        // 保持しているボケモンにパンチの指示を出す。
    }
    kick(){
        // ボケモントレーナー自身はキック出来ない。
        // 保持しているボケモンにキックの指示を出す。
    }
    display(){
        // ボケモントレーナー
    }
}
<やる夫>
       ____
     /⌒  ⌒\ だったら、飛ばないヒーローは、fly()メソッドを
   /( ●)  (●)\ 空実装してやればいいお
  /::::::⌒(__人__)⌒::::: \ 
  |     |r┬-|     |
  \      `ー'´     / 
やる夫は、Heroを継承するクラスにおいて、飛ばないヒーローはfly()メソッドをオーバーライドして何もしないようにすることを思いつきました。
class サザエさん extends Hero {
    display(){
        // サザエさんの表示
    }
    fly(){
        // サザエさんは飛ばない。なにもしない。
    }
}
<やる夫>
       ____
     /⌒  ⌒\ これで飛ばないヒーローたちを実現できるおww
   /( >)  (<)\ どう考えても天才の発想だおwww
  /::::::⌒(__人__)⌒::::: \ 
  |    /| | | | |     |
  \  (、`ー―'´,    /
       ̄ ̄ ̄ 

<アーキテクト>

お前はウチのきゅんぽな企画のこと知ってて言ってんのか?
ヒーローたちはリリースしても数ヶ月ごとにバージョンアップする。
ヒーローが追加される可能性だってあるわけだ。
てめぇはその度にfly()メソッドなんかを調べて
オーバーライドしていくのか?
        / ̄ ̄\
      /       \
      |::::::        |
     . |:::::::::::     |
       |::::::::::::::    |
     .  |::::::::::::::    }          ....:::,,  ..
     .  ヽ::::::::::::::    }         ,):::::::ノ .
        ヽ::::::::::  ノ        (:::::ソ: .
        /:::::::::::: く         ,ふ´..
-―――――|:::::::::::::::: \ -―,――ノ::ノ――
         |:::::::::::::::|ヽ、二⌒)━~~'´ 

<やる夫>
       ____
     /⌒  ⌒\ ホジホジ
   /( ●)  (●)\
  /::::::⌒(__人__)⌒::::: \  ?
  |    mj |ー'´      |
  \  〈__ノ       /
    ノ  ノ 
やる夫はよくわかってないようですが、Heroクラスを継承している以上、そのサブクラスはfly()メソッドや、punch()メソッド、kick()メソッドに依存し続けなければなりません。
ということは、サブクラスが増える度にこれら全てのメソッドをチェックして、空実装でオーバーライドするか、固有の処理としてオーバーライドするか、あるいは、スーパークラスの処理をそのまま使うかなどを調査し、実装していくことになります。
いまのやる夫には、「ヒーローの型の一部だけがパンチしたり飛んだりキックしたりする」というわかりやすい方法が必要なのです。
<やる夫>

じゃあPunchableとかKickable、Flyableインターフェイスを
作ってこいつを必要なヒーローにインプリメントすりゃいいお。
       ____
     /⌒  ー、\ 
   /( ●)  (●)\
  /::::::⌒(__人__)⌒:::::\ 
  |     |r┬-/ '    |
  \      `ー'´     / 





<アーキテクト>
   / ̄ ̄\
 /   _ノ  \
 |   ( ●)(●)  てめぇはもう喋るんじゃねー
. |     (__人__)____
  |     ` ⌒/ ─' 'ー\
.  |       /( ○)  (○)\
.  ヽ     /  ⌒(n_人__)⌒ \  
   ヽ   |、    (  ヨ    |
   /    `ー─-  厂   /
   |   、 _   __,,/     \ 
やる夫が発案した方法はJavaで言うinterfaceのimplementsです。
スーパークラスからパンチ、キック、フライメソッドを取り除き、interfaceとして定義します。それを必要なヒーローに実装してあげる方法ですが、例えばパンチという振る舞いにほんのちょっとした変更が共通的に加わった場合に、パンチを実装しているクラス全てに変更をして回る必要があります。いわゆる重複コードです。ではどうすればよいのでしょうか。。。


この「やる夫がデザインパターンをやるようです 第2回」では、ソフトウェア開発において考える必要のある大事なこと、「変更」について述べてみました。そもそもアプリケーションは「変更」され続け、成長・変化していくものです。そうでないとユーザは使ってくれません。ですが、その変更部分をソースにばら撒くようなことはしたくありません。今のやる夫はそれを知る必要があります。

というわけで、第2回はここで終わります。

≪第1回第3回≫


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


2008年02月26日

やる夫がデザインパターンをやるようです 第1回

第2回»

やる夫は、ニコニコゲーム製作会社に勤めています。ニコニコゲームはニンテンドゥープラットフォームで製作された「スーパーヒーロー大戦」を昨年リリースし空前の大ヒットを飛ばしました。もちろん第2弾を発売することとなり、やる夫はその第2弾のスパヒロ大戦2.0のプログラマとして携わっています。

スパヒロ大戦2.0のアーキテクトは、オブジェクト指向技術を使用し、登場する全てのヒーローの型が継承するHeroスーパークラスを作成しました。

   / ̄ ̄\   <アーキテクト>
 /   _ノ  \
 |    ( ●)(●)
. |     (__人__) Heroスーパークラス作ったから
  |     ` ⌒´ノ  てめぇが作るヒーローはこいつを継承して使えや
.  |         }
.  ヽ        }
   ヽ     ノ
   /    く
   |     \
    |    |ヽ、二⌒)






         |
     \  __  /
     _ (m) _
        |ミ|
      /  `´  \
       ____
     /⌒  ⌒\    <やる夫>
   /( ●)  (●)\   わかったおwww余裕だおww
  /::::::⌒(__人__)⌒::::: \
  |     |r┬-|     |
  \      `ー'´     / 
class Hero {
    punch()
    kick()
    display()
}
//> add yaruo hero class 20080226
class ガンダム extends Hero {
    display(){
        // ガンダムの表示
    }
}
class アトム extends Hero {
    display(){
        // アトムの表示
    }
}
class ウルトラマン extends Hero {
    display(){
        // ウルトラマンの表示
    }
}
・・・・ほかにもたくさん
//< add yaruo 20080226
今回のスパヒロ大戦2.0に登場するヒーローは30人を超えます。やる夫は徹夜に徹夜を重ねやっとのことで全ヒーロー分のベータ版の実装を終えました。


               _______
    :/ ̄| :  :  ./ /  #  ;,;  ヽ
  :. | ::|    /⌒  ;;#  ,;.;::⌒ : ::::\ :
    | ::|:  / -==、   '  ( ●) ..:::::|
  ,―    \   | ::::::⌒(__人__)⌒  :::::.::::| : で、できたお。。。
 | ___)  ::|: ! #;;:..  l/ニニ|    .::::::/
 | ___)  ::|  ヽ.;;;//;;.;`ー‐'ォ  ..;;#:::/
 | ___)  ::|   .>;;;;::..    ..;,.;-\
 ヽ__)_/ :  /            \


しかしながら、ゲーム企画部は「今回のヒーローは空を飛ばすことで競合他社に勝利する」と決定し仕様の追加実装が、開発部に降りてきました。
ふむ。スーパークラスにfly()メソッドを追加すりゃ
全ヒーローが飛べるようになる。
     ____
   /      \
  /  ─    ─\
/    (●)  (●) \
|       (__人__)    |
/     ∩ノ ⊃  /
(  \ / _ノ |  |
.\ “  /__|  |
  \ /___ / 







こんなんよゆうだおwwwww
          ____
        /_ノ  ヽ、_\
 ミ ミ ミ  o゚((●)) ((●))゚o      ミ ミ ミ
/⌒)⌒)⌒. ::::::⌒(__人__)⌒:::\   /⌒)⌒)⌒)
| / / /     |r┬-|    | (⌒)/ / / //
| :::::::::::(⌒)    | |  |   /  ゝ  :::::::::::/
|     ノ     | |  |   \  /  )  /
ヽ    /     `ー'´      ヽ /    /
 |    |   l||l 从人 l||l      l||l 从人 l||l
 ヽ    -一''''''"~~``'ー--、   -一'''''''ー-、
  ヽ ____(⌒)(⌒)⌒) )  (⌒_(⌒)⌒)⌒)) 
class Hero {
    punch()
    kick()
    display()

    // add yaruo 20080226
    fly(){ /*ヒーローを飛ばすいろんな処理*/ }
}
やる夫はスーパークラスにfly()メソッドを追加し、これを継承するサブクラスは全て飛べるように対応しました。しかし。。。



ニンテンドゥー営業部も立ち会うキャラクターデモンストレーション当日、開発部に電話がかかってきます。
「おう。アーキテクトだ。てめぇの実装したヒーローをニンテンドゥーさんに見せたとこなんだが、ウーロン茶を液晶モニターに吹き付けられた。わかるか?いったいなんだってサザエさんが空を飛んでんだ?サザエさんは空をとばねぇ。そんくらいこのとはわかるな?てめぇのおかげで、次にお見せしようとしているヒーロー"ドカベン"をwktkして待っていらっしゃる。」
  あんな要求だったから
  挙動なんて大して確認してないお。。。。
       ______
      /  \    /\
    /  し (>)  (<)\
    | ∪    (__人__)  J | ________
    \  u   `⌒´   / | |          |
    ノ           \ | |          |




         ____
      /  \    ─\   チラッ
    /  し (>)  (●)\
    | ∪    (__人__)  J | ________
    \  u   `⌒´   / | |          |
    ノ           \ | |          |




         ____
      /::::::─三三─\
    /:::::::: ( ○)三(○)\
    |::::::::::::::::::::(__人__)::::  | ________
     \:::::::::   |r┬-|  / | |          |
    ノ::::::::::::  `ー'´   \ | |          | 
やる夫は全てのサブクラスが飛ぶべきではないことに気がつきませんでした。ではどのような設計を行えばよかったのでしょう。
というわけで、第1回はここでおわります。
※ワタシはゲーム開発の進め方・開発ワークフローは全く知りませんのでご了承ください。馬鹿にしているわけじゃありません

第2回»

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


javaのldap(ディレクトリサービス)ビューア使ってみました

システムインフラ系の維持管理にも当然開発があるのですが、これまでそういう案件で仕事をしたことがありませんでした。今はグループウェアを使ったウェブ系の仕事をしているのですが、アカウントの管理や認証なんかは避けて通れないですね。
以下のソースは、ディレクトリサービスを参照して実装したアカウントのプロパティを全部表示するプログラムです。ディレクトリサービスとはウィンドウズのアクティブディレクトリとかです。とかと言いましたが、それしか知りません。フヒヒ。

今回これを作ったのは、「とあるユーザアカウント情報を持ったXMLファイルがあるので、そのアカウントから適宜AD情報を引いてくれ」という依頼を受けたからデス。それに伴い、ADにはどんなプロパティがあるのか知りたかったため作りました。システムインフラ系の維持管理開発はそんなんばっかだと思いますが、知らなかったことなんでポストしておきます。
ちなみにSystem.out.printlnはリダイレクトしてファイルに落としてください。ファイルライター作るのがメンドイときはいつもそうしてます。
java LdapViewer > log.txt

こんな感じ。

// LDAP関係
import javax.naming.*;
import javax.naming.directory.*;
import java.util.*;

public class LdapViewer {

    public static void main( String[] args ) {

        try {
            // InitialDirContextの作成
            Properties env = new Properties();
            env.setProperty( Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory" );
            env.put( Context.PROVIDER_URL, "ldap://ldapサーバ:ポート" );

            env.put( DirContext.SECURITY_PRINCIPAL, "アカウント" );
            env.put( DirContext.SECURITY_CREDENTIALS, "パスワード" );
            InitialDirContext ctx = new InitialDirContext( env );

            //検索して結果を表示
            SearchControls ctrl = new SearchControls();
            ctrl.setSearchScope( ctrl.SUBTREE_SCOPE );

            NamingEnumeration topLvlSrch = ctx.search( "OU=探すOU,DC=探すDC", "cn=アカウント", ctrl );
            while ( topLvlSrch.hasMoreElements() ) {

                SearchResult srchRslt = ( SearchResult )topLvlSrch.next();
                Attributes atrs = srchRslt.getAttributes();
                NamingEnumeration atrSrch = atrs.getAll();

                while ( atrSrch.hasMoreElements() ) {

                    Attribute atr = ( Attribute )atrSrch.next();
                    Enumeration elems = atr.getAll();

                    while ( elems.hasMoreElements() ) {
                        System.out.println( atr.getID() + " : " + elems.nextElement() );
                    }
                }

                // 個別に取得
                // Attribute atr = atrs.get( "mail" );
                // System.out.println( atr.getID() + " : " + (String)atr.get() );

            }
        } catch ( Exception e ) {
            e.printStackTrace();
        }
    }
};

via : LDAP Browser/Editor

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


2008年02月23日

どこのボタンを押してもロボットに変身しない件

DSCF2246.jpg うわーいうわーい。デュアリスが納車されました。ディーラーオプションでナビつけたりいろいろつけたりして結局240万くらいとなかなか太い金額になっちゃいましたが、まぁこれから頑張って稼げばいいです。
このデュアリスはレディッシュカッパーという色でグレードは20Sなのですが、あんまり見かけねぇなぁと思って日産から出て行った直後に対向車線からおんなじのが来て、すれ違いざまにお互いににやけてしまいました。
いままでは何年落ちなのかもわかんないくらいのステップワゴンに乗ってたのですが、最近の車はすごいね。セキュリティとかなんなのあれ。説明受けたんですが、よくわからずに、「つまり万全てことですね」なんてアホな受け答えをしたら、「そ、そうでしょうすね。」とか言われました。
ところで[ △ ]っていうボタンを押してもペカペカとハザードがつくだけでロボットにならないんですけど。っていうのは買った人みんなが言うらしいです。うそです。

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


2008年02月22日

咲と五月女が公式スルーのようです。orz

掲題のとおり咲くと五月女第6話をニコニコ国際映画祭に出品しましたが、公式スルーのようです。俺涙目wwwww


まぁそういうことですので、今回は残念でした。一応、作品を見てこりゃスルーだわとか慰めてくれると喜びます。ません。次の作品はホワイトボードアニメを作ろうかと思います。

そんなことより、明日デュアリスが納車されるようですよ!

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


ExtJS2.0のチュートリアルがあるようです!

何回かポストしたExtJSについてですが、イントロダクションのチュートリアルが日本語でありましたのでリンクしておきます。ワタシもこのチュートリアルを見ずにexampleのソースを読んでこんなもんかと使っていたのですが、非常に判りやすいチュートリアルでした!説明書ってなかなか読む気になれませんよね。直感で使わせてくれというのが正直なところですが、これは読んどきゃよかったです。

ExtJSの作法・DOMセレクタ・イベントハンドラ・ウィジェット・ajaxについて、チュートリアルに書かれているので時間が無い人用にこのエントリにまとめておきます。

<ExtJSの作法>

まず、作法としてExtJSを利用したコードはこんな風に書くといいらしいです。
Ext.onReady( function() {
    // ここにコードを書く
});
このメソッドは、DOMが完全に読みこまれた後に自動的に呼び出されるものです。 Ext.onReadyが呼び出された時、参照したいすべてのページ要素が利用できることが保証されています。
ということなので従います。

<DOMセレクタ>

javascriptで重要になってくるのが、ページのどのデータ要素(Element)を扱って処理するの?ということなのですが、普通はdocument.getElementById( 'hoge' )とかで取得します。ExtJSが用意しているのは、Ext.get()というメソッドで、
Ext.onReady( function() {
    var hogeElem = Ext.get( 'hoge' );
});
という風に使うみたいです。このメソッドは、簡潔に言うと速くて、汎用的で、拡張してあるって言うことみたいですね。なるほどー。また、ID以外、たとえば属性やCSSクラス名でノードを取り出したい場合はDomQueryというDOM セレクタ ライブラリを使ってみてはどうかと言っています。

<イベントハンドラ>

javascriptのイベントハンドラでパッと浮かぶのは、htmlタグに仕込まれたonclickイベントハンドラでメソッドを呼び出したりすることかと思います。sweet()メソッドは用意されているものとして以下のように書いたりします。
<input type="button" value="OK" onclick="sweet()">
ExtJSでのイベントの応答は以下のように書くみたいです。
Ext.onReady( function() {
    Ext.get( 'hoge' ).on( 'click', function(){
        alert( "hoge" );
    });
});
上記で述べたExt.get()でデータ要素hogeを特定して、(Element.)onメソッドの第1パラメータで挙動(イベント名)の決定、第2パラメータで実装となるようです。もちろん、第2パラメータの匿名関数(無名関数)をインスタンスとして与えることも出来ます。
Ext.onReady( function() {
    var alertFuncInst = function(){
        alert( "hoge" );
    }
    Ext.get( 'hoge' ).on( 'click', alertFuncInst );
});
チュートリアルではさらにもう少し突っ込んだ内容が書かれています。上記に書いたイベントハンドラとなる匿名関数は引数を持ちませんが、(Element.)onメソッドはこの定義したイベントハンドラにイベントオブジェクトExt.EventObjectを投げてくれるようです。
Ext.onReady( function() {
    var alertFuncInst = function( evt ){
        // アニメーションつきでぐいーっとx:256 y:256座標に移動する
        Ext.get( evt.target ).moveTo( 256, 256, true );
    }
    Ext.get( 'hoge' ).on( 'click', alertFuncInst );
});
よくよく考えてみたらそりゃ投げてくれなきゃ困るかなとも思いますが、上記のようにEventObjectが使えます。上記のソースはhtmlのid:hogeを持つ要素をクリックするとアニメーションつきでぐいーっとx:256 y:256座標に移動する例です。

<ウィジェット>

ExtJSで一番惹きつけられるのがウィジェットではないでしょうか。これを使いたくて、いじってみて、よくわかんなくてチュートリアルにたどり着くという人が多いのではないでしょうか。ワタシがそれです。チュートリアルでも扱っているgridについて書いてみたいと思います。
JavaScriptでは、オブジェクトリテラルは{}で囲まれた名前/値の属性のリストで使用した時に動的に生成されるオブジェクトで、属性は[名前]:[属性]の形で記述されます。
パッと見JSON形式?なのかなと思いましたが、オブジェクトリテラルと言うらしいです。まぁ詳しいことは判りません。(飽きてきた)要は、以下のように作って欲しいと言うことみたいです。
{
    title : 'hoge',
    width : 500
}
こんな形式で作られるように定義してみます。以下のような例になります。
    // インスタンスを定義する。
    var extObjInst = new Ext.***.*** ({
        title : 'hoge',
        width : 500
    });
    // 作ったインスタンスでいろんなメソッドコールする。
    extObjInst.***();
では実際のgridウィジェットを見てみます。の前にサンプルのgridがオブジェクトリテラルとしてどうやって作られているのか簡単に解説します。
  1. データの実体:データそのものを連想配列で作ります。
  2. データリーダ:作ったデータを行として解釈するために必要らしい。
  3. gridウィジェットの実体:
    1. データストア:1.2.で用意したデータを保持するために必要らしい
    2. 列モデル:列のヘッダー部分になる。これも必要
    3. gridウィジェットのオプション:レンダリングの位置や、サイズ、タイトルなどの設定オプション
Ext.onReady( function() {
    // データの実体:データそのものを連想配列で作ります。
    var myData = [
        ['Apple',29.89,0.24,0.81,'9/1 12:00am'],
        ['Ext',83.81,0.28,0.34,'9/12 12:00am'],
        ['Google',71.72,0.02,0.03,'10/1 12:00am'],
        ['Microsoft',52.55,0.01,0.02,'7/4 12:00am'],
        ['Yahoo!',29.01,0.42,1.47,'5/22 12:00am']
    ];

    // データリーダ:作ったデータを行として解釈するために必要らしい。
    var myReader = new Ext.data.ArrayReader({}, [
        {name: 'company'},
        {name: 'price', type: 'float'},
        {name: 'change', type: 'float'},
        {name: 'pctChange', type: 'float'},
        {name: 'lastChange', type: 'date', dateFormat: 'n/j h:ia'}
    ]);
    
    // gridウィジェットの実体
    var grid = new Ext.grid.GridPanel({

        // データストア:1.2.で用意したデータを保持するために必要らしい
        store: new Ext.data.Store({
            data: myData,
            reader: myReader
        }),

        // 列モデル:列のヘッダー部分になる。これも必要
        columns: [
            {header: 'Company', width: 120, sortable: true, dataIndex: 'company'},
            {header: 'Price', width: 90, sortable: true, dataIndex: 'price'},
            {header: 'Change', width: 90, sortable: true, dataIndex: 'change'},
            {header: '% Change', width: 90, sortable: true, dataIndex: 'pctChange'},
            {header: 'Last Updated', width: 120, sortable: true, 
                renderer: Ext.util.Format.dateRenderer('m/d/Y'), dataIndex: 'lastChange'}
        ],

        // gridウィジェットのオプション
        viewConfig: {
            // ビューにカラムがスクロールバー無しで表現される
            forceFit: true
        },

        // レンダリングの位置
        renderTo: 'content',
        title: 'My First Grid',
        width: 500,
        frame: true
    });
});


<ajax>

サーバで持っているデータを非同期にどうやって引っ張るのかはワタシも知りたかったことなのですが、今までは普通にXMLHttpRequestを使っていました。なにやってんだろ。あはは
肝は、もらったデータのレンダリングの作法かな?と思います。ちょっとこの発想は無かったという感じなのですが、Ext.Elementクラスを利用してhttp越しにデータをもらうみたいです。要素本人が取り行くのかよ!?と思いましたが、裏でUpdaterなるクラスが動いているらしいです。
clickのハンドラは、 Updater と呼ばれるExtに組みこまれている特別なクラスを使っていまして、このクラスはAjaxリクエストを送ってて、レスポンスを受けてElementをさくっと更新しています。 Updaterは更新したい要素(この場合msg div)を通じてアクセスすることでダイレクトに使うことができます。 Element.loadが使用された時に、サーバーのレスポンスは自動的に要素のinnerHTMLを置き替えます。単にURLのサーバーベースのプロセスに渡すことで、クエリストリングのパラメータは処理されて要素のinnerHTMLの中にテキストとして表示されます。で、msg divが表示され(最初はhidden)ます。
とのこと。
Ext.onReady(function(){
    Ext.get( 'okButton' ).on( 'click', function(){
        var msg = Ext.get( 'msg' );
        msg.load( {
            url: 'ajax-example.php', // <-- change if necessary
            params: 'name=' + Ext.get( 'name' ).dom.value,
            text: 'Updating...'
        } );
        msg.show();
    });
});
ちなみにURLのパラメータを複数渡したい場合は、
params : {param1: 1, param2: 2}
と書いてあげて、ajax-example.php?param1=1&param2=2となるらしいです。試してません。
というわけで、レッツExtJS!

via : チュートリアルExt version 2.0
via : ExtJS2.0 API Doc
via :イベントハンドラ確認コード生成

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


2008年02月21日

横浜うかい亭に行ってきました。

P1000004.JPG このあいだ、嫁さんの誕生日だったので横浜うかい亭に行ってきました。ランチで2万3000円くらい。シャンパンとグラスワインを嫁さんが飲んで、ワタシはペリエを飲みました。運転だったので仕方がないですね。
1枚目の写真は、フォアグラとトリュフとホタテです。すげーうまかったです。トリュフをちゃんとレストランで食べたのは初めてなような気がします。香りがいいんですね。トリュフって。ポルチーニダケと似た香りがするようなしないような。グルメではないのでよくわかりません。ちなみにワタシは、アンコウのソテーを食べたのですが、写真撮るの忘れちゃいました。食うのに夢中でした。

P1000005.JPG これら写真の料理はコースでオーダーしたのですが、スタッフの方がディナーで出す皿も組み合わせてオーダーしてみては?とお勧めしていただいていろいろなバリエーションでいただきました。
2枚目はタラバガニのスープです。スープにカニの出汁がよくでていました。マグカップか何かでたくさん飲んでみたいです。スープが泡立っていてふわっとしているんですが、カニのほうも、目の前の鉄板で蒸してくれます。これもフワフワしてましたよ。カニのスープといえばスープストックトーキョーの缶のやつって売らなくなっちゃったのかな。あれ忙しいときにご飯代わりに飲んでたんですけど。

P1000006.JPG 3枚目はホワイトアスパラにオレンジソースがかかったものです。ソースのかかった料理には1枚目の写真もそうですが、フランスパンを出していただけるので皿を舐めることもありません(つまみ出されます)(ません)
4枚目の写真がメインの肉です。ご飯とのりの味噌汁とお新香がついてきます。めっちゃくちゃうまい!そのまま食べるもよし。わさびのソースにつけるもよし。ポン酢につけるもよしです。ご飯もお代わりできますが、このあたりで結構おなかいっぱいです。

P1000009.JPG 当日は嫁さんの誕生日だったのですが、ワタシも十分堪能しました。お店の方はしょっちゅう来てくれといっていましたよ。いけるかwww
via :うかい亭

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


2008年02月18日

髪を9mmにしました!

DSCF2243.jpg 最近、というかここ何年かでワタクシ、髪が薄くなってきておりまして。有体に言ってしまうとハゲてきたわけですね。親父もハゲているわけです。しっかり遺伝しやがって。といったっものの、実はワタシ自身それほどハゲに抵抗がなくて(腹くくってた)、薄くなってきたら坊主にすることに決めていました。で、そのときがきたわけです!
9mmで刈ってやりまして、そしたらぜんぜん目立たなくなって非常に心地いいです。スッキリですよ(もともと)!で、ひげもじゃと名乗っている以上、ワタクシはひげも生えていて、ちょっと見た目イカツクなってしまいました。職場では浮き浮きでした。なんか「撃たれる」とか「背後には立たないほうがいいんじゃないかとか」聞こえてきました。「・・・ムリ目エグザイル?ブフー!」とか。あったま来たので、机の上でcho cho trainのグルグルダンスを1人でやってやりました。ません。

居室の総務の女の人に出会い頭に「ひっ」とか言われました。ギャハー。死なす。(毛根を)
ちなみに写真のメガネかけたら、ウシジマくんみたいになった。これはこれでよし。

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


2008年02月16日

浅野いにおが面白いです

DSCF2241.jpg 浅野いにおが面白いです。
ずいぶん淡々としたキレイな絵を描く人だなぁと思ってはじめて手に取ったのが「ソラニン」です。海老名のとあるレンタルビデオ屋さんでは、貸マンガもやっているのですが、マンガ喫茶でがっつり読みたいわけでもないし、購入するにも躊躇ってしまうときによく借ります。便利便利。

で、写真の「虹ヶ原ホログラフ」と「ひかりのまち」は1冊読みきりなので買いました。どちらの作品でも感じられたことなのですが、なんとなくビョーキっぽい世界で物語られます。絵の清潔さがその拍車をかけているようにも思えます。それにちょっと難解。「虹ヶ原ホログラフ」は、難解な上にビョーキっぽいです。

読み進めていくと鈴木アマヒコと木村有江の母が件(くだん)のメタファー?になるのかな?最後のほうで凶事めいたことを予言している本人だしなぁ。傷つけあう人間に絶望して世界を終わらせたいというのだろうか。ストーリー自体が「人間たちはこんなふうに酷いんだよ」というサンプルにも取れます。ここらへんまでは腹にすっと落ちなくもないんですけど、小松崎の扱いがわっかんないなぁ。

プロットが時間軸と登場人物であっちこっちにいくから整理しづらいんだけど、「小松崎は、傷つけスパイラルのターミネーターであるべきだったんだけど、失敗しちゃった人だよ」みたいな扱いだとスッキリする。で、失敗させたのは(人間味あふれるという意味で)無垢な扱いであるマキ。

ワタシは全ての元凶はマキにあると思っているんだけど、このマキという人物は常にイラついた不安定な女性として描かれています。傷つけていることも知らないし、償いに立ち会わされていることも知らない。というか何も知らない。作者は何も知らないことは何よりも悪だと言っているように思えます。
強引にいろいろ当て嵌めるとつまらなくなりそうなので、こんくらいで整理をやめます。そうすれば、もう1回読んだときに面白く読めるし。どうかな。

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


2008年02月15日

僕の小規模な生活が来週再開されるようです。

DSCF2240.jpg 僕の小規模な生活が来週から再開するようですよ!やったー!まってたぞおい。なんて福満ウォッチをしていましたら、アックスで連載している「生活」が単行本になってるみたいです。明日本屋さんで注文してこなきゃ!うぉぉやばいやb全然やばくない。うん。やばくはない。ちっとも。

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


2008年02月12日

grammerてタイピングゲームやってみた

grammer.PNG

少し前にクレヨンフィジックスていうゲームが面白いというエントリをポストしましたが、Kloonigamesさんでgrammerというゲームがリリースされていました。タイピングソフトのシューティングゲームで、英単語を打ち込めればいいというものらしいです。英語ならどんなものでもいいらしいのですが、長い英単語を打ち込むとダメージがデカイらしいです。

アーカイブを解凍するとdataディレクトリが出てくるんですけど、このなかのWORD.LSTってのに英単語が書かれてます。こいつを書き換えれば造語でもいいみたいです。hogeとか。このワードリストは173528単語収められていて、なんかのサービスのマスタに使えそうですね。使わしてっていったらだめっていわれそうだけど。あはは。


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


2008年02月11日

スマブラX買ったよ!

DSCF2239.jpg

スマブラXを買いました。前々からやってみたいと思っていたゲームでしたが、スマブラのためにゲームキューブ?を買うわけにも行かず、あきらめていたらwiiで出ているじゃないスカ。\(^o^)/
ゲームシステムをよくしらないでやって見ると、ちょっと難しい。押出し相撲なのねコレ。
操作してみると、カービィ以外のキャラクターでステージ復帰が全然うまく行かないです。PCの敵は何であんなにすっ飛ばしてもすっ飛ばしても復帰してくるんだ?

で、しばらくやってると、新しいキャラクターが増えてきました。F-zeroの人と、マザーのネスと、あとよく知らないのが2人くらい出てきました。ワタシはマザー大好きなのでネスを使っています。デフォルトで選べるリュカと基本同じ攻撃方法なんだけど、微妙にちがうのね。PKサンダーを自分に上手くあてると、ステージ復帰に役立つらしい。でも無理。オレこんなゲーム下手だったっけとか思うくらい無理。

あと、wiiでプレイ中のスナップショットを取れてSDカードとかに*.binで出力できるんだけど、これ汎用フォーマットにならんもんかね。

下のyoutubeの動画は高校生くらいの頃、ゲーセンではまったゲームでアウトフォクシーズって言うんですけど、スマブラって微妙にコレに似てますね。あれは得意だったんだけど。アウトフォクシーズもwiiで出したらいいと思う。多分、一般家庭のどのハードにも移植されていないと思う。

続きを読む "スマブラX買ったよ!" »

★このコンテンツに目的の情報はありませんでしたか?


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