FlashDevelop + GCCでANE入門

Adobe AIR3から ANE (ActionScript Native Extensions) という機能が追加され、これを使うとAIRアプリケーションをネイティブコードで拡張できるらしいです。素晴らしいですね。 今回はFlashDevelopを使ってWindows x86用のANEを作ろうかと思います。小さなdll (Dynamic Link Library)を作るだけなので、Visual Studio(Visual C++)のような大げさなIDEは使わずにGCCで。余計なプロジェクトフォ…

AS3SXの裏側

前回のエントリー、AS3SXはPaaSとして成功するかの続き。 AS3版PaaSとも言えるAS3SXですが、サーバ側のシステム構成は少し変わっていることを前回述べました。今回はそのシステムと通信するクライアント側に焦点を当ててみます。 AS3SXのコンセプトを台無しにする方法 前回のエントリーで少しだけ書いたのですが、AS3SXはソケットサーバをフロントに置き、クライアントはそのサーバに直接接続してTCPで通信を行っています(エンドポイントをHTTPに見せてるのは実はフェイク)。 AS3SXはそ…

AS3でNaive Bayesによる文書分類

自然言語処理は専門外なんですが、職種的(?にこの分野に精通している人がたくさん社内にいるので僕も少し影響を受け始めています。。 今回は単純ベイズ分類器(Naive Bayes:ナイーブベイズ)による文書分類を基礎の部分だけやってみます。単純(Naive)と呼ばれているのは、文書の出現確率を単語の出現確率の”積”で近似し、語順や単語間の相関関係を考慮しないためにそう呼ばれています。ベイズ理論については書籍がたくさん出ているのでそちらを参考にしてください。ここで説明するにはと…

CanvasとBitmapとよもやま話

久しぶりにフロントエンド寄りのこと。 ウチの会社の制作本部の人達と久しぶりに飲みに行ったので、彼/彼女らの仕事の進め方みたいなものを聞いてきた。一般的なWebサイト制作はもちろん、FlashやJavaScriptなどの技術力も僕より数倍上な人達だ。大きな組織の内でプロのデザイナーとしてたくさんの人と競争し続けてきたわけだから優秀で当たり前なのかもしれない。趣味程度にやってる僕なんかとは違う。 * CanvasとBitmapについて 彼らはしばらくCanvasを使ったアニメーションやゲームなどの案…

Consistent Hashing in AS3

前回のエントリー「Redis AS3クライアント」に関連して、キーの分散処理を行うために Consistent Hashing をAS3で書いてみました。イマドキのNoSQLデータベース(MongoDBなどshardingで分散するもの以外)クライアントならだいたい実装されているアルゴリズムですね。 理論の説明は以下のサイトなどを参考に。 Consistent Hashing スマートな分散で快適キャッシュライフ * Consistent Hashing implementation in AS…

Redis AS3クライアント

前回のインメモリKVSのRedisについての続き。 今回はActionScript3.0用のRedisクライアントについて調べてみました (参照: as3redis)。 結論から書くと、「使うのは控えた方が良い」 ということになるかと思います。以下理由。 (太字になっている部分が特に重要) 古いプロトコルにしか対応していない 分散できない パイプライニング対応部分の設計が良くない 上2つは機能が足りないという点で良くありません。対応プロトコルが古いというのは公開時期を考えると仕方ないことですが、…

AS3で関数のカリー化

前回のエントリ、AS3でFunction.bind()に引き続き “関数 (function)” を扱ってみます。 今回は関数のカリー化 (currying)についてです。 とその前に、前回のエントリで示した Function.bind() について。 あれは昨今のAS3文化には馴染まないアプローチだったと思います。 特にAS3からFlashの世界に入った方は prototype に拒否反応があったりするかもしれません。 ということでよりAS3文化に馴染んだアプローチを探…