iPod nano 4th & iTunes8

9月10日発表&発売の第4世代iPod nano。よさそうですね。
先代の四角い感じは好きになれなかったので、今回縦長になってよかった。
ボディも前後張り合わせから筒状になったし、2ndにほれ込んでいた私としては買いであります。
ってことで本日予約してきました。16GBモデル(オレンジ)
shuffleのオレンジ見て、あの色いいなぁ、と、思っていたのでまさに色、形、ともに納得です。
で、中身(機能)は・・・あんまり興味引く内容はないです(笑)
ジーニアスもなんだかなぁ、って感じ。
iTunes8で試してみたけど、どうも収集される曲の傾向がわからない。
使う気になれませんでした。
あと、iTunes8で気になったのはブラウザ表示でジャンルを隠せない事。
ジャンルってどうもしっくりこなくて。
1曲に複数ジャンルがくくりつけられればいいのに、と、思う。
storeでジャンルから絞込みかけると複数ジャンルで同じ曲が出てくるんでstoreではそうなってるみたいなのに・・・IDタグとの互換性なのかな?
ちょっと残念。
ついでに、iTunes8にアップデート後、アートワークのサムネイル作成で結構時間がかかる。これはまぁ、その後の表示が適度に速くなっていいと思った。

url上のクエリーをパースする関数。

例によって…何かに再利用できそうなのでメモしておく。

var ExLocation = new function(){
	var Q = new Object();
	var s = window.location.search.substring(1);
	var ql = s.split('&');
	for(var i=0;ql[i];i++){
		var pair = ql[i].split('=');
		if(Q[pair[0]]) Q[pair[0]].push(pair[1]);
		else Q[pair[0]] = new Array(pair[1]);
	}
	this.getQuery = function(key,index){
		if(! key) return Q;
		if(typeof(index)=='number'&&Q[key]) return Q[key][index];
		if(Q[key].length>1)return Q[key];
		else return Q[key][0];
	}
	this.setQuery = function(key,value){
		return Q[key]=value;
	}
	this.eachQuery=function(E){
		for(var x in Q){
			E(x,this.getQuery(x));
		}
	}
}

ヘッダ部で実行するだけ。
url中のパラメーター(キー=値)を解析し、値の取り出し等のメソッドを提供する。

メソッド

  • getQuery(key,index); クエリーを取り出す。
    • 引数が省略された場合クエリーの集合体を返す。
    • 第一引数でkeyを指定すると対応する値を返す。
    • 第二引数でindexを指定するとkeyの値のうちindex番目の値を返す。
    • 第二引数を指定せずに値が複数在るkeyの取り出しを行うと値の配列を返す。
  • eachQuery(func); クエリーを順にfuncで処理する。
    • funcに処理関数を指定する
    • funcには第一引数としてキーが、第二引数として値が渡される。

使用例-全てのクエリーを表示する。

ExLocation.eachQuery(function(key,value){
	alert(key+'::'+value);
});

使用例-特定キー(id)の値を取得する。

var result = ExLocation.getQuery('id');


7/18-スクリプト一部修正。

選択したHTMLソースを別ウィンドウ/タブに表示。(Firefox専用)

ページ上に表示されているHTMLソースコードを選択して別ウィンドウに表示するBookMarklet

javascript:var S=window.getSelection(); if(S.toString()){ var W=window.open('about:blank'); W.document.open(); W.document.writeln(S.getRangeAt(0).cloneContents().textContent); W.document.close(); }

>> サンプル

Webページ上に表示されているHTMLを実際に試したい場合、エディタなどにコピペ、ブラウザに表示してみるという手間がかかるが、このBookMarkletを使えばHTMLソース部分を選択しBookMarkletを実行するだけで新しいウィンドウをオープン(ブラウザの設定よっては別タブをオープン)し選択した内容で表示させてみる事ができる。

Howto、質問系の掲示板サイトなどに貼られているHTMLをテスト表示してみる時に!。

※選択状態か否かの判定に不備があったので一部修正-7/12

ノードツリーを順に処理する。

昨日http://d.hatena.ne.jp/Mars/20080617の続き。

ちょっとインターフェースを変更名前も変えた。
テキストノードを処理しないオプションもつけた。

// ノードツリーを順に処理する。
// nodeTree(対象element,func,option)
// option - true:テキストノードもfuncで処理する / false:しない
function nodeTree(T,E,option){
	var C = T;
	while(C){
		if(C.firstChild) C=C.firstChild;
		else if(C.nextSibling) C=C.nextSibling;
		else {
			if(C == T) return;
			while(C){
				if(C.parentNode == T) return;
				C = C.parentNode;
				if(C.nextSibling) {
					C=C.nextSibling;
					break;
				}
			}
		}
		if(C && (option || C.nodeType==1)) E(C);
	}
}

使用例 id=sampleの要素を頂点とするノードツリーの内容を表示

nodeTree(document.getElementById('sample'),
	function(O){
		alert(O.nodeName);
	},
	true);

ノードツリーを線形に扱う。

ちょっと都合があって作ったプチ関数。メモしとく。

// ノードツリーを線形に扱う。
// 初期化 var X=new nodeL(DOMNode);
// リストを進める X.next();//返値 次ノード/ツリー終了時はfalse
// 現在のノード X.C
function nodeL(T){
	var O = T;
	this.C = O;
	this.next = function(){
		if(! this.C) return this.C;
		if(this.C.firstChild) return this.C=this.C.firstChild;
		if(this.C.nextSibling) return this.C=this.C.nextSibling;
		if(this.C.parentNode == O) return false;
		return this.C=this.C.parentNode.nextSibling;
	}
}

使用例
ID=sampleのノードを頂点とするノードツリーを処理する
(頂点である ID=sampleのノード は処理しない)

var X=new nodeL(document.getElementById('sample'));
while(X.next()){
	if(X.C.nodeType==1)alert(X.C.nodeName);
}

(改行のみの)テキストノードを飛ばす、とかオプションを付けた方が便利か?そのうち必要があったらやる。

Vista用フォント「メイリオ」をXPで

XP用のメイリオが公開されたっていうんで、早速試してみた。

XP用「メイリオ」フォントも公開 - ITmedia NEWS


今までフォントのスムージングもOFFにしてたんで、
最初、ガタガタな表示になりちょっと焦る
画面のプロパティでスムージングをClearTypeにして確認。

うーん、確かに読みやすいかも…ただ、ウチのディスプレイが貧弱なのか?、若干ぼやけた感じになってしまう文字がある。

あと、若干文字自体が大きくなるような…?
下のスクリーンショットでは切っちゃったけど、従来表示では全部一行に収まっていたメニューが一部折り返し表示になってました。


結局すぐに元に戻した。フォトショップとかでテキストを画像化するときにでも使わせてもらおうかな。


以下、参考のスクリーンショット


従来(MS-Pゴシック-スムージングOFF)


メイリオ適用



ところで、CSSを書くときにやたらフォント名を入れたがる人(ソフト?)がいる様子。

font-family: "MS Pゴシック", "Osaka",sans-serif;/*みたいな*/

同じ調子で、この先、これをメイリオでやられたらヤダなぁ。

2008-05-13追記、vistaってブラウザのデフォルトフォントもメイリオかと思ったら、
これはMSゴシックのままなのね。これなら余計な心配は要らなそう。

2008-05-17追記、心配要らない、と、思ったら メイリオ指定していてガタガタフォント表示になってるサイト発見。
トレンドマイクロ (JP) | 法人のお客さま向け - サイバーセキュリティソリューション
スムージングOFFってるのにメイリオ入れたままにしてる私が悪いのかも(苦笑)

P705iのディスプレイの傷問題と対処

携帯の機種変した。
モノはDoCoMoP705i
(ちなみに前は P901is、プッシュオープンは癖になりますね。)

機種を選ぶときに、ネットで情報収集してあらかじめ知っていたが、薄さを追求したあまりやや問題があるようす。
二つ折りに閉じたときに、ボタン(キー)とディスプレイが接してしまうのだ。
買ったその日から、ディスプレイにボタンの接触跡が確認できてしまった。
(全くわからないという人も居るので個体差があるのかもしれない。)
もちろん拭けばキレイにはなるのだが、これがずっと続くと思うとちと悲しい。

で、工作たぁ〜いむ!。

まずはパッドを用意。ガンプラやフィギュアの間接に使われるポリ製の球体部品を適度な大きさ(厚み1mm程)にカットする。
それを瞬間接着剤でディスプレイ側の角に貼り付け。

以上、完成。

工作時のポイントを二つ程。
(1)瞬着はハミ出したりすると周りを白く曇らせてしまうので
別の紙等に瞬着を垂らし、爪楊枝を使って貼り付ける場所にチョコンと付ける。
(2)切り出した小さなパーツはものすごく掴みにくい。よく切れるカッターで少しだけ刺して持ち上げるといい。(弾力のあるパーツなので小さな傷は目立たないので大丈夫)

他のメーカーでもこうい事があるようだし、薄さ世界一とかにこだわり過ぎないでしっかりした製品作りをして欲しいですねぇ。