天泣記

2005/07/04

#1

leapsecs ML

うぅむ。そんな ML があったとは。

... え? leap hour?

2005/07/05

#1

DRb に security 問題 (と私が思った) ものを report したら、 「素のDRbはセキュリティに関してはなにもしないという態度である」ということだそうな。

2005/07/06

#1
% google-count {ゆび,あし,みみ}たこ
2       ゆびたこ
257     あしたこ
1020    みみたこ

2005/07/08

#1

( TI - UT1 ) を読む。

いろいろと疑問に思っていたことが書いてあり、なかなか面白い。

地球の回転速度 (の推移) と閏秒の関係を理解できた気がする。

あと、TAI が必ずしも完璧ではないというのも面白い。

ただ、過去の (日食の日時などから得た) 回転速度のデータが 2500年くらいで、 それだけでもあまり直線とはいいがたいのに、 60000年とかまで外挿するのはいかがなものかと思わないでもない。

2005/07/09

#1

perlsec を読む。

へー。hash に乱数が使われるようになったのはセキュリティが理由だったんだ。

2005/07/10

#1

Algorithmic Complexity Attacks, Scott A Crosby and Dan S Wallach

も読む。

2005/07/11

#1

とあるホスト A は outgoing connection 禁止である。 A にデータを送るには、ftp で外部から転送してやらなければならない。

転送したい (A で使いたい) データは他の anonymous ftp サーバ B にある。

おぉ、proxy が有効な始めてのケースではないか、と思って試してみるがうまく動かない。 調べてみると、B の ftp サーバが vsFTPd であり、 vsFTPd は client 以外への PORT を拒否するようである。

まぁ、わからんでもないが、そうされると今回のケースでは使えない。

うぅむ。次回 proxy が有効なケースに出会うのはいつのことになるだろう?

とゆーか、vsFTPd に限らず禁止していてもおかしくない気がするな。

2005/07/12

#1

GCC Bug 22429 を報告

2005/07/15

#1

typo

「でしょう」と「でしょ」のニュアンスの違いは大きい...

#2

POSIX の sh の ulimit を調べると、オプションは -f しか載っていない。

2005/07/17

#1

autobuild の後継であるところの chkbuild を運用を始める。

autobuild の問題はいろいろあったが、 同名のプロジェクトが存在することもあり、 名前を変えて作り直すことにした。

今回は yaml じゃなくて ruby で設定することにした。

2005/07/18

#1

chkbuild は順調に動作しているので、autobuild を停止する。

2005/07/20

#1

ふと、tzarchive を久しぶりに見て、tzcode2005k, tzdata2005k が出ていることに気がつく。

思い立って、環境変数 TZ で閏秒つきのを指定しても gmtime に閏秒が入らないということを報告しておく。

#2

HTML 片を使う必要があるのか、という疑問は以前ずいぶんと考えたことがある。

テンプレートに連接・選択・繰り返しの機能があるんであれば、正則集合の表現能力がある。 また、部分的なテンプレートに名前をつけて参照できれば文脈自由文法までいくので、 HTML が木であることを考えればこれで足りないってことはないんじゃないだろうか、と思っている。 (木に対して正則集合とか文脈自由文法というのはあんまり適切じゃないかな)

だから、HTree のテンプレートエンジンには HTML 片を直接出力する機能がない。 また、テンプレートの展開結果も IO に出力するのがデフォルトで、 HTML な文字列をアプリケーションで扱う必要性を減らしている。

まぁ、木構造のまま扱う都合上、Yusuke Shinyama 氏のメモにある例のように木構造になっていないものを生成したいときには、HTML 片をそのまま出力する機能が欲しくなるかも知れないが、むしろ生成できないのは良い性質であるように思う。

2005/07/21

#1

関数型の影響を強く受けているのはそのとおりです。 木が immutable だとか、ノードが親を知らないとか。

テンプレートはコンパイルしてしまって、_call はコンパイル済みのテンプレートを呼び出すので、 データ構造としての HTML 木を出力するという機能は今のところありません。 もちろん、コンパイルしたコードの中から HTML 木をエンコードするインタプリタを呼び出すというのは原理的には可能で、 それは考えていなくもないです。 ただ、_call の mod.name(args) という指定で、 mod は (Ruby のモジュールは first class であり) モジュールを返す任意の式なので、 そこで動的に切替えることが可能で今のところはそれで済んでいます。

CTEXT っていうのは PCDATA な気がしますが、そういえば、 HTree::Text という RCDATA を保持するクラスがあります。 このオブジェクトは (普通の文字列と同様に) テンプレート内の文字列置換に使えて、 内部コードでは表現できない文字を扱うのに必要になるのですが、 そこで行われるエスケープは少し違います。 なんせ RCDATA で、& はすでにエスケープされているためエスケープせず、 他の文字は必要に応じてエスケープします。 これは動的な型で違いを保持していることになります。

#2

そういえば、HTML な文字列を扱わなければならないところを思い出した。 それは HTML をパーズするところで、パーザに渡すところは文字列がアプリケーションに現われてしまう。

一応 HTree('...') というようにリテラルを渡すことを推奨しているが、 HTree(expression) とするのを邪魔することはできていない。

だから、そこを解決するために本当は、リテラルが欲しかったりする。 式じゃなくてそこに直接書かなければならないものが欲しい。

... annotation がある世界だったら、警告させるような annotation をつけるというのも有り得るかも?

#3

chkbuild では、setrlimit している。

が、悩むのはメモリの制限をどんな値にすべきかというところである。

まぁ、とりあえず資源をどのくらい使っているかを測ってみるのが正攻法だよな、 というわけで、getrusage を使ってみる。

が、Linux ではマニュアルによれば ru_utime, ru_stime, ru_minflt, ru_majflt, ru_nswap しか意味がないそうな。

なら BSD ということで NetBSD 2.0 を試すが、 これまたメモリ関係の ru_maxrss, ru_ixrss, ru_idrss, ru_isrss は 0 になっていて怪しい。

NetBSD Bug 15327 という話はこれだろうか。

OpenBSD 3.7 も同様である。

FreeBSD 5.4 を試すと、それっぽい値を返す気がする

#4

ssh でホストにはじめて接続したとき、finger print を確認するよう聞かれる。

それはいいのだが、savannah.gnu.org につなぐときに、 Debian からだと RSA の finger print が出て、 FreeBSD からだと DSA の finger print が出ることに気がついた。

この違いは一体どこから?

#5

しかし、getrusage が返す値は (たとえちゃんと返ってきたとしても) setrlimit/getrlimit に設定する値との関係が薄いのが悲しい。 ru_maxrss は実メモリの量であって全体の量じゃないし、スタックとかいろいろな部分に分けては教えてくれない。 ru_ixrss, ru_idrss, ru_isrss は平均値を求めるのにしか使えなくて、最大値は得られない。

setrlimit の定義にしたがって実際に測定した資源量を教えてくれればいいのに。 実際、limit を効かせるためにはその量をカーネルの中で計算しているはずで、 それをちょっと記録しておいてくれればいいだけだと思うのになぁ。

#6

Analysis of Perl's Taint Mode, Andrew Hurst

PHPrevent: PHP Security Project - PHP taint mode

2005/07/25

#1

chkbuild/autobuild で、前回の log との diff をとることがたまにある。

download して diff をとるのは面倒なので、生成するようにしてみる。

#2

cairo と rcairo を少し使ってみる。

png を生成するサンプルは動いた。

#3

tzcode の ML は向う側の firewall に阻まれて投稿不能な状況に陥っているということなので、 作者のところに直接送る。 (tzarchive のところにそうしてくれと書いてあった)

#4

static link しても nss まわりが dynamic に残ってしまうことを相談したところ、 glibc には --enable-static-nss というのがあることを見つけてもらう。

GNU C Library FAQ: 2.22. Even statically linked programs need some shared libraries which is not acceptable for me. What can I do?

2005/07/29

#1

提示される finger print の違いは HostKeyAlgorithms による模様

FreeBSD がデフォルトでひっくり返しているのは意図的ではあるらしい

http://www.FreeBSD.org/cgi/cvsweb.cgi/src/crypto/openssh/myproposal.h

2005/07/31

#1

(古い) VMware に FreeBSD 5.4 をいれる。

だいたい動くのだが、時計が激しく遅れるという問題が起きた。 ちゃんと測ってはいないのだが、実時間に対して半分くらいしか時刻が進まない。

いろいろ探すと同様な症状の報告も見つかるが、解決法が不明である。

vmware-guestd はどうも suspend から回復したときに修正してくれるだけで、定常的な遅れには効かないようである。

CPU_DISABLE_CMPXCHG を見つけて試すも効かない。

ntp を試すが、あまりにずれが大きすぎるせいか、同期してくれない。

ntpdate を cron で起動することを試すが、 cron の最小起動間隔は 1分であり、それでは間隔が長すぎる。

それなら短い sleep を入れながら loop すればいいわけだが、 そんなに頻繁に ntpdate で問い合わせるのは気がひける。

結局「VMware の背中」から Linux / Solaris 用の VMware Command Line Tools を取って来て、それで 1秒おきに Host OS の時計に合わせることにした。

なお、Linux / Solaris 用といいつつ FreeBSD と NetBSD ではとくに問題なく動いた。 ただ、OpenBSD だと __i386 の定義がなくてそこを修正する必要があった。


[latest]


田中哲