bird無線 LAN の遅延, エラー, sarge 移行(3), IPA フォント(3)

無線 LAN の遅延

我が家は PC 同士が全て無線 LAN (802.11b) で接続されていますが、先日試みに Web サーバが動作している僕の生活 PC から Linux router に対して ping を打ってその様子を観察していたところ1、他に通信がない状態では数十 ms 程度の遅延で収まっていたのに、裏で Web ブラウズしたりしてヘビーな通信を始めた途端、1000ms 以上の遅延がずっと続くような状況になりました。やっぱり無線 LAN は遅延が大きい?

ところで、

ping は 30ms で来るんだがな。

かぴのすけの 7/7 のコメントより引用

ping は我が家セグメントの入り口にある Linux router が直接返答しちゃってるんだから当たり前だよー。DP Reflector 行きの UDP パケットは無線 LAN 区間を通るけど、ping は通らないから…。

エラー

僕だけかもしれませんが、sarge に上げてからここへコメントを入れようとしたときに ruby がエラーを吐くことがありますね。
そんなときもいったん back してもう一回投稿ボタンを押すと大抵の場合うまくいくようです。なんでだろ?

sarge 移行(3)

そういや一つ書き忘れてました。sarge に上げた当初、X が起動してから kdm のログインダイアログが出てくるまでに、毎回数分以上かかる、という状態になりました。ログアウトするたびに毎回それだけ待たされるのでゲンナリしてたんですが、root になって一度「fc-cache -f」を実行したところ、その次の回からはごく普通の時間で表示されるようになりました。
僕の環境は DynaLab の 85 書体フォントパックとかがインストールされていて、たぶん普通の環境に比べると猛烈にたくさんフォントがあると思うのですが、それらを起動時に全部チェックにいくなりしていて遅かったようです。同様の症状でお悩みの方はぜひ(ってそんな人いねー・笑)。

IPA フォント(3)

等幅フォント比較 等幅版のフォント比較です。こうやってみると、日本語の字形自体は小さめに作ってあるのですね。元々懐の広い DF フォントはまぁ例外としても、MS Gothic と比較しても小粒な感じ。等幅版では英字のフォントもこじんまりとしているので、なんだかちょっとカワイイ感じです。こじんまりとしていながら、ピリオドなどではしっかり主張してるあたりがツボなのかも。

そういや、一番最初のサンプルとそれ以降のもので微妙にレンダリングの調子が違うのは、woody と sarge に含まれる freetype のバージョンが違うからでしょうね。

birdsarge 移行(2), IPA フォント(2), 新しい DMC-FX シリーズ

sarge 移行(2)

HDD からブートするようになったのはよいのですが、今度はブートプロセスの途中で止まる。どうも /etc/modules に書いているドライバがいけなかった模様。それまで、ALSA 関連の「snd-cs4281」「snd-pcm-oss」「snd-mixer-oss」「snd-seq-oss」を指定していましたが、これを「snd-pcm-oss」のみに変更しました。
どうして snd-pcm-oss を指定しているのかというと、KDE の sound system の設定が「自動検出」だとうまく動作しなかったのですね (明示的に ALSA を指定してもうまく動かないので、どうも ALSA との相性が悪いらしい)。そこで明示的に OSS を使うように設定したのですが、udev を使っていると snd-pcm-oss モジュールがロードされていない限り、/dev/dsp が存在せず、やっぱり sound system が動作しないのでした。そのため確実にロードされるようにしたわけです。
次に問題になったのが PCMCIA の無線 LAN カード1上のネットワークインターフェイスがうまく up 出来ないこと。時々成功するのですが確率的には3割ぐらいしかうまくいかない。Kernel はこれまでも 2.6 系を使ってきていたので、orinoco ドライバの問題ではなさそうで、すると wireless-tools とか pcmcia-cs、dhcp client (これまでは pump を使っていました) などを疑ってみる。
ログを見ながらいろいろ試していると、まず、wireless.opts の設定で Managed モードの時は channel は指定出来ないのですね。これまでは特にエラーも出ていなかったので昔 Ad-Hoc で使っていた時のまま channel も指定していたのですが、Managed モードでは AP からその辺の情報を受け取るものらしく、普通は指定しないらしい。のでコメントアウト。それから ESSID も明示的に指定していたものを any に変更。しかしどちらも根本的な解決にはならず。
次なる手として、pump を dhcp3-client に変更してみました。以前やっぱり pump を使っていた時に、どうにもうまくいかなくて dhclient を使うようにしたことがあり (理由は忘れてしまったのですが)、もしかしたら今回も、と思い試してみました。個人的には結構成功確率が上がったような気がする?とりあえずこれで様子を見ることにします。
さて。sarge では kernel 2.6 で sysfs/udev を使うのがフツーらしいので、udev をインストール (sysfs は始めからマウントされてました。sarge ではわざわざ /etc/fstab に書かなくても勝手にマウントしてくれるらしい)。単に udev パッケージを入れただけで特に問題なく動作しています。/dev 以下が大変すっきりして、USB Storage Device とか挿すと自動的に sda1 とか出来てくれたりして、大変よろしい。
sarge の hotplug パッケージは非常に強力なようで、これまで普段は使っていないのであえてドライバをロードしていなかった内蔵 LAN インターフェイス (eepro100) も勝手に見付けてロードしてくれます。が、これのおかげで普段使っている PCMCIA の無線 LAN インターフェイスが必ず eth1 になるようになってしまいました。ほとんどのプログラムは特に変更なく動作しているのですが、MRTG の設定だけ変更。
その他、これを機会にローカルの MTA を exim から postfix に変えたり、なんだか起動時に「i2c がなんたら」というエラーを吐きまくる lm-sensors2 やその他現在は使っていなかったパッケージ (noflushd や nfs 関係など) を軒並 purge。もう少し消せるパッケージがありそうだなー。
てなところです。

IPA フォント(2)

各種フォント比較 というわけで、新しい IPA Pゴシックと MS Pゴシック、それから僕がこれまでメインで使ってきていた DynaLab の DF 華康ゴシック W5 を並べてみました。アプリケーションは KOffice1.3 の KWord です。

こうやって並べてみると、IPA ゴシックの英数字はとてもゆったりとデザインされていることがよく分かると思います。かといって文章として見たときにバランスを乱すほどではなく。僕のぱっと見たところの印象としては、AXIS フォントにちょっとイメージが似ているな、と思いました。AXIS よりはずっと素朴で、ちょっと古い感じですけれども。

このサンプルはプロポーショナルフォントのものですが、等幅フォントもなかなかカワイイデザインなんですよ。

新しい DMC-FX シリーズ

コンパクト機でありながら光学手ぶれ補正を搭載する DMC-FX シリーズの新型が発表されました。スリム化された半面、微妙にレンズが暗くなってたりしますが、AF 周りの改善 (最大9点のマルチ測距や AF 補助光の搭載) や液晶の大画面化はちょっと羨ましい。AF については結構苦情がいってたとみた(笑。
ヴィーナスエンジンの改善点は高速化くらいしか書いてませんが、例のノイジーな画質が改善されてると良いですね。
新しい DMC-FZ3 もそうだけど、旧ラインのデザインポリシー (ちょっと武骨?) の方が僕は好きだなぁ。
追記。ITmedia に早くも実写サンプルがあがっていました。これを見ると、ノイジーな傾向は変わっていないようですね。FX7、FZ20 の 500 万画素ラインは特にノイズがひどいように見えます。FZ3 が一番まとも?両者とも画素ピッチ的にはそれほど変わらないはずなんですが…。

birdsarge 移行(1)

sarge 移行(1)

いよいよ sarge へ移行してみました。いい加減 woody ではちゃんと動かないソフトが出始めてきていたこと、IPA フォント公開を機にフォント環境を Xft1 から Xft2 へ移行したかったこと、などがその理由です。

いつものように /etc/apt/sources.list をごっそり sarge 用に切替え1、dselect から update、select を実行、更新されるパッケージを調べます。日頃使っている大事なパッケージが削除されないか、僕の場合は KDE3 関連パッケージがきちんと入るかどうかなどを確認しました。

一通り依存関係の解決が終わると、後は install するだけです。今回更新されるパッケージは総計 700Mbytes 超となりました。

install 中にいろいろ設定を要求するパッケージは適当にあしらって、とりあえず install はさっくり終了。さあとりあえずいったんリブート、と思って再起動してみると、なんと「LI」で止まってしまってブートしない。どうも僕がずっと使ってきていた lilo.conf の記述が古かったようで、それをベースに新しい lilo を実行した結果ブートローダーが壊れてしまったようです。

しょうがないのでエマージェンシーパーティション2から古い kernel を使いシングルユーザーモードでブート、lilo.conf を書き換えて再度インストールすることでなんとかブート出来るようになりました。

さて、Xft2 環境に移行したはよいのですが、Xft1 の時に使えていたフォントが軒並み見えない。Xft1 は /etc/X11/XftConfig でいろいろ設定しますが、Xft2 では /etc/fonts/fonts.conf、local.conf で行います。/etc/fonts/local.conf に下記のようにフォントパスを追加することで今まで通りのフォントが見えるようになりました。

 :  
 <dir>/usr/local/lib/X11/fonts/DynaLab</dir>  
 <dir>/usr/local/lib/X11/fonts/java2-awt</dir>  
 <dir>/usr/local/lib/X11/fonts/jim-mac</dir>  
 <dir>/usr/local/lib/X11/fonts/Xft</dir>  
 <dir>/usr/local/lib/X11/fonts/motoya</dir>  
 <dir>/usr/local/lib/X11/fonts/ipa</dir>  
 :  

Xft2 では、こちらのパッチを使うことで、一般的な日本語フォントのように bold や italic の字形が明示的に提供されていないような場合でも、擬似的にボールドやイタリックとすることが可能になっています。パッチ済みバイナリを deb として提供してくださっている方がいらっしゃいますので、sources.list に下記2行を追加後、update、install します。

deb http://ftp.arege.jp/debian-arege unstable xft fontconfig  
deb-src http://ftp.arege.jp/debian-arege unstable xft fontconfig  

次に、/etc/fonts/local.conf に下記を追加します。

 <match target="font">  
  <test name="weight" compare="less_eq">  
   <const>medium</const>  
  </test>  
  <test target="pattern" name="weight" compare="more">  
   <const>medium</const>  
  </test>  
  <edit name="weight" mode="assign">  
   <const>bold</const>  
  </edit>  
 </match>  

これでとりあえずボールドが表示されるようになりました。

その他いろいろありましたが、今日はもう遅いのでとりあえずここまで。

birdIPA フォント

IPA フォント

IPA フォントサンプル 各所で話題のフリーで再配布も可能な IPA フォントですが、僕も持ってきて少し使ってみました。噂に違わぬハイ・クオリティに驚き。デフォルトフォントとしてもなんの問題もないくらいの品質です。僕の場合は full screen antialias 環境なので、埋め込みビットマップなどは見てないですけど…。

bird最近、「剣」が面白くなった理由, 「すばらしい新世界」, 「バグズ・ライフ」

最近、「剣」が面白くなった理由

をよーく考えてみたら、みゆきさん望美ちゃんが出てくるようになったからかも…と思った。

「すばらしい新世界」

すばらしい新世界 風力発電用の風車を設計している一人のエンジニアが、ふとしたきっかけでヒマラヤの奥地にある貧しい村のための小さな風車を作ることになり、その出来事を中心に、家族のこと、信仰のこと、援助とは何か、ボランティアについてなどさまざまなことを考えるお話1。池澤夏樹さんの本です。

池澤夏樹さんと言えば、高校生の頃にすごく好きでよく歌った「ティオの夜の旅」という曲の詩が池澤さんでした。「夏の朝の成層圏」にある詩なのでしょうか (このタイトルと同じ歌詞も出てきます)、その詩は男性的で非常にスケールの大きい感じだったので、小説もそんな感じなのかなぁと思っていたのですが、この話はどちらかというと僕のようなまだ若い技術系エンジニアの身の丈視点で書かれていて、その点は少し意外でした。でも面白かった。

ちょっとテーマが散漫な感じだったりストーリー的にはいろいろ唐突だったりもしますが2、全体のトーンはとても優しく、理系的素養を持ちつつも、人間自身、さらに霊的なものにも健全な共感を感じる主人公に、僕もすっかり共感してしまいました。これまでの都市集中、中央集権的な流れから、風力発電は必然的に分散を要求する (自然エネルギーは密度が低いので分散させざるを得ないのです)、という話もよかった。そろそろそういうパラダイム・シフトが起こってもいい頃合いだと思うんですよね。

「バグズ・ライフ」

バグズ・ライフ 弟に、子供達用のプレゼントとしてもらった DVD をみんなで見ました。面白かった!

見終ってから考えたんですが、この映画の主張ってまさにガンジーさんの主張なのですね。フリックの「困るのはアリじゃない、バッタだ」とか「アリの方が本当はずっと力がある」というようなセリフも、ガンジーさんがインドの人達に言っていたことそのままのように思います。鳥作りの時もその後ホッパーに痛めつけられていた時も、フリックやアリたちは暴力に訴えませんでしたし… (脅すようなしぐさはしていましたが)。←思いっきりみんなで追いたててましたね(^^;。ガンジーさんはそういう性急な行動は戒めていましたが (実際の話でもそういう行動に出る若い人は後を立たなかったのだそうです)、まぁそこは映画なので劇的な展開の方を優先したんでしょうね。

子供達としては「虫から見ると雨つぶはすごく大きいものだ」という点がすごく新鮮だったようで、それ以降雨を見るたびに「ほんとにアリさん溺れちゃいそうだねぇ」と感心しています。あと、特典映像として入っている「ゲーリーじいさんのチェス」も何故かみんな大好き。

birdTALK MAN, referer spam(3), prefork の仕組み

TALK MAN

携帯機で動作する音声認識による通訳ソフト、っていうのはなかなか魅力的かもしれない1。当初は認識率も低いだろうし認識語彙も少ないだろうけど、着実に成長 (TALK MAN 2 『帰ってきたアホウドリ』、TALK MAN 3 『アホウドリの逆襲』、etc…) させていったら結構面白い存在になるような。今までそれほど PSP 欲しくなかったんですが、これのために買ってもいいかも、と思わせるソフトです。個人的期待大。

referer spam(3)

またやってきていますが、フィルタルールを下記のように変更してみました。

# antispam.  
    SetEnvIf Referer "pussy" Spammer  
    SetEnvIf Referer "sex" Spammer  
    SetEnvIf Referer "porn" Spammer  
    SetEnvIf Referer "bestiality" Spammer  
    SetEnvIf Referer "beastiality" Spammer  
  
    Order deny,allow  
    Deny from env=Spammer  

「sex」や「porn」が含まれたドメインからはリンクが張れなくなりますが、まぁ実害はないでしょう。

prefork の仕組み

apache 等の prefork daemon の基本的な仕組みって、

  • socket を listen するところまで親が行って、
  • だだだと fork して、
  • みんなで一斉に accept する。

って感じなんですね。細かいところではいろいろと気を付けなくてはいけないポイントがあるのかもしれないけど…2

動作確認に使った簡単なプログラムは下記の通り。

#include <stdio.h>  
#include <stdlib.h>  
#include <unistd.h>  
#include <sys/types.h>  
#include <sys/socket.h>  
#include <netinet/in.h>  
  
#define PORT_NUM 10000 /* 10000 番ポートで待ち受け */  
  
int main(int argc, char *argv[]) {  
    struct sockaddr_in me;  
    struct sockaddr from;  
    socklen_t fromlen;  
    int sd, opt, fork_count, fd;  
    int ret, i;  
    char buf[8192];  
  
    if (argc < 2) {  
        fprintf(stderr, "usage: %s FORK_COUNT\n", argv[0]);  
        exit(1);  
    }  
  
    fork_count = atoi(argv[1]);  
  
    /* socket を準備 */  
    sd = socket(AF_INET, SOCK_STREAM, 0);  
    if (sd < 0) {  
        perror("socket");  
        exit(1);  
    }  
    opt = 1; // 'true'  
    ret = setsockopt(sd, SOL_SOCKET, SO_REUSEADDR, &opt, sizeof(int));  
    if (ret != 0) {  
        perror("setsockopt");  
        exit(1);  
    }  
    memset(&me, 0, sizeof(me));  
    me.sin_family = AF_INET;  
    me.sin_addr.s_addr = htonl(INADDR_ANY);  
    me.sin_port = htons(PORT_NUM);  
    ret = bind(sd, (struct sockaddr *) &me, sizeof(me));  
    if (ret == -1) {  
        perror("bind");  
        exit(1);  
    }  
    ret = listen(sd, SOMAXCONN);  
    if (ret == -1) {  
        perror("listen");  
        exit(1);  
    }  
  
    /* 指定された回数だけ fork */  
    for (i = 0; i < fork_count; i++) {  
        ret = fork();  
        if (ret < 0) {  
            perror("fork");  
            exit(1);  
        } else if (ret > 0) {  
            break;  
        }  
    }  
  
    /* main loop */  
    for (;;) {  
        memset(&from, 0, sizeof(from));  
        memset(&fromlen, 0, sizeof(fromlen));  
        fd = accept(sd, &from, &fromlen);  
        if (fd < 0) {  
            perror("accept");  
            exit(1);  
        }  
        for (i = 0; i < 3; i++) { /* 3回だけ recv */  
            memset(buf, 0, sizeof(buf));  
            ret = recv(fd, buf, sizeof(buf), 0);  
            if (ret < 0) {  
                perror("recv");  
                exit(1);  
            }  
            printf("pid=%d, msg=%s\n", getpid(), buf);  
        }  
        close(fd);  
    }  
  
    return 0;  
}  

調査&コーディングで1時間くらい。しかしこの程度のちょっと調べれば分かる知識をありがたがって囲い込んでると、本当に価値のあるモノが見えなくなっちゃうぞ>誰となく。

bird次世代 PS は年度内発表、来年の E3 で実機公開, 先週のデカレンジャー, PSX アップデート延期

次世代 PS は年度内発表、来年の E3 で実機公開

だそうな。PS2 の時と同じようなスケジュールですね。来年の年末商戦に間に合うか、また春に延びるか。

先週のデカレンジャー

は、なんだかいつもよりも特撮のクオリティが高かったような。監督の違いでしょうか。それにしても、ジャスミンの回はどうも切ない展開になりがちですね。今回もジャスミンファンは必見!な内容だった…。ヘヴィメタしょって登場する悪役、ってのも素晴らしい。
そういや仮面ライダー剣 (ブレイド) も、睦月と上級アンデッドのみゆきさんが現れてからちょっと面白い感じ。みゆきさんはもうすぐ死んじゃう (封印されちゃう) 予感がぷんぷんしますが、個人的にはもっと活躍して欲しいなぁ。

PSX アップデート延期

7/15 から 8/3 へ3週間の延期。がっくし。

birdインフォ・マイカ続報

インフォ・マイカ続報

うーん、NTT 本気だ。しかし NTT 自身がデバイスまで作るわけじゃないだろうし、どこが製造を担当するんだろう。ここは絶対味方にしておいた方がいいと思うんだけど>Sony 他製造メーカー各社。Blu-ray vs HD-DVD とかやってる場合じゃないですよ。「光ディスク」という概念自体が古くなっちゃうかもしれないんだから…。

bird「ブラッド・ミュージック」

「ブラッド・ミュージック」

ブラッド・ミュージック 珍しく再読。最初に読んだのはエヴァンゲリオンの13話「使徒、侵入」の元ネタはコレかもね、なんて話を fj (!) で読んだのがきっかけでしたから、1996 年頃でしょうか。ストーリーの大まかな流れは覚えていたんですが1、その他の細かい部分はほとんど忘れていたので結構楽しめてしまった。こんなパニック小説だったっけなぁ。今読むとこないだ読んだ「ダーウィンの使者」はまさにコレの焼き直しであることがよく分かる (とはいえ僕は「ダーウィン」の方が好きだな)。シモンズベアさん的には「ダブル・クラウンの夢よ再び」的な面もあったんだろうか…(←やな奴)。

情報力学とか、宇宙の法則のくだりなんかはちょっとイーガンとの類似を見たりしました。しかしまー最近の物理学の動向を聞きかじってると2、宇宙に対する絶対的なイメージは持ちにくくなってきてますよね…。

2006/1/14 追記。この本の作者はグレッグ・ベアさんであってダン・シモンズさんではないではないぞ>過去の俺。これを書いたときの俺は目ぇ開けて寝ぼけてたのか。

birdUDP Reflector 改め DP Reflector

UDP Reflector 改め DP Reflector

結局、再送処理等に関していろいろ考えているのが面倒になってきたので1、UDP/TCP を混在させて利用可能な形にすることにしました。クライアントはアプリケーション側の要求やいろいろな制約を鑑みてどちらのプロトコルでも好きなように利用できます。DP Reflector の DP は Dual Protocol の DP なのだ(笑。
つまり、完全性や順序性が欲しいアプリケーション (または個々の通信要求) は TCP を使えばいいし、そういったものはいらないのでもっと性能が欲しい場合は UDP を使えば良いと。DP Reflector 側では UDP 時には完全性や順序性を一切保証しませんので、もし UDP を使いつつそういったものが (多少なりとも) 欲しい場合はアプリケーションレイヤーで作りこむ必要があります。
TCP でのやりとりのために追加になったコードと、再送処理が必要なくなったために削除したコードの分量はほとんど同じくらいか、多少前者の方が多いかな、という程度。UDP 版、TCP 版のテストクライアントも含めてありますが、かなりシンプルになったように思うのですがどうでしょうか?
再送処理がなくなった関係で、パケットフォーマットが少し変更されています (シーケンス番号フィールドがなくなった)。また、TCP ストリーム上へのパケットの乗せ方の仕様も追加になりました。さらにチャネルに参加しているクライアントのリストを得る LIST コマンドも追加になっています。
今回も www.digitune.org の 15315 番ポート (TCP/UDP とも) で動かしておきますので、テストにでも使ってくれい>かぴのすけ。
ナチュラルに inner-inner-class を使ってしまった…。うひょー。

First | Prev | 430 | 431 | 432 | 433 | 434 | Next | Last