Just another Ruby porter,

〜2004年11月下旬〜


<Prev(,) | Next(.)> | Recent(/)>> | RDF

2004-11-21 (Sun)

[Ruby] msvcrt.dllとmsvcr71.dll

思いつき。たとえばmsvcrt.dllからmsvcr71.dllへのforwarding DLLを作ればmsvcrt.dll用に作られた拡張ライブラリは救済できるのか?

% gcc -E -P -xc-header msvcrt.def.in |\
  sed '/^\(EXPORT\|^;\)/!s/\([^ ]*\)/\1=msvcr71.\1/' >msvcrt-fwd.def
% i686-pc-cygwin-dllwrap --driver-name=i686-pc-cygwin-gcc -mno-cygwin \
  --target=i386-mingw32 --def=msvcrt-fwd.def \
  --dlltool-name=i686-pc-cygwin-dlltool -o msvcrt.dll

てな感じで。でも、

% i686-pc-cygwin-objdump -p msvcrt.dll |grep 'DLL Name'
        DLL Name: KERNEL32.dll
        DLL Name: msvcrt.dll

という結果を見ると、ここでも specs.msvcr71は必要な気もする。 今日は時間切れ。

msvcrt.def.inはmingw-runtime-3.5-1-src.tar.bz2の中にある。 ミラーサイトを参照。

[天気] 雨

最近ForecastFoxでLight Rain Showerとか表示されてるのを見て雨に気づくことが多い。 今日なんかは特に雨が降るとは思ってなかっただけに、間違っているとばかり。


2004-11-22 (Mon)

[Ruby] 続msvcrt.dllとmsvcr71.dll

forwarding DLLを試しみた。全然だめっぽい。こりゃ一本取られたね。

[Soft] Dnsmasq 2.18

Changes:

This release fixes a couple of minor bugs. One is associated with the use of IPv6 on Linux, and the other with multiple ranges of addresses for DHCP allocation on a single subnet. There's no reason to upgrade unless you've hit either of these bugs.

[Mail] rimnet

遅延が全然解消されない。むしろ悪くなってる。何を改善したのか?

大人気のCoQ10、供給難でケンコーコムが6000人分キャンセル

恐るべしあるある効果。


2004-11-23 (Tue)

[Ruby] ruby -y

-yオプションなんてあったのか。

   -y
   --yydebug      Turns on compiler debug mode.  Ruby will print a bunch of
                  internal state messages during compiling scripts.  You
                  don't have to specify this switch, unless you are going to
                  debug the Ruby interpreter.

[Soft] CVS 1.11と1.12のloginfoの違い

CVS 1.11から1.12へバージョンアップするときに注意しないといけないのが、loginfoの引数の扱い。

% tail -1 loginfo
DEFAULT echo %s >> $CVSROOT/CVSROOT/commitlog

という内容のloginfoを用意して実際にcommitしてみるとわかる。

% tail -2 $CVSROOT/CVSROOT/commitlog
CVSROOT loginfo
loginfo

上が1.11で下が1.12での結果。 1.11ではmoduleに相当するものがあるが1.12にはない。 その代わり

%p = path relative to repository
%r = repository (path portion of $CVSROOT)

が使える。さらに%{sVv}とした場合はカンマ区切りかどうかという違いもある。

% tail -2 $CVSROOT/CVSROOT/commitlog
CVSROOT loginfo,1.24,1.25 commitinfo,1.3,1.4
loginfo 1.25 1.26 commitinfo 1.4 1.5

Rubyの場合は単に%sとして使っているので、スクリプトの中でmoduleが取り出せればいい。 天泣記 に書かれてるように

そっか。Update of ... のにところには %r/%p が書いてあって、環境変数 CVSROOT には %r が入っているから、その差から %p 相当の情報が得られるではないか。

ということらしいので、loginfo_ruby.rbを確認してみると

case l
when /^Update of (.*)/
  modulename = $1.strip.sub(/^#{Regexp.quote($cvsroot)}\//, "")
  append_line($modulesfile, modulename)
  next

のようにそれらしいことはやってる。 でもその前に

$cvsroot, $cvsuser, $cvsarg, $mailaddr = ARGV.slice!(0, 4)
...
cvsargtk = $cvsarg.split(/ /)
modulename = cvsargtk.shift

のように引数を処理するコードもあって一筋縄ではいかないようだ。 Update ofの処理を前に移動できるか?


2004-11-24 (Wed)

[Mail] SpamAssassin 3.0.1

古いままだったので上げてみた。

% cpan Mail::SpamAssassin

と実行して、適当にリターンキーを押してればインストール完。

% spamassassin --lint

してみるとなんかfailed to parse lineが結構多い。 report_headerもREADMEを見ると

The "report_header" and "defang_mime" options are also deprecated as a result. Read the docs for "report_safe" for details.

ということらしい。しかも2.4での変更だよこりゃ。 user_prefsを見直さないといけないな。

body IMAGE_JPEG /^\337\330/
describe IMAGE_JPEG Image file
score IMAGE_JPEG 5

というのを入れてみたが、うまくヒットしないようだ。 なかなか難しい。


2004-11-25 (Thu)

[IRC] irciiでファンクションキー

6個目のchannelへjoinしたのでF6で切り替えようと思ったが、なかなかうまくいかない。

assign fk.11   parse window swap 1
assign fk.12   parse window swap 2
assign fk.13   parse window swap 3
assign fk.14   parse window swap 4
assign fk.15   parse window swap 5

がF1からF5の設定だから、F6は当然

assign fk.16   parse window swap 6

になると思うよね、ふつうは。ところが正解は

assign fk.17   parse window swap 6

なのだ。ここからなぜか1個ずれる。

link: fkeys(Bind function keys to actions)

[Game] DQ8

ソフマップから発送したよとメールが来た。間違って明日配送されたらちょっとだけうれしいんだけど。


2004-11-26 (Fri)

[Soft] file 4.11

Changes:

This release fixes a few minor memory leaks, tries to support ucs16 strings, and adds FreeBSD version parsing code. There were also modifications to the file magic, most notably for MPEG animations. Furthermore, the copyright clauses were slightly changed.

気温差

会社のForecastFoxでは18℃。家に帰ったら8℃。 アメダスで確認したら本当に海沿いの気温が高い。

いや、その後で家でも突然20℃になった。まじすか。

[Ruby] CVS/CIA

誰かがどこかで動かしていたらしいんだが、それをこっちに振られても困る。 chroot環境だからもうこれ以上perlとかsendmailを入れたくないし。 といいつつもRubyで書くかと思ったり、Ruby Quizにでもしてくれとか。

link: Adding Projects - CIA


2004-11-27 (Sat)

[Game] DQ8

ドラクエ三昧。しかし変わらないねえ。ソフトリセットできないのはつらいけど。

それにしても、他人の家のタンスや宝箱を開けたり壷や樽を壊したり、とても勇者のとる行動ではないな。 そのあたりの挙動がリアルに表現されるようになってかえって気になる。

[Firefox] FoxyTunes 1.0

ええと、どこで見たか忘れたけど入れてみた。 とりあえずプレーヤとして xmmsを選ぶ。 ちゃんとCharacter Encodingに日本語(Shift_JIS)も用意されてる。 ステータスラインに化けずに表示される。すばらしい。

[Linux] Music Player Daemon

FoxyTunesのプレーヤの選択枝にあった Music Player Daemonが気になったので、これも入れてみた。

まずは libaoが古かったので0.8.5へ更新。 あとは普通にインストール。設定は~/.mpdconfに

port                    "6600"
music_directory         "~/mp3"
playlist_directory      "~/mp3/playlists"
log_file                "~/mp3/mpd.log"
error_file              "~/mp3/mpd.err"
mixer_type              "oss"
mixer_device            "/dev/mixer"
mixer_control           "PCM"
ao_driver               "oss"
ao_driver_options       "dsp=/dev/dsp"
audio_output_format     "48000:16:2"

と書いた。これでmpdと実行するだけでdaemonを起動できる。 最初の一回だけは~/mp3/配下の音楽ファイルを全部なめてデータベースを作るので時間がかかるが、二回目以降は瞬時に立ち上がる。 逆に言うと後から音楽ファイルを追加しても認識してくれないので、

% mpd --update-db

のようにデータベースを更新する必要がある。

ついでにncurses clientの ncmpcをインストールして確認。 glibが2.3.6と古かったため、こちらは日本語が化けてしまうようだが、 ちゃんとプレーヤとして機能した。もちろん肝心のFoxyTunesは日本語もok。

configure時に

configure: WARNING: glib-2.4 is required for NLS support!

という警告が出てたのでglib 2.4ならちゃんと日本語も出そう。 明日試してみよう。


2004-11-28 (Sun)

[将棋] 長嶋茂雄アマ五段

古田が三段というのはまあいいとして、長嶋が五段というのは意外だ。 なんかいきなり怪しい段位に思えてくるから不思議だ。

[Soft] ncmpcの日本語表示

昨日の続き。 結局glib 2.4でも同じように化ける。IP3タグがSJISのせいかな。 DQ8が終わったら調べよう。


2004-11-29 (Mon)

[Perl] Perl 5.8.6

さっそくmake。いわゆる--enable-shared相当で。

% ./configure.gnu -Dccflags=-DDEBUGGING \
  -Dusedl=true -Duseshrplib=true
% LD_RUN_PATH=/usr/local/lib/perl5/5.8.6/i686-linux/CORE make

うーむなぜかmake testでforkが失敗する。いちおう

% export LD_LIBRARY_PATH=`pwd`:$LD_LIBRARY_PATH; cd t; ./perl harness

は全部通ったからよしとしよう。


2004-11-30 (Tue)

[Soft] MPDへSIGTERM

なぜか今日は mpdが立ち上がらない。 mpd.errを見ると

error parsing state file "/home/watanabe/mp3/playlists/mpdstate"

とあった。実は あれから

state_file              "~/mp3/playlists/mpdstate"

を追加していたんだけど、こうすることで

state_file <file>
       This  specifies if a state file is used and where it is located.
       The file path should be an absolute path.  The state of mpd will
       be saved to this file when mpd is terminated by a TERM signal or
       by the "kill" command.

のようにSIGTERMを送ればそのときの状態を保存できるようになる。

で、実際にmpdstateを確認してみるとplaylist_beginはあるが、 最後にplaylist_endがない。 /etc/rc.d/rc.6でkillall5 -15してるからちょうどいいやと思っていたが、 どうやら保存処理が間に合わないこともあるようだ。 shutdownの前に明示的にkillall mpdしよう。


<Prev(,) | Next(.)> | Recent(/)>> | RDF


WWW を検索 jarp.does.notwork.org を検索

わたなべひろふみ
Key fingerprint = C456 1350 085F A320 C6C8 8A36 0F15 9B2E EB12 3885
Valid HTML 4.01!