SSH ログインの制限緩和うんちゃらがだいぶ前になってたわけでして、できるなら CGI 経由で make なんてしたくねぇよとか思ったのでいろいろとやった。未完成。

なんかサッパリよくわからないけど XREA に SSH でログインしたときは ~/.profile が実行されるらしい。~ は /virtual/username。そこで次のような .profile を用意

export PATH="/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:$PATH"
hh=$HOSTNAME
uu=$USER
col=32
TITLEBAR='\[\033]0; \w\007\]'
PS1="${TITLEBAR}
\[\e[${col}m\]$uu@$hh \[\e[33m\]\w
\[\e[${col}m\]\$\[\e[m\] "

PATH 通せば ruby とかが素で通る。これ自体は CGI 経由と同じ。残りはどっかからパクったオマケ。カレントディレクトリ見えてないと嫌よ症なので……

しかしこれで make しようとしても、collect2: cannot find `ld' とかでやがって通りません。ld -v は通るんだけどなぁ? 小プロセスに環境変数引き継がれてないとか? わかんねぇ。ほんとわかんねぇ。

lowreal@s63.xrea.com ~
$ echo $PATH; ruby -ve "p ENV['PATH']"
/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/rbin
ruby 1.8.3 (2005-09-21) [i686-linux]
nil

なぜ。

  1. トップ
  2. web
  3. SSH on XREA
  1. トップ
  2. xrea
  3. SSH on XREA

標準添付の rexml は軽くやるぐらいなら十分だけど、名前空間関係がちょっと怪しい。今時 XML を真面目に使えないとなるとやばい。

RAA を検索してみると libxml-ruby がよさげなので試してみる。extconf.rb がなんだかしらんが全く通らないので該当部分でばっさりコメントアウト。extconf.rb の存在意義なし!!!

リファレンスの類が見当たらない。要素は ele = XML::Node.new(element_name[, content]) で作るみたい。便利だけど Node っていう名前にちょっと違和感が……属性は ele["attr_name"] = attr_valueDOM 実装を期待してたんだけど違うらしい。getElementsByTagName は Node#find みたいだし (find の引数は XPath なので全然違うが) あーやばい。コンテキストノードとカレントノードの違いを忘れそうだった。Node#find はトップレベルのコンテキストノードにレシーバを設定して云々、でいいのかな。カレントノードが XSLT のものだよなぁ。

名前空間関連はまだ調べてない。libxml だから大丈夫だと思う(てきとう。とりあえず学校へ。眠いっつうの。

  1. トップ
  2. xml
  3. Ruby で XML をまじめに使いたい
  1. トップ
  2. ruby
  3. Ruby で XML をまじめに使いたい

どういうのが切ないのかを考える。どういう風に表現すれば切ないっぽいのかを考える。ちなみにただのメモだから結論なんて出ていないし、そもそも考えるまでいってない部分だってありますよと。うるせーよ。

切なさがの正体がよくわからないので、正体不明のままにしとく。

  • 伝えたいのに伝えられない。(なんらかの約束が邪魔をする / 自分が素直になれない (ツンデレ))
  • 伝えたのに伝わっていない。(字がかすれて読めない手紙 / 喧騒にまぎれる声)
  • 解決方法がどれも問題を含む。(所謂友達か恋人か)
  • 解決方法がそもそもない。(死んでいく近しい人 / 過去の選択ミス)
  • 自分が無力。(明らかに周りとの差を感じる / 助けてあげたいが助けを求められていない) 広くとると一個上と同じ。
  • 現実と理想とのギャップ。(美しい音楽を聴くとき、絵を見るとき) 上二つとだいたい同じ。

効率的、とか書いたけどまずムリだ。頭痛くなってきた。とりあえず日本語かけるようになれよ俺。な?

  1. トップ
  2. life
  3. 効率的に「切ない」を実装したい
  1. トップ
  2. thinking
  3. 効率的に「切ない」を実装したい

新しくなっているのに気付いた。 ruby extconf.rb --enable-error-handler (off by default) とか書いてあるのでちょっと期待しつつ。

とりあえず cygwin で make できんので Makefile 修正。OBJS に /lib/libxml2.dll.a /lib/libxslt.dll.a を追加して強制リンキング。exslt ははずす。

いろいろやってみたんだけど、よくわからん。USE_ERROR_HANDLERXML::XSLT.errors が定義されるんだけどエラー起こしても特に何も入ってない。/* this is really quite inelegant */ とか書いてあって苦労してんなぁとかなんとか。

とりあえずさらに really quite inelegant なコードで解決を図る。Ruby 側で…

require '../xslt'
xslt = XML::XSLT.new
xslt.xmlfile = "fuzface.xml"
xslt.xslfile = "fuzface.xsl"
begin
err = STDERR.dup
pipe = IO.pipe
STDERR.reopen(pipe[1])
out = xslt.serve # raise RuntimeError
rescue RuntimeError => e
p XML::XSLT.errors #=> []
if e.message =~ /^(XSL|XML|Stylesheet) /
p e
p pipe[0].readpartial(4096) #=> エラーメッセージ
else
raise
end
ensure
STDERR.reopen(err)
end
__END__
起こりうるエラーたち (grep)
parser.c:53:      rb_raise( rb_eRuntimeError, "XSL parsing error" );
parser.c:59:      rb_raise( rb_eRuntimeError, "XSL Stylesheet parsing error" );
parser.c:65:      rb_raise( rb_eRuntimeError, "XSL Stylesheet parsing error" );
parser.c:84:      rb_raise( rb_eRuntimeError, "XML parsing error" );
parser.c:90:      rb_raise( rb_eRuntimeError, "XML parsing error" );
parser.c:97:      rb_raise( rb_eRuntimeError, "Stylesheet transformation error" );

tests/fuzface.rb の改造。xmlfile= は使うなという警告がでるけどとりあえず放置。$stderr じゃなくて STDERR にメッセージを吐くらしくめんどっちいことをやってる。readpartial は cygwin の ruby が 1.8.3 になったから使ってみた。便利よねコレ

ごちゃごちゃやってみたけど使わない。XREA に入れるのめんどいし……

これでドウダ

class XML::XSLT
class XSLTError < StandardError; end
class XSLParsingError < XSLTError; end
class XSLStylesheetParsingError < XSLTError; end
class XMLParsingError < XSLTError; end
class StylesheetTransformationError < XSLTError; end
alias __org__serve serve
def serve
ret = nil
err = STDERR.dup
pipe = IO.pipe
Thread.critical = true
STDERR.reopen(pipe[1])
begin
ret = __org__serve
rescue RuntimeError => e
STDERR.reopen(err)
Thread.critical = false
message = pipe[0].sysread(4096)
error_class = XSLTError
case e.message
when "XSL parsing error"
error_class = XSLParsingError
when "XSL Stylesheet parsing error"
error_class = XSLStylesheetParsingError
when "XML parsing error"
error_class = XMLParsingError
when "Stylesheet transformation error"
error_class = StylesheetTransformationError
end
raise error_class.new(message)
ensure
STDERR.reopen(err)
Thread.critical = false
end
ret
end
end
xslt = XML::XSLT.new
xslt.xmlfile = "fuzface.xml"
xslt.xslfile = "fuzface.xsl"
begin
xslt.serve
rescue XML::XSLT::XSLTError => e
p e
end

将来完璧な実装になっても消すだけ! これなら使えそう? ごめん嘘。エラークラス云々があるのでそのままじゃ無理。

  1. トップ
  2. web
  3. ruby-xslt 0.8.2
  1. トップ
  2. ruby
  3. ruby-xslt 0.8.2
  1. トップ
  2. xslt
  3. ruby-xslt 0.8.2

make がうまくいったっぽいのでメモ。ちなみに数度要望の末 ruby-xslt を入れてもらってある (この過程で別の鯖と違う点があるかもしれない)。でもやっぱり自分でビルドできないかなぁという試行。

#!/bin/sh
PATH="/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:$PATH"
export PATH
ruby extconf.rb #1
#make #2
# test
#cd tests
#ruby fuzface.rb

みたいなのを make.sh として作って保存しとく。ちなみに AddHandler cgi-script-debug .sh してある。念のため一発でやらずに一行ずつ実行させる。

ruby extconf.rb は Permission Denied がでつつも一応通るので問題なしということにしとく。んで、make なんだけど libxml/* が見つからないとかいわれる。しかたないのでローカルの /usr/include/libxml2/libxml を同じディレクトリに転送する。エラー一切なく make が通った。テストもしてみたけど大丈夫っぽい。微妙だけど。

関係ないけど XREA に拡張ライブラリ置くとき怪しいことをすることにした。/virtual/username/lib/ruby/RUBY_PLATFORM を掘ってその中に入れる。ローカルは cygwin なので /virtual/username/lib/ruby/i386-cygwin/xml/xslt.so、XREA は /virtual/username/lib/ruby/i686-linux/xml/xslt.so。んで使う場合は $LOAD_PATH.unshift("/virtual/lowreal/lib/ruby", "/virtual/lowreal/lib/ruby/#{RUBY_PLATFORM}") しとく。もともと XREA 上の RSS パーサが古いのでアレしてコレした感じ。

s63.xrea.com 上で作った xslt.so。ちゃんと動くかは知らない。

ちなみに上のセクションのスクリプトは動かないです。1.8.2 なので。readpartial を sysread にすればとりあえず動きます。どっちでもよさげだから sysread にしとくのが吉か。

  1. トップ
  2. web
  3. ruby-xslt on XREA
  1. トップ
  2. xslt
  3. ruby-xslt on XREA
  1. トップ
  2. ruby
  3. ruby-xslt on XREA

IE で表示崩れていることには気付きつつ、あの例のリンクホバーで margin だか padding だかがぶっとぶバグなわけで、解決方法をバグリストから探して云々ってのがめんどくさくてめんどくさくて……

仕方ないから新しくスクラッチから書き直すか、とか思ってみたりもするんだけど、いやそれむしろもっと面倒くさくなっているよとも思うわけでして、あーしかしそろそろ今の CSS 飽きたなぁとか、なんかグッっとくるテーマが欲しいなぁなんて。なにがグッっとくるんだよって話だけど。

  1. トップ
  2. web
  3. やる気あるんだかないんだか

BLACK STAR LUSTER / STRAIGHTENER

衝動買いしたんだけど、これは良かった。

スリーピースでそれぞれがものすごい存在感あるのってホントすごいなぁ。ベースがカッケェとか思った次の瞬間ドラムがッみたいな。ヴォーカルはすごいいい声だし……ストレイテナーかっこよすぎ。

とりあえず、そんな普通の感想はどうでもいいんです。ただの導入です。問題は見ていてふと BURGER NUDS に似てる気がしたことです。少し見た感じスリーピースであること以外はぜんぜん共通点を見出せない。そしていろいろ考えてみたんだけど割と共通点が。

ヴォーカルの声
割とよくある「すごく綺麗な声」ではなくて、少し癖がある感じ。繊細かつ芯があるような声。
曲+歌詞
よく考えてみると「悲しみ」が裏にあるのが多い。それに間接的か直接的かの違いはあるけどファンタジーに通じてる。
ドラムスの髪型
長い。じゃっかんキモい長さ。コーラスで歌うときの感じが内田氏に似ててウケる。

かっこよさはストレイテナー、世界観は BURGER NUDSって感じ。思うに BUMP OF CHICKEN よりも全然近い。BUMP OF CHICKEN は最初のアルバム以外希望的だし。

っていうかですね? 日向氏がぽっちゃりになっててでちょっとびびったよ。BOYS DON'T CRY (ART-SCHOOL) のときは太ってるとは感じなかったんだけどな。

あとすごい楽しそうにライブしてて羨ましい。

この DVD 3k は安いなぁホント。

ROCKSTEADY のイントロはじまって最初の声入った瞬間がすごいぞくぞくする。WHITE ROOM BLACK STAR はじめて聴いたけどやばい……THE REMAINS もやばい。THE REMAINS は買うしかないなぁ。やばすぎる。

買ってよかった……

前書いたかもしれない話さ。STRAIGHTENER.NET は表向き RSS リンクがないんだけど、ちゃっかり link 要素をかいていやがるので Sage で検索してやると見つかりますよ。わらわら。Words のやつだけだけどね。

  1. トップ
  2. music
  3. BLACK STAR LUSTER / STRAIGHTENER

Paradise Lost

実は発売日はまだまだ先だとか思い込んでた。とりあえず第一印象。

全部綺麗系になってる。優しい白鳥の歌云々はだいたいそんな感じ。前まであった疾走感みたいなのはあんまり感じない。

完全に新しい ART-SCHOOL が実感させられる。Requiem for Innocence を聴いた直後に Paradise Lost を聴いたらかなりギャップがあって戸惑うと思う。全然違う。ぶっちゃけ一回解散して同じ名前で結成した (あくまで再結成ではない) ようなもん。表現だけ若干変わって言ってることは全く変わらんけど。

すごい聴いてて気持ちいいけど、やっぱ BOYS DON'T CRY 以前のほうが俺は好きだなぁ……もっとすごく悩んで、狭い空間で音楽やってる不完全さが良かった気分。ホントはどうだか知らんよ。

それはさておきですよ。LOST IN THE AIR Tony Doogan mix はヤバいと思った。

  1. トップ
  2. music
  3. Paradise Lost / ART-SCHOOL

とりあえず似非 require を使うことに。ミニ JSAN みたいな実装にしといた。変数のリストを取得できないからこれ以外方法がなさげ。まぁ必要なオブジェクトを明示できるから悪いとはいえないんだけど。

function require(__path, __exports) {
if (!__exports) __exports = [];
var __code = (require.LOADED_FEATURES[__path]) ? require.LOADED_FEATURES[__path] : HTTP.get(__path);
(function () {
with (Global) {
eval(__code);
}
for (var __i = 0, __len = __exports.length; __i < __len; __i++) {
Global[__exports[__i]] = eval(__exports[__i]);
}
})();
require.LOADED_FEATURES[__path] = __code;
return true;
}
require.LOADED_FEATURES = {};
require("/ruby.js");
require("/xb.js",   ["document_addEventListener", "document_removeEventListener"]);
require("/dom.js",  ["getElementsByAttribute", "getElementsByClassName"]);
require("/mm.js",   ["MetadataManipulator"]);
require("/code.js", ["markupCode"]);
require("/util.js", ["MessageArea", "ProgressBar", "AccessibilityOption"]);

余計なことをしても使わないので、できるだけ短くすることにした。"Obj.prop" みたいなのも渡せるようにしたやつも書いてみたけど思ったより長くなったので却下した。

HTTP.get とか書いてるけどこれより前にそういうのを書いてある。

さっき気付いたんだけど IE で表示崩れるよね。なんか直す気力がないから放置するよ。別に読めないわけじゃないし。それにともなって MM のテストをいったん廃止

  1. トップ
  2. web
  3. site-script.js の整理
  1. トップ
  2. script
  3. site-script.js の整理

読んだ順

彼女は帰星子女 / 上野遊
ツンデレ。
護くんに女神の祝福を!7 / 岩田洋季
やりすぎ。
キノの旅 IX / 時雨沢恵一
内容をよく覚えてない。シリーズではポピーの話 (?) が妙に印象に残ってるけど……
紅牙のルビーフルフ / 淡路帆希
いまどき珍しい完全なる王道ファンタジー。ぜんぜんひねらないのもすごいなって思った。

読み始めてみたけど最後まで読めなかった本は書かないぜ。

  1. トップ
  2. book
  3. 読み終わった特に感想がない本リスト

Javascript はファイル間の依存関係を一切書けない。ロードする順番は結局 script 要素の出現順、つまり HTML 依存。どう考えても気持ち悪い。のでどうにかして require もどきを作りたい。

function createXMLHttpRequest() {
return this.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP");
}
var __LOADED_FEATURES = {};
var Global = this; // this == window == Global
function require(lib) {
if (__LOADED_FEATURES[lib]) return false;
var req = createXMLHttpRequest();
req.open("GET", lib, false); // 同期
req.send(null);
if (req.status == 200) {
// IE ではグローバルコンテキストで実行してくれない。
Global.eval(req.responseText);
__LOADED_FEATURES[lib] = true;
} else {
throw Error("Load Error");
}
return true;
}
require("/ruby.js");
require("/mm.js");

Global という名前のオブジェクトが宣言されてなかったりするので強調をこめて宣言してある。それ以上の意味はないです。window.eval でも問題なし。見たとおり XMLHttpRequest を使って取得し、eval させてみる。

これは Firefox 1.0.7と Opera 8 ではうまくいくけど、IE 6 ではうまくいかない。

IE の場合 eval する部分のコンテキストが変わってくれない。つまり mm.js に var MottoMottoMeidosan = function () { .. } とかいう宣言があったとき、require 関数の変数オブジェクトに代入されやがるので、require のあとに new MottoMottoMeidosan() とか書くと「そんな変数宣言されてません」と怒られる。

解決法なんですが、さっぱりわかりません。誰か助けて。

なんだったら .php にでもして include() でもいいんだろうけど、これは完全に負けだよね(謎

卑怯な解決方法1を発見した。

eval(req.responseText.replace(/^var/g, ""));

インデント依存っていうか副作用がどれだけあるか不明すぎ。

JSAN つかえよバーカ。

JSAN はそもそもグローバルスコープで eval することなんて考えてない。指定したオブジェクトだけグローバルスコープに登録してる。つまり基本的に一個のファイルで一つの固まりしかロードできない。use は必要なのをグローバルスコープに登録するらしい。 DOM 定数とかをグローバルスコープに登録するなら全部 use/export の引数に書けってことなのか?

なんか素晴らしすぎて使いづらいなぁ。特定ファイルを単純にロードしたい。とくにディレクトリ構造を要求するのがなんともいえない。

疑問なんだけど JSAN は 291 行ものコードを最初から書いておけっていうだろうか?

script 要素二つ書けっていうんだったら目的が違うな。モジュールシステムが欲しいんじゃないし。

続きを書いた。

  1. トップ
  2. web
  3. Javascript で require もどき・eval の実行コンテキスト
  1. トップ
  2. script
  3. Javascript で require もどき・eval の実行コンテキスト

一回で10k以上使ったのはさりげなく初めてだな、と思った。

  1. Paradise Lost / ART-SCHOOL
  2. grandline / plane
  3. laundry / plane
  4. さよならリフレイン / Prof.Moriarty&Smiley-Todd
  5. BLACK STAR LUSTER / STRAIGHTENER (DVD)
  6. うたかた / 音速ライン

とりあえず Paradise Lost きく。

さよならリフレインのジャケットが素晴らしすぎて悶えるので是非紹介したかったんだけど、amazon にないっぽい。残念。傾向的にはメレンゲの初恋サンセット系。と思いきや公式ページにありましたよっと。

  1. トップ
  2. music
  3. CDs

for(;;) window.status = ""; がブラクラ。Firefox 1.0.7 と IE6 にて。Firefox はステータスバーを書き換えを許さないようにしたら死なない (スクリプトが遅い警告が出る) けど、他にもあるんじゃねぇの的な。

あと for(;;) alert(""); もある意味ブラクラ。止める方法が存在しない (するのかもしれないけど見つけられない)

Javascript 実行中ブラウザが止まるのはアレだなぁ? Gecko だと仕方ないのかなぁ? まぁ IE もだけどさ。

どうでもいいし関係ないけど俺は Bugzilla-jp が苦手だ。なんか雰囲気がおかしく感じる。何を基準に「おかしい」なのかはさておき、バグ報告したくない。報告しただけで怒られそう。ってか前報告したときなんか怒られたし。INVALID とか言われたとき「ハァ?」とか思ったと同時に諦めた。まぁそのときは他の人がフォローしてくれたけどさ。なんであんな「お前の報告が間違ってる」っていう感じをヒシヒシと出してくるんだろ。まぁどうせ100%俺の考えすぎなんだろう。被害妄想で申し訳ありません。

あーちなみに while (true) じゃないのは for (;;) のほうが可愛いから!

  1. トップ
  2. soft
  3. Fx x CPU 100%

ECMAScript でイテレータ なんてのを書いたことがあったけど、これ、each の中で break ができないのでちょっと気持ち悪い。ちまたで時々聞く ruby.js はどうやって解決しているんだろう?って思ってみてみたけど、特に何もしてなかった。つーか ruby.js 見つけるのが割りとめんどかったよ。

いろいろ考えたけどとりあえず動いたのをメモっとく。

function Array_each(func) {
try {
var context = {
escape : function () {
throw "break";
}
}
for (var i = 0, len = this.length; i < len; i++) {
func.apply(context, [this[i]]);
}
} catch (e) {
if (e != "break") throw e;
}
return this;
}
Array.prototype.each = Array_each;
[1, 2, 3].each(function (i) {
if (i > 1) this.escape();
Debug.dump(this);
});

Function.prototype.apply() の第一引数は関数の中での this なのでそれにメソッド設定してみる。ループから抜けるのに try - catch。投げるオブジェクトは "break" という文字列。"break" 以外の場合は例外を投げなおす。

ほんとはコンテキストの変数オブジェクトに直接関数を突っ込めるのがいいんだけど、ECMAScript では変数オブジェクトにアクセス方法はない (Activation オブジェクトは変数の実体化を目的とした変数オブジェクトとして使用される。Activation オブジェクトは純粋に仕様のメカニズムである。 Activation オブジェクトへのアクセスは ECMAScript プログラムには不可能である。 メンバ (変数) にはもちろんアクセスできるから eval つかえばいいけどスマートとは思えない。) のでこんな感じ。Global (window) は使いたくないし……

あとは eval(func.toString().replace(/\{/, "\{ var escape = function () { .. };")) とか?

  1. トップ
  2. prog
  3. Ruby's eash on ECMAScript
  1. トップ
  2. script
  3. Ruby's eash on ECMAScript

昨日なんとなくメレンゲのサイト見たら、なんか違和感を感じる文字列あって、注目したらSINGLE「すみか」のリリースが決定しました。来年1月下旬公の映画「最終兵器彼女」の主題歌です。とかなんとか書いてありふきだす。ちょ、おま的な何か。

ていうか実写なのね。最終兵器彼女殆ど読んだことないけどさ、実写って可能なんだ。グロそうなんだけど

  1. トップ
  2. music
  3. メレンゲ x 最終兵器彼女

はじまった。ラジオで ART-SCHOOL ははじめて。今回はメディア露出が多い気がする。気のせいか。

木下氏はアレか、風邪もしくは花粉症か。

ファッション経由で髪形 (マッシュ) について言及。わろた。

BLACK SUNSHINE

試聴済みだから特にアレもソレもなく。

ジャケは写るんです。

ダニー・ボーイ

すんごい綺麗

あと10秒での remix は「どうなの」なのか(w

ライブ中にマネージャーが片手で栗むいて食うのか。いや違うけど。

で、終わり。なんか微妙。宇野氏と櫻井氏の話が聞きたいな。謎すぎる。

  1. トップ
  2. music
  3. NHK FM - ミュージックスクエア ART-SCHOOL

  • レンタカーで公園を疾走
  • メガネの女性
  • F言語
  • 風呂記述言語
  • C
  • importNode().***().***();
  • ホテル
  • 営業
  • 失敗

ナレーション付神様視点の夢だった。つまり俺が俺の視界の中にいた。

  1. トップ
  2. life
  3. 夢:F言語

icho にデフォルトで搭載される予定らしい MetadataManipulator について。

とりあえず基本的に icho に依存しないので自分のサイトで実験することにする。Javascript 入れていれば左上になんか出てるはず。たぶん。

どこまで決めうちしていいか考え中なので、いまのところ MetadataManipulator 自体はソース生成しかやってない。ピョコピョコさせたり、CSS 的に欲しい要素を補完するのも外側。

link 要素の出現順に何も考えずにソース生成すると CSS が適用しずらいのでいくつか MetadataManipulator の外側で修正してある。内側に入れるか悩む。入れるんだろうけどどうやって入れるか悩む。

  1. あんまり役に立たない。next, prev はいいけど……
  2. in-page heading が役に立ちそうだけどうまいことナビゲーション生成するのがめんどい。汎用性云々。ながったらしいし。h2 だけ抽出とかにすればいいのか。
  3. 実装が定まらない。クラスっぽくするかモジュールっぽくするか。
  4. マルチリンガルじゃない。"in-page heading" っていう文字列を埋め込んでる。"ja-jp,ja;q=0.8,en-us;q=0.5,en;q=0.3" とかいう文字列を優先順位高い順に配列に突っ込む関数は書いたけど、どの時点で実行するか迷う。
  5. あんまりときめかない。

# IECSS の問題があるけど本質じゃないのでとりあえず放置

var mmul = document.getElementById("MetadataManipulator-Local-RelatedLinks-Dd").childNodes[0];
var fill = function (linkName) {
var ret = getElementsByClassName("MetadataManipulator-" + linkName, "li", mmul);
if (ret.length < 1) {
ret = document.createElement("li");
ret.className = "MetadataManipulator-" + linkName;
ret.appendChild(document.createTextNode(linkName));
} else {
ret = ret[0].parentNode.removeChild(ret[0]);
}
return ret;
}
// 順番を保証・これ以外の rel は copyright の次以降に。
var standard_link_rel = ["start", "prev", "next", "contents", "index", "glossary", "help", "copyright"];
var links = {};
standard_link_rel.each (function (i) {
links[i] = fill(i);
});
standard_link_rel.eachWithIndex (function (i, index) {
mmul.insertBefore(links[i], mmul.childNodes[0+index]);
});
with (mmul.parentNode) {
style.left = "-201px";
if (document.all && document.attachEvent) mmul.parentNode.addEventListener    = document_addEventListener;
addEventListener("mouseover", function (e) {
style.left = "0px";
}, true);
addEventListener("mouseout", function (e) {
style.left = "-201px";
}, true);
}

ながったらしい CSS との組み合わせです。see base.css

  1. トップ
  2. sw
  3. MetadataManipulator
  1. トップ
  2. web
  3. MetadataManipulator

alt="" になるような画像の存在意義がわからない。飾りとかは CSS の範疇だろうし、他に何かあったかなぁ……

  1. トップ
  2. web
  3. alt=""

前にツタヤにいったら音速ラインがちょっとだけピックアップされてて「へぇ~」とか思った。

少し前にツタヤいったらつばきがちょっとだけピックアップされてて「へぇ~」とか思った。

でもここで俺は思ったんだ。なんでメレンゲがピックアップされてないんだろう?って。ちなみに他にもマイナーアーティストがいくつかピックアップされてたけど、知っているのが音速ラインとつばきだけだった。

そして今日なんとなくツタヤいったら、メレンゲがちょっとだけピックアップされてた。軽く笑った。やっぱ同じクラスタなんだなぁ。っていうかこんなどうでもいいことが思い通りになってもなぁ……俺はもう一回小学校からやりなおしたいのに!

  1. トップ
  2. music
  3. ツタヤにて

あれってブラウザの表示領域のサイズじゃないんだよね。最近は 1280x1024 な解像度のモニタが多いけど、最大化してみてるやつなんて何割もいない気がする (あくまで想像)。だからアクセス解析で見られる解像度の割合なんて殆どあてにならないし、ましてはそれを参考にして 1280x1024 に最適化しました☆なんてやっちゃだめだ。なんの意味もない。

俺の場合表示領域を 900x600 ぐらいにして見ていることが多い。サイドバーを常時表示しているし、背面にある IRC クライアントを見たいのでこんな感じに。横幅広すぎると読みにくいしね。だから 1280x1024 推奨とか書いちゃってるページはよく横スクロールを求められる。やれやれ

あ、そもそも勘違いの可能性が。

っていうか RSS で読んでるサイトのトピックに「最適化しました☆」ってのがあったからなんとなく書いてみたんだけど、RSS で読んでるんだから関係ないな。頭おかしい

  1. トップ
  2. web
  3. アクセス解析で得る解像度の悪夢
  1. トップ
  2. css
  3. アクセス解析で得る解像度の悪夢

最近 Ruby 関連を経由して Io language を見ることが多くてなんかうれしい。別に Io 使ってるわけじゃないんだけど、好きだから。

  1. トップ
  2. prog
  3. Io and Ruby

ある日、爆弾が落ちてきて / 古橋秀之

とか友達に借りて読んでみた。

友達にはいろいろ借りまくっていて、この本についてだけ書くのは本に対して不平等だろ、とか思いつつ、まぁ、書くのにはそれなりの理由があるんじゃないかな、って誰かに聞いてみたりするんだけど、それは置いておくことにするよ。

某日記で時間系の話、と紹介さていて、しかも友達に聞いたら持っていて、なおかつ、「次会うとき貸すっていっただろ。このカスデコ野郎(意訳)」とか言われてそれなりに期待していたんだけど、期待していたわりに読んだ後気持ちいい (普通は期待ってのは裏切られるものなのだ) ので書くことにしたんだ、たぶんね。

「時間系」についてはあとがきで説明があるんだけど、実際それを感じるのは「むかし、爆弾がおちてきて」と「三時間目のまどか」ぐらいだ。他人の時間と、自分の時間との関係という点では全部だけど、それを言い出すと殆どの物語や小説は時間系になってしまうのでアレですね。

余計な設定を出さないで、ちゃんとぶっ飛んだ設定に必然性みたいなものを見出せるのがよかったと思う。こういう系の小説であんまりそういうの見かけない。

好きなのは後ろの三つ (出席番号0番・三時間目のまどか・むかし、爆弾がおちてきて) かな。とか思っていると、やっぱ俺はハッピーエンドが好きなのか?とか思っちゃうね。思ってるより俺は 単純なようだ。

  1. トップ
  2. book
  3. そうそう実はメガネ重要