-->

« 2006年12 月 | メイン | 2007年2 月 »

17 posts from 2007年1 月

2007年1 月30日 (火)

第百二回 仮想化 前編(録音失敗ぎみ)

そこにあるのに、そこにない。

あったかもしれないけど、ないかもしれない。

脳内革命まっしぐらの仮想かについて、ぐだぐだ語る。

--
今回、録音失敗気味!

ご容赦!

 

2007年1 月26日 (金)

第101回 Webとユーザーインターフェース

ネットの海は広大なのよと人は言う。
でも普段の生活では、ネットの広大さを肌で感じることは少ない。

広大なネットの海を航海するための俺たちの船、それがWe bブラウザー。
Webブラウザーのインターフェースにあらたな可能性はないのだろうか?

 



2007年1 月23日 (火)

第百回 1999年以後 後編

後編、お贈りします。

 

忘れていたのでジェントルマン・ルーザーを更新

長らく更新を忘れていたジェントルマン・ルーザーを大量更新しました。

いやー、これだけ沢山のお便りを頂いていたんですねー。
ご紹介せず申し訳ありません。

また懲りずに送って下さいー

2007年1 月22日 (月)

【Arcadia】アルカディア号、操縦桿と出会う

未来的なインターフェースには未来的なデバイスを

まずはWii Remote

お馴染みWiin Remoteを使って実現。
IRボックスはトグサ特製品

さらにタッチパネルでもテスト

浮遊感のある表現とタッチパネルは親和性が高いようです

2007年1 月21日 (日)

【アルカディア】Webページのサムネール生成コード

トグサです。
ケイスがつくっている面白すぎるアルカディアですが、
サムネール生成サーバが動いているサーバは、
MacMini上のParallelsで動いているUbuntuなので、重い&偶に落ちます。
まぁそれは仕方無いのですが、問題は、その度に私の前(MacMiniがある)に来ては、
「また落ちた!重い!もー!全画面からもどせねー!」と叫んで行く事です!

毎日これでは、またシリコン鉱床に埋もれかねないので、
もうちょっと安定し、さらに簡易キャッシュ機能をもたせたサムネール生成サーバを30分くらいでつくりました。

Windowsマシン+CrenaHtml2jpgApache2PHPです。

すべて普通にインストールして、このPHPスクリプトを置きます。

<?php
$crena_exe_path = "C:\\ht_cgi\\crena\\CrenaHtml2jpg.exe";
$crena_image_quarity = 85;
$crena_timeout_sec = 15;
$cache_timeout_sec = 60 * 5;
$image_data_path = "C:\\ht_cgi\\img\\";

function safe_cmd_sanitize_string( $_str )
{
    return strtr( $_str, "\\>\"&<| \0", "________" );
}

function conv_intval( $_str, $_min, $_max, $_err_default )
{
    $val = intval( isset($_GET[$_str]) ? $_GET[$_str] : "0" );
    return ($val < $_min || $_max < $val) ? $_err_default : $val;
}

$cache_str = "";
$cache_str .= "_" . ( $url = safe_cmd_sanitize_string( $_GET['url'] ) );
$cache_str .= "_" . ( $width   = conv_intval( 'width', 32, 1280, 640 ) );
$cache_str .= "_" . ( $height  = conv_intval( 'height', 24, 1024, 480 ) );
$cache_str .= "_" . ( $dwidth  = conv_intval( 'dwidth', 32, 1280, 1024 ) );
$cache_str .= "_" . ( $dheight = conv_intval( 'dheight', 24, 1024, 768 ) );

$file_name = $image_data_path . md5( $cache_str ) . ".jpg";
if( !file_exists( $file_name ) || $cache_timeout_sec < (time() - filemtime( $file_name )) )
    system( "$crena_exe_path -o\"{$file_name}\" -fjpeg -w{$dwidth}x{$dheight} -s{$width}x{$height} -q$crena_image_quarity -t$crena_timeout_sec -u$url" );

header("Content-type: image/jpeg");
readfile( file_exists( $file_name ) ? $file_name : "{$image_data_path}na.jpg" );

?>

後は、こいつを、
http://localhost:8088/index.php?url=http%3A%2F%2Fwww.hogehogex.jp%2F&width=640&height=480
みたいにして呼べばOK。

CrenaHtml2jpgが外部呼出しを前提につくってあるので、楽につくれました。ありがたいですね。どうやら、あちら側でも盛んにつかわれてるようです。

あとは、PHPの設定を、他の余計なコードが実行されないように設定したほうがいいですね。

【アルカディア】ネットの海を表現してみました

ケイスです。
土曜日といってもやらなきゃいけないことが沢山あるのですが、なかなか進まないため、現実逃避でトグサと二人していろいろやってしまいました。

今回は3D表示に挑戦。
もちろんJavaScriptのみでチャレンジです。

こんな感じのクラスを作って

var system3D = new function(){
this.display = new Object();
this.display.width = 1024;
this.display.height=1024;
this.display.center_x = 512;
this.display.center_y=428;
this.display.zoom = 10;
this.elements = new Array();
this.add = function(el){
this.elements.push(el);
};
this.draw = function(){
for(var i=0;i this.elements[i].display();
};

this.camera = new Object();
this.camera.x = 0;
this.camera.y = 0;
this.camera.z = 0;
this.camera.apply = function(){
this.draw();
};
};

//3Dイメージクラスのコンストラクタ
function Image3D(){
this.x=0;
this.y=0;
this.z="";
this.w=600;
this.hw=300;
this.h=600;
this.hh=300;
this.img='undefined';
this.load = function(el,url){
this.img = document.createElement("img");
this.img.style.position = "absolute";
this.img.src = url;
el.appendChild(this.img);
system3D.add(this);
};
this.display = function(){
if(this.z- system3D.camera.z > 0 ){
var mag = system3D.display.zoom / (this.z - system3D.camera.z);
this.img.style.left = ( this.x-this.hw- system3D.camera.x ) * mag
+ system3D.display.center_x ;
this.img.style.top = ( this.y-this.hh - system3D.camera.y ) * mag
+ system3D.display.center_y;
this.img.style.width = this.w * mag ;
this.img.style.height = this.w * mag ;
this.img.style.zIndex = 1000000-this.z;
this.img.style.display = "block";

}else{
this.z += 300;
this.img.style.zIndex = 1000000-this.z;
}
};
};

こんな風に使います

var testImg = new Image3D();
testImg.load($('placeholder'),'http://hogehoge');
testImg.x = 100;
testImg.y = 0;
testImg.z = 10+i*2;
testImg.display();

こんなにシンプルでもちゃんと動作するのがJavaScriptの面白いところです。
まさに富豪的プログラミング

WindowsマシンのPentiumD 2GHzでテストしたらサクサク動きました。
まだFirefoxとSafariでしか動かないんですけどね。

今回はお遊びということで、実用性を無視してサイトを3D空間上にちりばめて、"ネットの海"を航海しているというイメージにしてみました。背景とかモロ宇宙だし。これはLeopardに搭載される"タイムマシン"機能へのオマージュです。

さて、このあとどうするか
僕もいろいろアイデアがあるのですが、なにか面白いことを思いついたらどしどしメール下さい
近々「インターネット探索」をテーマに番組を作る予定です

2007年1 月19日 (金)

第九十九回 1999年以後 前編

P1030324

1999年の7の月。

空から恐怖の大王が降ってくる。

アングロモアの大王を復活させるために。

その前後、マルスは幸福の名の下に支配するだろう。

 

2007年1 月18日 (木)

【真のIE】コード名:アルカディアとしてバージョンアップ


ネットの海は俺の海。
となれば、そこを航海する道具の名前は自然にアルカディア号。
とりあえずコードネームはこれで。

バージョン0.2としては、前回処理に苦労していたポップアップを半透明を使うことで解決。より幻想的な感じになった。

※このポッドキャストは松本零士先生に敬意を表しています

2007年1 月16日 (火)

第九十八回 電話仕掛けのアップル 後編

後編、お贈りします。

 

関連書籍-Kindle

iTunesStoreで評価する

フォトアルバム

他のサービス

Twitter
powered by TypePad
登録年月 2005年10月