*Article*
★
帰省
nagai の車で帰省。
★
呑み & 打ち
katsumi, nagai, rai, guten, sugimori で呑み & guten 邸で打ち。
トップ2回、2着2回で +100。
★
title.cgi
Template 対応させようかと思ったけど、どうも今の作りでは対応させにくいので、
Package 化に挑む。
とりあえず表示できるようにはなったが、かなりリファクタリングの必要あり。
*
残件
- 静的生成対応
- GRP があると恐らくちゃんと表示されない。
★
帰宅
電車で帰宅。初めてグリーン車に乗った。
*
電車内読書
一応完成。
静的生成した日記へリンク可能に:-)
が、処理時間が 3.9 秒から 5.4 秒と、ちょっと重くなってしまった。
profile を取ってみたけど、追加した Template 対応の処理分のようだ。
1回の処理時間はたいしたことないけど 2000 回も呼ばれるとどうにもならんなあ。
*
残件
title_wrapper.cgi を不要にしたいかも。
あとは、複数年指定を可能にしようかな。
そういえば、make-diary も対応させんとな。
title_wrapper.cgi いらずに。
title.cgi?2000&2001 って感じで複数年指定も可能なり。
*
テスト
カテゴリ分類
複数指定
YEAR,MONTH,DAY で複数指定も可能だけど、自由度が少ない
日付指定とYEAR,MONTH,DAY で複数指定も可能ではある。
*
jikenbo+
ふと、jikenbo+ の sidebar からも使えるようにしようかと思い立つ。
が、あっさり挫折(^^;
*
sb-hns
む、sb-hns で表示できない。
★
postalias
postfix は alias を再帰的に展開してくれない?
% cat aliases
user1: user2
user2: user3
$ postalias -q user1 aliases
user2
★
mozilla-0.9
ふと、Solaris 7 でコンパイルしてみる。
[...]
c++ -I/usr/openwin/include -fno-rtti -fno-exceptions -pedantic -Wno-long-long
-pthreads -O -DNDEBUG -DTRIMMED -G -h libjsloader.so -o libjsloader.so
mozJSComponentLoader.o mozJSSubScriptLoader.o -L../../../../dist/bin
-lxpcom -L../../../../dist/bin -L/export/home4/ari/work/mozilla/dist/lib
-lplds4 -lplc4 -lnspr4 -ldl -lmozjs -lposix4 -lsocket -ldl -lm
collect2: ld terminated with signal 11 [セグメント例外]
ld: 警告: シンボル `xpcomKeyName' は サイズ と異なります:
(ファイル mozJSComponentLoader.o 値=0x0; ファイル gmake[2]: *** [libjsloader.so] Error 1
ぐへっ。
★
headline.cgi
jikenbo+ を参考に、Title.pm を継承した HeadLine.pm ってのをでっちあげてみた。
全体をテーブルで括るのはキライなので、
フレームから*1
これまたでっちあげの headline.cgi を呼んでみる。
*
残件
いっぱい(^^;
% cat a.c
extern const char hoge[];
const char hoge[] = "abc";
% cat b.c
extern const char hoge[];
const char hoge[] = "a";
% make
gcc -c a.c
gcc -c b.c
gcc -G -o libb.so b.o
gcc -G -o liba.so a.o -L. -lb
collect2: ld terminated with signal 11 [セグメント例外]
ld: 警告: シンボル `hoge' は サイズ と異なります:
(ファイル a.o 値=0x0; ファイル *** Error code 1
make: Fatal error: Command failed for target `liba.so'
106950-13 をあててみたけどダメ。
*
Solaris 2.5.1
近くにあった Solaris 2.5.1 だとコンパイルできた。
ということで、Solaris 2.5.1 で mozilla-0.9 をコンパイル。
一ヶ所、include が足りなくてこけたくらいで問題無く。
*
起動
core dumped!
~/.mozilla を消したら無事起動。やっぱり使う気になれん重さだ…。
だいぶマシになったかな?
完成。ということで、hns-dev に投げてみる。
バッファの内容を取得できるようにして遊んでみたり。
(defun elserv-demo-buffers (path apath request header-only)
(let ((buf (and (not (string= path "")) (get-buffer (substring path 1)))))
(if buf
(concat (elserv-make-header "text/plain")
(with-current-buffer buf (buffer-string)))
(concat (elserv-make-header "text/html")
(concat "<ul>\n"
(mapconcat
(function
(lambda (buf)
(let ((name (buffer-name buf)))
(unless (string= (substring name 0 1) " ")
(concat "<li><a href=\"buffers/" name "\">"
name "</a>\n")))))
(buffer-list)
"")
"</ul>\n")))))
しかし、IE からアクセスすると何か具合悪いなぁ。
*
hns-elisp
hns-elisp とか妄想してみたり。
ふと Ueno さんによる emacs-20.4-fontset-19990915.diff を
Emacs-21 に適用してみる。
アイコンやフレームのタイトルは Emacs-21 では対応されていたのね。
*
URL メモ
ふらっと、アクセスログ取得 CGI を書いてみたり。
以下の条件を満たす場合しか、使(え|い道が)ない(^^;
- Apache-1.1 以降を使用しているが、httpd.conf を変更する権限が無い。
- .htaccess による設定の変更が自由にできる。
- CGI が実行できる。
はやりものは旬のうちということで、
hnf-mode のデモを作ってみた。
初めて emacs-21 を -nw で起動したんだけど、何で bg-color が着いているんだろ?
*
URL メモ
★
nnwarchive vs egroups.co.jp
nnwarchive をいぢって www.egroups.co.jp を読めるようにしてみたけど、
pre-fetch ができないとなあ…。
headers を取得する手順は分かったので、気が向いたら shimbun で実装しよっと。
(setq nnwarchive-type-definition
'((egroups
(address . "www.egroups.co.jp")
(open-url
"http://www.egroups.co.jp/login.cgi?&login_email=%s&login_password=%s"
nnwarchive-login nnwarchive-passwd)
(list-url
"http://www.egroups.co.jp/mygroups")
(list-dissect . nnwarchive-egroups-list)
(list-groups . nnwarchive-egroups-list-groups)
(xover-url
"http://www.egroups.co.jp/messages/%s/%d" group aux)
(xover-last-url
"http://www.egroups.co.jp/messages/%s/" group)
(xover-page-size . 13)
(xover-dissect . nnwarchive-egroups-xover)
(article-url
"http://www.egroups.co.jp/message/%s/%d?source=1" group article)
(article-dissect . nnwarchive-egroups-article)
(authentication . t)
(article-offset . 0)
(xover-files . nnwarchive-egroups-xover-files))))
(defun nnwarchive-egroups-list-groups (groups)
(save-excursion
(let (articles)
(set-buffer nnwarchive-buffer)
(dolist (group groups)
(erase-buffer)
(nnwarchive-url nnwarchive-xover-last-url)
(goto-char (point-min))
(when (re-search-forward "/ \\([0-9]+\\)[ \t\n\r]*</title>" nil t)
(setq articles (string-to-number (match-string 1))))
(let ((elem (assoc group nnwarchive-groups)))
(if elem
(setcar (cdr elem) articles)
(push (list group articles "") nnwarchive-groups)))
(setq nnwarchive-headers (cdr (assoc group nnwarchive-headers-cache)))
(nnwarchive-egroups-xover group)
(let ((elem (assoc group nnwarchive-headers-cache)))
(if elem
(setcdr elem nnwarchive-headers)
(push (cons group nnwarchive-headers) nnwarchive-headers-cache)))))))
(defun nnwarchive-egroups-xover (group)
(let (article subject from date)
(goto-char (point-min))
(while (re-search-forward
"<a href=\"/message/\\([^/]+\\)/\\([0-9]+\\)[^>]+>\\([^<]+\\)<"
nil t)
(setq group (match-string 1)
article (string-to-number (match-string 2))
subject (match-string 3))
(forward-line 2)
(unless (assq article nnwarchive-headers)
(if (looking-at "<td[^>]+> \\([^<]+\\) </td>")
(setq from (match-string 1)))
(forward-line 1)
(if (looking-at "<td[^>]+> <nobr><font[^>]+>
\\([0-9]+\\).*\\([0-9]+\\).*\\([0-9]+\\).*
.*\\([0-9]+\\):\\([0-9]+\\)\\([ap]m\\)")
(let ((system-time-locale "C"))
(setq date (format-time-string
"%a, %d %b %Y %T %z"
(encode-time 0
(string-to-number (match-string 5))
(+ (string-to-number (match-string 4))
(if (string= (match-string 6) "am")
0
12))
(string-to-number (match-string 3))
(string-to-number (match-string 2))
(string-to-number (match-string 1)))))))
(push (cons
article
(make-full-mail-header
article
(nnweb-decode-entities-string subject)
(nnweb-decode-entities-string from)
date
(concat "<" group "%"
(number-to-string article)
"@egroup.co.jp>")
""
0 0 "")) nnwarchive-headers))))
nnwarchive-headers)
取得したアクセスログを集計するために analog-5.0 を入れてみた。
LOGFORMAT (%S %j %u [%d/%M/%Y:%h:%n:%j] "%j%w%r%wHTTP%j" %c %b "%f" "%B")
LOGFILE .../access_log
って感じで。
*
hns のログ
LOGFORMAT ([%Y/%m/%d:%h:%n:%j] %S %u %j "%r" "%f" "%B")
LOGFILE /home/ari/diary/log/referer_log
USEREXCLUDE BATTA
って感じで集計すると良さげ。
★
今日のアキハバラ
メモリが非常に安くなっているので、増設しようかと思い立つ。
ようやく液晶保護シートを手に入れましたよ。
メモリは結局ヤメ。
★
PDA
Zaurus TR1 は cdmaOne が繋がらないのと、ポケットに入らないので、買い換えを
ふと考える。
PEG-N700Cモバイルコミュニケーションアダプタが附属しないから 45k + 15k くらい?
PEG-S500Cは結構安いしモバイルコミュニケーションアダプタが附属する。が、
cdmaOne に対応していないので、結局買う必要あり 30K + 15K くらい?
あ、メモリスティックってあたりちょっとイヤかも。
PC カード拡張ジャケットと PacketOne カードが必要。
60K + 15K + 10K くらいと高くつく。
Linux が動くらしい。
モバギ用のケーブルでいけるらしい。しかしキーボードがついてるだけあって
ポケットには入らない。40K + 5K くらい?
NetBSD が動くらしい。
*
Zaurus MI-E1
ケーブル買うだけかな。40K + 5K くらい?
しかしまた Zaurus というのも面白味に欠ける。
★
sb-mhonarc
うーむ、emacs-w3m ML についていけてない(^^;
とりあえず、meadow-develop / meadow-users ML の archive が復活したらしいので、
対応させてみるかね。
その際、せっかくだから sb-mhonarc まわりを整理してみよう。
- airs
- 独自 + MHonArc (nomultipg)
- ding
- Glimpse
- meadow
- 独自 + MHonArc (multipg)
- namazu
- MHonArc (multipg, reverse)
- netbsd
- 独自 + MHonArc (nomultipg)
- xemacs
- Glimpse
sb-mhonarc に get-headers を定義して、
sb-airs, sb-meadow, sb-namazu, sb-netbsd では、それを使って get-headers を
定義すると良いのかな?
あと、sb-mhonarc を継承した sb-glimpse を作って、sb-ding と sb-xemacs は
それを継承すると。
multipg の場合が良く分からないので
MHonArcを入れてみた。
うぐぅ、デフォルトでは Last Page には直に辿りつけんのかー。
meadow は "Last Page" のリンクをはることにより、
namazu は
reverseなので index が Last Page になると。
しかし、いまのところ sb-meadow と sb-namazu だけだし、
対応はそれぞれでやっちゃおう(^^;
うーむ、結構違うなあ。
- デフォルト
<li><strong><a name="00000" href="msg00000.html">subject</a>
<ul><li><em>From</em>: name</li></ul>
- subject や name が複数行に渡ることも。
- airs
<LI><STRONG><a name="00000" href="msg00000.html">subject</a></STRONG> <EM>name</EM>
- meadow
<LI><STRONG><A NAME="00000" HREF="msg00000.html"> subject</A> name</STRONG></LI>
- namazu
<Li><Strong><A NAME="00000" href="msg00000.html"> subject</A></Strong> <EM>name</EM></LI>
- netbsd
<LI><STRONG><A NAME="00000" HREF="msg00000.html">subject</a></strong>
<EM>name</EM>
なんか苦労するわりに、整理されなさそうな予感(^^;
おとなしく、sb-mew から sb-meadow を分離するだけにしておく?
★
ML archive & HNS
HNS-2.2beta
*1
に入ったリンク拡張を使えば、
$HNS::Hnf::Command::ConvUrl::Template{MD} =
"http://www.ysnb.net/meadow/meadow-develop/x/%params";
としておくと、
LINK MD:2427 meadow-develop の 2427
と記述して
meadow-develop の 2427とリンクできる:-)
*1: まだ beta1 すら出てないけど(^^;
sb-mhonarc、sb-namazu、sb-meadow ができたつもり。
とりあえず動作確認できたら commit しますかね。
*
mhonarc
あ、ユーザが定義したコマンドのハイライトを容易にできるようにしようと
思いながらも放置状態です(^^;
私も ISBN コマンドを追加しているのですが、ハイライトしません(^^;;;
★
CCL
CCL のお勉強をやるも、いきなり XEmacs が死んでしまったり(^^;
良さげなので、さらに追加。
$Template{"hns-dev"} = sub { sprintf("http://www.h14m.org/ml/hns-dev/msg%05d.html", $_[0] - 1) };
$Template{"hns-users"} = sub { sprintf("http://www.h14m.org/ml/hns-users/msg%05d.html", $_[0] - 1) };
$Template{"emacs-w3m"} = sub { sprintf("http://www.namazu.org/~tsuchiya/emacs-w3m/ml/msg%05d.html", $_[0]-1) };
としておくと
hns-dev:00606,
hns-users:00891,
emacs-w3m:00950とリンクできるように
してみました*1
。
*1: まだ、ML に投げてすらいませんが(^^;
★
つっこまれ
ありがたく
頂戴しました:-)
`hnf-user-commands-table' とかいう変数を作ろうかと思っていましたが、
コマンドを定義する人はあまりいないですし、これで良さそうですね。
★
UQ
ふと、ML に流れたメールを読み返して書いてみた。
未確認な点もあったりするので、もうちょい修正が必要なりね。
★
URL メモ
BMP を UTF-8 でエンコードすると以下のようになるんかな。
U+0000 - U+007F : 0xxxxxxx
U+0080 - U+07FF : 110xxxxx 10xxxxxx
U+0800 - U+FFFF : 1110xxxx 10xxxxxx 10xxxxxxx
★
読書
★
XEmacs & katakana-jisx0201
iso-2022-7bit-ss2 で katakana-jisx0201 を encode すると、
G2 を使うのはなぜだろうかと調べてみたり。
★
体調ふりょー
体調がよろしくないので早めに帰って 21:00 頃に寝る。
が、窓全開で寝てたら寒くて 23:00 に目覚めてしまった…。
★
emacs-w3m & latin-iso8859-1
ふと、emacs-w3m で latin-1 を直接書かれた html
*1
を表示できないかと思い、ちょっと調べる。
*
w3m
Emacs で iso-2022-7bit に変換するが、w3m が ESC , A に対応していない
*2
のでダメ。
*
w3mmee
iso-8859-1 は問題無し。
iso-2022-jp-2 は文字集合の指示 ESC . A が抜け落ちる気がするが?
UTF-8 はなぜか日本語が JISX0208.1973 となるが、特に問題無し。
*
w3m-m17n
strict_iso2022 を OFF にすると、kterm 上では問題ないが、
-halfdump すると 0x82 0xC1 0xE0 などとなってしまう。これは何だろ。
*1: 日本語と一緒に使うなら普通は実体参照にすると思うが。
*2: ISO-2022 に既定されていないシーケンスだからしかたないが。
以上、23 日分です。