以前の近況です。
ちょっと多言語ドメイン名の実験用に RACE ライブラリを書いてみました。
本当は日本語の正規化とかも必要なのですが, 簡単な実験くらいならできるかも。
$ cat racetest.rb
require 'race'
nslookup = `nslookup #{Uconv.u8torace(Uconv.euctou8(ARGV.join(" ")))}`
print Uconv.u8toeuc(Uconv.racetou8(nslookup))
$ ruby racetest.rb 日本語ドメイン名試験.jp
Server: localhost
Address: 127.0.0.1
Non-authoritative answer:
Name: 日本語ドメイン名試験.jp
Address: 202.12.30.250
$ ruby racetest.rb 佐祐理.mdn.yoshidam.net
Server: localhost
Address: 127.0.0.1
Name: sayuri.yoshidam.net
Address: 202.212.96.27
Aliases: 佐祐理.mdn.yoshidam.net
おまけの UTF-5 ライブラリ。
ドキュメントがまだ中途半端なのですが, xmlparser-0.6.1 をリリースします。 今回,共有ライブラリ化された Expat Project 版 expat-1.95.0 と, おそらく最後の James Clark 版となるであろう expat-1.2 に対応しました。
expat-1.95.0 と expat-1.2 は若干機能が違います。 どちらか片方を選ぶ必要があります。
expat-1.95.0 は expat-19990728 に Perl 用の拡張などを加えたのものです。 expat-1.2 での拡張はまだマージされていませんが, おそらく expat-2.0 までにはマージされるでしょうから, とりあえず expat-1.95.0 の方がお勧めです。 でもTriplet あたりはまだまともに動いていない気が…
あと expat のライセンスが MIT/X ライセンスに変更されたようです。 従って xmlparser モジュールのライセンスも Ruby または MIT ライセンスになります。
ところで DNS が無事に切り替わったようです (逆引きはまだですが)。 今後, メールは yoshidam@yoshidam.net 宛に, Web は http://www.yoshidam.net/ にお願いします。 BEKKOAME は年末頃に解約する予定です。
結局 yoshidam.net を移すことにしました。 DNS 情報が変更されるまでしばらく時間がかかる予定です。 その間 yoshidam.net が死んでいる可能性があります。 当分の間, メールは yoshidam@tau.bekkoame.ne.jp 宛に, Web は http://202.212.96.27/ か, http://www.bekkoame.ne.jp/~yoshidam/ でお願いします。
XMLParser モジュール, まだドキュメントの更新が終っていません。
フレッツ ISDN 開通しました。 Web ページは 202.212.96.27 に移行する予定です。 ドメイン名をどうやって移行するか思案中。
現在 XMLParser モジュールの expat-1.95.0 対応と expat-1.2 対応作業中です。 2,3 日でリリースできる, かな?
Linux 用に新しいノートパソコン買いました。 DynaBook SS DS50C/1CA という機種です。 今まで液晶が暗くなって画面が見えなくなってしまった Linux ノートに Windows から telnet でログインして使ってました。 もうそんな生活とはおさらばです。
さっそく Linux をインストールしましたが, 内蔵 Ethernet アダプタとサウンドが Linux からは使えないみたいです。 残念。 X は無事に動きました。 1024ドットx768ドットx32ビット表示まで可能です。 16 ビット表示で あさひCDプレーヤ/Rubyも動きました。
というわけで Windows 上で Ruby を使わなくなってしまうので, ruby-chan の開発は終了する予定です。
ところであさひCDプレーヤ/Ruby ですが, Pentium133MHz の Linux と Windows98 上の X サーバ (AstecX) という環境でもそこそこ動いてました。 マウスを動かすと結構 CPU 負荷が高くなりますが, 目パチではほとんど負荷はありませんでした。
安井 卓さんからの報告で syslog ライブラリからデバッグ出力を削除しました。
いいかげんな XPath パーサを作ってみました。 やっと一通りパースできるようになりました。 まだ実用性はありませんが…
高橋征義さんが xmltree.rb, xmltreebuilder.rb, xmltreevisitor.rb を RD 化してくださったので, xmlparser に取り込みました。 高橋さん, ありがとうございます。
mswin32 で youbin-ruby が動かない問題, Ruby にこんなパッチを 当てるとエラーは出なくなりますが, select か recv あたりでブロックしてしまって, 他のスレッドに制御が渡らなくなる感じです。 もうお手上げです。
さぼっているうちに中田さんから susie ライブラリのパッチが出てしまったので, 取り込ませていただきました。 バイナリを添付するのは止めました。
オブジェクトの初期化は new と initialize のどちらでやるのがいいんでしょう? いままで new でやってましたが, initialize のほうが継承しやすいかも。
ところで susie ライブラリ, まともに動いていますか? うちではかなり不安定です。 cygwin との相性のせいだと勝手に決め付けて原因追求をあきらめてしまっていますが, もしかするとバグなのかも。
FMV-TOWNS 買ってセットアップしてたり, Ys2E やってたりで, 最近全然 Ruby できてません。
mswin 版バイナリで osuwari-ruby を動かしてみました。
D:\Ruby を作って,
その中に ruby-1.4.5-20000626.i586-mswin32.lzh
と ruby-common-1.4.5-20000626.noarch.lzh
を展開,
D:\Ruby\lib\ruby に
vrswin-000710-1.4.5.i586-mswin32.lzh 展開。
rubychan0_7.zip はどこでもいいですが,
とりあえず D:\Ruby に展開。
osuwari-ruby を動かす程度なら環境変数は不要です。
リンク先:
D:\Ruby\bin\rubywmw-1.4.exe
D:/Ruby/ruby-chan/osuwari-ruby.rb,
作業フォルダ: D:\Ruby\ruby-chan でショートカット作成。
rubywmw-1.4.exe にアイコンが入ってなくてちょっと寂しいので, ショートカットに 適当なアイコンを設定すれば OK です。
ありゃ, youbin-ruby は動かないみたいですね。 socket 周りが cygwin 版と違うのかな?
conf ファイルでビットマップの差し替えができるようになりました。 youbin.rb で長いヘッダを受信したときに落ちるバグも修正。
こんな感じになる予定です。 いかがでしょうか?
youbin-ruby で こんなふうに メールの内容をツールチップで表示できる ようになりました。 かなり強引な方法を使っているので, うまく動かない場合もあるかも。
Youbin で plain か rok 認証する必要があります。 どちらもあまり secure じゃない気がしますが。
osuwari-ruby ほか更新しました。 ウィンドウクラスのチェックを入れたので, デスクトップの右上に足だけ出したり, タスクバーの後ろに行ってしまうことは無くなったはず。 姿を隠すだけですが。
Youbin プロトコルでメールのチェックする機能も付けてみました。 thread を使っていますが安全じゃないかも。
とりあえず動きました。 vrswin000612 以降に対応です。
フォーカスのあるウインドウの上に座ります。 まばたきします。 頭をなでるといやそうな(?)顔をします。 それ以外の機能はありません。
時々変なところへ行くことがあります。 ウィンドウのスタイルやクラスをチェックする必要があるのかもしれませんが, 面倒なのでやってません。
しばらく Ruby をさぼっていました。 そのうちこういうのができるかもです。
いつの間にか xmlparser が Ruby 1.5 で動かなくなっていました。 Ruby 1.5 での変更はあまりチェックしていなかったので今まで気が付かなかったのですが, Object#initialize の引数の数が 0 になったようです。 とりあえず可変引数の XMLParser#initialize を定義してごまかしておきました。
susie や rddraw も同じところで引っかかりそうなのでそのうち直します。
WM_PAINT の中で dopaint を呼び出していたせいで, 段々重くなる (DC のリーク?) ruby-clock の バグを修正しました。
ruby-clock は常に最上位ウィンドウになるようにしてみました。
swin-000425 の仕様変更にあわせて, ruby-chan の変更。 ドラッグで移動できるようにしてみました。 あと, ちらつきが若干軽減したはず。
簡単な時計も入っています。 パネルのビットマップをもっとまともにしなくちゃ。
JVim いじっていて SJIS to UCS の変換部のバグを見つけてしまいました。 Uconv にも同じコードが…
最近 Java ばかりで Ruby にはあまり触っていません。