2005-05-08

このブログのコメント |Blogger|

[2005-05-02] にブログのコメントを HaloScan から Blogger のものに替てた。Blogger のデフォールトでは、「comment」のリンクを辿ると新規コメント入力フォームがポップアップする。既にコメントがあった場合、過去のコメント一覧もポップアップ・ウィンドウに表示される。

しかし、この動作が気に入らない。いきなりポップアップするのも嫌だし、コメントと本文が離れているのも嫌らしい。「comment」をクリックしたら、本文と過去のコメントを一緒に表示したい。というわけで、Templete をいじってみた。以下がパッチ。

  <p class="post-footer">posted by <$BlogItemAuthorNickname$> at 
    <a href="<$BlogItemPermalinkUrl$>" title="permanent link"><$BlogItemDateTime$></a> 
    | <BlogItemCommentsEnabled>
-       <a href="<$BlogItemCommentCreate$>" 
-       <$BlogItemCommentFormOnClick$>>
+       <a href="<$BlogItemPermalinkUrl$>#comments">
        <$BlogItemCommentCount$> comments</a>
      </BlogItemCommentsEnabled>
    <MainOrArchivePage>

「comment」はアイテム・ページにあるコメント部分へのリンクになっている。新規にコメントする場合は、一度「comment」からアイテム・ページに入り、その中にある「Post a commnent」をクリックして下さい。

コメントが一つもない場合は、「comment」をクリックするとすぐに新規コメントの入力フォームがポップアップするようにできればいいのだけど、動的にページを作らなきゃいけないから、それは今の Blogger じゃ無理かな...

クロネコヤマト: 宅急便「お届け通知サービス」

家に帰ったら、クロネコヤマトの不在連絡票が入っていた。お知らせ欄に、「お届け通知サービス」の案内。以下抜粋

宅急便の「お届け予定日・時間帯」を事前に E メールでお知らせします。 受取った E メールから、お客様のご都合で「お届け日・時間帯」の変更もできます。

事前連絡といっても、うちに宅急便を送る人は、たいてい送る前に電話で送りつける日と時間を聞いてくるのでメリットが小さい。メールから「お届け日・時間帯」を変更できるのが少しよいかな? せっかくなので、一応登録。

気になるのはメールのタイミング。時間指定しても配達時間がズレる時がある。例えば「午前中」の指定で 13 時に届いたり、「18 時〜 20 時」の指定で 17 時半に届いたりとか。こういう事があると、指定時間の前後 30 分位いの余裕を持たせなきゃいけないし、おちおちコンビニにも行けない。配達の直前にも (10 分前とか) 連絡メールが入ると嬉しい。そこら辺を自動通知するようなサービスは出来ないものかね。

2005-05-07

ama2bib: Amazon から Bib ファイルを作る |TeX|

Amazon から書籍を検索して、結果を bib ファイルとして出力する Perl スクリプト ama2bib を Thor 氏が公開した。同種のサービスに、ドイツの Amatex がある。

      ama2bib -j "奥村晴彦" 2>/dev/null | nkf -e >okumura.bib
    

上記のようにすれば、奥村晴彦氏の文献リストが okumura.bib に作成される。ama2bib には、この他にも ASIN/ISBN で検索するオプションなどもある。非常に便利なソフト。ただし、Amazon 側の制約で著者と訳者を区別できない (当然、監修者や編集者も) などの問題もある。

2005-05-06

カウンター & アクセス解析 Site Meter |Blogger|SiteMeter|

昨日、このサイトのアクセス解析のために Site Meter のカウンターをつけてみた。

Site Meter はフリーの海外製カウンター & アクセス解析。シンプルなカウンターがポイント。フリー版はいくつかの機能が制限されている。Blogger に対応しており、設定時に Blogger の Templete を編集する必要がない。とはいえ、デフォールトの設定ではサイトの一番下にカウンターが付けられたので、サイドバーに表示するよう、結局 Templete を編集する必要があった。

カウンターを探しているなら、「フリーカウンター/海外」というページが参考になる。

2005-05-05

clmemo@aka

Blog 名を「clmemo」から「clmemo@aka」に変えた。名前付けのセンスが悪いのは昔からの事。だから、気に入らなくて、後でポンポン変えてしまう。でもセンスの悪さは直ってないから、時間が経つとまた変えたくなる。その繰返し。新しい Blog 名は、もう変わらない事を祈ろう。

Blog を書く時のサイトへのリンク |Blogger|Emacs|

Blog を書いていると、他のサイトへリンクを貼ることがある。今までだと、Google NewsEmacs-w3m のページにリンクを貼った。これをメール・ポストする場合、a 要素を使うわけだが、例えば Google News の場合、<a href="http://www.google.co.jp/nwshp?hl=ja&tab=wn&ie=UTF-8">Google News</a> という文字列を直接入力している。

でも、これはコピー & ペーストを使うにしても面倒だし、メールを書いている時の可読性も低い。Blog ツール (?) の一つ、chalow では、「自動文字列置換」という機能があって、例えば googlenews を任意の文字列 (この例では Google News へのリンク) へと変換してくれる (要 Perl)。せっかく Emacs 上からポストをするのだから、この自動文字列置換のコードを EmacsLisp で書けないかと考えてみた。そこで思いついたのが、abbrev (略語展開) の機能を使う方法。

abbrev 機能というのは、省略形 bg を文字列 background に展開する機能。省略形と展開する文字列は一対一対応していて、ユーザーが自由に定義できる。そこで、googlenews という省略形を、上で書いた Google News へのリンクに展開するようにしようというわけ。

まず、abbrev 定義ファイルの設定を .emacs に追加する。

;;
;; abbrev
;;
(setq abbrev-file-name "~/.emacs.d/abbrev.defs")
(quietly-read-abbrev-file)

Emacs 上で M-x edit-abbrevs すると abbrev を定義しているファイルが開かれるので、ファイルの一番最後に次の書式で abbrev を定義する。

"省略語"    0    "展開される文字列"

保存するだけで、自動的に設定が反映される。自分で定義した省略語の後ろにポイントを置き、C-x a e してみよう。展開されるかな? 一括して展開したければ、リージョンで囲んだ後 M-x expand-region-abbrevs を実行してみよう。リージョン内の全ての省略語が展開される。

ところで、今、欲しいのはリンクなわけだから書式はある程度決まっている。そこで

foo<TAB>http://www.bar.com

という書式を

"foo"    0   "<a href=\"http://www.bar.com\">foo</a>

に変換するコードを quick hack してみた。もしよければ使って下さい。

(defun my-abbrev-define-aref ()
  (interactive)
  (beginning-of-line)
  (let* ((bol-pos (point))
 (eol-pos (line-end-position))
 (sep-pos (search-forward "\t" eol-pos))
 (abbr (buffer-substring bol-pos (1- sep-pos)))
 (expand (buffer-substring sep-pos eol-pos)))
    (delete-region bol-pos eol-pos)
    (insert (format "%-15s0    \"<a href=\\\"%s\\\">%s</a>\"" 
    (concat "\"" abbr "\"") expand abbr)))
  (forward-line))

2005-05-04

Blgrep 0.2 リリース |Emacs|

ブロックを出力単位にする Emacs 上の grep ツール、blgrep ver.0.2 をリリース。結局、ver. 0.1 は出せなかった Xp。

行指向の grep や occur とケース・バイ・ケースで使い分けて欲しいな。

ブロックの定義は検索対象によって変わるから、ファイルやモードごとにフロントエンドと呼ばれる関数を用意している。例えば outline モード用には blg-outline、ChangeLog ファイル用には blg-changelog、という感じ。現在、用意しているのは次の 5 つのファイル。

blg-2ch
2ch 用 (Emacs-w3m で見る時に...)
blg-bib
TeX の Bib ファイル用
blg-changelog
ChangeLog ファイル用
blg-elisp
EmacsLisp ファイル用
blg-outline
Outline ファイル用
clgrep
ChangeLog メモ用

blg-2ch 相当の事は navi2ch で出来る。ただ、navi2ch をインストールしたのが、blg-2ch を作った後だったのさ。

ChangeLog メモ用の clgrep は、ver. 0.1rc1 の頃と比べて関数名をかなり変えたので、前からのユーザーさんは気をつけて下さい。

最後にCVS Emacs の NEWS (C-h n) に M-x blg-outline RET utf RET をかけた場合の出力結果をお見せしよう。Emacsの「utf」関連の変更点を一望できる。:

* Changes in Emacs 22.1

** A UTF-7 coding system is available in the library `utf-7'.

---

** New language environments: French, Ukrainian, Tajik, Bulgarian, Belarusian, Ukrainian, UTF-8, Windows-1255, Welsh, Latin-6, Latin-7, Lithuanian, Latvian, Swedish, Slovenian, Croatian, Georgian, Italian, Russian, Malayalam, Tamil, Russian, Chinese-EUC-TW. (Set up automatically according to the locale.)

---

** The utf-8/16 coding systems have been enhanced. By default, untranslatable utf-8 sequences are simply composed into single quasi-characters. User option `utf-translate-cjk-mode' (it is turned on by default) arranges to translate many utf-8 CJK character sequences into real Emacs characters in a similar way to the Mule-UCS system. As this loads a fairly big data on demand, people who are not interested in CJK characters may want to customize it to nil. You can augment/amend the CJK translation via hash tables `ucs-mule-cjk-to-unicode' and `ucs-unicode-to-mule-cjk'. The utf-8 coding system now also encodes characters from most of Emacs's one-dimensional internal charsets, specifically the ISO-8859 ones. The utf-16 coding system is affected similarly.

---

** New variable `utf-translate-cjk-unicode-range' controls which Unicode characters to translate in `utf-translate-cjk-mode'.

---

** iso-10646-1 (`Unicode') fonts can be used to display any range of characters encodable by the utf-8 coding system. Just specify the fontset appropriately.

---

** There is support for decoding Greek and Cyrillic characters into either Unicode (the mule-unicode charsets) or the iso-8859 charsets, when possible. The latter are more space-efficient. This is controlled by user option utf-fragment-on-decoding.

+++

** The new variable `x-select-request-type' controls how Emacs requests X selection. The default value is nil, which means that Emacs requests X selection with types COMPOUND_TEXT and UTF8_STRING, and use the more appropriately result.

+++

* Lisp Changes in Emacs 22.1

** New coding system property `mime-text-unsuitable' indicates that the coding system's `mime-charset' is not suitable for MIME text parts, e.g. utf-16.

+++

* Changes in Emacs 21.3

** UTF-16 coding systems are available, encoding the same characters as mule-utf-8.

** There is a new language environment for UTF-8 (set up automatically in UTF-8 locales).

* Lisp changes in Emacs 21.1 (see following page for display-related features)

** The new coding system `mule-utf-8' has been added. It provides limited support for decoding/encoding UTF-8 text. For details, please see the documentation string of this coding system.

2005-05-03

メールでポスト |Blogger|

[2005-04-30] にも書いた通り、Blogger はメールで記事をポストできる。4/30 日以降、メールで記事をポストしている。

メールを Emacs 上の Mew で書いているので、つまりは自分の好みのエディター上で書いているわけ。メールでも HTML のソースを書けば、Blog に反映されるので、HTML のかける人ならメール・ポストというのもよいと思う。

問題は「タイトル」。メールの Subject: フィールドがタイトルになるのだけど、これに日本語を含めると MIME でエンコードされてしまい、Blogger はそれをデコードしない。つまり、文字化けしてしまう。仕方がないので、閑を見つけてはブラウザー上で修正をしている。Blogger が対応するまで待つしかないのかな? 何とかする方法はないかしらん。

2005-05-02

Blogger's Comment |Blogger|HaloScan|

HaloScan のコメントをやめて Blogger のコメントに戻した。

秀丸でインライン日付サポート |ChangeLogメモ|

zRyu 氏が 秀丸エディタでChangeLogのインライン日付を活用するマクロ を公開。

私は Emacs ユーザーなので秀丸のことは分からないが、選択肢が広がるのはよいこと。

ところで、秀丸版のマクロの解説で、日付ジャンプをした時にウィンドウが二つに分かれてリンク先が片方のウィンドウに表示されるとある。Emacs 版のマクロはジャンプしたらリンク元が見えなくなってしまうので、このアイデアはいいなぁ、と思った。