降り込められて

地下室にいたら雨の降り出したことに気付かなかった。夜食を買いに行こうと思ったが、傘が無くてあきらめた。雷。もうすぐ梅雨も明ける。

タスクが過剰

どうもお金よりも時間が不足してしまう。やりたいことも、やらなくてはいけないことも、多い。気分的には、やらなくてはいけないことよりも、やりたいことの優先順位が、高い。

やらなくてはいけないことは、いまやらなくても、やらなくてはいけないことなので、そのうちやるにきまっている。やりたいことは、いまやらないと、やる気がなくなってしまう可能性がある。なので、やりたいことを、いま、やらなくてはいけない気分になる。

スケジューリングのアルゴリズムを改造したところ、元のよりもよさげな結果が出たので、報告したら、理論的な限界はわからないかなぁと言われたので、オリジナルの論文の考え方を調べる…。

しかし、先に述べた理屈によって先延ばしにしていた7月末締切のものたちの相手もしなくてはならない。始めてしまうと面白い。困る。

んー、しかし、毛利衛だったか秋山仁 だったか、単位より自分の研究を優先させるくらいじゃないと駄目だと言ってたなぁ。なるべくわがまましたほうがいいのかなぁ。とりあえず、自分用のスケジューリングアルゴリズムがほしい。

名前

Cecilia Singletonさんからメールが来て、名前がおもしろいと思った。スパムだけど。Singleton一族、みたいな。

数学と論理学

安部さんが「数学は、これこれこうで、集合として等しいから、ほら等しい、みたいな感じだけど、ロジックだと、字面の違うものを等しいと言うから偉いと思う」と言っていた。

それは数学とロジックの違いというよりは、構成的な方法と公理的な方法の違いなんじゃないかと思う。だけど、でも、最初に字面の上での公理とかリダクションとかがあると思うのと、最初に調べたい対象があると思うのと、ロジックと数学で、気分が違うのかもしれぬ。

他人の存在について

他人が存在する(自分以外の人も、ものを思ったり感情をもったりする)ということを、みんな信じているのはなぜだろう。

たぶんこれは、遺伝的に決まっていること。だって、他人が存在することを信じない人がいたら、非常に子孫を残しにくいもの。

と、思って「他者の存在」で検索してみたら、 そういうを書いている人が既にいた。ふーん。

孤島からビンを流す会のその後

孤島からビンを流す会は、最初のうちちょっと盛り上がったけど、いまとなっては下火である。問題は、

  • 忘れられやすい。自分で使ってても、存在を忘れてしまった。たぶん、自分にビンの会のメッセージが届いたときに、メールが届くなり携帯が鳴るなりすれば、それに刺激されてまた見に行く気がする。
  • スケールしてない。gdbmを使ってて、行ロックができない。かといって、不要になったデータを除去しているわけでもない。

最近は、メール版の「孤島からビンを流す会」を作ろうかと思っている。賢いメールソフトを使っている人は、メールが返信-被返信関係に基づいてツリー状に並んで表示(スレッド表示とかいう)されてるのを見たことがあると思う。あれができるのは、メールの中に、これはどのメールの返信か、的な情報が埋め込まれているからである。それを使うと、まるでsomebody@…と普通にメールをやりとりしている感覚で、孤島からビンを流す会と同じことが出来るはずだ。

せっかくだから世界中の人に使ってもらえると嬉しい。でも、日本語と英語しか読めない人のところにフランス語のメールが届いてしまうと困る。うーん。と思っていた。つれづれなるままにkinabaさんの日記を見ていたら、やっぱ自然言語を判別してくれるツールを作っている人はいるようで、まぁ使ってみようかと思った。

あ、パフォーマンスの問題は、ちゃんとしたデータベースサーバをちゃんとした方法で使えば、なんとかなる気がする。バイトではデータベースサーバをいじっているんだし、使ってみてもいいかも。

あとは、やまさんが、facebook上でMessage in a Bottleというサービスを作っているよう。

ぴらぴらは今日も遊んでいる

7月中の課題はまだ残っている気がする。全部やりかけ。終わらせたいなぁ。

有向グラフ碁のルールを人に説明したときに、紙の上だと一度打った石を取り除けなくて困った。なので、コンピュータ上で動く碁盤を書きはじめた。

このごろ気になる。Liskellが気になる。Cleanも気になる。Cleanの方がきになるかな、特に内部が。

ICFP Programming Contest 2007 終了

3日間、すべての社会生活を投げ打って取り組んでみた。結果は出せなかったが、おもしろかった。なんというか、自分の能力のベンチマークとしてやってみた感じ。去年よりは進歩しているもよう。

1日目。仕様に従って、execute をつくってみた。へんなところで無限ループして、どこかで間違えたらしいと思った。最初から全部DNAをパースしてやろうかと思って、しばらくコードを書いて、どうも、そんなに簡単ではないらしいと気付いた。

2日目。2時間くらい寝てから、executeをつくりなおしてみた。別のところで無限ループして、どこかで間違えたらしいと思った。1日目に作ったexecuteと動作を比較して、異なるところを比較して修正していったら、動作が一致して、どちらもそれっぽい動きをするようになった。しかし、Ocamlのstring_lengthの限界にぶちあたってしまった。

3日目。はやいexecuteを作ろうとして、単なる文字列ではなく、構造を入れてみた。動いた。しかし、そんなに速くならなかったので、各部分の長さをキャッシュしておくようにしようと試みたところ、大混乱に陥ってしまった。とりあえずなんか提出しとくか、と思って、「ICFP」とだけ書いて出しておいた。
反省点:

  • 結果を出したいなら、チームを組んだほうがいいかも。
  • 疲れたら寝たほうがいい。
  • 早く書くよりも、ゆっくりバグの少ないコードを書くほうがまし。とくに、Ocamlで副作用付きのコードを正しく書くのが、激しく下手らしい。練習するか、この方面はあきらめて、Haskellに手を出してみるか。
  • executeにこだわりすぎずに、早めにbuildを見てみたほうがよかった。
  • 試したいことがいっぱいあるのに、コード書くのが追いつかないのは、やっぱ、ふだんからたくさんコード書いてるほうがいいよね。

よかったこと:

  • 去年よりも、まだ書けるようになった気がする。