what's new

[コメントを書く]

2002/12/24

家では CD 聞くのにも PS2 を利用しているのですが (光デジタル端子を AV アンプに入力しています)、今日不思議な現象に出会いました。たまたま CD を聞いている時にテレビ側 (こちらも AV アンプから取っています) の音量を出していたら、テレビのスピーカから出て来る音とアンプ直結のスピーカから出て来る音が1秒くらいズレているんです。最初は「変なエコーがかかってるなぁ」くらいに思ってたんですが (気づけよ)、よくよく聞いてみてびっくり。これまでテレビの音しか聞かないでゲームしたりスピーカの音しか聞かないで DVD 見たりしていても全然気づきませんでした。いや、でも両方とも出しながら見た/やったこともあったはずですが、その時はそんなにズレてなかったはず…。アンプの電源を入れなしても変化なしでした。演奏を止める時などの効果音は遅れません。これらのことからなんとなく一番ありそうなのは、

てな感じでしょうか。何をどうしたら1秒ものディレイが生じるようにプログラム出来るのかは謎ですが…。BB Navigator は鬼門だなぁ、SCEI にとっては。

2002/12/22

実はずいぶん前から使っていた掲示板を公開。コメント等にご利用ください。

ちょっとヤバめの投稿があった過去ログはローカルに保存後削除しました。入り用ならば連絡すべし>カピさん、白猫さん

先日今年最後の「プレプレ2」が家に届いて、いつもよりも盛り沢山な、とはいえたぶん先日の GAME SHOW でのものと思われるデモクリップや体験版満載なそれを試してみていたのですが…。

ちなみに「プレプレ」とは、プレイステーションクラブ、という年会費5800円 (結構高いっすね…) のプレイステーションのファンクラブのようなところに登録すると、年4〜6回ほど体験版などの詰まった DVD が送られてくる、というサービスの、その DVD の名前です。いろんなソフトの体験版が入っているので、結構購入の目安になるんです。ここ何年か買ったソフトはほとんどコレの体験版を見て気に入ったから、だったりする。

まず「サクラ大戦」。これまで「結構売れてる作品」、「セガはスクウェアの FF みたいにこれだけとりあえずシリーズ化して売ってれば安泰」などという話はいろいろ聞いていたのですが、実際にプレイしてみるのは初めてでした。が…はっきり言って失望。コレが売れる理由が僕には全く分かりません。LIPS だかなんだか知らんけど名前つければ陳腐なアイディアもそれらしく聞こえる、ってか。アニメ、として見ても、オーバーアクト気味の声優に対して口と目のパーツくらいしか動かない立ち絵の不気味さ。みんなどうしてこれを我慢してプレイできるのかさっぱり理解不能。ストーリーの展開やキャラクターがどんなに魅力があったとしても (この体験版で得られる情報からすると、そのどちらもぜーんぜん大したことはなさそうですけど)、こんなシステムには我慢出来ない。たとえ10年前のゲームだったとしてもノーサンキューって感じだ。

次。「テイルズ・オブ・デスティニー2」。これも…古臭い。よく言えば「すでに完成した RPG というシステム上に、よくできたシナリオとちょっとしたスパイスを追加したような作品」とも言えるのかもしれないが (シナリオがよく出来ているかどうかは俺は知らんが、とりあえず好意的に捉えてみる)、全体的なビジュアル、システム双方のデザインが古い。物語として語られるモノのイメージと、それらビジュアルやシステムから得られるイメージがあまりにも乖離している。このミスマッチには堪えがたい。

さて、次は「ZOE」。正式には「ANUBIS ZONE OF THE ENDERS」というらしいですが、長いので「ZOE」と省略 (正確にはこれも「ZOE2」と書くべきなのかもしれませんが、KONAMI のサイトを見てもどこにも「2」の文字は出てこないので…・笑。ただインタビューには「前作」という発言がありますし、前作の主人公も今回ビックバイパーに乗って登場するらしいので完全に葬り去られたわけではない模様)。これはスゲーです。基本的な操作すら何がなんだかわけ分からん状況でもそれらしく、かっこよく闘えてしまう素晴らしさ。ゲームパートとムービーパートの切れ目のない連続感。この辺は MGS シリーズで培われた技術がきちんと反映されているように感じ。この作品にどれくらい小島監督がかかわっているのかは知りませんが、「スナッチャー」以降の彼の作品を見てきて感じることは、相変わらず技術と表現の繋ぎ方がうまいなぁ、ということ。「見せたいもの」と「使える技術」のバランスが非常に良いため、ゲームをプレイしている側もすんなり主人公の立場に移入出来る。たぶんアーティスト側が妥協してる部分も多々あるんだろうなぁとは感じつつ、その双方が歩み寄って非常によい落とし所を見つけている感じ。この手の作りのゲームでは小島監督は頭二つ分くらい抜けて出ている感じがしますねぇ。

比肩するのは「ICO」ぐらい? (ひいき目・笑)

その他の小粒のゲームには特に感銘を受けず。「ダーク・クロニクル」もあんまり。制作者側のパワーは感じますけどね。なんとなくパワーはスゴイが小粋さには欠ける、連載初回で 100p 書き下ろしちゃう漫画家 (誰とは言いませんが) なんかに通ずるモノを感じる。個人的にイマイチ。

2002/12/08

トヨタ・カローラの CM で使われている、「クレモンティーヌ」というクレジットが入る曲は中島みゆきの「横恋慕」のカヴァーではないですか。懐かしすぎて涙が出るぞ。無茶苦茶好きだったんだよなぁこの曲。

ギャーン!今トヨタのページで調べたら、「横恋慕」じゃなくて「悪女」だった!うそー。この2曲を間違えるなんてちとショックスギ。凹む〜。サイトの QuickTime Movie を改めてみたら、やっぱり「悪女」だった。「横恋慕」好きスギで空耳アワーだったのカモ。アウ。

2002/11/18

11/14 のところに書いた UDP による NAPT 越えの件ですが、簡単な実験をしてみました。ウチで利用している Internet 回線は会員に private アドレスを配っているタイプなのですが、そこへぶら下がったホストと、global アドレスを普通に得られるプロバイダにぶら下がっているホストとの間で UDP によるメッセージ交換を試みました。

まず、利用したプログラムは下記の通り。

import java.net.*;
import java.util.*;
public class UDPTest {
    private Hashtable peers = new Hashtable();
    private DatagramSocket dsock = null;
    private class RecvThread extends Thread {
        public void run() {
            try {
                byte[] tmpbuf = new byte[8192];
                while (true) {
                    DatagramPacket dp
                        = new DatagramPacket(tmpbuf, tmpbuf.length);
                    dsock.receive(dp);
                    int port = dp.getPort();
                    InetAddress addr = dp.getAddress();
                    byte[] buf = new byte[dp.getLength()];
                    System.arraycopy(tmpbuf, 0, buf, 0, buf.length);
                    String key = addr.getHostAddress() + ":" + port;
                    String value = new String(buf, "UTF8");
                    peers.put(key, buf);
                    System.out.println("RECV:" + key + ":" + value);
                    if (!value.startsWith("RE")) {
                        StringBuffer strbuf = new StringBuffer();
                        strbuf.append("RE");
                        for (Enumeration e = peers.keys();
                            e.hasMoreElements(); ) {
                            String k = (String) e.nextElement();
                            strbuf.append(":");
                            strbuf.append(k);
                        }
                        byte[] data = new String(strbuf).getBytes("UTF8");
                        DatagramPacket dp2 = new DatagramPacket(data
                            , data.length, dp.getAddress(), dp.getPort());
                        dsock.send(dp2);
                    }
                }
            } catch (Exception ex) {
                ex.printStackTrace();
            }
        }
    }
    private class SendThread extends Thread {
        private InetAddress addr = null;
        private int port = 0;
        public SendThread(InetAddress addr, int port) {
            this.addr = addr;
            this.port = port;
        }
        public void run() {
            try {
                byte[] data = InetAddress.getLocalHost().getHostName()
                    .getBytes("UTF8");
                DatagramPacket dp = new DatagramPacket(data, data.length
                    , addr, port);
                while (true) {
                    dsock.send(dp);
                    sleep(5000L);
                }
            } catch (Exception ex) {
                ex.printStackTrace();
            }
        }
    }
    public UDPTest(int p1, InetAddress address, int port) throws Exception {
        dsock = new DatagramSocket(p1);
        new RecvThread().start();
        new SendThread(address, port).start();
    }
    public static void main(String[] args) throws Exception {
        if (args.length < 3) {
            System.err.println("usage: java UDPTest [port] [address] [port]");
            System.exit(1);
        }
        int p1 = Integer.parseInt(args[0]);
        InetAddress addr = InetAddress.getByName(args[1]);
        int port = Integer.parseInt(args[2]);
        new UDPTest(p1, addr, port);
    }
}

まず、global アドレスを持つホスト上で以下を実行。

$ java UDPTest 30000 [自ホストの IP アドレス] 30000

次に、private アドレスを持つホスト上で以下を実行。

$ java UDPTest 30000 [global ホストの IP アドレス] 30000

この段階で、双方のコンソールには例えば次のようなメッセージが流れ始めます。

RECV:aaa.bbb.ccc.ddd:30000:RE:xxx.yyy.zzz.www:51861:aaa.bbb.ccc.ddd:30000
RECV:aaa.bbb.ccc.ddd:30000:RE:xxx.yyy.zzz.www:51861:aaa.bbb.ccc.ddd:30000
RECV:aaa.bbb.ccc.ddd:30000:RE:xxx.yyy.zzz.www:51861:aaa.bbb.ccc.ddd:30000

30000 で開いているはずの port が global 側から見ると global アドレス (NAPT サーバ) の 51861 に変換され、正常に UDP のやりとりが行えます。ここで、さらに private 側で次を実行します。

$ java UDPTest 30001 [global ホストの IP アドレス] 30000

するとさらに次のようなログが流れます。

RECV:aaa.bbb.ccc.ddd:30000:RE:xxx.yyy.zzz.www:51861:aaa.bbb.ccc.ddd:30000:xxx.yyy.zzz.www:51148
RECV:aaa.bbb.ccc.ddd:30000:RE:xxx.yyy.zzz.www:51861:aaa.bbb.ccc.ddd:30000:xxx.yyy.zzz.www:51148
RECV:aaa.bbb.ccc.ddd:30000:RE:xxx.yyy.zzz.www:51861:aaa.bbb.ccc.ddd:30000:xxx.yyy.zzz.www:51148

後から開いた 30001 の port も、global では 51148 で開かれているように見えます。

ところが、ここで例えば global 側のホストで以下のように実行すると、

$ java UDPTest 30001 xxx.yyy.zzz.www 51861

残念なことに「UDP Packet が送れない」という、TCP で言うところの Connection refused 相当のエラーが出てしまいました。その後いろいろ組み合わせて調べてみましたが、結局、「ある DatagramSocket の NAPT エントリは、その Socket から最初に外の向けて発信された UDP Packet の宛て先 address/port の組からの Packet のみ受信し、それ以外は全て通さない」という状況でした。また、内側の同じ Socket から外側の別の port に対して packet を投げると、NAPT サーバ上では違う port 番号から発信されたように見え、つまりは結局 UDP の NAPT の場合も宛て先 address/port の組以外からの packet は受け付けない、という挙動が一般的なようです。が〜っかり。

考えてみると、世界中の P2Per の頭を悩ませている NAT 問題が、そんなにあっさり片づいてしまうわけがないのだよなぁ。問題は、NAT 下にいるホスト同士が router や global ホストの恒久的な援助を受けずにお互いに直接通信出来るか、ということなわけだけど、これはどうやら無理っぽい。となると、例えばこんなアイディアはどうだろう?

global node - private node 間は何の苦もなく直接通信出来るわけで、だとすれば、global node と private node がうまく交互に配置されるよう、P2P ネットワークを組んでみたらどうだろう?かつて僕が書いたアイディアや winny でのそれのように基本的に tree 型でネットワークを組むとすると、トップノードから接続ポイントを探して下流へ下る際に、global node は private node に、private node は global node に優先的に繋がるようにしてみたらどうでしょうか?private node の方が数が多いとうまくいかないけど、今の世の中的にはどうなんだろうか?

とかなんとかいろいろと妄想していると夜は更けていくのであった…。

2002/11/16

ここのところ急に spam の数が激増しました (これまでは日に1通あるかないかくらいだったのが、コンスタントに10通くらい来ます)。もともと whois に登録されてるアドレスだったりするのである程度の spam はしょうがないと思っているのですが、これだけ多いとさすがに手で処理するのがめんどくさくなってきた。そろそろ何らかの spam filter を導入しようかなぁ。やっぱり spamassassin

2002/11/14

ちょっと前の話になりますが、FFXI に関するこの記事を読んで思ったこと。

何より驚いたのは、ゲーム中の通信がほとんど UDP で行われている、というくだりです。確かに PlayOnline では 50000 番以上の port の UDP を利用する、とされていましたが、NAT/NAPT 環境への対応などを考えると、現実的には TCP を使うしかない、と思いこんでいました。ところが FFXI がこれだけいろいろな環境で動いているということは、巷の private アドレスを利用しているようなプロバイダでも、UDP の NAPT をかなりの確率で行っているのだということの証拠に他ならなく、これには非常に驚きました。

例え 50000 番以降とはいえ、UDP の NAPT をほとんどのプロバイダが行っているとすると、例えば P2P 系ツールでの Firewall 越えの問題がほとんど片づいてしまう可能性があります。内側からの接続要求しか基本的に通さない TCP の NAPT (IP マスカレード) と違い、UDP の NAPT は NAPT サーバ上にエントリが残っている限り、どこから来たパケットでも内側の UDP Server へ転送してくれます。ということは例えば、Internet 上のどこかにあるレジストリサーバへ UDP パケットを一定間隔で投げ続けていれば、そのレジストリサーバへ到達したパケットの送信元へパケットを投げ返すことで、Firewall の内側にいる相手に誰でもパケットを届けることが可能になるわけです。

む。外部→内部なパケットでは受け付ける送信元アドレスを制限するような、制限された NAPT なるものがもしかして存在したりする?そういうものが一般的だったりするとこの推論は大外れということになりますね。

あくまで UDP ということで信頼性を確保したい場合にはいろいろと工夫しなければならないでしょうが、逆に信頼性がいらないような通信 (冗長性のあるデータのストリーミングなど) にも対応でき、意外にイケてるかも。かも。かも。full UDP の P2P フレームワークを作ったら面白いかなぁ。

ところで 2ch 発の P2P ツール、「Winny」の技術解説を見ていると、そのネットワークトポロジーが tree 型である点やネットワークに対して貢献度の高いサーバが自動的に上位へ上がっていく構造などが、かつて僕が Jnudev ML で書いたラフ・アイディア (メンバーにならないと見られないかも) に似ていて非常に興味深かったり。細部をオープンにしてくれれば開発に参加できるのになぁ。

2002/11/13

ようやっと (β版ながら) Flash Player 6 for Linux ががが。6 から内部が Unicode 化されているだけあって、これまではバケバケだったダイナミックテキスト周りが Linux でもようやっと表示可能に。しっかしそれ以外のところでバグだらけだぞこりゃ。結構マジでちゃんとバグレポートしないといろいろ苦労することになりそうですよ>Flash Creator 各位。

会社の激っ速 Pentium4 マッシーン (リキ、入ってます) で気合いを入れて実行してみた昨今話題のこちら。最初はまともに起動すらせず。DirectX8.1b と ATI のサイトから落としてきた最新版ドライバをインストールすることで何とか動作するようになりましたが、ビデオカード (Radeon VE) が思いっきり足を引っ張っているらしく、2600 そこそこという結果となりました。せっかくの Pentium4-2.53GHz が泣いてるぜぜぜ。

微妙に思考がチャタってるのは仕事で脳味噌が疲弊しているからです。はひ。

各所で話題になっている新しい Linux Zaurus ですが、僕としては携帯 ogg player として欲しいっ!!ここの記事によると、前モデルの A300 でも (あの重いと言われている) ogg の再生がなんとか可能だったみたいですので、CPU が倍速化されている今回のモデルではラクショーではっ?!と期待してしまいます。PocketPC でも ogg player があればいいんですけどねぇ。非常にありそうなんですけどねぇ、今のところ見つけられていないんですよねぇ。どなたかご存じですかぁ?(←なんだその気合いの抜けたしゃべり方は)。

今さらのように「闘うプログラマー (原題:SHOWSTOPPER!)」を読みました。最後の方の、プロジェクト完了間近なシーンでは電車の中で思わず泣きそうになりましたよ。すげぇ。すげぇぜ、カトラー先生。それにしても常日頃「ひどい設計だなぁ」と思っていたマイクロソフトネットワーク系のコードがやっぱり場当たり的に作成されたというくだりを読んでひざを叩いたのは私だけではあるまい。

ところでチャタってる、ってのは一般的な言葉ではない?工学部出身者にしか分からない隠語なのだろーか。意味は、「スイッチの接点が off から on へすぱっと切り替わらずしばらく on/off の間を振動する現象 (チャタリング)」から、同じ文字や言葉がマックスヘッドルームみたいに繰り返されるさまを指して「チャタる」と、僕は使っているんですが、あれ、これっていわゆる俺語、ってやつ?俺って俺語が人以上に多い気がするなぁ。気をつけねばねば。

ユースケサンタマリア主演の「アルジャーノンに花束を」で、挿入歌としてかかっている曲のイントロがスーパーパクリ風味。しかも意識的なものだとも思えずそこはかとない悪意とゆーか意識の低さを感じてしまう。それにしてもこの手の安易は模倣を見ていつも思うのは、どうせメロディラインを模倣するのならもっとかけ離れた文脈から持ってくればいいのに、ということ。例えば邦楽混声合唱曲とか (笑。パレストリーナやデ・プレあたりから持ってくれば、それはそれでスゲー感じがするでござるよ!ジャンル的に非常に近く、単に歌われている言語が違う、くらいの距離しか離れていないところ (しかもせいぜい英語だったり) から元ネタを引っ張ってくるのはちと手抜きし過ぎ。

2002/11/10

おおおおっ!ケントさまが Unicorn サーバに来られたとは!今ちょうど諸国漫遊記ミッションでサンドリア入りしてるガルカモンク Ringrinn は私です。見かけたらよろしくお願いします〜。

などとここに書いてもしょうがないですね…(笑。

2002/10/27

深夜に一人で、録画しておいた JUDY AND MARY LIVE 「POP LIFE TOUR FINAL」を見る。昔と全然違うポイントにぞくっと来ていることに初めて気づいた。10代のころは、不協和音や崩れたリズム、意表を突く変拍子なんかにぞくぞくしてたものだけど、そういう不安定さは今でも好きながら、何より「言葉」に惹かれてしまう。どんなに興味深いメロディに乗っていても、陳腐な言葉には何も反応しなくなってるみたい。年を取って、生物的な部分が弱まって、脳に直接波動が入ってくる感じがなくなっているのかなぁ。はっきり「言葉」を歌う YUKI ちゃん (ちゃん、って実は同い年なんですよね、彼女) の歌はいいですね。

今読んでいる本によると、「生き物はカオスの縁に存在する」そうですから、そういう「秩序と無秩序の狭間」に惹かれるのは本能的なものなのかしら (何の本か分かっちゃうかな?)。

そういう意味では、僕はすごく即興的な性格だと思います。理屈っぽいくせに緻密な計算は苦手。自分の身体感覚が最重要で、理屈づけは処世術です。コーラスの指揮をふっていた時も、テクニック的にある音楽を創出する、ということはどう頑張っても出来ないとあきらめてて、それよりなにより、演奏者側の感情的な方向を揃え、それをあからさまに見せることに神経を集中してた気がする。結構暑苦しい演奏だったんだろうなぁ、今思うと (笑。でもまぁそれが俺、ということだから。

そういや、どうして深夜に live video なんか (それもヘッドフォンで超大音量で) 聴いてたかというと、いったんふとんに入ったはいいんですがなぜか大昔の思い出 (10代のころ) が妄想よろしく次々に湧いてきて眠れなくなったからだったり。時々こういう夜があります。爛れた生活を送ってた当時のツケが回ってきたのか?(笑。妄想は大音量音楽で吹き飛ばすに限ります。

ライブに行った後や耳を酷使した後の、耳が馬鹿になってしばらく世界中の音が「もわーん」としてる状態が結構好きなんだけど、こんなことばかりしてるとクリントン元大統領みたいに年をとったら難聴になっちゃうのかしら?音楽が聴けなくなっちゃうのは寂しいなぁ。

2002/10/14

昨日は久しぶりに家族みんなで Tama Zoo に行ってきました。普通に休日で非常に混んでいたせいもあってあんまりたくさんは回れなかったんですが (ウォンバットのチューバッカ君にも会えなかった・涙)、その代わり今までとはちょっと違う周り方 (うさぎ&モルモットの抱き方教室とか、昆虫館とか) が出来て、なかなか良かったです。

そういや下↓で書いた KMail の content-transfer-encoding に関する微妙な不具合の件ですが、その後 KDeveloper-ML の方のご尽力により何とか次の release までには改善されそうな模様。良かった良かった。

ここのところ再び FFXI 熱が盛り上がってきて熱心にプレイ中。3ヶ月以上かかってようやっとサポートジョブをゲットしました (^^;。プレイヤーのボリュームゾーンは完全に lv30 以上に行ってしまった感があり僕が回っているところはどこも空いているような状況ですが、逆にその分オークションで装備を安く買えたりして、ちょっと嬉しい点も。早く Windows 版が発売されて、新しい人がいっぱい来るといいなぁ!

2002/10/06

今日は (というか昨日は) 子供たちの幼稚園の運動会でした。一所懸命練習した成果を見せようと頑張るみんなに感動。リレー3本勝負で3回とも負けちゃった3組さんは本当に悔しそうで、園児のみならず先生まで悔し泣きしてましたが、それもまた貴重な経験ですよ、うん。日差しが強くて暑くてつらかったけど、とっても楽しかったです。

自宅 PC の KDE 環境を、2.2.2 から 3.0.3 へ上げました。その時の手順を記録しておきます。

  1. /etc/apt/sources.list に次の記述を追加します。
  2. # woody kde 3.0.3
    deb http://people.debian.org/~schoepf/kde3/woody ./
    deb-src http://people.debian.org/~schoepf/kde3/woody ./
    deb http://people.debian.org/~msp ./
    deb-src http://people.debian.org/~msp ./
    deb http://people.debian.org/~bab/kde3 ./
    deb-src http://people.debian.org/~bab/kde3 ./
    deb http://www.opensides.be/debian/woody/kde3/ ./
  3. apt や dselect を使って KDE 3.0.3 の各パッケージをインストールします。依存関係がすっきりいかないかもしれませんが、よく見極めて、他のパッケージへの影響が最小限となるよううまく調整します。
  4. この状態ですと、KDE アプリケーションに日本語を入力する際、変換途中の文字列が一切見えない、という非常に使いにくい状態になってしまいます。ちょっと調べてみたところ、qtconfig を使って XIM のモードを「over the spot」にすれば良い、と書かれていたのですが、Debian woody の qtconfig は libqt3.0.3 に同梱されているもので、バージョンが古いためか XIM の動作モードを選択する機能が無いようでした。そこで急遽 qt 周りのライブラリを sid から持ってきて入れました。これでバージョンは 3.0.5 になりました。
  5. ところが、上記 sid の libqt を入れる際依存関係でインストールしなければならなかった libfreetype6 の新しいバージョンが、これまで使っていたものと何かと違うようで、あっちゃこっちゃの文字が豆腐になってしまいます。そこで、むりやりこれまでつかっていた libfreetype6 のバージョン番号を変えて(!)、古いライブラリでも依存関係を満足するようにパッケージングしなおしちゃいました。うむー強引。
  6. さらに本来 woody 環境を想定して作られた KDE 3.0.3 パッケージ群を sid の libqt を持ってきて動かしたことにより、例えば Look&Feel の style の種類がえらいちょびっとになってしまったりしました (style が定義されている .so がうまく読み込めていない感じ)。そこで kdelibs のソースを取得し、パッケージを再構築したところ無事改善されました。

なお KDE 3.0.3 に含まれる kmail 1.4.3 も、日本語メールの場合 content-transfer-encoding に 8bit or quoted-printable しか選べない、という仕様のままだったのですが、そこにもまた適当なパッチを当てて急場をしのいでいます。とはいえ今回は前回に比べるとちょっとまともに。だってコメントにこれを使え、って書いてあるんだもの、使わないわけにはいかないよねぇ。あ、パッチは以下です。

diff -Naur kmail.orig/kmcomposewin.cpp kmail/kmcomposewin.cpp
--- kmail.orig/kmcomposewin.cpp	Sat Oct  5 23:02:07 2002
+++ kmail/kmcomposewin.cpp	Sat Oct  5 23:02:38 2002
@@ -1278,20 +1278,13 @@
     mMsg->deleteBodyParts();
     mMsg->setAutomaticFields(TRUE);
     mMsg->setHeaderField("Content-Type","text/plain");
-
-    mMsg->setCteStr(isQP ? "quoted-printable": "8bit");
-
     mMsg->setCharset(mCharset);
 
-    // ### FIXME: (implement and) use setBodyAndGuessCte!
     QCString body = pgpProcessedMsg();
     if (body.isNull()) return FALSE;
     if (body.isEmpty()) body = "\n";     // don't crash
-
-    if (isQP)
-      mMsg->setBodyEncoded(body);
-    else
-      mMsg->setBody(body);
+	QValueList allowedCTEs;
+    mMsg->setBodyAndGuessCte(body, allowedCTEs, !isQP);
   }
   else
   {
@@ -1309,16 +1302,13 @@
     // create bodyPart for editor text.
     bodyPart.setTypeStr("text");
     bodyPart.setSubtypeStr("plain");
-
-    bodyPart.setCteStr(isQP ? "quoted-printable": "8bit");
-
     bodyPart.setCharset(mCharset);
-    // ### FIXME: use setBodyAndGuessCte!
+
     QCString body = pgpProcessedMsg();
     if (body.isNull()) return FALSE;
     if (body.isEmpty()) body = "\n";     // don't crash
-
-    bodyPart.setBodyEncoded(body);
+	QValueList allowedCTEs;
+    bodyPart.setBodyAndGuessCte(body, allowedCTEs, !isQP);
     mMsg->addBodyPart(&bodyPart);
 
     // Since there is at least one more attachment create another bodypart
diff -Naur kmail.orig/kmmessage.cpp kmail/kmmessage.cpp
--- kmail.orig/kmmessage.cpp	Sat Oct  5 23:01:54 2002
+++ kmail/kmmessage.cpp	Sat Oct  5 23:02:31 2002
@@ -19,6 +19,7 @@
 #include 
 #include 
 #include 
+#include 
 
 // we need access to the protected member DwBody::DeleteBodyParts()...
 #define protected public
@@ -45,6 +46,8 @@
 #include 
 #endif
 
+using namespace KMime;
+
 static DwString emptyString("");
 
 // Values that are set from the config file with KMMessage::readConfig()
@@ -1862,6 +1865,106 @@
   kdWarning(result.length() != len, 5006)
     << "KMMessage::bodyDecoded(): body is binary but used as text!" << endl;
   return result;
+}
+
+
+//-----------------------------------------------------------------------------
+void KMMessage::setBodyAndGuessCte(const QByteArray& aBuf,
+                       QValueList & allowedCte,
+                       bool allow8Bit )
+{
+  allowedCte.clear();
+
+  CharFreq cf( aBuf ); // save to pass NULL arrays...
+
+  switch ( cf.type() ) {
+  case CharFreq::SevenBitText:
+  case CharFreq::SevenBitData:
+    allowedCte << DwMime::kCte7bit;
+    if ( allow8Bit )
+      allowedCte << DwMime::kCte8bit;
+    if ( cf.printableRatio() > 5.0/6.0 ) {
+      // let n the length of data and p the number of printable chars.
+      // Then base64 \approx 4n/3; qp \approx p + 3(n-p)
+      // => qp < base64 iff p > 5n/6.
+      allowedCte << DwMime::kCteQp;
+      allowedCte << DwMime::kCteBase64;
+    } else {
+      allowedCte << DwMime::kCteBase64;
+      allowedCte << DwMime::kCteQp;
+    }
+    break;
+  case CharFreq::EightBitText:
+    if ( allow8Bit )
+      allowedCte << DwMime::kCte8bit;
+    if ( cf.printableRatio() > 5.0/6.0 ) {
+      allowedCte << DwMime::kCteQp;
+      allowedCte << DwMime::kCteBase64;
+    } else {
+      allowedCte << DwMime::kCteBase64;
+      allowedCte << DwMime::kCteQp;
+    }
+    break;
+  case CharFreq::EightBitData:
+    allowedCte << DwMime::kCteBase64;
+    break;
+  }
+
+  kdDebug() << "CharFreq returned " << cf.type() << "/"
+        << cf.printableRatio() << " and I chose "
+        << allowedCte[0] << endl;
+  setCte( allowedCte[0] ); // choose best fitting
+  setBodyEncodedBinary( aBuf );
+}
+
+
+//-----------------------------------------------------------------------------
+void KMMessage::setBodyAndGuessCte(const QCString& aBuf,
+                       QValueList & allowedCte,
+                       bool allow8Bit )
+{
+  allowedCte.clear();
+
+  CharFreq cf( aBuf.data(), aBuf.length() ); // save to pass NULL strings
+
+  switch ( cf.type() ) {
+  case CharFreq::SevenBitText:
+  case CharFreq::SevenBitData:
+    allowedCte << DwMime::kCte7bit;
+    if ( allow8Bit )
+      allowedCte << DwMime::kCte8bit;
+    if ( cf.printableRatio() > 5.0/6.0 ) {
+      // let n the length of data and p the number of printable chars.
+      // Then base64 \approx 4n/3; qp \approx p + 3(n-p)
+      // => qp < base64 iff p > 5n/6.
+      allowedCte << DwMime::kCteQp;
+      allowedCte << DwMime::kCteBase64;
+    } else {
+      allowedCte << DwMime::kCteBase64;
+      allowedCte << DwMime::kCteQp;
+    }
+    break;
+  case CharFreq::EightBitText:
+    if ( allow8Bit )
+      allowedCte << DwMime::kCte8bit;
+    if ( cf.printableRatio() > 5.0/6.0 ) {
+      allowedCte << DwMime::kCteQp;
+      allowedCte << DwMime::kCteBase64;
+    } else {
+      allowedCte << DwMime::kCteBase64;
+      allowedCte << DwMime::kCteQp;
+    }
+    break;
+  case CharFreq::EightBitData:
+    allowedCte << DwMime::kCteBase64;
+    break;
+  }
+
+  kdDebug() << "CharFreq returned " << cf.type() << "/"
+        << cf.printableRatio() << " and I chose "
+        << allowedCte[0] << endl;
+  setCte( allowedCte[0] ); // choose best fitting
+  setBodyEncoded( aBuf );
 }
 
 
diff -Naur kmail.orig/kmmessage.h kmail/kmmessage.h
--- kmail.orig/kmmessage.h	Sat Oct  5 23:01:54 2002
+++ kmail/kmmessage.h	Sat Oct  5 23:02:31 2002
@@ -6,6 +6,9 @@
 
 #include "kmmsgbase.h"
 
+template 
+class QValueList;
+
 class QStringList;
 class QString;
 class QTextCodec;
@@ -277,6 +280,21 @@
     the second for binary data */
   virtual void setBodyEncoded(const QCString& aStr);
   virtual void setBodyEncodedBinary(const QByteArray& aStr);
+
+  /** Sets body, encoded in the best fitting
+    content-transfer-encoding, which is determined by character
+    frequency count.
+
+    @param aBuf       input buffer
+    @param allowedCte return: list of allowed cte's
+    @param allow8Bit  whether "8bit" is allowed as cte.
+  */
+  virtual void setBodyAndGuessCte(const QByteArray& aBuf,
+                  QValueList& allowedCte,
+                  bool allow8Bit=false);
+  virtual void setBodyAndGuessCte(const QCString& aBuf,
+                  QValueList& allowedCte,
+                  bool allow8Bit=false);
 
   /** Returns a decoded version of the body from the current content transfer
     encoding. The first method returns a null terminated string, the second

そういえばこのページとトップページを「tidy」を使って綺麗にしてみました。まぁ自己満足ですケド (笑)。

2002/09/27

一日データセンターにこもりっきりの日。人間のいる場所じゃないよなぁあそこは。うーむ頭が痛い。

前の会社で Internet Service をキリモリしていた時は、それほど高いわけではない PC サーバですら大事に大事に使っていたものですが、それと比べると今の会社は激しくバブリー。某社の巨大な Switch や PC に比べると超高い UNIX サーバをじゃんじゃん買っちゃう。前の会社だったら絶対独立したハードウェアをあてがわないような些細な処理も専用のマシン、それも結構高いマシンを使ってしまったりして。こんな環境にずっといると感覚がおかしくなるっす…。

今の会社はいろいろと秘密ごとが多くて、おしゃべりな僕にとっては結構気を使う毎日です。うっかり Internet に流しちゃう、なんてことはさすがにしませんが、電車で知人と話をしている時などに、時々迂闊なことをいいそうになって心の中でドキッとすることがあったりして。

そんなこんなで会社には私物 PC 持ち込み禁止なので、最近通勤中はもっぱら読書にあてています。外で音楽を聴くデバイスを別に買いたいなぁと思っていて、いろいろな HDD Player を見ているのですが、僕の手持ちの音源は全て vorbis だったりするところが非常にネック。ついこの間ようやっと整数演算しか利用しない vorbis の decoder engine が公開されたようで、これでようやっと携帯デバイスでも ogg 対応が進んでくれるかなぁ。

携帯音楽プレーヤ以外にも、汎用の PDA についてもちょっと調べてはみているんですが、HDD が入っている製品がないとか、電池がそんなに持つわけじゃないとか、高いとか、いろいろな理由でこちらもいまいち。なかなかぴったりくる製品はないものですね。

2002/09/16

久々に Kernel を 2.4.19 にバージョンアップ、ついでに XFS のドライバを最新のものにしてみたら、無線 LAN 周りの安定性が大幅アップして無茶苦茶嬉しい。これまでは vmware のゲスト OS 上で大量のネットワークトラフィックを発生させると、Tx timeout が頻繁に発生してまともに使えなかったのです。orinoco ドライバが 0.09b→0.11b へと上がっているのが効いてるんだろうなぁ。

そういや会社の Windows2000 の WindowsUpdate が動かなくなっちゃった件ですが、sp3 をもう一度入れてみたからなのかなんなのか、ある日突然出来るようになってしまいました。相変わらず Windows の動作は謎が多い…。

妻が使っている VAIO の HDD から異音が…(汗)。今のうちにとっとかなくちゃいけないものはとっとくようにしないと。

2002/09/06

そういや、新しい会社 (そうそう、またしても転職したのです) で、Pentium4 2.53GHz、メインメモリ 1Gbytes、HDD 120Gbytes、Windows2000 Professional という今時のマシンをあてがわれました。ワードやエクセル、パワーポイントなどの重量級アプリケーションが、かつて Windows95 上で使っていた秀丸エディタ並みの軽快さで利用できることに驚き。ハードウェアの進化は、ソフトウェアの富豪化以上のスピードで進んでいる、というわけですね。バージョンアップするたびに重くなる Microsoft のプログラム群に文句を言うのは筋違いだったんだ!(←?)。

50万までならなんでも好きなノートパソコンを買ってもいい、と言われ、僕が選んだのはコレです。拡張ユニットに FD と CD-RW を付けて、メインメモリも 1Gbytes まで増設。主な用途がデータセンタでのメンテナンス時にシリアルコンソールで使うとか、出張時に社内グループウェアに接続、とかなので、可搬性と標準搭載されているインターフェイスを重視。可搬性を重視したタイプのノートで、シリアルインターフェイスを標準で搭載しているものってもうこれくらいしかないんですよね。単なるシリアルケーブルの代わりに USB-Serial 変換ケーブルを持っていけばいいだけ、と言われればそれまでなんですケド…。周りの人の選択を見るとやはり ThinkPad X シリーズ、T シリーズの人気が高いようで、僕も最初そうしようかとも思ったのですが、たまには毛色の違ったマシンでも、と考えました。今だに家で使っている DEC HiNote Ultra の流れを汲むモデルでもありますしね。会社でのこととはいえ、新しいマシンを買うのはやっぱり嬉しい。

久々に仕事で Windows をメインに使うにあたり、最初プレインストールされている IE や Outlook Express を使っていたのですが、いつウィルスに感染するかと気が気じゃなくてちっと落ち着きません。結局3日と持たずに mozilla 1.1 をインストールしてそちらを使うようになってしまいました。ふぅ。マイナーな環境はやっぱり落ち着くなぁ (笑)。

Windows を使っている時の自分の手の動きを見ていて、ちとキーボードを使い過ぎ…というかほとんどマウスを使っていないジャン!(笑)、ということに気がつきました。よく使うアプリケーションはスタートメニューのトップに unique な頭文字を持つような名前で登録しておいて「Windows キー+一文字」で起動してたり、アプリケーションの終了は Alt+F4 (または Alt、f、x)、保存は Ctrl+S (または Alt、f、s or a)、アプリケーションの切り替えは Alt+Tab、アプリケーションの最小化は Alt+space、n、Windows の終了は Windows キー、u などなど、頭ではすっかり忘れていたことを結構手が覚えているので驚きました。Windows キーが普及する前は Ctrl+Esc もバリバリ使っていたしなぁ。

反面、Web を見ている時はほとんどキーボードに触らない。ホイール付きマウスを初めてきちんと使っていますが、便利ですねぇ、これ。カーソルキーを使わなくても、マウスカーソルがどこにあってもスクロール出来るホイールも便利ですが、行ったり来たりボタンがまた良い。Explorer のインターフェイスがどんどん web っぽくなっていくことの理由がちっとも理解出来なかったんですが、このマウスがあればちっとも苦じゃないなぁ。UI と HID を一緒に考える、ということは意外に重要で、その点を Microsoft はちゃんと考えているんだな、と思いました。

そういや Office XP を入れたら WindowsUpdate が動かなくなっちゃったんですが、これどうやったら治るんでしょうか…?

2002/09/05

ご冗談でしょう、ファインマンさん」を読みました。すっごく面白かった。ファインマンさんの何にでも体当たりでチャレンジして、しかも結構なんでもモノにしてしまうところには驚くばかりです。この本を読んで、「自分のやり方」というものをしっかり持っている人、というのは、何をやっても迷いがなくてすがすがしいなぁ、と思いました。本の中で、ファインマンさんも他の人の理論のことがすっかり分からなくなってしまったことがあったそうなのですが、そんなときに彼の妹さんから「お兄さんの場合分からないのではなくて自分で考えていないってだけでしょ」と言われ、はっと気がつく、というエピソードがあり、これなども「自分のやり方」にしっかり立脚してものを考えることの大切さを教えてくれているような気がします。僕も自分の子供たちにそんなふうに確固たる立脚点を示してあげることができるかな…。そうそう、翻訳が最高なんですよ!

「原爆の父」とも言えるファインマンさんを手放しで称えることは日本人として問題…と考える人もおりましょうが (しかも本人、良心の呵責、という意味ではほとんど気にしていないようです。それに対して、たぶん冷戦時の状況などにより、大変なことをしでかしてしまった、という認識はあるようですが…)、アメリカの人の意識としてはこんなものなのかもしれないなぁと思います。それを許せない、と思うことはちょっと一方に厳しすぎてバランスが悪いような気もする。

ファインマンさんの前は、なんだか流行っていたようなので「クリプトノミコン」を読んだのですが、こっちはイマイチ。僕はもう少し精緻な SF の方が好きみたいです。個人的には、第二次大戦についても、歴史的意義を感じてたくさん学ばなければ、と思う気持ちはありますが、エンターテイメントとはつながってきませんし。それに、こちらにしてもどうせ学ぶならばこの本のように多分に脚色されたものでなくてもっと正確なものの方がいいですしね。暗号モノならサイモン・シンの「暗号解読」の方が面白かったし、同じく「フェルマーの最終定理」の方がある意味スリリングだったかも。

ファインマンさんの生き方を読んですっかり影響されている今↓の自分の意見を読むと「なにいってやがんだ」ってな気持ちになりますな。かくもイイカゲンなものなり、我が思考。

2002/08/31

いつもの「理系のための恋愛論」ですが…この著者の、「男の子はこうだけど女の子はこうなのよ!」という断定口調にはいつも苦笑しつつも (僕は男女間にそれほど本質的な差異はない、と考えていますから)、それなりに「なるほどなぁ」と思いながら読んでますが (こないだの「女の子の機嫌を損ねないためにはとりあえず何か口に入れさせとけ」という話は非常に面白かった)、今回の「過去をふっきれない男」については一言いいたいッス。元彼女を「肩の荷」と思ってたり、やたら自己陶酔しつつ自己憐憫に明け暮れるアホさ加減については俺もそうだと思うけど、「前の彼女を忘れていないようす」に対して「ふん」と思う感覚を、「女の子なら普通そう思う」と一般化してしまうのはどうか。いや、実際に女の子の中では多数派なのかもしれないけど、僕に言わせれば、「前の彼女を忘れていない」ことと、コラムの中で触れられているような、いわゆる「未練」と呼ばれる感情とを一緒に扱ってほしくない。個人の人格が形成されていく過程において、いわゆる恋愛関係にある相手から受ける影響というのはとても大きいものです。そういう、人格そのものを変化させていくような関係を一度でも構築してしまうと、たとえその恋愛関係が終わってしまった後においても、その人の核として長く残ることもあるわけです。というか、恋愛ってほとんどの場合そういうものだと僕は思ってました。もし本当にほとんどの女の子が、恋愛関係が終わった後にあっさりとその関係 (とそこから生まれた個人的変化) を「ふっきり」、新しい次なる関係を作っているんだとすると、ちょっと幻滅しちゃうなー。そんなアクセサリみたいな恋じゃなくって、もっともっと、それこそ毎回人格が変わっちゃうような恋をしてくれよ、と思う。

ちと身辺がごたごたしていてドキドキな毎日。もう少ししたら落ち着くのかしら。

2002/08/18

F1 ハンガリー GP が終わりましたが、ここ数戦のマクラーレン、キミ・ライコネンの活躍には目を見張るものがあります。フランス GP で惜しくも初優勝を逃した、という経験が、彼の中の何かを変えたのでしょうか、それまでの「結構速いけど地味」というイメージから、モントーヤばりのバトルファイターへ変身したみたい。予選は速いけど決勝は苦労しているウイリアムズと、予選はイマイチだけど決勝は速いマクラーレンの噛み合わせが微妙に楽しいシチュエーションを生んでいる、という気も。というわけで、とりあえずしばらくはライコネンを大プッシュしていきたいっす!皆も応援しようぜ! (←誰?) 次回は毎度楽しいレースになるスパ (ベルギー GP) です。楽しみ楽しみ。

2002/08/09

変な話題ですが、ちょっと前までさかんにテレビで CM していた松下さんの「トイレエアコン」。室外機ナシでどうやって冷やすんだろうなぁとずっと不思議に思っていて、先日ぱっとひらめいた!そうか、水洗トイレのタンクにためられた水に熱を逃がせばいいんじゃん!…んで今日 Web ページで調べてみたらまさにそういう構造のようで、うーん、コロンブスのたまご的発想。なかなかやるな、松下君。あんまり冷やし過ぎるとタンクの水が暖かくなりすぎちゃっていろいろと良くないことが起こりそうだけどね。そういやウォシュレット用のタンクは夏場でもある程度の温度に保温されていることが多いだろうから (冷水だとおしりびっくり)、そっちに逃がす、という手もあるか?

てなことをいろいろと考えていると、住居における熱の収支を一括して考えるといろいろといいことがありそうだなぁなんて思いました。余った熱を手近な空気中に放出しちゃうんじゃなくて、とりあえずなんらかの熱媒体に渡すことで、結構いろいろと省エネ出来ないかしら。温水や暖房などの熱が欲しいパートと、冷蔵庫やクーラーなどの熱がいらないパートの間でうまいこと熱のやりとりをすれば、結構省エネになりそうだけどな。

ところで、今さら住基ネット。いくつかの自治体が不参加を表明して、転居希望者が殺到するなどいろいろと話題になっていますが、あんなに直前に不参加を表明してきちんとデータ削除等出来るのかなぁと思っていました。ところが、稼働初日の報道を見る限り、不参加、といっても、なんだか端末の電源を入れないだけにしか見えないんですけど…。おいおい、それじゃ自分のところが不便なだけで結局住民の情報は守れないんちゃう?事前に住民票データを集めてデータベース作ってるんでしょ?それとも住基ネットって、各自治体のデータは各自治体の端末に保管されつつ、全国の情報を検索出来る超分散データベースなの? (←これはなさそうだけどなぁ)。確かどこかの自治体が、不参加表明と共に事前に送った情報の破棄を求めていましたが、これもちゃんと破棄されたという話は聞かないし。あんまり意味のある行動だとは思えない…と思ったけど、考えてみたら、「自分の自治体で生じるかもしれない住基ネットを使った不祥事」は防ぐことが出来ますね。そうか、個人情報保護法案が出来るまで、自分のとこで不祥事が起きても責任の取りようがないから参加しない、とそういうことなのか。なるほどなっとくなっとく (←ほんとか?)。

ところで、僕のような一般企業に勤める人間にとって、住基ネットのような仕組みって当然業務の合理化、効率化のために導入されていると考え、それによるコストカット、特に人件費の削減はセットになっていると考えます。いいじゃんどんどんやって税金の無駄づかいを減らしてくれい、とごく自然に考えてしまうのですが、この間テレビで識者の方が、「お役所の人達は、住基ネットの導入と公務員の減員をセットで考えたりしない」と言っているのを聞いて、びっくりすると共に、ああ、そういう世界もあるんだなぁと目から鱗の思いでした。営利企業のように、こういう組織が自然に効率化していくようないいメソッド、システムはないもんですかねぇ…。

2002/08/04

えらい久しぶりに自宅 Debian 環境をアップデートしました。ずっと testing を使ってきていたので、先日正式にリリースされた woody へ。一月以上アップデートしてなかったはずなんですが、更新されたパッケージは30個ほどで、自分で手を入れている kmail や kdelibs、libfreetype6 なども更新されずにほっと一安心。これでもう、自分で testing に移行しよう、と思い立つまでは安定した OS 環境を堪能出来そうです。

僕の現在の環境は KDE2.2.2 上で Opera 6.0.2、Kmail 1.3.2 (with 俺 patch) を使う、というものなんですが、今のところ僕の個人的嗜好に極めてフィットしていて、ちょっと他の環境へは移りたくないなぁ…という感じなんです。一月以上もパッケージをアップデートしなかったのもそのためですし、Debian の次の stable release (sarge) が出るまではこのままでいいかなーと思っています。

2002/08/03

ヤマハが秋に電動スクーターを発売ですって!。「パッソル」なんて懐かしスギ。40kg と非常に軽量だとか、リチウムイオン電池採用、上質っぽいデザインなんかがかなりグッときます。個人的には、最近ホンダの「クリーン4作戦」にすっかりやられてしまってもうダメか…と思っていたところに思わぬ逆転打、という感じでした。考えてみれば、今ではすっかり市民権を得ている電動アシスト自転車を最初に成功させたのもヤマハでしたし、案外電動系に強いんですね。このままじゃんじゃんバリエーションを増やしていってくれたりすると嬉しい。電動自動車って、今の自動車と同レベルのサイズ、用途から入るのではなく、自転車やスクーター、チョロQモータースのような一人乗り自動車系のボトムアップで攻めていった方が絶対いいと思うんですよね。smart が結構売れていることからも分かるように、都市生活者にとって今の普通のサイズの車が必要なことって実はほとんどないと思うんです。

smart と言えば、コレは凄すぎる。

2002/07/25

「千と千尋の神隠し」の DVD の色調が問題になっているそうですが、我が家の PS2-S端子接続-Sony の安い 21 型テレビ、という組み合わせですと、確かに赤が強い、という印象はありますが、白が白として見えない、ほどではないですね。逆に、予告編の映像 (こちらの方が正しい色、という人が多い) の方が色が浅く、全体にかすれたような印象がありました。例えば冒頭のシーンでの千尋の服の色は、瞳の白や雲の白とは違う色であるように本編では見えますが、予告編では違いが分かりません。本編は赤のダイナミックレンジが異常に広いって感じで、確かに相対的には青や緑が浅いような気もしますが、神様の船が河を渡ってくるシーンなどでは、本編のバランスの方が迫力があるように僕には見えました。それでも夜のハクの服はちゃんとグレーに見えるしね。デジタル彩色のアニメーションって、妙にギラギラした感じになってしまうことが多いから、わざと紙に近いくらいのところまで色温度を下げた、と考えるのは深読みのし過ぎかしら。

我が家のテレビは、Sony 製テレビではお約束のメンテナンスモードをバリバリ使って、主に PS2 のゲームのために超ニュートラルなバランスに設定されているのも奏効してるのかも。まぁどちらにしてもこれだけ苦情が上がってしまうようなアヴァンギャルドな設定を、何も日本一売れそうなタイトルで試してみなくても、という気は、確かにします(笑。もっとコンサバな設定にしておけばよかったのに…。

ICO チームが次回作に向けていよいよ始動!ドキドキわくわく。うちの3歳の息子は、通しでもう3回もクリアしたところを見ているくせに未だに「ICO やろう!」と言いまくってます。

2002/06/08

だいぶん更新が滞ってましたが、その原因はご想像のとおり、FFXI だったりします。あ、そこの人、このリンクを今クリックするとさんざん待たされる可能性大ですよ。一応公式発表では「ネットワーク機器の障害」ということで PlayOnline 方面のネットワークは無茶苦茶になってますから。

そうなんですよ。今のところ FFXI は障害発生率が異常に高くて、時間が出来たのでさぁプレイ、と思い立っても、2回に一度はまともにプレイできない状態です。ネットワークゲームの初期はみんなこんなもんだ、とおっしゃる心の広い方もいらっしゃいますが、Ultima Online や EverQuest がオープンしてから既に2年以上が経過し、この手のサービスに関するノウハウもかなり理解されてきている昨今、今回の■…じゃなくてスクウェアの対応はあまりにお粗末だと思う。

例えば今日の障害は、昨日の夜 22:00 頃からあちらのネットワークへの接続性が悪くなり、23:30 にいったんサービスを停止させてメンテナンスを開始、その後終了予定時刻の 0:30 を (告知無しで) 大幅に超過したのち、今朝未明の 4:50 に一度は復旧と発表。その後通常よりもサービスが異常に重いとか一部プロバイダからはやっぱり接続できない、などの声が相次ぎつつもなんとかだましだまし運用していたようだが、本日 17:00 より終了予定時刻未定状態の臨時メンテナンスに突入。そのままなんの告知もないまま5時間が経過し、さっき 22:00 過ぎに「一部ネットワーク機器の障害であること」がようやく特定され、そこから交換作業に入ったものの、代替機の手配を行っているのか、0:00 過ぎまでは復旧の可能性がない、という状態。

日ごろネットワークサービスを管理しているものとしての疑問点をあげると

FFXI を始めてから、2ch を読んでいる時間が激増してしまっつ(藁。何かトラブった時に、うちだけの問題なのかそうじゃないのかを切り分けるのにモノスゲー役に立つ。デマや嘘も異常に多いけどね…。

2002/05/26

相変わらず FFXI はメンテばっかりしてるみたいっすねぇ。大変だなぁ (<人ごとモード)。とかなんとかいいつつ BB Unit 注文しちゃいました (笑)。あのライブ・ストリーミング・ビデオ映像を一日見てたら、すっかりやりたくなっちゃって…。

PS2 関係で最近知った新事実。鉄拳4などでは PS2 でもプログレッシブ出力をサポートしてるんだそーですね。これまで DC にすら劣る、と言われたい放題だった PS2 の出力系ですが、やれば出来るものだ。E3 のレポートではプログレッシブ対応用のライブラリが開発会社には配布されたりもし始めるそうで、HDTV をお持ちの方には嬉しいニュースかもしれませんね。ついでに DVD プレイヤーもバージョンアップして欲しいものです (って僕は HDTV 持ってませんが。うちの古い Sony の TV は、S 端子入力でも異常に綺麗、それこそドットが一つ一つ見えるくらいなのであんまり気になりません。もちろんインターレース/プログレッシブという本質的な差異はあるんですけどね)。

Flash 豆知識。Flash クライアントからの通信に対して set-cookie して session control したい、などという時は、Flash クライアントが行う通信 session を同時には必ず1つとなるように工夫しないといけないようです。Flash では通信は完全非同期に行われるため、ほっとくと平気で2本、3本の通信 session が開かれてしまうのですが、なぜか2本以上 session が開いていると set-cookie がうまく動作しません。なんでかなー。

PostgreSQL 豆知識。7.2 になってから vacuum が table を lock しなくなりとっても幸せなんですが、7.2 の vacuum は、ゴミ領域の含まれるデータページを共有メモリ上の free space map に登録するだけ (もちろんその以外の処理も行われていますがここでは割愛) なので、モーレツに更新/削除が頻繁/大量な table があった場合、free space map が足りなくなることがあります (標準では page size の合計が 80Mbytes 弱程度しかハンドルできません)。その場合は data ディレクトリの肥大化などで気がつくと思いますが、data ディレクトリ直下にある postgresql.conf ファイル内の max_fsm_pages を大きくしてあげると改善できます (backend の再起動が必要です)。よかった、よかった。

2002/05/17

FFXI、やっぱり大変なことになってますね…。いろいろな情報を読んでいると、どうもエントリー処理 (ユーザ登録・課金処理等) がふん詰まっている感じで、ゲーム世界に入ってしまえばそこそこ遊べるようですが、全部シャットダウンして明日復旧、という対応を見るとネットワーク機器のハード障害、という発表はマジなのかも。でもそれで復旧に1日以上かかるとはあんまり考えづらい (当然ベンダもスタンバっていたはずですし) ので、もっと根本的な問題なのかもしれず。

いろんな とこ で発表されているサーバ・ネットワーク構成を見ていて僕が不思議に思ったのは、

  1. フロントサーバ - インターネット間と、フロントサーバ - バックエンドサーバ・NAS 間のネットワークが単一のセグメントとなっている点。いくら GbE とはいえ、ここはネットワークを2系統用意するのがセオリーでしょう。1000 台以上のフロント・サーバ全てが足2本、という構成はちとヘビーではありますが、比較的当たり前の構成だと思う。
  2. NAS 上にコンテンツをおくのは確かに無茶苦茶省力化出来てグーなんですが、もちろん全てをソコにおいていたのではとうていまともなパフォーマンスは出ません。更新頻度などを鑑みてローカルキャッシュ (メインメモリ、ローカル・ファイルシステム) に置くべきデータをしっかり切り出さなければダメでしょう。
  3. DB access はどんなにリッチなサーバをおごっていたとしても重たい処理であることには変わりなく、transaction を乱さない範囲で、出来るだけ処理の早い段階でバッファリングしたりキャッシュしたりして DB access を効率化・最小化出来るように工夫するとずいぶん違います。もちろん、事前に流す SQL に応じた形で DB を最適化 (適当な index を張る等) しておくのは当然。時には同時処理件数の上限を決めてしまって、それ以上の処理が集中した場合は別のもっと軽い処理 (行列しているお客さんのアニメーションを見せるとか・笑) へリダイレクトし、本処理の負荷上昇を防ぐ、などの工夫も必要になります。というか同時平行処理件数の制限は必須かも。8 CPU のサーバが2台、とは言っても、同時処理件数が増えれば増えるほど1件あたりの処理時間も伸びてしまい (まぁ基本は TSS だし)、際限なく同時処理件数を増やしてしまうとあっという間に輻輳してしまいますからね。
  4. Oracle はどうだか知りませんが、PostgreSQL のようにオプティマイザがあんまり賢くない RDBMS の場合、SQL の書き方一つでパフォーマンスが大きく変わってきます。データが溜まってきた、同時にアクセスが多数ある、というような実動環境での各 SQL 文の実行時パフォーマンスを一つ一つ測定して、成績の悪い SQL をより「軽い」書き方へリアルタイムに変更していけるようになってたりするといいですねぇ。

いちばん嫌なのは、ネットワーク機器・サーバ等の OS やハードウェアが、原因不明で不具合を起こすような症例の場合ですね。代替機を入れたとしても問題が再発しない保証はなく、しかもそのトリガーもはっきりしない、となると、復旧報告を出したくとも出せない、という最悪の事態になります。こうなってしまうと、とりあえず思いつく限りの対策 (ハードウェアチェック・交換、システムの再セットアップ等) を講じて、しばらく回して様子を見、問題が再発しないようならそれで OK としてしまう以外方法がありません。

2002/05/16

HTML のコメント話。SGML や HTML2.0 時代の場合は 2/27 に書いたことでだいたい正しいんですが、Web Kanzaki によると、HTML4.0 や XHTML では仕様が改正されていて、2/27 に書いた「コメント部分」が複数含まれるような形が認められなくなっているそうです。いろいろありますねぇ。

2002/05/13

ちまたのスゴイ日記サイトなどを見ていると、僕も一日一つくらいは何か役に立つ情報を発信したいものだなぁと思います (ソフトを書いて公開する暇がない時はなおさら)。で Flash 5/MX 豆知識。

XML の送受信がイマイチうまくいかない場合、例えば2回に1回データ取得が出来ないとか、HTTP のリクエストにゴミがついちゃうような場合、次の2点を疑ってみるべし。

  1. Web Server の KeepAlive の設定は off になっているか? transaction を cgi で受けている場合は、そもそも大抵の場合原理的に KeepAlive 出来ないため問題になりませんが、Servlet や ASP/JSP 等で受けている場合は明示的に KeepAlive を off にしておく必要があります。
  2. Flash 側で受け取る XML は、omit-xml-declaration = yes な、xml declaration の付いていない形にしておく必要があります。

結構ハマりました (笑)。

2002/05/12

F1 オーストリア GP。琢磨の事故はびっくりしました。とりあえず命には別状ないようで、ほっと一安心です。次はモナコですからそれまでに治るといいなぁ。今日はあんまり速くはなかったけど、「何としても完走するぞ」という気合いが感じられただけに、またビルヌーブやフィジケラの様子からも HONDA エンジンの調子が良くなってきている風もあって、とても残念。それにしても、F1 でトップドライバーとなるには、ああいう事故をもらってしまわない「運」というのももしや大事なのかしら…なんて、3位表彰台のモントーヤを見ていて思いました。一歩間違えたら琢磨の立場にあったのはモントーヤだったはずですもんね。トップドライバーの強運には恐れ入ります。

フェラーリチームのチームオーダーについて、オーストリア GP 観客のブーイングには僕も同意。表彰台や勝利者インタビューでシューミーが非常に居心地悪そうにしていたのが印象的でした。彼は「チームの決定で僕は関与していない」と言いたい風でしたが、世間はそうは見ないでしょうねぇ (というか今のフェラーリチーム自体を組み上げたのはシューミーその人であるように思われていると思う)。なんだかんだ言って今年もタイトルを取るでしょうが、イモラでのバリチェロカー横取り (←事実誤認?) に続いて、もしかすると今後の流れを変えかねない出来事だと僕は思いました。セナやプロストと違って、シューミーってこういう露骨であからさまに selfish な行動を慎重に避けてるような印象があったんですが、今年に入ってからちょっと鼻につくような気がする。もしかしてサイボーグ・シューミーもいよいよ衰えが見え始めて、気持ちに余裕がなくなっているのかしら。

2002/05/10

先週ひいた風邪の治りが今ひとつで、今週は火曜のハーボットメンテナンス以降お休みさせてもらっていました。おかげでだいぶ調子も戻ってきて、子供たちともいつもよりはたくさん遊べて、よかった。

雨がふっていなかった一昨日、昨日は外に遊びに行っていたのですが、今日はあいにくの雨。末っ子の鳥乃が結膜炎になってしまったようで、あゆみさんが眼科に連れていっている間、僕は柊次と ICO の 2nd play をしていました (有葉は寝てました)。パズルの種が全部分かっているので今回は一気に解いてしまい、念願もスイカエンドも見て (スイカ食ってるのはもっぱら ICO じゃん!・笑)。やっぱりいいゲームだなぁと思いました。

そういえばもうすぐ FFXI が始まるんですねぇ。うまく回るのかしら。人ごとながら、似たようなサービスのお守りをしているものとして、ちょっと心配しています。慎重にβテストもしていたようですし、みずほのようにはならないかな?(笑)。

ぜんぜん関係ないけど、AirH" のような無線常時接続メディアが使えるようになると、電波の届く範囲を気にしないですむラジコン、が作れますよね。バッテリの持ちがいい小さいノート PC (VAIO C1 に LLL バッテリをつけたもの、とか結構イイかも) をコントローラにして、ライブカメラやマイクでリアルタイムにモニタリングしたデータをネットワーク経由で送信。モータやハンドルをネットワーク経由でコントロールすれば、電池が持つ限りどこまででもいける夢のラジコンが作れます。うう、楽しそう。ほい、と盗まれちゃった時非常に悲しそうですが…(笑)。

2002/05/05

普段使っている Linux のマシンの / パーティションを、ようやっと XFS に変更しました。以下に手順をまとめます。

  1. シングルユーザモードで立ち上げて、外付け IEEE1394 HDD にフル・バックアップを取ります (tar でまとめて置いておきます)。
  2. swapoff -a して空けたスワップ領域 (僕の場合は /dev/hda2) に、mkfs -t xfs -f /dev/hda2 でファイルシステムを作成します。
  3. mount -t xfs /dev/hda2 /mnt として上記で作成した領域をマウントし、/usr、/var、/home、/root、/proc、/tmp を除く部分をコピーします。また、/proc、/tmp、/var、/var/run あたりは空のディレクトリを作成しておきます。/usr や /var が入っていないと全部で 30M〜40Mbytes 程度ですから、元 swap 領域にも余裕で収まるでしょう。
  4. /mnt/etc/fstab を編集して、/ パーティションが /dev/hda2 となるように修正します。その際、xfs では errors オプションが使えませんから削除しておきます。/mnt/etc/mtab ファイルも気になるので手で修正しちゃいます。
  5. ここまで準備が出来た段階で、xfs enable な kernel を使って /dev/hda2 を root として起動できるかどうか確認します。僕の場合は HDD に用意しておいた MS-DOS 領域に kernel image をコピーし、LOADLIN で起動させることが出来ました。
  6. /dev/hda2 が / パーティションとしてマウントされていることを確認後、もともとの / パーティション (/dev/hda3) をマウント出来るか、また外付け IEEE1394 HDD をマウントできるかをチェックします。
  7. どちらも問題なく行えることを確認したら、/dev/hda3 をアンマウントし、mkfs -t xfs -f /dev/hda3 でフォーマットし直した後、再度マウントします。なお、この時点で LILO による HDD からの起動は出来なくなっています。
  8. 外付け HDD からデータを restore します (tar zxvfp - …って感じ)。また、新しい / パーティションの /etc/fstab (/etc/mtab も?) を修正しておきます。
  9. reboot します。上で書いたように HDD での起動は出来ませんから、僕の場合は DOS の boot floppy を使ってブートしました。
  10. DOS 起動後、HDD 上の MS-DOS 領域に用意しておいた LOADLIN を使って今度は /dev/hda3 が / となるように起動します。
  11. 無事、/dev/hda3 を / として起動できたらほぼ完了です。後は /sbin/lilo を実行して LILO を再インストール、mkswap /dev/hda2、swapon -a してスワップ領域を復活させておしまい。

ここ4〜5日ほど、熱を出して寝込んだりしてました。体力のマージンがほとんどないので、一度そうやって体力を奪われてしまうと復活するのに非常に時間がかかります。一晩で 5kg も体重が減ったぞ。

2002/04/19

風野先生のところより、「Who's the Scientist?」。子供たちがフェルミ研を訪ねる前と後に描いた科学者のイメージなのだそうです。僕なんかはコレとか好きだなぁ。それにしても before 側のハゲ頭率が異常に高いのが気になる。僕の母が昔、「私は禿げてる人好き。頭良さそうに見えるから」と言っていたことがあるんですが、これって結構一般的な感覚だったりして?

会社では Mac のインストール作業に二日ほどハマる。PC の常識は Mac の非常識。ちゅーか Linux のインストールより難しいよっ!(慣れの問題だっつーの)。

2002/04/14

Linux 問題。USB FDD しか繋がらない1スピンドルなノートマシンの、一つしかない / パーティションのフォーマットを中身のデータはそのままに変更するにはどうしたらいいでしょうか?答えが分かった方、ぜひまでご連絡を。

ちょっと補足。パーティションが一つしかない、というのは Linux から見ての話であって、primary partition としては3つ存在します。/dev/hda1 は dos が入っていて容量は 512Mbytes (ただしそのうち 320Mbyte あまりはハイバネーション用ファイルが占めています)。また /dev/hda2 は swap 領域で 256Mbytes あります。また、backup 用メディアとして ieee1394 接続 (cardbus 経由) の外部 HDD (ただし容量は半分しかありません) が利用可能です。

今のところ思いつくのは、dos 領域に installer kit を置き、そこから boot させた時に pc card 等も使えるようにしておいて、pc card 経由でいったん HDD の内容を dump、/dev/hda3 を新しい fs で再フォーマット後、restore する、という方法かなぁ。問題は、/ を XFS にしたいんですけど XFS が使える installer kit はあることはあるけど品質が未知数なところ、backup 用に使える外部 HDD が ieee1394 経由なので、installer に入っている generic kernel でまともに認識出来るとは思えないところとかかなぁ。

後、今確認してみたら linux は partition table の fs type に関係なく現在 swap 領域として使っている /dev/hda2 に ext2 fs 等を作成・利用することが出来るみたいですから、一時的に移行に最低限必要な環境をこちら側に作り、ここを / として立ち上げて移行する、という手も使えるかも。

2002/04/12

アリー・My・ラブ4」が終わってしまった…。周りの友人が皆薦めるので去年の秋 (そう、ちょうど 9/11 の前くらいでしたっけ) から再放送を見始めて、それ以来ずっと、なんですが、好きです。僕自身、なんだかんだいってここ1〜2年はそれなりに激動だったけど、この半年くらいで急に精神的にフラットになったなぁと思っていて (30 台にのったこととは関係ないと思うんだけど)、でも、このドラマを見ているとぐちゃぐちゃしていた頃の自分を思い出して、なんだか懐かしい気分になります。そういえば first season を見そこねてるんだよな。また再放送しないかな。

ひびきさんのとこより、「パンダ AIBO」。ぶははははははっ。

もう何年も仕事でもプライベートでも UNIX 環境をメインに使ってきてますが、それでも、僕はなんとなく UNIX な世界に対して半人前な感じがしています。僕の周りにいた UNIX ウィザード達のレベルにとうてい到達出来ていないからかな。僕は比較的どんな環境にも早めに適応できる代わりに、一つの環境にどっぷり浸かる、ということが苦手です。局所解ばかりで真の解に全然近づけない感じ。とかなんとかいいつつ普段使っている Linux 環境を XFS にしたくてウズウズしてたりして。

これはびっくり!オリジナル・フォント「みかちゃん」。こつこつをフォントを作る作業って、実は結構楽しかったりするのかな。僕も自分字フォントを作ってみようかしら。

G1 の UV フィルタの件ですが、純正アダプタ+58mm フィルタではやっぱりストロボや光学ファインダのケラレが激しすぎるので、結局ハクバの 43mm アダプタ・リングを買ってしまいました。とはいえたまっていたヨドバシのポイントで全額支払い、追加投資は0。一緒に買った kenko の MC UV フィルタだとちょっと効果が弱いみたいですが、レンズ保護、という意味で今までよりも安心感があるので良しとしましょう。見た目もちょっとかっこよくなったしね。

会社では最近新しい Flash、Flash MX と戯れる毎日。楽し〜。

2002/04/11

今日は P2P Conference に行ってきました。公文先生の基調講演は、いかにも大学の先生らしい非常に広い視野に立ったもので、とても面白かった。智民・智業による第三の組織形態の形成…あたりは、単純にこれまでの国家や企業といった組織形態しか思い描いていなかった僕にはちょっと新鮮でした。広い意味では Open Source 運動なんかもこの辺の動きに関連してる、と言えそうです。

対して、先日裁判所から仮処分命令が出た日本 MMO の松田社長の講演は、非常に狭い視野に立った (必ずしも悪い、と言っているのではありません) もので、これも結構楽しかった。放送業界やインターネットのバブリーな所を渡り歩いてくると、彼のような価値感を持つにいたってしまうのだろうなぁ…って感じで (わはは)。プロレスファンが非常に自虐的であり、バリャドリード (って言うんですか?>バーリトゥードらしい) には熱狂しつつちょっと斜めに見ている、という今まで知らなかったことも分かったし<って P2P と全然関係ないジャン!

一番の目的だった SKYLEY NETWORKS 梅田さん (お友達なんだよーってミーハーな俺) の講演も、お金を払って聞く価値があったものだと思いました。セントラル・ポイントの設定が肝、P2P・マルチホップ形態のコストメリット、その可塑性を生かした災害復旧時などの臨時通信網のアイディアなど、ためになる話が盛り沢山でした。いろいろ報道された Bluetooth 搭載のちっこい gadget[1][2] についてはさらりと流す程度でしたが、僕はこの手の端末は、日本なら Bluetooth を使うよりも PHS 端末として実装した方が面白いんじゃないかと思う。PHS ならもともとトランシーバとしての利用も考えられていたわけですし、上流 (Internet) への接続も既に常時可能です。無線部分は一種類で済むわけで、携帯に Bluetooth、みたいな二度手間感がなくて綺麗だと思うんだけどな。「運がよければ無料でメール送信可能!(つまりマルチホップで相手端末に到達出来れば…という意味で)」ってバカみたいな売りが出来て貧乏な学生さん達にも大受け (あれ、今も既に無料でしたっけ?)、端末数が増えれば結果的に収入も増える…というシナリオで説得出来ないかしら?

2002/04/07

昨日は谷本さんのお誘いで、シャチョーとフィンガーピッキングコンテントを見に行ってきました。僕はピアノとバイオリンはひいたことあってもギターはほとんどないせいか、出る人出る人みんなすごくうまいなぁと感心してばかりで、誰が一番だったのかは全然分かりませんでした。結果は夜に行われる第2部で発表されることになっていたので、聞かずに帰ってきてしまったのです。しかし、どうしてアコースティック・ギターをひく人、って皆優しげに見えるんでしょうかね。スナフキン効果と呼びたい。年齢層もすごく幅広くて、一生ひきつづける楽器、って感じで、すごくいいと思いました。

僕が使っているデジカメ、G1 のユーザーが集う「Club G1 BBS」で、G1 への UV (紫外線) の影響についての話題が出ていました。以前から「マゼンタかぶってる」とか「空に紫のノイズが」とか「夜景で紫の偽色が」などとさんざん言われた G1 の欠点の一部が、実は UV をひろってしまっているせいなのではないか、という話で、指摘された YBJ さんのページには紫外線カットサングラスから作ったフィルターを使った際の、夜景の偽色の劇的な軽減、空の色の変化のサンプルが見られます。これを見て、今までコンバータやフィルターには全然興味がなかったくせについ yodobashi.com で純正アダプタ・リングと UV フィルタを購入してしまいました。

買ってから初めていろいろと考えるのが僕の悪い癖で、今回もその後いろいろ調べてみたところ、テレコンやワイコンを付けるわけでなく単に UV フィルタを付けるだけなわけで、しかももし結果がよければずっと付けていたいと考えているとすると、純正の 58mm の巨大なアダプタ・リングよりハクバの 43mm アダプタ・リングの方が良かったなぁ…なんて思っています。そのうち買い直しちゃうかも。あんまり高いわけではないところが罠だよね。

ところで一般的にはデジカメには UV フィルタは効果がない、と言われているそうですが、僕が思うに、G1 を始め補色系フィルタを使っているカメラには効果ありそうな気がします。

ます、もともと CCD は可視領域外まで光をひろってしまうものであること。次に、原色系フィルタがフィルタを通過し CCD が受けた光を基本的に加算することで最終的な絵を作っているのに対し、補色系では YMC→RGB 変換により最終的な絵を作っていること。YMC→RGB 変換は簡単に言うと次のような処理ですよね。

Y = R + G, M = R + B, C = G + B から変換すると
R = (Y + M - C) / 2, G = (Y - M + C) / 2, B = (-Y + M + C) / 2

ここで気になるのが M (マゼンタ) で、マゼンタは青と赤の混合色なわけです。つまり、波長の一番長い光と一番短い光の混合、となると、紫外領域や赤外領域が含まれてしまっても何の不思議もありません。というかマゼンタフィルタ、ってのはきっと可視領域の中間部分をばっさりカットするものなんだろうと想像できます。原色系の RGB、補色系の YC の各フィルタは基本的に可視領域の光のみを通過させるため紫外、赤外領域の光は CCD まで届かないのでしょうが、補色系フィルタの M、つまりマゼンタが可視領域外の光を通過させてしまっている可能性があるのだと思います。

海外では盛んに撮られているらしい IR 写真 (IR フィルタにより赤外領域の光のみを撮った写真) が、G1 では撮れても G2 ではうまく撮れないらしい、という現象も、この理由からなんとなく納得できます。わざわざ紫外線フィルタや赤外線フィルタが G2 になって追加されているわけではなくて、それぞれ、原色/補色フィルタの特性なのではないか…と。

とかなんとか言っても、実はここここを見る限りにおいては、原色 CCD も補色 CCD も可視領域外光の割合についてはあんまり違いがなさそうだよな〜。うーむ分からん…。

2002/03/24

ICO」、終わりました。素晴らしいゲーム。まだの人は、ぜひ。絶対買ってプレイした方がいいですよ。一生手元に置いておきたくなる作品ですから。(ネタバレ含む感想はコメントで。)

ところで、ICO のサントラを見ようと久しぶりに古巣 (といっても具体的に関ったことはないのですが)、「egstreet(SonyMusic の Online Shopping Site)」を見にいってびっくり。Netscape 6 をサポートしないのはまぁ分かるとして、IE6 までサポートしない、とトップページに書いてある (汗)。これは P3P への対応なんかのせいなのかなぁ。僕の感覚だと既に IE6 は全 IE ユーザ中 25〜40% くらいで使われている感じなので、これがトップページに書いてあることって実は結構イタイんじゃないかと思う。P3P への対応は、例えば @IT などの記事を読めばそれほど難しくないんですけどね。がんばれ。

2002/03/21

今日は一番下の子供、鳥乃の1歳の誕生日でした。そのお祝いも含めて、またしてもみんなでサンリオ・ピューロランドへ行きました。ここのようにショー主体のアミューズメント・パークですと、何度か行っても大抵プログラムが入れ替わっているため飽きずに楽しめてうれしい。

mozilla 0.9.9 が先日出ましたが、このバージョンから自分で freetype のライブラリを叩くことで TrueType font をそのまま使うことが出来るようになりました。freetype が持っている antialias 等の機能も当然使うことが出来て、こんなイメージでブラウジング出来ます。なかなかナイスなんですが、bold や italic の表現が QT を使った他のアプリケーションなどと比較するといまいちで、もう少し詰められそう。あと、TrueType Only には出来なくて、何かというとこれまで通りの font (antialias なし) が使われてしまうところはちょっと残念。それにしても次は 1.0 のはずなのに、いまさらこんな機能を入れていていーのか?!

そういえば自宅-会社間で使える IM が欲しくて、KDE 用の MSN Messenger、kmerlin を入れてみました。これ、Debian woody にある version の 0.3.1 でもとりあえずメッセージは問題なく日本語が使えるのですが、相手の名前などが日本語の場合化け化け状態でした。そこで、またしても適当に patch を当てて化けないようにしたのですが (QT2 は内部 Unicode なのでこの手の処理は非常に楽チンプイ)、配布元で最新の 0.3.3 の source を確認してみたところ、既に fix されている模様。なので今回は報告ナシ。

2002/03/18

あれはプロテクトではないです。」AVEX が導入したコピーコントロール技術、CDS についてのプロテクト技術者の見解。これまでのプレイヤーで再生できることと、これまでの CD-ROM ドライブで読み出せることがほぼ同義である以上、完全なプロテクトは原理的に不可能で、記事でもかかれているように「通常のプレーヤでは再生できるが、大多数の CD-ROM ドライブでまだ読めない」ような特殊な書き方をし、かつ「それを迂回する技術を規格で禁止」するしかないのでしょうね。AV Watch の記事を読んでいると、プレスメーカとしての危機感は分かるんですがそれを「音楽の衰退」というところへ直結させてしまっている点には違和感を感じます。僕の印象では、彼らのような「売らんかな」主義こそが音楽を衰退させてるようにしか思えないんですが…。レコードに再販制度が導入された経緯はしりませんが、その思想はきっと、書籍と同様に「多様性の保護」という点にあったはずです。高々十数社のメジャーレーベルがほぼすべての CD のリリースを管理、支配している、という状態は、すでにその理想からはほど遠いところに来てしまっていると思います。まだ書籍業界の方が健全な気がする…。

結局のところ、CD というデジタル技術を、そのデジタルであるということが持つ意味をよく理解せずに安易に導入してしまったプレスメーカの失策なわけで、一時的には莫大な利益を生んだにせよ、その反動は甘んじて受け入れるしかないと僕は思います。痛みに耐えつつ、よりよいシステムに移行するしかない。たちゆかなくなるプレスメーカも現れてくるでしょうが、しょうがないです。ただし、そのことと音楽産業全体が衰退することは、僕は一緒に考えるべきではないと思います。JASRAC、という組織に対してはいろいろと言いたいことがある人も多いでしょうが (あの CM はイタいよなぁ〜とか・笑)、著作権法という法律と、JASRAC という実動組織が、本質的にきちんと機能してさえいれば、プレスメーカがつぶれようが何しようが、音楽産業は安泰なはずです。そりゃ、かつてのように「ミリオンセラーが年間数十枚」とか、「売れりゃウハウハ」みたいな状況はなくなるでしょうが、とりあえずアーティストが食べていくのに困らないくらいのお金を還流することくらいは出来るはず。ちゅーわけで JASRAC はもっと働こうね。

JASRAC に相当する組織が実質一つしかない、というのも大きい問題だよなぁ。本来なら権利者が、その業務内容、評判によってその手の代行業者を選択出来るようになっているべき。そうすれば自然と権利侵害のチェック強化や利用申請の簡略化など、ユーザ、権利者双方の利益となる方向への競争が発生するはずなんですけどね。

先月、会社のインターネットへの固定 IP アクセスラインを OCN から ADSL へ変更しました。この回線の上では DNS、SMTP、HTTP、HTTPS の各サービスを提供していたのですが、これらのサービスをほぼ停止することなく移行させることが出来ました。その時の手順のメモ。

  1. まず前提として、1) OCN 側の古い IP アドレス (以下旧 IP) 側で使っていたサーバをそのまま新 IP 側でも使う、2) ADSL 側には一時的に IP アドレスを割り当てて利用できるサーバ資源があるものとします。
  2. ADSL 側の新しい IP アドレス (以下新 IP) 側に、serve したい DNS domain の primary server をあらかじめ立てておきます。その際、MX は旧 IP 側 SMTP サーバを primary、新 IP 側 SMTP サーバを secondary となるように設定しておきます。
  3. 新 IP 側の HTTP サーバ、SMTP サーバは、とりあえず旧 IP 側のサーバへ全サービスを転送するようにしておきます。HTTPS はしばらく無視。ちなみに設定を間違えて anonymous proxy server を作ってしまわないように注意してください。通常3日ほどで発見され、踏み台としてバカバカジャンジャン利用されてしまいます。
  4. プロバイダや NIC と連絡を取り、DNS 設定の変更を行います。DNS の変更が完全に伝搬するにはどうやら1〜2週間程度かかるようです。
  5. 旧 IP 側サーバへのリクエストがなくなり (上記で書いているように MX はこちらが primary となっているので SMTP だけは除外)、全て新 IP 側のサーバへやってくるようになったら、えいやっとマシンを移動します。具体的には、1) 一時的に利用していた新 IP 側のサーバを撤去 (論理的にで構いません) し、2) 旧 IP 側で service していたサーバを、IP アドレスの付け替え、DNS 情報の更新 (これはあらかじめやっておけます) をした後、設置します。目標ダウンタイムは 5 分 (笑)。
  6. DNS の MX 情報を新 IP 側が primary となるよう変更します。

以上です。こんなこと、常識でした?

2002/03/17

「METAL GEAR SOLID 2 SONS OF LIBERTY」クリアしました。後半はあれよあれよという間にコンプリートしてしまって、とはいえ満足度が低いわけではなく、面白かったです。このゲーム、前作の PS 版のころから、ほとんどムチャとも思えるくらいリアルタイム・レンダリングにこだわってるなぁという印象がありましたが (PS でモーションブラーやピンボケを表現していたのにはたまげた)、その方向の進化がとんでもないところまで行ってしまっていますね。そのこだわりの副産物とも言える、クリア後に見られる CASTING THEATER が笑える。

全体的な印象の話。PS2 へとハードは大幅にスケールアップしたにも関らず、ゲーム全体のイメージは前作よりも小粒な感じがします。それは、FOXHOUND よりも DEADCELL の方が人数が少ないから、とか、ストーリーの流れがあくまでも前作のそれを踏襲している (もちろん訳あって、なんですけど) せいでなんとなく前作のサブセット的なイメージになってしまっている、など、いろいろ理由はあるのでしょう。なんでも雷電は非常に評判が悪いそうですねぇ。あの頭の悪さは必然的なものとは言え、ちょっと情けなさすぎてガックリきちゃうことも確かにありました。対してソリッド・スネークのジジイっぷりがおかしく激しく笑った。「無限バンダナだっ!」には特に大爆笑。ネタバレごめん。僕はスナッチャー以降しかプレイしたことありませんが、相変わらずの小島節は健在で、劇中の各キャラクターはしゃべり始めるともー延々としゃべってます。また本筋とは関係ないトコロで異常に凝ってて、ボリューム感自体は本当にスゴイ。思わせぶりなラストを持ってきているんだし、ここは一つ、PS2 でもう一本、こんどは完全オリジナルでシナリオも濃密な続編を期待しましょう。

全体印象があっさりしていることの副産物として、もう一度くらいプレイしよう、という気がバリバリ起こっています。何しろ今回は「豚」でしたし…。次は一人も殺さず、一回も見つからずを目指すゾ。

2002/03/11

Final Fantasy XI が、online only でソフト 7800 円、月額サービス利用料 1280 円というサービス内容で5月16日スタート、だそうですが…。僕の会社でもこれ、相当話題になりました。曰く、online only は無謀、ソフトで 8000 円近く取っておいてなおかつ月額利用料 1280 円はぼりすぎ…等々。そんな中、皆で比較的意見が一致したのは、「半年後くらいに offline 版がリリース」「サーバの負荷に余裕が出てきたら月会費値下げ」の2点。結構割高に感じる価格設定も、サーバ負荷等の読みがたぶんすごく難しいため、初期ユーザをある程度絞りこみたい、という意思の現れと見ました。はてさてこの予想、あたるかな?

2002/03/10

「ソラリスの陽のもとに」(スタニスワフ・レム) を今さらながら読みました。実に良かった。書かれたのが60年代初めと、まだ人類が月へも到達していなかった時代にしては、テクノロジー的にはそれほど違和感もなく (無線機が真空管であるという記述くらいかなぁ、おや、と思ったのは)、テーマには普遍性があり全然古びていないことに驚きました。こんなこと書くと両方のファンに叱られそうですけど、僕がこれを読んで余韻に浸っている時思ったのは、「新井素子って、この話が大好きだったりするのかなぁ」ってこと。ヒロインをめぐるラストの展開はなんとなく「グリーンレクイエム」を思わせますし、ソラリスの海のありようは「そして、星へ行く船」に出てくる異星人のルーツかしら、なんて思えます (とはいえ、「そして…」の異星人の場合は人類と感応するだけの感情を持っているらしいことが前提となっているようで、そういう意味ではずっとロマンチックな話なわけですが)。ほんとの SF ファン (って何だそれ?!) にこんなこといったら「ハッ…」って失笑を買いそう。映画版の「惑星ソラリス」もちょっと見てみたくなっちゃいました。話の流れとしては結構漫然としていますし、テイストとしては 2001 年みたいな感じなんでしょうか?

「ソラリス」の直前に SunOS…じゃなくて (ヲタクギャグ)、「サンドウーマン (ってどこかの小説に書いてあったから英語題はそうだとばっかり思ってたんですが、実は The woman in the dunes、って言うんですね)」、つまり「砂の女」(安部公房) を読んでいたので、「ソラリス」に関しても、その本来のテーマであるらしい「ソラリスの海」という未知の生命体のありようについて考える前に、男と女の一対一の関りについてに大変気を取られてしまって。でもでも、クリスとハリーの関係、という視点で見るだけでも (ソラリス学についてほとんど流し読み状態でも)、とても切ないオハナシとして、十分満足できちゃいますよね。ね。ね。

「砂の女」に関しては、「教師ほど、妬むという感情を強く持つ職業はない」という記述あたりに結構ヤラレました。確かにそうですよねぇ、「俺が育ててやったんだ」と言い切って憚らないようなぼんくら勘違いヤローでもない限り、日々素晴らしく成長し、自分のもとを飛び去っていく生徒たちを、決まりきった生活、枠組みの中で常に眺め続けなければならない立場に置かれて、妬まない方がおかしいってもんですよ。やっぱり先生っていうのは向上心とか上昇志向とかと無縁の、ある意味人生を達観してるような人でないとやっていけないのではないかなぁ…なんて思いました。俺は今はまだ全然ダメです。そばでバリバリ成長している人がいたとしたら、妬ましくて悔しくて自分も何とかついていこうとしちゃうのではないかと思います (卑屈になって相手を否定しにかかる、という可能性も無きにしも非ず。ヤな奴だ…)。

そういや本屋の店頭でえらいびっくりしたんですが、ボリス・ヴィアンの「うたかたの日々」が永瀬正敏、ともさかりえ等々によって映画化されているんですね (タイトルは「クロエ」というらしい)。実は大変人気のある小説らしいので「さもありなん」という感じではあります。僕も10年くらい前に一度読んだはずなんですが内容はすっかり忘れてしまっているなぁ。しばらくしたらもう一度読み直してみようかしら。

そういえば僕は「読み直し」ということをほとんどしたことがありません。そろそろ読み飛ばすだけじゃなくてじっくり読み直して深く理解するような読み方をしてもいいころだよなぁと自分でも思う。

ぱっと思いついた読み直したい本いくつか。

逆にまだ読み直したくない本。つまんなかったので読みたくない本は除く (たくさんありすぎるので・笑)。

今日は僕の実家で1〜3月期の誕生パーティでした。我が家の子供たちくらいの年代だと、まだ「プレゼントとして何をもらっても飛び上がって喜ぶ」感じなのがかわいい。もう少ししたらいろいろと難しくなるのだろうなぁ。

2002/03/06

シャープから新しい Zaurus が発表になりましたが…Linux Zaurus は日本では発売してくれないのかなぁ? Qtopia のクリーンな画面がとても魅力的なのに…。全然関係ないけど、シャープの PC が Mebius、PDA が Zaurus という名前なのは、かつて一世を風靡したシャープ製パソコン (マイコン?)、MZ シリーズから取ったんだそうですね。MZ-2000 とか、憧れたよなぁ。

カシオが携帯機器用燃料電池を開発、2004年には実用化、だそうで。何がいいって、まるで100円ライターのような、燃料 (メタノールらしい) の残量が一目で分かるそのデザインがサイバー (死語)。メタノールをいちいち買うのがウザイ、という意見もありましょうが、コンビニで2リットル単位くらいで売ってたら全然困らないでしょ。漏斗と手でちょろちょろ入れてると火事間違いなしなんで、ライターのガスボンベみたいに補給用インターフェイスが共通化されるといいなぁ。マイクロリアクターの寿命って、どのくらいなんですかね?

今日は有葉の幼稚園で「かにむかし」劇を見ました。みんな頑張って演技してて、とてもかわいかったぞ。平日の午前中、なんて時間なのに、僕以外にも何人かお父さんが来ていてちょっと安心&嬉しかった。最近は結構フレキシブルな勤務時間を許す職場が多くなってきている、ってことなのかな?

2002/03/04

HTML のコメント話ですが、なかなか一筋縄ではいかないです。IE や Opera などでは、コメント部分内に「>」が出現しただけでコメント終了、と見なすようですナ。しっかしこれを馬鹿正直に実装してしまうと JavaScript 中に > が含まれている時などにとんでもないことになってしまうでしょう。本職のブラウザたちは JavaScript は JavaScript で別に parse するから平気なのだろうなぁ。なんかずるい。Netscape はこの辺結構厳密に実装してあるみたいで、IE や Opera ではふつ〜にコメントと見なされてしまう「<!--- ほげっち ---!>」みたいなタグもちゃんとコメントが閉じていないと見なされるみたい。

2/27 に書いた KMail の修正 (body に 7bit で表現出来る文字しか含まれていない場合は content-transfer-encoding: 7bit とする) ですが、本家に wishlist として報告しようとしたところ、バグ報告フォームで蹴られてしまうという事態発生 (Debian testing には kmail が含まれていないとかなんとかよく分からん理由)。そりゃ糞みたいなバグレポートばっかりきて開発者がいやんなっちゃう、という気持ちも分からなくはないですが、レポート出来なくしちゃうのでは本末転倒でしょう。ちょっと失望。

今日また会社で Debian potato マシンを1台セットアップしたんですが、potato って今だ ssh1 しか含まれていないのですね。apache も 1.3.9 までしか入ってなかったりして、potato もずいぶん古くなったなぁ…と思いました。相変わらず Debian の新しい stable version (woody) は難産なようですが、これだけ毎回苦労していると、何か根本的にやり方を間違っているんじゃないだろうか、と思ってしまいます。

Debian の今の testing のあり方は、依存関係の破綻が起きないよううまいこと処理されれば本質的にはなかなか good だと思うんですよね。そしてここのところ致命的な依存関係の破綻はほとんど起きていません (KDE や GNOME のような巨大なパッケージ群ではたまに問題が起きることもまだありますが…)。すると後の問題は testing をいつ stable へ移行させるか、という1点に絞られます。

僕は、厳選された base パッケージ群、つまりに最低限 Debian GNU/Linux システムを構築するのに必要なパッケージ群に、致命的なバグがなくなった時にリリースしちゃえばいいと思うんですよ。base 以外のパッケージ全てをフリーズしたりバグがなくなるまで待っていたりしては、そりゃいつまで経ってもリリースなんて出来ないと思うんですよね。base パッケージ群だけはちょっと気合いを入れてデバッグして、残りのパッケージに関しては testing 移行条件と同じか、それよりもほんのちょっと厳しいくらいの条件で stable としてしまえばいいんじゃないかと思うんですが、どうでしょうか?

2002/03/02

HTML のコメントの話のつづき。規格上は 2/27 に書いた通りなんですが、実際のブラウザの実装では、コメント部分の開始マーク (--) の直後にコメントの閉じタグ (>) がある場合、またはコメント部分開始直後に「->」がある場合もコメント終了、と見なすような実装になっているようです。いそいそと修正…。

これ、結構カッコいいっすね…。ロード系のコンポにブルホーンバー、街乗り遠出パターンにはぴったりじゃないでしょうか。それほど重くもないし。

2002/03/01

宮部みゆき「模倣犯」を読みました。(実は、ここのところ宮部みゆきづいているのは、会社の SMAP 中居くんファンにほだされて、というのが大きいのです。中居くんが今度この作品を映画化したものに出演するらしいのですね)。あとがきによると3年以上にもおよぶ週刊誌連載として発表された作品だそうで、なるほど、それならあの異常に長大なボリュームにも、エピソード魔的構成にも多少はうなずけるというものです。

今回、正直あのボリュームにも関らず一気に読んでしまったんですが (この人の作品は非常に読みやすいですね)…リアリティを重視するせいでしょうか、登場人物がいとも簡単に「被害者」になってしまう展開が多すぎて、オハナシとしてはあんまり楽しくなかったです。かと思うと、とても現実では起こりそうもないような登場人物間の遭遇があっさり書かれていたりして。どうもこの作者と僕の「リアル」に関する感覚は、ずいぶん違うもののようですね。

それにしても、エピソード魔としか思えない、あの殺人的な量のたくさんの登場人物に関するエピソードは本当に必要だったのか。ミステリーはほとんど読んだことがないので間違っているのかもしれないですが、作中のある人物が謎を持っているとして、そのエピソードをその人物の一人称の語りとしてでも、神様的な第三者からの見解としてでも、あらかじめ語ってしまうことはまぁアリだと思います。でも、その「語り」は、最終的には劇中世界でも何らかの形で知らしめられなければいけないものなのではないですか?この作品で言うなら、長大な第2部で語られるエピソードのほとんどが、劇中世界の人達には永遠に知ることが出来ないような形であっさり捨てられてしまうのです。知っているのは本人と、小説を読んでいる人間、神様だけなんです。そのようなエピソードが全く不必要だ、とまでは言いませんが、それでも、読者に知らされる情報は、劇中世界で客観化された情報+αって感じの方がよかないですか。ミステリー小説の客観性について過度な期待を抱いているのだろうか。「月は、私が見ていない時でもそこに存在しているのだろうか?」という感じかも。「模倣犯」は「存在している」という立場で書かれた小説、世界との接点がまったくない事柄でも、起こったことは事実、それは確かに存在している、ということに、何の疑いも持たずに書かれた小説だと思いました。僕はそういう古典的な存在認識については盲目的に受け入れられません。何ものでも、世界と何らの接点があってこそ、初めてそこに存在すると言えるのではないかと思っています。このお話を読んで感じたのはそんなことでした。

3年以上にも渡って書かれる小説ともなると、プロットの独自性や新規性、面白さだけで引っ張ることはもやは不可能で、どうしても細かいエピソードに頼りがちになってしまうものなのかもしれませんね…なんて言ってみる。意地悪&おまえは何様だ的見方ですね。

ミステリーと言えば、理系作家として有名になっている森博嗣「すべてが F になる」も読んだのでした。アリバイトリックに使われているテクニックを説明する時の、「それがコンピュータの常識だ」という事柄 (ネタばれになってしまうので細かくは書きませんが) には思わず吹き出してしまいました。そぉかぁ?その手のデータは普通 write once なデバイスで保管しないか?最低でも書込み禁止にはしておくだろうから、残るのは「古い方」のデータだし、書込みエラーもログに残っているはずだろう?

確かに全体に理系っぽい雰囲気が漂ってはいるのですが (専門用語もバリバリ登場しますし)、肝心のトリックの部分については非常に古典的だったり (密室トリックのあの解法には確か先例があったような) 上で書いたみたいにちょっとおマヌケだったり技術的に大して面白くなかったり (タイトルの「すべてが F になる」ということの意味も想像した以上のものでは全然なくてちょっとがっかり) と、僕が期待していたような理系小説とは大分違いました。やっぱりミステリーはミステリーで、SF のようなものを期待する方が間違っているのかな。僕にとってはアシモフの「我はロボット」「ロボットの世界」の方がずっとよくできたミステリーだと思えます。はい。

いや、普通のミステリーとして読めばかなり面白い小説だと思いますよ。十分あっと言わせるだけのアイディアは詰め込まれています。これから読もうと思っている方もご心配なく。

2002/02/27

今日は満月の中でも特に明るく、大きい満月なのだそうです。とっても楽しみ。東京は雲が多いみたいですが、綺麗なお月様、見られるかな。

CinemaCraft Encoder の話。ちょっと前にソフトウェア MPEG2 エンコーダについて情報を集めている時、一番評判がよかったのはコレでした。国産だったとは知らなかった。この手のとんがったソフトは大抵海外製だと思うようになっているなぁ、最近。次回は TMPGEnc の作者にインタービューだそうで、ちょっと期待大かも。

HTML のコメントは SGML のコメントなわけですが、その文法について勘違いしてました。僕は「<!--」で始まり「-->」で終わるんだと思ってたんですが、実は、

なんだそうです。ですから「<!>」というのもコメントですし、「<!-- hogehoge -- ここは無視されるみたい >」なんてのも IE は1つのコメントとして扱います。訳あって仕事で HTML parser を書いたんですが、これはちょっと知らなかったですねぇ。

mozilla のメーラーにもちょっと飽きてきて、試しに KMail をちょっと使ってみています (自分のメーラーはどうした、というツッコミが…・汗汗)。これ、だいたいのところは結構シンプルで使いやすいメーラなんですが、www.kde.gr.jp にある日本語環境向け patch を当てても、「content-tranfer-encoding ヘッダに quoted-printable か 8bit しか選べない」、という、古の Microsoft Internet Mail のような仕様で困っていました。

そんな中、今日ふと思いついたんです。「そうだ、ソースあるんだから自分でちょこちょこっと直しちゃえばいいじゃん。」

その後、30分 hack でちょこっと作った patch が以下です。KMail 1.3.2 のソースに当たるんじゃないかと思います。これで日本では一般的な content-transfer-encoding: 7bit でメールを出せるようになります。ほとんど何も意味分からずに作ってますから、当然無保証です。トラブルが起きたとしても自己責任でね。

kazawa@digitune:~/src/debian/kmail/kdenetwork-2.2.2/kmail$ diff -c kmcomposewin.cpp.orig kmcomposewin.cpp
*** kmcomposewin.cpp.orig       Wed Feb 27 23:49:38 2002
--- kmcomposewin.cpp    Thu Feb 28 00:03:34 2002
***************
*** 1183,1199 ****
      mMsg->deleteBodyParts();
      mMsg->setAutomaticFields(TRUE);
      mMsg->setHeaderField("Content-Type","text/plain");
- 
-     mMsg->setCteStr(isQP ? "quoted-printable": "8bit");
- 
      if (mCharset == "default")
        mCharset = defaultCharset();
      mMsg->setCharset(mCharset);
      QCString body = pgpProcessedMsg();
      if (body.isNull()) return FALSE;
      if (body.isEmpty()) body = "\n";     // don't crash
  
!     if (isQP)
        mMsg->setBodyEncoded(body);
      else
        mMsg->setBody(body);
--- 1183,1210 ----
      mMsg->deleteBodyParts();
      mMsg->setAutomaticFields(TRUE);
      mMsg->setHeaderField("Content-Type","text/plain");
      if (mCharset == "default")
        mCharset = defaultCharset();
      mMsg->setCharset(mCharset);
+ 
      QCString body = pgpProcessedMsg();
+     char *cbody = body.data();
+     int is_8bit = 0;
+     for (int i = 0; *(cbody + i) != '\0'; i++) {
+       if (((*(cbody + i)) & 0x80) != 0) {
+         is_8bit = 1;
+         break;
+       }
+     }
+     if (is_8bit)
+       mMsg->setCteStr(isQP ? "quoted-printable": "8bit");
+     else
+       mMsg->setCteStr("7bit");
+ 
      if (body.isNull()) return FALSE;
      if (body.isEmpty()) body = "\n";     // don't crash
  
!     if (is_8bit && isQP)
        mMsg->setBodyEncoded(body);
      else
        mMsg->setBody(body);
***************
*** 1213,1225 ****
      // create bodyPart for editor text.
      bodyPart.setTypeStr("text");
      bodyPart.setSubtypeStr("plain");
- 
-     bodyPart.setCteStr(isQP ? "quoted-printable": "8bit");
- 
      if (mCharset == "default")
        mCharset = defaultCharset();
      bodyPart.setCharset(mCharset);
      QCString body = pgpProcessedMsg();
      if (body.isNull()) return FALSE;
      if (body.isEmpty()) body = "\n";     // don't crash
  
--- 1224,1247 ----
      // create bodyPart for editor text.
      bodyPart.setTypeStr("text");
      bodyPart.setSubtypeStr("plain");
      if (mCharset == "default")
        mCharset = defaultCharset();
      bodyPart.setCharset(mCharset);
+ 
      QCString body = pgpProcessedMsg();
+     char *cbody = body.data();
+     int is_8bit = 0;
+     for (int i = 0; *(cbody + i) != '\0'; i++) {
+       if (((*(cbody + i)) & 0x80) != 0) {
+         is_8bit = 1;
+         break;
+       }
+     }
+     if (is_8bit)
+       bodyPart.setCteStr(isQP ? "quoted-printable": "8bit");
+     else
+       bodyPart.setCteStr("7bit");
+ 
      if (body.isNull()) return FALSE;
      if (body.isEmpty()) body = "\n";     // don't crash

2002/02/26

ノート PC 向け水冷システム。以前会社で、最近の PC のデカくて仰々しい冷却システムをもっとスマートに出来ないか、なんて話をしていた時に、冷媒+対流+ラジエターを使えば無音で冷却できるじゃん?なんて冗談を飛ばしていた話が現実に…(笑)。ポンプレスではないようですが、それでも空気をかき回すファンに比べればポンプは大分静かですからね。早く実用化されてくれないかな。日立ってこれまで PC 分野ではあんまり存在感がありませんでしたが (かつてはベーシックマスターや S1 で相当ブイブイ言わせてたのに…)、このシステムで一気にブレイク、といくでしょうか。僕としては IBM や東芝にじゃかじゃか OEM してほしい。同様の仕組みを各社が作るんでもいいですけどね。

例のアレの新機能を無事リリース出来ました。みんな使ってくれるかしら。

日付はちょっとインチキです(笑)。

2002/02/25

PSO のバックエンドについて。全部 Linux、というのには結構びっくり。web server くらいならあんまり不安なく Linux も使えるようになってきましたが、Thread がたくさん回る application server や IO 負荷の高い db server でも PSO クラスの規模の traffic をさばけるようになってきたんですね。それでも「Thread をなるべく使わないようにした」とかいう記述もあったりして、結構笑った。バックエンド・プロセスは普通の unix process なのかなぁ。この手のプログラムは Java だとすごく書きやすいんだけど、Java では Thread を使わないようにする、というプログラミングスタイルは不可能に近いし…。

2002/02/24

毎日更新のつもりが2週間も空いてしまいました。

「ボクと魔王」、やっと終わりました〜。いやぁ長かった。いえ、ゲームとして長大、というわけではなくて (どちらかというとコンパクトなゲームだと思う)、もっぱら我が家のプレイスタイルの問題であるわけですが。やっぱり「デュープリズム」似の小粋な小品、といった趣きの作品でした。よかったよかった。

会社で XBox の「Dead or Alive 3」をプレイ。これだけ見ている分には PS2 の DOA2 との違いが今ひとつ良くわからなかったんですが、家に帰って改めて PS2 の画面と比較してみると、やっぱり結構違いますね。ステージの作りやキャラのモデリングあたりにはそれほど決定的な差を感じないながら、やっぱりテクスチャ周りや画面エフェクト周りのポテンシャルの違いは歴然…かも。PS2 は PS2 向けの表現をきちんと追求する必要があることを改めて痛感しました。こりゃ、同じ土俵じゃ戦えんよ (PS2 の DOA2 は結構初期のタイトルではありますが)。それにしてもあのコントローラは DC のものによく似ていますねぇ。

そうそう、DOA シリーズと言えば、僕は SS 版、PS 版、PS2 版とやってきて、基本的には「乳揺れコスプレ格闘ゲーム」だと認識していたのですが (笑)、XBox 版はほんの少しマジメぶりっこです。媚媚ボイスも少なめで、コスチュームもそれほどすぐには手に入れさせてくれないようで。オプションからも「乳揺れ on/off」設定がなくなってる (笑)。

先週は熱を出して寝込んでいました。仕事が忙しい時に限って風邪をひく…。

2002/02/10

一番下のふたり (柊次と鳥乃) の調子が相変わらずあんまりよくありません。明日も家でおとなしくしている予定。なんだか連休のたびに病気している気がするぞ…。

家でおとなしくしていると子供たちは退屈して大変なんですが、なかなかうまく遊んであげることが出来なくてもどかしい。大人が (昼まで寝ていたりせずに) きちんと生活することがまず最初なんでしょうが、僕はまだまだ失格。オヤジのようにはなかなかなれないなぁ。

鳥乃と言えば、別にそこから取ったわけではないのですが、イタリアに「トリノ」という都市がありますよね。聖骸布で有名で、セリエ A のチームもあるところ。イタリア語には男性名詞、女性名詞というのがある、というのを聞いて以来、「トリノ」はどっちなのかしら…と思っていたのですが、今日ちらりと見たページによると女性名詞みたい。ちょっと嬉しかった。

2002/02/09

なんだか既に鼻の調子が悪かった一日。もう花粉が飛んでるのかなぁ。ぼーっとしちゃって何もする気が起きない。子供たちもまだ体調が本調子じゃないし、この休みは家でゆっくりしていよう…。

2002/02/08

nVidia から順当に GeForce4 が出たわけですが…。その強化ポイントがもっぱら 3D 系に偏っているのは個人的にはどうかと思うなぁ。そりゃ、リアルタイムレンダリングの世界はまだまだ追求すべきものの多い分野なのでしょうが、PC というコンシューマプラットホーム上で今ユーザーが求めているのは、そちらの方向にさらに進化すること、ではないような気がするんですよね。現に、今でも既に GeForce3 Ti を積んだハイエンド・カードよりも、GeForce2 MX などを載せたミドルレンジやエントリークラスのカードの方が人気があるでしょう?もちろん安いから、というのも大きいとは思いますが、僕は、この国にはどちらかというと「本当に必要そうだと思えるならば高くとも買っちゃう」タイプの人が多いように思っていて、にも関らず、GeForce3 Ti がメインストリームとなっていないのは、GeForce3 Ti レベルの 3D 性能ですら、本当に必要性を感じている人があまりいない、ということの証拠なのではないかと考えます。

もちろん、レンダリング性能が上がって出来ること、表現力が上がれば、それによって初めて可能になるアプリケーションも存在するわけで、新しい市場を切り開ける可能性がある、とは言えると思います。でも、「卵が先か、ニワトリが先か」という感じではありますが、僕は、そういう先駆的なアプリケーションは、PC のようなマス・マーケットからではなく、もっとハイエンド、ニッチな市場から生じてくる方が自然なように感じます。マス・マーケットを相手にするならば、一つの方向にあんまりとんがりすぎるのは得策じゃないと思うんですよ。

そう考えると nVidia の製品ラインナップもちょっと謎で、デスクトップ用、ラップトップ用と分かれているのはいいとしても、デスクトップ用が単なるレンダリング性能の違いによる階層的ラインナップとなっているのがまったく解せません。日常的に 3D アニメーションを扱うような Graphics Workstation 向けの、3D 性能やレンダリング品質等を極限まで追求した GeForce4 Ti と、マス・マーケットに向けて、3D 性能はそこそこながらもっと使われる可能性の高い機能、例えば動画再生支援 (DCT、de-interlace、色空間変換、高品位スケーリングなど、この分野にもコ・プロセッサが必要な機能はたくさんあります) や高品質な DAC、さまざまな出力フォーマットに対応した GeForce4 MX の組み合わせ、の方が訴求力があるように思ってしまふ。

一次元的製品展開が個人的に嬉しくないことの理由の一つとしては、ビデオチップのトランジスタ数が増えすぎてしまうことへの危惧があります。トップエンドのモデルならば全ての機能がそろっているけど CPU 並みに発熱する、というのでは、非常に使いにくいです。すべての機能がその必要性に応じて高い次元でバランスをとりつつ、適度な量のトランジスタ数で収まっているチップこそ、今僕にとってはもっとも「欲しい」と思えるチップですね。

それにしても、こと動画再生支援や表示品質に関しては、nVidia は ATI にまだまだ当分かなわないようですねぇ。nVidia にはそちらに強いエンジニアが少ないのかしら。なお、GeForce4 に関してはニュース記事を通り一遍読んだだけなので、思いっきり誤解している可能性もあります。その時は勘弁してくださいね。

2002/02/07

こんなものが欲しいゾっシリーズ!<いつシリーズ化されたんだ…。

イヤホンマイク専用の、いや、イヤホンマイク内蔵の携帯電話が欲しい。本体は腰やお尻のポケットに入れっぱなしで、オヤジ電車ラジオ (で分かってもらえるでしょうか、おとーさん世代の方が電車の中でツーとイヤホンを引っ張りだして聴いている、小型のイヤホン内蔵ラジオのことです) のように本体内のバネリールに格納されたイヤホンマイクで通話する携帯電話。着信時はぴーっとイヤホンを引っ張りだしてそのまま話せ、発信時もイヤホンをセットしてから音声で発呼。「あゆみ」や「会社」など、登録された名前に反応する。

欧米の人って、携帯電話の強い電波を嫌ってイヤホンマイクを使っている人が多いような印象があるのですが (というかイヤホンマイクで通話しているのって、外国の人くらいしか見たことがない…)、Handspring の treo にしても他の電話機能付 PDA にしても、どうして本体に直接スピーカーとマイクを付けるのでしょうか?それなら、イヤホンマイクとバネリールを内蔵した方が、デザイン上の自由度も高まるし機能的だしずっといいと思うんですけどねー。ソニーさんあたりが作ってくれないかしら。

ちょっと考えてみると、たぶんネックになるのはメール等の情報機能へのインターフェイスでしょうね。いちいち本体を手に持たなくていい、となると、そういった情報機能へのアクセスが遠くなってしまう。それでもいい、って人は結構多そうではありますが。メール読み上げ機能かなんかつけちゃってナ。

2002/02/06

題名:いんふるえんざ?!

妻と子発熱中。
合わせて115℃。
by 妻

とゆーメールを仕事中にもらって大至急帰宅。というわけで今日も更新はオヤスミです…。

2002/02/05

どーでもいいことですが、昨日富士通が発表した「高精細文字表示技術」、これって Microsoft の「ClearType」と全く同じ発想ですよね。ライセンス契約でも結んでるのかしら?個人的には ClearType ってあんまり好きじゃありません。せっかくフル・デジタルの液晶ディスプレイを使っているのに、コンバージェンスがズレて擬色が現れてるように見えちゃう。

ようやっと Mozilla 0.9.8 がリリースされました。よかったよかった。

2002/02/04

有葉の具合が悪くていろいろ大変なので一回休み。

2002/02/03

明日が5歳の誕生日だというのに、有葉がまた熱を出してしまいました。昨日一日、幼稚園のコマ回し大会から病院のハシゴと、寒空の下を延々歩きつづけたのが悪かったのかなぁ。

相変わらず我が家では「ボクと魔王」をやり続けていますが (もう半年以上?)、ようやっとそろそろ佳境、って感じの雰囲気になってきました。メタ・ストーリー風味のなかなかひねった展開が痛快。セリフ回しやゲームシステム、音楽などから、僕はこれまで「MOTHER」風のイメージを抱きつつプレイしてきたんですが、ここへきて PS の秀作、「デュープリズム」をなんとなく思い出させました。エンディングが楽しみ。ラブラブマスター占いがず〜っと「スタン」なんですがこれはしょうがないよねぇ。スタンかわいいもの。

この後には「METAL GEAR SOLID 2 SONS OF LIBERTY」と「ICO」が待ってるんですよ。特に ICO には非常に期待しています。デモでの音楽も超好みだったし、最初の30分をプレイした限りでは無茶苦茶ハマり込めたし。とにかく、後1年は余裕で楽しめそう。わはは。

2002/02/02

明日は H-IIA ロケット2号機の打ち上げなんだそうですが、何と今朝、どこかのロケットが打ち上げに失敗する夢を見てしまいましたっ!打ち上げ直後から大きく傾いて、あさっての方向に飛んでいくロケット…。ああなんて縁起悪い…。

2002/02/01

通勤電車の中で UNIX Magazine 1 月号を読んでいて、みるくさんの「NetNews便り」に気になる記述を見つけました。fj.sys.mac で、MAC で DVD 鑑賞をする、という話題に対し、「PC で見る DVD 映像は民生機 (DVD 再生専用機) に劣る」という意見に落ち着いた、というのです。最近、社長の影響で情報収集していた HTPC (Home Theater PC) 方面の流れとしては、既にホームシアターシステムで高品質な DVD 映像を得る、という点にかけては、HTPC が民生機を追い抜いて久しいというのが常識だと感じていたので、その意識の古さにちょっとびっくりしてしまいました (この辺が参考になりましょうか)。余談ながら、fj には僕も以前はずいぶんお世話になって、それぞれのニュースグループにはそれなりにエッジな人達が集まっていたようなイメージがあったんですが、最近はそうでもないのかなぁ…なんて (短絡的ではありますが) 思い、ちょっと切なくなってしまいました。

確かに PC で DVD を再生する際にはいろいろと気をつけなければならない点が多いことは間違いないです。ノイズ対策 (電気的なノイズも音響的なノイズも) しかり、コマ落ちさせないための OS/Disk の状態しかり…。高品質なアナログ出力を得るためには一部ハードに手を入れることもいとわないくらいの改造が必要だったもします。でも、その信号処理プロセスに一切手を加えられない、なおかつ最終段では必ずアナログ出力になってしまう (D 端子だってアナログだ) 民生機と比較すれば、特に 24fps、プログレッシブで収録された映画系ソースにおいて、本質的に HTPC の方がポテンシャルが高いことはまったく疑問の余地がありません。

そのように高いポテンシャルを持つ HTPC ですが、現時点では今ひとつ知名度は高くないのはなぜか。一つの原因として、大御所の AV 系雑誌など発言力のあるメディアに徹底的に無視されている、という点があるのだそうです。高級な AV/オーディオ機器と比較すると、PC はとても安価です。そんな安い PC で高級 AV 機器並み、時にそれ以上の結果が得られる、なんてことを書いてしまうと、自分たちの食いぶちがなくなってしまうからだ、という噂がまことしやかに囁かれています。ちょっと陰謀めいてますけどね。

2002/01/31

星金の Paradox に使われているマザーボードは SiS650 チップセットが使われているそうですが、例えばこのチップセットとか VIA のものとかって、一般的なベンチマークなどではかなりいい値を出していて「おっ」と思わされますが、実は I/O 系 (ディスク周り、PCI 周りなど) などが Intel のチップに比べると遅い、というのが定説なんだそうですね (例えばこの辺とかかな。でも HDBENCH くらいだとあんまりはっきりした結果は出てないみたい)。まぁ定説は覆されるものですが、とはいえ、ふつ〜にマザーボードを比較する時に使うベンチマークが、なぜかオフィス系、マルチメディア系、3D 系、あとはせいぜい時代遅れの CPU 系 (今時 dhrystone なんて測って意味があるとは思えん) と、メモリとグラフィックスサブシステムにばかり負担がかかるものなのはイマイチな感じ。I/O 性能こそ、実動環境で本当にヘビーな動作をさせた時にネックになりがちなところだと思うんだけどなぁ。

うちの社長はさっそく Paradox の WPM を1台注文したそうだ。早い。社長とも話していたのですが、ああいう、普通の MicroATX マザーボードが入り、フルサイズの PCI ボードが使えるもので、そこそこかっこいい「横形」のケース、それこそオーディオラックに違和感なく収まるようなフェイスを持つようなものが出てきたら、結構売れると思うんだけどな〜。Low Profile でないデスクトップケースはなぜかほとんど絶滅しちゃってる。謎。みんなラックマウントケースに生まれ変わっちゃったのか?

2002/01/30

星金の MicroATX 用ミニタワーケース、「Paradox」はなかなかいいなぁ。マザーボードはいらないからもう少し安いモデルが出るといいんだけど…。

Fuji の新しい FinePix、隣接画素をまとめて感度アップ、という機能はなかなか素晴らしい…と思ったんですが、考えてみると、Canon のデジカメなどで一般的に行われている NR (Noise Reduction) 処理も隣接画素を平均化 (加算) して平滑化させることが主な処理なわけで、画素をまとめて S/N を改善する (S/N が改善できるのならゲインアップも可能なので感度もあげられる) という意味ではそれほど画期的ってわけではないのかな…なんて思いました。でもまぁ現在の Canon の NR はロングシャッター方向でしか使われておらず、超ゲインアップ+NR を使い解像度は下がるが超高感度でそこそこノイズの少ないイメージを作る、というファンクションは存在しないわけで、そういう方向での進化を促す、という意味ではやっぱり画期的なのかも。スナップ目的で使っていると、現在のデジカメ (G1) は感度不足でブレまくることが多い (フラッシュの色味がイマイチなのでほとんど焚かないせいもあります) んですよ。iso 感度 auto で 50〜1600 くらいまでシームレスに変化してくれると嬉しいなぁ (高感度帯で解像感が落ちてしまっても、「そういうもんだ」と納得できそう。実際暗いわけだし…)。それに、高感度だがある程度解像度が犠牲になる、というのは銀塩ユーザーにも受け入れられそうな excuse ですよね。

2002/01/29

今日はじめて、ASIMO 君が階段から降りてきて電車に乗り遅れちゃう!という CM を見ました。むちゃむちゃかわいい。

雪印食品の問題は「氷山の一角」なんて言われてますが、ほんと、「モラルハザード」って感じになってきましたね。銀行の問題を解決するため公的資金を用いた時、経営陣の責任をはっきりさせなかったことで「モラルハザード」が起きるのが恐い、と言っていた経済学者がいましたが、まさにその危惧が現実になっているような感じです。例のくだらない NGO 出席問題にしても、「問題がはっきりし過ぎているから自民党お得意の玉虫色解決が出来なくて対応に苦慮している模様」なんて記者の人が言っていましたが、そういう責任の所在を曖昧にしてしまう態度こそが今のモラルハザードを生んでいるのでしょーが。この間のニュースステーションでイギリスの狂牛病問題をふりかえるという話題を取り上げていた際、原因究明や対策が不十分なまま安全宣伝を繰り返し、結果的に国民の支持を失い政権を失った当時の担当大臣が出演していたのですが、既に政治家生命を絶たれ隠遁生活を余儀なくされているように見えながら、「私が受けた批判など、生産者の方々が受けた苦痛とは比べ物にならない」と毅然としてその現実を受け止めているのを見るにつけ、あんな風に自分の行ったことにきちんと責任の取れる大人が、今の日本にどれほどいるのだろうか…と思ってしまいました。僕もしっかり肝に銘じたいです。子供のお手本になれるように。

2002/01/28

KDE 環境で作る最初のプログラムを何にしようか検討中。また IPMsg を習作にしようかしら。あれは規模として習作として作るにはちょうどいいんですよね。メッセージングツールとしての器はより大きなプログラムにも応用出来るし…。

そういえばもうすぐ GNOME 2.0 がリリースされるようですが、GNOME も 2.0 になったら aa が使えるようになるのかな?今も mozilla を筆頭に GTK 系のツールにはたくさんお世話になっているので、2.0 で全面的に RENDER 拡張が使われるようになって KDE 並みにフォントハンドリング機構がシンプルになるのならちょっと試してみたい。

もうすぐ、と言えば mozilla 0.9.8 がもうすぐ。今週中には release になるんじゃないかな。バグフィックスも相当進んでますしいよいよ 1.0 が見えて来た、という感じですね。

普通のブラウン管のテレビって、あまりに当たり前に家庭に存在しているので、それがあることによる影響、というものが見えなくなっているような気が最近急激にしてきています。ちょっと意識してみると、ついている時とついてない時では部屋の空気感まで変えてしまっているように感じませんか?急速に「家庭におけるテレビのあり方」を変えたくて仕方がなくなってきて大変。これはやっぱり、今のテレビを捨ててプロジェクターを買え (そして視聴形態を変更せよ)、というお告げ?(いや、断じて買い替えを正当化するためでわなく・汗)。

UNIX Magazine で、最近の vi クローン、VIM とかではプログラミング言語毎のモードであるとかインクリメンタル・サーチといった emacs 顔負けの機能が使えることを知る。見た目は前から変わってないのに中身は凄い進化してたのね。

2002/01/27

今日は久しぶりにトマトツナのスパゲッティを作った。家族5人分だと結構な量になる。結構おいしく出来た。それにしてもレパートリーが少ないなぁ俺…。他に出来るまともな料理と言えばジャーマンポテトに麻婆豆腐くらいか。好きなものばっかり。

そういえば今年の F1 はいろいろ楽しみですね。琢磨がどれくらい速いのか、ライコネン含め、ミシュランにスイッチしたマクラーレンはどれほどか、トヨタがどれくらいノロいのか(笑)、などなど…。トヨタには全然期待してませんが、琢磨は頑張ってほしい。彼ならあっさりやり遂げてしまいそうではあるけれど。

PowerShot G1 の Firmware を 10.0.3 へアップデート。

2002/01/26

当たり前の話なのですが、KDevelop のような統合環境では、

ということが出来ます。こういう環境があれば、C++ のように宣言と定義があっちゃこっちゃに分散しててどこに何があるのか分からん言語でも問題なくコーディング出来そう。それともこういう環境が出来てくることを見越して C++ はあんな仕様になっているのかしら?Java の場合宣言と定義が分離していない上、public な class に関しては1class1file となっているので、クラスベースで物を考える時でも探すべきものがどこにあるのか、で迷うことはあまりありません。C++ や C の場合ファイル名と宣言、定義がまったくリンクしていないことがあったりしていつも迷子になっちゃうんですよね〜。

今日、子守りの合間に1時間くらいぽちぽち触ってやっと KDevelop と QT-Designer の連携方法が分かりました。QT は結構 Java っぽいかも。というか最近のクラスライブラリはみんなあんな構成なのかな?Web 上に KDE での開発話 (日本語) は思いの外ちょびっとしかないようなので、こんなところに書くんでも少しは役に立つかも…と思い、KDevelop から QT-Designer を使って作ったダイアログを表示するまでを書いてみますね。なお、僕が使っているのは KDevelop 2.0.2 と QT-Designer 1.1 です。

  1. KDevelop で適当にプロジェクトを作り、開きます。
  2. Project Viewer で「グループ」を選び、一番親の行で右クリック、「新しいファイル」を選びます。
  3. 表示されたダイアログから、「QT-Designer ファイル」を選択し、ファイル名を指定して OK を押します。QT-Designer が自動的に起動します。このとき、ファイル名には QT-Designer で作る予定の Widget の名前を必ずつけてください。
  4. QT-Designer で Widget や Dialog をデザインします。トップレベルコンポーネントの名前をファイル名とあわせておくことを忘れないように。
  5. KDevelop に戻って、「新しいファイル」を選んだ時と同じところにある「新しいクラス」を選びます。このとき新しいクラスの設定を行うダイアログで、必ず親クラスを QT-Designer でつけたファイル名/トップレベルコンポーネントの名前にします。
  6. 現在の KDevelop では、クラス名からファイル名を生成する時に必ず小文字に変換されてしまうのですが、QT-Designer の .ui ファイルから自動的に .h ファイルを生成するコンバータ uic はきちんと大文字小文字の混ざったファイル名を生成します。そのため、5. で生成した子クラスで親クラスのヘッダファイルを読み込む際、そのままではファイル名が違うためうまく読み込めない、という状況になってしまいます。しょうがないので、5. で作ったクラスのヘッダファイル内の親クラスのヘッダを読み込んでいるところのヘッダファイル名 (酷い日本語だ…) を手で修正します。
  7. 以上で準備は整いました。後は、作った Widget/Dialog を使いたいところで、
    MyDialogImpl *dialog = new MyDialogImpl();
    dialog->show();
    MainForm *form = new MainForm(this);
    form->show();
    
    てな感じにすれば OK みたいです。プログラミングの手順を文字で書くとなんだか異常に分かりにくいっすね…。

「キャラメラ」の武富智さんのページを見ていて、そこからアキマン発見。お二人ともカプコン関係の方…なのかな?日記ページが凄い。

おおそうだ、ENKO 弟妹よ、ようやっとこないだもらった本を全部読んだのじゃ。「カコボン」の中で読んだことなかったのは3本くらいかなー。あれで 1000 円、っつーのかかなりお得感あると思うぞ。ちょっと不思議で可笑しいのは、5年にも渡って描かれた時期順にならんでいる作品群のはずなのに、いわゆる商業誌でありがちな「どんどんうまくなっていく」感覚がほとんどないこと。いや、うまくなってないわけじゃないんでしょーが、そういう着実に積もっていくタイプの巧拙よりも、なんとなく描かれた時の状況によるゆらぎの方が大きい感じがしました。話の作り方や構成はあんまり変化してないかもね。キビシー!

2002/01/25

KDevelop を入れてみました。こういった統合環境を使うのは3年ぶりくらいなせいか、まだどうも勝手が分からん。C++ になれてない、ってのもあるかもなー。

一昨日からメイン・ブラウザとしてバリバリ使っている Opera 6.0 for Linux TP3 ですが、レンダリングの正確さ、については、konqueror よりはいいですね。ただ、正式リリース版の konqueror に比べるとさすがに落ちやすいです。一日3〜4回くらいは落ちる感じ。ただ、Opera は Default で起動時に前回最後に表示していたページを開いてくれるので、落ちてもあまり気にならないことが多いかな。起動そのものも速いですし。今のところ一番不便なのは、CSS 等で font face が指定されているような場合に、たびたび日本語部分が豆腐になってしまうことと、Java Applet が動作しないこと。設定でなんとかなるのかしら。

どーでもいいですが、「TRICK2」に「犬山犬子」という芸名の人が出ている、というのをあゆみさんが妙に気にしてるんだよなぁ。

2002/01/24

ちょっとがんばってしばらく毎日更新を目指してみる。趣味のコードが書けないかわり…ね。

仕事では今日はバグをたくさん出してお客さんにメーワクをかけまくってしまった。うーむ。やっぱり自分が作ったんじゃないコードを利用する時はちゃんとどんな実装になってるのかを一度確認する癖をつけなくちゃダメだなぁ…。つい、自分の思考パターンにあてはめて考えちゃうんですよね。そんでもって思わぬところで不整合が…。

ビデオにとってあった先週分の「TRICK2」を見る。おお、今回は上田センセー、頑張ってるじゃないですか。

仲間由紀恵演じる山田さんは可愛い…で、可愛いつながり。売れてなさそーっっっうな TOYOTA WiLL VS の新しい宣伝の YUKI ちゃんは可愛い。ウチのあゆみちゃんと同い年とは思えん。だーいぶん前にやってた深夜番組で、酔っぱらってガハガハしてた時は歳相応に見えたがのー。

さらにあゆみちゃんがビデオにとっておいた「ハモネプ」を見る。結構流行ってるみたいですね〜アカペラの小編成コーラス (ふつ〜はなんて言うんだろ?)。歌好きの僕としては、みんなが楽しそうに歌ってるのがすごくイイ。うらやましい。

元コーラス部として聴いてて一番気になったのは、どのグループもスゲーピッチが甘いこと。特に、腹筋が足りないっつーか腹から声が出てないっつーか、緊張してブレスが浅くなって声が上ずっちゃって…というヒトが多すぎ。リードボーカルの子は目立つせいかそれほど大きくは外さない (それでもサビで上がアタりきらない人多し) んですが、バックでコード決めてる子たちが、たぶん音量を押さえてるせいもあって、音程が崩壊している。ボイパ、と呼ばれてたボイス・パーカッション君は誰も彼もかっこいい。モテそうだ(<オヤジ)。

趣味で書くコードの構想を練る。構想5年(嘘)。メーラーの構造って、フォルダ一覧があって、メッセージ一覧があって、メッセージ本文があって、という構成でほぼまとまってしまって他に選択肢がない、というほどの状況ですが、僕はこれ、あんまり使いやすいと思えないんですよ。

だいぶ以前に、ソニーかどこかの研究所の人のソフトとして、「時間軸に沿って永久に保存される付箋」みたいなツールの話を読んだことがあります。基本的には Mac のスティッキーズのような付箋紙ソフトなんですが、付箋を書く時に有効期限も指定して、その期間内だけ、画面上に表示されている。また、画面上部には時間軸を表す一次元の数直線 (ルーラー) があって、それをグイッと動かすと、好きな時間のデスクトップ (上の付箋の状態) を再現できるのです。

これ、まったく根拠なし、直感オンリーなんですが、結構便利だと思うんですよね。だからこれをメーラーに組み込んでみる。こんなイメージ。

新しいメールが届くと、送り主やタイトル、優先度などの設定 (もともと自動的にセットされている設定もあるでしょうし、自分の好みでカスタマイズしたものもあるでしょう。例えば流量の多い ML からのメールは端の方に小さく積み重なるようにしておく、とか) により画面上のいろいろな場所にいろいろな大きさ、色、フォントでメールが開く。開くメールにはヘッダから本文まで既に全部書かれていて、もしちょうど画面を眺めていたのならそのまま内容が目に飛び込んでくる。

メールを読んでしまって、もう画面上に置いておく必要がなくなったらすぐに閉じちゃう。たくさんメールが来て画面が埋めつくされてしまったら (ちなみに画面に残っているメールたちは古いものが一番上になるようになっている)、まぁ上から読んでどんどん消してく。過去のメールを参照したい場合は、スクロールバーをつまんで画面の状態を「過去に戻す」。ある時点で画面に開いていたメールが次々と出てきては消えていく。

メール作成時はフローティング設定のウィンドウで楽々書く。裏では新しいメールがどんどん開く…。

って感じ。すっごく変態的だけど、結構楽しそうだと思いませんか?自分宛に時刻指定でメールを出せば忘備録としても使えるし、メール本文をアイボールサーチするのも楽。何かをリストで表示したければ (例えばサブジェクトと送信者とか)、リスト化を行うファンクションが別に付いていれば十分でしょ。ちょっと本気で作ってみたくなりました。

宮部みゆきを2冊ほど読んでみました。ミステリーなんて15年ぶりくらいかも、って感じですが、とても読みやすかったです。もちろんそれなりに楽しめましたが (「レベル7」と「R.P.G.」を読みました)、チェーン・リーディング (そんな言葉はない?・笑) に突入するほどではないなぁ。また読むものがなくなったら今度は短編を読んでみたいかも。

「エンダーのゲーム」を半年くらい前に読んだので、その続編、「死者の代弁者」も読みました。僕としては「死者〜」の方が面白かったかも。「エンダー〜」には、どことなく今をときめく「ハリーポッター」を髣髴とさせるような雰囲気がありますが、エンダーの方がだ〜いぶん暗い…じゃなくて深いです。実は僕、バガーが好きなんですよ。バガー LOVE!

他にはイギリスの小説、「ビューティフル・ボーイ (原題 man and boy)」を読みました。この本を読むと、浮気なんて誰もがやってるチンプででバカで何の得もない行為を、そこそこ賢い男ですらどうしてやってしまうのだろう…と本気で不思議になります。「男の甲斐性」とか「ロマン」とか、そんなわけまったくない (冷静になって考えれば、ほんと、チンプでかっこよさとは正反対の行為としか思えない) のにそう感じてしまうことがあるのはどーしてなんでしょーね?神様の陰謀としか思えんす。

ああっ!毎日ちょっとづつ書こうと思ってたのに最初からこんなに書いてしまった!こりゃ〜3日も続かないかも…(笑)。

2002/01/23

↓(1/1)からの進展。

もうすぐ5歳になる長女が1歳になる前くらいから撮りためていた 8mm ビデオテープ数本をこれを機会にデジタル化し (そう、DV、DV と書いてきましたが僕が Yahoo Auction で買ったデジタル・カムコーダは Digital8 方式のものだったのでした。テープのままずっと保存することはあまり考えられませんし、つなぎ、としては最適かなぁと)、とりあえず CD-R にでも焼いておこうか、というのが当面の目的です。Codec は今のところ divx を使おうかなぁと思っておりますが、はてさて。

電車の中づりで新連載の広告を見、そのせいでめちゃくちゃ久しぶりにヤンジャンなんかを買ってしまってハゲしく後悔した (だって読めるマンガがほとんどないんだもん…) 僕的いわくつきマンガ、「キャラメラ」の1巻を僕も買いました。実に楽しい。セーネンマンガの王道っすねぇ。読むのだ>弟妹。目下のところ僕のもう一方のお楽しみマンガであるところの「花園メリーゴーランド」とは正反対な感じがまた。柏木ハルコさんの本、と言えば「いぬ」の3巻だけがないんだったなぁ。どこかで探さなくちゃ。

おっと書き忘れ。QT を使っていることと deb package があることを知って俄然興味が湧き、今ちょっと Opera 6.0 Linux TP3 を使ってみています。レンダリング精度、という意味では konqueror とどっこい、mozilla には及ばない程度ですが、さすがにスピードは凄い。めちゃくちゃ軽いですね、コレ。いろいろ残っているバグが取れて正式版になったら本格的に使ってもいいかも…と思わせる出来です。

2002/01/01

あけましておめでとうございます。

で、元旦の夜から HDD 換装話 (笑)。いつも使っている ThinkPad X20 の HDD を、2.5inch 9.5mm 40Gbytes 流体軸受なものに換装しました。今回は会社に PCMCIA な IDE インターフェイスが落ちてたため手順はすごく簡単で、

これでおしまい。新 HDD への lilo の導入を換装後に行う必要は本来ないはずですから、これを行ってから物理的な換装を行えば起動用フロッピーを作る必要もないはずなんですが、ここは慎重に、ということで。OS の再インストール、再設定をする必要がないのは楽でいいです。使いなれた環境のまま移行できる。やっぱりこうでないと。

というわけで、とっても静かで空き容量たっぷりな幸せ環境となったのでした。速度も結構速いような感じがします。グッドグッド。

どーでもいいですが、目下、Cardbus な IEEE1394 インターフェイスが欲しくてたまらんです。お年玉名目で買っちゃうかな…。

それでは、今年もよろしくお願いします。