2005-05-31

Google 電卓のローマ数字計算 |Google|

たつをの ChangeLogGoogle 電卓のリファレンス が紹介されていたので、早速覗いてみたけど、こりゃすごいね。こんなことも出来たのか〜、と驚いちゃった。 Emacs の calc より便利かも。

面白いな〜、と思ったのはローマ数字計算もできる事。 リファレンス・ページの例は


        III + IV

      

で、 VII という答が返ってくるのだね。

そこでふと思いついたのがローマ数字の IIII。時計盤なんかで使われている IV の別表記 (?) だけども、果たして Google は IIII も認識するのか? そう思って試してみたら...


        III + IIII

      

ちゃんと VII になりました。スゴッ。

自作プログラムへのリンク集

自作プログラムへのリンク集を作ってみた。

このブログで書くコードもここからリンクをはろう。

ちなみに、リンク集のソースは RD で書いた。こういうシンプルでポンポン書き替えるような HTML を書くには、RD が便利。

2005-05-30

Gmail の新着メールをラベルを使って RSS アグリゲーターから見る |Gmail|RSS|ATOM|

Gmail が、ラベル付未読メール を ATOM で配信するサービスを始めたみたい。例えば、「ML」というラベルの付いたメールを RSS アグリゲーターで見るには、次の URI にアクセスする。

https://gmail.google.com/gmail/feed/atom/ML

驚いた事に、日本語のラベルも OK みたい (少くとも Sage ではアクセスできた)。

https://gmail.google.com/gmail/feed/atom/日本語

ATOM で配信されているのは、メールの冒頭の一部分。全文が見れるわけじゃない。それに、メール本文にアクセスしようとしても「受信ボックス」に跳ぶだけ。受信ボックスを通りこしてアーカイブに行くよう設定してたり、新着メールをラベルするフィルターを作ってない場合は、メリットが小さいかな。まあ、まだ始まったばかりのサービスのようだから、色々とアイデアは出てくると思う。

2005-05-29

chalow ML 復活の舞台裏 |ChangeLogメモ|

chalow ML 復活の話題について、 zRyu 氏の Blog にも書き込みがあった。メーリング・リスト内の番号がズレてた理由について言及。

そうそう、原因調査のためにまずは、全登録者を削除して、個人的なアカウントを2つだけを登録しなお した。この状態でいくつかメールを出し調査を行った(結局原因がわからなかったけど orz)。そして、 調査の最後に個人のアカウントを削除して元々の登録者を復活させたところまでは良かったんだが、メー ルの通番を戻さなかった(忘れたともいう)。なのでメーリングリスト復活前と後でメールの通番が連番 になっていません。

なるほど、そういうわけだったのね。取り損ねたメールがあったんじゃないかと心配だったけど、これで一安心。と、納得。

ATOM Feed をつけてみた |Blogger|ATOM|

ATOM Feed をサイド・バーにつけてみた。RSS アグリゲーターを入れれば、新着ポストを読めるようになるはず。 Blogger の提供するサイト・フィードは、ATOM という規格で書かれているから、正確に言えば RSS ではないけど...

ATOM Feed の追加方法は、「設定画面」の「サイト データ」で「サイト データを公開」を「はい」にする。すると Blogger はサイトの ATOM Feed を用意してくれる。でも、ただ用意してくれるてるだけで、その ATOM にアクセスする方法というか「リンク」は提供しない。そこで、Templete を編集する必要がある。具体的には、次のようなコードを自分の好きな場所に埋め込めばいい。

  <p>[ <a href="<$BlogSiteFeedUrl$>" title="Atom feed">Site Feed</a> ]</p>

Atom Feed の追加方法は、 Blogger のヘルプにあるけど、まだ日本語化はされてない。早く日本語化されないかな。

2005-05-28

Yahoo! Mindset |Yahoo|

Yahoo! Next とは、Yahoo! の次世代技術を公開するサイト。Google でいう所の Google Labs に当たる。この Yahoo! Next で、Mindset なる検索技術が公開された。

Mindset は、Intent-driven Search と紹介されている。ユーザーが、検索結果に対して「商用 (commercial, shopping)」な度合いをを自由にフィルターする機能が目玉。例えば、MindSet で「Lord of the Rings」を検索してみると、検索結果のトップに出てくるのは New Line Cinema 社が提供する映画 The Lord of the Rings の公式サイトになる。そこで、検索結果ページの上についているスライド・バーを shopping の方にズラしてやると、The Lord of the Rings の DVD を売っているページがトップになる。また、スライド・バーを researching の方にズラすと、The Lord of the Rings のファンサイトがトップに、そして WikipediaThe Lord of the Rings の説明ページが次に来る。

「モノ」について調べる時、それを買おうとしてるのかそうでないのかによって欲しい情報が違っているもの。特に、本や CD の「情報」を探している場合は、Amazon に関するページを検索結果から外すなんてテクニックを使い、それでも上手くいかないので苦労していたものだけど、このサービスが一般化すれば楽になる。期待大。

2005-05-27

Amazon の画像をローカルに保存 |Amazon|ChangeLogメモ|Perl|wget|

山下さんが、「10年後のためにやっておいた方が良さそうなこと」にて Amazon アソシエイトが提供する広告用の画像をローカルに保存する方法を書いている。本来、 Amazon が提供する画像は、著作権の問題があるので、 Amazon への直リンクが推奨されている。だけど、十年も経った時にその画像へのリンクが残っている保証はないし、 ChangeLog メモのようにローカルで Blog を参照できるシステムでは困ってしまう。そこで、

もちろん現在の商品紹介でローカルに保存した画像を使うことはありません。 あくまで未来へ向けての保存用です。

ということで画像をダウンロードしておく。

Hack

この Hack には Perl と GNU wget を使う。対象は Amazon アソシエイトの画像を含む HTML ファイル。でも山下さんの Hack を見ると、 wget を画像の数だけ呼び出すようになっている。

  wget http://images-jp.amazon.com/images/P/4274065979.09.THUMBZZZ.jpg
  wget http://images-jp.amazon.com/images/P/B0007V1SSA.09.THUMBZZZ.jpg

wget-i オプションを使う方が、システムの負担が小さいと思う。というわけで、quick hack。

 % perl -F"<" -ane 'for(@F){$hash{$1}++
 if(m|(http://.+?/images/P/.+?.jpg)|)}
 END{for(keys%hash){print"$_\n"}}' *.html > a.txt

生成した a.txt を wget で処理する。既にある画像を対象から外すには、次のようにすればよいかな。

 % wget -N -i a.txt

2005-05-26

Blogger の設定ページが日本語化された |Blogger|

2005-05-14 に Blogger の Blog 設定ページが一部日本語化された。そして今日、設定ページを見てみたら全部日本語化されていた! 少しずつだけど、使い勝手が良くなっていくね。

ところで、BlogSend アドレスの説明なのだけど、英語で読んだ時も訳分からなったが、日本語になって...

公開時に毎回 Blog をメールで送る宛先のメール アドレスを入力します。

やっぱり分かんない。こちらの読解力不足? 言いたい事は、「公開した Blog をこのメール・アドレスに Cc します」ということだと思うけど

2005-05-25

二階建てエレベーター

生まれて初めて、二階建てエレベーターというものに乗った。これはエレベーターを二両、上下に連結させたもの。下の階のエレベーターは奇数階に、上の階のエレベーターは偶数階にしか停まらない。メリットは輸送量が二倍になること、停止階が半分になること。

タワー (ビル) が高くなればエレベーターの輸送効率が問題になるというけれど、こういう方法もあるのだね。目から鱗が落ちた。もっとタワーが高くなったら、二階建てエレベーターと言わず、十階建てエレベーターなんかができて、エレベーターの中にエスカレーターや内部エレベーターが置かれるようになったりして。

路線検索

人身事故で電車が遅れた。終電間際だったので、振替路線を探すのもドキドキものだった。「使わない路線区間」を指定した路線検索が出来ると嬉しい。

2005-05-23

Infoseek 地図

風の便りさんのページで知ったのだけど、Infoseek の地図がよい。

普段使っている Yahoo! の地図と比べると、まず詳しさが違う。Yahoo では、詳細マップを表示しようとするとデータが提供されていない場合があって悔しい思いをする事がある。一方 infoseek では、Zenrin の地図を使っていて健物の名前まで載る程詳しい。一番詳しい地図は、一辺 150 m のもの。

「最寄駅検索」をすると、地図上に駅の位置が、地図の下に詳細情報が表示される。目的地に一番近い駅が目で見れるので便利。

infoseek 地図の弱点は、地図と「乗り換え案内」の連携がないこと。つまり「最寄駅」の情報が「乗り換え案内」に渡されないので、路線検索に駅名を入力しないといけない。一方、Yahoo! だと最寄駅を検索したら、「出発駅 / 到着駅にして探索」というリンクがあって、駅名を入れる手間が省ける。使ってみると、この便利さはあなどりがたい。

地図の infoseek、サービスの Yahoo といった所か。どっちも、あと一歩頑張って欲しいなぁ。

2005-05-22

chalow ML 復活 |ChangeLogメモ|

zRyu 氏が管理している chalow の ML が復活した。ML のサーバーがダウンしていることに気付いたのは、今週の頭。それ以前に、落ちていたんだろうなぁ。

chalow ML は基本的に非公開。chalow に限らず、ChangeLog メモに関心のある人なら誰でも入れる (と思う)。

今、気がついたんだけど、chalow のページにメーリング・リストの情報がないような...

検索エンジン A9.com

A9.comAmazon が開発している検索エンジン。A9 の新着情報によると、2005-05-17 (5 日前?) にリニューアルしたようだ。

今回、初めて見たのだけれども、ウェブ検索、イメージ検索はあたり前として、書籍検索、映画検索、ウィキペディア検索なんてのがオプションで選べるようになっている。見た目も Google を意識してか、シンプル。サインインすると、自分好みな検索エンジンに変えられる。ただし日本語は検索できないみたい。

問題は、Emacs-w3m で検索すると、テーブル状に結果が表示されて見にくいこと。Ask Jeeves もそうだけど、テキスト・ブラウザーのことも考えた検索結果を出して欲しい。

2005-05-21

Google News に「スター・ウォーズ」を追加 |Google|

2005-05-19、アメリカでスター・ウォーズ エピソード III / シスの復讐 (Star Wars, Episode III: The Revenge of Sith) が公開された。日本公開は 2005-07-09。

スター・ウォーズが好きな人間としては、興行収入がどうなったとか、先行上映がどうだとかの動向をネタバレなしで追いたい。Google News はニュース・セクションを自分好みにカスタマイズできるという事なので、「スター・ウォーズ」というセクションを作ってみた。とりあえず、「初日興収」と「海賊版」の話題が持ち上がってる。これから、どんな動きを見せるか楽しみ。

2005-05-20

URL の yank |Emacs|HTML|

Blog を書いていて思うのだけど、ペーストする対象が http で始まっている場合は、<a href="http..."></a> という形で貼り付けてくれないものかな。advice を定義すれば、よいのかな。

2005-05-19

orz.ps |PostScript|

スラッシュドットで、アスキー・アート orz をコマンドとして実装するなら、どんな機能を持たせるか という話題が出た。

いくつもコメントがついたけど、面白かったのは PROGRESS BAR を表示させるというもの。引用すると、

コアダンプでも、デバッグ情報送信でも、こんなアニメーションを…

........orz
.......o.rz
......o..rz
.....o...rz
....o....rz
...o.....rz
..o......rz
.o.......rz
o........rz

そこで、アニメーション GIF を作ってみた。

..............orz

ソースは PostScript。Perl や Ruby で書くのもいいけれど、こういうマニアックなのもいい?

%!PS-Adobe-3.0
%%BoundingBox: 0 0 100 20
%%Title: orz.ps
%%Creator: @aka
%%CreationDate: Thu May 19 23:06:30 2005
%%EndComments

64 dict begin

/dots 14 def
/Helvetica-Bold findfont 18 scalefont setfont

/orz {
  0 1 dots {
    /head exch def
    0 0 moveto
    dots head sub { (.) show } repeat
    (o) show
    head { (.) show } repeat
    (rz) show
    showpage
  } for
} def

orz

end
showpage
%%EOF

上のコードを orz.ps として保存し、convert コマンドにかけて出来上がり。

$ convert orz.ps orz.gif

首の長さは、変数 dots で変更できる。フォントは Helvetica-Bold、サイズは 18 ポイント。気に入らなければ、そこら辺をいじって自由に書き直されたし。

問題は、これがコマンドじゃないって所だな。

2005-05-18

Mew で Gmail を使う |Gmail|Emacs|Mew|FedoraCore2|

EH さんの紹介で Gmail のアカウントを手に入れた (EH さん、ありがとう!)。で、Mew 使いの T-Code 使いとしては、当然 Emacs 上で Gmail のメールを見たり書いたりしたいのだけど、この設定にかなり苦戦した。役に立つ事もあると思うので、その記録を残しておく。

やりたい事

Gmail に届いたメールを、POP でゲットして Mew で読みたい。Mew でドラフトを書いて、Gmail の SMTP からメールを発信したい。

環境

  • OS: GNU/Linux FedoraCore2
  • GNU Emacs 22.0.50 of 2005-03-15 (開発版)
  • Mew 4.2.50 (開発版)

常用のコンピューターはファイヤーウォールの中にある。今回は、ssh の port forward を使って対処した。仮に次のような環境にいるとして読んで下さい。

  • ssh でトンネルするマシン: foo.bar.ne.jp

メール・アドレスは、スパム対策のため秘密。ここでは [email protected] とします (注: Gmail では 6 文字以下のメール・アカウントは作れない)。

設定

まず、gmail 側の POP ポート 995 と SMTP ポート 465 を、foo.bar.ne.jp を経由して自分のマシンのポート 10995 と 10465 に ssh で port forward する。port forward は、ログインする度に必要?

$ ssh -f -N -L 10995:pop.gmail.com:995 foo.bar.ne.jp
$ ssh -f -N -L 10465:smtp.gmail.com:465 foo.bar.ne.jp

Mew の設定は .mew.el に次の様に書く。

(setq mew-ssl-verify-level 0)
(setq mew-config-alist
      '(;; config alist
        ("gmail"
         ("user"          . "nemo")
         ("mail-domain"   . "gmail.com")
         ("pop-user"      . "[email protected]")
         ("pop-ssl"       . t)
         ("pop-delete"    . nil)
         ("pop-server"    . "localhost")
         ("pop-ssl-port"  . "10995")
         ("smtp-user"     . "[email protected]")
         ("smtp-ssl"      . t)
         ("smtp-server"   . "localhost")
         ("smtp-ssl-port" . "10465")
         )
        ("default"
         ("user"        . "ataka")
         ("mail-domain" . "milk.free.mail.ne.jp")
         ... 以下略 )
))

以上で、設定はお終い。M-x mew でメールの送受信ができるようになるはず。Mew から送ったメールは、Gmail の「送信済みメール」の中に入る。ただし、From フィールドが Gmail 側の設定に上書きされてしまう。今の所、書き換えを抑制する方法はないようだ。

Fedora Core 2 の場合

FC2 を使っていると、stunnel が動いてくれない。この問題は mew-dist ML でも議論されている ([mew-dist 25404] から始まるスレッド)。中村さんの報告によると、原因は Emacs から start-process されたプロセスが signal 1 を受け取って死んでしまうことにあるらしい。解決策は、次のような shell script を書いて

#!/bin/sh
/usr/sbin/stunnel $@

~/bin に stunnel という名前で放り込んでおき、Mew からは .mew.el でパスを指定する。

(setq mew-prog-ssl "~/bin/stunnel")

FedoraCore3 でこの問題が fix されているのかどうか知らないが、逃げ道はあるという事だね。あと、mew-ssl-verify-level を 0 以外にした時の設定をしたいのだけど、やり方が分からない。調べはしたけど、無知が災いしてか見当もつかない。設定方法を知ってる方、教えて下さい。

2005-05-17

Amazon アソシエイトと文献検索システム |Amazon|BibTeX|idea|

Amazon のアソシエイトに登録して思ったこと。

私がアソシエイトで紹介するのは、(おそらく) 本だ。きっと新刊の紹介よりも、 この本を参考にしたよという風な引用が多くなると思う。すると、手持ちの本の紹介ばかりになって、何度も同じ本を紹介するんだろう。

この状況って、何かに似ているなと思ったら、論文の参考文献システムの問題と同じなのだね。論文で参考文献として利用する本・論文は大概決まっているから、予めデータベースを作ってそれを呼び出すようにしている (それが BibTeX というシステム)。同じように、Amazon で紹介する本のデータベースを作っておいて、簡単な操作一つでリンクを挿入できるようにできないものかな。そう、 RefTeXみたいなインターフェースで。

テスト 2005-05-14a

日本語テスト

2005-05-16

clmemo-1.0.0 リリース |Emacs|ChangeLogメモ|

Emacs 版の ChangeLog メモ入力支援ソフト clmemo のバージョン 1.0.0 を、ようやっとリリース。

ChangeLog メモとは、ChangeLog の形式でメモをとろうというアイデア。全てのメモを一つのファイルに保存するので検索が楽というメリットがある。また、テキスト・フォーマットなので特定のソフトに依存せず、加工もしやすい。山下達雄氏が公開している chalow を使うと、 ChangeLog メモ を Blog ライクなウェブページに変換できる。

clmemo.el は、その ChangeLog メモを Emacs 上で手軽に入力・編集するためのツール。旧版 (1.0rc3) との違いは

  • 日本語ドキュメント (info & HTML) を追加
  • blgrep 対応
  • 小さなバグ・フィクス

不具合・要望などがあれば、どしどし 安宅まで。

P.S. chalow は、Blog Hacks -- プロが教えるテクニック & ツール 100 選でも取り上げられている。

2005-05-15

Amazon アソシエイト承認

昨日 Amazon アソシエイトに登録した。で、昨夜の内にアソシエイト承認のメールが届いていた。審査といっても、形ばかりのものなのかな?

個人的には、 HMV でクラシック CD をよく買うので、HMV のアフィリエイトがあると嬉しい。でも、 HMV のサイトではそういう説明はなかった。 Tower Records もアフィリエイトの説明がない。残念。

2005-05-14

Amazon アソシエイトに登録した

Blog を始めたので、せっかくだから Amazon のアソシエイトに登録した。コンピューター関連の本を紹介するつもり。使い方が全く分かっていないので、変なリンクを貼らないように気をつけよう。

2005-05-13

テスト

テストです

test

テスト

test4

テスト?

test3

テスト

test2

test

test

This is test

firefox 1.0.4 日本語版リリース

Firefox 最新版 (1.0.4) の日本語版が今日リリースされた。何も考えずに、firefox-installerを使ってインストール。

/usr/local/bin をインストール先にすると、firefox は /usr/local/bin/firefox-install/ 以下に入ってしまう。何か気持ち悪い。firefox 本体を /usr/local/bin に入れるには、どうすればよいのかな?

2005-05-12

abbr/acronym の title 内容も表示させる |HTML|CSS|

普通、abbr/acronymtitle attribute の内容は、Firefox などのモダン・ブラウザーでポップ・アップ表示される。これを、本文にも表示させるには、次のような CSS を書く。
acronym:after { content: " (" attr(title) ")"; }
abbr:after { content: " (" attr(title) ")"; }

2005-05-11

カテゴリー・サーチをナビゲーション・バー風に配置する |Blogger|

昨日は、Blogger に擬似的なカテゴリー・サーチを置く方法について書いた。今日は、昨日のサーチ・フォームをナビゲーション・バー的に配置する方法を書いてみる。

Blogger でブログを公開している人達には、ページの一番上に Blogger Navbar というナビゲーション・バーがつく。ここには、本家 Blogger へのリンクや、他のブロガーの人へのランダム・リンクなどが表示されている。この NavBar の最大の売りは、何と言っても Google を使った自ブログへのサーチ・フォームだろう (別に大した事はしていないけど、シンプルなのがよいね)。

やりたい事は、「NavBar にカテゴリー・サーチを追加する」という事。具体的には、次のようなフォームをNavBar に入れたい。

そこで、色々と調べてみたのだけれど、NavBar は (今の所) ページ生成時に自動で入れられてしまい、ブログ作成者がいじる事はできないみたい。仕方がないので、方針変更。NavBar と同じスタイルの新 NavBar を追加する形にしてみた。どんな形になるかというと、このページの上にその「新 NavBar」が出ていると思うので、それを見て下さい。

このページの新 NavBar は、Templete の <div id="wrap"> に以下のコードを加える事で実現している。

<div id="wrap">
<div id="b2-navbar">
<form method="GET" action="http://www.google.com/search">
  <select id="b2-query" name="q" size="1">
    <option selected="selected" value="">Category</option>
    <option value="intitle:Blogger">Blogger</option>
    <option value="intitle:&quot;ChangeLogメモ&quot;">ChangeLog メモ</option>
    <option value="intitle:Emacs">GNU Emacs</option>
    <option value="intitle:Google">Google</option>
    <option value="intitle:HTML | intitle:CSS">HTML &amp; CSS</option>
    <option value="intitle:TeX | intitle:LaTeX">TeX &amp; LaTeX</option>
  </select>
  <input type="hidden" name="sitesearch" value="at-aka.blogspot.com" />
  <input type="hidden" name="ie" value="UTF-8" />
  <input type="hidden" name="hl" value="ja" />
  <input type="image" src="http://www.blogger.com/img/navbar/1/btn_search.gif" alt="Search" value="Search" id="b2-searchbtn" title="Search this blog by Category with Google" />
</form>
</div>
<!-- #wrap - for centering -->

あと、Blue タイプの CSS を、Templete の CSS 設定部分に加える。

/* ---( navigation bar 2 )--- */
#b2-navbar 
  {
    background:#036;
    border-bottom:1px solid #024;
    color:#47a;
  }

#b2-search 
  {
    background:#147 url("http://www.blogger.com/css/img/navbar/1/corner.gif") no-repeat left bottom;
  }

#b2-query 
  {
    border:1px solid #47a;
  }

まだ、Google にうちの Blog がスキャンされてないので、カテゴリー・サーチはほとんど使えない。でも、見た目はマトモになったでしょ。

P.S. NavBar の編集方法を知っている方、いらっしゃいましたら教えて下さい。

2005-05-10

Blogger でカテゴリー・サーチ |Blogger|

2005-05-10 日現在、Blogger にカテゴリー機能はない。で、カテゴリー・サーチ用のサービスはないものかと調べていたら、宮本氏のサイト内カテゴリ検索方法というページを見つけた。

要約すると、「Google のタイトル検索用演算子 intitle:タイトル中の文字列 を使ってタイトル中のカテゴリー文字列だけを検索すれば、擬似カテゴリー検索になる」というもの。サイト側の手順としては

  1. タイトルにカテゴリー文字列を埋め込んでおく
  2. カテゴリー用の文字列を検索するリンクを用意する
という形になる。リンクの書き方は宮本氏のページを参考にされたい。

というわけで、早速、うちのブログでもカテゴリー用の文字を埋め込んでみた。書式は |category| という形。複数のカテゴリーに含まれる場合は、|category1|category2| と書く。カテゴリーを複数持つ時、[category1][category2] な書式よりスマートに見えるのだけど、どうだろう。

さて、カテゴリー用検索用のリンクだけど、フォームを使って提供する手もある:

上のフォームのソースは以下の通り:

<form method="GET" action="http://www.google.com/search">
  <select name="q" size="1">
    <option selected value="">Category</option>
    <option value="intitle:Blogger">Blogger</option>
    <option value="intitle:&quot;ChangeLogメモ&quot;">ChangeLog メモ</option>
    <option value="intitle:Emacs">GNU Emacs</option>
    <option value="intitle:Google">Google</option>
    <option value="intitle:HTML | intitle:CSS">HTML &amp; CSS</option>
    <option value="intitle:TeX | intitle:LaTeX">TeX &amp; LaTeX</option>
  </select>
  <input type="hidden" name="sitesearch" value="at-aka.blogspot.com" />
  <input type="hidden" name="ie" value="UTF-8" />
  <input type="hidden" name="hl" value="ja" />
  <input type="submit" value="Search" />
</form>

<input type="hidden" name="sitesearch" value="at-aka.blogspot.com" /> で自分のブログだけを検索対象にして、<option value="intitle:カテゴリー名">カテゴリー</option> でタイトル中のカテゴリーを検索している。

Google を使う方法は、Google に自分のページが見つけてもらえてないと使えなくて、最新記事の検索ができない所が泣き所だけれども、検索文字列をサイト側で自由に提供できるのが便利かも。

2005-05-09

HTML 内の <, > ,& を quote する |Blogger|Emacs|

Blog (Blog に限らないけど) を HTML で直接書いてて、<pre> タグの中にプログラムのソースを挿入することがある。この時、HTML のタグで利用する <・>・& の 3 文字が入っていると、ブラウザーに HTML のタグだと認識されて困ってしまう。そこで &lt;・&gt;・&amp; という形に変換するのだが — これ自体はエディターで 3 回ほど置換すれば対処できる — プログラマーというのは怠惰を好む人種で、たった 3 回の置換でも面倒臭く思う (少くとも私はそう)。もっと楽にできないかと考えてしまうのだ。そこで、Emacs の中をゴニョゴニョ探してみたら... やっぱりあった。sgml-quote という関数が...

Quote SGML text in region start ... end. Only &, < and > are quoted, the rest is left untouched. With prefix argument unquotep, unquote the region.

リージョンを指定して、M-x sgml-quote とすると、リージョン内の < などの文字が &lt; の形に変換される。本当は " も変換されると嬉しいのだが、カスタマイズはできないっぽい。

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 版のマクロはジャンプしたらリンク元が見えなくなってしまうので、このアイデアはいいなぁ、と思った。