今日は疲れた。

帰宅電車での脳内メモ

ThreadパッケージはBrigeパターンに直した方が良さそうだと思った。その方が新しいクラスを作った時に実装すべきメソッドをインターフェイスで定義できる形になるので強固になるかと。あと強引な型キャストの必要もなくなるかな。

インタプリタパターンはそれを元に作ろう。コマンドノードの部分がThreadクラスを継承したものになるイメージ。

それからFlashでは動的にクラスを読み込めないので、必ず一度クラスを読み込んでおく必要がある。前に同じような事やってどっかに書いたんだけど消しちゃったかなぁ。

//–思い出した


hogepackage.HogeClass;
var className = 'hogepackage.HogeClass';
var classFunc:Function = eval(className);
var hoge = new classFunc();

–//

とにかく一度クラスをムービーに読み込んでおく(importとかじゃなくて)のをカプセル化するために、動的に利用するクラスをひたすら読み込むswfを作って、初めにロードするってのはどうかしら?

phpもぼちぼち組み始める。結局既存のFrameWorkは参考にするだけに留め、自分で作ることにした。複雑すぎて覚えるのがめんどくさいし、フレームワークのいいところは枠組みが決まっていることだが、人のルールに従わなきゃならないのは面白くない。Railsほど便利なら別だが。余談だがはてブのホッテントリにあったRubyの生産性の高さについての記事は興味ぶかかった。Railsの事もあるし覚えておきたい。

FlashもPHPも作ろうとしている枠組みは同じで、サービス階層(MVC)とアクション階層にわけて、一番メインのクラスが解析して処理を実行する感じ。

例えば Userクラス(サービス層)のcreateメソッド(アクション層) みたいな。 サービス層はMVCそれぞれクラスを持っていて、これは何パターンっていうんだっけな。

PHPのVIEWは比較的簡単だが、FlashのVIEWは全然あかん、思いつかない。

今日はMovieClipの一括管理&Mediatorをちょっとしたアプリに組み込んでみたが、Colleagueが増えれば増えるほど、複雑に・・・。もう少し突っ込んで考える。

大規模なFlashを使っていると思いもかけないMCが思いもかけないMCに影響を与える拡張が要求されたりして、だんだんゴリゴリになっていくんだよなぁ。

うーん、MovieClipの一元管理も階層化で管理できればいいのかな?条件分岐にステートパターンを使うとか・・・。わからん。ここで無理のない設計ができれば、今後いちいち悩んだりしないと思うのだが。

Posted in 未分類 at 10月 4th, 2006. No Comments.

帰りの電車でぼんやりと、フレームワークってすごいなぁと考えているときに、前の客が妙に気になった。

ずっと見ていると、人間はひとつのキーワードから連鎖的に存在する座標がわかるんじゃないか?と思った。

そのキーワードが複数であれば?その人間を表す座標はより明確になるし、その座標を出すアルゴリズムは定理じゃなく社会が決めるものだ。つまりソーシャルネットワーク。

で、僕は思いついた。今まで悩んでた事がすべてつながる鍵を。

関心空間やはてなキーワード以降、ずっと苦い思いをしてきた。なんであんなに近くにある思想を思いつかなかったのだろうかと。SNSが登場した時は、近いネタはあったけど、コンセプトが決定的に素晴らしかったので惨敗という気持ちになった。

一般人にはRSSリーダーは敷居が高いということ、はてブの情報劣化が進んでいるということ、これらは容易に答えがでる。人間はある情報に大してピラミッド型に分布しているからね。マイノリティからアーリーマジョリティ、その下にマジョリティみたいに。

だから今存在する「ソーシャルタグ」は理論的に無理があって、だから株式方式の採用を考える人もいて(僕は別のアプローチから同じ結論に至ったけど)、それを差し置いてもまだマジョリティを取り込むには足りない。そのさらに上位階層が必要だ。

すべての情報は1つのフォーマットに変換されて、その位置を決めるのはソーシャルネットワーク。

では、その複雑なネットワークに一本のラインを引くアルゴリズムは??

うーん・・・。それさえわかればなぁ。

データマッピングだとか、認知言語学だとか統計学とか、知識がいるのかもしれない。RDFはまず押さえなきゃだろうし

http://www.techcrunch.com/2006/03/30/the-state-of-online-feed-readers/ このへんはRSSリーダーにソーシャルタギングが実装されているという話。まぁ普通に思いつく。

http://openstratus.com/article/39/how-to-bookmark/ メモ

そもそもタギングのシステムというか、システムはわかるけど、複数人によるタギングでのDB設計がどうなってるかわかんない。

tagマスタとitemマスタとuserマスタがある。 どのユーザーがどのitemにどのタグをつけているか、ていうテーブルを作る。

userid,itemid,tagid intUser1,intItem1,intTag1 intUser1,intItem1,intTag2 intUser2,intItem1,intTag1 intUser2,intItem1,intTag3

この4つのテーブルで実現できるかな?

feedpathはなかなかスマートな思想だなぁ。RSSリーダーと検索エンジンの複合タイプで、僕の今日思いついたのに近いや。なにが素晴らしいかってアカウント登録をしなくても恩恵に預かれるってとこだよなぁ。僕の発想じゃアカウントは必須だし・・。

僕の考えは、タグとタグには距離があって、そのタグにも個人による重みがあって、その重みは衝動で表現できると思っているんだけど、基本は距離(ソーシャル)×衝動(個人)×入力で、より精度の高い情報抽出ができると思うんだけど、入力ってのがひとつの統一規格になっていて、RSSでもドキュメントのURLでもよくてタグでもあって。フォルダもファイルも全部同じと見なすっていう発想なんだが。

入力の部分に昔はやった20qっていう人工知能の応用が使えればいいなぁ

Posted in 未分類 at 9月 21st, 2006. No Comments.

FlashでのOOPにも慣れてきたので OOPなJavaScriptでも書いてみようかなぁと 寝起きにボソボソ書いたりしてみた。楽しいね。

Blogに何かしらAjax的なものを付けようと思う。 簡単なところで言えばサイドの「カテゴリ」や「アーカイブ」にマウスオーバーした時に、XMLを引っ張ってきて一覧表示みたいな所だろうか?これなら1日あれば作れそう。

JavaScript2っていつからなの?IE7には実装されないの?だとしたら、まだまだ先の技術なのかなぁ…classとかpackageとか使って楽したいよぅ。

Flashで経路探索関連のクラスを昨日の忘年会帰りに作った。 ついに「ゲーム開発者のためのAI入門」が役にたった。A*アルゴリズムってやつ。この本はホントおもしろくて、ポテンシャル関数とか、遺伝的アルゴリズムとかFlashでやってみたいのがたくさん。いずれ花の遺伝シミュレーションをFlashで作ろうと思う。ゲーム関係の書籍は結構良書が多そうね。2Dベクターも勉強して、3Dや剛体なんかにも手を出したい。ウキウキ。

話が反れた。経路探索は100ノードくらいのマップだったら1/100秒くらいで探索できる。僕の作っているアプリでは一度見つけたルートをリルートするのは目的地についた場合か、障害物にぶつかったタイミングだから、これだけスピードが出せれば問題なしだな。

Posted in 未分類 at 12月 13th, 2005. No Comments.

やっとこ基本中の基本である

マップ上をキャラが自由に動き回りつつ 当たり判定とMCの深度管理までできた。

いやいや、ここまでくるのに軽くクラスファイル20枚くらいになってるからね。 ベースを結構しっかりと作ったので、当たり判定と深度管理は楽だった。

今回もテトリスの時と同じようにVIEWを完全に切り離して開発しているのですが さすがに込み入ってくると、こっちの方がわかりやすくて良い。

VIEWはただupdate()というメソッドを叩かれるだけなので データをもらいはすれど、もうすでに描画を書き換えるためのデータになっているので そのデータをもらってVIEW自身がなにか判断して処理するという事はないんです。

ゲームなどは、(僕のやり方では)メインのクラスが常にonEnterFrameで処理を実行しているので Viewの更新に関しても基本的にそこをキッカケに行われます。 mcが自分のonEnterFrameを使って勝手にプロパティを変えたりすることはないので 自立性は失われますが、慣れるとこっちの方が良い気がします。

Posted in 未分類 at 12月 11th, 2005. No Comments.

MTをバージョンアップしつつ デザインを変更してみました。

Posted in 未分類 at 12月 11th, 2005. No Comments.

を独自に作り中。

いつまでたっても骨組みばっかで、実装に入れないよぉ。

FLASHだOOPだAS2だといったところで 他の人がどんな骨組みを基にソースをくみ上げているのかわからんですよ。

僕はメインコントローラがイベントを受け付けて、STATEパターンでクラス別に処理実行みたいな感じが好きみたいなんですが。このイベント部分がめんどくさい。

たとえばコントローラがデータの初期化してね、待ってるよん。と言ったところで、データはいくつもあるわけだから、立てるフラグはいっぱいあるわけで…。そのフラグとイベントを管理するのはデータ管理役なわけで、まさに中間管理職。

ちょっと複雑になるしメンドクサイ。

なのでEventDispathcerクラスを改造、というかオリジナルで作ってみている。

今のところは、ショボショボ実装でクラスの結びつきがメチャメチャ強いものなのだが、とりあえずこれでしのごう。

どんな感じかというと


EventFlagManager.create("HogeEvent",["event1","event2"]);

でイベントフラグとそれにぶら下がるイベントフラグノードを定義


EventFlagManager.setFlagNode("HogeEvent","event1",true);

で、HogeEventにぶらさがるイベント1のフラグを立てる


EventFlagManager.isFlagResult("HogeEvent");

で、フラグの立ち状況をブール値で返す

静的クラスなのでどこからでも使えるのが強みだが、いかんせnイベントの名前とかをいろんなクラスで共有していないとダメだという点で、OOPぽくないよなぁ。できればイベントのオーナーがそのイベントを管理できるアクセス権を持って、それをどんどんネストしていけるのが理想。つまりは…えーとコンポジットパターンだね。

いつか作るよ。

Posted in 未分類 at 12月 9th, 2005. No Comments.