青木日記

<前月 | 最新 | 次月>

2003-08-01

ReFe

パーサだけ書けばどんな形式のドキュメントでも取り込めるようにはなってます。 具体的には、{"TMail::Mail.parse" => "プレーンテキスト"} という形式のハッシュが取れれば OK です。 詳しいことは mkrefe_rubyrefm あたりを見てみてください。

RDoc

net/http を RDoc 化してくれた人がいたのでチェックイン。[ruby-doc:00456]

が、どう見ても RDoc のほうが汚ない。 #:nodoc: だの #:yield: だのグチャグチャと余分な記述が入るし、 コードの区切りに入れてるコメントが目立たなくなるのも納得いかぬ。


2003-08-02

おおっ!

ゆかたの帯、か……。

※ IDE フラットケーブルのことです

リンク切れ

あ、昨日の日記の [ruby-doc:00465] ですけど、 とりあえず blade に張っておいたのでリンク切れてますね。 ruby-docってどこかにアーカイブされてたかなあ。

ReFe / RD 以外のパース

書けばできますよ、では意味ないので、 とりあえず 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 /web

そういえば、RHG の CVS レポジトリ公開の許可をもらったのでした。 準備しないとな。ちなみに書き込み権限ありです。

フォーマットは当面 HTML の予定。 できればオリジナルを使いたかったんですが、 かなり家のローカル環境に依存しまくったツールが必要なので make できるようにするまでが非常に難しいのです。

Opteron

Opteron の読みは元は「おぷてぃおん」だったらしい。 でも誰も読めなくて「おぷてろん」になったらしい。

インデント宗教戦争

[ruby-talk:77806] Indentation Style

(水掛け論で) 盛り上がってまいりました!

本日のツッコミ (全2件)

kawaji [ruby-doc アーカイブは、以下で紹介されています。
http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-list/36014

が、今は見れないようです。]

新井 [ReFe で、Thread.exclusive が引けると良いなあ(リファレンスの thread.rb 参照)
そうすると、marshal_dump とかも引けるなあ(リファレンスの Marshal 参照)。]


2003-08-05

ruby 1.8.0

ついに出ましたね〜。1.6.0 から実に 3 年近くか。 これで心おきなく slice や inject が使えるってものです。

ruby-doc ML

かわじさん、ありがとうございます。 現在のところはどこにもアーカイブされてないと 考えておけばよさそうですね。

ReFe / Thread.exclusive

剥き出しのメソッドリストですか。 ちと面倒ですが、面倒なだけで済みそうです。

Rubyのドキュメント

1.8.0 リリースの話題に絡んでドキュメントの話も結構出てますね。 とりあえず標準添付モノのリファレンスは

  • 標準添付ライブラリには英語で RDoc を付ける
  • 日本語ドキュメントは RD を Wiki に集める

で決まりでいいでしょ? いいでしょ?

あとはそれ以外のライブラリをどうにかすりゃーいいわけだけど。 どうすりゃいいんでしょうね。 誰が何をすれば標準が決定するんでしょうか?

ところで話は変わるけど、 組み込みライブラリの英語ドキュメントって付いてないのね。 標準添付ライブラリは付いてるのに。 英語だと普通は pragprog reference + ri なんだろか。 でもあれ XML だっけ。

このへん、異論反論オブジェクション (謎) はあると思うけど、 やっぱ RD で揃えるのがいいと思うんだよな。 Ruby スクリプトがあるものは RDoc で、それ以外は全部 RD。 シンプルでいいじゃん。 いくらパーサを書かなきゃいけないって言っても、 シンプルに抑えれば RD のパーサなんて 200 行もいらないんだからさ。 RD なら less で見られるしさ。ていうか XML ウザっ。

RD → RDoc

今度は net/pop が RDoc 化。 net/smtp もやっているらしい。 なかなか仕事が早いね。

to do

明日こそはいろいろとサーバの整備をしよう、と思う。 主に 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 台しか測れないのであった……。


2003-08-08

LL 土曜・前夜飲み会

帰ってきました。いやあ、楽しかったです。 幹事のなひさん高橋さん、ご苦労様でした。

しかし今回は凄い面子でしたね。過去に例を見ない充実ぶりじゃないですか? あと、RHG 読書会でおなじみの人が多かったですね。

とりあえず覚えてる話題を書いておきます。

  • 見事に女性がいないですな
  • とりあえず自己紹介
  • Ruby VM 書いてんの? → あれは構想のみ
  • tDiary.net 第一は現在 300 人くらいらしい
  • tDiary 2.0 出したらしばらく休むらしい
  • 豊福さんの「Ruby 本にひたすら Ruby な人のサインをもらう計画」
  • akr さんは常にツッコミ続けているのだろうか
  • Rubyist が 3 人集まると「バカが征く」をアーカイブする話になる
  • 「メモリ」は結局何だったのか
  • Ripperのアップデート
  • → 本体にマージしちゃったら? (Ripperをベースにparse.yを変更してしまうらしい)
  • 1.8 preview が出てから新しくライブラリが入るのはいかがなものか
  • strscan が入ってると GPL に汚染される?
  • → strscan は本体添付のは Ruby License、単体のは LGPL なのでそういうことはないはず
  • 喜多さんはかなりイメージと違った
  • ……と、自分も言われた
  • 本の編集
  • 2ch の Ruby スレに誰かインサイダーがいるっぽいのだが……
  • BigDecimal
  • dl2 というのは現在の dl とどう違うのか
  • → コードの大部分が Ruby レベルに移っている。 だいたい書けてるが互換性をどうやってとるかというところで止まってる。
  • 1.9 で stdio 捨てるのか? (Windows の Thread + gets で止まるバグはいつ解消する?)
  • → 時期は未定。誰かがやれば 1.9 でやる。
  • akr さんの nonstdio というのを元にすれば楽になる?
  • ところで、stdio 捨てれば例のバグは直るのだろうか?
  • → やってみないとわからない。Windowsってのはそういうものだ。
  • ファイナライザの実行中にスレッドが切り替わると落ちる風味
  • 今回の LL、真っ先に依頼を断ったのはわたしらしい。 すんまそん……。リアルタイムは苦手です。
  • Opteron で NetBSD が動かない〜
  • ドライバ書くのは意外と簡単?
  • パッチ脳
  • パッチ袋
  • 「スクリプト言語」の定義
  • Paul Graham の「スクリプト言語」の定義はかなり特殊
  • NetBSD/Alpha で TCPServer が connection refused になる

こんなところですかね。

今日は結構ギリギリだったのでお家に帰れない人もいるようです。 ぼくも終電ギリギリでしたけど…。 明日は時間に間に合うでしょうか。 Ruby 者ばっかり遅刻したりしてな。

書き忘れ

一つ書き忘れました。

わたしは毎日賞味期限切れのものばっかり食って生活してるわけじゃありません! 決して! 決して!

本日のツッコミ (全5件)

ささだ [すみません。構想じゃなくて妄想です。]

きた [もっと丈夫そうな人かと思ってました.
*しばしば*賞味期限切れのものを食べてる人には見えない…]

moriq [説得力ないなあ^^;<決して! 決して!]

むらまさ [s/ファイ習い座/ファイナライザ/ でしょうか。]

あおき [ぐあっ、SKK 使いらしからぬミスをしてしまった……
(たまに Windows から更新したりするとこうなる)。]


2003-08-11

飛び石風味で更新

最近更新が少ないなあ。

更新がない日はだいたいコンピュータの電源を入れてなかったりします。

賞味期限切れ問題

ふっ。今日は賞味期限切れのものなんて一つも口にしてませんよ!

賞味期限切れでないものも食べてないけどなっ!

虚空に向けてリプライ

> net の下を素人に優しくして欲すぃ。

善処します。

1.8 も 1.6 に比べればかなりよくなってるはずなんですが、 まだ net/http はグチャグチャしてると思います。 これは互換性の問題で、直すと OpenSSL が動かなくなるので変更できないのです。

1.8 では OpenSSL が入って net/https のほうを合わせられるようになったので、 順次改善していこうと思ってます。

消費電力 (2)

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 server

夜を徹して CVS サーバのセッティングをする。 http://cvs.m17n.org/cvs/ を参考にいろいろと。

うわあ、cvs が古すぎだ。 1.11.5 をインストールしよう。

chroot 環境が動かず……。

libnss を忘れていた。まだ動かない。 PAM 関係を忘れてた。あ、動いた。


2003-08-12

ruby-dev summary

やべっ。完璧に忘れてたー!

毎回同じこと言ってんな俺。

夏か……

うわあああ、セミが飛びこんできたぁー!

うるせえ!

寝る

徹夜で設定して力尽きたのでとりあえず寝ます。

(10:05)

消費電力 (3)

と思ったけどその前に 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

いまさらのようにメールボックスを maildir に移行した。 そして移行してから POP サーバをコンパイルしはじめるバカがここに一人。

まだ POP が使えない。 使えるようになるまでは ssh でログインして、 やっつけスクリプトでヘッドラインを確認だ! ここらへん、個人サーバは気楽だな。

ruby-dev summary (2)

要約やらねば!

本日のツッコミ (全2件)

すぎむし [きょうの14:00までならチェックできます。]

あおき [無理そうです。]


2003-08-13

ruby-dev summary

ruby-dev summary はなんとか終わった。

at 14:34

popd

popd をコンパイルしていたと思ったら いつのまにか自作していた。

しかもデバッグして実運用してしまった。

やふおく

Tru64UNIX が いっぴき あらわれた。

しかし おかねがたりない! コマンド?

  • たたかう
  • にげる
  • じゅもん > むじんくん
  • どうぐ > たからくじ

どうぐ > たからくじ

しかし たからくじは はずれてしまった!

ゆうしゃたちは ぜんめつした……。

本日のツッコミ (全3件)

Yuya [私も全滅でした。ぐすん。]

ささだ [何と戦うんだろう。]

Yuya [そりゃ、運に決まっているじゃないですか。:-)]


2003-08-14

今日のTODO

まずruby-dev summaryだすだろ。

ReFe絡みでいくつかあったか。

そろそろsetup.rbの新バージョンも出さないとな。

リリースが面倒になってきたなあ。CVSサーバ公開しちゃうか。こないだがんばって設定したからファイアウォールを開けるだけでいいはずだ。

AlphaServer 800 / memory

さてぜんぜん当てにならない青木のハードウェアコーナー。先日もAlphaStation500のメモリの種類を間違ったばかりですが、今度はメモリモジュールの種類を間違っていたことが発覚しました。5V EDO DIMMだと思ってたのに、ちゃんと調べたら3.3V EDO DIMMでした。

しかし、何がどうなってんだかよくわかりませんが、3.3V EDO DIMMってのはなんとAlphaServer 800の使うメモリなんですね。ということは、こいつはAlphaServer800で活用できるというわけです。実際に刺してみると嘘のように何事もなく認識され、見事384MBになりました。ぼろ儲けです。

しかしこうなると500MHzモデルを逃したのはつくづく痛かった。

レジストリ

常々思ってたんだけどWindowsのレジストリってさ、わざわざ専用データベースを作らんでも、ファイルシステムをそのまま使えばよかったんじゃないかなあ。NTFSなら機能は十分じゃない。ファイルシステムを使ってれば、レジストリエディタなんぞ無くともlsとcatとechoでメンテできるのに。

まあ、レジストリで困るのはメンテの方法がどうこうより構造が壊れることなんだろうけどさ。それにしても、もうちょっと何とかなったんじゃないかねえ。コードが減ればバグが入る確率だって下がるでしょ。

GNU の ftp サイトがクラック

http://slashdot.jp/article.pl?sid=03/08/14/0136254&topic=34&mode=nested

おいおいおいおい! マヂですか!? coreutils とか入ってるじゃねえか! Linux 全滅だなこれは……。

Ruby TCPServer on NetBSD/Alpha

Ruby の TCPServer が NetBSD/Alpha で動かない。 C で書いた Hello, World! サーバは動いたから、 Ruby の socket.so の実装に問題があるのは間違いあるまい。 また Linux/x86 と Win32/x86 では動いてるわけだから、 NetBSD か Alpha のどっちかが引き金を引いてるはずだ。 まずは Linux/Alpha で試験してみるか。

Linux/Alpha は問題なし。やな感じだ。

消費電力 (4)

AlphaServer 800 が洒落にならない数値を記録。 さらに上限を更新中。

悲しいときー

ふと ls /bin して dir コマンドを発見したときー

Allegro Common Lisp

ちょー速いと噂の Allegro Common Lisp。 LL 土曜で体験版の CD-ROM をゲットしたので使ってみることにした。

む……例によって Redhat 用しかないな。 たぶん動くんじゃないかと想定して Linux/x86 のパッケージを展開してみる。 ldd レベルでは大丈夫っぽい。

CD-ROM があってもライセンスをダウンロードしないといけないのか。 面倒だなあ。しかも個人情報要求するし。 微妙にごまかした情報を入力。ふっ。

./alisp でよくある対話型インタプリタが起動。 おれは対話型の処理系は嫌いなんだ (UNIX シェルは除く)。 特に起動するたびに長々とロゴを表示するやつが嫌いだ。 即ち alisp は失格であり hugs は論外である。

んで、どうやったらファイルを評価できるの? なんとなく alisp file としてみる。だめかあ。 結局ドキュメントを見た結果 mlisp -#! file と判明した。 なんだその気持ち悪いオプションは!

つづくかもしれない

本日のツッコミ (全2件)

Sakae [確かに NetBSD用は有りませんなあ。ついでにFreeBSD-5用も有りませんなあ。Mac用は有りましたね。
しょうがないので、Plamoで動かしてます。]

あおき [あ、メインマシンは Linux (元は Plamo) なんですよ。
ただ、カーネルと libc と util-linux をアップデート
しちゃったので、どのディストリビューションとも
適合しない可能性があると ^^;;;]


2003-08-15

Ruby TCPServer on NetBSD/Alpha (2)

「動かない」じゃあんまりなので具体的に言い直します。 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 に特有なのかは確認できません。

本日のツッコミ (全4件)

(う) [666でbindできるということはroot!?
というのはさておき、NetBSD/i386でも同じでした。ふむー。]

(う) [あ、(あおきさんの例だと) TCPServer.new("alpha", 666) だとうまくいくんじゃないですかね。インターフェースを限定しないといけないみたい。]

あおき [すんません、6666 の間違いです。
「その数は 666 である」……とか言ってみる]

あおき [なるほど。
ruby -rsocket -e 'TCPServer.new("alpha", 6666).accept.close'
としたらつながりました。
これは仕様と考えるべきなのかなあ。]


2003-08-16

Ruby TCPServer on NetBSD (3)

ごとゆぞさん情報の

$ ruby -rsocket -e 'TCPServer.new("0.0.0.0", 6666).accept.close'

でうまくいきました。 IPv6 がデフォルトなのね……。

コミケ

ほほう。世間ではコミケというものをやっているのですね。

コミケというところには行ったことがないどころか発音したこともないのですが、 どのように発音したらよろしいのでしょうか? 「コ」ミケでしょうか? コ「ミ」ケでしょうか? それともコミ「ケー」でしょうか?

「壁」というのがあるらしいですね。

そりゃあるだろうさ
建物だもの
みつを

という程度の認識だったのですが、 Alpha 関係の冊子を売っているところもあるらしいので、 ちょっと行ってみたくなりました。

なんかいるんでしたっけ。チケット? チケットを買うの? 本に付いてるやつ? 人が殺せるとかいうやつですか? どこで買えばいいんだろう? 教えて google!

池袋のとらで買えるのか。 行きがけに買えばいいや。 重いかな?

ntp

いまさらながら 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 サービスになってくれるので便利だ。

富豪

富豪プログラミングは関数型と相性がいい感じがしますね。

href

あーそうだ思いだした。 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件)

こさこ [昨日はじめてコミケに行ってきました。
雨の中で入場待機は辛かった。
ボードゲーム四個買って退却。]

あおき [雨、止みそうにないですね。
なんか三日とも降るみたいですけど。]

たかはし [コミケのカタログは会場でも販売しています。というか、入場時にカタログを持ってるかどうかのチェックはしていません。
ちなみに私も明日行く予定です。]


2003-08-17

コミケ

行ってきました。特に入場制限があるわけじゃないんですねえ。実際に行ってみたとこでやっと気づきました。

しっかしあの会場はでかいですね。まさかあんなにでかいところを全部埋め尽くすとは思いませんでした。あれだけ人を集めて好きなようにやらせたら、そりゃ面白いですよねえ。

宝くじ

ところで宝くじですけどね。

3億円が当たるはずだったんですよ。ええもうそりゃばっちり100%。

しかし現実はほんのちょっぴり不条理だったわけです。こりゃ困りますな。もうすっかり3億円の使い途は考えていたというのに。当たったらまず、

  • 家を買う。

ま、普通買うでしょ。宝くじが当たったら家を買う、これ常識です。できればコンクリ床のサーバールーム付きがいい。

  • 光ファイバーを引く

普通引くよね。むっちゃ引くよ。

  • 毎晩夕食後にハーゲンダッツのアイスクリームを食う。

当然じゃん。

と、言う話を妹にしたんです。そうしたらたった一言

「せこいな」

がはっ(致命傷)

補・宝くじ

「マシンを買い漁る」が入ってないのは、言うまでもなく当然、だからです。一言で言うと、デフォです。

本日のツッコミ (全4件)

なかだ [賞味期限日数分のハーゲンダッツを保存する冷蔵庫。]

arton [増えたサーバーのせいで停電発生->賞味期限内飲むアイスクリーム化とか。]

なかだ [ということで、まずは自家発電装置から。]

あおき [ブレーカー落ちたら自家発電だろーと
なんだろーと溶けるヨカーン。
じゃあ冷蔵庫にUPSをつけて自動シャットダウン
…してどうする]


2003-08-18

NTP

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 年前のカードだし、性能を考えてもそんなもんでしょうねえ。悲しいことですがこれが現実って奴です。とか適当なせりふを吐いてお茶を濁しておきます。

tuple

たぷる。値を束ねたもん、というくらいの知識しかないなあ。関数型言語では結構出てくるよね。

tulip

ちゅーりっぷ。有名な花の名前。もしくはDECの有名なイーサネットアダプタの愛称。

GC

そういやPerl6のGCってどうなるんだったかな。mark&sweepだったような記憶はあるんだけど、それ以上のことは知らない。

へー、copying GC なのか。

しかし、こんな丁寧なドキュメントを書きながら開発するのって大変じゃないのかね。「GCは copying GC です、後はソース見ろ、以上」でよさそうなもんだが。それでわかんなければ勉強すりゃいいんだ。Jones & Lins でも読んでさ。

日本語だと『オブジェクト指向入門』とか『情報処理』Vol.35 No.11 にGCの話が出てきます。あとは RHG。

GC (2)

最後に一言だけ言わしてください。

Parrot の 中 の 人 も 大 変 だ な。


2003-08-21

Blaster

ははは、自動的にパッチをあてる変種が出たみたいですね。 楽しいなあ。

IE

PDF のリンクをクリックすると Acrobat が動き出すのがウザすぎ。 IE の in-place activation を無効化できないものか……。

setup.rb 3.1.5

実に半年ぶりにバージョンアップ。

しかし中身はロクに変わらず。 強いて言えば 1.8 で警告が出ないくらいかな。


2003-08-22

メール攻撃

どこかのバカが俺のアドレスを騙ってウィルスメールを出しやがったらしく、 それのエラーメールとウィルスアラートが大量に来ていた。 勘弁してくれ……。

つーか、ウィルスを送った相手に通知メールを送る Norton って何様のつもりなんだよ。自分が SPAM まいてるじゃねえか。

(追記) あ、そうか、これが噂の SOBIG.F なのね。 SOBIG.F をくらった人のウィルスアラートに被害を受けたわけだな。

……なんかアホくさ。

SICP読書会

おっと明日だったか。またうっかり見逃すところであった。 久しぶりに出席しよう。

消費電力計測計画最終段落

とりあえず生データ

メインマシン (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 の圧勝ってことで、オケー?

mutable string

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 になるとかいう話はあったっけ。 なんかそんな記憶があるな。

href 0.2

href をバージョンアップしました。

hrefってのは ReFe の Haskell 版です (身も蓋もない例え)。

Haskell メモ

標準ライブラリの使い勝手がいま一つって気がする。 空リストを渡すとあっさり例外になったりとか。

しかも例外がどこで起こってるのか全然わからないのがすげえ嫌。 このへんは小刻みテスト・小刻みコンパイルで乗り切るしかなさそうだ。

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
 
本日のツッコミ (全1件)

なかだ [「検出したんならそのウィルス部分は削れよ」とは思う。]


2003-08-23

SICP読書会

寝過ごしたーー!

って毎回かよ。


2003-08-27

setup.rb 3.2.0

setup.rb アップデート。

これまでは役割によって install.rb と setup.rb と 名前を変えてきたわけだけれども、 install.rb という名前は紛らわしいので setup.rb に一本化することにした。 packages/ というディレクトリがあるとマルチパッケージで、 なければシングルパッケージのインストーラ (旧 install.rb) として働く。 それぞれの機能は今までと同じ。

ついでにコードを大胆に整理して読みやすくした (願望含)。

そういえば「setup.rb を Ruby に添付しろ」という人が時々いるんだけど、 その可能性は一切ないので悪しからず。 インストーラの互換性をチマチマ保証するなんてやってられないもーん。

CVS サーバ公開

CVS pserver 開けなきゃな、 と重い腰を上げてルータにシリアルをつないでみたのだが、 実は既に開いていた。

きゃー!

というわけで以下の手順で anonymous アクセスできます。 できるはずです。できると嬉しい。

% cvs -d :pserver:anonymous@cvs.loveruby.net:/src login
Password: (そのままEnter)
% cvs -d :pserver:anonymous@cvs.loveruby.net:/src co モジュール名

入ってるモジュールは以下の通り。

  • clipshare
  • href
  • racc
  • refe
  • ripper
  • setup
  • textbuffer
  • tmail
  • xclipstr

ClipShare はまだ中途だけど、いちおう動くことは動きます。 Windows で動かしとくとピタッと固まるのは仕様ってことでよろしくね。

textbuffer は昔 textbuf って名前だったのを 書き直したものです。

xclipstr なんて誰も覚えてないと思うけど、 コマンドラインから動かして X のクリップボードに文字列をはりつけるツールです。 w3m と組み合わせると便利。

あとは名前の通り。 RHG はまだです。

あー、これで気兼ねなくリリースをためらえるよ。

href

はれふ。

本日のツッコミ (全4件)

なかだ [あおきぷろだくつのcharsetがヘン。]

あおき [早っ。nkf 忘れてますた……。]

(う) [Windpws -> Windows
わざとだったりして。]

あおき [うあーもうフニャフニャだー]


2003-08-29

RHG 読書会 reloaded

明日は RHG 読書会は終わってしまったけど RHG 読書会です。 (株) タイムインターメディアさんの会議室で 13:00 から始まります。 場所の詳しいことは以下のウェブサイトの地図を見てください。

何やるかは明日決まります。

コンピュータ名著・古典 100 冊

http://slashdot.jp/article.pl?sid=03/08/28/1555223&topic=102&mode=nested

うわあ、RHG が入ってる。

でも一票だからこのままだと順当に流れるな。 儚い命だった。

本日のツッコミ (全2件)

まつもと [わたしが個人的に挙げておきましたので、載るのではないかと。]

あおき [ぐわ、本当ですか。ありがとうございます。
しかし、あのラインナップに入るのかあ。
自信過剰のわたしでもさすがに気が引ける…… ^^;;;]


2003-08-31

お買いもの

Seagate ST34371WC (UltraWideSCSI, 4.3GB, SCA) 二個で 2000 円。 AlphaServer に付けマウス。

RAA

現在 970 エントリ。もうすぐ 1000 だ!

RHG 読書会 reloaded

テキトーに reloaded って付けたら本当に reloaded になってしまった。

http://rwiki.jin.gr.jp/cgi-bin/rw-cgi.rb?cmd=view;name=RHG%C6%C9%BD%F1%B2%F1%3A%3A%C5%EC%B5%FE+Reloaded

とりあえず RHG 二周目をやることになりました。 同時進行で Gauche を解析するという噂もあり。

setup.rb 3.2.1

3.2.0 がどうしょもないバグ入りだったので緊急リリース。

本日のツッコミ (全2件)

(う) [二周目。]

あおき [ありがとうございます。直しました。]


<前月 | 最新 | 次月>
2002|04|05|06|07|08|09|10|11|12|
2003|01|02|03|04|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|04|05|06|09|10|
2009|07|
2010|09|