トップ 最新 追記   RSS 1.0 FEED  

Journal InTime


2002-11-01 (Fri) [長年日記]

_ t-code

とりあえず、一応文章が入力できるくらいには回復。 やっぱり誤変換(というか誤文節区切り)がないのは快適だ。

wnn7が賢いといったところで人間様ほどは賢くないわけですな。

_ テディベアウィルス

奥さんの友人からテディベアウィルスについて電話がかかって来た。

デマなのでファイルをけしちゃだめですよ。 (Java VM関係のファイルらしい。)

_ RAA

comp.lang.rubyでRAAの名前が話題になっているようだ。 (内容はおってないけど)

そういえば、Ruby Application Archiveなのにライブラリとかも入ってるんだよな。


2002-11-07 (Thu) [長年日記]

_ glibc2.3

ぼーっとしていたらglibc2.3にアップグレードしてしまっていた。 うーむ。


2002-11-11 (Mon) [長年日記]

_ library

libraryという単語を見て、raryというライブラリだと思ってしまった経験が あるのは私だけだろうか。


2002-11-13 (Wed) [長年日記]

_ chomp

ruby-devでString#chompの話が出ている。

chompは文字列の末尾の改行文字を(あれば)取るメソッドだが、"foo\r\n".chompは "foo\r"になってしまう。(つまり"\r\n"を改行とみなしてくれない。) これは不便なので"\r\n"も取ってくれ、という話。

結論としては、Ruby 1.7ではすでにそうなっているとのこと。

ちなみにnet/ftp.rbでは

CRLF = "\r\n"

  if line[-2, 2] == CRLF
    line = line[0 .. -3]
  elsif line[-1] == ?\r or
      line[-1] == ?\n
    line = line[0 .. -2]
  end

なんてことをしている。

なぜこんなにださいコードというと、net/ftp.rbはPythonのライブラリの パクリだから。(反省)

sub使った方が短かくて速そうですね、たぶん。


2002-11-15 (Fri) [長年日記]

_ C#のイテレータ

C#では

foreach (Object o in list) {
  ...
}

のようにforeach文を使うと、listから外部イテレータを取り出して自動的に 繰り返し処理の制御を行ってくれる。 実は前にJavaで書いたスクリプト言語でも同じようなことをしたけど、利用者 側から見れば内部イテレータのように使える(つまり、自分で繰返しの制御をする 必要がない)ので結構便利。

さらに将来のC#では、イテレータを定義する時に

public class List {
  internal object[] elements;
  internal int count;

  public object foreach()
  {
    foreach(object o in elements)
    {
      yield o;
    }
  }
}

のようなコードを書くと、外部イテレータクラスを自動的に生成してくれるらしい。

ruby-devでこれは外部イテレータか内部イテレータかという話があったが、ユーザ が外部イテレータクラスを意識する必要はないので、内部イテレータと言ってもいい ような気がする。


2002-11-18 (Mon) [長年日記]

_ C#のイテレータ(2)

ruby-devでも書いたけど、C#のイテレータだと一つのクラスに複数の イテレータを定義できないので不便な気がする。

public class List {
  internal object[] elements;
  internal int count;

  // Elementsという名前のイテレータ定義
  public iterator object Elements()
  {
    foreach(object o in elements)
    {
      yield o;
    }
  }
}

のように色々な名前でイテレータを定義できるようにして(実装的には Elementsという名前のメソッドで外部イテレータを返すようにする)、

foreach (object o in list.Elements()) {
  ...
}

のようにforeach文で、コレクション(list)の代りに、イテレータ呼び 出し(外部イテレータを返すメソッドのよび出し - list.elements())を 指定するようにした方がCLU風味でよくないだろうか。


2002-11-20 (Wed) [長年日記]

_ ピタゴラスイッチ

会社を休んで「ピタゴラスイッチ」を見た。 (「ピタゴラスイッチ」を見るために会社を休んだわけではない。)

子供は「おかあさんといっしょ」の方が好きなようだ。


2002-11-21 (Thu) [長年日記]

_ ハック

最近、子供が障子をハックすることを覚えて困る。

_ 妄想

Rubyのcontinuationを使ってセッションを実現し、WYSIWYGで画面デザインできて、 ボタンをダブルクリックするとイベントハンドラを定義できるような、 そんなWebアプリケーションサーバをだれか作んないかな。


2002-11-22 (Fri) [長年日記]

_ t-code for skkinput3

t-code for skkinput3(<URL:http://openlab.jp/tcode/tc2/index.html#develop>) を導入。ナイスだ。

でもちょっと動きが遅いみたい。 skkinput3のlisp interpreterのせいだろうか。


2002-11-29 (Fri) [長年日記]

_ 竜王戦

本局は阿部の方がよさそうに見える。(46手目時点)

がんばれー。

_ Demi

昔Javaで実装したスクリプト言語をふと思い出したが、探しても見つからない。 と思ったらなぜかまつもとさんが持っていたのでメールしてもらった。

今のJavaじゃ動かないだろうと思ったが、ちゃんと動いた。 すごいな、Java。

記念に置いときます。

<URL:/archive/demi/demi-0_1_6.tar.gz>

_ Webrickとcontinuation

まつもとさんの話だとWebrickとcontinuationを作ったWebアプリケーションの話が Ruby Conferenceであったらしい。

Rubyのcontinuationはスレッドをまたぐことができないのでどうしてるのかなと思った ら、WebrickではThreadを使ってなさげだとのこと。 ということはWebrickは同時に一つのリクエストしか処理できない?

ほんとかなあ。