例えば10枚のイメージがあって、それを10個のオブジェクトにばらばらに貼っつけたい場合、(リロード/タイマーがかかる度にオブジェクトのイメージをシャッフルさせたいということ)どうすればいいのかね?という問題。

フツーに0~10からランダムに整数を取得して、それを10回繰り返すと同じイメージが2つ以上現れてしまう可能性が大です。絶対にイメージがかぶらないようにするにはどーすればよいのか?という問題。

どう検索すればよいのかわからずごにょごにょしましたが、「配列をランダムに生成する」、「Fisher-Yates」という方法があることを知りました。

スクリプトはこんな感じ。ここでは仮に配列の数を10コにしています。

var list:Array=[0,1,2,3,4,5,6,7,8,9]; 

var i:int=list.length;
while(i--){
var j:int=Math.floor(Math.random()*i);
var t:Number = list[i];
list[i] = list[j];
list[j] = t;

}



かなり行数が少ないキレイなスクリプトですが、何をやってるのかイマイチわからず。
list[i]の値、list[j]の値、iの値、jの値、listをトレースするとこんなかんじになりました。

i=9
j=8
list[i]=8
list[j]=9
list=0,1,2,3,4,5,6,7,9,8
i=8
j=3
list[i]=3
list[j]=9
list=0,1,2,9,4,5,6,7,3,8
i=7
j=5
list[i]=5
list[j]=7
list=0,1,2,9,4,7,6,5,3,8
i=6
j=0
list[i]=0
list[j]=6
list=6,1,2,9,4,7,0,5,3,8
i=5
j=1
list[i]=1
list[j]=7
list=6,7,2,9,4,1,0,5,3,8
i=4
j=0
list[i]=6
list[j]=4
list=4,7,2,9,6,1,0,5,3,8
i=3
j=0
list[i]=4
list[j]=9
list=9,7,2,4,6,1,0,5,3,8
i=2
j=1
list[i]=7
list[j]=2
list=9,2,7,4,6,1,0,5,3,8
i=1
j=0
list[i]=9
list[j]=2
list=2,9,7,4,6,1,0,5,3,8
i=0
j=0
list[i]=2
list[j]=2
list=2,9,7,4,6,1,0,5,3,8


おおー。処理をする度に数字が入れ替わっているのがわかります。
つまり、

while(i--){ //配列の長さ(この場合は10)から(ゼロになるまで)1を引く。
var j:int=Math.floor(Math.random()*i); //「j」は0~(i-1)までの数字のどれか
var t:Number = list[i]; //「t」は配列のi番目の数字
list[i] = list[j]; //リストのi番目にj番目の数字を代入
list[j] = t; //リストのj番目にt(=i)を代入

}

という処理を繰り返しているのですね。

いろいろ詳しく載っているページも沢山ありますが、イマイチ原理が理解できなかったのでメモメモしました。



2010年2月 8日 11:17 | コメント(0) | トラックバック(0)|


流れゆくTwitterのつぶやきを眺めるためのブログパーツ、Tweet watcherを作りました。
下のウィンドウにツイッターIDを記入して、ボタンをクリックでコードがコピーされます。


あとは好きなところに⌘Vでペースト。で、



こんなふうに表示されます。

my tweet(入力したIDの人のつぶやき)、everyone's tweet(すべてのユーザーのつぶやき)、search(単語検索)の3つのモードに切り替えられます。
searchはアルファベット以外でやるとエラーになってしまいますのでご注意ください。
実装にあったては、swfjunkieさんのtweetrというライブラリを使わせていただきました。

いろんな言語で表示されるeveryone's tweetをぼんやり眺めたり、"avatar"とかで検索かけてみたりするとなかなか楽しいです。ユーザー名をクリックすると、その人のツイッターページに飛べます。

みなさんぺたぺたあちこちに貼ってください。
ご意見・ご感想お待ちしてまっす。


2010年2月 1日 12:09 | コメント(0) | トラックバック(0)|


写真美術館でやっている木村伊兵衛とアンリ・カルティエ=ブレッソン展にすべりこみで行ってきました(展示は2/7(日)まで)。
名前は聞いたことがある、という無知っぷりで行ったのですが、とてもよかったです。

写真がちょっともわってなるのはライカの特徴なのでしょうか。自分が知っている(と思っている)土地の50年前が切り出されたのを見ると、ちょっとどきっとします。知人の別の面を見たような。

私たちは時代性とメディアを頭のなかでごったにしているんだ、ということを感じました。
例えば、木村伊兵衛が撮った谷崎潤一郎の写真があったのですが、デジカメに収まる谷崎って全然想像がつかないです。村上春樹が「原稿用紙とペンでなければ谷崎の文章を書くのは困難だろう」と言っていたのを思い出したり。

カメラが現実を捉えきれないというのは、当時は思想的以前に技術的な問題としてあったと思う訳です。
でも技術が進歩して見たままに限りなく近い色と鮮明さでイメージを量産できるようになった今は、逆にスタイルとしてライカとかロモとかTiltShiftとかが流行ってますね。技術がどこまで進歩しても、やっぱりある視点がファインダーを通して切り取る以上、≠の関係性が変わることはないでしょうに。

未来から振り返ったときに、私たちの時代性を表象する視覚表現は何なのでしょうね。

ところで木村伊兵衛をIheeと書くとフレンチぽくてかっこいいですね。

2010年1月31日 19:55 | コメント(0) | トラックバック(0)|


東浩紀氏の初小説。(あ、モウラで連載してるやつだいぶ前から止まってますね。あれけっこう面白いのに)
一度さらっと読んで、むずかしくてようわからーんとなったのだけど、とりあえず現時点での感想を備忘録的に書いときます。

第一印象。筒井康隆っぽい。
読了してないのですが、パラレルユニバースネタとして、「夢の木坂分岐点」を彷彿とさせます。多分これだけだとジャンルとして確立もされていて、特に新鮮味はないのですが、実感としての「あったかもしれない別の人生」と、量子コンピューターによって生み出されるパラレルユニバースを重ねているところが面白いと思いましたです。
年を取ってだんだん自分にがっかりしてくると(多分してなくても)、別の人生というか、「あのとき取れた別の選択肢とその先にあったであろう可能性」に思いを馳せるようになります。ストーリーの上でそういう下地作りをしているから、量子コンピューターとか、自分の世界では生まれなかった子供とかが出てきても結構すんなり受け入れられます。

村上春樹氏を引用していたのはちょっとびっくりしました。まあでも春樹も二つの世界が関係しあって一つの物語を編んで行く、みたいなストーリーをよく書きますものね。でも春樹のばやいは、二つの世界は平行ではないなあ。あっちの世界とこっちの世界というか、あっちの出来事がこっちに現実として投影される、みたいな感じですよね。ねじまき鳥とか。
対して、クオンタム・ファミリーズのふたつだかみっつだかの世界は、あくまで可能性論として展開できるところに特徴と魅力がある気がします。

ポストモダンとか脱構築とか論じていた人が、小説を書くってすごくやりづらいんだろうなとおもいきや、結構さらっと「氷の柱を背中にいれられたよう」とかベタな表現を使うのだなと思いました。ああ、でもこれも確信犯的にわざとベタにしてるのかもですね。

ストーリーが開始される前に、資料としていくつかの文章が示されています。(こちらも小説の一部ですけど)個人的には、こういう資料だけがだーっと羅列されていて、読者がそれをパズルピースみたくはめてく小説を読んでみたいです。東氏の文章は、こういう記事っぽい書き方をしている時がもっとも魅力的に感じられるので。

SFって過去のジャンルというイメージでしたが、そこにあらたな一石を投じる作品になりそうです。

2010年1月24日 23:53 | コメント(0) | トラックバック(0)|


dior.jpg


エディット・ピアフ以来ひっぱりだこのMarion Cotillardが主演のムービーが、黒、赤、青と順次公開されています。

今は赤版のテーマソングがサイトで聞けます。歌/Marion Cotillard、作詞・作曲/Franz Ferdinandという豪華さ。Franz Ferdinandのグラムな感じというか、ちょっとイケナイ感じとMarion Cotillardのおフランスな色気がマッチしてて素敵です。

Where were you, when I needed you?
という歌詞が頭をぐーるぐーる。

2010年1月20日 23:59 | コメント(0) | トラックバック(0)|