髪を切った。
「エアマスター17」購入。 バイト先の近くの本屋だが、平積みで20冊ぐらいあった。 そんなに売れるのか?
カバーを変えたりなどというどうでもいい部分に目が向くということは、現在の進化の方向が袋小路だということだ。 ここらで思い切って、携帯に何かを付けるのをやめて何かに携帯を付けることにしたらどうだろう。 たとえば、扇子に携帯電話の機能を付ける。 もちろん腰に差すのがおしゃれである。 街中で落語家のように扇子を持って話す人がたくさん出始めたら、なかなか楽しい光景ではないだろうか。
サトクリフ「ベーオウルフ」原書房。
ゼミの発表…なのに遅刻した。 SIMATH ミーティングの後は、小松君の生成的多項式の話。 その後 OpenSSH を入れ替えようと思い立つ。 OpenSSH, OpenSSL の入れ替えなど日常のルーチンワークである。 linux ならば。 Tru64 では何かが違ってくる。
用意した OpenSSL は 0.9.6g。
コンパイルするに際し、デフォルトでは cc でコンパイルされるので、
% ./Configure alpha-gcc shared
とする。
ところが、素直には終らない。
最後に ld で shared にするオプションが gcc では解釈できないので -Xlinker をいくつか挟まないといけないのだが、Makefile にそのケアがない。
(gcc を使う人は gnu の ld を使うものなのかもしれない)
ということで Makefile を編集してコンパイルを通す。
make test も通るのでインストールする。
次は OpenSSH である。 バージョンは 3.5p1。 configure で SSL が無いとか言われてしまうので、--with-ssl-dir オプションも付けてみるのだが、指定の仕方によってエラーメッセージが変わるぐらいでとにかく止まってしまう。 試しに環境変数で CC を cc にしてみたりしたが、zlib が無いと言って止まる。 gcc が使われる時はちゃんと zlib を認識しているので状況はさらに悪化している。 というかライブラリーがコンパイラー依存で使えたり使えなかったりというのはかなり面妖な感じを受ける、が今はそこは追求しないことにしておこう。 しばらく悩んだ末に、先程の shared ライブラリーの作り方に問題があるのかも、と思って libcrypto.so の名前を変えて libcrypto.a を見るように仕向ける。 今度は configure が無事終った。
コンパイルは何事もなく終了するが、何分古い機械なので既にここまでで3時間以上経過しているのである。 早く帰りたいのだが、後少しと思うと片付けずには帰れない。 とにかくインストールして動作を確認すればOKである。
make install の最後に privilege separation 用のアカウントが無いと怒られる。
linux ではただユーザーを作れば良かったので、ここでもただユーザーを作る。
動いている古い sshd プロセスを止め、新しいのを起動。
linux ノートから
% ssh simath
パスフレーズを聞いてくる。
動いてるな、作業は完了だと思った次の瞬間
Too many users already logged in.
というメッセージとともに終了してしまった。
…Tru64 なんて嫌いだ。
困った時の google 頼みで ssh "too many users" と検索を掛けてみる。
Tru64 4.0E で…という正しくこれというものがどこかのメーリングリストのログにあった。
どうやら Tru64 では(バージョン 5 でも) privilege separation は上手く機能しないらしい。
やれやれ。
sshd ユーザーを削除し、sshd_config に
UsePrivilegeSeparation No
と書き加えて、sshd を起動し直し。
もう一度ノートからログイン。
今度はログインできた。
林「プログラム検証論」共立出版。 の正誤表。
ということで、今度は au になった。 携帯の番号を教えて(いた|もらった)人には追って通知します。
今日のバイトの内容はデータ登録の単純作業だったのだが、我ながら指の動きの悪さには呆れる。 左手はまだ4本の指を使っているが、右手は小指がリターンキーに固定され薬指ばかり忙しい。 そのうち左手の人差指が y まで伸びてきたり。 それに普段と違うローマ字を使うので、とくに「じ」とか「ぎょ」とかはよく打ち間違える。 変なカスタマイズをしているので自業自得といえばその通り。 もはや普通に戻るのは困難だ。
咳も出なくなってきたので、そろそろ自転車生活に復帰しようと、久しぶりに渋谷まで自転車で行った。 寒過ぎもせずなかなか気持ちよかった。
午前は修士の二人の中間報告。 SIMATH のミーティングの後は村田玲音さんのメルセンヌ数の最大素因数の評価の話。
maxima を動かしてみるために gcl 2.4.3 を入れた。 Kyoto Common Lisp の末裔とは知らなんだ。 それはそうと、インタープリターの止め方が判らない。
追記: (exit) だった。
夕方、東から西に流れる一条の光を見た。 獅子座流星群?
草上仁「さまよえる海」ソノラマ文庫。
configure したら怒られた。
Perl 5.00503 required--this is only version 5.00502, stopped at -e line 1. configure: error: Perl 5.005_03 or better is required
自分の感覚では perl なんてメンテナンス対象外だったのだが、しかたない。 で、ここで 5.8.0 を入れても大丈夫なのだろうか?
…特に問題なし。 ということで本日のインストールソフトは perl 5.8.0 と autoconf 2.56。
ring server の mime のデフォルトが application/octet-stream っていうのはどうにかならないのだろうか。 .txt 以外はテキストじゃないので(多分)、README とか全て application/octet-stream である。 Netscape でも lynx でもダウンロードが始まってしまうので非常に困る。
ということで、いい機会だし、解約した。 さよならツーカー。
北方謙三「標的」徳間文庫。
久しぶりに PEP を訳してみた。 Python 2.3 で採り入れられる予定の PEP 218 だ。 集合型を Python に導入するという話。
世を儚み、入水自殺した。
面倒だがなかなか面白い。
PRIMES is in P 第2回。 午後は SIMATH の今までいろいろいじっていたファイルを整理。
どうやら、64 ビット機でも計算できる状態にはなったらしい。 最後に残っていたのは、ハイデルベルグの整数から SIMATH のリスト表現に直す時に最上位桁が 0 にならないように注意していなかった、というミスだった。
会社にいる間、くしゃみは出るし鼻水は出るし、風邪かなと思って早めに帰った。 ところが、外に出て電車に乗り、ふと気が付くとくしゃみも鼻水も止まっている。 家に帰ると、また出始めた。
考えてみよう。
問題は、外に出て電車に乗って駅から家へ歩いていた間は鼻水が止まっていた、という現象をいかに説明するかだ。
会社と家にあって、その間にないもの、とは何か。
それは、上着のいらない暖房だ。
あるいはそれに伴う湿度の低下。
というわけで、今日の仮説:
「空気が乾燥すると鼻水が出る」
家に帰ってから気になったので見てみたところ、割算に異常なデータが渡されていた模様。 つまり、とりあえずは、割算への疑いは濡れ衣だったと。 しかしその異常データを作り出しているのは iegcd で呼ばれているどれかの関数なのである。 どれなんだかなあ。
10月分を分離。
午前はハテムが論文紹介。 クイックソートの拡張みたいな話で結構面白かった。 午後は木田さん。
SIMATH の 64 ビットでのバグと格闘。 実は割算がおかしいのかもしれない。 割算の検算をしたら「間違い」と出た。 あるいはもっと考えたくないけど、検算の方がつまり掛け算か足し算が間違っている可能性も残されてはいる。 gcd がおかしいと聞くよりこれはさらに嫌になる。
意味もなく検索に引っかかるようにテキストとしても置いてみる。 1.05 よりデータが若干増えているので、スナップショット的な意味合いもある。 知合いの(あるいは自分の)名字が載ってない、とか知らない人からも言ってもらえると嬉しい。
少し前にネットワークカードを買ったのだが、うまく認識されないようだった。 ドライバーをアップデートと思ったのだが、それってどうやるの? という状態で、良く判らないのでカーネルごとアップデートしてしまうことにした。
というわけでカーネルが 2.2.22 になり、ネットワークカードも認識された。 ネットボランチもようやく TA でなくルーターとなる。 しかし、Netscape が立ち上がらなくなってしまった。 他のソフトは大丈夫なんだろうか…。
追記: Netscape は再インストールした。
The Great Computer Language Shootout といういろいろな言語を比較したベンチマークのページがある。 そのいろいろな言語のなかに python もあって、やはり遅いのである。 おおよそ perl や ruby と同じぐらいで、しかしときどき mawk にさえ負けていたりする。
そこで Psyco である(反則だって)。 例えば、エラトステネスの篩(8192 までを引数回)はこうなる。
227:~/bin/python% time python shootout_sieve.py 250
Count: 1028
16.450u 0.030s 0:33.12 49.7% 0+0k 0+0io 419pf+0w
228:~/bin/python% time python shootout_sieve_psyco.py 250
Count: 1028
0.460u 0.030s 0:00.97 50.5% 0+0k 0+0io 481pf+0w
2 行書き加えるだけで 35 倍速くなった。 これを他の言語と比較してみると、おおよそ java 程度に相当する。
変数の初期化方法を若干誤解していたことが判った。 そこを直したら core dump が減ったが、今度は iegcd (整数の拡張最大公約数) で間違った答が返ってくる。 うそだろ、おい。
8.0 系が python で使えなくなるので 8.4.1 を入れた。 kinput2 が起動していたら Tk の make test でたくさんエラーが出た。 これはそういうプロセスを起動したままテストした私が悪いのだろうか?