2011年5月1日日曜日

新感覚Twitterビューワー「ぐんまけん!」



ゴールデンウィークはいかがお過ごしでしょうか。
僕のゴールデンウィークは昨日で終わりました。


さて、ゴールデンウィークということで、
新感覚Twitterビューワー「ぐんまけん!」を作りました。
まずは以下の動画をご覧下さい。



新感覚Twitterビューワー「ぐんまけん!」 from Gota Kakehi on Vimeo.


概要
新感覚Twitterビューワー「ぐんまけん!」はDock内に常駐する、Twitterのつぶやきを眺めるアプリケーションです。あたかもDock内で生きているかのように感じられます。
コンセプトとしては2000年初頭にはやった、伺か(あれ以外の何か、偽春菜、任意、等々)とか、そういうとこを狙っています。


機能
主な機能は以下の通りです。

  • 「どせいさん」で検索したつぶやきをしゃべる
  • かわいい
  • 割と邪魔


実装
今回の注目ポイントはいかにどせいさんの上に吹き出しを出すかというところです。
実際にはDockの画像を取得して、単純なパターンマッチングをしているだけです。


パターンマッッチングにはOpenCVを使おうとしましたが、MacでOpenCVを使うコストが恐ろしいほど高い(インストールとか、NSImageとIplImageの変換とか)ので、結局自前でパターンマッチングしています。


※公開の予定はありません。


では、よいゴールデンウィークを!

2011年2月28日月曜日

mxmlc + FlashPlayer11(Molehil) + Away3D 4.0 Alpha

次期Flash Playerに搭載されるネイティブ3Dエンジン(通称Molehil)が搭載されたFlash Playerが公開されました。

Adobe AIR and Adobe Flash Player Incubator


そして、Molehilの紹介記事や、既にコンパイルしてみた、という記事もあります。


これらの記事を参考にして、mxmlcを直で叩いてる人向けにMolehilを使う手順を解説します。

手順1. ClockMaker Blogさんの記事を参考にする


まずは、ClockMaker Blogさんの記事(Molehill を搭載した Flash Player Incubator プレビュー版が公開)の手順4までを終わらせましょう。

手順2. flex-config.xmlを修正する

FlexSDKの「frameworks/flex-config.xml」を適当なエディタで開き、15行目〜19行目を次のように書き換えます。

修正前
    
    10.2.0

    
    11

修正後
    
    11.0.0

    
    13

手順3. Away 3D 4.0 Alpha をダウンロードする

ここもClockMaker Blogさんの手順5.と同じです。
Version 4.0.0 Alpha (Broomstick) の source と examples をダウンロードします。

手順4. libsとsrcをコピーする

サンプルのコンパイルに必要なファイルをソースからコピーします。

  • 「away3d_4_0_0_molehill/libs」フォルダにあるapparat-lzma-decoder-1.0.RC8.swcを「examples_4_0_0_broomstick/libs」にコピーします。
  • 「away3d_4_0_0_molehill/src/」フォルダにあるaway3dを「examples_4_0_0_broomstick/src」にコピーします。
  • 「away3d_4_0_0_molehill/src/com/」フォルダにあるadobeフォルダを「examples_4_0_0_broomstick/src/com」にコピーします。

手順5. コンパイルする

ターミナルなどで「examples_4_0_0_broomstick/src」に移動します。
以下のコマンドでコンパイルできるでしょう。
% mxmlc -library-path+=../libs/ TraverserTest.as 



ではよい Molehill ライフを!

おわりに

馬鹿全さん、ClockMaker Blogさんの記事がよくまとまっていているため、ほとんどやることなかった!という感じです。
あと、黒MacBookだとグラフィックカードが対応してなくて、あんまりうまみがないですね。残念。

2010年12月30日木曜日

CoreDataのsaveは遅い?

iPhoneでブログのエントリーを取得・表示するアプリを作っていて。
データの保存にはCoreDataを使ってたんだけど、これが恐ろしく遅い。

測ってみると、1件処理するのにだいたい0.05秒かかる。
100件だと5秒。500件だと25秒。1000件だと50秒。
さすがに、これだけ待たせるのはいくらなんでもまずい。

それまではひとつのループの中で挿入と保存をしてたのを、
別々のループに分けてみたら早くなった。
1件処理するのにだいたい0.01秒かからないぐらい。
前の5倍以上の早さ!かかる時間が5分の1!

早くなったのはよかったけど、理由がわからない。
どんなコマンドが呼ばれてるかとか見てみるといいのかな。
ソースとはまた後日掲載します。多分。