Archive@2009/02

ランチで中目黒「焼きや 銕 tetu」に行ってきた

今日は会社のみんなで、

中目黒にある「焼きや 銕」に行ってきた。

いわゆる鉄板焼きやさんですね。

いつもランチだと混んでいて、入れないので諦めていたんだけど今日はすんなり入れたので食べてきました。

注文したのは、ランチメニューにある

「ハーブ豚の鉄板焼き」950円

いやーガーリックチップと味噌が付いていて、

それにハーブ豚を付けて食べるのですが、

これがまた旨かったぁ〜。

その写真がこれ

IMG_0232
IMG_0232 posted by (C)kishir

ランチなので全品「ご飯、サラダ、漬物、味噌汁、小鉢付き」ですよ。

素敵ですねぇー。

ハーブ豚だけでも写真を撮ってみた。

IMG_0233
IMG_0233 posted by (C)kishir

是非また行きたいなぁー。

今度は「牛ロースのあぶり焼き」を食べてみたい。

焼きや 銕 ランチメニュー

Posted at: 
2009/02/19 00:12:05
0 Comments
0 TrackBacks
Tags: 
Other
Trackback: 
http://kishi-r.com/2009/02/19/lunch_tetu/trackback/

AIRでMP3Playerを試してみる

とりあえず勢いで作ってみた。

参考にしたサイトは、Adobe AIRでクールなMP3プレーヤーを作ってみる

上記では、タイトル名を取得しているがどうしても取れなく断念している真っ最中orz

ソースは下記

<?xml version="1.0"?>
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="initApp()">
   <mx:Script>
       <![CDATA[
       import flash.desktop.ClipboardFormats;
       import flash.events.NativeDragEvent;
       import flash.desktop.NativeDragManager;
       import flash.filesystem.File;
       import flash.media.Sound;
       import flash.media.SoundChannel;
       import flash.net.URLRequest;
       import flash.display.Sprite;
       import mx.core.UIComponent;

       [Bindable]
       private var sound:Sound;
       private var soundChannel:SoundChannel;
       private var playing:Boolean = false;
       private var file:File;
       private var pausePos:Number = 0;
       private var playBar:Sprite;
       private var spriteRight:Sprite;
       private var spriteLeft:Sprite;
       private var uic:UIComponent;

       private function initApp():void
       {
           soundChannel = new SoundChannel();
           spriteRight = new Sprite();
           spriteLeft = new Sprite();
           uic = new UIComponent;
           uic.x=122;
           uic.y=40;
           this.addChild(uic);
           spriteRight.graphics.beginFill(0x0000ff);
           spriteRight.graphics.drawRect(0, 0, 0.1, 20 );
           spriteRight.graphics.endFill();
           spriteLeft.graphics.beginFill(0x0000ff);
           spriteRight.graphics.endFill();
           spriteLeft.graphics.beginFill(0x0000ff);
           spriteLeft.graphics.drawRect(0, 22, 0.1, 20 );
           spriteLeft.graphics.endFill();
           uic.addChild(spriteRight);
           uic.addChild(spriteLeft);
           addEventListener(Event.ENTER_FRAME,enterHandler);

           addEventListener(NativeDragEvent.NATIVE_DRAG_ENTER, dragEnterHandler);
           addEventListener(NativeDragEvent.NATIVE_DRAG_DROP, dragDropHandler);
       }

       private function dragEnterHandler(e:NativeDragEvent):void
       {
           var files:Array = e.clipboard.getData(ClipboardFormats.FILE_LIST_FORMAT) as Array;
           if(files != null && File(files[0]).extension == "mp3")
           {
               NativeDragManager.acceptDragDrop(this);
           }
       }

       private function dragDropHandler(e:NativeDragEvent):void
       {
           var files:Array = e.clipboard.getData(ClipboardFormats.FILE_LIST_FORMAT) as Array;

           if (playing)
           {
               soundChannel.stop();
           }
           sound = new Sound();
           sound.load(new URLRequest(File(files[0]).url));
           soundChannel = sound.play();
           playing = true;
       }

       private function musicPlay():void
       {
           try{
               soundChannel = sound.play(pausePos);
               playing = true;
           }catch(e:Error){
           }
       }

       private function enterHandler(event:Event):void
       {
           spriteRight.width = soundChannel.rightPeak * 100;
           spriteLeft.width  = soundChannel.leftPeak  * 100;
       }

       private function musicPause():void
       {
           if(playing == true){
               pausePos = soundChannel.position;
               soundChannel.stop();
           }
           playing = false;
       }

       private function musicStop():void
       {
           if(playing == true){
               soundChannel.stop();
               pausePos = 0;
           }
           playing = false;
       }

       private function selectHandler(event:Event):void
       {
           sound = new Sound();
           sound.load(new URLRequest(File(file).url));
           soundChannel = sound.play();
           playing = true;
       }

       private function selectFile():void
       {
           musicStop();
           playing = false;
           file = new File();
           file.browse();
           file.addEventListener(Event.SELECT,selectHandler);
       }

       private function drawBar(col:uint):Sprite
       {
           var bar:Sprite = new Sprite();
           bar.graphics.lineStyle(0, col);
           bar.graphics.beginFill(col, 1);
           bar.graphics.drawRect(0, 0, 1, 10);
           bar.graphics.endFill();
           bar.x = 20;
           bar.y = 370;
           return bar;
       }
       ]]>
   </mx:Script>
   <mx:Button id="openBtn" label="OPEN" x="10" y="10" width="80" click="selectFile();"/>
   <mx:Button id="playBtn" label="PLAY" x="10" y="35" width="80" click="musicPlay();"/>
   <mx:Button id="stopBtn" label="STOP" x="10" y="60" width="80" click="musicStop();" />
   <mx:Button id="pauseBtn" label="PAUSE" x="10" y="85" width="80" click="musicPause();" />
   <mx:TextInput id="titleText" color="0xffff00" backgroundColor="0x000000"  x="100" y="10"/>
   <mx:Label text="R" x="100" y="40" width="20"/>
   <mx:Label text="L" x="100" y="62" width="20"/>
</mx:WindowedApplication>

こんな感じに書いてみた。

一応「一時停止」と「ドラッグアンドドロップ」を足してみた。

が、

・一時停止をクリックしてから、停止を押しても効かない

・演奏中にファイルを選択しようとすると演奏が止まってしまう

・複数のファイルを選択してリスト表示出来ない

・そもそもまだタイトル名が取れていない

・mp3にしか対応していないので、mp4やm4a、WAVにも対応する必要がある

など、 まだまだ改善する点もあるし、全然オブジェクト指向に作られていないので、別のasファイルにする必要もある。

他にもボタンなどは、直に書かずに何かしら生成出来るような仕組みでないと柔軟ではないな。

そこら辺も考慮する必要があるので、もうちょっと頑張ってみる。

とりあえず現状の画面は下記になる。

musicplayer
musicplayer posted by (C)kishir

ってかActionScriptにもFlexにもまだまだ慣れていないので、色々と勉強する事が盛りだくさんな今日この頃ですなぁー。

※09/02/17 追記

t-matsuda氏に助言をいただき、試してみました。

修正箇所は下記。

private function dragDropHandler(e:NativeDragEvent):void
{
    var files:Array = e.clipboard.getData(ClipboardFormats.FILE_LIST_FORMAT) as Array;

    if (playing)
    {
        soundChannel.stop();
    }
    sound = new Sound();
    sound.load(new URLRequest(File(files[0]).url));
    //soundChannel = sound.play();
    //playing = true;
    musicPlay();
}

は、musicPlayメソッドにて再生するように変更して、

同じくselectHandlerにても同じようにmusicPlayメソッドを使用する。

private function selectHandler(event:Event):void
{
    sound = new Sound();
    sound.load(new URLRequest(File(file).url));
    //soundChannel = sound.play();
    //var filename:FileReference = FileReference(event.target);
    //playing = true;
    musicPlay();
}

で次がキモ。

private function musicPlay():void
{
    try {
        soundChannel = sound.play(pausePos);
        soundChannel.addEventListener(Event.ID3, onID3Info, false, 0, true);
        playing = true;
    }catch(e:Error){
    }
}

musicPlayメソッドにて、リスナーをEvent.ID3イベントを監視するサウンドのインスタンスに追加する。

これにより送られてくるイベントオブジェクトからサウンドのid3プロパティを参照が可能になる。

それが下記。

private function onID3Info(evt:Event):void
{
    var id3Props:ID3Info = evt.target.id3;
    for (var propName:String in id3Props) {
        trace("ID3 Tag", propName, "=", id3Props[propName]);
    }
}

上記のtraceしている部分がそう。

このtrace部分をテキストにぶち込むようにすれば、OKなはずだが・・・そもそもid3情報が無いものばかりなのかやはりnullというかtraceしても何も出ない。

ん〜そもそもAdobe® Flex™ 3 リファレンスガイドを見た所、ID3Infoはランタイムバージョン : 1.0 9

ってなってる。 ランタイムバージョンが1.0 9って事は1.5ではダメってことか?

もう面倒だからファイル名から取って拡張子でも消すか?

var filename:FileReference = FileReference(event.target);

でファイル名も取れるしなぁー、悩ましい。。。

Posted at: 
2009/02/16 23:17:54
2 Comments
0 TrackBacks
Tags: 
ActionScript
AIR
Flex
Trackback: 
http://kishi-r.com/2009/02/16/air_mp3player/trackback/

Pythonでlivedoorクリップ数とはてブ数とYahooブックマーク数を取得

Pythonで書かれている参考ってあんまり無いので、やってみた。(ってかあれか、別に書くほどの事じゃないからみんな書かないのかwでもPerlはあるんだよなぁー。)

livedoorとはてブは「XML-RPC」で取得しています。

YahooブックマークはXMLで返ってくるので、そいつをBeautifulSoupなんかでパースすればOK

livedoor

URI → http://rpc.clip.livedoor.com/count

methodName → clip.getCount

parameters → 件数を取得したい URL を指定(最大 50 件まで指定可能)

のようなので、実際に試してみると下記のようになる。

>>> import xmlrpclib
>>> server = xmlrpclib.ServerProxy('http://rpc.clip.livedoor.com/count')
>>> TARGET_URL = 'http://kishi-r.com/2008/04/pythonlxmlamazonapi/'
>>> server.clip.getCount(TARGET_URL)
{'http://kishi-r.com/2008/04/pythonlxmlamazonapi/': 1}

1件だけあるみたいw

はてなブックマーク

URI → http://b.hatena.ne.jp/xmlrpc

methodName → bookmark.getCount

parameters → 件数を取得したいURLを指定(複数指定可能/50件まで)

のようなので、実際に試してみると下記のようになる。

>>> server = xmlrpclib.ServerProxy('http://b.hatena.ne.jp/xmlrpc')
>>> TARGET_URL = 'http://kishi-r.com/'
>>> server.bookmark.getCount(TARGET_URL)
{'http://kishi-r.com/': 4}
>>> server.bookmark.getTotalCount(TARGET_URL)
118

のようです。 サイトトップのブックマーク数は「4件」で、サイト全体の場合は「118件」なのか。 まぁーそんなブックマークされる事も書いていないし、そんなもんかw

試しにMokujiを見てみる。
>>> TARGET_URL = 'http://mokuji.deckkr.jp/'
>>> server.bookmark.getCount(TARGET_URL)
{'http://mokuji.deckkr.jp/': 311}
>>> server.bookmark.getTotalCount(TARGET_URL)
345

うん。やっぱオレのブログより全然多いねw

・Yahooブックマーク(本家に無いのかな?ちゃんと探してないからわからん) ※参考URL:blog.katsuma.tvを参考にしました。

URI → http://num.bookmarks.yahoo.co.jp/yjnostb.php?urls=調べたいURL

のようなので、実際に試してみると下記のようになる。

>>> url = 'http://num.bookmarks.yahoo.co.jp/yjnostb.php?urls=http://kishi-r.com/'
>>> xml = urllib2.urlopen(url).read()
>>> xml'
<?xml version="1.0" encoding="utf-8" ?>\n<results>\n<SAVE_COUNT u="http%3A%2F%2Fkishi-r.com%2F" ct="0" />\n</results>\n<!-- bm-num11.ssearch.kks.yahoo.co.jp uncompressed/chunked Mon Feb  9 17:06:50 JST 2009 -->\n'>>>
寂しいことに「ct="0"」となっているので、0件なのね。 じゃーMokujiで試してみる。
>>> url = 'http://num.bookmarks.yahoo.co.jp/yjnostb.php?urls=http://mokuji.deckkr.jp/'
>>> xml = urllib2.urlopen(url).read()
>>> xml
'<?xml version="1.0" encoding="utf-8" ?>\n<results>\n<SAVE_COUNT u="http%3A%2F%2Fmokuji.deckkr.jp%2F" ct="25" />\n</results>\n<!-- bm-num11.ssearch.kks.yahoo.co.jp uncompressed/chunked Mon Feb  9 17:09:02 JST 2009 -->\n'

お、「25件」あるみたいっすね。

他必要そうなのって「delicious」くらいかな?

でもサイトがリニューアルしてるから、何かと変わってるんだろうなぁー。

Posted at: 
2009/02/09 17:30:51
0 Comments
1 TrackBack
Tags: 
Python
Trackback: 
http://kishi-r.com/2009/02/09/bookmark_api/trackback/

「No.22」の最新作「星のしるし」が発売ですね

遂にというか「No.22」のMix自体購入したのに聞いていなかったw

ちょうど年末に突発性難聴に掛かって、

色々な人に音源をいただいたのですが聞いてない音が溜まりすぎてたもので。。。

なので、聞き始めたのはつい最近です。

hoshinoshirushi
hoshinoshirushi posted by (C)kishir

最新作が出るとの事なので、こいつは買います。

トラックリストは出ていませんでしたが、

こちらから視聴が可能です。

でもNomakの新作は知り合いに買って貰いましたw

いやー良かった。Nomakっぽさが出ていた。

おまけで付いていたという「AnotherMind」の2曲目「Like A Bird」がまさにそう!

これレコードででねえかなぁーとちょっと期待です。

そのCDのジャケがこれ

DSC00551
DSC00551 posted by (C)kishir

いやー写真まで貰えてうれしい限りです。

年始からは耳も戻ったので、

前に貰っていた「高木正勝」なんかのアルバムもヘビロテで聞いてましたよ。

「O.N.O」の「Signalog 」もやばかったです。

これは久々にガツン!と脳天から来る音でした。

ブルーハーブ最高!って事で、DVDとDJ DyeのMixCDが待ちきれない状態ですw

さてそろそろMixも作らないと、

作る作るって言ってるだけじゃーねぇー。

Posted at: 
2009/02/05 23:26:10
4 Comments
0 TrackBacks
Tags: 
Music
Trackback: 
http://kishi-r.com/2009/02/05/no_22/trackback/


kishirをフォローしましょう



あわせて読みたい 人気ブログランキング - kishi-r.com track feed

Categories