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

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

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

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

  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. 読み終わった特に感想がない本リスト