2010年 06月 13日




土曜日は歯医者のあと、奈良へ。春日大社に行ってみたかったから。奈良は、結構近い気がするし、実際1時間ぐらいで着くのだけれど、片道で800円ぐらいかかるのでびっくりする。

春日大社は広かった。日吉大社と同じぐらいかな。本殿は近くまでいっても残念ながらよく見えなかったけれど、境内に春日造の社殿が他にもいくつかあったのは良かった。妻入りの本殿は京都だと滅多に見ない (流造も神明造も平入り) ので不思議な感じがした。

その後大仏を見に東大寺へ。修学旅行以来だったけど、あんまり「でけー!」みたいな感じに思わなかった。大仏だ! とは思った。


とにかく奈良は修学旅行生が多かった。そいで、春日大社を見てまわっている途中、どこかで見たことのある制服が歩いていた。とはいえ、似たような制服はどこでもあるだろうと思って離れた (夏服だとよくわからないし)。大仏を見た帰り、またどこかで見たような制服がいて、そういや僕のときも暑い日だったなあと、気になったのでバスの停車場にいって何台かどんな団体がきているか見てみたら、出身中学の名前が書かれたバスが止まっていた。

たまたま気分で行った奈良で(京都ならいつもうろついてるからまだしも)、出身学校の修学旅行生を見るのは、おもしろい偶然だなあと思った。

SALVA ME (紺野キタ)

Salva me (ミリオンコミックス) - 紺野 キタ

紺野 キタ

3.0 / 5.0

しばらくほっといた末、読んだ。『とてもじゃないけどみつからない』がカオスで面白かった。BLのくくりに入るだろうけど、『草の花』が読めるなら普通に読めそう。

草の花もそうだけど、成長過程において同性愛に傾倒する (正確には異性愛と友情の区別がつかないという状態だと思う) のはままありがちかなと思うので、その過程にいるキャラクターによるBLは普通に読めるもんだなあと思った。それ以外だとファンタジーかなあ

2010年 06月 11日



2010年 06月 10日

Android のブラウザのフォーカスが z-index を無視しているバグがなおらない

Android のブラウザはフォーカスの処理がうんこで、見えてない A 要素 (例えば position: absolute な要素が上に重なっている) も、タップしたときにフォーカスをとりやがります。

どうしようもないので、どうするかというと、スマートな方法はおそらく「ない」ので、うんこ的方法を使って解決します。重なっている要素でフォーカスがあたる要素をかたっぱしからフォーカスがあたらないようにします。

具体的には全部の a と input をそれぞれ、a は href 要素をはずす、input は disabled にするということをしますが、実際のところドキュメント中全ての要素についてこれをやると激重いので必要な範囲をだけやるようにします。

実際はてなスターをAndroidでロードしたときの画面で使われてますが、適当に書き抜くと以下のような感じです。

var ys = 15;  // y start
var ye = 300; // y end
var xs = 100; // x start
var xe = 100; // x end
var checkedElements = [];

function showOverlay () {
	for (var y = ys; y < ye; y += 5) {
		for (var x = xs; x < xe; x += 5) {
			var e = document.elementFromPoint(x, y); // x, y の位置の要素を取得
			if (!e) continue;
			if (e._checked) continue; // 何度も取得されることもあるのでチェック済みならスキップ

			if (e.nodeName == 'INPUT' || e.nodeName == 'TEXTAREA') {
				e._orig_disabled = e.disabled;
				e.disabled = true;
			} else
			if ((a = ancestor(e, 'A', 3))) { // a > span のような構造があるとき
				if (a._checked) continue; a._checked = true; checkedElements.push(a);
				a._orig_style = a.getAttribute('style');
				a.setAttribute('style', document.defaultView.getComputedStyle(a, "").cssText);
				// a.style.outline = "1px solid red";

				a.setAttribute('xhref', a.getAttribute('href'));
				a.removeAttribute('href');
			}

			e._checked = true; checkedElements.push(e);
		}
	}

	function ancestor(e, name, deep) {
		if (e.nodeName == name) return e;
		if (e.parentNode) {
			if (deep < 0) return null;
			return ancestor(e.parentNode, name, deep - 1);
		} else {
			return null;
		}
	}
}

function hideOverlay () {
	var links  = document.querySelectorAll('a[xhref]');
	for (var i = 0, len = links.length; i < len; i++) {
		var a = links[i];
		a.setAttribute('href', a.getAttribute('xhref'));
		a.removeAttribute('xhref');

		a.setAttribute('style', a._orig_style);
	}
	var inputs = document.querySelectorAll('input, textarea');
	for (var i = 0, len = inputs.length; i < len; i++) {
		inputs[i].disabled = inputs[i]._orig_disabled;
	}

	for (var i = 0, len = checkedElements.length; i < len; i++) {
		checkedElements[i]._checked = false;
	}
}

幸い elementFromPoint が使えるので、強引に、該当する範囲の要素をほぼ全て列挙して a と input について上記のような処理をしています。

ただ、この方法ですと、onclick ハンドラが設定されている場合に対処できません (onclick ハンドラは、設定するだけで「フォーカス可能」な要素となるみたいです)。これについては対処方法が思いつかなかったのでひとまず放置されています。


また、豆知識ですが、Android において、フォーカスされたときのハイライトを消すには以下のようなCSSで可能です。

-webkit-tap-highlight-color: rgba(0, 0, 0, 0);  
2010年 06月 06日


ある状態である対象に言わないほうが良い言葉というのは多々ある (言葉というか、それを含めた行動について)。「それをお前が言ったらダメだろ……」という経験は誰しもしたことがあると思う。個人対個人の関係において、お互いにだ。

前に書いたと思うけれども、バランスの話だ。

コードを読むときは、読めないコードが出てきたときに、読めないことを恥じ、コードを書くときは、読めないコードを書かないようにし、読めないコードを書いてしまったときにはそれを恥じる。そういうバランスが、御互いに必要っていう、あたりまえのことだ。そこにコストを感じすぎるなら、たぶん一緒にやる相手を間違ってる。

/2008/04/28/#post-1209318039

いろんなことは互いのバランスでできているから、例えば「していいよ」と言われてもしてはいけないことはたくさんある。こんなのすごく、すごくあたりまえのことだと思う。

/2007/11/09/#post-1194619425

「言わないほうが良い言葉を言わない」ことを「思いやり」と呼び、それがない状態のことを「思いやりに欠けている」と呼ぶことにした。思いやりは正確に正しいわけではないので、思いやりがあることが必ずしも正しいとは言わないが、それがないことに鈍感なのは、思いやりに欠けると云えると思う。

サマーウォーズを観た

事前情報があんまりない状態 (インターネットとアバターがでてくる、ぐらいしか聞いていない) で見た結果、最終的にセカイ系ギャグアニメ、と僕は思ったのだけれど、借りる経緯から、なんかもうちょい示唆のある内容をなんとなく期待していたので、ちょっとびっくりした。セカイ系ギャグアニメとしてはとても面白かった。

ただ、途中でネットを使っていない人が、重要なのは他人と目を合わせて話すことだ的なことをメッセージのように言ってしまうのが個人的にはすごく残念で、こういうセリフは「ネット側」の人、例えば作中であれば健二あたりが言うべきことであったと思った (健二は境遇的に適任だろう)。「重要なのは他人と目を合わせて話すことだ」というのを言うためには、目を合わせてコミュニケーションする方法と、目を合わさずにコミュニケーションする方法のどちらも知っていないとできないことだ。(「ネットを使ってない人」のステレオタイプの演出なのかもしれないけど。)

とはいえ、それはたぶん僕が気にしすぎなことで、些細なことなんだろう。

オープニングは「何か新しいことが始まる」みたいな感じで (なんとなくリトルビッグプラネットのチュートリアルにも感じるなんともいえない良い感じを味わった)、すごく良かったし、小学生ぐらいのときまでは親戚がたくさん集ってたことを思い出したし、「普通の人」の「持っているもの」がすごく誇張されて、それが活躍する (老人Zを思い出す) というのは好きだし、主人公が数字に強いでもそれだけっていう設定は好きです。

2010年 06月 04日



宇宙船のような花

名前を忘れてしまった…… 見た瞬間スプートニクっぽいと思った