2004年 08月 21日

XSLT for-each でカレントドキュメントが変わる

<xsl:for-each select="$document('some.xml')">
<xsl:apply-template select="/root/element"/>
</xsl:for-each>

これが期待通りいかない。for-each の中でメインのソースドキュメントて処理できないのかしら。あー何かもうわけわからん……カレントノードが $document('some.xml') になるのは書いてあるけど、/ はメインのドキュメントのルートノードじゃないのかよと……どうやって書けばいいんだ W3C ちゃん。

なんかアレだなぁ……絶不調だ。普段はやる気でないし、やる気でたら意味わからんことばっかだ。何もできないときは何もしたくないんだけど、夏休み中にやっちまいたいんだよなぁ。あー高校生活があと20年ぐらいあればいいと思うよ。ただしインチキ臭くないないクラスメイトとマトモな教師がいる高校生活が。

哀さんの書き込みと IRC での発言によってもうちょい賢くなった気がする!

上の文で カレントノードが $document('some.xml') になる と書いているけど、変わるのはカレントノードではなくコンテキストノードっぽい。カレントノード (current()) はテンプレートにマッチしたやつっぽい。XSLT 仕様書の for-each には このテンプレートは、選択したノードをカレントノードとして使用し と書いてあって、これを俺は勘違いしていたくさい。テンプレートのインスタンス化するとき initialize に投げられるのがそのテンプレートのカレントノードとなり、その後はたぶんカレントノードは変化しないんだ。

G

あー、少人数グループで何かやりて。とか思うんだけど、協調性を持てとか中学のころに糞体育教師に言われ、まぁ確かにグループワークが苦手な自分的にはやりたいと思ってるだけがいいのかもしれないのかとも思ったりするわけで(略)。とりあえず学生しかいないポータルとか激しく苦手っつうか吐き気がすr

まったく関係ないけど、浮かぶアイデアが全部抽象的だったり、スーパー適当だったりするのをどうにかしたい。例えば何か作るときには「何かカコイイもんがつくりてー」とか「何か綺麗なもんがつくりてー」とか「何か話題になるもんがつくりてー」とか思うわけよ。何ソレっていう。

ハセガワケイスケさそ

最新をちょっと前に読んだけど、やっぱこの人は BURGER NUDS とか ART-SCHOOL とかシロップとかピロウズとかその他もろもろ好きなんだ。あーうん。そうかなって疑問に持つほうがバカだったな。確実だ。OK。 バーガーいいよね。

めんどいので続けて書く。友達と集会(毎週土曜日)して、電撃HPを借り、護君だけ読んだ。あーうん。

2004年 08月 20日

FOAF と SPAM

FOAF たどってメールアドレス収集とかどうよ。とか言おうとしたけど、防ぐ方法が普通にあるじゃんね。

ベルギードメイン

.be ドメインとちゃった。テヘ☆ とか書くと激しくキモい。なんていうか、軽い衝動買いみたいな感じで (金ないのに) ……何に使うか決まってもいないのに取るのはアフォかとバカかと的な要素たっぷりですけど、まぁ今のやつより短いのでメールアドレスにでも使ってやればいいかみたいな?

自分のところまで DNS が浸透するまで一時間半……なんかめさくさ早い。

2004年 08月 19日

見た目の分離とか

啓蒙するとかどうとかじゃなくて、普通に見た目とデータの分離っつうのをどうやって理解させたらいいやらようわからん。全角スペースで margin やら text-align を実現しようとしたり、物理的な ruby 要素(←説明するのが激しくめんどい類)を使ったり。「てめーここでも読んで理解しやがれ」とか「このバカが」とか言ったところで意味ないどころか逆効果。全角スペースであれこれは俺の中で最高にダサい上に表示のことしか考えてないやつに全角スペースを使うなと言っても「じゃあこれをやるにはどうする」とか、そういう話になってうんこ臭いのでもうやめよう。

なんか朝焼けが激しい。外見たら世界の終わりがやってきたかとおもたyo。かみさまごっこしよう

preceding

sabなんとか XSLT 処理系で preceding がようわからない。いや、仕様通りかもしれないけど、それも意味がわからない。

注: 一つのドキュメントは (アトリビュートノードとネームスペースノードは除いて) ancestor および descendant、following、preceding、self の基準点によって分割される。つまり、これらの基準点には重なる部分はなく、全て一緒にするとドキュメント内のすべてのノードを指定することになる。

らしいけど。preceding が前のノードを全て選択してないような。前のノードっていうのを勘違いしてるやもしれない。

<doc>
<ele1>
<ele2>text</ele2>
</ele1>
<ele1>
<ele3>
<ele2>text</ele2>
</ele3>
</ele1>
</doc>

みたいな構造で、コンテキストノードが /doc/ele1[position() = 2]/ele3/ele2 だとしたときに preceding::ele2 としても /doc/ele1[position() = 1]/ele2 が選択されないっぽい。この文脈で preceding::* で選択できるのは ele1 だけ。 (自分の祖先を除く前の要素だけど、中身は含んでない) これって正しいのかしら? 正しいとしたら (正しくなくとも) sort を使うときに上手くいかない。(sort 使わないなら position() で頑張ればOK)

んでも実際上の簡易構造で試してないから間違ってるかもしれない。とりあえずやりたいことが長いこと上手くできる方法が見つからなくて疲れた。

2004年 08月 18日

携帯のキーストローク数

function array_index(val) {
for (var i = 0; i < this.length; i++) {
if (this[i] == val)
return i;
}
return false;
}
Array.prototype.index = array_index;
// str のキーストローク数を求める。key はオプション
function get_stroke(str, key) {
if (!key)
key = [["@"], ["a", "b", "c"], ["d", "e", "f"],
["g", "h", "i"], ["j", "k", "l"], ["m", "n", "o"],
["p", "q", "r", "s"], ["t", "u", "v"], ["w", "x", "y", "z"],
[",", "."]];
var ret = 0;
for (var i = 0; i < str.length; i++) {
for(var j = 0; j < key.length; j++) {
var pos = key[j].index(str.charAt(i));
if (pos !== false) {
ret += pos + 1;
if (key[j].index(str.charAt(i-1)) !== false)
ret += 1;
}
}
}
return ret;
}
get_stroke("aaa"); // => 5;
get_stroke("lowreal.net"); // => 23;
get_stroke("adg.jp"); // => 7

key を変更すればひらがな入力のストローク数も!(意味ないけど)てか2バイトはできないかも。どうでもいい

key はボタンごとの文字の配列。前の文字が同じボタンの場合、そのままじゃ入力できないので +1 してる。なんかアレだ……

キャリアによってキー配置が違うかもしれないけど、知らない。

.jp ドメインはさりげなく最短なので素敵よね。

太宰府 SPAM

☆太宰府☆

このメールが来た人!アナタは受験合格間違いナシ(^O^)何たって有名な太宰府天満宮でお払いして貰った携帯からのメールなんだから☆大学進学専門学校一般就職全部合格間違いなし!でも↓合格して欲しい友達5~7人に回さないとダメ!去年のデータからも分かるケドメールを信じて5~7人に回した人→合格率72%(^0^)/回さなかった人→合格率29%(-o-)信じる信じナイは自由!友達思いの人は回シテアゲヨウ☆http://コロスケ/gif/2003.10.30/9748wK9AI.gif

やれやれ。悪質なメールだな。こういうのってさ、これを書いてる姿を思い浮かべると、すごくめげちゃうじゃないか。しかもさ、いろんな人に同時に送ってアドレスが見えまくりなんだよね。まわしてる人には悪意なんてないかもしれないからさ、どうやって返信すればいいか悩むんだよ。でもまあ、こんなメールを回す人が合格するんだとしたら、本当の所、世の中は僕の考えてるのよりも素敵なのかもしれないよね。もちろんそんなわけないんだけどさ。

とかまぁ……ホールデン風味。数日前(何時だから忘れてしまった)キャッチャー・イン・ザ・ライ読み終わったのですよ。村上春樹訳のほう。ちと前の訳も読んでみたい。ついでに原文もチラチラ覗き見したい。