昨日行ってきた@品川・新高輪プリンス。前回 (2000) より全然人が多かった。特に内定者がいっぱい……

そんなにおもいっきり面白い展示があったわけじゃない気がする。SED ぐらいかなぁ。SED は確かに綺麗だった。綺麗だったけど庶民には関係なさそうで略。EOS-5D を持ってみたけど重かった……そして全然関係ないところ (AF フレームがファインダーに映るとか) に感動してた。どれにでもついてるよボケ。Wireless IXY は意味があるのか疑問だったんだけど、実際見てみてやっぱり疑問だった。デジタル一眼が Wireless でコンピュータに直接転送できたら便利かもしれないけど、アマチュアには関係ない話だなぁとかなんとか。

ってことで面白さとしては携帯プロジェクタがなんかやけにかっこよくてよかった。チラついてたけど。

ソフトウェア関連で Microsoft と云々が……Canon のカラーマネージメントソフトウェアが Windows Vista に搭載されるとか、ぶっちゃけどうでもいいのでよく見てこなかったけど……

なんかあとは自動システムが多かったなぁ。顔識別・笑顔識別・オート追尾とか。

デジタル一眼欲しい。

印刷データ管理とかいってるけど、印刷しなくてすむようなシステムになるべきとか言ってたらキヤノンはプリンタ作ってんダカラ!とか怒られた (誰に)。わろす。

詳細 @Impress Watch

  1. トップ
  2. tech
  3. Canon EXPO 2005 in Tokyo
  1. トップ
  2. life
  3. Canon EXPO 2005 in Tokyo

 /tmp/ruby-GD-0.7.4
$ ruby extconf.rb
checking for main() in -lz... yes
checking for main() in -lpng... yes
checking for gdImagePng() in -lgd... yes   
checking for main() in -lm... yes
checking for gdImageColorResolve()... yes
creating Makefile                        
/tmp/ruby-GD-0.7.4
$ make
gcc -g -O2   -I. -I/usr/lib/ruby/1.8/i386-cygwin -I/usr/lib/ruby/1.8/i386-cygwin -I. -DHAVE_GDIMAGECOLORRESOLVE -I/usr/local/include  -c GD.c
gcc -shared -s -Wl,--enable-auto-import,--export-all  -L"/usr/local/lib" -L"/usr/lib" -o GD.so GD.o  -lruby -lm -lgd -lpng -lz  -lcrypt
/tmp/ruby-GD-0.7.4
$ make install
/usr/bin/install -c -m 0755 GD.so /usr/lib/ruby/site_ruby/1.8/i386-cygwin
/tmp/ruby-GD-0.7.4
$ ruby -ve 'require "GD"'
ruby 1.8.3 (2005-09-21) [i386-cygwin]
/usr/lib/ruby/site_ruby/1.8/i386-cygwin/GD.so: No such file or directory - /usr/lib/ruby/site_ruby/1.8/i386-cygwin/GD.so (LoadError)
from -e:1
exit 1

意味分からん。いつかはちゃんと動いていたのになぁ。拡張ライブラリが反抗期で僕は悲しい。

  1. トップ
  2. ruby
  3. ruby-gd
  1. トップ
  2. gd
  3. ruby-gd

質素かつやりたいほうだいかつファンタジーな感じにしようと試行錯誤してとりあえず画像は作ったんだけど、どうあがいても実装できないので構造をちょっといぢっちゃおうかな!バレないよね!とか思ったりしたり。とか書いたらバレるじゃんかよ。誰だよこれ書いたやつ。

年賀状も同じ系統にしようかと思ってる。flickr の CC 画像をコラージュしようと思ってたんだけど微妙にそれさえめんどくさくなってきた。ああ、どんどんダメ人間に。どうせダメ人間だよ。悪いかよ。もともとダメ人間だよ。うるさいなぁ。

ちょっとごめんトイレ行って来る、なんて言って席を立ったはいいけど、戻ってきたら自分の座る場所がなかったとか、がんばって作ったはいいけど使われなかったとか、一緒に選んだもののせいで悲しい眼をする誰かを見るとか、そういう気分。たぶんそれいっぱいある。きもちわるいぜ。ぜ。ぜ。ぜ。

つまらないから寝るよ。寝ようよ。夢の中は素晴らしいぜ。

あぁそうそう、言うのを忘れていたけれど、僕は妖精と暮らすから君は君なりに生きてくれよ、って彼がいってたよ。

  1. トップ
  2. css
  3. 新しいサイトスタイルを考えたけどどうしようか以下略
  1. トップ
  2. design
  3. 新しいサイトスタイルを考えたけどどうしようか以下略
  1. トップ
  2. web
  3. 新しいサイトスタイルを考えたけどどうしようか以下略
  1. トップ
  2. dempa
  3. 新しいサイトスタイルを考えたけどどうしようか以下略

誰かと結婚することになったらしい。やたら構造が複雑な建物で結婚式。そして迷う。「あれ? ここ俺のいる場所じゃなくね」とかいいつ迷う。迷う。岩井がでてきて案内される。なんで君はこの建物に詳しいんだ。というかなんでそんなに高速移動ができるんだ。業務用みたいなエスカレータ・エレベータ。これ以上覚えていない。

  1. トップ
  2. life
  3. 夢: 結婚式・黒
  1. トップ
  2. dream
  3. 夢: 結婚式・黒

旅行に行く夢を見た。

ついたのが午前2時ぐらいで、すぐにみんな寝てしまう。俺と、もう一人が近くの崖で何か話をする。話の結果俺は彼を殺す。よくわからんけど。絞殺。あーやってしまったんだなぁ、と思う。

部屋に戻る途中に何か動物的なものに見つかる。ぎりぎりで部屋に入る。同じ部屋のやつが眼を覚ます。そいつは寝ぼけていたのですぐに寝てしまう。このとき午前3時。

起きて、朝食をとる。殺したやつがいる。死んでいない。あー、また俺は生き延びたんだなぁと思う。

  1. トップ
  2. life
  3. 夢: 崖・殺人
  1. トップ
  2. dream
  3. 夢: 崖・殺人

哀さん から (http://mixi.jp/view_diary.pl?id=48756398&owner_id=9740)

ハンドルは何?
さとう / 砂糖 / 佐藤 / cho45
ハンドルの由来は?
さとう
RO にて一時期の間 SyrupNg をキャラ名に (俺はよくキャラを消すので数字をインクリメントさせながら使ってた) していた。固定パーティ (まだギルドが存在していない) だったヤツに「syrup って何?」と訊かれたとき「砂糖水みたいなもん」とか答えたせい。その後砂糖汁だかなんだかを経てありがちな名前の落ち着く。母親の旧姓が佐藤なので特に違和感もなく。
cho45
C12H22O11 を纏めただけ。ユニークっぽいのでユニークさが必要ならこっちを使うことにしてる。
過去のハンドル
素で覚えてない。本名を省略したやつを使っていた (いる) けど親父とかぶるのでできるだけ使わないようにしてる。
本名は?
非常に良くある苗字と、割かしよく見かける名前の組み合わせ。本名でぐぐると 508 件ヒット。巡回リストに同姓同名がいる気がする。漢字はわからんけど。
ハンドルと本名どっちが好き?
ハンドルのほうが好き。本名は響きがあまり好きじゃないし、由来 (過去の政治家の名前) も好きじゃない。といってもハンドルは苗字っぽいし名前が不定なので比べるのが微妙だけど……
過去あだな
苗字一文字とって「っさん」。あと幼稚園ときは「ひーくん」だった。やばいキモイ。
一番大切な人に何と呼ばれたい?
難しいなぁ。「ひろさん」とか呼ばれたい、かもしれない。佐藤って呼ばれたらいいかもしれない。ネットでの活動を知っての上なら。ただあんまり呼び方気にしないかもしれない。全然関係ないけどこの質問に「おにいちゃん」と答えたやつが絶対いそうだ。あー「君」って呼ばれたい。正直「君」って呼ぶ女の子って憧れる。
かわいいと思う名前は?
雪 (ゆき) / 雨 (あめ) / 音[無夢] (ねむ) / 春日 (はるひ)
生まれ変わってもその本名?
いや。美少女で「音夢」という名前かつ眠そうな人間に生まれたい。ムリ。
バトンを回す五人

友人に言われて検索してみて吹きそうだったんですが、「音夢」は某エロゲーのキャラとは全然関係ないです。というかそのゲームやったことないし。

  1. トップ
  2. net
  3. 名前バトン
  1. トップ
  2. self
  3. 名前バトン

午[前後]n時でもいいよ。

内臓えぐりだして見せてやろうか、ということを考えて、それに関することでいくつか決心してみたりするけど、やっぱそういうのに不快的な人もいるわけで、やっぱ考え直したほうがいいんだろうか、今ならまだ戻れるかもしれないぜ、なんていうことを脳内天使と悪魔がささやきあっていたりするけど、脳内天使と悪魔について考えていたら俺には悪魔と悪魔が不毛な議論を重ねているように見えてきたので彼らをどうにかして消去する方法を考えることにした。.scan(/考/).size #=> 4

  1. トップ
  2. life
  3. 午前4時に何かをするのはやめたほうがいい

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