Sunday, May 6, 2012

Windows Phone登録の費用


App Hub 登録と提出に関する FAQ スタート ページによるとWindows Phone向けにアプリを申請・登録するには有料メンバーシップの登録と無料アプリの場合は申請料がかかるとのこと。

有料メンバーシップ費用 
9,800円(年間)

アプリ申請料
有償アプリ -> 無料
無償アプリ -> 100回まで無料,それ以降は1回についき19.99ドル(約1,600円)がかかるとのこと。
アプリの更新は無料

考察
  • iTune Store, Google Play, Chrome Store, Amazon Storeなどに比べると一番高い価格設定になっています。 
  • 100回目以降にはなりますが、アプリごとに審査費用がかかるのは今のところapp hubのみです。


Saturday, May 5, 2012

Redmine リポジトリに、エントリ/リビジョンが存在しません。

ログをみると以下のメッセージが出ているので警告に合わせて設定すると解決します。

ATTENTION!  Your password for authentication realm:


You can avoid future appearances of this warning by setting the value
of the 'store-plaintext-passwords' option to either 'yes' or 'no' in
'/var/www/.subversion/servers'.
-----------------------------------------------------------------------
Store password unencrypted (yes/no)?


Wednesday, April 25, 2012

rails3 'created_at' doesn't have a default value:

関連のコレクションでレコードを追加するときにcreateだと表題エラーがMySQLからでるが,build + saveだと出ない。

結局中間テーブルにタイムスタンプのレコードがあっただけだった。
has and belongs to mantには関連id以外をおいてはいけない原則を忘れてた。

Sunday, April 22, 2012

AS3 言語の動的表示切替

ActionScript3のヘルプを読むと一見動的に表示言語を切り替えるには、loadLanguageXMLで呼び出した後に自分でTextFieldにひとつひとつ翻訳言語を割り当てるしかないように思えますが、loadLanguageXMLのコールバックメソッドが呼ばれ続けるバグがあるため、これはできません。

以下の方法が今のところのベストと考えられます。

・「実行時にActionScriptを使用して」を設定してビルド。

言語を切り替えるところで以下のロジックを埋め込み。(パラメータ設定の順番は重要)

Locale.autoReplace = true;
Locale.setDefaultLang("{言語コード}");
Locale.loadLanguageXML("{言語コード}");
これで今のところよさそうにみえる。

Flash CS5.5 Bug loadLanguageXML

Flash CS5.5の多言語化系は特に数多くのバグをかかえているため、よく検証しないと危険です。
中でのLocal.loadLanguageXMLは一度呼び出すと、呼び出しを繰り返し止らなくなるため非常に危険です。
traceなどを仕込まないと気づけませんが、1秒に10回ぐらい呼び続けています。もし言語ファイルがネットワーク上にあるとウィルスソフトと判別されてもおかしくないアプリができてしまいます。
対応方法は今のところ使わないことぐらいです。

Saturday, April 21, 2012

QuickBox2D Contact Addハンドラ中のオブジェクト生成


QuickContacts.ADD中にオブジェクトを生成した場合は以下のエラーが出る。
m_lockというプロパティがtrueに設定されているためにbodyが生成されずに起きるようだが、m_lockをはずしていいのか判断できないので、対応方法としてはadd中にはオブジェクトの生成ができないと思ったほうがよさそう。


TypeError: Error #1009: null のオブジェクト参照のプロパティまたはメソッドにアクセスすることはできません。
at com.actionsnippet.qbox.objects::CircleObject/build()
at com.actionsnippet.qbox::QuickObject/init()
at com.actionsnippet.qbox::QuickObject()
at com.actionsnippet.qbox.objects::CircleObject()
at com.actionsnippet.qbox::QuickBox2D/create()
at com.actionsnippet.qbox::QuickBox2D/addCircle()
at com.eniblo.tamaire.panel::GamePanel/createBall()
at com.eniblo.tamaire.panel::GamePanel/quickContact_addHandler()
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at com.actionsnippet.qbox::QuickContacts/Add()
at Box2D.Dynamics.Contacts::b2PolyAndCircleContact/Evaluate()
at Box2D.Dynamics.Contacts::b2Contact/Update()
at Box2D.Dynamics::b2World/SolveTOI()
at Box2D.Dynamics::b2World/Step()
at com.actionsnippet.qbox::QuickBox2D/onRender()

QuickBox2D QuickObject.destroy error


QuickObject(ver2.0.2)をdestroyするとまれに下記のエラーが起きます。
dragしているオブジェクトをdestroyするとおきるようなので、自分でdragを制御している場合はdestroymouseを呼ぶ必要がある。
destroyはすぐにオブジェクトを削除するのではなく、削除リストに追加して次のonEnterFrame(onRenderメソッド)で削除を行っている。

RangeError: Error #1005: 配列インデックスが正の整数 (-1) ではありません。
at Error$/throwError()
at Array()
at Box2D.Dynamics::b2Island()
at Box2D.Dynamics::b2World/Solve()
at Box2D.Dynamics::b2World/Step()
at com.actionsnippet.qbox::QuickBox2D/onRender()