K.Sasada's Home Page

Diary - 2005 November

研究日記

霜月

_30(Wed)

YARV の BTS をメールベースにしてみたが,さてどうなることか.

YARV のバグ報告は yarv-dev まで.


BTSがどうの,とかやってたら久々にこんな時間まで学校.

テストファーストとか,全然無縁だよな.これ・・・.あぁ,頭ふらふらだ.


Symbol は :foo って書くけど、foo: も許すと何が起こるか。

何も起こらんかな。


水島君の書評を見てアスペクト入門を買う事にする。PM割引は無いだろうか(ねーよ)。

しかし、これからはあれなんですかね。推理小説の序文はアスペクトなんですかね。


Sizzler に行ってきたんだけど、とても丁寧な接客でとてもびびった。


書かなければいけないメールがいくつか。ひとつは月例報告だけど、後一つは。。。今までのらりくらりとしていたんだけど、というわけで、全然手が付かず。

_なかだ(Wed Nov 30 11:47:59 JST 2005)

 起こるのは「むちゃくちゃな衝突」

_29(Tue)

実は、るびまに Advanced Ruby Programming という記事を書きたくて、ネタを集めてたんだけど、その中に begin/rescue の中の else があったりする。


結局2000円払うことにした。


今朝テレビを見ていたら、あるゴルフプレーヤの母校へ行って、図書館で「この人はこんな本を借りてたんですよ〜」みたいなことを言っていたのだけれど、なんとも恐ろしい話だと思った。


define_method をいい加減に実装.

とりあえず,これでだいたい危なそうなのは終わったかな.

visibility という難問がまだ残っているのだけれど.

何が難問って,データ構造なんだな.


yarv 用の BTS が欲しいんだが,どれもあまり嬉しくない.どうしたものかなあ.

_28(Mon)

 ++a は (a+=1) の syntax sugar としたら、a++ は何になるか。(a+=1; a-1) はダサい。 (tmp=a; a+=1; tmp) なのか。

まぁ、C にマッピングする必要も無いと思うけど、じゃぁ ++ 自体いらなさげ。

そもそも、++ という記号の起源は何処なんだろうな。


http://pc8.2ch.net/test/read.cgi/tech/1094825807/602

話すこと無いらしい。何を書けば話すことがあるんだろうね。


現実逃避に block の inline 化を考えていたんだけれど、どうにも厳密なものが出来ないようだ。

n.times{|i|
  ...
}

は、

_i=0
while _i<n
  i = _i
  ...
  _i=_i.succ
end

と考えていたんだけど、

prs = []
n.times{|i|
  prs << lambda{p i}
}

というプログラムがあった場合、i は別環境ではなく同じ環境で作るので(ブロックローカル変数じゃないので)セマンティックスギャップが生じる。

これはちょうど

1.times{|i|
  n.times{|i|
    ...
  }
}

と書いたのと同じような状況である。

まずい。どうしたものか。

って、現在のYARVのInteger#times も同様の問題があるのか...。これはばっくれちゃってもいいかなぁ。駄目なような気がするな。

困ったなあ。

prs = []
3.times{|i|
  a = i+1
  b = i*2
  prs << lambda{p [a, b]}
}
prs.each{|pr|
  pr.call
}

こんなプログラムでも同様の問題。なんかうまい手はないものか。proc 化されるかどうかわかれば、こんな苦労は無いんだが、解析不可能だからな。

ローカル変数はすべてメソッドローカル変数(ブロック間で共有)です、とかいう仮定にしてくれたらとても楽なのに...。

Array#each でも同様の問題があるが、Array#each は深刻かもしれない。


なんか1命令はさめば出来なくも無いような気がしてきた。

ループの先頭で毎回チェックする、とか。で、Proc 作ってたらそこでなんかする。なんかってなんだよ、って気もするが。


データ構造とアルゴリズムの話だけど、昔はデータ構造がインターフェースだから、それでよかったのかなぁ、などと思ってみた。

よしきさんの日記(http://d.hatena.ne.jp/squeaker/20051121#p2)を読んで、強い違和感を感じたのが考察の原因。プログラミング初学者にはデータ構造・アルゴリズムの話は必要ないか、という。

よく、データ構造の議論になると、スタックのデータ構造とかソートのアルゴリズムとかをやるけど、まぁその深い話(極限まで最適化する話)はもちろん必要ないとして、概念として「こんな感じで考えていける」というのを示すのは必要なのではないか。要するに、それがプログラミング。

たとえば C では構造体があるけれど、構造体を使うと何がうれしいのか、初学者にはそれがわからないわけだけれど(俺がわからないだけだったのか)。そもそもどんなデータがあるのか、というのはきっとデータ構造な話だよな。

で、考えてみたら、構造体のメンバとかなんとかはインターフェースだなぁ、とか。型も同じ。


まぁ、インターフェースって言っちゃうと広義すぎるところもあると思うんですけどね。でも、他に適当な単語が思い浮かばないな。


http://next.rikunabi.com/tech/docs/ct_s03500.jsp?p=lwj034&__m=1

ソースのべた書きって何?

しかし、テストの手抜きとかはわからんでもないが、小さい字で納品って...。コンサルの仕事ってそういうものなんですか。


visibility のチェックをしようとしてはまっていたのを忘れていた。


SEA & FSIJ 合同フォーラム 〜開発最前線シリーズ: GCC 行く年来る年〜

見に行きたいような、2000円払うものが得られるか不安というか。自分が吸収できるか、ね。


GC デバッグで死ねる。


begin/rescue で一緒に使う else はどこで使うんだ、という話がありましたが、標準添付ライブラリでは7箇所ありました。

"/usr/local/lib/ruby/1.9/test/unit/autorunner.rb" 87
"/usr/local/lib/ruby/1.9/fileutils.rb" 1248
"/usr/local/lib/ruby/1.9/irb/cmd/help.rb" 17
"/usr/local/lib/ruby/1.9/optparse.rb" 763
"/usr/local/lib/ruby/1.9/test/unit/autorunner.rb" 87
"/usr/local/lib/ruby/1.9/time.rb" 502, 569, 631

さすがnokadaさん、はずしません。

_shiro(Mon Nov 28 13:05:29 JST 2005)

"++"はPDPのアセンブラ起源じゃなかったかな、と一瞬思ったんですが念のため調べたら違ったみたい。 http://cm.bell-labs.com/cm/cs/who/dmr/chist.html ("More History" の 2パラグラフ目)

ところで「プログラミング言語の優劣」を書けばきっとたくさんの反応があると思います (ポールグレアムメソッド)

_babie(Mon Nov 28 20:23:01 JST 2005)

 ざーっと見た感じ、if 文の分岐っぽい使い方ですね。>else

_27(Sun)

戻り。

帰り際に ICO を買う。いつやるんだろ。


3列バスはそれなりに快適だったが、やっぱり眠れなかった。寒いしやはり足伸ばせないし。全部倒せなかったし(後ろの人が文句言った)。

_26(Sat)

そろそろ京都に出発。

昼飯どうしようかな。


終わり。場違いですみませんでした orz


勉強会で勉強中。

  • 間、重要。
  • ステップの吟味、重要。
  • サンプル重要。
  • 再実行重要。
_さ(Sat Nov 26 09:09:33 JST 2005)

 9 13 東京発

_さ(Sat Nov 26 11:33:59 JST 2005)

 着

_さ(Sat Nov 26 12:20:53 JST 2005)

 坂

_25(Fri)

しかし、コンパイラ部分の最適化って楽でいいよな。影響範囲もすごく限定されるし。


そしていつものように、泣きながら発表資料を作る。でも、切り貼り。


現実逃避に型推論についてちょっと考えてみる。コンパイラを弄ってちょいちょい、とやればちょびっとだけ出来そうな気がする。


Array#each / Range#each / Integer#times が速くなるとどれくらい高速化するのか。


キーワード引数をちょっと考えていたんだけど、全部キーワード引数にするか、キーワード引数にしないか、どちらかを選択するようにしたらどうだろうか。

def m(a, b)
  raise unslee a==1 && b == 2
end

m(1, 2)       # OK
m(a: 1, b: 2) # OK
m(b: 2, a: 1) # OK

m(1, a: 1)    # NG
m(1, b: 2)    # NG

VM が泣きながら頑張れば出来そうな気がするんだけど、どうなんだろうね。rest / block argument はどうなるんだろう。

あと、method missing がどうなるんだか。


学校についたはいいが,ラップトップのアダプターを忘れてしまった.どうしよ.


先日の T_DATA への考察,木山さんのに載ってるなあ.

しかし,「拡張ライブラリが生成するオブジェクトを特別なリストを用いて管理し,古い世代へ移動させず〜」の意味がわからん.拡張ライブラリで生成した Array とかも同様ってこと?

それとも,先日考えたように,殿堂入りした T_DATA オブジェクトをリストにつなげて毎回 mark 関数を呼ぶ?

しかし,殿堂入りポリシの話は同じことが書いてあるな.やっぱり同じこと考えるんだなあ.


write barrier だけど,どうやるのが一般的なんだろう.古い世代に参照されたら自分も古い世代になるという簡単なものだと,性能的にどうなんだろ.メジャーGCおきまくり?

あー,自分でやってみてー.


自分の子供(自分が参照しているオブジェクト)を全部殿堂入りさせないと駄目だから駄目か.


今日はご馳走様でした。考えてみると凄い豪華な面子だったな。

_24(Thu)

大量に昼寝をしてしまった。


なんか search_method() とか、そのあたりの構造が微妙な気がする。noex の場所とか。この辺一新しないと駄目かな。波及効果がわからないから怖い。


ふと、morqさん、というのを思いついた。

  • "moriqさん" の検索結果 約 196 件
  • "morqさん" の検索結果 約 59 件

_23(Wed)

なんかやる気が出ないので延々と「最前線UNIXのカーネル」という本を読む.Solaris 2.5 が最新な最前線.

v-node/vfs の構造とか,i-node との関係とかがよくわからんなぁ.実は,i-node とカーネルとの関係もよくわかっていない.

しかし,色々とわかりやすい.ふつりな読んでるよりもわかりやすいと思うんだけれど,俺変なのかなあ.


上記の本,p435

多くの商用環境では,これに関連して,メモリの使用パターンは周期的である.例えば,昼間は,データベース検索とトランザクション処理に使用され,夜間はバックアップとデータベースの再構築に使われるマシンの場合,昼間と夜間では,メモリ割り当ての要求の種類が違うだろう.

おお,目からウロコ.Kernel Memory allocator の話なんだけどね.


世代別GCの考察.

  • スタックからのみ参照されているオブジェクトは殿堂入りさせない
  • その他は一回で殿堂入り

mark するときの root によって動作を変えてあげればいいと思うので,特にコストはかからないような.深い,浅いは気にしない.いや,別に気にしてあげてもいいか.

いや,絶対誰かがやってるだろうけれど,効果のほどは? こないだの SIGPRO のやつだと遅くなってたけど,なんか余計なことやってたような気がしたんだよな.


しかし,write barrier の挿入だよなぁ,問題は.挿入忘れを防ぐための方法論ってあるのかなぁ.ポリシ決めよりも,実際は重要だと思うんだが.


Ruby の場合,一番重要(やばそう)なのが T_DATA のバリアし忘れだと思うんだけど,T_DATA はしょうがないからとにかく全部マークするように出来ないだろうか.

問題になるのは,殿堂入りしている T_DATA の構造体に,勝手に誰かがマークしないでRubyオブジェクトを突っ込んでしまった場合.

これを防ぐために,殿堂入りしている T_DATA なオブジェクトのリストを用意してあげて,そいつらは強制的に mark 関数を呼び出す,というのはどうでしょうか.

で,これから拡張ライブラリを作る人で,write barrier をきっちり作る人には T_DATA_BARRIERD でも用意してあげるとか.


今までは,T_DATA のオブジェクト data_value が含む構造体 data->value に対して,

data->value = value;

だけで済んでいたのを,

insert_ruby_value(data_value, data->value, value);

みたいにするのかなぁ.

#define TENURED_VALUE_P(v) (RBASIC(v)->flags & TENURED_FLAG)

#define TENURED_P(v) \
  (!SPECIAL_CONST_P(v) && TENURED_VALUE_P(v))

#define insert_ruby_value(d, dv, v) \
  if(!SPECIAL_CONST_P(v) && TENURED_VALUE_P(d) && !TENURED_VALUE_P(v)) \
    dv = WRITE_BARRIER(v); \
  else \
    dv = v; \

みたいな感じになるのかなあ.マクロにしておけば,v が即値のときにはコンパイル時にチェックを省略してくれる.


って、環境へのアクセスにもライトバリアをしないといけないのか。ローカル変数アクセスでライトバリアって、なんか嫌だなあ。

_22(Tue)

(まつもとさんの日記への突込みを見て)「次は例外処理なんていかがですか?」などと聞かれてみたいものだと思った。


今更ながらわからないんだけど、メソッドキャッシュの origin と mid0 って何のためにあるんだっけ。


あ、origin は思い出した。super とかその辺のために必要、でいいんだっけかな。

mid0 は alias とかその辺だったっけ。


なんか noex の居場所がなくて困っている。って、noex って何の略だったっけ。node EXposure か。この辺も作り変えられれば変えたいものだなあ。


YARV では mid0 は必要ない。逆に mid の情報が失われる。

def t1
  p caller(0)[0]
end

alias t2 t1
t1 # (1)
t2 # (2)
#=> 
# "t.rb:3:in `t1'"
# "t.rb:3:in `t1'"

alias されていても t1 は t1 なので、t1 と表示される。これが mid0。

mid は (2) で呼んだときは t2 になっている。つまり、t2 というシグネチャで呼び出した、ということ。frame の callee id。エラーメッセージを出すためにしか使っていない? alias と super が絡んだときに必要だった気がするが、シチュエーションが思い浮かばない。


話者:笹田耕一
   東京農工大学大学院工学教育部電子情報工学専攻・並木研究室
   日本 Ruby の会

話者はプログラミング言語 Ruby 用仮想マシンである YARV: Yet Another
RubyVM (*1) を開発している。現在の Ruby 処理系は抽象構文木をそのまま辿る
インタプリタであるため速度的な問題がある。YARV はこの問題を解決するため
に開発している命令列実行型のインタプリタであり、命令列の設計、コンパイラ
および評価器の開発を行っている。評価器では各種最適化を利用して、Ruby プ
ログラムを高速に実行するための工夫を行っている。YARV について、先月アメ
リカ・サンディエゴで行われた Fifth International Ruby Conference
(RubyConf 2005) で発表 (*2) し、OOPSLA'05 でポスター発表 (*3) を行った。
今回はその経験を含め YARV の紹介を行う。なお、本プロジェクトは IPA 未踏
ソフトウェア(2004 年度未踏ユース (*4)、2005 年度未踏 (*5))による支援を
受けている。

*1: YARV: Yet Another Ruby VM
    http://www.atdot.net/yarv/
*2: RubyConf 2005 - Agenda
    http://www.rubycentral.org/conference/agenda_detail.html#yarv
*3: OOPSLA'05-YARV: Yet Another RubyVM
    http://www.oopsla.org/2005/ShowEvent.do?id=533
*4: IPA:2004年度「未踏ユース」開発成果:98-02笹田
    http://www.ipa.go.jp/jinzai/esp/2004youth/mdata/98-02.html
*5: IPA:2005年度上期「未踏ソフト」採択概要:10-17笹田
    http://www.ipa.go.jp/jinzai/esp/2005mito1/gaiyou/10-17.html

の秋葉原で話すやつですが,セキュリティの関係でお名前を頂ければ大丈夫だそうです.聞きたい方はささだまでメールください.でも,デイタイムです.

  • 11/25 (Fri) 16:00 〜 秋葉原の産総研

だそうですが,詳しい場所は知らなかったりする.


コンピュータシステム・シンポジウムに行こうか迷ってたら,参加費割引期間が終わっていた.しょぼーん.

しかし,ウェブページ(PukiWiki)に「コンピュータシステム・シンポジウムシステム」ってあるんだが,最後の「システム」って何だ.懇親会だけならタダなのか.しかし,それだけっていうのも.

俺,CSS には縁が無いなあ.というか,OS研に縁が無い.一度もOS研に行った事がない(SWoPP では行ってるけど).機会があれば行きたいんだが.

_まつもと(Tue Nov 22 16:27:23 JST 2005)
class Foo
  def boo
  end
end

class Bar<Foo
  def boo
    super
  end
  alias quux boo
end

Bar.new.quux

で、Foo#booが呼ばれるために必要なんじゃなかったかと。

_ささだ(Tue Nov 22 17:38:59 JST 2005)

 callee (quux) は要らないような気がしますが。

_まつもと(Tue Nov 22 20:22:58 JST 2005)

 callee? frameの? あれはデバッグ出力用だったかな

_ささだ(Wed Nov 23 00:15:41 JST 2005)

 なるほど,そういうことだったのか.

_斎藤ただし(Wed Nov 23 15:40:28 JST 2005)

 秋葉原のお話、丁寧にありがとうございます。残念ながら、別の用事ができたので出席は厳しくなりました。ただ自分は読書会の存在を知らなかったので、もし機会があればそちらに参加させていただきます。

_21(Mon)

Niagara: 32ウェイマルチスレッド SPARC プロセッサ, 情報処理 Vol. 46, No, 11, pp1236-1243

日本語はなんて読みやすいのか(日本のトップクラスの研究者の翻訳だからかも)。それはともかく、大変説得力のある論文だなあ。こういう論文が書けるようになりたい。

  • 1 chip
  • shared: L2 cache (3MB, 4way bank, 12 way set associative) <- bank と s/a の違いって何?
    • 8 thread groupes
    • shared: 1L cache, TLB, pipeline
      • 4 threads
      • regs, 命令群 (なにこれ), store buffer

32 CPU SMP 構成に見える、って書いてあるけど、TLB はスレッドグループで共有、ということは、ふつーの solaris じゃ駄目だと思うんだけどなあ。って、solaris アプリケーションね。なるほど。OS はどうやってるんだろう。そっちに興味が。

スレッドの切り替えにオーバヘッドがない、と書いてあるが本当だろうか。

例外の扱いはどうなるんだろう。

スレッド選択の H/W とスーパースカラの H/W...。スレッド選択のほうが単純か。

レジスタファイルでかいな。retire するのはたかだか 1 スレッドだから問題ないんだろうか。

コンパイラによる最適化が必要ないって書いてあるけど、これ用のコンパイラを書いてみたい。でも、SPARC は嫌かな。


どうにも define_method が嫌いでしょうがないのだが、

def define_method2 sym, args, body
  eval %Q{
    def #{sym}(#{args})
      #{body}
    end
  }
end

define_method2 :foo, 'a, b', %q{
  # body
}

なんてのはどうだろう。駄目かなあ。method 名が駄目、args が文字列はダサい、というのはあるが。


なんか extmk.rb が動かない。

ext/foo/extconf.rb/Makefile というファイルが作られてしまうが、はて?


p [1, 2, 3].map{|e|
  e = e * 2
  e
}
#=> [1, 2, 3]

こんな罠が。さて、原因は・・・。

あー、なるほど。コンパイラのバグだった。どうしたものかな。


この辺は、いい加減 block の node tree を無理やり解釈してるところだなぁ。どうしたものか。

パーサを弄りたいんだが、どう弄ったもんだかさっぱりわからない。要するに、ブロックパラメータであることをノードツリーから見ることは不可能なんですな。

あー、これは困った。


解決。

なんとなく動いてる。


zlib をコンパイルしようとしてエラー。ruby_errinfo をアクセスしようとしてるんだが、YARV にはそんなもんは無い。どうしたもんかね。


投票更新。

つい、今回は余計な選択肢を忘れてしまった。


IRC で盛り上がった w3m をいじめる方法.西山さん提案 > http://www.atdot.net/~ko1/tmp/t.html

IE など使ってる人はソース参照.文章は オブジェクト指向言語Ruby - What's Rubyから引用.


st = 10
line  = st
col   = st
chars = []

ARGF.read.split(//).each{|c|
  if c == "\n"
    line += 1
    col   = st
  else
    chars << {:line => line, :col => col, :char => c}
    col += c.length
  end
  if col >= 60
    line += 1
    col   = st
  end
}

chars = chars.sort_by{rand}
body = ''
chars.each{|e|
  style = "position: absolute; top: #{e[:line] * 2.5}ex; left: #{e[:col] * 0.5}em"
  body << "<div style='#{style}'>#{e[:char]}</div>"
}

template = <<EOS__
<?xml version="1.0" encoding="Shift_JIS"?>

<!DOCTYPE html 
  PUBLIC "-//W3C//DTD XHTML 1.1//EN"
  "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja">
  <head>
	<meta http-equiv="Content-Type" content="text/html;charset=Shift_JIS" />
	
	<title>sample</title>
	
	<meta name="author" content="SASADA Koichi" />    
</head>
<body>
<h1> w3m イジメ </h1>
<tt>
#{body}
</tt>
</body>
</html>
EOS__

require 'erb'
ERB.new(template).run

no memory error が頻発するんだけど,なんでだろう.もちろんそんなに使ってるわけじゃないんだが.


cap さて,るびまのプレゼント用のレシピブックと楽しいRubyですが,サインを貰ってきました.

cap cap

・・・.ごめん.これじゃ本に名前を書いただけだな.


gpg の昔ためしに作った鍵を発見したので,やっと revoke できる,と思ったら失効証明書が無い orz そしてもちろんパスフレーズなんて覚えてない.

でもまぁ,ものは試しと思いついたパスフレーズを入れていったら通ってしまった.思いつきのパスフレーズで通るって....

_なかだ(Mon Nov 21 10:38:29 JST 2005)

 ruby_errinfoがないってことは$!もなし?

_ささだ(Mon Nov 21 11:03:35 JST 2005)

 Ruby レベルでは $! はあります。getter になってる。

_卜部(Mon Nov 21 13:22:00 JST 2005)

 define_method は変数のスコープが def と違うところがいいのに。

_なかだ(Mon Nov 21 15:58:32 JST 2005)

 setterは? というか、引数なしのraiseのとき投げるのは何?

_ささだ(Mon Nov 21 17:10:14 JST 2005)

 つ eval.c

_なかだ(Mon Nov 21 18:07:55 JST 2005)

ソースレベルなら

#define ruby_errinfo GET_THREAD()->errinfo

だろうけど、バイナリレベルだと面倒かな。 call_cfunc()で毎回コピーというのはオーバーヘッドが大きいかな?

_ささだ(Mon Nov 21 18:41:18 JST 2005)

 バイナリレベルの互換性は気にしなくていいんじゃないかと.

_20(Sun)

RHG 読書会だった。


iPod nano をポケットの無い服装でうまいこと身につける方法は無いものか。部屋着で今困っている。


そういえば誕生日だ。自分はこの歳まで生きてきて、何が出来たか。これから何が出来るか。


さて、千葉PMの未踏成果報告会はちょっと大掛かりにやるそうなのですが、すでに PRESS も来ることが決まっているそうです。J○v○ Press...。

...。

Ruby の発表もあるんだよ orz

Ruby 関連のは来てくれないものか。って、るびまか? これじゃあ自作自演だよ。


リダイレクトしたら core をはくというのはいったい何が悪いのか・・・。

そして gdb + redirect では core をはかないという不思議。


not ok assignment 97 -- ../yarv/test.rb:146:in `block in <main>'
not ok assignment 98 -- ../yarv/test.rb:147:in `block in <main>'
not ok assignment 99 -- ../yarv/test.rb:148:in `block in <main>'
not ok assignment 100 -- ../yarv/test.rb:149:in `block in <main>'
not ok assignment 101 -- ../yarv/test.rb:150:in `block in <main>'
not ok assignment 102 -- ../yarv/test.rb:151:in `block in <main>'
not ok assignment 103 -- ../yarv/test.rb:152:in `block in <main>'
not ok assignment 110 -- ../yarv/test.rb:160:in `block in <main>'
not ok assignment 111 -- ../yarv/test.rb:162:in `block in <main>'
not ok assignment 112 -- ../yarv/test.rb:163:in `block in <main>'
not ok assignment 113 -- ../yarv/test.rb:164:in `block in <main>'
not ok assignment 114 -- ../yarv/test.rb:165:in `block in <main>'
not ok assignment 115 -- ../yarv/test.rb:166:in `block in <main>'
not ok assignment 116 -- ../yarv/test.rb:167:in `block in <main>'
not ok assignment 117 -- ../yarv/test.rb:168:in `block in <main>'
not ok assignment 118 -- ../yarv/test.rb:169:in `block in <main>'
not ok assignment 119 -- ../yarv/test.rb:170:in `block in <main>'
not ok assignment 120 -- ../yarv/test.rb:171:in `block in <main>'
not ok assignment 121 -- ../yarv/test.rb:172:in `block in <main>'
not ok assignment 122 -- ../yarv/test.rb:174:in `block in <main>'
not ok assignment 123 -- ../yarv/test.rb:175:in `block in <main>'
not ok assignment 124 -- ../yarv/test.rb:176:in `block in <main>'
not ok assignment 125 -- ../yarv/test.rb:177:in `block in <main>'
not ok assignment 126 -- ../yarv/test.rb:178:in `block in <main>'
not ok assignment 127 -- ../yarv/test.rb:179:in `block in <main>'
not ok assignment 142 -- ../yarv/test.rb:196:in `block in <main>'
not ok assignment 208 -- ../yarv/test.rb:272:in `block in <main>'
not ok assignment 217 -- ../yarv/test.rb:288:in `<main>'
not ok assignment 218 -- ../yarv/test.rb:289:in `<main>'
not ok assignment 219 -- ../yarv/test.rb:290:in `<main>'
not ok assignment 220 -- ../yarv/test.rb:291:in `<main>'
not ok assignment 221 -- ../yarv/test.rb:292:in `<main>'
not ok iterator 3 -- ../yarv/test.rb:829:in `<main>'
not ok iterator 16 -- ../yarv/test.rb:956:in `<main>'
not ok iterator 17 -- ../yarv/test.rb:958:in `<main>'
not ok iterator 41 -- ../yarv/test.rb:1011:in `<main>'
not ok iterator 42 -- ../yarv/test.rb:1012:in `<main>'
not ok iterator 45 -- ../yarv/test.rb:1015:in `block_test'
not ok iterator 47 -- ../yarv/test.rb:1032:in `<main>'
not ok iterator 49 -- ../yarv/test.rb:1034:in `<main>'
not ok iterator 50 -- ../yarv/test.rb:1035:in `<main>'
not ok iterator 51 -- ../yarv/test.rb:1041:in `<main>'
not ok iterator 58 -- ../yarv/test.rb:1049:in `<main>'
not ok iterator 60 -- ../yarv/test.rb:1051:in `<main>'
not ok iterator 61 -- ../yarv/test.rb:1054:in `<main>'
not ok iterator 62 -- ../yarv/test.rb:1055:in `<main>'
not ok iterator 64 -- ../yarv/test.rb:1057:in `<main>'
not ok iterator 65 -- ../yarv/test.rb:1060:in `<main>'
not ok iterator 66 -- ../yarv/test.rb:1061:in `<main>'
not ok iterator 68 -- ../yarv/test.rb:1063:in `<main>'
not ok iterator 69 -- ../yarv/test.rb:1065:in `<main>'
not ok iterator 72 -- ../yarv/test.rb:1082:in `<main>'
not ok iterator 78 -- ../yarv/test.rb:1152:in `<main>'
not ok iterator 79 -- ../yarv/test.rb:1159:in `<main>'
not ok iterator 81 -- ../yarv/test.rb:1172:in `<main>'
not ok iterator 86 -- ../yarv/test.rb:1228:in `<main>'
not ok iterator 88 -- ../yarv/test.rb:1246:in `<main>'
not ok iterator 96 -- ../yarv/test.rb:1297:in `foo'
not ok iterator 97 -- ../yarv/test.rb:1332:in `<main>'
not ok defined? 6 -- ../yarv/test.rb:2072:in `<main>'
not ok defined? 8 -- ../yarv/test.rb:2086:in `<main>'
not ok defined? 11 -- ../yarv/test.rb:2093:in `<main>'

test: 822 failed 62

sample/test.rb が、やっと core を吐かなくなった、と言ってもまだコメントアウトしてるのがあるんだが。sample/test.rb は少なくとも全部パスさせないとなあ。


どうにも意味不明なバグ。GC かなぁ。でも、ここで GC は動いてないんだよな。


GC のバグっぽいということがわかった(free したものを使っていてエラー)。が、原因がわからない。だいぶ絞り込めたんだが。


やっと通った。なんと犯人は NODE_AND / NODE_OR。


http://kazuhiko.tdiary.net/20051119.html#p02

そうですか。小麦系パーティーですか。NaCl は凄いところだ。


sicp-reading だった。

(やってたのは YARV のデバッグ)


用があって家に早めに帰ったが、帰る意味が無かった。

いや、逆の意味で、あったのかなぁ。


if false
  BODY
end

など、即値なら無駄な条件文を減らそうと、ちょっと工夫したら、

  jump L
  BODY
L:

とコンパイルされた。BODY 部分には到達しないため、dead code elimination をすれば

  jump L
L:

となり、useless jump elimination でこの部分は全部消えることになるが、パスが増えることになる。

if/unless に対応するだけならば、dead code elimination なんかしなくてもアドホックな対応が出来るが、たとえば and / or と重なったときにきれいにいくかというと、多分行かない。

まぁ、条件文に即値がくるのはとても稀なので(というか、デバッグのためのコメントアウトの代わりくらいだろう)、どうでもいいといえばどうでもいいのだが。

dead code elimination をきちんとやろうとすると、パスが一個増える。(そんな稀な状況のために)コンパイル時間を増やすのは大変馬鹿らしい。

とか、そんなことを考えてみる。


標準ライブラリ全部にこの最適化を適用してみたら、50箇所くらいでひっとした。

いったいこんなものをどこで使っているのかと思ったら、while true という無限ループのための条件式として使っていた。なるほどなぁ。

これだったら dead code elimination は必要ないだろうから、これでいいや。

_arton(Sun Nov 20 02:36:55 JST 2005)

 お誕生日おめでとう。

_babie(Sun Nov 20 13:04:04 JST 2005)

 おめ。未踏発表は Java VM に挑んだらいんでないかい?

_ささだ(Sun Nov 20 14:35:57 JST 2005)

 もう Java VM はいいや。

_ただただし(Sun Nov 20 16:06:30 JST 2005)

 すべての部屋着にnano用のポケットを縫い付けるというソリューション。

_oku(Sun Nov 20 21:03:45 JST 2005)

 おめでとさん!

_なかだ(Sun Nov 20 23:10:53 JST 2005)

 おめ。その削減は前にやったような気がしなくもないけど、出してなかったかも。

_みずしま(Sun Nov 20 23:11:33 JST 2005)

 誕生日おめでとうございます。

_19(Sat)

いまさらなのかもしれませんが、yoosee さんに Mozilla Thunderbird - 検索フォルダ を教えてもらいました。これで TB の不満点はもう解消されたか。これに keyconfigで、ラベルをつけて。

すばらしい。


Ruby-GNOME2 を入れてみようと思ったんだけど、cygwin で全然ライブラリが足りなくて断念。何か入れ忘れてるんだろうか。


眠い。


http://www.eslpod.com/ 酒井君に教えてもらった。

_nobsun(Sat Nov 19 13:26:52 JST 2005)

 今日はこないの?

_18(Fri)

iTunes (Windows) 版、プロキシを無条件で IE の設定を使うのでちと困る。


話者:笹田耕一
   東京農工大学大学院工学教育部電子情報工学専攻・並木研究室
   日本 Ruby の会

話者はプログラミング言語 Ruby 用仮想マシンである YARV: Yet Another
RubyVM (*1) を開発している。現在の Ruby 処理系は抽象構文木をそのまま辿る
インタプリタであるため速度的な問題がある。YARV はこの問題を解決するため
に開発している命令列実行型のインタプリタであり、命令列の設計、コンパイラ
および評価器の開発を行っている。評価器では各種最適化を利用して、Ruby プ
ログラムを高速に実行するための工夫を行っている。YARV について、先月アメ
リカ・サンディエゴで行われた Fifth International Ruby Conference
(RubyConf 2005) で発表 (*2) し、OOPSLA'05 でポスター発表 (*3) を行った。
今回はその経験を含め YARV の紹介を行う。なお、本プロジェクトは IPA 未踏
ソフトウェア(2004 年度未踏ユース (*4)、2005 年度未踏 (*5))による支援を
受けている。

*1: YARV: Yet Another Ruby VM
    http://www.atdot.net/yarv/
*2: RubyConf 2005 - Agenda
    http://www.rubycentral.org/conference/agenda_detail.html#yarv
*3: OOPSLA'05-YARV: Yet Another RubyVM
    http://www.oopsla.org/2005/ShowEvent.do?id=533
*4: IPA:2004年度「未踏ユース」開発成果:98-02笹田
    http://www.ipa.go.jp/jinzai/esp/2004youth/mdata/98-02.html
*5: IPA:2005年度上期「未踏ソフト」採択概要:10-17笹田
    http://www.ipa.go.jp/jinzai/esp/2005mito1/gaiyou/10-17.html

以上の話を

でさせていただきます。


てゆーか連続かよ。

ダイビルは一度入ってみたかったので楽しみ。岸本さん入れてくれないんだもんな。


先日生協に行った時、白石さんに学生が例の本にサインをしてもらっていた。色々大変だな。

というか、新聞で一週間で20万部とか書いてあったよ。凄いなあ。個人的には、白石さんなどの報酬が気になる。

しかし、きっとプレゼン本もそれくらい売れるに違いない。

_斎藤ただし(Fri Nov 18 14:05:51 JST 2005)

 YARVのお話に興味があるのですが、自分のような一般人が事前連絡なしに顔を出しても平気なものでしょうか(行くとすれば秋葉原の方です)。

_ささだ(Fri Nov 18 20:32:40 JST 2005)

 残念ながら、産総研のほうは無理なんじゃないかなぁ、と思います。

_斎藤ただし(Fri Nov 18 21:45:16 JST 2005)

 分かりました。わざわざどうもです。

_中の人(Fri Nov 18 22:39:41 JST 2005)

 さすが事前連絡無しだと無理だけど,僕と知り合いってことにすればいいんじゃない?

_ささだ(Sat Nov 19 09:08:54 JST 2005)

 というか、RHG 読書会などに来ていただければいくらでも説明できます。

_17(Thu)

今月の「情報処理」も楽しいなあ。


さて、関西勉強会の予定をそろそろ、と思って考え出す。

当初、

  • 新幹線で往復+ホテルのパック -> だいたい 2.5万円

と考えていたのだけれど、このパックは使える新幹線が凄く限られているらしい。

ということで、結局泊まらないことにした。

  • 新幹線(行き)学割で1.2万円ほど
  • バス(帰り)学割で0.7万円ほど

ということで、結局 1.9万円ほどになりそう。

京都観光がしたいような気がしたんだけれど、まぁ今回は諦めよう。一人でどこに回るのかってのもあるしね。


学割のための書類を発行する機械が 16:30 で利用停止になってしまうのは、大変不便なんだがなんとかならんのだろうか(閉まっててもらえなかった)。


邪道だと思います。

_babie(Thu Nov 17 20:26:06 JST 2005)

>京都観光 いつもの日曜なら案内できるんだけど、その日は誕生会があるかも……

_かずひこ(Thu Nov 17 22:56:10 JST 2005)

 「いつか二人でどこに回るのか」の下見だと思えばいいのに。

_yoosee(Fri Nov 18 13:03:22 JST 2005)

 ヒント:現地調達

_16(Wed)

12月はイベントが大量にあるな・・・。どっかでRubyの会忘年会もしたいんだが・・・。時期的には Rails 勉強会あたりにぶつけるのが良さそうだけど、Kahua があるんだよな。どっちに行こう。


あと、プロシンに行かないといけないらしい。


で、やっと optparse.rb が動いた...。

最後にはまったのは、

def foo
  return nil if cond1
  if cond2
    a, b = ary1
  else
    c, d = ary2
  end
end

...

body if foo

このコード、わかりますかね。cond1 が成立したら foo は偽を返して、そうでなければ 必ず 真になる。多重代入は配列を返すんですな。

だけど、YARV では多重代入は nil を返すようにしてるんです(多重代入の返り値って自明じゃないよね)。まぁ、そんなわけではまった。しょうがないんで、optparse 対策として、多重代入は true を返すことにした。

でも、こんなことを書くと中田さんが多重代入を連鎖させたコードを書いたりするんだろうか。

というわけで、多重代入の返り値を使うのはやめましょう。


スラド経由。http://www.beasys.co.jp/news/japan/2005/2005062701.html

プロジェクト「Bare Metal」で、完全仮想化Java Cloudを実現

プロセッサにOS仮想化機能が入ってきた最近、言語処理系実装者が考えるべきことは何か。うーん、研究してみたい。


Rubyist Magazine 0011 をリリースしました。

お楽しみください。


いやー、今月も無事に出てよかった。

_向井(Wed Nov 16 02:40:31 JST 2005)

 普通の代入の場合は代入結果が返るので、多重代入の場合は配列とか多値とかが返されることを期待するのはごく普通な気がするのですが

_ささだ(Wed Nov 16 03:46:06 JST 2005)

 何を返すかは自明ではないと思います。まぁ、だから返り値は無し、というのも乱暴な気はするんですがね。うまい実装が思いつかないというのもあるんですが。

_maeda(Wed Nov 16 15:15:46 JST 2005)

 Common Lispのmultiple-value-setqは「最初の値1つ」を返しますね。並列代入(psetq)はNILを返します。

_なかだ(Wed Nov 16 18:56:26 JST 2005)

 a, b = (c, d) = 1みたいのは動かないということ?

_ささだ(Wed Nov 16 21:10:49 JST 2005)

 動かないです。というか、そういう式を書かせるのはいいことなんだろうか。

_15(Tue)

いい加減に safe level と visibility に真剣に対応しないといかんなぁ。safe level は気をつければいいだけだけど(それが大変だが)、visibility は Ruby の素敵なスコープルールがあるので大変難しい。というか、まだ理解できていない。

たとえば、

class C
  pr = lambda{
    def m
    end
  }
  private
  pr.call
end

C.new.m

の、C#m の visibility はなんでしょー。

うーむ・・・。こんなのどうやって実装すっかなぁ。


でも、そんなでもないか。


define_method の実装がどうしても面白くなくて悩む。やはり、NODE_BMETHOD が必要だろうか。


All your base are ... って何が面白いんだっけ、とか久々に思い出して、All your base are belong to us を久々に見たらなんか考察が追加されていて、なるほど、と思う。


そういえば、Re: がどうの、というのが論争の種になっていたとかいう話は高校のときに Nifty のどこぞの会議室で見たような気がしたんだけど、どーでもいいのでほうっておいたのが、今ちょっと気になったので、何がどう議論されたんだろうと思ったら、なるほど、そういうことなのね。でも、レスって使うなあ。


そういえば、visibility なんかがどうの、という前に、そもそも NODE_FCALL か CALL か VCALL かの情報を今落としてるんだよな。新しい命令を作るか、新しい命令オペランドを作るか、今あるフラグを利用するか。悩ましい。


2ch で後置 while/until の話がちょっとあって、アレって思ったら YARV でまだ対応していなかったので対応した。

実は後置の while のほうが jump 命令が一個少ない。

; ふつーの while
  jump cond
body:
  eval body
cond:
  eval cond
  if goto body

; 後置の while
body:
  eval body
cond:
  eval cond
  if goto body

いや、どうでもいいんだけど。


駄目といわれていた //o も直す。しかし、排他制御はコストが大きすぎるのでやらないことにする。BUG にはならないからいいよね。


そして動かない optparse.rb。こいつが動いてくれないおかげで extmk.rb と test/unit が動かないという。


恐ろしく寝過ごした orz

_14(Mon)

あー、もう11月も半分過ぎちゃったよ orz


などと、るびまの積み残しをこそこそと潰す日曜日の26時。


iPod nano はどーせ 4GB もいらんだろう、と 5000円をけちって 2GB 版を買ったんだけれど、残り700MB。やっぱり 4GB のほうがよかっただろうか。でも、音楽を聴くのを目的に買ったんではないので、これはこれでいいような気がする。


白石さんすげえなぁ。

さて、サイン会の隣でネギまネタでお菓子屋さん(意味不明)を後輩が出展していたらしいんだが、採算は取れたんだろうか。初日は「キモ」という反応が多かったらしいんだが。


研究室に掃除機をかける。掃除機の中の袋がパンパンだった。


http://www.nminoru.jp/~nminoru/java/cms/pauseless_gc.html むむ。Ruby も GC で遊びたいような、触りたくないような。スレッドローカル GC だけは、なんとしても必要だとは思うんだけど。


irb はみんな使ってるんだろうか。私は全然使わないんだけど。2 行以上打とうと思うとエディタ (xyzzy) 使っちゃうからなあ。マウスでカーソル移動できないし!


ちょっと見てみると、http://www.namikilab.tuat.ac.jp/~sasada/diary/200506.html#d25 からコメントのリンクが変だったらしい。


キーボードの掃除をしていたら、キーが飛んでいってしまい行方不明に。ウワーン。

きっと買いなおすと見つかるんだろうなあ。昔壊れた FKB8579、まだとってたかなぁ。捨てちゃったよなあ。うーん。だいぶキーもやわらかくなってきていい感じになってるのに。


発見! よかったぁ。


うーん、これは来月の RHG はクリスマスイブってことか・・・。俺は全然構わないんだけどね。

_babie(Mon Nov 14 09:10:06 JST 2005)

 やっぱ英語?>iPod nano

_ささだ(Mon Nov 14 11:12:44 JST 2005)

 英語です。

_ょゎ(Mon Nov 14 16:48:09 JST 2005)

 コメントのpermalinkがおかしいような。

_ょゎ(Mon Nov 14 16:50:34 JST 2005)

 本題を忘れてました。irbは使わない派です。

_きむら(Mon Nov 14 17:12:17 JST 2005)

 irbちょこちょこ使ってます。

_ささだ(Mon Nov 14 17:17:55 JST 2005)

 これで治っただろうか。

_ogino.(Mon Nov 14 23:58:34 JST 2005)

 RHGは10日がいいなあ。

_13(Sun)

http://slashdot.jp/comments.pl?sid=285985&cid=830745

ウォシュレットと空目して、なんで携帯が。。。と30秒くらい悩んでしまった。


瑠璃色ねえ。なんかもっとぶっ飛んだのを期待したんだが。りんごに比べてしまうと...。


たださんの日記ではじめて知ったのですが、音声ブログなんてものがあるんですか。るびまのインタビューの公開もその形式で・・・というのは無理だな。音の編集なんて出来ない。

_12(Sat)

21時に寝たはずなのに、12時に起きる。おかしいなあ。

_11(Fri)

なんかやる気が出ないので、無茶苦茶先送りにしていた PGP 関連を調べてみる。Thunderbird で Enigmail というのは知っていたんだけど、名前しか知らない。


Enigmail をインストールしてみると、なんか TB 起動時にエラーが出る。なんでじゃー、と思ったら Linux 版だった。インストールさせるなよ。

cygwin に gpg を入れて、それで鍵を作る。昔一度作った鍵は無視の方向で。しかし、キーサーバに残っちゃってるよ、どうしよう。

Public Key
http://www.atdot.net/~ko1/public.asc
id
0x027EFA00
fingerprint
EF94 453A C172 EA5C 75A6 2FAF E90E 43CC 027E FA00

で、なんか動くことを確認。しかし、key server から公開鍵を探してくるときにこける。ある DLL が無いらしい。そんなこと言われても困る。

困っていたら、なんとなく keychain をインストールしてみたら、その中に入っていたらしい。なんとも...。

で、肝心の PGP の運用というか、信用モデルをさっぱり理解できていないのでこれから勉強。


もう一つの疑問が、複数 PC を利用している人が鍵(自分の秘密鍵、人の公開鍵)をどうやって管理しているのか、ということ。~/.gnupg を丸ごとコピーして運用? うーん。


で、なんで今更(でもないが)こんなことを始めたかというと、nadoka で IRC で信用情報を通信させることは出来ないかなー、と思ったもので。


サブ鍵とはなんだろう。


// header
user_pref("mail.identity.id2.headers","PGP-PUBkey,PGP-Finger");
user_pref("mail.identity.id2.header.PGP-PUBkey", "X-PGP-Publickey: http://www.atdot.net/~ko1/public.asc");
user_pref("mail.identity.id2.header.PGP-Finger", "X-PGP-Fingerprint: EF94 453A C172 EA5C 75A6 2FAF E90E 43CC 027E FA00 ");

こんな感じで fingerprint をメールに追記するようにしてみた。


いつも seasar のスペルがわからなくなる。


せっかく Enigmail 環境が出来たので使ってみたいけど使う機会なんて殆どないわな。

_shugo(Fri Nov 11 09:34:19 JST 2005)

 revokeすればいいんじゃないの?

_NaHi(Fri Nov 11 09:40:54 JST 2005)

 pgpdump(もしくはRuby好きならpgpdump.rb)を取ってきてpublic.ascを見てみよう。公開鍵に続き、2つの署名と副鍵(+それぞれと公開鍵を紐付ける署名)がついているのが見えるはずだ。そしてその副鍵のところを見てみると。。。めんどくさくなったのでやめ。

_10(Thu)

winny 本を読んだ。軽くて読みやすかった。内容も面白かったし。


method_missing は、method_missing というメソッドを見失うことが出来ない(method_missing 相当の機構で method_missing というメソッド名を取ることが出来ない)。

たとえば、HogeClass.set_method_missing(lambda{|...| ...} みたいなインターフェースも可能かと思うのに、なんでわざわざメソッドにしているんだろう、と疑問に思う。

super 出来ないのは不便そうだなあ、と思い直す。Smalltalk とかも同様にメソッドを定義して method_missing と同等の仕組みを提供しているようだけれど、継承とかが使いたかったから?

あと、実装がちょっと楽そう、というのはわかった。


るびま編集者の一部で、いま Tcl が大ブームです。racc とかでインタプリタ入門に作る、というのはいいアイデアではなかろうか。


細かいところを置いておくと、Enumerator は次のように Ruby で実装できる気がする。C での実装を見たけど、多分こんな感じだと思う。

class Enumerator
  include Enumerable
  
  def initialize m
    @method = m
  end

  def each &b
    @method.call(&b)
  end
end

class Object
  def to_enum sym
    Enumerator.new(self.method(sym))
  end
end

これを Method クラスのインスタンスのラッパー? と聞いたら全否定されたんだけれど、今度はラッパーという言葉の定義がわからなくなった(なんとなくしか捉えてなかった)。どなかた教えてくれませんか。

ラッパーという言葉で探すと TCP Wrapper の説明しか出てこないし。


wrapper from FOLDOC より

Code which is combined with another piece of code to determine how that code is executed. The wrapper acts as an interface between its caller and the wrapped code. This may be done for compatibility.


どうやら、それ以前の話だったようで。

_なかだ(Thu Nov 10 07:41:42 JST 2005)

 特異メソッドにできないじゃないですか。

_ささだ(Thu Nov 10 14:32:58 JST 2005)

 えー、method_missing を特異メソッドですか。

_9(Wed)

沖縄行きたいけれど,金がなぁ.


やばい,面白すぎ.


ノビノビにしていた DNS の延長代金を支払ってきた.後は手続き.今 atdot.net が使えなくなるととても悲しい.


東京で勉強会をやったら〜,というアンケート(投票一覧).

受講者はどれくらい集まるのか,講師・TAは集まるのか,という問題が.


QuickML で、シグネチャが "--" で切れてたのを "-- " にしてみた。最新のバージョンだと治ってるのかしらん。


google で static ruby の検索結果 -> 312件

static にならないかなー、と考えてみる。要は、ruby2c が扱うような ruby の超 subset だ。

文法は ruby。

Object 禁止(ぇ)。クラスは Fixnum と文字列とシンボルとハッシュと配列だけ。

型は代入時に決まる。

とかすると、Ruby が作れる Ruby のサブセットになるんだろうか。例外とかどーすんのかね。

ブロックは for 文のシンタックスシュガー。

作ってみると面白いと思うんだがなあ。クラス文とかどうだろ。

Ruby が(実用的な速さで)動く処理系を作るための最低限の Ruby のサブセット、というネタは面白そうに思える。でも、不便さを考えなければどこまででもいけるよな。

実用的なメタサーキュラインタプリタって作ったことが無いんだけれど、どうやるのかなぁ。Smalltalk の論文ってあんまり読んでないのがいけないのだな、俺は。

一度何も考えず Ruby を作ってみて、そこでプリミティブとして残すものを考える、というのが順当だろうか。


ダンシング須藤さんを見る。全編踊ってると思ってたんだけど違ったのか。

って、踊って無いじゃん。


うーむ、rails 勉強会が 12/17 なのか。なんか RHG が自然解散してそっちに行きそうだなあ。そっちの飲み会には行ってみたいけど。来月の RHG はどうするんだろ。


そういえば,今日生協行ったら「生協の白石さん」が平積みに積んであって笑った.

_babie(Wed Nov 09 16:00:52 JST 2005)

 悲しいっつーか色々な活動がヤバイね。カンパかなんか必要?

_ささだ(Wed Nov 09 16:10:41 JST 2005)

 いや,そこまでは.そもそも私が沖縄に行っても,という.

_babie(Wed Nov 09 17:29:14 JST 2005)

 流石に沖縄はwww。atdot.net の方。直接利害関係あるので。

_ささだ(Wed Nov 09 17:36:32 JST 2005)

 いや,ドメイン料は年1000円なので問題ないです.

_8(Tue)

subversion リポジトリが壊れてたっぽい(またアクセス権限か?)んだが,原因はこれだろうか?


オブジェクト倶楽部のクリスマスイベント,楽しそうだなあ.うう.行きたい.


第五回PCクラスタシンポジウムも面白そうだ.こっちは無料らしいので行くかな.


eplus のチケット当選メールが spam になっていた.危なすぎる.しかし,久しぶりだな.2月中という,とんでもない時期だけれど.


リングにかけろをちょっと読んだんですが,なんでスポーツしないのかね.


よく確認してみると,オブジェクト倶楽部のイベントと SCore のイベントの日付が被ってる(12/16, 12/15-16).SCore のほうは日本科学未来館なので,今度こそプラネタリウムが見れる,と喜んでいたんだけれど,どうしよう.

_かくたに(Tue Nov 08 20:36:36 JST 2005)

 うう。是非いらしてください……。

_おだか(Wed Nov 09 00:44:12 JST 2005)

 科学未来館のメガスター2、大平さんがテレビCMに出たりしたりしたので人気が出てて、朝一に行って整理券をもらわないと見れない、っていう噂を聞きました。見に行くつもりなら気をつけた方がいいかもしれないです。

_7(Mon)

コメントすると上に来る仕様はやっぱやめようかなあ.


なんか,apache が刺さるようになってしまった.何が原因だろう.

_こーのいけ(Tue Nov 08 02:48:10 JST 2005)

 こないだうちでやったのは本体が上がってモジュールを上げてなかったとき。めんどくさくて依存を全部リビルドしたので犯人は分からずじまいだったけど。

_6(Sun)

久々に,本当に久々に,数年ぶりにカラオケに行った.のどが痛い.


いや,るびまの締め切りを忘れているわけじゃないんですよ.ほんと.多分.全然筆が進まないだけなんですよ.うん.まずい.どうしよう.


うーん.

_5(Sat)

とりあえず外に行く用事はなくなったように思う.気が抜けすぎてる.

_4(Fri)

Special English は podcast 用の RSS Feed をしてるような気がするんだけど,iTunes が読み込んでくれないので,自分で作ってみた.description に全スクリプトを突っ込んだので,聞きながら確認できる(まぁ,special english だから読むのはなんか違うような気もするが,まぁ確認のため).なかなか,よいものができたと思う.

あとは,自動化.


いやー,予選は最下位だったのに受賞しちゃったよ.よくがんばった.

_3(Thu)

今日はとりあえず工科大に行くらしいんだが,何をするのかさっぱり知らない.


low level な話がはやってるようだが,libjit とか lightning の話題が上るのはいつだろう.わくわく.

_2(Wed)

うう、寝てしまった。


うあああ.評価が動かない.あと一日猶予をくれぇ orz


文章は埋めた気がする(評価と考察以外).なんとか,評価も終わらせた気がする.あとはデータをまとめて,チェックするだけか....


と思って,ほとんど終わった,と思ったらデータに誤り発見 orz orz orz

データの取り直し間に合うか! いや,マジで・・・.


おお,よかった.終わった.


疲れた.


やっと出した.とりあえず,10月中旬からのラッシュがひと段落.

あたまいてー.寝よう.

_1(Tue)

あー、うー。


まつもとさんの高橋メソッド・Rails講座を聞いてしまった。やっぱうまいなぁ。話だけであれだ沸かせるとは。


うぅ、土曜日面白そうだな。ダイビルいってみたいし。でも、Railsはあまりなぁ。

_KM(Tue Nov 01 09:43:30 JST 2005)

 大平首相?

Sasada Koichi / sasada@namikilab.tuat.ac.jp
$Date: 2003/04/28 10:27:51 $