SQLの窓

2010年11月27日


Google Earth Sky : アンドロメダとイータ・カリーナ

Google Sky はいまいち使え無いので、Google Earth Sky にしました。

Installed Plugin Version: Loading...
以下のコードは Google のサンプルの余計な部分を省いて、日本語で
コメントを入れています。
<script src="http://www.google.com/jsapi" type="text/javascript"></script>
<script type="text/javascript">
if ( !window['lightboxTool'] ) {
	window.lightboxTool = {};
}
lightboxTool.addEvent = function( obj, evt, callback_func ) {
	if ( obj.attachEvent ) {
		obj.attachEvent( "on" + evt , callback_func );
	}
	else {
		obj.addEventListener( evt , callback_func , false );
	}
}
// Window ロード後のエントリポイント
function init_sky() {
	google.earth.createInstance('map3d', initCallback, failureCallback);

}
lightboxTool.addEvent(window, 'load', init_sky);

	var g_earth;
	var placemark;

	// API のロード
	google.load("earth", "1");

function initCallback(instance) {

	g_earth = instance;

	// 全体を表示
	g_earth.getWindow().setVisibility(true);

	// コントロール追加
	g_earth.getNavigationControl().setVisibility(g_earth.VISIBILITY_AUTO);

	// Sky モードに切り替え
	g_earth.getOptions().setMapType(g_earth.MAP_TYPE_SKY);

	// ズームインの3秒後にアンドロメダへ移動
	setTimeout(function() {
		// 現在の移動速度を取得( たぶん 1 )
		var oldFlyToSpeed = g_earth.getOptions().getFlyToSpeed();

		// 移動速度を設定
		g_earth.getOptions().setFlyToSpeed(.2);

		// アンドロメダへの移動
		move001();

		// 保存していた移動速度を戻す
		g_earth.getOptions().setFlyToSpeed(oldFlyToSpeed);

		}, 3000);


	// バージョンの表示
	document.getElementById('installed-plugin-version').innerHTML =
	g_earth.getPluginVersion().toString();
}

function failureCallback(errorCode) {
}

// アンドロメダへの移動
function move001() {
	// 移動先の位置決定
	var lookAt = g_earth.getView().copyAsLookAt(g_earth.ALTITUDE_RELATIVE_TO_GROUND);
	lookAt.set(41.28509187215, -169.2448684551622, 0,
		g_earth.ALTITUDE_RELATIVE_TO_GROUND, 262.87, 0, 162401);

	// 移動
	g_earth.getView().setAbstractView(lookAt);
}

// 
function move002() {

	// 現在の移動速度を取得
	var oldFlyToSpeed = g_earth.getOptions().getFlyToSpeed();
	// 移動速度を設定
	g_earth.getOptions().setFlyToSpeed(.5);

	var lookAt = g_earth.getView().copyAsLookAt(g_earth.ALTITUDE_RELATIVE_TO_GROUND);
	lookAt.set(-59.65189337195337, -18.799770300376053, 0,
		g_earth.ALTITUDE_RELATIVE_TO_GROUND, 0, 0, 36817);

	// 移動
	g_earth.getView().setAbstractView(lookAt);

	// 保存していた移動速度を戻す
	g_earth.getOptions().setFlyToSpeed(oldFlyToSpeed);


}

</script>
<div id="map3d" style="width: 500px; height: 380px;"></div>
<br>
<div>Installed Plugin Version: <span id="installed-plugin-version" style="font-weight: bold;">Loading...</span></div>
<input type="button" value="アンドロメダ" onclick="move001()">
<input type="button" value="イータ・カリーナ" onclick="move002()">


posted by lightbox at 2010-11-27 10:33 | Google | このブログの読者になる | 更新情報をチェックする

2010年11月26日


Google Sky

▼ 現在はこちらで
Google Earth Sky : アンドロメダとイータ・カリーナ


▼ Google Maps JavaScript API v3 では利用できないようです。 
どうもまだこことの座標の対応が良く解らないのですが、
とりあえずサンプルコードです
<script src="http://maps.google.com/maps?file=api&amp;v=2&amp;key=ABQIAAAADuryzsZi1CenwhafsPEvzBSbGSx1T4hjVj7Av4789V9PKQ2AYxT2CSDrxNJ_g53ReD4HuyWKucwG1w"
      type="text/javascript"></script>
<script type="text/javascript">
if ( !window['lightboxTool'] ) {
	window.lightboxTool = {};
}
lightboxTool.addEvent = function( obj, evt, callback_func ) {
	if ( obj.attachEvent ) {
		obj.attachEvent( "on" + evt , callback_func );
	}
	else {
		obj.addEventListener( evt , callback_func , false );
	}
}
function window_load() {
    var map = new GMap2(document.getElementById("sky_map"), {
        mapTypes : G_SKY_MAP_TYPES
        });

    map.setCenter(new GLatLng((69.03321086259241),(-31.1407470703125+62.3)), 7);
    map.addControl(new GLargeMapControl());
    map.addControl(new GMapTypeControl());      

}
function window_unload() {
	try {
		GUnload();
	}
	catch(e){}
}
lightboxTool.addEvent(window, 'load', window_load);
lightboxTool.addEvent(window, 'unload', window_unload);


</script>
<div id="sky_map" style="width: 600px; height: 400px; overflow: hidden"></div>


タグ:Google Sky google
posted by lightbox at 2010-11-26 16:36 | Google | このブログの読者になる | 更新情報をチェックする

JavaSctipt : ユーザ用(名前空間付き)イベント追加メソッドの作成

IE9 になると、addEventListener が追加されますが、それまでは以下のような
実装が一般的です。但し、既存の他の関数名と同じにならないように
"lightboxTool" という名前空間を作成しています。
if ( !window['lightboxTool'] ) {
	window.lightboxTool = {};
}
lightboxTool.addEvent = function( obj, evt, callback_func ) {
	if ( obj.attachEvent ) {
		obj.attachEvent( "on" + evt , callback_func );
	}
	else {
		obj.addEventListener( evt , callback_func , false );
	}
}

以下は、ウインドウのロードとアンロード時のイベントの登録です。
( Opera の unload では、ページを移動した時に実行されます )
function window_load() {
	alert("window_load");
}
function window_unload() {
	alert("window_unload");
}
lightboxTool.addEvent(window, 'load', window_load);
lightboxTool.addEvent(window, 'unload', window_unload);



タグ:JavaSctipt
posted by lightbox at 2010-11-26 14:38 | JavaScript DOM | このブログの読者になる | 更新情報をチェックする

2010年11月17日


Firefox でのクッキーのメンテナンス( 標準で利用できるツールの場合 )

標準で利用できるツールで可能なのは、クッキーエントリ単位の削除です。
そのドメイン単位で全て削除も可能ですし、Firefox 全体も可能です。

標準で利用できるツールは、オプションから「プライバシー」タブを開いて
「Cookie を個別に削除」をクリックします。
( ※ 上部のコンボボックスが、「履歴を記憶させる」とした場合です )

Firefox_cookie_tool0
※ 「履歴を一切記憶させない」にすると、利用できません。
※ 「記憶させる履歴を詳細設定する」にすると、「Cookieを表示」ボタンが現れます

※ このウインドウは単独で動作するので、一つ前のオプションウインドウを閉じる事ができます
Firefox_cookie_tool

ページ単位で一括削除はできないので、選択して詳細を表示させて、パス
を確認しなが削除が可能です。このウインドウは、FirebugFirecookie
からも起動できます。

Firefox_cookie_tool2

有効期限が指定されない、「セッション終了時」に削除されるクッキー
を作成した後表示させるには、ツリーをいったん閉じてからもう一度
開いて下さい。

Firefox_cookie_tool3

Firefox_cookie_tool4


関連する記事

Firefox で簡単にクッキーを削除する方法


posted by lightbox at 2010-11-17 10:15 | Firefox | このブログの読者になる | 更新情報をチェックする

2010年11月12日


Firefox で簡単にクッキーを削除する方法

Firebug をインストールしてから、Firecookie をインストールします。

Ie_cookie2
Cookies タブで Firecookie を有効にします


Ie_cookie3
Cookies メニューでは一括で表示しているクッキーを全て削除できます


Ie_cookie4
右クリックで個別に削除できます。


関連する記事

IEのクッキーをドメイン単位で削除する方法


posted by lightbox at 2010-11-12 13:44 | Firefox | このブログの読者になる | 更新情報をチェックする

IEのクッキーをドメイン単位で削除する方法

▼ この記事は古い記事です


Ie_cookie

1) IEのクッキー をダウンロードして実行すると、クッキーのフォルダが開かれます。
※ 現在でも開かれますが、ドメインの情報はテキストの中にあり、利用するのは難しいです

2) IE を全て閉じて下さい

3) エクスプローラで該当するドメインを探します。

※ ここでは、lightbox は、ログインユーザー
※ yahoo.co がドメイン( サブドメインは別ファイルになります )
※ [1] [2] と複数になっている場合があります

4) 普通のファイルとして削除します。


関連する記事

Firefox で簡単にクッキーを削除する方法


posted by lightbox at 2010-11-12 13:21 | IE | このブログの読者になる | 更新情報をチェックする

2010年11月08日


区切り文字を使った、入力文字列の連結

一番理解しやすいのは、CSV ですが、入力が4つあるとして、それぞれが
a b c d という変数に入っているとします。

全部入力されているのなら、全てを連結するだけなので、
x = a;
x += "," + b;
x += "," + c;
x += "," + d;

なので、初回だけが特殊である事が解ります。ですから、通常は入力が
省略される場合があるので、以下のように書きます。
x = "";

// a に値がある場合
if ( a != "" ) {
	// 最初の入力なので
	x += a;

}

// b に値がある場合
if ( b != "" ) {
	// 前に入力が無い場合は最初の入力になります
	if ( x != "" ) {
		x += ",";
	}
	x += b;
}
// c に値がある場合
if ( c != "" ) {
	// 前に入力が無い場合は最初の入力になります
	if ( x != "" ) {
		x += ",";
	}
	x += c;
}
// d に値がある場合
if ( d != "" ) {
	// 前に入力が無い場合は最初の入力になります
	if ( x != "" ) {
		x += ",";
	}
	x += d;
}

が一般的な書き方となります。
これは、どの入力が省略されても成り立つ方法です。

以下は、JavaScript の配列で整理したのです。
x = "";
var a = ["1","","","4"];
for( i = 0; i < a.length; i++ ) {
	if ( a[i] != "" ) {
		// 前に入力が無い場合は最初の入力になります
		if ( x != "" ) {
			x += ",";
		}
		x += a[i];
	}
}

この場合は、"," を使った CSV でしたが、" and " を使った
SQL の条件用の文字列を作る場合も同様です。


posted by lightbox at 2010-11-08 15:51 | プログラミング・仕様等 | このブログの読者になる | 更新情報をチェックする

2010年11月04日


メール用「非日本語」正規表現フィルタ

最近意図的な先頭文字の記号が増えました( 2010/11/4 : 文字を追加しました )。なんとかして読ませたいんでしょうが、文字増やすだけです。いったい誰が ^ や | を先頭に使うと思っているのでしょうか・・・・

基本必要なメールの Subject は一部を除いて日本語で始まるので、必要なドメインや関係ユーザをまず選択振り分けしてから最後にこれを入れています。
^[0-9A-Z.$'"~\*\-\\\?\/#_`=!\,|\^{]
Subject の先頭1文字が日本語でなければ「非日本語」フォルダへ移動です。





posted by lightbox at 2010-11-04 08:35 | 記録 | このブログの読者になる | 更新情報をチェックする

2010年11月03日


JSON と文字列の関係

外部より JSON フォーマットのデータを取得した時点では「文字列」ですから、それを JavaScript で使うようにする方法は一般的ですが、そこから「先」は結構多用で一般的では無いような気がします。

そもそも、JSON の a["a2"] は、連想配列のように見えますが、特殊文字で定義されたプロパティを参照する為の書式ですし。

また、eval 使うにあたって、配列はそのままであるとか、for in も結構実際に使うと面倒な構文であったりします。

JavaScript は、自分が知ってる言語の中では、最も難解で不可思議な機能を持ったものだと思っています。
<script type="text/javascript">
function scriptTest(evt) {

	// JSON 文字列を実体に変える一般的では無い方法
	var x = (new Function( 'return {"a1":"Finction","a2":"オブジェクトの","a3":"テスト"}' ))();
	alert(x.a1+x.a2+x.a3);

	// JSON 文字列
	var str_json = '{"a1":1,"a2":2,"a3":3}';

	// オブジェクト化
	var a = eval('(' + str_json + ')');

	// プロパティとして参照	
	alert( a.a2 );

	// 特殊文字のプロパティを参照する書式
	alert( a["a2"] );

	// 配列文字列
	var arr_str = '["a1","a2","a3"]';

	// 配列化
	a = eval(arr_str);

	// 配列として参照
	alert( a[1] );

	// 文字列リストに変換
	alert( a.join(",") );

	// リスト文字列を配列化
	a = 'a1,a2,a3'.split(",");

	// 配列として参照
	alert( a[1] );

	// 文字列リストに戻す
	alert( a.join(",") );

	// 配列を、JSON 文字列に変換
	var str = "";
	for( i = 0; i < a.length; i++ ) {
		if ( i != 0 ) {
			str += ",";
		}
		str += '"'+i+'":"'+a[i] + '"';
	}

	// オブジェクト化
	a = eval('({' + str + '})');

	// 特殊文字のプロパティを参照
	alert( a["1"] );

	// オブジェクト内のプロパティの一覧
	for( x in a ) {
		alert( x + ":" +a[x]);
	}
}
</script>
<input type="button" value="実行" onclick='scriptTest(event);'>



タグ:JSON javascript
posted by lightbox at 2010-11-03 16:15 | JavaScript オブジェクト | このブログの読者になる | 更新情報をチェックする
Seesaa の各ページの表示について
Seesaa の 記事がたまに全く表示されない場合があります。その場合は、設定> 詳細設定> ブログ設定 で 最新の情報に更新の『実行ボタン』で記事やアーカイブが最新にビルドされます。

Seesaa のページで、アーカイブとタグページは要注意です。タグページはコンテンツが全く無い状態になりますし、アーカイブページも歯抜けページはコンテンツが存在しないのにページが表示されてしまいます。

また、カテゴリページもそういう意味では完全ではありません。『カテゴリID-番号』というフォーマットで表示されるページですが、実際存在するより大きな番号でも表示されてしまいます。

※ インデックスページのみ、実際の記事数を超えたページを指定しても最後のページが表示されるようです

対処としては、このようなヘルプ的な情報を固定でページの最後に表示するようにするといいでしょう。具体的には、メインの記事コンテンツの下に『自由形式』を追加し、アーカイブとカテゴリページでのみ表示するように設定し、コンテンツを用意するといいと思います。


※ エキスパートモードで表示しています

アーカイブとカテゴリページはこのように簡単に設定できますが、タグページは HTML 設定を直接変更して、以下の『タグページでのみ表示される内容』の記述方法で設定する必要があります

<% if:page_name eq 'archive' -%>
アーカイブページでのみ表示される内容
<% /if %>

<% if:page_name eq 'category' -%>
カテゴリページでのみ表示される内容
<% /if %>

<% if:page_name eq 'tag' -%>
タグページでのみ表示される内容
<% /if %>
この記述は、以下の場所で使用します


Windows
container 終わり

フリーフォントで簡単ロゴ作成
フリーフォントでボタン素材作成
フリーフォントで吹き出し画像作成
フリーフォントではんこ画像作成
ほぼ自由に利用できるフリーフォント
フリーフォントの書体見本とサンプル
画像を大きく見る為のウインドウを開くボタンの作成

Android SDK ポケットリファレンス
改訂版 Webデザイナーのための jQuery入門
今すぐ使えるかんたん ホームページ HTML&CSS入門
CSS ドロップシャドウの参考デモ
PHP正規表現チェッカー
Google Hosted Libraries
cdnjs
BUTTONS (CSS でボタン)
イラストAC
ぱくたそ
写真素材 足成
フリーフォント一覧
utf8 文字ツール
右サイド 終わり
base 終わり