カタン: 2007年2月アーカイブ
興味深いサイトについてネット上でニュースになっていたので紹介いたします。
ブイモールという会社が運営しているaguseというサイトです。
Webサイトの情報やメール送信者の情報を簡単に入手する情報です。
Webサイトについてはurlで、メール送信者についてはメールのヘッダーで情報が入手できます。
入手できる情報は、サイトであれば、「IPアドレス」「スクリーンショット」「ドメイン情報」等です。また、企業提供によるブラックリストとの照合で安全なサイトかどうかの判定もしてくれます。
メールでの入手情報は「送信マシン名」「受信マシン名」「送信経路偽装の疑い」等です。
さすがにすべてのサイトやメールについてすべての情報が得られるわけではないようです。
わたしもまだほとんど使っていないのですが、怪しいサイト、怪しいメールについては、まずこちらで調査してみると良いかもしれないですね。
海外にもこういうサイトはあるようですし、あるいは海外サイトの方が充実していそうですが、日本語だというのが好印象です(英語できないので……)。
Flashではマウスクリックをイベントとしてキャッチことができます。
ただし、ダブルクリックを受け取るというイベントが用意されていません(ActionScript3.0では新たに加わるようです)。
つい先日アップしたFlash素材image10ではダブルクリックと普通のクリックで動作を変えています。
その仕組みについてお話いたします。
まず、ダブルクリックのイベントキャッチを実現する際、最初に思いつくのは、以下のようなアルゴリズムです。
1.クリック時に現在時間を取得する
2.クリック時、取得済みの時間と現在時間との差異によって条件分岐する
たとえば、差異が100ms未満ならダブルクリック、100ms以上なら普通のクリックと判断する。
スクリプトは以下のようになります。
//スクリプトここから(ダブルクリック検知)
var duration:Number=100;//ダブルクリック時間定数msec
var countN:Number=0;//時間取得
clickA.onPress=clickSD;//clickAはクリックを検出したいインスタンス名
//クリック検知用の関数。
function clickSD():Void{
if(getTimer()-countN<duration){
//ダブルクリック処理
}
else{
//一回だけのクリック処理
}
countN=getTimer();
}
//スクリプトここまで(ダブルクリック検知)
これで確かにダブルクリックを検知できますが、一つ欠点がございます。
それは「ダブルクリックの処理をする前に必ず普通のクリックの処理を行ってしまう」というものです。
ということで、その欠点を解消するスクリプトを考えました。配布した素材には解消後のスクリプトを使用しています。
そのスクリプトについてはまた近日中に掲載します。
質問がありましたら質問掲示板にどうぞ。素材のスクリプトについての質問も技術的な指摘もお待ちしています。
流行に疎いわたしではありますが、さすがにエアギターというものは知っています(知ったのは微妙に流行が過ぎたからですが)。
素直に面白いなと思いました。こういう自分の表現手段もあるのだなって。
つい先日、初めて、エアボーカルというものの存在を知りました。
ようするに流れている歌に合わせて歌っている振りをするというもの。
「学校へ行こう!MAX」という番組が有名みたいですね。
これも一つの表現として面白いですよね。
ということで、以下に動画のリンクを張ってみました。
海外ものです。
誰にだってこれまでなにかをコレクションした経験があるかと思います。
ビックリマンカードだったりとか、ポケモンやムシキングだったりとか、セミの抜け殻だとか、高級車のエンブレムだったりとか……。
先日、人づてにとあるカードの存在を聞きました。
ラウンドワンが発行しているというPROBOWLERS CARDというものです。
ラウンドワンはわたし自身も遊んだことがあるので知っていましたが、そのカードについては初耳でした。
プロ野球選手やJリーガーについては見たことがあるけれど、まさかボウリングの選手までカードになっているとは……。
ラウンドワンのサイトにカードについての情報があると聞き、さっそく見てみました。
ものすごかったです……。個人的にはかなり好きな部類に入ります。
生まれてから見てきた数あるカードの中でインパクト一位かもしれないです。
(特に女子プロ選手カードの)バラエティ溢れすぎる撮影シチュエーションは誰が考えたのでしょうか?
ラウンドワンのスタッフが考えたならば、よくこれを撮影依頼できたなと……。
撮影の拒否権はなかった? 喜んでやった?
ファンはこれを見てどのような感想を抱くのかしら?
全262種類もあるので、コンプリートはかなり大変そうです。
しかも、ボールを買ったりとか投げ放題を利用したりとか、入手条件がそれなりにハードル高いんですよね。
さすがにコンプリートを目指そうとは思わないですが、ちょっと興味があります。
実物が見てみたいです。
ある種、ものすごいクリエイティブだと感じました。
やっぱりなんでもこれぐらいはやらないとですねなんて。
ラウンドワンホームページ
PROBOWLERS CARD2007
Wikipedia 賭博黙示録カイジ
Wikipedia セミ
Wikipedia ビックリマン
Wikipedia ポケットモンスター
Wikipedia 甲虫王者ムシキング
C言語のソート紹介シリーズ、挿入ソート、シェルソート、選択ソートと来て今回はバブルソート(基本交換法)を紹介いたします。
計算時間が遅いため実用的ではないです。
ただ、非常に簡潔な仕組みのため、ソートという操作の概念を理解しやすいかと思います。
たとえば、最後尾に最も大きい値、先頭に最も小さい値を持ってきたい場合……先頭とその次を比べて順番が逆だったら入れ替え、先頭の次とそのさらに次を比べて順番が逆だったら入れ替え……これを最後まで繰り返すと最後尾に最も大きな値が来ます。再び同じことを今度は先頭から最後尾の一つ前まで繰り返せば、最後尾に一番大きい数、最後尾の一つ前に二番目に大きい数が来ます。これを全体が順番通りになるまで繰り返すのがバブルソートです。
データが「85426371」のときの数値の変化例は以下の通りです。
・左から順番に隣り合った文字同士を比べる。大きい方が右に行くように交換していく。結果、一番大きい数値が一番右に来る。「5426371(8)」
・残った中で一番大きい数値が残った中の一番右に来る。「425361(7)8」
・残った中で一番大きい数値が残った中の一番右に来る。「24351(6)78」
・残った中で一番大きい数値が残った中の一番右に来る。「2341(5)678」
・残った中で一番大きい数値が残った中の一番右に来る。「231(4)5678」
・残った中で一番大きい数値が残った中の一番右に来る。「21(3)45678」
・残った中で一番大きい数値が残った中の一番右に来る。「1(2)345678」
以下、C言語で書いたバブルソートのプログラムです。
ソートを行う関数部分のみです。
/* バブルソート関数ここから */
/* data[]:データ格納配列 num:配列要素数 */
void sort(int data[],int num){
int i,j,temp;
for(i=num-1;i>0;i--){
for(j=0;j<i;j++){
if(data[j]>data[j+1]){
/*データの入れ替え*/
temp=data[j];
data[j]=data[j+1];
data[j+1]=temp;
}
}
}
}
/* バブルソート関数ここまで */