Entries

DEATH NOTE アナザーノート ロサンゼルスBB連続殺人事件


DEATH NOTE アナザーノート ロサンゼルスBB連続殺人事件

電車の中で読む本がなかったので、たまたま購入。

おそらくこの小説家のファンがラノベとして読むならよいのかもしれんけど、本格サスペンスを期待するとかなり微妙。矛盾点というかご都合主義が多すぎる。 竜崎が天才というよりは、単にカンニングペーパー携帯した人になってます。

ビリヤードパズル


笑わない数学者

天王寺博士の出題したビリヤードの問題(物語の本筋とは関係ありませんん)、行きと帰りの電車でずーっと考えて、ようやっと答えがわかった。読後2ヶ月後のことでした。

五つのビリヤードの玉を、真珠のネックレスのように、リングにつなげてみるとしよう。玉にはそれぞれナンバが書かれている。さて、この五つの玉のうち、幾つとっても良いが、隣どうし連続したものしか取れないとしよう。一つでも、二つでも、五つ全部でも良い。しかし、離れているものは取れない。この条件で取った玉のナンバを足し合わせて、1から21までのすべての数ができるようにしたい。さぁ、どのナンバの玉を、どのように並べて、ネックレスを作れば良いかな?

この作品には、表トリックと裏トリックの2つがあるらしいのですが、裏トリックがいまだに解けない罠。

AS3メモ ガベッジコレクションについて

どうやら、色々な偉い人の話をまとめると、ガベージコレクションの仕組みを知らずにAS3でコードを組むと、ハングアップの危険がいっぱいということみたい。

とりあえず理解しなければならないのは delete の新しい挙動と、リファレンス・カウント、マーク&スイープという概念らしい。

続きを読む

AS3 メモ

結論から言うと、現状はFlash9とAS3でフルスクラッチでスクリプトベースのサイトを作るのはかなり無謀。
processingでサイト丸ごと作るのと同じくらい無謀。

おそらくAS3は、いかにコード神がお書きになったコンポーネントやフレームワークを使いこなして、自分で難しい処理をかかないようにするか。自分がやるのは、データの結合、アニメ指定、ページ遷移だけにする、というのがキーになりそうな悪寒。

自分でボタンやプルダウンとか作るのは危険な香り。

mxコンポーネントを却下して、自分で表現系に強いコンポーネントを作るより、その暇を全て注入して既存のコンポーネントで、従来のFlash並みの表現を可能とするなアニメーションライブラリを作る方向でいくのがよいんじゃないかと。MC作ったり消したりしてると、ちょっと油断するだけでnull poiner exceptionでまくり。

逆に、AS3は神が創ったライブラリの使い方さえ覚えれば、自分であまり特別なことができなくても、ガンガン高度な処理を行えそう。なんで、今後のAS3勉強は下記みたいな感じでいこうかと。

サイト製作 → 神がコンポーネントを完成させるまで保留
Util系クラス → ガンガン作り貯める
mx.effects.easingライブラリ → ガンガン作り貯める
物理・数学・フィルター・ビットマップ操作 → ガンガン作り貯める
コンポーネント系 → 神頼み (手を出すと後で死ぬと思われ)
パーサ、アナライザー、その他専門知識が必要系 → 神頼み

R.Pennerとか G Skinnerとか頑張れ。

Google Earthによるベイルート爆撃の可視化

有志によってGoogle Earthで、ベイルート空爆のビフォー・アフターが製作されつつある模様。
グーグル・アースというか(不特定多数の無名パワー)の本質を見た気がしてちょっと震えた。

ベイルート空爆オーバーレイ(KMZ) by Ogle Earth
爆撃目標オーバーレイ(KMZ)
ミサイル着弾地点(KMZ)

via: Code & form

地味な新サービスを思いついた

ベイズフィルタで、今から送るメールが相手のスパムフィルタにかかってしまいそうな文面の場合に警告がでる機能。
メーラーについていたら、地味に事故が減るかもしれないが、需要はあまりないかもしれない。

面識のない人に沢山メールをださなければならない職業の人には、結構重要かも。

AS3メモ Flex2のmxパッケージをFlash9で使用する

なんかできるらしい。

1.無料のFlex2 SDKをダウンロードして展開する。
2.使用したいクラスのソースコードを開き
 1.コード内にある”mx.core.mx_internal”等の、flex2に直結したクラスのインクルードをコメントアウトする
 2. コード内にある全ての”mx_internal”というネームスペースの記述を取り除く
2.Flash9のクラスパスにFlex2 SDKのmxクラスディレクトリを追加する。

これで、Flex2の強力なバリデーションや、アニメーションクラスがFlash9で使えるとか。
未検証な情報ですが、一応。

AS3メモ トゥイーンのメモ2

ActionScript Orgに一覧乗ってるスレがあった

Liner, Cubic, Quadlic, Quintまで全部そろってますよ。これで一見落着。

Math.linearTween = function (t, b, c, d) {
return c*t/d + b;
};
Math.easeInQuad = function (t, b, c, d) {
return c*(t/=d)*t + b;
};
Math.easeOutQuad = function (t, b, c, d) {
return -c *(t/=d)*(t-2) + b;
};
Math.easeInOutQuad = function (t, b, c, d) {
if ((t/=d/2) < 1) return c/2*t*t + b;
return -c/2 * ((--t)*(t-2) - 1) + b;
};
Math.easeInCubic = function (t, b, c, d) {
return c*(t/=d)*t*t + b;
};
Math.easeOutCubic = function (t, b, c, d) {
return c*((t=t/d-1)*t*t + 1) + b;
};
Math.easeInOutCubic = function (t, b, c, d) {
if ((t/=d/2) < 1) return c/2*t*t*t + b;
return c/2*((t-=2)*t*t + 2) + b;
};
Math.easeInQuart = function (t, b, c, d) {
return c*(t/=d)*t*t*t + b;
};
Math.easeOutQuart = function (t, b, c, d) {
return -c * ((t=t/d-1)*t*t*t - 1) + b;
};
Math.easeInOutQuart = function (t, b, c, d) {
if ((t/=d/2) < 1) return c/2*t*t*t*t + b;
return -c/2 * ((t-=2)*t*t*t - 2) + b;
};
Math.easeInQuint = function (t, b, c, d) {
return c*(t/=d)*t*t*t*t + b;
};
Math.easeOutQuint = function (t, b, c, d) {
return c*((t=t/d-1)*t*t*t*t + 1) + b;
};
Math.easeInOutQuint = function (t, b, c, d) {
if ((t/=d/2) < 1) return c/2*t*t*t*t*t + b;
return c/2*((t-=2)*t*t*t*t + 2) + b;
}; 

引き続き、 Back, Bouce, Circular, Exponential, Quartic あたりの式も捜索中・・・ってここまできたらR.Pennerのソース見る方がはやかったなぁ。

で、こいつらをGrowとかBlurとかResizeとかのeffectクラスの、 easingFunctionプロパティとして定義してやればいいわけか。
複数のトゥイーンを同時に動かすときはParralel, 順番に動かすときにはSequenceというコンポジットパターンのコンテナに入れてやるわけですね。
で、アニメーションの開始、更新、終了時にそれぞれイベントを出す・・・ と
フル実装すると、mx.effectがflash9でも使えるようになったら無駄になるので、作るなら簡易版にとどめるのが吉と。

AS3用 トゥイーン・クラスのメモ

AS3(flex2)のアニメーションは、ロバート・パンナーのtweenライブラリが採用されてるすね。
ってことは、Flash9がリリースされたときには、スクリプトのアニメーションはflex2同様に、mx.effects.easing ライブラリで制御されるっぽい。

自作でイージイン用のコード書く場合も、これと入出力を同じにしとくとあとで交換がきくんジャマイカと。

function( 現在の時間, 初期値, 増減差分, アニメーション時間): Number{
~ ここで計算 ~
return resultValue
}

とすると、基本のアニメーション関数はこんな感じかな

Sineによる可減速

function( currentTime, initValue, difference, duration): Number{
var rad = currentTime / duration -0.5 ;
var resultValue = (Math.sin(  rad *Math.PI  ) +1) * 0.5 * difference + initValue
return resultValue
}

ってやったら、あまり気持ちよくない・・・ どうやらSinじゃなくてQuadricのトゥイーンを実装しなきゃダメっぽいけど
数学わかんね・・・

と思ったら、R.Penner easingの掲示板への書き込みを発見。この式を移植しろってことなのかな。

イーズアウト
currentValue = -difference * (currentTime/=duration)*(currentTime-2) + initValue;

イーズイン
currentValue = difference*currentTme*currentTime/(duration*duration) + initvalue;

イーズイン&アウト

将来的なことを考えるのなら、Flash使いにとって定番だった、x = x + ( tx – x ) * speed の式をそろそろ卒業せにゃあかんということなのかなぁ・・・ 数学メンド臭いなぁ。

これとかも資料

日記

とりあえず、簡易コンポーネントっぽい機構と、コマンドがそろったので、あとはコマンドに登録可能なアニメーション系を作れば、そろそろスクラッチ以外のサンプルが作れそうな気もしないでもないような。

しっかし、うちのパソコンだとFlex2もFlash9もコンパイルが遅い遅い。やってられませんがな。