トップ 最新 追記   RSS 1.0 FEED  

Journal InTime


2001-03-01 (Thu) [長年日記]

_ blade

bladeのトップページでFlashが使われていた。 前からだっけ。

原さんが自分で作ったんだろうか。すごいなあ。

_ Ruby VM

木山君はthreaded codeを試しているらしい、ということは各命令は 独立した関数になってるってことかな。よくわかんないけど。 (これはthreaded codeという用語に関する思い違いだったらしい。 <URL:http://www-sor.inria.fr/~piumarta/pldi98/paper.ps>みると QSchemeってdirect threaded codeってやつだったのか。 とか言ってまた思い違いかも。やっぱり思い違いだったっぽい、 direct threaded codeの方はテーブルがなくて、コードの部分にジャンプ先が 直接入ってるんだな。 QSchemeのコードを実行前にdirect threaded codeに変換したらもっと 速くなるんだろうか。と思ってよく見たらQSchemeもやってるっぽいね。 うう、今日は早く寝よう。もしかして、まつもとさんの言ってた3倍って いうのはthreaded codeの差なのかしら。)

まつもとさんはQSchemeみたいにgccの拡張機能で、ラベルを first class objectにしてgotoしまくるという方法を試しているようだ。 QSchemeのコードを見たけど、バイトコード(というかバイトじゃなくて ポインタのサイズみたいだけど)を実行する関数のstatic変数にラベルの テーブルを用意しておいて、そのテーブルを見ながらgotoするみたい。 ということは、rb_eval()みたいな長い関数はどうもバイトコード化 されても健在っぽいですね。

ちなみにQSchemeの方がまだ3倍くらい早いそうです。 まつもとさん、木山君、がんばって。

_ postfix本

postfix-jp MLより、

Debian のあらきさんが Postfix 本を執筆中らしいですが、いつ発売かは
わかりません。

おお、早く出ないかしら。


2001-03-02 (Fri) [長年日記]

_ Cマガジン

Cマガジンの期末試験をやってみた。 結果は79点。 pとputsを間違えて"を付けわすれたり、逆に余分に付けてしまったりとか、 学生時代と変わってないことを再確認。

実戦では間違えたらデバッグすればいいのさっ。(とうそぶく)

_ QScheme

QSchemeが速いのはマクロ展開する分だったらしい。 QSchemeでマクロ展開を抑制したらRuby VMが勝ったそうです。 ぱちぱちぱち。

direct threaded codeにするのはあまり速くならなかったそうで、それより まとめてmalloc()するようにしたことなどの方が大きかったらしい。

らしい、とか、そう、ばっかりだな。


2001-03-03 (Sat) [長年日記]

_ Ruby VM (2)

あ、まつもとさんのVMもまだ完成はしてなくて、基本的な部分を実装しただけ だそうです。 > 木山君

今のRubyと同レベルの機能が提供できるようになるには数年かかるんじゃない だろうか、とのこと。 (まつもとさんのことだから、とか言いつつ数か月でやっちゃったりして。)

ちなみにコンパイルする部分はまだ作ってなくて、ハンドアセンブルしてテスト してるらしい。

ところで、移植性については、マクロとか使って、 gccだったらdirect threaded codeにする、とかじゃだめなんでしょうか。 (あ、gccじゃない環境でも速くしたいってことか。)

_ apropos

Emacsで欲しい関数や変数を調べたい時はM-x aproposが便利。 ちなみに僕はつい最近までapropos(1)を知らなかった。


2001-03-05 (Mon) [長年日記]

_ SD

SD3月号の記事を公開しました。

<URL:http://www.shugo.net/article/>

許可をくださった技術評論社さんに感謝。

_ 英語

modruby.netの英語版で、変な英語があったらおしえてね、 と書いているので、たまにレポートしてくれる人がいるんだけど、 そのメールも英語で書いてあるので理解するのに苦労したりして。 自動翻訳の性能向上に期待。

_ 卒論

卒論が出て来たのでのついでに載せてみた。

<URL:http://www.shugo.net/thesis/>

あ、コンピュータサイエンスとはぜんぜん関係ないです。

_ fj.comp.lang.c

fj.comp.lang.cのfree-on-exitのスレッドまだ続いてたのか…。

それはさておき、

void test_sub(n)
int n ;   ← これをグローバル変数と勘違いされたように思われます。
{
...
}
この int n は、引数の型を表すもので、非常に古い時代の書き方なんです。

というのは笑いましたね。「非常に古い時代の書き方」だって。

まつもとさんは、

<URL:http://namazu.org/~satoru/misc/ggap.html>

の分類では旧世代に属するらしい。僕は…ないしょ。


2001-03-06 (Tue) [長年日記]

_ カレー

昨日はカレーだったので今日もカレー。 なんとなくにんにくを入れてみたら結構おいしかった。

作り方は、

  1. オリーブオイルににんにくのスライスととうがらしを入れて 弱火にかける。
  2. にんにくがこんがりとしあがったら、火を強くして肉と野菜を 入れていためる。
  3. 水を入れて煮込む。あとはふつーと同じ。

最近はルウは「こくまろ」を使うことが多い。 味の違いはよくわかんないけど、二回に分けて使えるのでお得な気がする。 (けど、ちゃんと計算はしてないので実は損してるかも。)


2001-03-07 (Wed) [長年日記]

_ ローカル変数

Rubyのローカル変数のスコープのルールは時々思わぬバグを生み出す。

ここで問題。

1.times do
  id = 0
end
p id

上記のコードを実行するとどうなるでしょう。

  1. 0と出力される。
  2. 予想もしなかった値が出力される。
  3. エラーになる。

正解はまた明日。

_ comp.lang.ruby

英語の勉強のために、ひさびさにcomp.lang.rubyに投稿。 日本語で考えて英語で書こうとするとだめですね。 英語で考える能力を身につけねば。


2001-03-08 (Thu) [長年日記]

_ 正解

昨日の問題の正解は2の 「予想もしなかった値が出力される。」でした。

1.times do
  id = 0
end
p id

idの有効なのはendまでなので、3の「エラーになる。」と思った人もいる かもしれないけど、実はidはObjectのメソッドなので、mainオブジェクト (トップレベルのself)のid(たとえば538080840とか)が出力されてしまうわけ。

こういうエラーにならないバグはたちが悪いので気を付けましょう。


2001-03-10 (Sat) [長年日記]

_ 結婚

しました。 (まだ入籍してないけど。)


2001-03-13 (Tue) [長年日記]

_ www.sony.co.jp

sonyのサイトはかっこいいなあ。 見にくいけど。

_ ベータ

ベータのビデオデッキってまだ売ってるんだ。

<URL:http://www.sony.co.jp/sd/ProductsPark/Models/cat011.html>

「*お手持ちのベータテープ*を、美しく多彩に再生」ってのが泣かせる。



2001-03-16 (Fri) [長年日記]

_ スピード狂

「スピード狂」って褒め言葉かな...。 「大名」と同じ程度には褒め言葉かもしれない。


2001-03-20 (Tue) [長年日記]

_ メモリスティックリーダライタ

を買ってから結婚すればよかった。


2001-03-24 (Sat) [長年日記]

_ LUCK宴会

LUCK宴会に行って来た。

やっぱり温泉すね。一週間くらい滞在したいなあ。

HTMLのタグは大文字で書くべきか小文字で書くべきか、とかくだらない話を いろいろしてるうちに3時半くらいになって帰りの運転の眠いこと。


2001-03-26 (Mon) [長年日記]

_ 引数の括弧

何回か考えたのだけど、個人的にはRubyの引数の括弧は省略できない方が よかったんじゃないかという気がする。

理由は、メソッド名とローカル変数名の名前の衝突の問題がなくなって、 <URL:http://www.shugo.net/jit/index.rbx?date=20010308> みたいな状況を回避できることや、文法がわかりやすくなる({}とdo endの使い分け もいらなくなるかな)こと。 あと、obj.fooでbound methodの取り出しで、obj.foo()はメソッド呼出し、 なんてこともできるし。

でも今さら変えるわけには行かないだろうな、と思ってだまってます。 (って言いつつ書いてるけど。)

_ postfix

ruby-lang.orgのMTAはpostfixなのだが、配送先でつながらないとこが多いせいか 配送がどうも遅い。色々チューニングしてみたけど、結局、/etc/sysctl.confで、

fs.file-max = 16384
fs.inode-max = 65536

としてあつかえるファイルの数を増やしといて、/etc/postfix/main.confで、

default_process_limit = 300

としてプロセス数の上限を増やしてみた。 (もっと増やしても大丈夫かもしれないけど、とりあえずこれくらいで様子見。)

他にも配送の並行度を制御したりするパラメータとか色々あるのだが、defaultで MLの配送向きになっているみたいなのでそのまま。


2001-03-27 (Tue) [長年日記]

_ postfixふたたび

/etc/postfix/main.cfで、配送先ホストが見つからない時や、 配送先ホストに接続できない場合に、 バックアップのマシンに転送するように設定。

fallback_relay = backup.foo.org

これでキューにずっとたまっているメールを追い出すことが できるはず。

_ ノート復活

キーボードを修理してたVAIO(PCG-505RS)が帰って来た。 英語キーボードが日本語キーボードになってたらどうしよう とか思ったけど無事。

ユニット毎交換で17200円なり。見積りの時にパームレストの塗装が はげてる(というかこれはもうパームレストがけずれてるって感じ)のも 直すか聞かれたけど、一万円はもったいないのでやめ。

いつかこれに買い替えるのだ。 (うう、ノートだとsonyのflashが遅い。)

<URL:http://www.sony.co.jp/sd/ProductsPark/Consumer/PCOM/PCG-SR9G/>

DSC-P1欲しいなあ。(DSC-P50もいいかも。)


2001-03-28 (Wed) [長年日記]

_ Cappuccino開発者に聞く!

yendot.orgで、

<URL:http://pcweb.mycom.co.jp/news/2001/03/26/07.html>

が紹介されてるのを見て、suzukiの人かな、とか思ったらぜんぜん違った。 そりゃ、そうですよね。


2001-03-29 (Thu) [長年日記]

_ Stackless Python

IRCnetの%Rubyでちょっと話題になったけどStackless Pythonというものが あるらしい。 ふつーのPythonと違うのはCスタックを使わない(代わりにソフトウェアスタックを 使う)こと。

<URL:http://www-6.ibm.com/jp/developerworks/linux/010209/j_l-pyth7.html>

これでcontinuationが簡単に実装できるので、それを使ってスレッドを実装したり するそうです。

_ good-bye, sendmail

sendmailのサーバでトラブルがあったのでpostfixに変えてしまった。 あとqmailのやつをpostfixに移行できたらラクになるけど、postfixでvirtual domain は面倒そうだなあ。 (postfixが、というかpopdを用意するのが。)


2001-03-30 (Fri) [長年日記]

_ www.zetabits.com

<URL:http://www.zetabits.com/>

がrenewalされてから他社のページのHTMLの悪口を言えなくなった。 とほほ。


2001-03-31 (Sat) [長年日記]

_ net/imap

rubyのcvsに新しいnet/imapをcommitした。

ruby /path/to/net/imap.rb

とかすると面白いかも。 (もとはやまださんのアイデア)

あとドキュメントもちゃんとしてみたり。 ちなみにruby_1_6ブランチにはcommitしてない。