memo.xight.org

日々のメモ

TableTools - Webページ上の表を任意列でソートできる Firefox Extension

Reference

Mingyi's FireFox Extension to sort/filter/copy HTML tables - TableTools
http://www.mingyi.org/other/tabletools.html

Mingyi's FireFox Extension for sorting HTML tables - TableSort
http://www.mingyi.org/other/tablesort.html

via

窓の杜 - Webページ上の表を任意列のクリックでソートできるFirefox拡張「TableSort」
http://www.forest.impress.co.jp/article/2006/05/24/tablesort.html

3キャリア対応QRコードの作成法

Summary

キャリア毎に異なるQRコード仕様[2004-12-16-5]に対応するためのQRコード生成方法.

ポイント

・電話帳登録のための開始タグが Docomo が MECARD: で au と vodafone が MEMORY:
・DoCoMo は改行しないで,タグ (項目) の終わりに セミコロン をつかう.
  (MECARD:に対するセミコロンを最後につけるので,一番最後はセミコロンが二つになる)
  au,Vodafoneは項目ごとに改行していく。
・メールアドレスのタグが DoCoMo がアドレス複数でもEMAIL:
  au,VodafoneはMAIL1: MAIL2: と数字が増えていく。
・タグ名と項目の関係は DoCoMo と au, vodafone で非共通

Sample

DoCoMo
MECARD:N:名前(姓),名前(名);SOUND:半角カナ読み(姓),半角カナ読み(名);TEL:電話番号;EMAIL:メールアドレス;NOTE:メモ;;
au,Vodafone
MEMORY:
NAME1:名前
NAME2:半角カナ読み
MAIL1:メールアドレス1
TEL1:電話番号1
TEL2:電話番号2

Reference

Shuta.net - 2005-08-08 - 携帯3社対応電話帳QRコードの作り方 (NTTDoCoMo,au,Vodafone)
http://shuta.net/?e=265

指定した日時までの時間を表示するスクリプト "countdown.js" と使用法

Summary

YAPC::Asia 2006のカウントダウンで使われていたスクリプトを見てみた.

countdown.js

function toCountString(sec) {
	if (sec <= 0) {
		return '00:00:00';
	}
	var day = Math.floor(sec / (60*60*24));
	var hour = Math.floor(sec % (60*60*24)/(60*60)).toString().replace(/^(\d)$/, '0$1');
	var min = Math.floor(sec % (60*60*24) / (60) % 60).toString().replace(/^(\d)$/, '0$1');
	var sec = Math.floor(sec % (60*60*24)%60%60).toString().replace(/^(\d)$/, '0$1');
	return day + 'days ' + hour + ':' + min + ':' + sec;
}

function updateCountdown(id, m, c) { 
	var node = document.getElementById(id);
	if (!node) {
		return false;
	}
	for (var i = 0; i < node.childNodes.length; i++) {
		node.removeChild(node.childNodes[i]);
	}
	var count = toCountString(Math.floor((m - c)/1000));
	node.appendChild(document.createTextNode(count));
}


HTML

<script type="text/javascript" src="countdown.js">
<div id="countdown"></div>
<script type="text/javascript">
	updateCountdown('countdown', new Date('March 29,2006 00:00:00'), new Date());
	setInterval("updateCountdown('countdown', new Date('March 29,2006 00:00:00'), new Date())", 1000);
</script>


複数のカウントダウンに対応する

原始的にやってみると以下のようになる.
<div id="countdown-1"></div>
<div id="countdown-2"></div>
<div id="countdown-3"></div>
<script type="text/javascript">
	updateAllCountdown();
	setInterval("updateAllCountdown()",1000);
	
	function updateAllCountdown(){
		updateCountdown('countdown-1', new Date('June 22,2006 00:00:00'), new Date());
		updateCountdown('countdown-2', new Date('October 1,2006 00:00:00'), new Date());
		updateCountdown('countdown-3', new Date('March 18,2007 00:00:00'), new Date());
		return true;
	}
</script>