あおきにっき

ふるきあおきにっき


3/1 (金)

不覚

もう三月ですかっ?!

騒音源

サーバマシンは当然 24 時間稼働だ。横で寝ているととてもうるさい。 とは言ってもサーバに使っているパソコンは普通のパソコンではなく、 「一万円以上もする静粛電源」と「流体軸受を使っている静かな HDD」 をわざわざ用意し、しかも CPU ファンをつけていない。300MHz で 450MHz までオーバークロックできた時期の Celeron を定格クロックで使ってるので ファンレスでも大丈夫なのだ。

それでもうるさい。音量はさほどではないが、高音の「ふぃ〜〜ん」と いう音がしてすごい耳障りなのだ。くそう、高い電源買ったのにこれかよ! ファン壊したろか! と、ずっと思っていたのだが……

実は犯人は電源ではなかった。なんと HDD。なんでわかったかと いうと、APM の気紛れで突然 HDD が止まるときがありますね。あれです。 夜中にいきなり HDD が止まったら、すげえ静かなんさ! すまん電源、 疑って悪かった。犯人は流体軸受だった (笑)

でも HDD ってこんなにうるさいものだっけ? 古いパソコンでは CPU ファンと電源ファンをぶっこわせばほぼ無音で動いてくれたぞ。 富士通製ってのがだめなんですか? それとも最近の高速 HDD がうるさい んですか?

なんにしても犯人がわかったので対策を考えよう。 (1) もっと静かな HDD にする (2) HDD の防音ケースを買う (3) ディスクをなにかで覆う

まず (1) はインストールからやりなおしになるのでやだな。(2) は楽で いいけど、最近金欠なのでちょっときつい。ただの箱のくせになんで あんなに高いんだ。(3) は……そういえばビックカメラに変なフィルムが 売ってたなあー。音を吸収するやつ。あれつけてみようかなあ。

かね

財布の残金が 193 円というのはとても困る。

3/2 (土)

静粛サーバ計画

騒音源が HDD だとわかったので HDD ケースを買ってきた。 Smart Drive というのが有名らしいのだが、池袋のビックカメラに 行ったらそのとなりにもう一段高いのが置いてあって、つい そっちを買ってしまった。

つけてみる。うーん……。たしかになんとなく静かになったような 気がするが……

HDD その後

だめです。昼はわかんなかったけど、夜になると全然変わんない。 腹立つなあ。悔しいから Smart Drive も試すことにする。

3/4 (月)

サーバ反応せず?!

いつもどおりメールを読もうと思ったら ssh がつながらない。 と思ったらそれどころじゃなく IP 自体が届いていないようだ。 なにごとかと思い NIC とかイーサネットケーブルとか 調べてみたあげく、結局ハブの問題と判明。いちど電源を 切って入れなおしたら直った。

静粛サーバ計画 (2)

Smart Drive を買ってきた。ついでに吸音フィルムと吸音スポンジも 買ってきてつけた。

結論。…………うーむ、やっぱりあんまり変わらないような気が。 フィルムとスポンジを側面にしかはってないからだめなのかな。 HDD ケースがケース前面に露出してるから、これにさらにスポンジと フィルムをつけてみるか。(次回に続く)

3/6 (水)

気力衰えぎみ。マシンにたとえると P4 2GHz デュアルから 486DX4 になったよーな感じ。

静粛サーバ計画 (3)

直後はあまり静かになった気がしなかったが、とりあえず横で 寝られるくらいは静かになったみたいだ。これならまあいいか。

しかし今度はメインマシンがあまりにうるさいのが気になってきた。 こいつは電源から換えないとだめだろな。でもそんなお金ない……

zsh

zsh を試してみる。むかし移行しようとしたことはあるのだが、 そのときは fg の引数にジョブ番号が (%無しで) 使えなかった のであきらめたのだった。しかし `which XXX` が =XXX と書ける のがあまりにも便利そうなので再度挑戦することにする。

ちなみになんで fg にジョブ番号が使いたいかというと、ひとつの kterm で vi を大量に起動して Ctrl-Z と「fg ジョブ番号」で ファイルを切り替えてるからだ。ファイル名でバッファ切り替える なんて大嫌いさっ。

で、この問題の対策として (1) screen を使う (2) vi プロセスで argv[0] を変える (3) ソースコード書き換え、 のいずれかで行けそうなので zsh にしようかな、と思ったわけだ。

3/7 (木)

zsh (2)

zsh で番号だけでジョブを指定する方法で わたなべさんからレス が!

function fg {
    builtin fg %$1
}

くぁー、賢いっ。そうかあ。このへんが、テキストテキストしてる シェルの便利なところだなあ。

vim の :b ってのもあるのねえ。うう、知らんかった……。 どうも紙で読んだものしか身につかないんだよなー、おれって。 ruby はリファレンス印刷したし、bash も make も emacs も cvs も ssh も、ぜーんぶ本で覚えたし……

両面印刷

そんなわけで紙じゃないとだめな日本の私は zsh も紙のマニュアルが 欲しくなった。ジュンク堂で zsh の本を探してみたが見付からなかった のであきらめて添付のマニュアルを印刷することにする。

うーん、A4 で 260 ページですか。プリンタのスピードは問題ないが インクと紙はちょっともったいない気がする。だいたい 260 枚はちと 厚すぎる。

そのときふと「両面使えば紙が半分で済むじゃん!」と思いついたので 調べてみた。dvips を使って、最初は奇数ページだけを印刷し、そのあと 紙を裏返して偶数ページだけ印刷すればよいらしい。具体的にはこんな 感じ。

dvips -A zsh.dvi > zsh-odd-pages.ps
dvips -B zsh.dvi > zsh-even-pages.ps

また特定のページだけ抜き出すには、たとえば

dvips -p 101 -l 103 > zsh-p101-103.ps

とすれば p101〜103 だけになる。-A -B との組み合わせも 可能なのが便利だ。

このやりかたは安くていいけど、途中でページがずれると悲惨だ。 細めにチェックしてズレを防止しよう。

rc 発、過去への旅

/etc/rc とか .zshrc とかの rc。まさか Run Command の略だったとは。 ずっと ResourCe だと思ってた……。

全然関係ないが、rc と unix で検索したら Plan9 の rc シェルが出てきた。 Plan9 ってどうなんですかねえ。

さらに検索すると、run commands → runcom → rc という 流れなのだな。runcom は MIT の CTSS にあったコマンドか。

んで CTSS ってなんじゃ。TSS は Time Sharing System だろうな。 C は Common かな。ちがった。Compatible だった。IBM7094 上に 構築された……OS みたいなもん、ですか? よくわかんねえ。 発見したページにリンクだけ張っとく。

The IBM 7094 and CTSS

ここのドメインって当然 Multics から来てるんだろうなあ。 でも Web サーバは apache (笑)

cvsup 導入

Hacking Guide を書いてると頻繁に cvs di とか cvs ann したく なるのだが、そのたびに cvs.ruby-lang につないでるんじゃ遅いし 他人のとこの CPU パワー使いすぎだ。というわけでようやく cvsup を 導入した。cvsup てのはあれだ。CVS レポジトリ (ワーキングコピーでなく) をまるごとコピーしてくれるというやつだな。

なんでいままで入れられなかったかとそれは当然 modula-3 が デカすぎるからである。なんだよ 300MB って。これはさすがに ダウンロードする気がしないのでおとなしくバイナリを持ってくる ことにした。でも、それでも 27MB だった。

続いて cvsup のコンパイル。

% make M3FLAGS=-DNOGUI
% sudo make install

というようにとても簡単なのだが、実行したとたんに 「バグってるからアップデートしろや (意訳)」と言われて いきなりバージョンアップする羽目になった。えーん、stable の 最新を取ってきたのにー。しかたなくスナップショットの 16.1e と いうのを取りなおしてきて入れる。

その後は順調。ruby-lang.org の CVS レポジトリガイド経由で cvsup の sup ファイルをもらってきて、*base *prefix を書き換えたら、 cvsup -g Supfile でオッケー。

レポジトリが変わったから cvs co をやりなおさないとな。 cvs -d ~/cvs/ruby co ruby としまして。 ……うむっ。これは速い、速いぞ! diff も ann も一瞬だー。わーい。

ぷよ

ぷよぷよがやりたい。

3/8 (金)

カーネル

気がつけば世の中の linux は 2.4 が安定版になっていた。 うちはいまだに 2.2.14 だ。できれば 2.4 にしたいのだが、 util-linux が古くてだめそうなのでせめて 2.2 系列の最新版に 上げることにする。

2.2.20 は bzip2 で 15MB か。最近のソフトはどれもデカいなあ…… なんて言うあたりは実にオールドタイプである。回線が増速かかって 以来コンスタントに 1Mbps 以上出てるんだからこのくらいはなんでも ないはずなのだが、感覚がついていってない。

環境のバージョンチェックー。……ぬう、procps が古い。

お知らせコマンド

かなり長い時間がかかるコマンドを実行する場合、別の端末で 実行していると終わっても気付かなかったりする。そんなときには こんなふうにしている。

cdwrite && ruby -e 'puts "#"*500'

地味だ。地味すぎる。

ただしこれだとウィンドウが隠れてる場合に通用しないので 最初は真っ赤なウィンドウを出すようにしようと思ったのだが、 telnet 先でコマンドを実行してるとうまくいかないのでやめた。

しぶらぐ

今日はしぶらぐの日。

らぐ (RUG) と言えば Ruby User Group の略だけども、別に英語である 必然性はないと思う。日本語だったらどういう名前になるんだろうか。 やっぱり「Ruby 友の会」とかになるのだろうか。いやもっと単純に 「Ruby 会」か。

……怪しい。怪しすぎる。秘密結社みたいだ。

3/9 (土)

寝すぎた。

しぶらぐ

楽しかった。本物の Oliver さんに会えたのがちょっと嬉しい。 やはり直接しゃべったほうがいろいろとおトクですねえ。

カーネル (2)

procps をアップデートしたので 2.2.20 のコンパイルにとりかかる。 まあカーネルコンパイルはもう慣れてるし。

Hz

アセンブラを見ると無性に嬉しくなってきて心拍が 20Hz ほど上がる。 20MHz 上がると死ぬので気をつけないといけない。

下線の多い C プログラムも好きだ。頭としっぽ両方についてるのでも よいが頭だけについてるのはなおよい。そんなわけでこういうのが萌え。

#define memset(s, c, n)							    \
(__builtin_constant_p(c)						    \
 ? (__builtin_constant_p(n) && (c) == 0					    \
    ? __builtin_memset((s),0,(n)) 					    \
    : __constant_c_memset((s),0x0101010101010101UL*(unsigned char)(c),(n))) \
 : __memset((s),(c),(n)))

(linux-2.2.20/include/asm-alpha/string.h からの抜粋)

定数の 0x0101…… は何をしてるのかと思ったら、1 バイトを 8 個 ならべてるのか。なるほどー。

3/10 (日)

カーネル (3)

新しいカーネルがブートしない!

LILO Loading linux ...
Uncompressing Linux...

  Out of memory

と、止まる。

ああだめだ、調査してる時間がない。しばらくカーネルアップデートは おあずけにしよう。

決断

やっぱり net/http をカタつけないとだめだ。 他のものは全部中断して一週間ほど net/http に集中する。

3/11 (月)

せわしい

kterm コンパイルしてみたり rxvt 入れてみたり ncurses 読んでみたり

to do

raccrt を Ruby に入れる。 strscan を Ruby に入れる。 fileutils を Ruby に入れる。あっと、その前に known bug をつぶす。 ruby-dev の要約の番がまわってきたのでやりはじめる。

あ。

net/http さわるの忘れた…… (バカ)

3/12 (火)

rxvt

日本語のカット&ペーストが通らない……。なぜだぁー。

小学校ときに「『忙』という字は心をなくすと書くんだ!」と 言われたことがあったな。そんなことはどうでもいい。

なにはともあれ忙しい (しかし充実感のない) 一日。春のせいだ。 春だから心臓が正常に働かないのだ。

鬼車

ruby-dev でアライメントがらみの話があったので AlphaStation で試す。

とりあえず make test してみると unaligned access の山に遭遇。 これは当然だな。地道に直そう。

3/14 (木)

CVS をバックにしたなにか with Ruby

Ruby のリファレンスマニュアル書きは RWiki でやってるわけだが、 たくさん書けば書くほど Wiki の足枷が邪魔になってくる。やっぱ セントラルレポジトリは CVS だろ。

しかしリーダー新井さんにより「だれでも書きこめなきゃ意味なし」 という命が下されているため、単純に CVS に移行するのでは納得して くれなさそうである。そこで、あくまでレポジトリは CVS が中心で、 誰でも書きこめる Web インターフェイスをそれにくっつければいいだろう、 という案が当然出てくる。

んで、今日はそのプログラムを作成。あぁ、Ruby で書くと早いなあ。

3/15 (金)

あおきにっきスクリプト

この日記のデータベースはただのプレーンテキストだ。 月ごとに 200203.html というようにファイル名をつけて保存してあり、 手でコマンドを実行して HTML に整形し、rsync でサーバに上げている。

そんなわけで、なんらかの理由で rsync をしていない場合、日記自体は 書いてあってもサーバには出てこない。それでこの日記は一気に三日分が 同時に出現したりするわけだね。あー、なんてユーザに優しくない日記だ。 つーか、ファイルが月単位ってのもあれだな。

wcvs (仮名)

「CVS をバックにしたなにか with Ruby」はとりあえず wcvs と 名付けてみた。なんのヒネリもないねえ。

あっ。google したら wcvs コマンドはもうあるらしい。 別の名前にするか。名前募集中。

sh

本物の /bin/sh が欲しくなってきた。

3/18 (月)

昨日は一日寝ていた。人間はここまで寝続けられるものなのだ、と思った。

秋葉原遠征

今日は秋葉原に遠征。

さしあたっての行動……LAOX のコンピュータ BOOK 館で本眺める。 まさかこんなところで、というか、まさにここだからこそ、というか、 『Alpha AXP アーキテクチャ概要』(共立出版) を発見。あーでも ちょっと汚いね。高いね。直訳口調だね。池袋で買おう。そうしよう。 つーことで本屋離脱。しかしあとでおもいっきり後悔することに なるのであった。

続いて Otto 二号店の四階。あいかわらずっつーか、当然というか PC サーバ (インテル) ばっかしね。まあ PC サーバの階だからねー。 ってもこの前 Alpha が置いてあったのでいちおう見とく。 ちなみに五階が UNIX サーバの店なんだけど、あそこにあるのは 十万単位で値段がつくのでとても買えん。

んで AlphaStation を買った店。別に隠す必要もないがバラす必要も ないので、末広町付近北西部の、ガラクタで埋まってる店のとなり、 くらいにしておく (わかる人はわかるでせう)。ここは相変らず WS が いっぱいである。うーん、しかしおれ、この前の一件で完全に顔を 覚えられたな。あんなでかいマシンを自力で持ち帰るやつなんてそうそう いないもんなあ。店の人にも「ま、普通の人はやんないよね」と言われた。

そんで Sun ですが。「とりあえず Sun Ultra 1 の 140MHz あたりで いじくってみるのがいいんでないの」というお言葉をいただく。うーん、 そうなんですか。値段も 15000 そこそこで問題ないね。しかし手元の 金が 18000、これにキーボード・モニタの変換コネクタと食費…… と考えて、結局断念。くそう。しかし次の給料が出たら買うことに なったらしい。

帰り道。なんとなくパーツ屋を見たりするも、Alpha を知ってしまうと 普通の PC パーツなんぞ見てもなんもおもしろくない。「お金入ったら P4 2G デュアルで RDRAM 2GB、HDD は SCSI で RAID0、あ、でも どうせ vi と ruby だけだから意味ない」、なーんてテキトーなことを 考えつつ適当に帰る。

さて池袋で AXP 本を探すが……ない。ジュンク堂にもリブロにも 旭屋にも芳林堂にもない! がーん! なんてこった! たしかジュンク堂に あったような気がしてたんだけどな。まいったなあ。

あー。

どうしよう。

こまったー!

くわー!

……秋葉原まで戻ろうか。

戻った。買った。疲れた。

遠征はまだ終わらないらしい

このまま戻るのもシャクなので神保町の書泉にでも行こうかな、と思いたつ。 前に歩いていったことがあるから大丈夫さ。

……迷った。巣鴨になんか行きたくなぁーい!

なんてこともあったのだが、結局少し戻ればいいことがわかり無事に 書泉についた。でもやっぱ AXP 本はないなあ。ARM の本は山づみなんだが。 うむぅ。結局なんも買わずに帰る。

……迷った。地下鉄の駅はどこだぁぁぁ!

なんてこともあったのだが、なんとか一駅隣の淡路町にたどりつく。

……しまった。こっちの改札は丸の内線じゃねぇぇぇ!

なんてこともあっ……もうやめよう。ただひとつ納得いかないのは、 なんでこんな日に限って靴がはきなれてないやつで、しかも CD-R を 二十枚も買ってしまったかってことですね。足痛い。

3/19 (火)

寝すぎ

昨日は徹夜だったから早々と 01:00 に寝たのだが、 起きたら 6:00 だった。夕方の。

しかもメールと日記読んだらもう 20:00 だ。しかたがないので 時間のかからなそうなところで、raccrt と strscan を ruby に インポートすることにしよう。

時間かからなそうなんて嘘でした。 ドキュメントとかに手を入れてたら時間かかってしょうがねえよ!

3/22 (金)

堕落

ここ二・三日は救いようがないくらいダメ人間な生活をしてみた。

部屋整理

AlphaStation600 の上に XL を積んでみた。 広くはなったが、これが倒れれば即死間違いなし。

ららら・いんぽーと。

意味不明な小題だ。strscan と raccrt を ruby 1.7 ブランチにインポート。 fileutils はドキュメントがかなり手間だ。明日だなこりゃ。

3/25 (月)

もっと堕落

昨日の日曜はですね、 00:00 バイトから帰る、 03:00 『TRICK』1 巻を見終わる、 04:00 寝る、 24:00 起床。 というとんでもない生活を送ってしまいました。 普通 20 時間も寝られないもんなんだけどな。そのあいだ 飲まず食わずトイレにも行かずってのは結構すごくない?

つーか、ここまでヤバいと本当に病気じゃないかと心配に なってきた。

もっともっと堕落

24:00 (すなわち今日の 00:00) に起床したわたしは夕飯を食べに でかけ、02:00 に帰宅。そのまま寝て早起きすれば今日は幸せな 生活を送れたはずなのだが、適当にウェブ眺めて徹夜してしまった。

しかも一昨日からすごく風邪っぽいのに、T シャツ一枚で ノートパソコンたたいてたりするから完全に体が冷えきって 病状が悪化。一晩でティッシュ一箱消費してしまいそうだ。

そして 12:50、眠気と風邪に負けつつある。このまま寝てしまうのか。 ああ、それもまた人生。

無力。

……なんか……。もう Ruby に関わるのやめようかなあ。

っていう精神状態。 はあ。鬱。鬱だ。春がいけないんだ。とくにスギ花粉とか。

3/26 (火)

ららら・いんぽーと。(2)

fileutils.rb を 1.7 にインポート。長い道程でした。

……って、いったい何年かかっておるのじゃー!

to do

今日の活動

標準添付ライブラリのドキュメント

愚痴です。

net の日本語ドキュメントを置く場所を決めあぐねている。 Ruby の doc/ からは日本語が追放されそうな風向きなのでやむをえず cvs rm した。かと言って Wiki は嫌。Wiki は嫌。Wiki は嫌だー! めんどくさすぎるんだよアレわ! 自動化をハナから放棄してるよね! わーい!

3/27 (水)

taint

いまさら strscan の taint チェックをしてみたりする。 taint なんて自分では使ってないからついおざなりになるね。 でも一年くらい後になって ruby-bugs とかで指摘されそうな 予感がヒシヒシとするのでいまのうちに直しておこう。

raccrt は別にチェックするとこなんてないよなあ。

3/28 (木)

strscan

taint チェック完了。ついでにテストも rubyunit で書きなおした。

いまさらのように仕様を迷ってみる。特に scan_until など until 系の メソッドの名前が気にくわない。getch があるから gets にしようかなあ。 それとも re_search() からの連想で search にするか。でも文字列を 返すようには見えん。

パーソナルサーバ

最近、パーソナルサーバというのは Ruby にとって非常に適した分野では ないかと思いはじめた。パーソナルサーバという用語は勝手に作った。 マシンもろとも一人で占有して使うサーバのことである。

そのパーソナルサーバがなんで Ruby に向いているのか。まず、マシンパワー を独占できるので、あまり速度を気にしないでコードを書ける。また ssh 併用 やプライベート LAN を前提とすることでセキュリティ対策を簡潔にできる。 二つめの点は別に Ruby に限った利点ではないが、少なくとも肝心のサーバ 本体を簡単に書ける言語でないとこの利点は生きない。Ruby はとりあえず それを満たす。

パーソナルサーバの主な効用は情報集中だ。たとえばスケジュールやメモの 整理のために Wiki を立ててみたり、グループウェアを入れたり。 まあいろいろあるけども、コンピュータを活用した情報管理を考えるうえでは やはりメールは欠かせないのではなかろうか。

そういうわけでとりあえず IMAP サーバとかどうですかね (なにがだ)。

いやしかし。その前にまずメーラを出しなさい to 自分。

3/29 (金)

郵便の値段

コンビニで切手を買おうとするが料金がわからなくて困る。 バイトしてるファミマにはいちおう郵政省のマニュアルが置いて あるのだが近所のイレブンにはなかった。

しかしそのイレブンの二軒隣りに郵便局があるという罠。 郵便局なんて滅多に使わないから気付かなかった……

delta

キーボード操作でメールを読み進める/戻る機能を実装。

思いきってリソースファイル (~/.delta) と コマンドファイル (/usr/bin/delta) を融合させてみた。マジ?

3/30 (土)

delta

またも Ruby/Gtk の機能不足に遭遇……。悲しすぎる。

しかも Gtk はいつのまにか 2.0 になってるし、 Gtk::CList や Gtk::Tree は obsolete か。Ruby/Gtk が 2.0 ベースに なったら GUI まわりはほとんど書きなおしだな。バージョンアップの 悲哀を感じる。

バイト

ファミマバイトも長い。結局四年近くいたんだな。いろいろありました。 でかい犬が侵入してきたり、変な人があらわれて商品をあらしたりとか。

なんてことは微塵も関係なくバイトの日はやってくる。目の前に日芸 (日大芸術学部) があるんだけども、その日芸で四月に「夏の夜の夢」 をやるらしい。それに宝生舞が出るそうで、ファミマにも本物の宝生舞 が来る。というかおれがレジを打ったみたいなんだけど気がつかんかっ た。今度来たら気付くように顔をチェックしておくべきだな。でも最近 忙しくて客の顔なんて見てる暇ないんだよね。まったく、学生は単価安 いくせに数ばっか来やがって。しかも揚げ物とか肉まんとか、取るのに 時間がかかるもんばっか買いやがって。おにぎりにしなさい、おにぎり に。

書き忘れていたが、またまた新しいお茶が出たようだ。どっかで 見たようなパッケージにどっかで見たようなイメージ広告。発想の 貧困とはこのことである。もはやいちいち買ってやる気もおきない。 聞茶くらいまではまだどこかしら斬新なものを感じたのだが。

3/31 (日)

平成 13 年度終了ですか。明日からどうなることやら。

Copyright (c) 2000-2002 Minero Aoki <aamine@loveruby.net>
This site is link free.