✖
いよいよお金がなさすぎてヤバいんだぜ
いよいよお金がなさすぎてヤバいんだぜ
ひさしぶりに VOCALOID 系のを聴いてまわった。
orz... Fx3 + Firebug でクラッシュしてから edit ページひらいて送信したら消えてしまった……変なタイミングで入力の復帰が行なわれたようだ……できるかぎり復元してみる
JS かいたり Scheme かいたりしたあと Ruby をかこうとするとなんかハマる。メソッドの名前と変数の名前が分離しているからなんだけど、たまにきもちわるい感じがする (スイッチがきりかわるとそうでもないんだけど……)。
class Foo
end
def Foo
endができるということはいいのだけど (Hpricot とか Pathname がやってる)、おなじようなノリで
class Foo
module Bar
end
end
def Foo::bar
endみたいなのはもちろんできない。やるとしたら
module Foo
module Bar
end
def Bar
:a
end
def self.Bar
:b
end
end
p Foo.Bar #=> :b
p Foo::Bar() #=> :b
include Foo
p Bar #=> Foo::Bar
p Bar() #=> :aみたいになるけど、(わざとやっているとはいえ) きもい><
あああ、もうほんと、僕は全然大人になれる気がしない。あるいは例えば、誰か何か、僕が必死になれるような人がいれば、そうならざるを得なくなり、いわゆる「大人」になれるのかもしれないけれど、僕はそういう人を見付けられる気がしない。正直に話をすれば、女の子よりもプログラミングのほうが素敵なのではないかとちらちら考えてしまうし、もし素敵な子がいたとしても、僕よりも素晴らしい人がいるのだからそれでいいだろうと考える。逃げまわることが大好きらしい。
酔っぱらっていたり、少し追いつめられていたりすると、頭の中の言葉、いうべきことではないことも、全て水面までうきあがり、それをキーボードにうちこむことができる。でも、一方で、そういう、特殊な状態に頼った自己表現を嫌い人もいる。自分もどっちかというと嫌いだ。言うべきことはしっかりと考え、言葉、単語ひとつひとつを熟考してから、書くべきだと思う。ただし、それではいつまでたっても、自分が納得できる文章というのが書けない以上、表現が成立しない。
これは全くプログラミングと一緒だ。汎用性をもたせよう、完璧にしようと考えるあまり、実装に手がつかず、途方にくれる、ということがよくある。それは本当に間違いだ。実装はとりあえずすればよい。動かなければ意味がない。表現はとりあえずしてみなければならない。あとからそれをとりけすのは、少しやっかいではあるが、あとからとりけすのが非常にやっかいなものは、まだやるべきことではない。「ごめんなさいまちがえました」といい、訂正できる程度のことを、完全に動くまでテストし、リリースすることが重要だと考える。
僕は本当に恵まれた環境にあるということを、泣きそうになるぐらいに実感する必要があるが、泣きそうになるほどに実感はしていない。なんてすばらしいんだろうと考えることはよくある。
普通、ソフトウェア、ライブラリのリリースはめちゃくちゃ孤独だ。「これでいいのか」「すでに同じようなモジュールがないか」「名前空間を必要以上に汚染していないか」ということを、殆ど独りで考え、結論をだし、自分のバランス感覚・距離感を信じてリリースする必要がある。そういう意味で、例えば、IRC などで「これでいいのか」ということを相談できたり、意見を聴けたりするのは、本当に素晴しい。ただ、いつもおもうのは、そういうのに頼りすぎてはいけないということだ。バランス感覚は、常にバランスを保ち続けることで維持できるはずであるし、距離感は、いつも距離を図っていないとわからない。
さっき http://www5.big.or.jp/~seraph/zero/mbti.cgi をやったら
だった。しばらく INFP だったのが INFJ になった。(でも前にどこでやったのか覚えていない)
JSDeferred の loop 関数は軽かろうが重かろうか一回ずつ setTimeout はさむんで効率わるいので、for ループと loop 関数の間ぐらいの関数をてきとうに書いてみた。
function aloop (n, f) {
var i = 0;
var end = new Object;
var ret = null;
return Deferred.next(function () {
var t = (new Date()).getTime();
try {
do {
ret = f(i)
i++;
if (i > n) throw end;
} while ((new Date()).getTime() - t < 100)
log("Devided: " + ((new Date()).getTime() - t) + "msec.");
return Deferred.call(arguments.callee);
} catch (e) {
if (e == end) {
log("End");
return ret;
} else {
throw e;
}
}
});
}
aloop(100, function (n, o) {
var dummy = 0;
log(n);
for (var i = 0; i < n * n * n; i++) {
dummy++;
}
});関数一回の処理に 100msec 以上かかってしまったら、一度ブラウザに処理をかえす。
この例だとこんなふうになります
Firebug has been disabled for www.google.com Enable Firebug Enable Firebug for this web site http://lowreal.net/Test: 0 http://lowreal.net/Test: 1 http://lowreal.net/Test: 2 http://lowreal.net/Test: 3 http://lowreal.net/Test: 4 http://lowreal.net/Test: 5 http://lowreal.net/Test: 6 http://lowreal.net/Test: 7 http://lowreal.net/Test: 8 http://lowreal.net/Test: 9 http://lowreal.net/Test: 10 http://lowreal.net/Test: 11 http://lowreal.net/Test: 12 http://lowreal.net/Test: 13 http://lowreal.net/Test: 14 http://lowreal.net/Test: 15 http://lowreal.net/Test: 16 http://lowreal.net/Test: 17 http://lowreal.net/Test: 18 http://lowreal.net/Test: 19 http://lowreal.net/Test: 20 http://lowreal.net/Test: 21 http://lowreal.net/Test: 22 http://lowreal.net/Test: 23 http://lowreal.net/Test: 24 http://lowreal.net/Test: 25 http://lowreal.net/Test: 26 http://lowreal.net/Test: 27 http://lowreal.net/Test: 28 http://lowreal.net/Test: 29 http://lowreal.net/Test: 30 http://lowreal.net/Test: 31 http://lowreal.net/Test: 32 http://lowreal.net/Test: 33 http://lowreal.net/Test: 34 http://lowreal.net/Test: 35 http://lowreal.net/Test: 36 http://lowreal.net/Test: 37 http://lowreal.net/Test: 38 http://lowreal.net/Test: 39 http://lowreal.net/Test: Devided: 109msec. http://lowreal.net/Test: 40 http://lowreal.net/Test: 41 http://lowreal.net/Test: 42 http://lowreal.net/Test: 43 http://lowreal.net/Test: 44 http://lowreal.net/Test: 45 http://lowreal.net/Test: 46 http://lowreal.net/Test: 47 http://lowreal.net/Test: Devided: 116msec. http://lowreal.net/Test: 48 http://lowreal.net/Test: 49 http://lowreal.net/Test: 50 http://lowreal.net/Test: 51 http://lowreal.net/Test: 52 http://lowreal.net/Test: Devided: 109msec. http://lowreal.net/Test: 53 http://lowreal.net/Test: 54 http://lowreal.net/Test: 55 http://lowreal.net/Test: 56 http://lowreal.net/Test: Devided: 113msec. http://lowreal.net/Test: 57 http://lowreal.net/Test: 58 http://lowreal.net/Test: 59 http://lowreal.net/Test: Devided: 103msec. http://lowreal.net/Test: 60 http://lowreal.net/Test: 61 http://lowreal.net/Test: 62 http://lowreal.net/Test: Devided: 119msec. http://lowreal.net/Test: 63 http://lowreal.net/Test: 64 http://lowreal.net/Test: 65 http://lowreal.net/Test: Devided: 137msec. http://lowreal.net/Test: 66 http://lowreal.net/Test: 67 http://lowreal.net/Test: Devided: 103msec. http://lowreal.net/Test: 68 http://lowreal.net/Test: 69 http://lowreal.net/Test: Devided: 112msec. http://lowreal.net/Test: 70 http://lowreal.net/Test: 71 http://lowreal.net/Test: Devided: 122msec. http://lowreal.net/Test: 72 http://lowreal.net/Test: 73 http://lowreal.net/Test: Devided: 133msec. http://lowreal.net/Test: 74 http://lowreal.net/Test: 75 http://lowreal.net/Test: Devided: 144msec. http://lowreal.net/Test: 76 http://lowreal.net/Test: 77 http://lowreal.net/Test: Devided: 158msec. http://lowreal.net/Test: 78 http://lowreal.net/Test: 79 http://lowreal.net/Test: Devided: 168msec. http://lowreal.net/Test: 80 http://lowreal.net/Test: 81 http://lowreal.net/Test: Devided: 182msec. http://lowreal.net/Test: 82 http://lowreal.net/Test: 83 http://lowreal.net/Test: Devided: 194msec. http://lowreal.net/Test: 84 http://lowreal.net/Test: Devided: 103msec. http://lowreal.net/Test: 85 http://lowreal.net/Test: Devided: 106msec. http://lowreal.net/Test: 86 http://lowreal.net/Test: Devided: 110msec. http://lowreal.net/Test: 87 http://lowreal.net/Test: Devided: 114msec. http://lowreal.net/Test: 88 http://lowreal.net/Test: Devided: 118msec. http://lowreal.net/Test: 89 http://lowreal.net/Test: Devided: 122msec. http://lowreal.net/Test: 90 http://lowreal.net/Test: Devided: 126msec. http://lowreal.net/Test: 91 http://lowreal.net/Test: Devided: 131msec. http://lowreal.net/Test: 92 http://lowreal.net/Test: Devided: 135msec. http://lowreal.net/Test: 93 http://lowreal.net/Test: Devided: 140msec. http://lowreal.net/Test: 94 http://lowreal.net/Test: Devided: 144msec. http://lowreal.net/Test: 95 http://lowreal.net/Test: Devided: 148msec. http://lowreal.net/Test: 96 http://lowreal.net/Test: Devided: 153msec. http://lowreal.net/Test: 97 http://lowreal.net/Test: Devided: 158msec. http://lowreal.net/Test: 98 http://lowreal.net/Test: Devided: 166msec. http://lowreal.net/Test: 99 http://lowreal.net/Test: Devided: 171msec. http://lowreal.net/Test: 100 http://lowreal.net/Test: End
実際つかうならハードコードされてるところをましにしたりしないといけないかな。