| 2001/01 | ||||||
|---|---|---|---|---|---|---|
| Sun | Mon | Tue | Wed | Thu | Fri | Sat |
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 | |||
_ expat のパッチを ちょっと更新。 デフォルト名前空間を指定したときに落ちることがあるのを修正。
_ XML::DOM::Builder を上記パッチ済み expat に対応。
_ nDiary 0.9.0 にしてみた。
_
diary コマンドをシンボリックリンクに対応させるため,
ちょっとパッチ。
--- /home/yoshidam/ndiary/script/diary Mon Jan 1 00:00:00 2001
+++ script/diary Wed Jan 3 01:58:36 2001
@@ -2,7 +2,9 @@
#$stderr = $stdout
-dir = File::dirname($0)
+exefile = $0
+exefile = File.readlink($0) if FileTest.symlink?($0)
+dir = File::dirname(exefile)
Dir::chdir(dir)
$: << dir_ うひー, 昨日のパッチじゃ全然駄目だった。 名前空間指定無しのとき落ちる問題と, 終了タグの名前空間プレフィックスが正しくなかった問題を 修正。
_ Element クラスはほぼ名前空間対応かな。 たぶん…
_ 世代別 GC パッチ を使ってみた。 XML::DOM::Builder で 470KB くらいの XML ファイルを DOM ツリーに変換するのにかかった時間。
| user [s] | system [s] | total [s] | |
|---|---|---|---|
| 通常 GC | 18.83 | 0.16 | 19.161 |
| 世代別 GC | 11.79 | 0.20 | 12.160 |
_ オブジェクトをがんがん作るので結構効くみたい。
_ 戻って来た。
_ むむ, 89 点か。 もうちょっと頑張らないと。
_ nDiary 0.9.1 をインストール。
_
あれ, ANCHOR_EACH_TOPIC = false
だとどの段落にも同じアンカーが付いてしまうような?
_ 木山さんの研究日誌 を読んで, オブジェクト数の見積りをしてみる。
_ まず, XML ファイル内の要素数 11,630, 内容テキスト数 37,795, 属性数 4,880, Element オブジェクトは内部に名前文字列を一つ, Text オブジェクトは内容文字列を一つ, Attr オブジェクトは名前文字列と NodeList オブジェクトと Text オブジェクト (内容文字列を一つ含む) を各々一つ含んでいる。
(11,630x2)+(37,795x2)+(4,880x5) = 123,250_ うう, 最低でも 12 万オブジェクト以上必要なのか。 こんな XML ファイルが一般的かどうかは不明。
_ 久しぶりの出社。 眠い。
_ うーん, いまいち
#! /usr/local/bin/ruby
require 'net/pop'
CONFFILE = ENV['HOME'] + '/.popcheck'
CACHEFILE = ENV['HOME'] + '/.popcache'
INTERVAL = 3 * 60
MESG0 = "お便りは届いていません\n"
MESG1 = "%d 通のお便りが届いています\n"
if FileTest.exist?(CACHEFILE) &&
File.stat(CACHEFILE).mtime + INTERVAL > Time.now
open(CACHEFILE) do |f|
print f.read
end
exit 0
end
raise "insecure configuration file" if File.stat(CONFFILE).mode & 0066 != 0
load CONFFILE
Net::POP3.start(SERVER, 110, USER, PASSWORD) do |pop|
mesg = MESG0
count = pop.mails.length
if count > 0
mesg = sprintf(MESG1, count)
end
print mesg
open(CACHEFILE, "w") do |f|
f.print mesg
end
end_ void 氏のページ は XHTML で書かれているようだが, DOCTYPE 宣言が間違っているような。 ExternalID に公開識別子を使うときはシステム識別子は省略不可なんじゃ?
_ asahi.com と YOMIURI ON-LINE 用のヘッドライン取得スクリプト (headline_asahi.rb , headline_yomiuri.rb ) 。 うー,いまいち。
_ 今度は Yendot のヘッドライン取得スクリプト (headline_yendot.rb) 。
_ XML で取得できるから (RDF みたいだけどちょっと違うような?) 解析が簡単。
_ うー, 頭痛い, ちょっと熱っぽい。 風邪かなぁ。
_ ダイアルアップ回線が切断, 9 分後に NTP パケットによる再接続。 網側からの切断はフレッツ ISDN 接続開始以来 2 回目かな。
_ なぜか Yendot のヘッドライン取得スクリプトにアクセスが集中。 と思ったら Yendot で紹介されていた。 うぐぅ。
_ ヘッドライン取得スクリプトを xasahi に contrib。
_ 日記ですか… アンテナサイトから LIRS とか DI とか hina.txt を取ってくるのが手っ取り早いかな。
_ あっ, そういえば headline_yendot.rb には XMLParser と Uconv が必須ですね。 すっかり忘れてた。
_ 目覚めたら午後。 PSO したり。
_ なるほど, Netscape のチャンネルファイルだったのか…
_ 寒いよー。 でもこの冬はまだ一度も部屋の暖房を使っていないな。
_ i-DNS.net の iClient を入れて IE で多国語ドメイン名を使ってみた。
_ http://佐祐理.mdn.yoshidam.net/ とかアクセスできるみたい。 ちゃんと Host を RACE で送っている感じ。
_ mDNkit-1.2.1 もリリースされたようだし, さっさと MDN/Ruby を完成させてしまおう。
_ esd 拡張ライブラリ , 動きました。
_ DOM Level2 Core 対応を進める。 引数のチェックとかちゃんと入れなきゃ。
_ うえのさんの XPath を対応させてみる。 namespaces あたりも動いている感じ。
_ 朝には少し積もっていたみたいだが, 午後にはほとんど消えていた。
_ PSO に疲れたので, ちょっと古いゲームに手を出してみる。
_ Node の編集メソッドあたりを大幅書換え。 insertNode 等で挿入するノードが既にツリー中にあったときの処理が間違っていた。 DocumentFragment を挿入したときに, parentNode が正しく更新されていなかった。
_ 生成オブジェクト数を減らして若干高速化。
_ Builder オブジェクトの生成, DOM Level 3 Load and Save 風にするか, JAXP 風にするか考え中。
DOM Level3 風
builder = XML::DOM::DOMImplementation.instance.createDOMBuilder
doc = builder.parseURI("http://hoge/hoge.xml")
JAXP 風
builder = XML::DOM::DocumentBuilderFactory.instance.newDocumentBuilder
doc = builder.parse("http://hoge/hoge.xml")_ DOM Level3 かなぁ。
_ 今日は飲み会。 フグとスッポンを食べた。 一度食べれば充分という感じ。
_ esd 対応の確認。 esd のバッファリングのせいかちょっと切替えのタイミングがずれてしまうような。
_ timidity のオプションを '-Oe' に変えないと, esd から出力されないかも。
_ Oracle8i のマニュアルを眺めていたら, 入れ子テーブルとか配列型とか妙な機能が増えているのに気づいた。 Oracle/Ruby から使えるんだろうか。 やっぱり自宅に Oracle 欲しいなぁ。
_ 雪は降っていたけど, 電車が止まる程じゃ無さそうなので買物に出かけた。
_ 以前 DB 作成に失敗したので,
_ してみたが, やっぱり駄目だった。
_ MU2 はバックアウトできたかなぁ。
_ まあ,1.5 秒もずれる のは希です。 CD の場合はスピンアップが遅いのでちょうどいいかも。 usleep はあるみたいです。
_ MU2 はバックアップを残していなかったのでバックアウトできなかった。 がっくり。
_ いつのまにか MU3 がリリースされていたのでダウンロード開始。 Solaris 8 1/01 Release 相当のパッチらしい。
_ ダウンロードに 3 時間, パッチの適用に 2 時間かかった。 もちろんバックアウト用のバックアップは残さなかった。
_ MU3 を適用してやりなおしたけどやっぱり駄目だった。 もう諦めモード。 Linux 版 8.1.7 あたりをダウンロードしたほうがいいかも。
_ 会社でこっそり Orcle/Ruby のテスト。 やっぱり VARRAY/nested table は扱えなかった。 CLOB/BLOB なんかも駄目。 まあ, Oracle7 の API を使っているんだから当然なんだけど。
_ OCI8i/Ruby が必要?
_ おお,まつもとさんが TV に出てる! とりあえずビデオは保存。
_ 今日で BEKKOAME との契約が終了。 結構長かったなぁ。 満六年?
_ UCS→CP932 変換のバグ発覚。全角空白が '?' に化けちゃう。 全角空白なんて使わないからなぁ。
_ ついでに UCS と CP932 の変換テーブルを Unicode コンソーシアムのものから日本語 Samba のものに変更。 機種依存文字のマッピングが, より Windows に近くなったはず。
_ とりあえずuconv-0.4.5 リリース。
_ Linux マシンに Oracle8i Enterprise Edition R8.1.7 をインストールしてみた。 げ, 重い。 メモリ 128MB じゃ全然足りない感じ。
_ ログインできなくなったようだ。 まだ Web ページは残っているようだが。
_ asahi.rb の Chipanim#convert_string で, !コマンド 以外のときに ret を返していないので 電飾が表示されないような。