第三 (神) 視点と、第一 (私) 視点がスイッチされる。第三視点ではモニタから RPG ゲームを見ているように。第一視点では黒い雲が覆う世界で、Yシャツ (ではない気がする。とにかく小奇麗な格好) を着た女性とよくわからない、遠回りな話をしていた。城のようなところの展示会で会う。あちらには思惑がある。第一視点は自分があっちの思惑に気づいていることを気づかれないようにしている。第三視点は城を遠くから見ている。時代がズレているか、混ざり合っている。

  1. トップ
  2. dream
  3. 夢 : RPG 黒 Yシャツガール

現実逃避したくなってきた。12-03 で放置してるキャラが40歳 (2005-09-24 + 7 * 10) だからとりあえずログインするだけしてみるかとか考えつつ、ログインしてもやることないなぁと思ったりするんです。

公式ページからログインしてギルドのアレを見つつ、あー精霊武器とか実装されてんのかーみたいな。でもあれって普通にめんどくさいよなぁ。よなぁ。ハンディクラフトぐらいかなぁ。

  1. トップ
  2. game
  3. mabinogi 12-03
  1. トップ
  2. mabinogi
  3. mabinogi 12-03

前に書いた気がするけど、ECMAScript の var は Io の setSlot に似ている。

var foo; と書くと、既存のスコープの変数オブジェクトのプロパティに foo が作られる。そして foo = "1"; を書くと、スコープチェインの最初に、作られた foo プロパティを発見するため、そこに代入される。

一方 foo = "1";var 無しにいきなり書いた場合、スコープチェインの末 Global オブジェクトにいきつき Global オブジェクトのプロパティに新たに勝手に foo が作られて代入される。

// Global Code の開始
// Scope Chain: [Global]
// Variable Object: Global
//----
// Variable Object (Global)
// のプロパティ foo に "foo" が代入される。
var foo = "foo";
// 上に同じ
var bar = "bar";
function foobar() {
// Function Code の開始
// 新たに Activation Object (=このコンテキストでのVariable Object) が作られる。
//   (このとき arguments プロパティが自動的にセットされる。)
// Scope Chain: [foobarActivationObj, Global]
//     foobarActivationObj は仮の名前で実際にはアクセスできない。
// Variable Object: foobarActivationObj
// Variable Object (foobarActivationObj)
// のプロパティ foo に "fbfb" が代入される。
var foo = "fbfb";
// Identifier があると Scope Chain を辿る。
// この場合最初の foobarActivationObj に foo を発見できる。
foo = "bfbf";
// この場合最初の foobarActivationObj に bar を発見できないため
// Scope Chain を辿り、Global で bar を発見する。
bar = "bzbz";
// この場合 Scope Chain をたどって、Global に行き着いても発見できないため
// 勝手に Global に baz プロパティを作る。
baz = "baz";
baz.foo = "foo";
with (baz) {
// with は Scope Chain の先頭に
// 指定オブジェクトを突っ込む
// Scope Chain : [baz, foobarActivationObj, Global]
foo = "bar";
// Variable Object は変わらない
var f = "!!!";
}
baz.foo; //=> "bar"
baz.f //=> undefined
f; //=> "!!!"
}
foobar();
foo; //=> "foo" 最初にグローバルで代入したまま
bar; //=> "bzbz" 書き換えられている
baz; //=> "baz" グローバルで一切でてきていないのに存在する

Io の場合 = (updateSlot) はスコープチェインに Identifier を発見できない場合例外が発生する。現在の変数オブジェクトのスロットに突っ込むときは := (setSlot) を使用する。Io は明確な決まりがあるんだけど、ECMAScript は曖昧。気が付くと Global オブジェクトにプロパティがだらだらできたりする。

微妙にわかりにくいのは、Global Code においての Variable Object が Global で、変数に this.foo というようにアクセスできるのに対し、Function Code の Variable Object には一切触れないこと

ときどき関数中で var a = b = c = 0; って書いているのを見かけるけど、この場合の b, c は Global オブジェクトのプロパティ (または途中であるならその変数オブジェクトのプロパティ) になる。var a, b, c; a = b = c = 0; とか書くのが正解。

Prototype Chain もそうだけど、「見えないオブジェクト」がいくつかあってなかなか怖い。

  1. トップ
  2. javascript
  3. ECMAScript での var
  1. トップ
  2. script
  3. ECMAScript での var
  1. トップ
  2. prog
  3. ECMAScript での var

この日記同じ日の別セクションをブックマークされても概要が同じになるんだけど、naoyaのはてなダイアリー - はてなブックマークの概要取得の処理 を見てなんとなくわかった。

個別ページの alternate を設定して、個別ページ用の XSLT を書いといた。

けど微妙にうまくいってない気がする。まぁブックマークなんてされないからだいぶ関係ない

  1. トップ
  2. net
  3. for Hatena::Bookmark
  1. トップ
  2. web
  3. for Hatena::Bookmark

寮のようなアパート 異様に汚い炊飯器 大掃除 台所周りを徹底的に綺麗に

AWO拒食症 (何の略か知らん) 食わないうちに食えなくなる。

博物館のような場所。負け犬の視点とスタイルシートの視点がある。負け犬もスタイルシートもたくさんある。俺はそのなかの一つずつに過ぎない。負け犬視点はこれから起こることがどれだけ怖いかわかってない。スタイルシートは自分にマッチする要素をひたすら機械的に探している。

高架下の広場のような場所。少し薄暗い。曇り。バス。カレーハウス。心底むかつくおばさん。制服

  1. トップ
  2. dream
  3. 夢 アパート スタイルシート

ブラウザ上でコードを読もうとしても頭に入らない。

たとえばデザインパターンの例なんかをブラウザ上で見たりする機会は結構あるけど、そういうのってまったく頭に入ってこない。頭が理解しようとしない。

どんなコードでもそうかっていうと違う (Ruby のリファレンスのサンプルコードは頭に入る) んだけど、なんでだろう。なんかただたんにコードの長さと必要性の問題な気がしてきた。

  1. トップ
  2. prog
  3. ブラウザ上でコードを読もうとしても

Canvas を使った gimp like な Triangle Color Selector

ぐるぐる回ります。透過 PNG 版より正確です。正確さなんてどうでもよさそうですけど。

サイズを初期化時に自由に決められるのはいいっすね。似非 Flash

最初 GIMP の描画関数をそのままやってみたんだけど、さすがに重過ぎて使えなかった。頭悪いのでグラデーション系のメソッドでてきとー描画。で実用レベルに。それでも重くてファンの回転数あがるんだけど。

Canvas 使ってる時点でブラウザ限られるわけですけど、Firefox 1.5 でしか見てないです。

中途半端に prototype.js に依存してます。内部的には依存してないけれど、めんどい部分をてきとーに済ませてある。

円形グラデーションは 360 度を色を変えつつ同じ大きさの円で fill しまくって作ってます。案外きれいにいけた。(ただしループ数というか処理がかなり重いので最初の一度だけ描画)

なんか三角形のグラデーションが偽者っぽい

lighter で合成するようにした。

lighter ってなんか変な気もするんだけど……

ぐるぐるしないほうがいい、と思った。

lighter がおかしいんじゃなくて、darker がおかしいんだ。

  1. トップ
  2. web
  3. Canvas を使った gimp like な Triangle Color Selector
  1. トップ
  2. javascript
  3. Canvas を使った gimp like な Triangle Color Selector

null == undefined; //=> true
null === undefined; //=> false
"1" == 1; //=> true
true == 1; //=> true
new String("aaa") == new String("aaa"); //=> false
String("aaa") == String("aaa"); //=> true
String(new String("aaa")) == String(new String("aaa")); //=> true
typeof (new String("aaa")) //=> "object"
typeof String("aaa") //=> "string"
typeof "aaa" //=> "string"
var aaa = "aaa";
aaa.prop = "aaa";
aaa.prop //=> undefined;
var aaa = new String("aaa");
aaa.prop = "aaa";
aaa.prop //=> "aaa";

nullundefined の関係がちょっと意外だった。true == 1 はキモい。

String 周りがちょっとよくわかってなくて一応いろいろやってみた。別に否直感的ではない感じ。

  1. トップ
  2. ecmascript
  3. ECMAScript メモ
  1. トップ
  2. javascript
  3. ECMAScript メモ
  1. トップ
  2. script
  3. ECMAScript メモ

NULL::mabinogi:Tailoring むしゃくしゃしてやった。

無駄だなぁ。無駄っていいなぁ。

canvas 使用なので Firefox 1.5 を要求します。

  • タイムリミット
  • 針の大きさ可変
  • 裏を縫うとき点線になるように(というかマビノギの縫い方おかしい気がする)
  • 針の落ちる位置のランダム化

壮絶なスペルミスしてた。

setInterval を使ってもマルチスレッドになるわけじゃないからタイムリミットつけるのは無理くさい。

setInterval でのみ描画させるようにすればいけるか。つまり普通のゲームと同じような Frame ずばば式。

これだとページ開いてる間ずっと重くなるけどなぁ。

タイマー実装。

  1. トップ
  2. javascript
  3. canvas を使った mabinogi 裁縫練習機
  1. トップ
  2. game
  3. canvas を使った mabinogi 裁縫練習機
  1. トップ
  2. mabinogi
  3. canvas を使った mabinogi 裁縫練習機

ところで思うんだが、占いのコーナーってアレ何。これから眠るのに、成功に向けて努力しましょうとか言われて、結構感じ悪いんですけど。

制服は生徒的な目的がないとだめなようだ。例えばコスプレの場合、着ること自体に意味を求めているのでダメだ。例えば昔を思い出してもう一度着てみるなんていう場合、着ることを通して生徒であったときを思い返すのが目的なのでいい。みたいな話をした。なんて無駄な、っていうか VIP STAR のクロリティのタカス具合にすごく、、いいです、、な気分になって少し幸せです。幸せの99%は無駄なことからキているに違いありません。だからほら、ジョジョとかさ、ね? ジョジョ知らないけどね?

あぁ、なんてキモスなセクションなのだろう。俺はどこで間違った! と言ったところで何もわかるはずもなく、わかっても戻れるわけもなく、かつてアレなことをしてしまったアレな人にとても申し訳なく思ったりいたしますがきっとヤツは俺のことを覚えていないでしょう、と、頭の中の誰かが僕に語りかけるわけですが、私としてはそんなこと気にしてちゃだめよ、なんて、いや君、もうほら、TAB とスペースを混ぜてインデントするっていうぐらいの気持ち悪さとか、めざましテレビで HP (あえて全角) とかいうテロップが出てへこみつつ、いまだにウェブサイトっていう呼び方に拘ってるとかキモすぎだよと思い今度からホームページって言うことにしようかなぁなんてホームページって言ってる自分を想像して、あぁこれは語尾を「だお」にするくらい嫌かもしれないんだお、とか、さ。でもって、ちょっとフライング気味に一年間振り返ってみたりするんだけど、何が変わって何が変わっていないのかがひどく曖昧で困っちゃうね。ホント困っちゃうね。カフェインでブーストしてるといつまでに書き続けられそうでなんだかあれだなぁ。今の俺は今何も頭の中で考えるウェイトをおかずにキーボードの手に命令がくだされていたりするから、これを後で見直したらいつもの脳みその中を少しは理解というか、どんだけバカなことを繰り返しているかがわかるかもしれないなあうん。ゆけーよゆけーゆゆけーよとかシロップ、シロッパー、シロッペスト、シロッピング、シロッピングってショッピングと似てるよなぁ、これ実は大発見だったりするのかなぁ? とりあえず XML Master はそんなに指標にならんと思ったこの頃。結局どんな人かを見るには彼が作ったウェブサイトを見るのが一番てっとりばやくて、いかに見えない部分に手かけたり、理想をもっているかとか、そういうのが重要なんであって、表面的に何かを動作させる何かっていうのは別になんの意味もないんだよね。いや社会的というかビジネス的には意味があるかもしれない。人によっては社会的・ビジネス的な意味がすべてなのかもしれない。どうでもいいよ。お金ください。ここのところ全くお金使ってない。まじにーと。しかしながら俺以外の誰かのお金は消費されていくし、その中には俺のために使われたお金があり、それは俺の見えない部分にあったりもするので、やっぱりお金ください。鏡を見よ。鏡を見ようとするとブックレットが抜かれた TITLE (ストレイテナー) があり、アーティストの名前を書くたび、Music Brains の Case insensitive にムカツいていた自分を思い出して嫌な気分になる。もう syrup16g は syrup16g と書くことにした。っていうかそろそろ CD 出す気になったんだよねぇ。前のインタビューでそんなことを読んだ気がする。どうせならもっと溜めまくって音声だけの CD なのに5枚組みとかやって欲しいなぁとも思ったりするけど、余裕で一日で聞ききれないし買う楽しみが減ってしまうからやっぱりアルバムを数回出したほうがいいかなぁ。そろそろだいぶ左指が疲れてきた。っていうかブラインドタッチじゃない上に、でこぼこ式キーボード (not パンタグラフ・ノート式) だから腕も疲れる。むしろツリそう。やっぱキーボードを買うべきか。そして俺はまたお金を失うのだ。だ。だ! とか本気で書いてマジ、なんて古いなダサいな、で疲れたからやめよう。誰も読まないっていうか読めないですが、こういうのをたまに書かないと日記ではなくブログ化してしまい、結果的に「自分以外の誰かの」ためのウェブサイトになってしまう危険性があるのでやっぱちゃんと日記として機能させないとなぁと改めて思うのでした。

>ところで
I stopped reading here.

  1. トップ
  2. music
  3. タクシードライバーブラインドネス but 夢 と制服の纒
  1. トップ
  2. syrup16g
  3. タクシードライバーブラインドネス but 夢 と制服の纒

NUll::colors*canvas, キャンバス使用版

16進数直入力とか欲しかったのでカラーセレクターの部分を分離してひとつクラスかぶせた。インターフェイスは (殆ど) 同じなので特に大変な部分はなく、セレクター部分を作りさえすれば簡単に追加できるように。

  • Triangle の場合ダブルクリックでぐるぐるしなくなるように。微妙に混乱するので。
  • 数値直入力は RGB, HSV の各項目にフォーカスしたあとホイールで増減できるように。
  • プレビューエリアに設定した色 D&D できるように。このためクリックでモード切替はできなくなった。ほかのプレビュー領域と、カラーセレクターへのドロップが可能
  1. トップ
  2. color
  3. NULL::colors*canvas
  1. トップ
  2. javascript
  3. NULL::colors*canvas
  1. トップ
  2. canvas
  3. NULL::colors*canvas

「足跡その価値も消えていた」のあとってなんて歌っているんだろう? true side story? truth I'd truthfully? 意味はわからんけどこんな感じに聞こえる。true side story だとエロゲっぽくていいんだけど、なんか、なぁ?

  1. トップ
  2. music
  3. BURGER NUDS エコーの間奏

$LOAD_PATH.unshift するのがめんどい。SetEnv なんてディレクティブ知らなかった。そんな感じなので SetEnv RUBYLIB /virtual/lowreal/lib/ruby:/virtual/lowreal/lib/ruby/i686-linux を public_html 直下の .htaccess に追記。ローカル環境の拡張ライブラリは普通にインストールするように。

  1. トップ
  2. ruby
  3. .htaccess SetEnv RUBYLIB

よくわからないセクションタイトルだけど、どうしても Ruby on Rails を使う気にならない。でも使えたほうが 2.0 っぽくてかっこよさそう、というか Ruby 書けるとか言うくせに Rails 触ったことないなんて言ったら怒られそうだし、嫌だなぁ。ていうか 2.0 っていうのが胡散臭くてどうも苦手っていうか、そういう方向は好きなんだけど、2.0って何よっていうか、Ruby 2.0 楽しみだなぁ。でもプログラムかいてて楽しいってバージョン 0.2 ぐらいじゃないですか、みたいな、よくわからない脳内回路。

まずバックエンドのデータベースが MySQL とか PostgreSQL とかだと、データの実態が見えなくて気持ち悪すぎ。SQLite はよさげなんだけど、なぜか上手くインストールできない。別に SQL とか DB 自体が嫌いとか苦手なんじゃないんだけど、データの管理方法が手の届かないところにあるのは耐えられない。

こう、Rails でものっすっげぇアプリケーションがあって、それが現状を何かしらすっごい勢いで面白くするなら、もうちょっと必死こいて使う気に (そのプログラムを読んで改造する気=ハックする気、に) なるのかもしれないんだけど、どうも開発が超ハヤイ!とか、MVC!とかデータベース超扱いやすいとかいう話ばっかりで、どんなアプリケーションがあるのかよくわからん。知ろうとしていないだけかもしれないけど、なんだかよくわからない。

  1. トップ
  2. ruby
  3. Ruby on Rails を使う気になりたい

コメント書き込みがちょいとできなくなります。

とりあえずスクリプトを入れ替えてみました。Ruby + libxml-ruby + ruby-xslt

結構重いっぽい。コメント・トラックバックは独断と偏見によりセクションごとに振り分けました。

  • Atom フィードしろよ。
  • コメントスパムのよさげな対策。

HEAD アクセスの対応(激しくめんどい

  1. トップ
  2. taglibro
  3. new Script()

ひとつの XSL ファイルで全部 (最新も個別表示も月毎表示も) 変換させるようにしたので (Ruby 側で差分をカット) いろいろなフォーマットで出力してみる。

/logs/latest.rdf
いわずと知れた RSS1.0
/logs/latest.atom
Atom 1.0
/logs/latest.txt
Plain Text
/logs/latest.json
JSON Feed (meta)
  1. トップ
  2. web
  3. いろんなフォーマット
  1. トップ
  2. feed
  3. いろんなフォーマット

ページめくりと書くとスカートめくりを想像しちゃうよね。

latest のページングを実装した。気が付いてみると簡単に実装できそうだったのでやっつけ。?page=n で数字が大きいほど過去のものを見れる。で、この場合、link 要素の prev, next の方向が悩ましい。?page=n の数字が増えるってことは普通「次のページに進む」ってことだけど、内容的には「過去のページに戻る」なんだよなぁ。前は prev だけ設定して「表示されていない最新の日」をリンクしていたけど、今は prev, next をそれぞれ「前のページ」「次のページ」にしてある。

どっちでもいいよ。

  1. トップ
  2. taglibro
  3. 最新記事のページめくり
  1. トップ
  2. web
  3. 最新記事のページめくり

数日前から、音楽鳴らしている PC の USB オーディオがいつのまにか未接続状態になる。PC を再起動すると直るので PC 側の問題なのだろうけど、再起動させようとしてもソフト的には無理 (終了してくれない)、すなわちハードリセットをすることになる。二日に一度程度で症状が出る。二日に一度はハードリセットするハメになる。IRC ゲートウェイなんかもコイツの上で動いているのでいちいち接続を切らしてしまう。起動するとレジストリエラーから回復しましたとか言われる。wu*.exe (Windows Update Service) が強制終了を繰り返す。うざったいことこの上ない。とりあえず Automatic Update サービスをとめた。オーディオのほうは直らない。うざい。うざい。うざい。何もしないならずっと安定して走り続けて欲しい。余計なことするな。前回の Windows Update ぐらいからだから、とりあえず Update を削除したい。どうせ削除したって直りはしないのだが。

ついでに安定していたその PC にも、描画が完全にとまり、マウスとかキーボード入力とかを一切拒否する症状がうつった。もうやだ。コンピュータハードウェアなんて大嫌いだ。

それに、今書いているメインコンピュータは、今までの「いきなり描画とまってハードリセットしかないで症」に加えて、「Firefox のプロファイルがぶっ壊れまくる症」が発症した。もっと安定な PC が欲しい。安定な Pc ってどうやって手に入れるんだ。

それとシャープのノートパソコンは、一年たつと絶対にバックライトが接触不良で付いたり付かなかったりするようになるので買ってはいけない。絶対に。

とか書いていたらまた死んだ。もうやだよホント。なんでこんなことばっかりなんだろう。

ハードリセットしたらまたレジストリの回復のダイアログ

ついに起動しなくなった。BIOS メニューさえ立ち上がらない。CPU かマザーボードがいかれたようだ? もうだめだ。

音楽データとかが入っていたハードディスクは古いほうの規格なのでこのコンピュータにつながらない。もうだめだ。

このコンピュータも極めて不安定だから、いつ PC が使えなくなってもおかしくない。もうだめだ。

俺が何をしたっていうんだろうか。というか、俺はなんで普通に生きられないんだろう。つまり、なんで俺は世界の中心で愛を叫ぶまじいいよwwとか、オレンジレンジ最高だぜ!とかいうことができないんだろう。

書いているそばから描画が完全に停止した。ほんともう嫌だ。ちゃんとした PC が欲しい。誰がちゃんとした PC を作っているんだろう。でも俺には買う金もないのだけれど。

  1. トップ
  2. pc
  3. 安定・非安定化

サンダーどーん

G3 のクエなんて知らないよ!

ギルメンにページをもらったり、露天で買ったり、4Pを買い取りだしたりしてサンダーを取得。タノシス。

今さっき、オスナサイルで遊んでいたら指令書がでて、使おうと思ったらテロップがッっていう勢いで、ミニクマを発見し、羊おおかみに打とうとしたのだけど、あっけなく羊オオカミの射程とサンダーの射程が殆ど同じだったりして見つかってやべこれやべなんてことをしつつ、まぁでも一応少しサンダーのほうが広いので一回逃げてからドキドキしつつフルチャージして打った、の、はいいんだけど、一発にかける羊オオカミに打ったらミニクマにチェインし、しかもどっちも生き残るっていういぢめ。幸いカウンターやらでしのいでメイスに持ち替え生き残った。

画像のやつはギルメンにラビ下級の通行証をもらっていってみたときの。回線の具合が果てしなく悪いためタイトルを一発熊にして戦闘時間を短くするようにしてみたのだけど、結局ラグには勝てず一回死んだり。レッドサキュにサンダーうったらカキンカキンいいながら一発っていう何この微妙な強さ。

  1. トップ
  2. game
  3. mabinogi G3 but サンダー
  1. トップ
  2. mabinogi
  3. mabinogi G3 but サンダー

ちょっとウケすぎる。

  • SWAN SONG (とそれ以降の ART-SCHOOL)
  • メロディーフラッグ (BUMP OF CHICKEN)
  • エコー (BURGER NUDS)
  • ハルジオン (BUMP OF CHICKEN)

それぞれがいくつかに分かれて混ざって出てくる。unordered list

P123 の二段目から三段目にかけてとP135 の二段目がアレなんだけど思い出せない。なんだっけこれ。

かなりどうでもいいけど、こういう展開でハッピーエンドだとマジでムカツクなあ。別にいいんだけどさ!

  1. トップ
  2. book
  3. しにがみのバラッド。てのひらの銀河<後篇> Cherish You (Side-B)
  1. トップ
  2. music
  3. しにがみのバラッド。てのひらの銀河<後篇> Cherish You (Side-B)

とりいそぎ半壊したノートPC を音楽再生用にでっちあげたのだけれど、モニタにつなぐとぼやける。まぁいいんだけど。不安定なら最高。

ところで、砂糖菓子の弾丸は撃ちぬけない を読んだ。人魚云々にリアリティを感じられるかは人による気がするけれど俺はあれぐらいぶっ飛んでいたほうが違和感がないと思う。担任の先生がいい感じ。

  1. トップ
  2. book
  3. ピントが合わないようだ
  1. トップ
  2. pc
  3. ピントが合わないようだ

mixi はいつまで β なの?

mabinogi のサイトがまた Gecko でログインできない。前のときの教訓がまったく生かせてない。一回修正されたのに、リニューアルとともにバカなことを復活させるバカデザイナ。Opera の場合、見れることは見れるけど表示が崩れる。さらにはログインするとスクリプトエラーで見れなくなる。こんなウェブサイトでもいいんだなぁ。

  1. トップ
  2. net
  3. mixi, mabinogi
  1. トップ
  2. web
  3. mixi, mabinogi
  1. トップ
  2. mabinogi
  3. mixi, mabinogi

全部 XML から XSLT プロセッサを通して XHTML やらなにやらを生成してる。日記部分は動的に、/about とかは静的に、それぞれ別のスクリプトが変換を担当している。日記は taglibro と呼ばれるスクリプト。静的リソースは名前のない build.rb というスクリプトが変換してる。build.rb は Makefile の類でもよさそうだけど、Ruby で書いておいたほうがなんでもできるのでいいや、みたいな。

common.xsl
サイト共通のテンプレートが書いてある。例えば head 要素内やつ。CSS とか、スクリプトを加えたいときはコレだけ編集してサイト全体を再変換させている。XHTML 用。
2html.xsl
静的リソースを変換するためのファイル。ソース XML はちょっとキモイんだけど、実用上問題ないのでいいや、みたいなヤッツケ的スタイルシート。だいぶ前に書いた。
logs/common.xsl
taglibro (日記) 用の共通部分。各種変数 (Content-type 非依存) なものがまとめて書いてある。flavor.(\w+).xsl から include されてる。
logs/flavor.xhtml.xsl
taglibro の XHTML 用テンプレート。

本当なら、taglibro は Accept ヘッダを解析してそれにあったやつを返すべきなんだけどめんどっちくて実装してない。これを実装すると IE に application/xhtml+xml を送らないようにする処理がなくせていいんだけど……(text/html を受け付けるなら flavor.html.xsl を読み込むようにする、flavor.html.xsl は flavor.xhtml.xsl なり、共通部分を分離した他の .xsl を include してやる、みたいな。)

  1. トップ
  2. web
  3. このサイトの構築構造
  1. トップ
  2. xslt
  3. このサイトの構築構造
  1. トップ
  2. taglibro
  3. このサイトの構築構造

昔 (といっても2-3年前) は PHP が好きだったんだよなぁ。なんでだろう。HTML に埋め込み、ウェブに特化してるってのがよかったんだろうか。

そういえば、そのころはデータベース使うのも特に抵抗がなかった。

とりあえず、少なくとも Ruby を知らなかったっていうのはある気がする。Perl は暗号で読めないし、PHP には一応日本語のリファレンスがちゃんとあったから、とっつきやすかったのかもしれない。

なんていったらいいかよくわからないんだけど、感覚としては Ruby は優しくかつ筋が通ってる感じ、Perl は玄人、PHP は楽ちんダサみたいな。いやでも比べるのが間違ってるんだろうなぁ。PHP ってなんかそこらへんの個人がやっつけで作ったマクロ言語っぽい臭いがするし。

とはいえ実用的っていえば実用的なのが PHP のキモさというかなんというか。ほげーっとしつつてきとーに書いても 500 が出にくいところがいいのかもしれない。

関係ないけど Ruby で CGI 書くときは一枚ラッパ書けるようにした。500 でるとこんなかんじになるように。#!/usr/local/bin/ruby /virtual/lowreal/bin/rubycgi.rb みたいな。ローカルは Windows だから関連付けで Apache どーん

なんか日本語書けない。もともと書けないけどさ。

  1. トップ
  2. php
  3. 昔はPHPが
  1. トップ
  2. web
  3. 昔はPHPが
  1. トップ
  2. prog
  3. 昔はPHPが

次の式を評価せよとかいう問題で (-5 != -5) * 1.5 + 6 とかいうのがでた。実数の場合小数点以下二位まで書けとかいう問題。解答欄には 6 と書いたけど、今実行してみたら 6.00 だった。しらねぇよと。。0 なんて実数でも整数でもいいだから型変換しなくていいじゃん。とかいうと整数ならなんでもそうだろという話になるけど。

C 言語で評価せよなんて書いてなかったから素直に undefined method `*' for false:FalseClass と書けばよかった。解答欄が小さいのがいぢめだ。

  1. トップ
  2. prog
  3. プログラミングのテスト
  1. トップ
  2. school
  3. プログラミングのテスト

SuSE をインスコしようと思ったんだけど not enough memory とか言われて YaST 起動しなかった。IRC で text mode にやるかとか言っていると、じゅんたそが ubuntu のほうがいいよと。そして ubuntu インスコ。ただし ubuntu-ja

何もせず、まったく問題も出ずに起動した。

% sudo vi /etc/hosts
192.168.1.2 Nina #追記
% sudo apt-get install synergy
% synergyc nina
$ sudo apt-get install ssh
% sudo apt-get install smbfs
% sudo mount -t smbfs -o username=ユーザ名,password=パスワード,codepage=cp932,iocharset=utf8 //Nina/music /mnt/music
% sudo vi /etc/fstab
# 上野がうまくいったら追記
//Nina/music  /mnt/music smbfs username=ユーザ名,password=パスワード,codepage=cp932,iocharset=utf8 0 0
# rhythmbox を使う:
% sudo apt-get install gstreamer0.8-mad # mp3 再生・文字化け対策
% sudo apt-get install rbscrobbler # Last.fm plugin
% cd /usr/share/rbscrobbler
% sudo rm Audioscrobbler.pyc
% sudo rm Audioscrobbler.pyo
% sudo cp Audioscrobbler.py Audioscrobbler.py.org
% sudo vi Audioscrobbler.py
Audioscrobbler.py
L311:
unicode(input, 'iso-8859-1')
-> unicode(input).encode('utf-8') # Topia 氏による。神すぎる
% rbscrobbler
# User, Pass を入力
  1. トップ
  2. linux
  3. ubuntu インスコ
  1. トップ
  2. music
  3. ubuntu インスコ
  1. トップ
  2. pc
  3. ubuntu インスコ

貧弱 PC なので WM を xfce に。

% sudo apt-get install xfce4
ログアウト。gdm で xfce セッションを選びデフォルトに
# 自動起動
% cd ~/Desktop
% mkdir Autostart
% vi autostart.sh
% cat autostart.sh
#!/usr/bin
rbscrobbler &
# synergy の自動起動 ログイン画面から
% cd /etc/X11/gdm
% sudo cp Init/Default Init/Default.org
% sudo vi Init/Default
/usr/bin/killall synergyc
sleep 1
/usr/bin/synergyc nina
ファイルの先頭に追記
% sudo vi PostLogin/Default
新しいファイル
#!/bin/sh
/usr/bin/killall synergyc
sleep 1
% sudo cp Xsession Xsession.org
% sudo vi Xsession
/usr/bin/killall synergyc
sleep 1
/usr/bin/synergyc nina
ファイルの先頭に追記

そしてまた rbscrobbler が handshake で止まるように……原因わからん。いぢってないし。

  1. トップ
  2. linux
  3. ubuntu 続き
  1. トップ
  2. pc
  3. ubuntu 続き

ART-SCHOOL sleep flowers

買ってきた。結構微妙。

PV は LOST IN THE AIR 以外微妙。TV SPOT はいいんだけど……

曲数がめっさ多い。

グラスゴーでの風景ででてくる女の子 (BGM が影のとき) がギガカワイス。一瞬だけだけれど。

  1. トップ
  2. music
  3. sleep flowers / ART-SCHOOL

やばいまともなのができない。そして手持ちの年賀状がすべてフォト用のやつじゃない。やれやれ。

  1. トップ
  2. life
  3. 年賀状書けない

息抜きに (ならないかもしれないけれど) 自分が理系なのか文系なのかを考える。

単純に学校やら学科やら興味がある分野で決定させようとする。これだと、中学から高校一年までが理系ということにはなる。高校二年から大学入学までは文系。入学後は情報なので不定になる。つまり今どっちかは単純に決定できない。する必要ないけど白黒気になるわけで、っと二元論的に考えてしまうこれは、きっと若さゆえでしょうか!

どちらかといえば文系のほうが好きだけど、筋が通ってないとむかつく。特に根本的な理不尽さがむしろ耐えられない。例えば俺の前で歩きタバコをしているやつは、タバコを吸いながら幸せな気分なのだろうけど、その一方で俺は、何も悪いことをしたわけでもないのに、そのタバコの煙で心底むかつく思いをする、というようなこと。この場合、視野を広げて、もしかして俺は過去に何か悪いことをしたんだろうか、とか考えるわけだけど、思いつかないで終わる。思いつかない、というのは別に俺は全く悪いことをしていないという意味じゃない。ちなみに宗教的な話は嫌いなのでやめてください。ていうかこの件については素で疑問だから誰か納得できる方法で説明して欲しい。バイトをしたいのに、バイトをしたくない状態になってしまった理由とか。説明して欲しい、とか頭の悪い文章を今書いている理由とか。

しかしやっぱり (何がやっぱり?) 情報っていうと理系に入るんだろうか。そういえば次年度から所属学部の入試で文系オンリー受験ができる (いままで数学必須) ようになるみたい。センター入試だと既にできてた (で、センター文系入試で俺は入った) けれど。

もういいや、不毛

  1. トップ
  2. life
  3. 理系か文系か
  1. トップ
  2. self
  3. 理系か文系か

一部の年賀状は昨日出した。あとはメタデータ付の jpeg ファイルを作らねばならない。

友達からメールがきてアルバムがどうとかで手伝ってくれ、といわれたけれど、出力が PDF とかいう俺的には未知の領域だったのでまったく手伝えませんでした。まる。いやまじその辺は無理よ。ウェブサイトだったらそれなりに頑張るけどさ。それなりに、ね。

で、Topia さんクセロPDF がどうとかって言っていてたので、インスコしてみた。結構よさげ。だけど Fx からだと出力が文字化けする、あるいは失敗する。まぁいいや。

  1. トップ
  2. life
  3. 今日をつづる。年賀状・PDF

シャーロットe.p. / ART-SCHOOL

シャーロットe.p. に入っているやつ。シャーロットe.p. 以外には入ってない。これが sleep flowers に収録されていて、あらためて素敵な曲だなぁと思った。最近出たアルバムのどの曲より綺麗だと思う。冬の快晴の朝、マフラーに白い息を吐いているハーマイオニーなみ。キモイ喩えですね。ははは。

これ歌った後の MC で「日記書いて!」という客からの声。キノショタ氏曰く「日記書くのねぇ……めんどくさいんだ。マジで」で苦笑。うけた。ヘッドフォンで聞かないと MC 聞き取れないです。

この水の中で いつまで夢を見ているの

あとさ、sleep flowers は SKIRT のアコースティックバージョンがよかった。SKIRT 普通に好きだ。

それと、ガラスの墓標が収録されているのだけれど、なんかちょっと静かだよね。BOYS DON'T CRY と比べて。よくわかんないけど。

  1. プール
  2. SKIRT (Acoustic)
  3. SWAN SONG
  4. ガラスの墓標
  5. ニーナの為に
  6. 水の中のナイフ
  7. MISS WORLD
  8. NEGATIVE
  9. BOY MEETS GIRL
  10. クロエ

やっぱ ART-SCHOOL は第一期のほうが好きだなぁ。そんなわけで、たぶん次のCDからは買わない。

なんか第二期になってから一気に開放されてつまらなくなった。もっと混沌としていて、不毛というか、混乱というか、こう、ぐちゃぐちゃとしていて、胸にあるわだかまりが、そのまま表現された感じがよかったのに、そういうのがなくなってしまった。曲調からも詞からも。

と、こっちに書いておく。

  1. トップ
  2. music
  3. プール / ART-SCHOOL と Helvetica の幻想

指輪

なんかもう今のスタイル飽きて新しく作ろうと思ったんだけど、中途半端に画像作ったところで飽きた。より正確に言うと、クロスブラウザを頭のなかで考え出してつかれた。正直、今の俺に、クロスブラウザを考慮して CSS を書く力がない。

手の画像は Spindly by salt fork です。素晴らしい。この画像なかったらただの白黒。

  1. トップ
  2. css
  3. カススタ を書こうと思ったんだ。

なんかエラー吐くようになっていたので、取り急ぎ sablot を ruby-xslt に、Uconv を NKF に置き換え、文字コード周りを少し整理。Namazu にクエリー出すときは EUC-JP じゃないといけないのがうざったい。

sablot から ruby-xslt にした弊害で、RTF がノードセットとして扱えるバグを利用していた部分がエラーを吐いた。めんどいのでコメントアウト。

  1. トップ
  2. web
  3. namazu 検索エラー

コメント欄参照。このセクションは無駄無駄無駄。

DVD Decrypter だけだと一気に取り込むしかできないっぽい? めんどうくさいけど、いくつか組み合わせて実現する。

sleep flowers を mp3 に変換したいのでやっている。ライブ DVD なので、PGC が一個しかないし、ストリームも video と Audio だけ。複雑な DVD だと以下の方法だけだと無理だと思う。ということを先に書いておく。

まず DVD Decrypter で抜き出す。下準備として、Setting の IFO Mode タブ、Create Additional File で Chapter Information - OGG にチェックを入れておく。あとで分割するとき使う。んで、IFO Mode にして、抜き出したい PGC を選択、Stream Proccesing タブで Enable Stream Processing にチェックを入れ、Video のチェックをはずし、Decrypt。あー、先に File Splitting を None にしたほうがよかった。デフォルトだと 1G 超えると分割されてしまう。

で、できた Chapter Information - OGG.txt を変換かける。

#!/usr/local/bin/ruby
LAST = "02:07:56.0" # 2h, 7min, 56sec
ci = File.readlines("VTS_01 - Chapter Information - OGG.txt")
tmp = []
ci.each_with_index do |item, index|
tmp << item if index % 2 == 0
end
ci = tmp
ci << "LAST=" + LAST
ci.collect! {|i| i.chomp.split(/=/)[1].split(/:/).collect {|i| Float(i)}}
p ci.length
File.open("temp.wav_tracks.txt", "w") do |f|
ci.each_index do |i|
break if i >= ci.length - 1
a = "%02d:%05.2f" % [ci[i][0] * 60 + ci[i][1], ci[i][2]]
b = "%02d:%05.2f" % [ci[i+1][0] * 60 + ci[i+1][1], ci[i+1][2]]
f.puts "  #{a}-- #{b}"
end
end

Chapter Information に含まれていないので LAST に抽出した wav ファイルの長さを入れとく。んで実行させる。

wav 分割に wavez を使う。

Wave 分割タブを選び、処理対象ファイルを指定、保存した分割区間のロードで temp.wav_tracks.txt をロード。あとは実行。出力先はてきとーに。

これで分割された wav ができるので、CDex なりなんなりで mp3 化。タグは自分で頑張って打つ以外ない。

なんかズレるっぽい。Charpter Information が悪いのか、wavez が悪いのか

wav にした時点でズレてるなぁ。これはもう耳で切ったほうがいいかもわからんね

  1. トップ
  2. music
  3. DVD からチャプターごとの音声ファイルを抜き出す。

ちょっと似ていると思いませんか? 言葉の響きが。

SQLite + Ruby をしたいのでインスコ。on cygwin

  • SQLite Download Page から、sqlite-source-3_2_8.zip をダウンロードして展開。
  • cd sqlite-3.2.8 ; ./configure ; make でどーん。
  • sqlite3.la.lib/sqlite3.a/lib にコピー
  • RubyForge: SQLite-Ruby から sqlite-ruby-2.2.3.tar.bz2 をダウンロードして展開
  • sqlite3.h とかを sqlite3-ruby-1.1.0/ext/sqlite3_api にコピー
  • ruby setup.rb

インスコだけ。

というか XREA で SQLite 使えるだろうか。

ニャー速。:新ジャンル:素直シュール

女「クチャクチャ」
男「・・・」
女「クチャクチャ」
男「俺にもちょうだい」
女「クチャクチャ」
男「ガムちょうだい」
女「・・・」
男「・・・」
女「噛んでるふりでした」
男「・・・」
女「ガム噛んでるとおもった?」
男「・・・」

これやばいと思うんだ。久々に捉まれた気分。いや本当にやばいと思うんだよ。

  1. トップ
  2. pc
  3. 素直シュールと SQLite
  1. トップ
  2. soft
  3. 素直シュールと SQLite
  1. トップ
  2. ruby
  3. 素直シュールと SQLite

ふらふらと洗濯機から女の子っていうあからさまな言葉で検索かけたらこんなの見つけた。

アイリッシュモルト って何だろうと思って検索かけたけどよくわからなかった。紅茶? tea time とか言ってるから紅茶か。

ていうかニヤニヤしちゃうなこれ。今のところぐぐると 16 件しかヒットしない。もっと流行んないかなぁ。

  1. トップ
  2. washer
  3. 洗濯機から女の子

タイトルと内容が全く関係ないんだけどさ、mms://stream2.halsc.com/ellegarden/space_sonic_500k.wmv (Space Sonic / ELLEGARDEN の PV) がキモカッコイイよ。

GDHM は来年にはきっと CD を出すに違いない。レコーディングがどうとか言ってたしね?

ELLEGARDEN って最近アレだなぁって思って聞いてなかった (DON'T TRUST ANYONE BUT US が一番だなぁと) んだけど、Space Sonic が予想以上にいいなぁ。

  1. トップ
  2. music
  3. 町一番のブサイクに子供ができた なんて素晴らしい朝だろう

パクられてこなかった人の気持ちを考えたことがありますか?胸に手を当てて考えてみてください! にウケつつ。いやほんともっとパクりパクられが流行ったら過程で洗練されていくんだろうなぁとかなんとか。

ていうかパクられたいなぁ。パクられるようなモノがないのがアレだ。来年はパクられるのを目標にしよう。とかいって、目標なんて言ってやる気になるわけじゃないんだけどさ。だめ人間だなぁハハハ。

  1. トップ
  2. life
  3. パクられたい。
  1. トップ
  2. net
  3. パクられたい。
  1. トップ
  2. web
  3. パクられたい。

流れ的には受験と卒業と入学と orz ってところですか。というか今年受験したんだなぁ……なんかそんな気がしない。なんつっても微塵も努力してないからね。ポケットには勇気のかけらも入ってないし。

三角形カラーピッカー
初期版の TCS
モラトリアムの延長について
受験終わり
18歳 無職
卒業
どこかの誰かが~する夜
最後の RO
脳内回路
KNEG
Musical Baton
バトン系のアレといえば Musical Baton っすね。
XML Master ツレ受験オフ
オフ。同じ日に順列オフ
脳内回路
脳内回路ってセクションをまた発見した。KNEG
洗濯機から女の子
これこのサイトに書いたのはホントにこれが最初なんだなぁ。実際このネタが始まったのが 2004 年の8月ごろだから、まる一年ぐらい一切触れてなかったっていう謎さ。mixi コミュはそっこーで作っているにも関わらず。
適職診断
なんかうける。
pukiwiki の URI をクールに
改造済みのをコピって別のところでも使っていたりする。いっかいやってしまうといい感じ。
穴掘りなおし
設定した PC が逝ってしまわれたから、もう一度掘りなおさないといけない。めんどい。
タイムトラベラーの固有時間
KNEG
CROSS†CHANNEL
書きすぎ
rereload memo
再読記録
Meta*Headphone-Girls の CSS
ここら辺からまじめに MHPG を動かし始める。
やる気あるんだかないんだか
コメント欄
名前バトン
素直シュールな娘に君って呼ばれたい。ガム噛んでると思った?
xml-mode in textarea
のちに ETA に。
二年次専攻コース洗濯
コンテンツコースにしました。二年次になれるかわかんないんだけど。ってーあレポート書かないといけない。誰か書いてくれないかなぁ。
*-mode in textarea
ETA
日記・日記
ホントに。夢についてとかは日記に書いておかないと二度と思い出さないことの代表だろうなぁ。書いてあると結構鮮明に思い出せる。
新しい CSS を適用
今のスタイルはこの日から。
CSS 本来の力・XHTML のあるべき姿
やけに人気だったセクション。結局のとこ使えないんだけどね。
NULL::colors2
それなりに人気だったセクション。技術的には全く難しいことをしてないわけで、いかにコスメティックな部分が重要かってのを思い知らされたというか……
ECMAScript での var
こういうネタが好きな人は多い。っていうか誰か prototype chain を視覚的にわかるようにして! ECMAScript の仕様にも図があって、わかんないことはないんだけど、まだなんかいまいち納得しきれてない。
Canvas を使った gimp like な Triangle Color Selector
いまだに digg.com からリファラがくる。
タクシードライバーブラインドネス but 夢 と制服の纒
ながすぎ。
NULL::colors*canvas
キャンバス使用版。自分的にはそれなりに気に入った段階になって、放置開始。
new Script()
PHP の Taglibro から、Ruby の Taglibro に変更。より簡略化した。ruby-xslt, libxml-ruby が使える状態になったことが大きかった。

時間が過ぎるのが早すぎる。

今年もいろんな人にいろんな迷惑をかけて生きてきて、謝っても謝りきれない。

日々の中でいやに感じることとよく感じることのバランスが傾いているのは、俺がいいことを見ないようにしているだけなんだろうか。違う気がする。嫌なことは向こうからやってきて、良いことはこちらから去っていく、良いことを追いかけようとすると、それだけ嫌なことに身体を突っ込んでしまう。現状を維持しようと立ち止まっていても、良いことは去ってしまう。これはどうやっても変えようがない。どっちも悪化していく。しかも、良いことを追いかけようとするほうが、悪化する速度ははやい (自分から突っ込んでいくのだから) 。でもやっぱり、たまに突っ込んでみたくなって、加速させてしまうわけだ。重要なのは、どこでやめられるかであって、どうすれば良くなるかじゃない。そういうことに気づく。どこに線があるかは今全くわからないけれど、そのときがくれば自ずとわかることなんだろうな、と思う。結局、生まれてきたときに決まった、y = ax + b の a の部分が、人によって違うってこと。俺は b はそこそこ大きかったけど、a がマイナスだった、というだけ。なんだ簡単。

まぁなんでもいいんだ。来年もこのようなセクションを書けるだろうかね。生活はできそう? それはまだ みたいな。ははは。

石川さんが EcmaScriptのプロトタイプチェインを視覚的に ってのを描いてくれた。

左の prototype chain の太線がアレでソレでいい感じ。こうやってみるとコンストラクタが仲間はずれ (謎) なんかインスタンス生成のための使い捨てオブジェクトにも見える。別にそういうわけではないだろうけど、ニュアンス的に。

  1. トップ
  2. life
  3. 2005 総括
  1. トップ
  2. self
  3. 2005 総括