タグ

ブックマーク / d.hatena.ne.jp/lyokato (16)

  • ActionScriptでの日本語文字コード変換 - Codin’ In The Free World

    ActionScriptのByteArrayクラスにはreadMultiByteとwriteMultiByteというメソッドがあり、 こいつを使えば、日語の文字コードも変換できます。 ということになっているのですが、環境によって動作が不安定なようです。 実際に、自分もこれらのメソッドを利用していて、 Leopardで通ってたテストがSnow Leopard(64bitモード)で実行したらこけるという場面に遭遇しました。 原因(SDKのバージョンとか, JDKが64bitだとどうとか)はまだ探りきれてません。 さらに、半角カナの扱いなど、日語独特の問題もありますし、今後も適切なメンテが行われるか分かりません。 (というかそもそも、バイト列を扱う機能と、文字コードの変換を扱う機能を同じクラスにしてしまうのはいかがなものか) そんなわけで、as3jcodeを書いてみました。 http://g

  • Adobe Alchemy tutorial - Codin’ In The Free World

    alchemyについて C/C++で書かれたコードをActionScript Byte Codeに変換することによって、 AS3とC/C++で連携が可能になる。 注意点 C/C++で書かれてgccでコンパイル済みのネイティブコードとリンクするわけではなく、C/C++コードをllvmを仲介してAction Script Bytecodeにするだけ。 なのでネイティブコード程、実行速度は速くはない でもPure AS3よりは速い。最適化とかの影響。 Flash Playerのサンドボックスで動くので、threadやIOに制限がある。 なので、そのへんに転がってるC/C++のコードがなんでも動くわけではない。 参考 公式 http://labs.adobe.com/technologies/alchemy/ 公式C API http://labs.adobe.com/wiki/index.php

  • ActionScriptでJob Queueを考える - Codin’ In The Free World

    as3ds as3dsというライブラリがあります。 http://lab.polygonal.de/ds/ ActionScriptでは、C++のSTLやJavaが最初から同梱しているような データ構造を簡単に扱うライブラリがコアには含まれません。 このライブラリを使えば各種データ構造を扱えるようになります。 for Game Developerと書いてありますが、ゲーム以外でも使えると思います。 [追記:2009/11/23] コメントを頂いて気づいたのですが、 作者がhaXe版を作り、as3版のメンテを止めてしまっているようです。 google codeのプロジェクトページもなくなっていてダウンロードできません。 githubにforkされているようなので、そちらから入手するとよいです。 http://github.com/jaybaird/as3ds/ 利用できるデータ構造 Link

    dann
    dann 2009/11/20
  • ActionScriptプログラマのためのDIコンテナ - SmartyPants-IoC - Codin’ In The Free World

    DI - 依存性の注入 DIについては以下のようなエントリを見ておくといいです。 ファウラーの記事の訳 http://kakutani.com/trans/fowler/injection.html perlを使った分かりやすいDIの解説 http://dann.g.hatena.ne.jp/dann/20080911/p1 http://dann.g.hatena.ne.jp/dann/20080913/p1 ASでのDIコンテナ ActionScriptでDIを行いたいときに次のようなDIコンテナが存在するようです。 参考: FlexのDIコンテナ比較 - よねのはてな http://d.hatena.ne.jp/yone098/20090704/1246846080 Prana Framework SmartyPants-IoC swizframework ということで、Google

  • OAuth WRAP - Codin’ In The Free World

    http://developers.facebook.com/news.php?blog=1&story=335 SixApartからFacebookに移籍したDavid Recordonのエントリ。 次のOAuthの進化として、OAuth WRAPというものが提案されているようです。 http://oauth-wrap-wg.googlegroups.com/web/WRAP-v0.9.7.2.pdf とりあえずざっくり読んだまとめ。 現時点での、OAuth Core 1.0a からの変更点を中心に。 用語 Consumer -> Client Service Provider -> Authroization Server ConsumerからClientへの変更に従って、 consumer keyは、client identifierになります。 consumer secretは、c

    dann
    dann 2009/11/18
  • [Perl][OpenID] OpenID-Lite, その他 - Codin’ In The Free World

    PerlのOpenIDクライアントであるOpenID-Liteをデベロッパリリースしました。 http://search.cpan.org/~lyokato/OpenID-Lite/ OpenID Enabledのruby-openidを参考に、OpenID2.0に準拠させてあります。 http://openidenabled.com/ 特徴 用語を2.0のspecに出来るだけ合わせた。 DH-SHA256, HMAC-SHA256の対応 Crypt::DH::GMPの採用(http://mt.endeworks.jp/d-6/2008/04/crypt-dh-gmp.html) XRI::Resolution::LiteによるXRI inameでのディスカバリのサポート(http://d.hatena.ne.jp/ZIGOROu/searchdiary?word=%2a%5bXRI%5d

    dann
    dann 2009/07/01
  • 2-legged OAuth on OpenSocial - Codin’ In The Free World

    OAuth Consumer Request 前回も簡単に触れましたが、OAuth Consumer Requestという拡張仕様があり、 これは二者間でのやり取りを行うためのものでした。OAuthのプロトコル中で 重要なパラメータは、トークンとシグネチャ(署名)です。トークンは、ある エンドユーザーがサービスプロバイダ上に持っているリソースに対して、 特定のコンシューマがアクセスしてもよいという認可を与えたという証明となります。 また、コンシューマはリクエスト毎に共有鍵、もしくは秘密鍵で署名をつけることにより、 不正なコンシューマの偽装を防ぐことが出来ます。 二者間でやりとりを行う場合、エンドユーザは登場しません。なので、トークンを 扱う必要がなく、署名の検証のみで認証を行うことになります。 事前にリクエストトークンの発行、エンドユーザをリダイレクトさせて承認をもらう、 承認済のリクエス

    dann
    dann 2008/09/28
  • Outbound OAuthを実現するOAuth Proxy - Codin’ In The Free World

    OAuthプロトコル上でのプレイヤー数について 三者間のやりとり OAuthは基的に、サービスプロバイダ、コンシューマ、エンドユーザの、 三者間でのやりとりのためのプロトコルです。(3-leggedと呼ばれます。) 二者間でのやりとり また、サービスプロバイダとコンシューマがダイレクトにやり取りを行う OAuth Consumer Requestという拡張仕様もあります。(こちらは2-legged OAuthと呼ばれます。)トークンを使わずに署名だけでやり取りを行います。 元々は、コンシューマが、エンドユーザーでなく自分自身のデータを取得 したいときに利用されるためのものでしたが、OpenSocialにおいて、複雑な やり取りを行うときに、エンドユーザーの混乱を防ぐために用いられるシーン があります。こちらについては後日説明します。 その他 OAuthのプロトコルでは、上に挙げた、3-l

    dann
    dann 2008/09/28
  • OpenIDとOAuthを同時に扱う拡張仕様 OpenID OAuth Extension - Codin’ In The Free World

    あるサービスプロバイダが、OpenID、OAuthを利用したデータの提供の両方に対応している場合、 そのどちらもRP,Consumerとして利用したいというサービスがあった場合、OpenIDのために、 エンドユーザーをOPにリダイレクト、そしてまた、データを取得するAPIを叩きたいときに、 OAuthのフローに従って、エンドユーザーがプロバイダにリダイレクトさせて認可を求めなければ なりません。 二つの異なるプロトコルで、共にエンドユーザーの承認を求める画面出すこのフローは、 エンドユーザーを混乱させるものになります。 「なんで何回も飛ばすんだ。まとめて一度に認証させればいいだろ。」ってことですね。 それを可能にするためのOpenIDの拡張仕様として提案されているのが、 OpenID OAuth Extensionのようです。 http://step2.googlecode.com/svn

  • [Yokohama.pm] Yokohama.pm#2で発表してきました - Codin’ In The Free World

    22日に行われたYokohama.pm#2にて ActionScript3で実装中の、いたるところにPerlっぽさが 溢れるORマッパであるas3ormについて話をさせて頂きました。 デジハリ横浜校万歳 発表について 次のような構成でas3ormを紹介 ORMとは何か、Perl実装について かなり略して、参照先だけの紹介 FlashとAIRについて どんなシーンで利用されているか as3orm SYNOPSISを紹介 といった感じでまとめました。 実装中のコードはCodeReposに置いてあります。 http://coderepos.org/share/browser/lang/actionscript/as3orm 発表資料どこかに置こうと思ったんですけど、 クレジットカードの有効期限がいつの間にか切れてて レンタルサーバー失効してしまっていたので、 そのうち何とかします。 もしくは別エ

  • 回転キューブ - Codin’ In The Free World

  • 座標変換 #1 Number3D クラスでベクトル操作 - Codin’ In The Free World

    Papervision3Dには座標変換のために ベクトルを操作する org.papervision3d.core.Number3D、 行列を操作するorg.papervision3d.core.Matrix3Dクラスがある。 それぞれ、FlashのビルトインであるPointやMatrixの3D版だと思っておけばいい。 Matrix3Dにはオイラーやクォータニオンの変換機能も実装されているので これらを使えば、3Dでのワールド座標におけるオブジェクトの移動、回転、拡大が簡単にできる。 さらにテクスチャマッピングのときのUV展開時に使われるNumberUVなどもあるが これはまた別途説明。 まずはNumber3D。ベクトルまわりの演算はこのクラスを使う。 import org.papervision3d.core.Number3D; var vec:Number3D = new Number3

    座標変換 #1 Number3D クラスでベクトル操作 - Codin’ In The Free World
  • 座標変換 #2 Matrix3Dクラスで行列操作 - Codin’ In The Free World

    Papervision3Dの行列操作クラスを使ってみる コンストラクタ var matrix:Matrix3D = new Matrix3D([ a, b, c, d, e, f, g, h, i, j, k, l ]); 同次座標を使うので4x4の行列になるが 最後の行は 0, 0, 0, 1 で固定。 したがって、コンストラクタでは 最初の3行4列のそれぞれの値を指定すればいい。 よく使う行列の取得 Identity Matrix var identity:Matrix3D = Matrix3D.IDENTITY; 1000 0100 0010 0001 X軸の回転行列 X軸で30度回転するMatrixを取得する var xMat:Matrix3d = Matrix3D.rotationX( 30 * Math.PI / 180 ); 1000 0cosθ-sinθ0 0sinθcos

    座標変換 #2 Matrix3Dクラスで行列操作 - Codin’ In The Free World
  • as3flexunitlibによるUnitTest - Codin’ In The Free World

    前回の記事で少し紹介したas3flexunitlibについてもう少し詳しく説明します。 Google Codeのプロジェクトページはこちら。 http://code.google.com/p/as3flexunitlib/ as3flexunitlibはAdobe Labsによって提供されている、 as3用のUnitTestのためのライブラリです。 as3corelibなどの他のライブラリでも、テストのためにflexunitが使用されています。 TestCase、TestSuiteを作成し、TestRunnerを埋め込んだmxmlによる GUIを起動してテストを走らせ、結果を見ることが出来ます。 成功例 失敗例 まずはmxmlを書いてGUIを用意します。 TestRunnerの準備 <?xml version="1.0" encoding="utf-8"?> <mx:Application

    as3flexunitlibによるUnitTest - Codin’ In The Free World
  • as3atompub - AS3でatompubを操作するライブラリを作成しました - Codin’ In The Free World

  • ASファイルにはBOMが必要 - Codin’ In The Free World

    dann
    dann 2007/02/01
    utf8bom --insert --dir ./ --recursive
  • 1