パーサだけ書けばどんな形式のドキュメントでも取り込めるようにはなってます。 具体的には、{"TMail::Mail.parse" => "プレーンテキスト"} という形式のハッシュが取れれば OK です。 詳しいことは mkrefe_rubyrefm あたりを見てみてください。
net/http を RDoc 化してくれた人がいたのでチェックイン。[ruby-doc:00456]
が、どう見ても RDoc のほうが汚ない。 #:nodoc: だの #:yield: だのグチャグチャと余分な記述が入るし、 コードの区切りに入れてるコメントが目立たなくなるのも納得いかぬ。
あ、昨日の日記の [ruby-doc:00465] ですけど、 とりあえず blade に張っておいたのでリンク切れてますね。 ruby-docってどこかにアーカイブされてたかなあ。
書けばできますよ、では意味ないので、 とりあえず TMail のリファレンスを取り込んでみた。 予想通り、すごく簡単であった。
~/c/refe % refe TMail:: TMail::Address TMail::AddressGroup TMail::Config TMail::FilePort TMail::Mail TMail::Maildir TMail::MhMailbox TMail::Port TMail::StringPort TMail::UNIXMbox ~/c/refe % refe TMail::Mail to TMail::Mail#to : to( default = nil ) -> [String] : to=( specs ) specs: String / [String] default: Object To: アドレスの spec の配列。
そういえば、RHG の CVS レポジトリ公開の許可をもらったのでした。 準備しないとな。ちなみに書き込み権限ありです。
フォーマットは当面 HTML の予定。 できればオリジナルを使いたかったんですが、 かなり家のローカル環境に依存しまくったツールが必要なので make できるようにするまでが非常に難しいのです。
Opteron の読みは元は「おぷてぃおん」だったらしい。 でも誰も読めなくて「おぷてろん」になったらしい。
ついに出ましたね〜。1.6.0 から実に 3 年近くか。 これで心おきなく slice や inject が使えるってものです。
かわじさん、ありがとうございます。 現在のところはどこにもアーカイブされてないと 考えておけばよさそうですね。
剥き出しのメソッドリストですか。 ちと面倒ですが、面倒なだけで済みそうです。
1.8.0 リリースの話題に絡んでドキュメントの話も結構出てますね。 とりあえず標準添付モノのリファレンスは
で決まりでいいでしょ? いいでしょ?
あとはそれ以外のライブラリをどうにかすりゃーいいわけだけど。 どうすりゃいいんでしょうね。 誰が何をすれば標準が決定するんでしょうか?
ところで話は変わるけど、 組み込みライブラリの英語ドキュメントって付いてないのね。 標準添付ライブラリは付いてるのに。 英語だと普通は pragprog reference + ri なんだろか。 でもあれ XML だっけ。
このへん、異論反論オブジェクション (謎) はあると思うけど、 やっぱ RD で揃えるのがいいと思うんだよな。 Ruby スクリプトがあるものは RDoc で、それ以外は全部 RD。 シンプルでいいじゃん。 いくらパーサを書かなきゃいけないって言っても、 シンプルに抑えれば RD のパーサなんて 200 行もいらないんだからさ。 RD なら less で見られるしさ。ていうか XML ウザっ。
今度は net/pop が RDoc 化。 net/smtp もやっているらしい。 なかなか仕事が早いね。
明日こそはいろいろとサーバの整備をしよう、と思う。 主に CVS 関係。
「エコワット」という器械を買ってきた。 コンセントと電気プラグの間に刺しておくだけで 消費電力と電気代を教えてくれる優れものである。
これを使って最近の小型サーバの消費電力を測る…… なんてのは検索すればわりと見付かるのだが、 AlphaServer だの Sun Ultra だのの計測結果はさすがにあるまい。 というわけで計測してみることにする。
まずは小手調べにメインマシンとサブマシンを計測してみた。
メインマシン (P4 2.4GHz + 1GB) 計測時間 10 時間 2 分 消費電力 0.78kWh 電気代 19 円 サブマシン (P3 866MHz + 512MB) 計測時間 10.0 時間 消費電力 0.57kWh 電気代 14 円
どちらも本体のみ。 どうせたいした差なんて出ないだろうと思っていたが、甘かった。
明日は Ultra30 か AlphaServer800 を計測する予定。 10 時間なら 10 時間動かさないと計測できないから 1 日に 1 台しか測れないのであった……。
帰ってきました。いやあ、楽しかったです。 幹事のなひさん高橋さん、ご苦労様でした。
しかし今回は凄い面子でしたね。過去に例を見ない充実ぶりじゃないですか? あと、RHG 読書会でおなじみの人が多かったですね。
とりあえず覚えてる話題を書いておきます。
こんなところですかね。
今日は結構ギリギリだったのでお家に帰れない人もいるようです。 ぼくも終電ギリギリでしたけど…。 明日は時間に間に合うでしょうか。 Ruby 者ばっかり遅刻したりしてな。
> net の下を素人に優しくして欲すぃ。
善処します。
1.8 も 1.6 に比べればかなりよくなってるはずなんですが、 まだ net/http はグチャグチャしてると思います。 これは互換性の問題で、直すと OpenSSL が動かなくなるので変更できないのです。
1.8 では OpenSSL が入って net/https のほうを合わせられるようになったので、 順次改善していこうと思ってます。
UltraSPARC は伊達じゃなかった
Ultra30 (UltraSPARC-II 250MHz, 256MB, HDDx2) 計測時間 3 時間 消費電力 0.29kWh 電気代 7 円 (月間 1740 円) メインマシン (P4 2.4GHz, 1GB, HDDx2) 計測時間 10 時間 2 分 消費電力 0.78kWh 電気代 19 円 (月間 1400 円) サブマシン (P3 866MHz, 512MB, HDDx1) 計測時間 10.0 時間 消費電力 0.57kWh 電気代 14 円 (月間 1026 円)
次はいよいよ Alpha マシン群を計測します。 (夢は) DOKI DOKI です!
あとはモニターも調査すべきだろうな。
夜を徹して CVS サーバのセッティングをする。 http://cvs.m17n.org/cvs/ を参考にいろいろと。
うわあ、cvs が古すぎだ。 1.11.5 をインストールしよう。
chroot 環境が動かず……。
libnss を忘れていた。まだ動かない。 PAM 関係を忘れてた。あ、動いた。
と思ったけどその前に CRT の消費電力測定結果だけ書いとこ。
EIZO E55D (17"CRT) 計測時間 8.01h 消費電力 0.72kWh 電気代 18 円
電気量でソートするとこうなる。
UltraSPARC-II 250MHz 100W EIZO E55D 90W P4 2.4GHz 78W P3 866MHz 57W
何時間寝てんだよ。
いまさらのようにメールボックスを maildir に移行した。 そして移行してから POP サーバをコンパイルしはじめるバカがここに一人。
まだ POP が使えない。 使えるようになるまでは ssh でログインして、 やっつけスクリプトでヘッドラインを確認だ! ここらへん、個人サーバは気楽だな。
要約やらねば!
Tru64UNIX が いっぴき あらわれた。
しかし おかねがたりない! コマンド?
どうぐ > たからくじ
しかし たからくじは はずれてしまった!
ゆうしゃたちは ぜんめつした……。
まずruby-dev summaryだすだろ。
ReFe絡みでいくつかあったか。
そろそろsetup.rbの新バージョンも出さないとな。
リリースが面倒になってきたなあ。CVSサーバ公開しちゃうか。こないだがんばって設定したからファイアウォールを開けるだけでいいはずだ。
さてぜんぜん当てにならない青木のハードウェアコーナー。先日もAlphaStation500のメモリの種類を間違ったばかりですが、今度はメモリモジュールの種類を間違っていたことが発覚しました。5V EDO DIMMだと思ってたのに、ちゃんと調べたら3.3V EDO DIMMでした。
しかし、何がどうなってんだかよくわかりませんが、3.3V EDO DIMMってのはなんとAlphaServer 800の使うメモリなんですね。ということは、こいつはAlphaServer800で活用できるというわけです。実際に刺してみると嘘のように何事もなく認識され、見事384MBになりました。ぼろ儲けです。
しかしこうなると500MHzモデルを逃したのはつくづく痛かった。
常々思ってたんだけどWindowsのレジストリってさ、わざわざ専用データベースを作らんでも、ファイルシステムをそのまま使えばよかったんじゃないかなあ。NTFSなら機能は十分じゃない。ファイルシステムを使ってれば、レジストリエディタなんぞ無くともlsとcatとechoでメンテできるのに。
まあ、レジストリで困るのはメンテの方法がどうこうより構造が壊れることなんだろうけどさ。それにしても、もうちょっと何とかなったんじゃないかねえ。コードが減ればバグが入る確率だって下がるでしょ。
http://slashdot.jp/article.pl?sid=03/08/14/0136254&topic=34&mode=nested
おいおいおいおい! マヂですか!? coreutils とか入ってるじゃねえか! Linux 全滅だなこれは……。
Ruby の TCPServer が NetBSD/Alpha で動かない。 C で書いた Hello, World! サーバは動いたから、 Ruby の socket.so の実装に問題があるのは間違いあるまい。 また Linux/x86 と Win32/x86 では動いてるわけだから、 NetBSD か Alpha のどっちかが引き金を引いてるはずだ。 まずは Linux/Alpha で試験してみるか。
Linux/Alpha は問題なし。やな感じだ。
AlphaServer 800 が洒落にならない数値を記録。 さらに上限を更新中。
ふと ls /bin して dir コマンドを発見したときー
ちょー速いと噂の Allegro Common Lisp。 LL 土曜で体験版の CD-ROM をゲットしたので使ってみることにした。
む……例によって Redhat 用しかないな。 たぶん動くんじゃないかと想定して Linux/x86 のパッケージを展開してみる。 ldd レベルでは大丈夫っぽい。
CD-ROM があってもライセンスをダウンロードしないといけないのか。 面倒だなあ。しかも個人情報要求するし。 微妙にごまかした情報を入力。ふっ。
./alisp でよくある対話型インタプリタが起動。 おれは対話型の処理系は嫌いなんだ (UNIX シェルは除く)。 特に起動するたびに長々とロゴを表示するやつが嫌いだ。 即ち alisp は失格であり hugs は論外である。
んで、どうやったらファイルを評価できるの? なんとなく alisp file としてみる。だめかあ。 結局ドキュメントを見た結果 mlisp -#! file と判明した。 なんだその気持ち悪いオプションは!
つづくかもしれない
「動かない」じゃあんまりなので具体的に言い直します。 NetBSD/Alpha 側で TCPServer で待ち、 そこに別のホストから TCPSocket でつなぐと クライアント側が常に ECONNREFUSED になります。 例えば次のようになります。
alpha $ ruby -rsocket -e 'TCPServer.new(6666).accept.close' linux $ ruby -rsocket -e 'TCPSocket.open("alpha", 6666).close' -e:1:in `initialize': Connection refused - connect(2) (Errno::ECONNREFUSED) from -e:1:in `open' from -e:1
このとき Alpha 側では何も変化がありません。 ずっと待ち続けています。
確認したこと: C で書いた TCP/IPv4 サーバを同じポート (6666) に待たせて、 クライアントでは同じことを実行。こちらは何事もなく動いた。
確認したこと 2: ruby -rsocket -e 'TCPServer.new(6666).accept.close' を Linux/Alpha で実行し、クライアントで同じことを実行。こちらも何事もなく動いた。
つまり今のところは NetBSD/Alpha で Ruby の TCPServer を使ったときに特有の現象です。 他のプラットフォームの NetBSD が存在しないので、 NetBSD に特有なのか NetBSD/Alpha に特有なのかは確認できません。
■
(う) [666でbindできるということはroot!?
というのはさておき、NetBSD/i386でも同じでした。ふむー。]
■ (う) [あ、(あおきさんの例だと) TCPServer.new("alpha", 666) だとうまくいくんじゃないですかね。インターフェースを限定しないといけないみたい。]
■
あおき [すんません、6666 の間違いです。
「その数は 666 である」……とか言ってみる]
■
あおき [なるほど。
ruby -rsocket -e 'TCPServer.new("alpha", 6666).accept.close'
としたらつながりました。
これは仕様と考えるべきなのかなあ。]
ごとゆぞさん情報の
$ ruby -rsocket -e 'TCPServer.new("0.0.0.0", 6666).accept.close'
でうまくいきました。 IPv6 がデフォルトなのね……。
ほほう。世間ではコミケというものをやっているのですね。
コミケというところには行ったことがないどころか発音したこともないのですが、 どのように発音したらよろしいのでしょうか? 「コ」ミケでしょうか? コ「ミ」ケでしょうか? それともコミ「ケー」でしょうか?
「壁」というのがあるらしいですね。
そりゃあるだろうさ
建物だもの
みつを
という程度の認識だったのですが、 Alpha 関係の冊子を売っているところもあるらしいので、 ちょっと行ってみたくなりました。
なんかいるんでしたっけ。チケット? チケットを買うの? 本に付いてるやつ? 人が殺せるとかいうやつですか? どこで買えばいいんだろう? 教えて google!
池袋のとらで買えるのか。 行きがけに買えばいいや。 重いかな?
いまさらながら ntpd を使って時間合わせをすることにした。
LAN 内のマスタサーバには Web サーバを使うことにする。 このマシンは Debian なので apt-get install ntp して終わり。 メインソースには jst.mfeed.ad.jp というところのサーバを使わせてもらう。 なんかいつまでやってるのか怪しげだが、その時はその時だ
メインマシンの Linux には ntp 4.1.2 を自分で入れる。 ソースはここ。
/etc/ntp.conf に設定を適当に書いて動かす。
# /etc/ntp.conf server i.loveruby.net driftfile /var/log/ntp.drift
3 行。
Windows がちと困る。 Windows XP には最初から NTP サーバがついているらしいが Windows 2000 はそうでもないらしい。
Windows Time というのがそうかと思ったんだけど、 これはサーバのようだ。
Active Directory を使ってると自動でやってくれるっぽい。 そんなもん使ってるわけない。
結論としては AdjustPC というのを使ってみることにした。
ちゃんと Windows サービスになってくれるので便利だ。
富豪プログラミングは関数型と相性がいい感じがしますね。
あーそうだ思いだした。 Haskell Reference Manual Referencer 略しまくって href、 改良したはいいけどガベージコレクタが文句たれてきて放置したんだった。 あれは結局何が原因なんだろうなあ。
(追記: hugs の +h オプションでヒープを増やせばいいそうです。 9/12 の日記に記述。)
GHC で動かしてみるか。
んーと、どうするんだっけ? man ghc ……ない。 ghc --help ……出た。 ghc --make Main らしい。
~/c/href/tmp % find . . ./Href ./Href/Config.hs ./Href/FileUtils.hs ./Href/HrefUtils.hs ./Href/TextUtils.hs ./Main.hs
こんな感じにしときます。
~/c/href/tmp % ghc --make Main ghc-5.04.3: chasing modules from: Main ghc-5.04.3: can't find module `Network.URI' (while processing "Href/HrefUtils.hs")
あれ?
GHC のマニュアルを見た結果、-package が必要だった。
~/c/href/tmp % ghc --make Main.hs -package network ghc-5.04.3: chasing modules from: Main.hs Compiling Href.TextUtils ( Href/TextUtils.hs, Href/TextUtils.o ) Compiling Href.Config ( Href/Config.hs, Href/Config.o ) Compiling Href.HrefUtils ( Href/HrefUtils.hs, Href/HrefUtils.o ) Compiling Main ( Main.hs, ./Main.o ) ghc: linking ... ~/c/href/tmp % ./mkhref ../ref/*.* ~/c/href/tmp % ls ~/share/href Control%2EException Data%2EChar System%2EDirectory System%2EIO comptable Control%2EMonad Data%2EList System%2EEnvironment Text%2ERegex
できた! しかも Hugs のトロさとは比べものにならない超速! すげえ! よし、href もコンパイルしよう。
うお、検索も速くなった。これは凄いな。
行ってきました。特に入場制限があるわけじゃないんですねえ。実際に行ってみたとこでやっと気づきました。
しっかしあの会場はでかいですね。まさかあんなにでかいところを全部埋め尽くすとは思いませんでした。あれだけ人を集めて好きなようにやらせたら、そりゃ面白いですよねえ。
ところで宝くじですけどね。
3億円が当たるはずだったんですよ。ええもうそりゃばっちり100%。
しかし現実はほんのちょっぴり不条理だったわけです。こりゃ困りますな。もうすっかり3億円の使い途は考えていたというのに。当たったらまず、
ま、普通買うでしょ。宝くじが当たったら家を買う、これ常識です。できればコンクリ床のサーバールーム付きがいい。
普通引くよね。むっちゃ引くよ。
当然じゃん。
と、言う話を妹にしたんです。そうしたらたった一言
「せこいな」
がはっ(致命傷)
「マシンを買い漁る」が入ってないのは、言うまでもなく当然、だからです。一言で言うと、デフォです。
http://jarp.jin.gr.jp/diary/200308b.html#200308164
Windows 2000 の時刻あわせは net time /setsntp ですか。ありがとうございます。覚えておきます。
「バカが往く」から
へー、コミケって一人でも行けるんですか。一般人には紹介状とかいるのかと 思いましたよ。その紹介状がないとネコ耳を着けなきゃいけないとか、そうい う掟があるものだと思っていました。
「一般人は一人ではいけない」は真であるかもしれない。
別の意味で。
さすがに軍資金が尽きてきたのでいらないゲームソフトを売ってしのぐことにします。その帰りに RAID カードを買ってきました。Mylex DAC960PU-1。SCSI インターフェイスは SYMBIOS 53C770 で、何気に AlphaServer800 に付いてる RAID カードと同じです。ただしこっちのは 1 channel のみでバックアップバッテリもついてません。ついでに言えば、まだ刺してないので動くかどうかすらわかりません(マテ)。
気になるお値段はジャンクで 1000 円。まあ 5 年前のカードだし、性能を考えてもそんなもんでしょうねえ。悲しいことですがこれが現実って奴です。とか適当なせりふを吐いてお茶を濁しておきます。
たぷる。値を束ねたもん、というくらいの知識しかないなあ。関数型言語では結構出てくるよね。
ちゅーりっぷ。有名な花の名前。もしくはDECの有名なイーサネットアダプタの愛称。
そういやPerl6のGCってどうなるんだったかな。mark&sweepだったような記憶はあるんだけど、それ以上のことは知らない。
へー、copying GC なのか。
しかし、こんな丁寧なドキュメントを書きながら開発するのって大変じゃないのかね。「GCは copying GC です、後はソース見ろ、以上」でよさそうなもんだが。それでわかんなければ勉強すりゃいいんだ。Jones & Lins でも読んでさ。
日本語だと『オブジェクト指向入門』とか『情報処理』Vol.35 No.11 にGCの話が出てきます。あとは RHG。
ははは、自動的にパッチをあてる変種が出たみたいですね。 楽しいなあ。
PDF のリンクをクリックすると Acrobat が動き出すのがウザすぎ。 IE の in-place activation を無効化できないものか……。
どこかのバカが俺のアドレスを騙ってウィルスメールを出しやがったらしく、 それのエラーメールとウィルスアラートが大量に来ていた。 勘弁してくれ……。
つーか、ウィルスを送った相手に通知メールを送る Norton って何様のつもりなんだよ。自分が SPAM まいてるじゃねえか。
(追記) あ、そうか、これが噂の SOBIG.F なのね。 SOBIG.F をくらった人のウィルスアラートに被害を受けたわけだな。
……なんかアホくさ。
おっと明日だったか。またうっかり見逃すところであった。 久しぶりに出席しよう。
とりあえず生データ
メインマシン (Pentium 4 2.4BGHz, DDR SDRAM 1GB, ATA 20GB + 80GB) 計測時間 10.2h 料金 19円 消費電力 0.78kWh サブマシン (Pentium 3 866MHz, SDRAM 512MB, ATA 40GB) 計測時間 10.0h 料金 14円 消費電力 0.57kWh Libretto L1 (Crusoe 566MHz, SDRAM 128MB, ATA 20GB) 計測時間 3.0h 料金 1円 消費電力 0.07kWh Sun Ultra30 (UltraSPARC-II 250MHz, EDO DRAM 256MB, SCSI-3 2GB + 4GB) 計測時間 6.10h 料金 14円 消費電力 0.60kWh digital AlphaServer 800 (Alpha 21164 333MHz, EDO DRAM 384MB, SCSI-3 4GB + 4GB, RAID1) 計測時間 5.0h 料金 16円 消費電力 0.67kWh digital PersonalWorkstation 600au (Alpha 21164 600MHz, SDRAM 320MB, SCSI-3 4GB + 4GB) 計測時間 4.34h 料金 16円 消費電力 0.65kWh EIZO E55D (ダイヤモンドトロン 17" CRT) 計測時間 8.01h 料金 18円 消費電力 0.72kWh
単位を統一した後。
CPU W 24h稼働時の月間電気料金 (1kWh = 25円 で換算) Alpha 600MHz 144W 2600円 Alpha 333MHz 134W 2412円 SPARC 250MHz 100W 1770円 CRT 90W 1620円 P4 2.4GHz 78W 1404円 P3 866MHz 57W 1026円 Crusoe 566MHz 23W 420円
えっと……。
結論は Alpha の圧勝ってことで、オケー?
Ruby の文字列が mutable であるのはやっぱそれなりに必然性があると思うんだな。 Ruby の文字列は Java で言う String と StringBuilder を兼ねてるから。 Java でも StringBuilder を String として扱いたいというときがあって、 それだからこそ CharSequence interface なんてのがあるわけでしょ。 でも Ruby ではこういうパターンには最初から String 一本で対処することができる。
もちろん Ruby には静的型システムの制約がないわけだから、 逆に String と StringBuilder が分かれててもいいんだと言うこともできる。 少なくとも Ruby レベルではメソッドシグネチャさえ揃えておけば 統一的に扱えてしまう。
しかし拡張ライブラリを考えるとどうか。 String と StringBuilder を統一的に扱えるのか。 ちょっと怪しいような気がしない?
ん? 大丈夫かもしれないな。 構造体を同じ配置にしておけばよい? いやそれとも構造体は struct RString を利用して、フラグだけで対処すればいい? さらに考えると struct RBasic の klass だけ変えてもいいのかな?
うーむ……。なんか immutable でもいけそうな気がしてきた。
いやでもやっぱそれなりに便利なときもあるかなあ。 だいいち Stack や Queue すら分かれてないのに (thread.rb にあるとか野暮なことは言わないこと) String と StringBuilder が分かれてるのはウザったい気もするね。 だいたい、よほどの素人じゃないと「うっかり」文字列を 変更してしまうことはないような気がする。
そういや Rite では String が immutable になるとかいう話はあったっけ。 なんかそんな記憶があるな。
標準ライブラリの使い勝手がいま一つって気がする。 空リストを渡すとあっさり例外になったりとか。
しかも例外がどこで起こってるのか全然わからないのがすげえ嫌。 このへんは小刻みテスト・小刻みコンパイルで乗り切るしかなさそうだ。
Ruby で言うところの String#downcase がない。 String#sub がない。gsub がない。strcasecmp がない。 (もっとも真偽値を返す strcasecmp は Ruby にもないね)
# ちなみに downcase は比較的簡単に書ける downcase = map (toLower)
関数によって名前を省略したりしなかったりするのが中途半端。 CamelCase が基本かと思うと突然 C 風になるのも中途半端。
正規表現にマッチしたかどうかだけ真偽値で知りたいのに Maybe [String] ってのを返してきてウザい。
と思ったけど、これは Data.Maybe.isJust を使えばよいということがわかった。
% href isjust Data.Maybe,isJust isJust :: Maybe a -> Bool isJust x x が Just _ ならば True、そうでなければ False -- 文字列のリストのうち正規表現 re にマッチするものだけ残す filter (\str -> isJust $ matchRegex re str) strlist
■ なかだ [「検出したんならそのウィルス部分は削れよ」とは思う。]
setup.rb アップデート。
これまでは役割によって install.rb と setup.rb と 名前を変えてきたわけだけれども、 install.rb という名前は紛らわしいので setup.rb に一本化することにした。 packages/ というディレクトリがあるとマルチパッケージで、 なければシングルパッケージのインストーラ (旧 install.rb) として働く。 それぞれの機能は今までと同じ。
ついでにコードを大胆に整理して読みやすくした (願望含)。
そういえば「setup.rb を Ruby に添付しろ」という人が時々いるんだけど、 その可能性は一切ないので悪しからず。 インストーラの互換性をチマチマ保証するなんてやってられないもーん。
CVS pserver 開けなきゃな、 と重い腰を上げてルータにシリアルをつないでみたのだが、 実は既に開いていた。
きゃー!
というわけで以下の手順で anonymous アクセスできます。 できるはずです。できると嬉しい。
% cvs -d :pserver:anonymous@cvs.loveruby.net:/src login Password: (そのままEnter) % cvs -d :pserver:anonymous@cvs.loveruby.net:/src co モジュール名
入ってるモジュールは以下の通り。
ClipShare はまだ中途だけど、いちおう動くことは動きます。 Windows で動かしとくとピタッと固まるのは仕様ってことでよろしくね。
textbuffer は昔 textbuf って名前だったのを 書き直したものです。
xclipstr なんて誰も覚えてないと思うけど、 コマンドラインから動かして X のクリップボードに文字列をはりつけるツールです。 w3m と組み合わせると便利。
あとは名前の通り。 RHG はまだです。
あー、これで気兼ねなくリリースをためらえるよ。
はれふ。
明日は RHG 読書会は終わってしまったけど RHG 読書会です。 (株) タイムインターメディアさんの会議室で 13:00 から始まります。 場所の詳しいことは以下のウェブサイトの地図を見てください。
何やるかは明日決まります。
http://slashdot.jp/article.pl?sid=03/08/28/1555223&topic=102&mode=nested
うわあ、RHG が入ってる。
でも一票だからこのままだと順当に流れるな。 儚い命だった。
■ kawaji [ruby-doc アーカイブは、以下で紹介されています。
http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-list/36014
が、今は見れないようです。]
■ 新井 [ReFe で、Thread.exclusive が引けると良いなあ(リファレンスの thread.rb 参照)
そうすると、marshal_dump とかも引けるなあ(リファレンスの Marshal 参照)。]