2007/03/31

この前の花見で雑草の話をしたら速攻オワタ件に関して

この前花見をしていて、ふと会話が途切れ「kudzuくん、なんか面白い話をしてよ」という恐ろしい振りがきてしまった。ふと同じシチュエーションがあったことを思い出し、最近それを読み直したので、雑草の話(http://sspp2nd.blogspot.com/2007/02/blog-post_22.html)を話すことにした。

多分誰も上のリンクを読もうとは思わないであろうので、適当にまとめる。
  • 雑草は植物だから花が咲いて、種ができるはずだ
  • しかし、雑草で花が咲くのはタンポポとシロツメクサくらいしか憶えが無い
  • 花!=雑草 という固定観念から、雑草なのに雑草だと認識できていないだけなのではないか?
という話だ。そんなわけで話し始めた。

俺「雑草は植物だから、増えるわけじゃないですか。けど種ができるためには花が咲かないといけないわけですが、花が咲く雑草っていくつ挙げられますか?」
反応がない。
俺「じゃあ花が咲く雑草で山手線ゲーム。タンポポ!!」
反応がない。
俺「というわけで、やはり皆知らない訳です。では、どうやって雑草は増えるのでしょうか?」
*「イチゴとかって根っこから増えますよね」
俺「まじで?」


理系は言うことが違うと思った。

2007/03/28

2chnaviが(多分)軽くなったよ

とりあえず変更を反映。

理屈的には速くなるはずなんだけど、プロファイリングが面倒臭かったからどのくらい速くなったかよくわかんない。

2007/03/27

2chnaviが軽くなるよ

vpsだからってコンピュータって超速いから大丈夫だろ。そう考えていた時期がありました。

まぁ、オープンして3日したらすでに死ぬほど重かったんだけど、面倒くさくて全然修正してなかった。
php用プロファイラを作ってた時に試しに2chnaviのプロファイリングをしてみたところ、やっぱり想像してた通りの箇所が死ぬほど時間を食っており、どう見てもプロファイラすらいりません。本当にありがとうございました。

ちょっと色々修正して大分マシな作りに変えたので、多分週末辺りに圧倒的に快適になるはずです。

あと、過去ログの機能ももうそろそろ公開するかもしれない。

2007/03/04

15lbsの恐怖を乗り越えた

金曜日の朝に体重を量ってみたところ、出発直前より100g軽くなっており、なんというか誤差の範囲内でございました。
  • 最初の数日は嬉しくて仕方なくて昼ごはん一杯山盛りにして食べてたけど、なんか一ヶ月もいるし、少しずつ食べればいいな、ということで量が正常化していった
  • おやつは基本的に食べない
  • 飲み物は砂糖が入っていないお茶メイン。あとコーヒー。
  • 夜はDr PepperとCherry Vanilla Cokeのローテーション。ただしDiet
などと、最後を除き非常に健康的な生活を送っていたかと思われます。

Javascript強力すぎてワロタ

最近ずっとjavascriptばかり書いていた。
やたら強力な言語なんだけど、言語構造が全然わからなくてくやしかったのと、今後もしばらく書くことになりそうなので、ちゃんと勉強してみることにしてみた。

http://0xcc.net/blog/archives/000159.html

これの第五版。まだ翻訳はされていない?

以下面白かった話。
  • a=2
    b=1
    というセミコロンなしでもラインブレークがあればおk。
    このため、
    return
    true
    は違う意味(return値なし)になる。恐ろしすぎる。
  • a = Boolean(false);
    a = new Boolean(false); //newなしだと普通に動作するらしい
    if (a) {
      alert(true);
    }
    Boolean Objectは評価値が真になるらしい
  • 引数付のコールバックをするために試したコードがあって、うまくいかなくて教えてもらったコードがあったんだけど、
    function fgen(val){
      return function(){print(val)}
    }
    function test(){
      var i = 0;
      var a = Array();
      var b = Array();
      for(var j=0;j<4;j++){
        a[j]=function(){print(i)}
        b[j]=fgen(i);
        i++;
      }
      for(var j=0;j<4;j++){
        invoke(a[j])
        invoke(b[j])
      }
    }