2005年 10月 11日

サンダーボルト

今日見た夢。俺は女性だった。21歳。ちょっと前に書いたやつの効果?

  • サンダー
  • 小麦粉
  • 乳鉢
  • 日本地図
  • 自転車
  • 監視
  • 見つかる
  • 近道

www.bumpofchicken.com

少し前にまた少しデザインが変わってたのは知っていたのだけど、ふと今日になって「 HTML ソースがまともな気がする」と俺の近くを浮遊している妖精さんが言ってきたので見てみたら、なんか普通によかった。

accesskey やら title 属性を活用しているし、CSS を切ると必要以上の画像はなし。デザイン的なものはちゃんと CSS に分離されてた。定義リスト使ったほうがよさげな部分があったりするけど普通的には関係ないところだろうなぁ。だがしかし、CSS ファイルの書き方は汚かった(謎

PLAN DE SENS っていう会社がデザインしているようだけど、コーディングもやってるんだろうか。謎だ。同じ会社の別のサイトを見てみたけど DreamWeaver で作られたと思わしき似非 HTML 4.01 なサイトばっかりだし、そもそも会社自体のページは Flash のみだし……

割とよく見る一般サイトがこういう風になってると感動しちゃうね。Valid であるぐらいはほんとは当たり前なのにね。

マイナーアーティストのウェブサイトとか作りたいなぁ。なんかこうかっこいいじゃん。

Last.fm webservice

Audioscrobbler.net Web Services

気が付けばちゃんと profile 系のデータも提供されるように。でもさー、なんで Unix Time Stamp なんか出力するかなぁ。もったいない。ちょーもったいない。これのせいで直接 XSLT に入れても日付表示できん。いやできるの? 計算すればできるの? どんだけ面倒くさいの?

なんか微妙にズレてんなー。

どうでもいいけど Last.fm の tag 機能はいまいち使いづらいよっていつも思う。

あ、あと名前空間はつけて欲しいって思った。

YP-C1 ファーム入れ替え

Own your risk. の神ファーム (2.200) を入れてみる。

CD からアップデータをインスコ。update.txt に従い、本体の電池を抜いて、Play 押しながら USB 接続。新しいハードウェアのウィザードが起動するので Microsoft なんちゃらなドライバインスコ (インスコしていいかわからなくてハマった)。さらに Play 押しながらアップデータ起動してアップデート&フォーマット。

  • フォントは読みやすく。
  • 似非クロスフェード機能がなくなった。おかげで最初が切れなくなった。
  • USB はずしたあとになぜか起動されるのがなくなった。
  • SRS WOW - なんか気持ち悪い (ぬるぬるする(謎) のでたぶんあんまり使わない。

授業中は IRC に頭を使わないように

今日気付いたら後ろに教授が立ってたpq

2005年 10月 08日

可哀そうで仕方ない

いやほんとに。見てるこっちが切ない。

for の括弧の中での演算子

俺は演算子の前後にスペースを入れない書き方が大嫌いなんだけど、for の括弧の中では例外的にスペースを入れないようにしていた時期があった。なんとなくまとまりのあるほうがいいかなぁって思っていたから。

でも最近 Javascript で var をちゃんと使うようにしてからはその変則的なルールをやめた。

for (var i=0; i<100; i++)
alert("pgr");
for (var i = 0; i < 100; i++)
alert("pgr");

var の後にはスペースがもちろん必須なわけで、そのあとに続く部分でスペースを空けないと var だけが浮いてしまう感じに見える。気持ち悪いのでスペースをあけるようにした。var とかない C でもスペースをあける。ほとんど同じ文法なのにスペースあける場所が違うとかは論外だからね。

pre, code の色づけ

Color code のリファクタリング (というほどでもない)

やっぱり遅いので処理を見直し。なんだけどあんまりできそうなところがなかった。ちゃんとプログラム書ける人が見ればありそうだけど。

StringScanner 内 scan メソッドの無駄処理。作ったときから気になってた部分。scan メソッドはかなりの回数が実行されるので改善すればそれなりに効果があるはず……だけどあんまり変わらなかった。

// #改善前 2回正規表現マッチさせてる
var m = this.string.substring(this.pos).search(regexp);
if (m == 0) {
m = this.string.substring(this.pos).match(regexp);
// #改善後 一発で
var m = regexp.exec(this.string.substring(this.pos));
if (m && m.index == 0) {

ECMAScript の仕様を読み直してみたら Regexp.prototype.exec はマッチした位置をちゃんと設定してくれるらしい。はやく気付けと。

このスクリプトで有利なのは Opera8.5。実行途中でもちゃんとスクロールが効くし、上から順番に色が変わっていくのがわかる (遅いマシンでもストレスを感じない)。ただし速度は最悪。対して Firefox や IE は速度は Opera の数倍だけど実行中完全にブラウザごと固まる。ブラクラ候補。

かかった時間を pre や code の title 属性に入れてみることにした。[Time-Spend:66ms] とか出るよね? Perl がもっとも遅い (例のページの Perl の部分が Opera では10秒近くかかる)。なぜなら正規表現の数が多いから。同じクラスのやつを一つの表現にまとめれば早くなるだろうけど可読性が最悪中の最悪になるので見送り。

XML と Io はそこそこはやい。これは両方とも正規表現の数があんまりないから。XML はそれに加えて /[^<>\s]+/ を OTHER として読み飛ばしているのでループ回数が減ってる。

つーか、こんなことしなくても普通に正規表現だけかけて置き換えすればいいじゃんって話な気がしてきた。だめだこれ。

2005年 10月 07日

寝るか寝ないかのボーダー

音楽かけないで寝るとかなり高い確率で金縛りにあうというのを前に書いた気がする。金縛りっつうかいきなりレム睡眠的な睡眠導入。目をつぶった瞬間に体がずっしり重くなって、目を開けると部屋、まったく動けない。動け!!と何度か命令すると体が軽くなる。命令するというより勝手に命令される。

そんなこんなで眠れない感じのときに、別のことを想像しつつ目をつぶったらその場面そのまんまに自分が立っている状態になった。やべ、おもろいとか思いながらいろいろ (とても書けない) やってみたらいつのまにか寝てた。

状態を維持するには体が重くなるのを我慢しないといけない。ただし体が軽くなる感じがすると完全に寝てしまうのでぎりぎりで起きるように。うまくやれば1分ぐらい楽しい夢が見れる。結構バランスが難しい……