katsuwo's diary - かつを日記

先月 2003年11月 来月
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
HNS logo

2003年11月01日()

#1 飲み会

昨日は夕方から定例の飲み会がありました。
最近は研究室でお酒を飲むことがほとんど無くなったので、
久しぶりにおいしくお酒をいただくことができました:)

#2 read exerb-3.0preview1

debianize したついでに exerb-dev-ml に入ったのだが、
そのときの話の関係で exerb-3.0preview1 を読んでいます。

でも、ruby core の load まわりしか読んでいないので、
2.6.7 と何が大きく違うのか分かってないのですけどね(^^;

#3 pdumpfs-exclude

この前の話 をもう少し考えてみる。

match には def/ghi ではなく abc/def/ghi がいいような気がしているのだけど、
もう少し掘り下げて考えると、細かい挙動をどうしていいのか分からなくなってくる。
同じ階層に対して
% pdumpfs abc/def /tmp/backup
とした時は、match には何を使うべきなんだろうか。abc/def/ghi ? def/ghi ?

ここのルールがうまくまとまらないと実装にたどり着けないので、
もう少し考えてみることにしよう。

#4 [soccer] j-league in this weekend.

あれ、今週は J1 はお休み?

#5 Extension and extention.

今まで extension の spell を extention って書き続けてきている気がする…(汗
さっきふと気づいた。

穴を掘ってでも入りたい気分だ…(;_;

#6 rdtool

ずーっと rd で ((<hogehoge|IMG:hogehoge.jpg>)) と書きたかったので、
ざっと hack できないかと rdtool を眺めてみたのだが、
((<...|LABEL:...>)) という記法は racc で記述されているので、
拡張するためには rdtool 全体を変更する必要が出てくるようだ。
(実際、((<...|URL:...>)) というのは racc で hard code されている)

うう…ただでさえ抽象的すぎて読みづらい code なのに、これは辛すぎる…(;_;

rd2html-ext:

rd2html-ext というのを発見したので、
これを使えば問題解決のような気がする:)

debianize:

rd2html-ext は ここ で packaging されていたのだけど、
一つ古い version しか用意されていなかったので、
仕方なく手元で packaging してしまいました。
こういう時に source package まで用意してあると幸せなんですが、
このページではそういうことは余り考えていないようですね(^^;
自分用の package だとしても、version up のときに便利なんですが…。

ついでに、rd2html-ext が利用する image_size も packaging しておきました。

すぐ欲しい人は librd2html-ext-ruby1.8, libimage-size-ruby1.8 でどうぞ。
そのうちちゃんと 1.6 でも使えるようにした上で、debian ruby policy に従った
librd2html-ext-ruby, libimage-size-ruby という形に直しますけどね。

#7 debian ruby policy

手元には、debian ruby policy に準拠していない packages が結構あるようだ。
そのうち修正しないといけないなぁ。

しかし、これらの ruby1.6 user って果たしているんだろうか?
面倒だから ruby1.8 のみ support というのもありかしらと思ってしまうのだけど。
こういう時ばかり personal packages だしぃ、とか言い訳してみたいなぁ(笑

2003年11月03日(月)

#1 徹夜 hack

久しぶりに徹夜で hack してしまいました。

ある hp で RO の中で集まるという online meeting が開かれたのですが、
そのチャットをしながら裏でほそぼそと hack していました。

何をいじっていたかというと、mingplot を使って
ちょっとした graph を作っていました。
mingplot を使ってみた感想は、 という感じです。
単に graph が作りたい場合は mingplot を使うのは適切ではないのかも?
googleplot を参考にしているので、実はちゃんとした方法があるのかもしれません *1

iconv:

mingplot 内部では文字コードは utf-8 として扱われるので、
内部で他の文字コードを使う場合には iconv を使って変換する必要があります。
使い方はこんな感じ。入力文字コードと出力文字コードの順序に注意が必要です。
iconv = Iconv.new(dest, src)
output = iconv.conv(input)

*1: でも、document 無いんですよね…(;_;

#2 [soccer] 東海大学学園祭

oyaji 君に誘われて、東海大学の学園祭に遊びに行ってきました。
他の大学の学園祭に行くのって、高校の時以来です。

主にデザイン科の展示を見てきたのですが楽しかったです:)
最初に入った image2 という音楽サークルはなかなかで良かったですし、
他のデザイン系の展示もいい味出していました。
お化け屋敷だけは微妙でしたけど:p

その後研究室の見学ついでに屋台巡りもしてきました。
さすが総合大学で人があふれるほどにいますね。人種も性別も関係なく。

再来週がうちの大学の学園祭なのだけど、
果たしてこれに匹敵するような学園祭にできるのでしょうか?:p

#3 refe pacakge has broken.

う。昨日 packaging したやつおかしいっ!!
% refe
/usr/bin/refe:12:in `require': No such file to load -- refe/database (LoadError)
        from /usr/bin/refe:12
% dpkg -L librefe-ruby1.8
/.
/usr
/usr/share
/usr/share/doc
/usr/share/doc/librefe-ruby1.8
/usr/share/doc/librefe-ruby1.8/changelog.gz
/usr/share/doc/librefe-ruby1.8/copyright
/usr/share/doc/librefe-ruby1.8/changelog.Debian.gz
というわけで、re-packaging 〜。
同じ file に dh_movefiles を書けていたのが問題みたい。
一回 ok だと思ったのは手動で package したやつだったのかな。

#4 [soccer] antlers 0 - 4 reds

reds 側を応援していながらも、引き気味になってしまい
前線と中盤が大きく空いてしまうという展開を予想していたのですが、
まったくそんなことはなく、ここ最近の好調の攻撃的な reds でしたね:)
おかげで 1.5 軍構成の antlers は何もできずじまいでした。

しかし、田中達也はほんとに好調ですね。
このまま行けばアテネでも活躍してくれるんじゃ無いでしょうか:)

2003年11月04日(火)

#1 NIS2004 and HTTP_REFERER

nis2004 は default では HTTP_REFERER を送信しないようになっているようです。

そこで、特定のサイトに対してのみ HTTP_REFERER を送信するように設定します。
NIS の設定画面で [プライバシー制御] - [設定] - [拡張] と選択していき、
ドメインごとの設定をします。
referer を送るようにするには "表示したサイトについての情報" が
送信されるようになっていれば ok のようです。

最初は referer 情報を送っても構わないと考えていたのですが、
ということもあって、とりあえず monochrome.jp だけ許すことにしました。

#2 googleplot and trash

googleplot は swf files を生成するだけ生成して、
それを削除することはないようです。
邪魔すぎる…:p

2003年11月05日(水)

#1 jfile2csv

また半徹で hack してしまいました。

今度は jfile5 を parse して csv にするというものを書き始めました。
構造の資料が見つからないので、データをいろいろといじりつつ解析。

450 byte ほど何に使っているのかわからない領域がありますが、
展開に困らない程度の解析ができました。
また今度時間を取って hack すれば完成しそうです:)

2003年11月07日(金)

#1 徹夜徹夜徹夜。

ゼミの資料が完成してなかったので、久しぶりに研究室に泊まって作業しました。

#2 read code of ruby-core.

夜中に資料がある程度完成したので、息抜きに ruby-ext-module を作ってみました。

初めての ruby-ext-module.:

まずはなにもしない class を作ってみます。
class を作るには rb_define_class() を用います。
最初に Init_[モジュール名] という関数が呼び出されるので、
ここでは Init_hello() 内で rb_define_class() を呼び出します。
#include "ruby.h"

void Init_hello()
{
  rb_define_class("Hello", rb_cObject);
}

次に、extconf.rb を作成します。
extconf.rb は拡張ライブラリを compile するための Makefile を生成します。
ここでは無条件に create_makefile() を呼びます。
引数にはモジュール名を与えます。
require 'mkmf'

create_makefile('hello')
もし拡張ライブラリが他の libraries に依存する場合は、
have_library() などの関数で依存性チェックができるようです。

extconf.rb を実行すると Makefile が生成されます。
% ruby extconf.rb
creating Makefile
make すると hello.so が生成されます。
% make
gcc -fPIC -Wall -g -O2 -fPIC -I. -I/usr/lib/ruby/1.8/i386-linux -I/usr/lib/ruby/1.8/i386-linux -I.   -c hello.c
gcc -shared  -L"/usr/lib" -o hello.so hello.o  -lruby1.8  -ldl -lcrypt -lm  -lc
% ls
Makefile  extconf.rb  hello.c  hello.o  hello.so*

以上で完成です。
実際に object をつくってみるとこんな感じになります。
% ruby -rhello -e 'p Hello.new'
#<Hello:0x4027a290>

はじめてのメソッド定義:

object に対してメソッドを定義してみます。

まずはメソッドに対応する c function を作ります。
 VALUE hello_say_hello(VALUE self)
 {
   return rb_str_new2("Hello ruby-ext-module World!");
 }
ここでは例として hello world という関数を作ってみました。
rb_str_new2() は c の文字列から String オブジェクトを生成する関数です。

次に、いま作った関数をメソッドとして登録します。
メソッドとして登録するには rb_define_method() を利用します。
引数に クラス, メソッド名, 対応する関数, 引数の数 を取ります。
ここでは Hello クラスに say_hello というメソッド名で
引数を取らないメソッドとして登録します。
void Init_hello()
{
  VALUE cHello = rb_define_class("Hello", rb_cObject);

  rb_define_method(cHello, "say_hello", hello_say_hello, 0);
}

同様の手順で build して実行してみます。
% ruby -rhello -e 'p Hello.new.say_hello'
"Hello ruby-ext-module World!"
ちゃんと hello world と出力されていますね:)

はじめての global function.:

global function の定義には rb_define_global_function() を用います。
  rb_define_global_function("say_hello", hello_say_hello, 0);
同様に build して実行してみます。
% ruby -rhello -e 'p say_hello'
"Hello ruby-ext-module World!"

#3 bogofilter.

最近 spam mail が届き始めるようになったので、bogofilter を入れてみました。
% apt-get install bogofilter

bogofilter を利用するには、まず database を構築する必要があります。
database の構築には過去のメールを利用します。
spam mail を用意して、
% nkf -m -e | kakasi -w | bogofilter -s
とし *1 、 spam ではないメールに対して
% nkf -m -e | kakasi -w | bogofilter -n
として学習させます。

次に、.procmailrc で
:0 HB
* ? nkf -m -e | kakasi -w | bogofilter -l
.spam/
Header と Body を bogofilter でチェックし、
spam らしきメールを .spam/ に突っ込むように設定します。

しばらくの間は .spam/ の内容を見つつ学習させるようにすれば ok でしょうね。
学習をしていくようなので、学習に使うサンプル数が多いほど
判別率が上がるような気がします。

僕の場合は手元に spam mail が残っていなかったのと、
誤検知されるのを避けるために様子見で
:0 HBc
* ? nkf -m -e | kakasi -w | bogofilter -l
.spam/
という設定にして走らせることにしました。
(参考: Bogofilter - スパムとのたたかい )

*1: nkf, kakasi をかけているのは、日本語に対応させるためです。 bogofilter は分かち書きされていれば word として認識してくれるみたい:)

#4 rsync and exclude option.

rsync の --exclude option について調べてみました。
以下のような directory を用意した場合に、
% pwd
/tmp/experiment
% find abc
abc
abc/def
abc/def/ghi
abc/def/ghi/jkl
abc/def/ghi/jkl/mno
次のような指定をした場合、すべての directory がコピーされます。
% rsync -r --exclude abc abc/ dst/
% rsync -r --exclude abc ../experiment/abc/ dst/
% rsync -r --exclude abc /tmp/experiment/abc/ dst/
% rsync -r --exclude abc/def/ abc/ dst/
% rsync -r --exclude abc/def/ ../experiment/abc/ dst/
% rsync -r --exclude abc/def/ /tmp/experiment/abc/ dst/

ただし、rsync は src の指定によって揺れが生まれるようです。
% rsync -r --exclude abc abc dst/
% rsync -r --exclude abc abc/ dst/
前者の指定(最後に / を付けない)ではまったくコピーが行われませんが、
後者(最後に / を付ける)ではすべての directory がコピーされます。

また、最後に / をつけて src を指定した場合でも、
次のような指定ではすべての directory がコピーされます。
% rsync -r --exclude experiment ../experiment/abc dst/

summary:

rsync は最後に / が付く場合と付かない場合で挙動がかわり、
/ が付く場合は常に sub directory が matching の対象となるようです。
また、/ が付かない場合には File.basename(src) を含めた path が
matching の対象となるようです。
ただ、この / が付くか付かないかによって挙動が変わるというのは
使っていてとても理解しづらいのでこのまま採用するというわけにはいきませんね。

interview with koh.:

rsync user の koh を捕まえて、いくつか interview してみた。
その結果、彼には最初の pdumpfs-exclude が使いやすいことがわかりました。

full path と relative path の指定の違いを把握していれば、
意図をもって src の指定が出来るので control しやすいようです。
確かに理解した上で使い分けるのであれば問題ないような気がしますね。

結局、どうするのがいいのか、まだ決まらずにいます…。

#5 pdumpfs-win32/ntfs

pdumpfs-win32/NTFS が pdumpfs と別のものとして存在するというのは
非常にもったいないので、pdumpfs への patch としてまとめてみました。

…が、patch を作ってから気付いたのですが、
そのままでは pdumpfs-exclude と合わせて当てることができません。
しかも、pdumpfs-0.6 bugfix patch もうまく当たりません(^^;
これではほとんどうれしくないので、もう少しいじってから出すことにします。

というか、GPL とはいえ人のものをいじって release しようとしているんだから、
連絡ぐらいしないとまずいですね。
それに関しても明日やることにしよう。

#6 左ふともも痛

研究室で寝ている間にひねりでもしたのか、
左足のふともものあたりの筋を痛めてしまいました。
歩けないほどではないのだけど、じわじわと痛い感じです。

明後日ぐらいまで痛みが引きそうにない気がする…(;_;

2003年11月08日()

#1 pdumpfs-win32ntfs.

morioka さんのメールアドレスを見つけるのにちょっと苦労しました(^^;
メールを出したので返事待ちという状態です。

返事が来るまでに webpage を用意しておこう:)

#2 pdumpfs-exclude

pdumpfs-win32ntfs をいじっている時に気づいたのですが、
pdumpfs-exclude には bug があることが発覚しました。

option を使いする時に引数チェックのところをいじり損ねていたので、
--exclude option があるときに妙な挙動をします。
% pdumpfs --exclude test
/usr/bin/pdumpfs:89:in `parse_options': private method `sub' called for nil:NilClass (NoMethodError)
        from /usr/bin/pdumpfs:240:in `main'
        from /usr/bin/pdumpfs:255
% pdumpfs --exclude test /tmp
/usr/bin/pdumpfs:94:in `directory?': cannot convert nil into String (TypeError)
        from /usr/bin/pdumpfs:94:in `parse_options'
        from /usr/bin/pdumpfs:240:in `main'
        from /usr/bin/pdumpfs:255
さくっと直して 0.6.patch-3 を出しておきました。

#3 [soccer] Leeds-U. 1 - 2 Manchester-U.

いつぞやのカーリングカップの試合。

なんで 1.5 軍構成の united に leeds は負けるんだっ(;_;
アランスミスもかなり調子がよかっただけに、前半に突き放して欲しかったですねぇ。

Charlton 1 - 1 Arsenal:

もう一試合、先々週あたりの charlton - arsenal も見たのだけど、
あまりにつまらない試合でした…。

champions league の悪い流れをそのまま引きずってるじゃないか…(;_;

#4

塗装工事の関係で明日になるまでベランダに出られない予定だったのですが、
どうやら天候の影響で来週一杯ベランダに出られないようです…。

うう… EURO2004 playoff の放送が見られないのかっ(;_;
ついでに言えば、Premier も J1 も Foot! もみたいぞー(;_;

2003年11月09日()

#1 散髪。

すっきりぽん。

#2 [ragnarok] Lv80 〜

ちょこちょことやっていた LUK アサシンですが、ようやく Lv80 になりました:)

徐々に装備も整ってきたので LUK99 も射程圏内に入ってきました(Lv86 で達成)。
とはいえ、最近のペース(30-60min/day)だと達成は来年になりそうです *1
まぁ、のんびりやることにしましょう。

*1: 年末にかけて忙しくもなるだろうし。

#3 pdumpfs-win32ntfs

森岡さんに快く公開を ok して頂いたので、ようやく お披露目 です:)
同時に pdumpfs-ml にもアピールのメールを出しておきました。
これで forked version が大量生産されずに棲むと良いのですが…。

あとは時間を作って cvs version に対応させたいですねぇ。
VFile があるのでもしかしたら難しいかもしれません。がんばらないとー。

2003年11月11日(火)

#1 install visual c++ to arcturus.

おうちの pc に vc++ を入れてしまいました。
寝坊と雨で家で作業をしていたのですが、必要にかられてつい。

家で vc++ が使えるようになっていると、ますます研究室でしか
出来ない作業が減ってしまうのですよね…。
家から出ない口実になってしまわないように気を付けなくては。

2003年11月12日(水)

#1 packet unreachable life.

大学からまともに外に出られません…(;_;
 % ping -c 10 www.yahoo.co.jp
 PING www.yahoo.co.jp (202.229.198.216): 56 data bytes
 64 bytes from 202.229.198.216: icmp_seq=0 ttl=241 time=151.6 ms
 64 bytes from 202.229.198.216: icmp_seq=2 ttl=241 time=142.4 ms
 64 bytes from 202.229.198.216: icmp_seq=5 ttl=241 time=143.1 ms
 64 bytes from 202.229.198.216: icmp_seq=6 ttl=241 time=214.7 ms
 64 bytes from 202.229.198.216: icmp_seq=8 ttl=241 time=161.9 ms

 --- www.yahoo.co.jp ping statistics ---
 10 packets transmitted, 5 packets received, 50% packet loss
 round-trip min/avg/max = 142.4/162.7/214.7 ms
ひどいときは 100% loss します。
 % ping -c 10 www.yahoo.co.jp
 PING www.yahoo.co.jp (210.81.150.5): 56 data bytes

 --- www.yahoo.co.jp ping statistics ---
 10 packets transmitted, 0 packets received, 100% packet loss

これじゃ生活できないぃぃ。

#2 packet unreachable life - 2

家に帰ると、家も packet unreachable な状態になっているのでした…。

原因を調べると、 こんなもの が。
… 6 時間以上 flets 回線がダウンしたまま(しかも原因:調査中 :p)ですか(;_;
もう今夜はあきらめて寝るしかなさそうです:p

2003年11月13日(木)

#1 rotate arrow.

Windows 上で矢印を描画する必要が出来たので、いろいろ調べてみました。
…が、MFC ではそれらしい api は存在しないようです。

で、自分で DC を使って描画しようとしたのですが、
今回は矢印の向きが 360 度回転する可能性があるので、
矢印の旗の部分も回転させて描画する必要があります。
いろいろ式を立ててみたのですがなんだかうまく行きません…。
90 度と 270 度のところで長さが 0 になってしまいます。

うう…回転の式をもう少し見直さなくては…。

2003年11月14日(金)

#1 足痛い。

そう言えば、 先週 痛めた足の筋はまだ痛いままです。
歩いたり小走りになったりするのには支障がないのですが、
横になっているときちょっと痛むのでなんか嫌な感じです。

普段使わない箇所だから直りが遅いんでしょうか…。
病院行くことになるのは嫌だなぁ。面倒だし(^^;

#2 unreachable hours, again.

今日おうちで internet に接続されないと言う状態が起きました。
log からすると、一昨日と同じような症状だったようです。
今日は 3:00-17:30 の間が不通状態だったようです。(一昨日は 18:30-3:00)
一昨日のは ntt に障害報告が載っているのですが、今日のは載っていません。
3:00-7:00 というメンテナンス情報が載っているので、
これの副作用だったのかもしれませんね。

#3 学園祭

明日と明後日は学園祭なんだけど、ob や og はどれくらい来るんだろうか?
Q 社関係の人や kyou に久しぶりに会えるといいなぁ。

地震だ!:

…と 3:45 に発生した地震を感じている時点で、
明日ちゃんと研究室の集合時間に間に合う地震がかなり薄れてきています…(;_;

2003年11月17日(月)

#1 学園祭

この週末は学園祭でした。

今回は、速水研の宴会のために学園祭に参加したのかも(^^;
toshi と kyou と ikkun に会えたので満足です。
ちゃんと締めの打ち上げ花火も見ることが出来たしね:)

#2 [soccer] Scotland 1 - 0 Netherland

なんでこのメンバーで勝てないんだ…。

2003年11月20日(木)

#1 [soccer] Japan 0 - 0 Cameroon

俊哉が前に後ろにと大活躍でしたね:)
jubilo にいた頃の神出鬼没な動きが代表でも生かされていました。
ただ、周りとの連携はまだまだ磨き上げていかないといけないようです。

ただ、その周りは守備はともかく攻撃が全然ダメでしたね:p
サイドバックの二人があまり動かないので攻撃の駒が増えず、
サイドを使った攻撃もほとんど出来ていませんでした。
中盤のプレスでボールを奪いはしてもカメルーンの DF をほとんど崩せていないので、
シュートまでの形が全然作れていませんでした:p

もっと上がりの出来る SB をつれてくるか、
3-5-2 でチーム作りをした方がいいと思うんですがねぇ。
というか、今の alex は代表の SB というにはちょっとお粗末な気がします:p
守備しかしないのであれば、もっと強い DF がいると思うのですが…。

東アジア選手権:

さーて、海外組が出られないとしたらどうやってメンバーを組むんでしょうかねぇ。

今回出場した国内組って DF ラインと楢崎、遠藤、大久保だけなんですが。
MF, FW がほとんど抜けてしまって戦っていけるんでしょうか:p
せっかくの親善試合の交代枠、もっと使ってもよかったと思うんだけども。

#2 11/29

なんだか 11/29 は がかぶりそうな予感…(^^;

うう…どうすればいいんだ…。

2003年11月21日(金)

#1 unwired my home.

朝起きると、また packet unreachable になっていました。
寝ぼけ眼で調べてみると ADSL ダイアルアップルータに ping が飛びません。
ルータを reset することで通信できない状況からは復旧しました。
upstream でない場所で問題が起きていたのは、ルータがいけなかったのでしょうね。

ルータの故障について ntt に電話したところ、
設定をリセットして様子を見て欲しいと言われたので、
しばらく様子を見ることにします。
症状からすると設定の問題などではなく、修理が必要だと思うんだけどなぁ…。

熱対策:

電話しながらマニュアルに目を通していたら、
ルータの周辺にものを置かないで欲しいという記述を見つけたので、
熱暴走の可能性を思いつきました。

ルータの周辺にあったものをどけたので、熱が原因ならもう再発しない…かも。
どちらにしろ様子見ですね。

#2 pdumpfs-exclude

間がずいぶん空いてしまったけど、pdumpfs-exclude の挙動について結論が出ました。

pdumpfs の引数はユーザの意図が絡むもので、指定によって出力が変わるのではなく
出力を変えるために引数を変えているような気がしてきました。
その結果、--exclude option はユーザの意図を無視することがないように、
引数によって出力を変えて動作するのが自然だと考えました。
--exclude option はそれをくみ取って動作するのが好ましいと考えました。

結局、何も考えていなかった最初の仕様が一番よかったと言うことですね。

additional option.:

修正のついでに以前から欲しかった
--exclude-size
filesize によるフィルタ
--exclude-file
fnmatch を利用したフィルタ
という二つの option を追加しました。

2003年11月22日()

#1 おなかいたい。

昨日もちょっと調子が悪かったのですが、風邪を引いてしまったようです。
今日はおなかが痛くて布団からほとんど出られませんでした。

うう…こういうときは素直に寝るのが一番、ということで hack もしませんでした。
昨日作った pdumpfs-exclude を release しようと思ったのに…。

明日は元気に pdumpfs-win32ntfs の cvs 版も作りたいなぁ。

#2 [soccer] jubilo 2 - 1 gamba

先制されてさらに10 人の状況から逆転してしまうというのが jubilo の底力ですね。

しかし西が抗議でつまらない退場をしてしまったのは問題ですね。
次の marinos 戦に出られないのは辛すぎる…。

でも、来週勝てば優勝です。
今シーズンは難しいかな、と思っていたのですが
後少し手を伸ばせば届く場所にカップがあるじゃないですか:)

周りが捕まらなかったので来週の marinos 戦に行こうか迷っていたのですが、
今日の勝利でかなり吹っ切れた感じです。
売り切れる前にチケット買いに行かないと:)

purple sanga 0 -2 vissel:

あの出来じゃ降格するわけだ、サンガは。
vissel の堅守の前になすすべもありませんでしたね。
決定的なチャンスも DF, GK が体を張ってすべて防いでしまっていましたし。

反対に vissel はなんでこんなに負けてるのか理解できませんね。
攻撃力はなんとも言えませんが、守備はかなりねばり強く見えました。
今日の試合からは、大量失点し続けたのは想像できません。
実は不安定だったりするんでしょうか…。

2003年11月23日()

#1 new pdumpfs-exclude

おととい作った pdumpfs-exclude をようやく 公開

#2 [soccer] Jeff United 1 - 1 Trinita

優勝と残留のかかった熱戦でしたね。後半なんかは緊迫してとても面白かったです:)
前半は大分が優勢で、後半は Jeff の波状攻撃。
どちらも一点ずつ取ったところまでは良かったものの、そのあとが続きませんでした。

本来の Jeff ならば負ける相手では無かったんでしょうが…。
次は でないと優勝できないみたいなので、事実上優勝消滅ですね。

Reds といい Jeff といい、"負け" じゃなく "自滅" というのが悲しすぎます… *1

*1: しかも、繰り返し。 Jeff は 1st stage、Reds は去年の 2nd に同じことをやってますね。

#3 mail from webalizer

最近 webalizer を自宅に入れたのですが、
少し前から error mail が届くようになりました。
Error: Skipping oversized log record
Error: Skipping oversized log record
Error: Skipping oversized log record

どうやら access_log に長すぎる行があるのが原因 のようです。
ただ、うちでは ReallyQuiet yes にしても出力が変わらなかったので、
/etc/cron.weekly/webalizer の webalizer を実行している部分を変更して
強制的に何も出力しないように変更しました(-Q オプション)
${WEBALIZER_BIN} -c ${WEBALIZER_CONF} -Q

しかし、一行が長いと言っても worm が来ているわけではありませんから、
それくらいはどうにか読みとってくれないとあんまりうれしくないですねぇ:p

#4 mingchart

簡単に graph が作れる library がないかなぁと web を探していたのですが、
使いづらいと思っていた mingplot で graph を作るサンプル を見つけました。 正確には mingplot ではなく、そのベースとなっている mingchart です。

mingchart は
  1. chart = Mingchart.new(options)
  2. chart.add_data(data, index)
  3. chart.draw
  4. chart.save(filename)
の順で処理をすれば ok のようです。

pem2swf:

ということで、早速 pem2csv を利用して PEM のデータから
財布の状況をグラフ化する pem2swf を作りました。
名前はちょっと考えてつけ直すつもりです。

最初はカテゴリ名をグラフのラベルに使おうとしていたのですが、
libming が日本語に対応しておらず、文字化けしてしまうため断念しました。
カテゴリごとにグラフが出るといいなぁと思っていたのですが…。

現状では 1 週間ごとの がグラフになるようになっています。

サンプルプログラムとして、おもちゃとしては十分な出来かな:)
ささっとまとめて明日にでも見える場所に置くことにしましょう。

pem2csv:

pem2swf を作っている時に pem2csv の bug を発見。
これも明日直そう。

2003年11月24日(月)

#1 [soccer] Inter. 6 - 0 Reggina

完全に一方的なゲームでした。
reggina はああも周りに動きがないと何も出来ませんね。

この圧勝で 次の arsenal 戦(CL)に勢いが付いてしまうとかなりイヤですねぇ(^^;

#2 [soccer] Korea 2v - 1 Itary

ずーっと hdd で漬かっていた worldcup の korea - italy を観ました。

誤審は当時騒いでいたほどひどいジャッジはなかったような気がします。
判定の基準が揺れていたのは確かな気がしますが。

それはともかく、双方気合いの入った熱戦でした。
イタリアはお家芸の鉄壁の守備と素早い攻撃を。
韓国はタフさを活かした駆け回るサッカーを。
どちらも "らしさ" を出したサッカーを余すことなく
フィールド中で出し合ったすばらしいゲームでした。
最後には運とスタジアムを味方にした韓国が僅差で勝利をつかみ取りました:)

惜しむらくはイタリアは延長に入るタイミングで攻撃のカードを増やすべきでしたね *1
もしくは体力が落ちていた DF ラインに守備のカードを切るべきだったでしょう。
こういう試合で交代のカードを残して負けるというのは、すごく悔しいですよね。

ともかく、この大会の屈指の好カードだったのではないでしょうか。

Zico Japan.:

この韓国 - イタリア戦を見ながら、韓国と今の日本代表と比べていたのですが
当時の韓国と試合をしても勝てる気が全然しませんね。
中盤の主導権をプレスと圧倒的な体力で奪い取られてゲームセットが関の山でしょう。

それと、ヒディンクの賭とさえ言える攻撃のカード 3 枚切りのような交代の妙技は、
ジーコにはさっぱり期待できないなぁと思いました。
緊迫した試合で、リズムを変えるような交代が出来ないのは致命的です:p

これでいいのだろうか、日本は…(;_;

last match.:

あと hdd には一次リーグの Italy - Croatia が残るのみです。
当時の印象ではこの試合が一番の好カードだったと思います。

また暇な時に見ることにしましょうかね。

Ahn.:

*2 あー。このときのアンジョンファンはいい動きしてるなぁ。

なんで spulse ではあんなにキレが無いんだろう…(;_;
サポートが少ないのもセンタリングの精度が低いのも影響しているんだろうけど、
このときの輝きをもっと出して欲しいなぁ…。

*1: 当時の自分 も同じ意見だったみたいです。
*2: 修正: In 1125, s/SUN/SUB/.

#3 湯たんぽ

今年も寒くなってきたので秘密兵器湯たんぽを投入しました。
足先が冷たくなってしまう僕には幸福のアイテムです:)

お湯を沸かさないといけないのが面倒ですけどね:p

#4 debsums

debian unstable は頻繁に package の更新が行われるため、
tripwire のような integrity checker と相性が悪いと思っていたのですが、
debsums という package が integrity checker の役割を果たしてくれるようです。
% apt-cache show debsums
Package: debsums
Priority: optional
Section: admin
Installed-Size: 48
Maintainer: Brendan O'Dea <bod@debian.org>
Architecture: all
Version: 2.0.6
Depends: perl (>= 5.8.0-3)
Filename: pool/main/d/debsums/debsums_2.0.6_all.deb
Size: 16804
MD5sum: ac3bf6bdde8b32ca1908100f64c1f2bd
Description: Verify installed package files against MD5 checksums.
 debsums can verify the integrity of installed package files against
 MD5 checksums installed by the package, or generated from a .deb
 archive.
debsums は deb package に含まれる md5sum file を利用して
integrity check を行うようです。

時間がある時に使い方を覚えておかねば…。

注意点:

使いどころを誤解しないようにメモ。

用意された md5sum を利用してチェックをするので、
md5sum file が書き換えられた場合は正しく動作しません。
また、汚染された(信頼できない) package を install した場合でも、
debsums のチェックはパスします。

#5 pem2csv-0.9.5

昨日作った pem2swf を含んだ、pem2csv-0.9.5 を release しました
グラフ化すると自分の無駄遣いが解ってとってもイヤな感じがしますね:p

ついでに、おもちゃとして pem2swf_mcdonalds も置いてみました。
McD への依存度が非常に高いことが解りました…。
グラフにすると視覚化されてとっても辛いですね(;_; *3

*3: その辛さが無駄遣いへの抑止力となるのが目的の一つなのだけれども。

2003年11月25日(火)

#1 [soccer] ちけっと

今週末の marinos 戦のチケットを買ってきました。
これで jubilo が優勝するところが見られますね:)
スケジュールとお財布に厳しい感じですが、
最近まったく生で試合を見てないので今年最後と拝んでくることにします。

#2 mingplot-ml

せっかく pem2swf を作ったので mingplot@quickml.com に入ろうと思ったのですが、
いつの間にか expire してしまっていたそうです。

mingplot の使い方に関する突っ込んだ話が出来る or 聞けると思っていたので
ちょっとだけ残念です。

#3 debianize and official package.

手元で replacecjkfonts package を公開していることを
作者の Koji Nakamaru さんに連絡したところ、
webpage に link を張ってもらいました:)

うれしいなぁと最初は単純に喜んでいたのですが、
debian 的にはこれを personal tree に置いておくのではなく、
official tree に merge した方が幸せなんですよね。
official に含まれてさえいれば、"このサイトに" という紹介はいりませんからね。

せっかく replacecjkfonts は DSFG Free なんですから、
official package に入れられるように努力した方が
幸せになれそうな気がしてきました。

ちょっと時間を作って maintainer についての文書を読んでみようかなぁ。

とはいえ。:

論文書き終わるまでは手を出さない方が良さそうな気もします…。
現実逃避の候補地を増やすことになりそう怖いし(汗

2003年11月26日(水)

#1 libming-0.3a

libming が multibyte support していないかな、と libming-ml をのぞいていたら、
libming-0.3a が ひそやかに release されている のを見つけました。

…が、あいかわらず素直に build できません…。
libming-0.2a の debian/rules を使うだけでは あたりで error 出しまくりです:p libming 自体は build 出来るのですが。

肝心の multibyte support に関してはあまり進んでいないような印象を受けます。
斜め読みしかしていないのですが、 JaMing を知らない 時点であまり期待できないようです。
JaMing の作者さんは patch を投げたりしていないのかな? もったいない。

#2 pdumpfs-delicately

rwiki の backup 用に pdumpfs を利用しようと思い、backup の最小単位を
日付ごとから秒ごとにする pdumpfs-delicately を作りました。

pdumpfs-delicately は pdumpfs-rsync を参考にして
pdumpfs を wrap するように作りました。

#3 katsuwo in google.

日記の referer_log を見ていたら、katsuwo を検索してやってきた人がいました。

そこで、いったいどれくらいの rank にいるのだろうと調べてみました。
どうやらこのサイトは internet 上のサイトの中でも
4 位に位置する katsuwo ranker のようです。
ちなみに 1 位は BSD 使いの katsuwo さん のページのようです。
あの情報量にはどう逆立ちしても勝てない気がします…(^^;

ちなみに かつを ではずいぶん順位が落ちて 16 位です。
あいかわらず魚や "とんかつを〜" に負けているのは切ない気分にさせられます…。

2003年11月30日()

#1 [soccer] Marinos 2 - 1 Jubilo

昨日は直接横浜まで観にいってきました…しかし。
目の前で優勝をかっさらわれてしまいました。

引き分けで優勝が見えていた後半のロスタイムに入った直後、
ゴール前にあがったロングボール。
それを久保がちょんと触って、ゴール右上隅に吸い込ませてしまいました。
一瞬なにが起きたのか全然理解できませんでしたが、
マリノスサポーターの歓声でゴールが決まったことが分かりました。

確かに勝てそうにない、というのはずっと感じていたんですけどねぇ。
ボールをキープしても全然前に進めない。
センターサークルの少し前あたりでは横パスしか出来ずに、
パスを回させられていたし、クロスもシュートも全然でしたからね。

でも、こんなにあっさり決められるとは想ってもいませんでした(;_;
あーもーっ。悔しすぎるーっ(;_;

#2 Cocoroto Live @ O-West.

その後、一路渋谷に向かって亜紀さんの 10 周年ライブに参加してきました。

video clip(いくつかは album の booklet 用の撮影風景だと思う) と
それぞれの曲に対する亜紀さんのコメント video でスタート。
今まで video clip なんてほとんど出ていなかったと思うのだけど、
いったいこんなのどこに隠してあったんだろ?

live は基本的に best album である cocoroto に収録されている曲が中心でした。
cocoroto はまだ聴いていなかったので、違うアレンジでとても面白かったです:)

あらら…:

帰りに曲目リストを配っていたので目を通したのですが、
それによると "もう何にもいらない" は cocoroto には入っていないそうです。
今回のアレンジはとても気に入ったのになぁ。残念。

あと、最後の最後にやった COCOROTO は cocoroto(album) にも入ってないみたい。
タイトルを聞いて収録されていると思っていたので、こっちも残念〜。

まぁ、しばらくしたら live dvd が出ると言うし、それを待つことにしますかねー。

at home.:

家に帰ったら amazon で注文していた cocoroto が届いていました。

#3 GetVolumeInformation()

Windows であるドライブのファイルシステムを知るには
GetVolumeInformation() を使います。
  const char pathname[] = "c:\\";
  char szVolumeName[1024], szFSName[1024];
  DWORD dwVolumeSN, dwMaxComponentLength, dwFSFlags;

  GetVolumeInformation(pathname, szVolumeName, 1024, &dwVolumeSN,
                       &dwMaxComponentLength, &dwFSFlags, szFSName, 1024);

  printf("VolumeName: [%s]\n", szVolumeName);
  printf("FSName: [%s]\n", szFSName);
  printf("Volume S/N: [%ld]\n", dwVolumeSN);
  printf("MaximumComponentLength: [%ld]\n", dwMaxComponentLength);

これを ruby + win32api.so で実装するとこうなります。
require 'Win32API'

def get_filesystem_type(path)
  return nil  unless(FileTest.exist?(path))

  args = %w(p p l p p p p l)
  proc = Win32API.new("kernel32", "GetVolumeInformation", args, 'i')

  drive = File.expand_path(path)[0..2]
  buff = "\0" * 1024
  proc.call(drive, nil, 0, nil, nil, nil, buff, 1024)

  buff.sub(/\000+/, '')
end

手元で exerb + ruby180c.rbx を使って確認したところ、
問題なく動いているようです。
pdumpfs に取り込まれる前に、win32ntfs に fscheck を入れておこうかな。

#4 奥井亜紀 in store live at hmv machida.

hmv 町田で亜紀さんの in store live があるそうです。
前回 と同じように cd 購入者にはサイン会が付いてくるというやつなのかな?

昨日 amazon から届いた cocoroto は返品して、
hmv で買い直したいというアイディアを思いついたのだけど、どうしよう。

#5 yet another pdumpfs for NTFS

また pdumpfs の clone を 見つけた

これもベースは morioka さんのものなのですが、一点だけ違う箇所がありました。
それはこの箇所です。
  # incomplete substitute for cp -p 
  def copy(src, dest) 
    stat = File.stat(src) 
    File.copy src, dest 
+   File.chmod(0777, dest) # これやらないと次行でerrorが発生することがある (DQN.cc)
    File.utime(stat.atime, stat.mtime, dest) 
    File.chmod(stat.mode, dest) # not necessary. just to make sure 
  end 

どうやら permission が与えられている状態でないと
File.utime に失敗してしまうという bug のようです。

気になって実際に code を書いてみました。
#!/usr/bin/env ruby

begin
  filename = 'hoge'
  File.open(filename, 'w').close

  File.chmod(0000, filename)
  File.utime(0, 0, filename)
  File.chmod(0644, filename)

  puts "Normaly finished."
rescue
  print "Error:\n"
  print $!.to_s
end

gets
hoge というファイルを作成して、chmod 000 した上で File.utime します。
最後の gets はあとで exerb に書けた時に一瞬で終了しないためのものです(^^;

これを Linux 上で実行すると
% ruby -v hoge.rb
ruby 1.8.1 (2003-11-11) [i386-linux]
Normaly finished.

となります。
しかし、同じものを Windows 上で実行すると
Error:
Permission denied - hoge

となってしまいます。
やはり permission がない場合は File.utime に失敗してしまうようです。

update pdumpfs-win32ntfs:

この修正を pdumpfs-win32ntfs に取り入れました。

上のページでは chmod(0777, dest) していたですが、
一時的でも不要な permission を与えたくなかったので
chmod(0200, dest) と最低限の permission を与えることにしました。

ただ、自宅ではテストが面倒なので、明日研究室でテストした後 release します。
あ。修正ついでに fscheck も入れてみました。

#6 pdumpfs-exclude.

ちょっと前に見つけた bug である、
"作業中にコピー元のファイルを消すとエラーが出る" という問題を修正しました。

こっちはそのまま release。

#7 fix .namazurc on this diary.

この日記の namazu の設定が間違っていて、
検索結果の link が使えなかったのを直しました。

namazu.cgi で ?20030101... という link を辿ると IE では
namazu.cgi?20030101... にアクセスしようとするようです。
netscape では ?20030101... にアクセスするので気づきませんでした。

修正は簡単に
Replace         ?       http://www.monochrome.jp/~katsuwo/diary/?
を追加しただけです。

以上、20 日分です。
Powered by hns-2.10-beta7, HyperNikkiSystem Project

このページへの link はご自由に。 アンテナへの登録の際には di.cgi を使ってください。 RSS 使いは rss.cgi もどうぞ。