Tue Sep 01 20:09:50 JST 2009

Opera 10 が出たらしいが、サイトが重すぎる。


Wed Sep 02 22:30:06 JST 2009

何か良い感じの ping ツールは無いかな、と思って ports 下を漁ってみた。

% make search key=ping | egrep '^Port:' | wc
     249     498    5835

ん馬鹿にするな。mapping とか wenheping とか要らないし。

% find . -type d | egrep -v '(work|files)' | grep ping | wc
      26      26     444

このくらいなら見られるかな、と思って見てみた。

net/apinger    C で書かれた ping 死活監視
net/arping     arp で ping しちゃえ作戦
net/dhcping    DHCP サーバが生きているかどうかをチェック
net/echoping   TCP ECHO で 疎通と性能確認
net/fping      たくさんのマシンに ping
net/hping      TCP/IP packet asembler/analyzer
net/http_ping  http で ping
net/mping      たくさんのマシンに ping
net/ssmping    SSM で ping (SSM って何?)
net/tcping     TCP で任意のポートに ping
net/wmping     DockApp 版 ping
net/wping      Web base の ping

色んな種類の ping があるもんだな。 そうこうしているうちに、元々何をやりたかったのかを忘れてしまった。。。


Thu Sep 03 21:08:43 JST 2009

前々から map しようと思っていた奴を、ついに map した。

map ^X^N r1jr2jr3jr4jr5jr6jr7jr8jr9jr0
map ^O j.

両方とも、縦に何かを編集する時のもの。前者は縦に番号を打って行くもので、 後者は「押しっぱなし」でズズズーっと楽をするためのものだ。 さて、いつまで憶えていられるかな。


Sat Sep 05 17:03:50 JST 2009

Teraterm 4.63 をようやく投入して改版履歴を見ながら .ini ファイルの調整を しようと思ったのだが、改版履歴の間違いが気になる。

  • Send break を無効にできるようにした
    「DisableMenuSendBreak」と書いてあるが、 実際には「DisableAcceleratorSendBreak」だと思われる。
  • Duplicate session のアクセラレータキーを無効にできるようにした

    で、もう ini ファイルが多すぎてメンテがたいへん。


    Sat Sep 05 17:28:51 JST 2009

    リモートデスクトップで接続先ごとにランチャに登録したくなったので ちょいと調べてみた。 mstsc を起動すると現れる画面で「オプション」を選択して、 「名前を付けて保存」すると .rdp ファイルができる。 これを mstsc の引き数として渡すようにランチャに登録する。 以上だ。


    Tue Sep 08 12:39:19 JST 2009

    会社にて。廃棄(リース返却)予定の A400 の SCSI ディスクの初期化処理を試行。

    機材はこんな感じ。 どうなってもいい機械として FLORA 370 TS4 を調達して、 32bit PCI に無理矢理 Adaptec 29160 を付けて、 SCA-2 変換アダプタ(RAD07 ライトアップ製)をカマして、 SCA-2 を 68pin ケーブルで接続。

    起動時の BIOS からフックできる SCSI Utility (Ctrl-A 打鍵で入る奴) も 問題なく認識くれた。ちなみに SCSI ID は 0 だった。 FreeBSD からも、特に何もしなくても da0 として見ることができた。


    Tue Sep 08 15:59:25 JST 2009

    FreeBSD 8.0-RELEASE の足音が聞こえてきた。今 BETA4 だ。


    Wed Sep 09 15:39:49 JST 2009

    自宅マシン、調子悪し。

    60G の IC35L060AVV207 って奴を付けているのだが、 こいつは実は調子の悪いマシンから剥してきて付けた事故物で、 大量に書いたりすると OS ごとストールする。

    自宅マシンには ThinkPad のバックアップ(rsync) も取っているのだが、 夕べついに Disk Full でバックアップが取れなくなった。 これは HDS722512VLAT80 に取っているのだが、 そもそも ThinkPad のディスク (HTS542525K9SA00) より少ないので、 いずれ Full にはなるだろうな、と思っていた。

    というわけで、ディスクを調達してきた。 Deskstar 7K1000.B の HDT721010SLA360 って奴で、7980 yen …って、安いなぁ。 秋葉原価格に比べると高いけど、ポイントで返ってくるので実質 7000 yes くらいか。

    で、計画はこんな感じ。

    ad1:  58644MB IC35L060AVV207   ata0-slave  UDMA100 ←継続
    ad0: 117800MB HDS722512VLAT80  ata0-master UDMA100 ←継続
    ad4:  58644MB IC35L060AVV207   ata2-master UDMA100 ←撤去
    ad8: 305245MB HDT725032VLA360  ata4-master SATA150 ←継続
         953868MB HDT721010SLA360              SATA150 ←新規
    

    ATA 増設のインタフェイスは、もう要らないかもしれないな。 そうするとデバイスの番号がズレちゃうかな。

    それにしても 未だに SATA150 ってところが泣ける。 だが今は本体まるまる組み直すほどの、時間的・金銭的な余裕がない。 帰宅後に構成変更の予定。


    Wed Sep 09 20:05:22 JST 2009

    会社で一部のメンバが Skype を使っているので、入れてみようかと思ったが まだ ThinkPad は linux_base-fc-4_13 だったので残念。

    っていうか FreeBSD 7.0-STABLE i386 で問題ないんだよね… いろいろ変わっているので、上げるの大変そうだ。


    Thu Sep 10 01:03:14 JST 2009

    自宅にて。

    予定通りディスク換装を実施。しかし驚いたことに、boot しなくなった。 BIOS 画面をよくよく見ると、/ の入っているディスクが見えなくなっている。 なんやねん… と思いながらよくよく接続状況を確認すると、 ATA-0 の Master / Slave のジャンパ設定とケーブル接続が逆になっていた。

    旧ディスクからデータを抜き出してリプレイス。 これで PATA 2発 SATA 2発 の構成になった。

    ad10: 953869MB <Hitachi HDT721010SLA360 ST6OA3AA> at ata5-master SATA150
    

    現在、内容構成を変更中。いやはや、時間がかかる。$HOME が 11G もあってびっくり。


    Thu Sep 10 23:40:53 JST 2009

    cvsweb で yyyy.mm.dd みたいな文字列があると勝手に man への URL に変換されて見える件について、allow_source_extra を 0 にしたら止まった。


    Sat Sep 12 14:10:50 JST 2009

    会社環境。Windows - Windows でキーボード/マウスをシェアできるソフトを探したら、 昔々に Windows - X Window で使っていた w2xw が未だに使えることがわかった。 懐かしいな、と思いながら使っている。

    スクリーンセーバが動いていると(そしてパスワード保護をかけていると)面倒なので、 一時的にスクリーンセーバを殺すソフトを探してみた。 SmallSS というのがいい感じだ。


    Sun Sep 20 22:15:22 JST 2009

    会社にて。

    TeraStation を FreeBSD から NFS で mount しているんだが、こいつがゴミ。 はっきり言っておこう。 TeraStation を NFS で FreeBSD から…使えないと思った方がいい。 全く役に立たないと言ったらいいすぎだが、全く役に立たない。

    TeraStation を FreeBSD から 使用したい場合には、smbfs を使え。 これが結論だ。smbfs なら、けっこう使える。ただし、それでも失うものはある。 mode と owner/group (ひっくるめて、permission) は保持できない。 必要に応じて tar などで wrap してやらなければならないだろう。


    Mon Sep 21 10:07:43 JST 2009

    ThinkPad にて。sysutils/munin-main から入れる。

    You need a group "munin".
    Would you like me to create it [y]?
    You need a user "munin".
    Would you like me to create it [y]?
    

    例によって適当な uid を振られてしまうパターンだ。 ちょっと嫌なので、あらかじめユーザを作成してみる。

    # vi /etc/group
    munin:*:4949:
    # adduser
    Username: munin
    Full name: Munin user
    Uid (Leave empty for default): 4949
    Login group [munin]:
    Login group is munin. Invite munin into other groups? []:
    Login class [default]:
    Shell (sh csh tcsh zsh bash rbash fdsh ksh93 nologin) [sh]:
    Home directory [/home/munin]:
    Home directory permissions (Leave empty for default):
    Use password-based authentication? [yes]:
    Use an empty password? (yes/no) [no]:
    Use a random password? (yes/no) [no]:
    Enter password:
    Enter password again:
    Lock out the account after creation? [no]:
    Username   : munin
    Password   : *****
    Full Name  : Munin user
    Uid        : 4949
    Class      :
    Groups     : munin
    Home       : /home/munin
    Home Mode  :
    Shell      : /bin/sh
    Locked     : no
    OK? (yes/no): yes
    adduser: INFO: Successfully added (munin) to the user database.
    Add another user? (yes/no): no
    Goodbye!
    # make install
    

    これでOK。続いて sysutils/munin-node を入れる。こちらは質問は一つだけ。

    Would you like me to set up log rotation [y]?
    

    ログがどこにどうできるかもわからないので、とりあえず y で。

    /usr/local/etc/rc.d/ に「munin-node.sh」ができてるので、 /etc/rc.conf に、例の奴を入れる。

    munin_node_enable="YES"
    

    いきなり起動してもいいのかな。起動してみる。

    # /usr/local/etc/rc.d/munin-node.sh start
    Starting munin_node.
    #
    

    で?

    プロセスとしては /usr/local/sbin/munin-node (perl) ってのが頑張るらしい。 出力はどこだろう。設定ファイルを探してみる。

    /usr/local/etc/munin/munin.conf に書かれている 「htmldir」ディレクトリに、 わさわさと html ファイルができるようだ。

    # grep htmldir /usr/local/etc/munin/munin.conf
    htmldir /usr/local/www/munin
    # cd /usr/local/www/munin
    # ls -l
    total 16
    -rw-r--r--  1 munin  munin  2555 Sep 21 10:15 definitions.html
    drwxr-xr-x  2 munin  munin  4096 Sep 21 10:20 xxxx/
    -rw-r--r--  1 munin  munin  1455 Sep 21 10:25 index.html
    -rw-r--r--  1 munin  munin   473 Sep 21 10:15 logo.png
    -rw-r--r--  1 munin  munin  3538 Sep 21 10:15 style.css
    #
    

    上記例で xxxx の部分がホスト名になるはず。 よって、このディレクトリをブラウザで見ればよい。 ローカルファイルシステムで見てもいいし、 apache 経由だったら Alias 切るなり Symbolic Link 張ってもいいし。好きにできる。

    しかし、ものすごい勢いでグラフができている。 多すぎるので、ちょっと減らしたい。 ググってみると、/usr/local/etc/munin/plugins/ 以下の シンボリックリンクの有無で調整できることがわかった。 ハード構成によって異なるのだろうが、デフォルトで作られるものをリストしてみる。

    cpu@
    df@
    df_inode@
    if_em0@
    if_errcoll_em0@
    if_errcoll_fwe0@
    if_errcoll_fwip0@
    if_fwe0@
    if_fwip0@
    load@
    memory@
    netstat@
    open_files@
    processes@
    sendmail_mailqueue@
    sendmail_mailstats@
    sendmail_mailtraffic@
    swap@
    vmstat@
    

    fwe とか使ってない。試しに消してみることにする。

    # rm if_errcoll_fwe0 if_errcoll_fwip0
    # rm if_fwe0 if_fwip0
    

    即反映ではないらしい。munin-node.sh で下げ上げしてみたが、反映されない。 しばらく放置したら、いつのまにか消えていた。 更新間隔はどのくらいなんだろうか。 …しばらく観察したところ、5 分間隔のようだった。

    ログを確認する。

    # tail /var/log/munin-node.log
    mailstats: /var/log/sendmail.st: Permission denied
    mailstats: /var/log/sendmail.st: Permission denied
    # ls -l /var/log/sendmail.st
    -rw-r-----  1 root  wheel  728 Sep 21 03:17 /var/log/sendmail.st
    

    644 にしておけばよかろう。


    Mon Sep 21 11:33:45 JST 2009

    楽ちんで気に入ったので、あちこちのマシンに投入。 しかし、あちこちで httpd が動いているわけでもないので、一ヶ所に集中させたい。 で、これがまた簡単にできる。

    グラフ描画を行うもの : munin-main → どのマシンからデータを集めるかを定義。
    データ収集を行うもの : munin-node → どのマシンにデータを提供するかを定義。
    

    と考える。munin-node 側は、munin-node.conf に書く。

    allow ^192\.168\.39\.100$
    

    munin-main 側は、munin-main.conf に書く。

    [superserver]
        address 192.168.39.100
        use_node_name yes
    

    こんな具合だ。非常に簡単だ。あとは 5 分くらい放置しておけばよい。 こんなに簡単でいいのか。っていうくらい簡単だ。

    最近、Google の精度を落ちている気がするので、参考リンクを張っておく。

    昔はゴリゴリ手でスクリプトを書いていたものだが…、 楽になったとは言え、嬉しいような哀しいような。複雑な気分だ。


    Thu Sep 24 20:38:20 JST 2009

    会社にて。

    旧サーバは Maildir 形式だが、新サーバは mbox 形式にする予定。 ついては、今いない(長期休暇中)のメンバの Maildir をなんとか mbox にしたい。 いろいろ調べたところ、dovecot wiki のスクリプト を見つけた。

    テストしてみたところ、一押し(?) らしい maildrop の reformail よりも procmail の formail の方が良い挙動をしてくれた。 また、若干の誤謬が含まれているようなので、ちょこっとだけ直した。

    #!/usr/bin/env perl
    # dw-maildirtombox.pl
    # dw = Dovecot Wiki :-)
    # 注意! 出力ファイルにはシングルクォート (') 文字を含んでいてはいけません!
    # 実行するプログラムの指定
    $cmd="formail";
    system("$cmd </dev/null >/dev/null 2>/dev/null") == 0 or $cmd="reformail -f1";
    system("$cmd </dev/null >/dev/null 2>/dev/null") == 0
    or die "cannot find reformail or formail on your \$PATH!\nAborting";
    $dir=$ARGV[0];
    $outputfile=$ARGV[1];
    if (($outputfile eq '') || ($dir eq ''))
    { die "Usage: ./dw-maildirtombox.pl basedir outputfile\nAborting"; }
    if (!stat("Maildir/$dir/cur") || !stat("Maildir/$dir/new"))
    { die "Maildir/$dir is not a maildir.\nAborting"; }
    @files = (<Maildir/$dir/cur/*>,<Maildir/$dir/new/*>);
    foreach $file (@files) {
      next unless -f $file; # skip non-regular files
      next unless -s $file; # skip empty files
      next unless -r $file; # skip unreadable files
      $file =~ s/'/'"'"'/;  # escape ' (single quote)
      $run = "cat '$file' | $cmd >>'$outputfile'";
      system($run) == 0 or warn "cannot run \"$run\".";
    }
    

    使い方は、以下の通り。

    書式
      % ./dw-maildirtombox.pl basedir outputfile
    実例
      % cd /home/someone
      % ./dw-maildirtombox.pl . /tmp/someone
    

    このスクリプトでは、Maildir/cur/ と Maildir/new/ が処理される。


    Thu Sep 24 20:48:29 JST 2009

    テストメイル送信の件。 ヘッダとボディを含むテキストファイルがある時、以下のようにメイルを送れる。

    sendmail の場合
      % /usr/sbin/sendmail -t -om -oi < mailfile
    qmail の場合
      % /var/qmail/bin/qmail-inject < mailfile
    

    これが意外と思い出せない蝿脳なので、書いてみる次第。。。


    Thu Sep 24 20:52:34 JST 2009

    もう一丁。今どきの sendmail は、時折 "Act as Client" な指定が必要。

    # mailq
      → /var/spool/mqueue が処理対象
    # mailq -Ac
      → /var/spool/clientmqueue が処理対象
    

    なので、キューのフラッシュ操作も同様になる。

    # sendmail -q
      → /var/spool/mqueue が処理対象
    # sendmail -q -Ac
      → /var/spool/clientmqueue が処理対象
    

    Ac っていうのは、つまり Anonymous Coward である。もちろん嘘。


    Thu Sep 24 23:27:44 JST 2009

    MHonArc の出力 html をカスタマイズしたくて リソースファイルに書けるものどものリファレンスを探したが、 本家以外は無さそう。 ちなみに本家のドキュメントは英語だけど読みやすい。 デフォルト値もちゃんと載っている。

    作戦としては、適当に id なり class なりを振ってあげて、 スタイルシートで個別に調整できるようにしたい…。 っていうか、なんでデフォルトで入れてくれてないのかなぁ。

    あと、本文が全部 pre に入るのも、何だかなぁ。

    Firefox で見ると、微妙に FFFD が入るのが謎だ。 出来上がったファイルをダンプしても、妙なキャラクタは居ないようなのだが…


    Fri Sep 25 06:58:43 JST 2009

    MHonArc で処理した HTML が Firefox で変な件。確かに妙なキャラクタは居ないが、 よくよく見ると ISO-2022-JP としてのエンコーディングが変だった。

    1b 24 42 〜〜 1b 28 42 0a
    1b 28 42 〜〜 0a
    1b 28 42 〜〜 0a
    1b 28 42 〜〜 0a
    

    なんだこりゃ。


    Fri Sep 25 09:26:05 JST 2009

    キーワードを散らしておこう。 MHonArc, ISO-2022-JP, Firefox, FFFD, iso2022jp.pl, jp2022_to_html, patch

    MHonArc で ISO-2022-JP として処理した結果の HTML を Firefox で参照すると、 本文部分の各行に FFFD が次々に現れる件。

    これは、本文の処理をする時に、次々に行が連結されていくにも関わらず、 途中で目印として各行のアタマに追加している SHIFT_OUT を外してないのが原因。 よって、ad-hoc に外してあげるようにする。

    # diff -urN iso2022jp.pl.save iso2022jp.pl
    --- iso2022jp.pl.save   2009-08-10 02:59:13.000000000 +0900
    +++ iso2022jp.pl        2009-09-25 09:24:32.000000000 +0900
    @@ -115,6 +115,7 @@
    
            # remove a `trick'
            $ret =~ s/^\033\(B//;
    +       $ret =~ s/\012\033\(B/\012/g;
    
            # add back eol
            $ret .= "\n"  unless (++$i >= $cnt);
    

    これで、手もとではいい感じになった。 みんな困ってないのかな? ちなみに IE とか Opera とかだと、特に問題ない。


    Fri Sep 25 09:45:55 JST 2009

    あっ。準本家見たら治ってるでやんの…。 http://www.mhonarc.jp/2.6.x/knownproblems.html


    Fri Sep 25 13:08:37 JST 2009

    引き続き MHonArc のメモ。ググるといろいろサンプルは出てくるのだが、 どうしたものかリファレンスとか一次情報とかが少ない/精度が低い。 というわけで、暫定リソースを貼ってみる。

    <!-- ===================================================================
      * MHonArc resource file for mailing list archives
    
      * tested on
        MHonArc v2.6.16, Perl 5.008009 freebsd
    
      * invoke as 
        %  mhonarc -fileperms 0644 \
        -rcfile archive.mrc \
        -definevars="MLNAME=$mlname" \
        -outdir /usr/local/apache/htdocs/mlarchives/$mlname/ \
        -add /var/spool/ml/$mlname/spool/
    
      * policy
        - mask addresses
        - make files as ISO-2022-JP
    
      * note
        - use CAPITAL LETTER for MHonArc resource elements.
        - If you want to write Japanese in this file, please use ISO-2022-JP.
        - but please do not use Multibyte Characters in this file.
        - Resource Reference is here:
          http://www.mhonarc.org/MHonArc/doc/resources.html#index
          http://www.mhonarc.org/MHonArc/doc/app-rcidx.html
     -->
    
    <!-- ===================================================================
      -- Global options...
      -->
    
    <!-- Perform actions to deter email address harvesters. -->
    <SPAMMODE>
    
    <!-- Do not convert email addresses in message headers to hyperlinks. -->
    <NOMAILTO>
    
    <!-- Set modification time on message files to message dates. -->
    <MODTIME>
    
    <!-- Reverse the listing order in the main index. -->
    <!-- 'reverse' means, newer message comes first. -->
    <REVERSE>
    
    <!-- Create multi-page indexes. -->
    <MULTIPG>
    
    <!-- Size of each index page. -->
    <!-- I would like to say "row per page". -->
    <IDXSIZE>
    50
    </IDXSIZE>
    
    <!-- List of header fields to exclude. -->
    <EXCS override>
    apparently
    errors-to 
    followup
    forward 
    lines 
    message-id
    mime- 
    nntp- 
    originator 
    path 
    precedence 
    received 
    replied 
    return-path 
    status 
    via 
    </EXCS>
    
    <!-- ===================================================================
      -- sorry far east small island people...
      -->
    
    <!-- Hour offsets for timezones. -->
    <!-- of course we use JST -->
    <TIMEZONES>
    JST:9
    </TIMEZONES>
    
    <!-- Charater set filter functions. -->
    <CHARSETCONVERTERS>
    plain;       iso_2022_jp::str2html; iso2022jp.pl
    iso-2022-jp; iso_2022_jp::str2html; iso2022jp.pl
    </CHARSETCONVERTERS>
    
    <!-- Store "decode-only" characters sets in raw form. -->
    <DECODEHEADS>
    
    <!-- Perl function to use for text clipping operations. -->
    <TEXTCLIPFUNC>
    iso_2022_jp::clip; iso2022jp.pl
    </TEXTCLIPFUNC>
    
    <!-- Default character set for text data. -->
    <DEFCHARSET>
    iso-2022-jp
    </DEFCHARSET>
    
    <!-- meaningless? -->
    <!-- avoid $ handling for iso-2022-jp -->
    <VARREGEX>
    \$([^\033\$]*)\$(?![^\033]*\033\()
    </VARREGEX>
    
    <!-- ===================================================================
      -- Directives for Date index...
      -->
    
    <!-- Filename for main (first) index page. -->
    <!-- it means 'Date' index filename -->
    <IDXFNAME>
    index.html
    </IDXFNAME>
    
    <!-- Title for main index. -->
    <TITLE>
    $MLNAME$ date index
    </TITLE>
    
    <!-- Beginning markup for main index pages. -->
    <IDXPGBEGIN>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <HTML lang="ja">
    <HEAD>
      <META http-equiv="Content-Type" content="text/html;CHARSET=ISO-2022-JP">
      <TITLE>$IDXTITLE$</TITLE>
    </HEAD>
    <BODY>
    <H1>$IDXTITLE$</H1>
    </IDXPGBEGIN>
    
    <!-- Link markup for previous page of main index. -->
    <PREVPGLINK chop>
     [ <A HREF="$PG(PREV)$">Prev</A> |
    </PREVPGLINK>
    
    <!-- Inactive link markup for previous page of main index. -->
    <PREVPGLINKIA chop>
     [ Prev |
    </PREVPGLINKIA>
    
    <!-- Link markup for next page of main index. -->
    <NEXTPGLINK chop>
     <A HREF="$PG(NEXT)$">Next</A> ]
    </NEXTPGLINK>
    
    <!-- Inactive link markup for next page of main index. -->
    <NEXTPGLINKIA chop>
     Next ]
    </NEXTPGLINKIA>
    
    <!-- Markup for an entry in the main index message list. -->
    <LITEMPLATE>
    <li>$YYYYMMDD$ <strong>$SUBJECT$</strong>, <em>$FROMNAME$</em></li>
    </LITEMPLATE>
    
    
    <!-- ===================================================================
      -- Directives for Thread index...
      -->
    
    <!-- Title of thread index. -->
    <TTITLE>
    $MLNAME$ thread index
    </TTITLE>
    
    <!-- Beginning markup for the thread index pages. -->
    <TIDXPGBEGIN>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <HTML lang="ja">
    <HEAD>
      <META http-equiv="Content-Type" content="text/html;CHARSET=ISO-2022-JP">
      <TITLE>$TIDXTITLE$</TITLE>
    </HEAD>
    <BODY>
    <H1>$TIDXTITLE$</H1>
    </TIDXPGBEGIN>
    
    <!-- Link markup for previous page in thread index. -->
    <TPREVPGLINK chop>
     [ <A HREF="$PG(TPREV)$">Prev</A> |
    </TPREVPGLINK>
    
    <!-- Inactive link markup for previous page in thread index. -->
    <TPREVPGLINKIA chop>
     [ Prev |
    </TPREVPGLINKIA>
    
    <!-- Link markup for next page in thread index. -->
    <TNEXTPGLINK chop>
     <A HREF="$PG(TNEXT)$">Next</A> ]
    </TNEXTPGLINK>
    
    <!-- Inactive link markup for next page in thread index. -->
    <TNEXTPGLINKIA chop>
     Next ]
    </TNEXTPGLINKIA>
    
    <!-- Markup for a thread index message listing. -->
    <TLITXT>
    <li><strong>$SUBJECT$</strong>, <em>$FROMNAME$</em>
    </TLITXT>
    
    <!-- Markup for a follow-up link. -->
    <FOLUPLITXT>
    <li><strong>$SUBJECT$</strong>, <em>From:</em> $FROM$</li>
    </FOLUPLITXT>
    
    <!-- Markup representing a reference entry in explicit reference links. -->
    <REFSLITXT>
    <li><strong>$SUBJECT$</strong>, <em>From:</em> $FROM$</li>
    </REFSLITXT>
    
    
    
    <!-- ===================================================================
      -- Directives for each Message page...
      -->
    
    <!-- Starting markup for each message page. -->
    <MSGPGBEGIN>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <HTML lang="ja">
    <HEAD>
      <META http-equiv="Content-Type" content="text/html;CHARSET=ISO-2022-JP">
      <LINK REV="made" HREF="mailto:$FROMADDR$">
      <TITLE>$SUBJECTNA$</TITLE>
    </HEAD>
    <BODY>
    </MSGPGBEGIN>
    
    <!-- Main subject line markup above message header. -->
    <SUBJECTHEADER>
    <H2>$SUBJECTNA$</H2>
    <HR>
    </SUBJECTHEADER>
    
    <!-- Markup for top navigational links of a message page. -->
    <TOPLINKS> 
    $BUTTON(PREV)$$BUTTON(NEXT)$$BUTTON(TPREV)$$BUTTON(TNEXT)$[<A
    HREF="$IDXFNAME$#$MSGNUM$">Date Index</A>][<A
    HREF="$TIDXFNAME$#$MSGNUM$">Thread Index</A>]
    <HR>
    </TOPLINKS> 
    
    <!-- Order to display message header fields. -->
    <FIELDORDER>
    from
    subject
    to
    date
    </FIELDORDER>
    
    <BOTLINKS>
    <ul>
    $LINK(PREV)$$LINK(NEXT)$
    $LINK(TPREV)$$LINK(TNEXT)$
    <li>Index(es):
    [<a href="$IDXFNAME$#$MSGNUM$"><strong>Main</strong></a>]
    [<a href="$TIDXFNAME$#$MSGNUM$"><strong>Thread</strong></a>]
    </li>
    </ul>
    </BOTLINKS>
    
    <!-- end of resource file -->
    

    HOME | index | prev | next
[Rev: --not under control--]
[EOF]