Pages

2005-11-30

Emacs の browse-url と firefox 1.5

firefox 1.5 が出た

リリース・ノートによると -remote オプションの代わりに -new-tab (-new-window) オプションが用意された。

firefox -remote (mozilla-xremote-client) はカンマを含む URL では機能しなくなり、廃止される予定です。firefox -new-window /url/ で新しいウィンドウに URL を開き、firefox -new-tab /url/ で新しいタブに URL を開きます。

今まで

firefox -remote openURL(http://www.google.co.jp,new-tab)

としていたところ、

firefox -new-tab http://www.google.co.jp

と書くようになったということらしい。

Emacs の browse-url

この変更のおかげで、browse-url.el が動かなくなってしまった。当然、Emacs-w3m のように外部ブラウザーの起動に browse-url を使ってるコードも (該当部分が) 動かない。

とりあえず、開発版の browse-url.el への対策は以下の通り。

(eval-after-load "browse-url"
  '(progn
(defun browse-url-firefox (url &optional new-window)
  "Ask the Firefox WWW browser to load URL.
Default to the URL around or before point.  The strings in
variable `browse-url-firefox-arguments' are also passed to
Firefox.

When called interactively, if variable
`browse-url-new-window-flag' is non-nil, load the document in a
new Firefox window, otherwise use a random existing one.  A
non-nil interactive prefix argument reverses the effect of
`browse-url-new-window-flag'.

If `browse-url-firefox-new-window-is-tab' is non-nil, then
whenever a document would otherwise be loaded in a new window, it
is loaded in a new tab in an existing window instead.

When called non-interactively, optional second argument
NEW-WINDOW is used instead of `browse-url-new-window-flag'.

On MS-Windows systems the optional `new-window' parameter is
ignored.  Firefox for Windows does not support the \"-remote\"
command line parameter.  Therefore, the
`browse-url-new-window-flag' and `browse-url-firefox-new-window-is-tab'
are ignored as well.  Firefox on Windows will always open the requested
URL in a new window."
  (interactive (browse-url-interactive-arg "URL: "))
  ;; URL encode any `confusing' characters in the URL.  This needs to
  ;; include at least commas; presumably also close parens.
  (while (string-match "[,)]" url)
    (setq url (replace-match
        (format "%%%x" (string-to-char (match-string 0 url))) t t url)))
  (let* ((process-environment (browse-url-process-environment))
  (process
   (apply 'start-process
   (concat "firefox " url) nil
   browse-url-firefox-program
   (append
    browse-url-firefox-arguments
    (if (or (featurep 'dos-w32)
     (string-match "win32" system-configuration))
        (list url)
      (list (if (browse-url-maybe-new-window
          new-window)
         (if browse-url-firefox-new-window-is-tab
      "-new-tab"
    "-new-window"))
     url ))))))
    (set-process-sentinel process
     `(lambda (process change)
        (browse-url-firefox-sentinel process ,url)))))
))

ちゃんとやろうとしたら、firefox のバージョンを確かめて、1.0.X なら -remote を、1.5+ なら -new-tab を使うように設定すべき。

ref

firefox 1.5 リリース

先ほど、slashdot で知ったのだけど、Firefox 1.5 が正式リリースされた。

既に Linux 版 (日本語) も提供されている。ぼくは下の URL から linux 版をダウンロードした (本家サイトからはダウンロードに失敗した)。

新しい機能なんかはリリース・ノートを読んでもらうことにして、最新 1.5 の Linux へのインストールをば。

Install firefox 1.5 (Linux)

上記 URL から firefox-1.5.tar.gz をダウンロード。

firefox-1.0 系のように firefox-installer なんてコマンドは用意されてない。アーカイブを展開したら、それでお終い。旧 firefox の設定が

$ which firefox
/usr/local/bin/firefox-installer/firefox
$ grep path .zshenv
path=($HOME/bin /usr/local/bin/firefox-installer /usr/local/bin /usr/bin /bin /usr/X11R6/bin)

とすれば、次のようなコマンドで firefox-1.5 を /usr/local/bin 以下にインストール。

# cd /usr/local/bin
# tar xzvf ~/firefox-1.5.tar.gz
# /sbin/ldconfig

そして .zshenv の path 設定を次のように変える。

path=($HOME/bin /usr/local/bin/firefox /usr/local/bin /usr/bin /bin /usr/X11R6/bin)

source .zshenv して firefox を起動すれば (古い firefox-1.0 は全て終了させること)、最新版になる。

最初、Google Toolbar が動かなかったけど、拡張機能の更新をしたら動くようになった。最新版にアップすると、まだサポートされてない拡張とかもあるだろうから、そこら辺は情報を集めて慎重に。

P.S.

マルチユーザシステムで、ユーザが書き込み権限を持たない場所に Firefox 1.5 をインストールした場合、Firefox は一度特権ユーザによって実行される必要があります。

イベント・ブログと広告

一寸、とりとめのない話。イベント・ブログについて思ったこと。

ここでぼくが思い描いてるイベント・ブログっていうのは

イベントのために作られた期間限定のブログ。

例えば大学祭とか、コンペティションとか、研究会とか、年に一度のお祭だとか、そういった類のイベントのために、今はみんなホームページを作ってる。そこをブログでサイト構築してしまうというのはありじゃないかな、と思うわけ。

つまり、ブログを CMS (Content Management System) として活用してしまうという一手。

イベント用のページをブログ化する利点は、ブログが持ってる利点と同じ...

  • 更新が楽
  • RSS 配信できる
  • コメント・トラックバックがもらえる。
  • デザインを (テンプレート編集で) 一括して変更できる

パンフレット

もう一つ。ブログの可能性。それは、ブログ・コンテンツを本にしてくれるサービスがあること。これは、ブログが一定のフォーマットに従ってるから展開できるサービス。

例えばはてなダイアリーはブログを日記にしてくれるサービスを持っているし、ブログ出版局なんてお手軽 (そうな) 汎用サービスもある。

上手くすれば、ブログからイベントのパンフレットを簡単に作れてしまうのではないかしらん。

広告モデル

それで、ここからがぼくの書きたかったこと: そのイベント・ブログやパンフレットに広告を共通の広告をのせられるといいよね。

もちろん、今までもイベントのパンフレットには広告が載っていた。Google Adsense みたいなアフィリエイト・プログラムもある。

でも、パンフレットの広告はウェブ上で集めたわけでもないし、イベントのウェブ・ページに広告が載るわけじゃない。一方 Adsense も、パンフレットの広告みたいに「イベントが開かれる地域にそくした広告」を集めるわけじゃないし、ウェブ上の広告を印刷物に載せるようなサービスはない。そこで、

  1. イベント開催地周りの広告を集めて
  2. ブログ (ウェブ) とパンフレット (印刷物) の両方に広告を載せる

そんなサービスがあってもいいんじゃないかと思うわけです。

既に印刷物を出版してるはてなとか、広告を印刷物にも載せ始めた Google とか、そういうイベント・ブログ・サービスを始めてくれないかなぁ。

思いつき以上の何ものでもないけれど、アウトプット主義に感化されて公開。

2005-11-29

Google の検索サービス

Google Print が Google Book Search に名称変更したという。本の中身も検索できるとのこと。Google と言えば、Gmail とか Google Reader なんてサービスを提供しているけれども、「検索」の会社というイメージが (ぼくには) 大きい。

ウェブに本にブログにと、Google の検索サービスは沢山あるなぁ。

そこで、Google のサービスを「検索」を軸にしてどんなのがあるかリストにしてみた (2005-11-29 現在)。

Google の検索サービス

ウェブ検索 (http://www.google.co.jp/)
80 億を越えるウェブページをインデックスした世界最大のロボット型ウェブ検索。パーソナライズド・ホーム、検索履歴機能との統合も。
イメージ検索 (http://www.google.co.jp/imghp?hl=ja)
10 億を越える画像をインデックスした画像検索。
ニュース検索 (http://news.google.co.jp/nwshp?hl=ja)
610 以上のニュース・サイトから情報を収集したニュース検索。キーワードにマッチするニュースをメールで通知するアラート機能あり。
ブログ検索 (http://blogsearch.google.com/)
ブログに特化した検索。Weblogs.com の PING 情報を利用? 検索結果を RSS でも配信。Blogger インターフェース版もあり。
ローカル検索 (http://local.google.com/)
地域 (ローカル) 情報検索および地図検索。Google Maps と統合。Google Maps API を提供。サテライト (衛星写真) モードあり。
グループ検索 (http://groups.google.co.jp/?hl=ja)
fj を始めとする News 検索。Google グループ自体が一種の ML になる。
ディレクトリー検索 (http://www.google.co.jp/dirhp?hl=ja)
カテゴリー別検索。Open Directory Project の成果を取り入れた登録型ウェブ検索。
データベース検索 (http://base.google.com/)
なんでも検索?
書籍検索 (http://books.google.com/)
旧 Google Print。著作権の切れた書籍の検索。
ビデオ検索 (http://video.google.com/)
TV 番組 (米国のみ?) と動画情報の検索。
論文検索 (http://scholar.google.com/)
米国大学内の論文を検索。
大学検索 (http://www.google.com/intl/ja/universities.html)
検索範囲を特定の大学のサイトに絞った検索。
スペシャル検索
検索範囲を特定の分野に絞った検索。現在、Linux、Mac、BSD、Microsoft、アメリカ政府の五つの分野が提供済。
カタログ検索 (http://catalogs.google.com/)
スキャンしたカタログを検索 (米国のみ?)。
商品検索 (http://froogle.google.com/frghp)
カタログ検索よりフレキシブルな商品検索 (米国のみ?)。

サービスではないけれど、ローカル・ファイルを検索できる Google Desktop、イメージ管理 (検索) 用の Picsa、3D 地図の Google Earth などがある。

あと、漏れてるものがあったらコメント下さい。

.
.

2005-11-26

はてなリング「ChangeLog メモ」のロゴ

はてなリング「ChangeLog メモ」のロゴを作ったので、ソースを公開しとく。

ChangeLog Memo Logoロゴの意匠は、はてなリングの輪っかを「Changelog」の Cl に当てて「Changelog Memo」と書いたもの。色は「はてな」にちなんで青ベース。

PostScript ソース

ソース・コードは PostScript を直書きしたもの。30 分程の作品。

配色と文字のバランスに時間をかけたけど、センスの無さが表に出た感じ Xp。もっと格好よく直せる人が居たら遠慮なく直して下さい。

%!PS-Adobe-3.0 EPSF-3.0
%%BoundingBox: 0 0 200 200
%%Title: changelogmemo.eps
%%Creator: Masayuki Ataka
%%CreationDate: Fri Nov 25 11:00:28 2005
%%EndComments

64 dict begin

%
% Change
%
/Helvetica-Bold  findfont 36 scalefont setfont
15 setlinewidth
0 0 1 setrgbcolor

80 110 65 30 330 arc
stroke

30 80 moveto
(hange) show

%
% Log
%
0.65 0.80 1.0 setrgbcolor

newpath
80 110 65 330 30 arc
stroke

150 80 moveto
(og) show

%
% Memo
%
/Helvetica-Bold  findfont 46 scalefont setfont
60 20 moveto
(Memo) show

end
showpage
%%EOF

これを changelogmemo.eps という名前で保存して、convert コマンドで 60x60 のサイズにリサイズした。

$ convert changelogmemo.eps -resize 60x60 changelogmemo.png

2005-11-25

life@aka を Blogger に移転

TypePad で開いていた趣味系ブログ life@aka を Blogger に移転させた。

TypePad が悪いとかいうんじゃなくて、オサイフの中身の問題 (;-;)。

TypePad ネタを書けば、米国で TypePad のシェアを猛追している WordPress.com がベータ版を終えて無料のブログ・サービスを一般解放した (3 日前?)。また、TypePad ベースの @Nifty のサービス、ココログが無料版のココログ・フリーを始めた (昨日?)。

そんな財布に優しいサービスに心が動いたけど、なぜ Blogger で Blog を書き続けるのかなんて大層なことを書いといて、舌の根もかわかぬ内に他のサービスやっちゃあ、なんか人として終わってるだろう。と思い Blogger に移った次第。

来年の 4 月位いに、TypePad のブログも他の形 (グルメとか?) で再開できればと思ってる。

では、life@aka の他もよろしくお願いします。

P.S. Google Analytics の解析入れたかったけど、間に合わなかったなぁ...

はてなリング「ChangeLog メモ」

此の儀、内容に合わせて言葉改め致す。

この度、ChangeLog メモ・ユーザーのための「はてなリング」を作りました。

ChangeLog メモ・ユーザーの皆様方は、お誘い合わせの上、是非御参加下さいませ。

目的

ChangeLog メモ・ユーザーの交流。

参加条件

ChangeLog メモのユーザーであること。

FAQ

ChangeLog メモとは何ですか?
電子メモの一種です。詳しくは「Let's Try ChangeLog Memo」をお読み下さい。
chalow を使っていませんが参加してもいいですか?
構いません。ChangeLog メモをプライベートなメモとして活用し、chalow を使わず (ブログ・サービスを利用して) ブログを書いている人は (きっと) 沢山います (管理人もその一人です)。むしろ、そういった人達の交流の場になればよいと思っています。もちろん、chalow ユーザーも積極的に御参加下さい。
clmemo.el を使っていませんが参加してもいいですか?
構いません。Emacs で取ろうが、vim で取ろうが、秀丸で取ろうが、メモ帳で取ろうが、ChangeLog メモ を使っているのであれば利用ソフトに制限はありません。
はてなリングの他に同じようなサービスはありますか?
chalow アンテナがあります。
人生、宇宙、すべての答え」を教えて下さい。
42 です。

更新履歴

2005-11-24

Blogger にカテゴリー

クリボウさんの「Blogger でも Category」にコメントしようとしたところ、長〜くなる予感があったのでエントリーにした。

Blogger でカテゴリーらしきものを導入しようという試みはいくつかあって、clmemo@aka でも九十九式カテゴリー検索(改)はてなブックマークを使ったタグ型カテゴリーを実践している。クリボウさんが紹介しているカテゴリーの方式は m. 氏のエントリーを元にしたもの。クリボウさんの言葉を引用すると

Google Blog Search の検索結果を RSS で出力し、 それを Feed2JS でページ内に書き出す方法

だそう。

それで、ぼくがコメントしたかったのは、この方法が九十九式(改) の更なる改良版に見えるということ。この方法を考えた方は外国人さんだから、きっと九十九式カテゴリーは知らないでしょう。だから、同じやり方を二人の人が考えたのかな... と思うわけ。そこら辺の違いとかを、少しばかり突っこんで記事にした。

九十九式カテゴリーの歴史

九十九式カテゴリーは次の二つのアイデアから成っている。

  • カテゴリーに当たる「キーワード」を記事のタイトルに含める
  • 「『キーワード』を検索エンジンで検索するリンク」を作る

ブログの記事を追う形で、九十九式カテゴリーの歴史をば書いてみませう。

九十九式: サイト内カテゴリ検索方法 (2005-03-02)

Google のサイト内検索で intitle:カテゴリー名 とすることでタイトル内に含めた「カテゴリー名」を検索できる。とした最初の記事。また、読者に検索してもらわずとも、検索用のリンクをブログ側で用意することも提案している。

この方式の欠点は、Google のインデックス化までにタイムラグがあること。インデックスに漏れがあること。特に新規作成したブログは Google のクローラーが来てくれず、一か月以上インデックスされないことがザラ。

clmemo@aka: Blogger でカテゴリー・サーチ (2005-05-10)

カテゴリー検索用のリンクをフォームを使ってプルダウン・メニュー化する方法について言及

clmemo@aka: カテゴリー検索を Blog Search に変更 (2005-09-18)

検索エンジンを Google 検索でなく Google Blog Search

に切り替えた。インデックスの効率が数段に向上した。Blog Search リリース直後は 2005-06 以降のインデックスしか用意されてないことが懸念されたけど、最近は古い記事もインデックス化されているみたい。

m. さんが九十九式を知らないであろうことを承知で、上の年表形式で違いを書くと...

Pappmaskin Diaré Techblog: Blogger Categories (2005-10-17)

Blog Search の検索結果をユーザーに直接見せるのでなく、検索結果ページの RSS と Feed2JS を利用して、ブログ側で用意したページに結果を表示させるようにする。メリットは、検索結果ページのデザインを、ブログと統一できること。

クリボウの Blogger Tips: Blogger でも Category (2005-11-23)

m. さんの方法では日本語が通らなかったので、日本語が通るようにした。その他、色々と使い勝手を向上。

最初の Google 検索だと、インデックスの更新速度がネックで、ほんとオマケ程度のものだった。だから一番のキモは、GoogleBlog Search を出してくれたことだと思う。インデックスの漏れはほとんどないし、記事を投稿してすぐにインデックス化されるし、RSS での検索結果配信もサポートしてるし... イイことずくし!

intitle 検索

九十九式と m. さんの方法の違いをもう一つ言えば、検索範囲の違い。

九十九式は「記事のタイトル」だけ検索するのに対して、m. さんの方法は「記事全部」を検索する。

ブログの作者がカテゴリーを必ず記事に含めるようにしているなら、記事全部を検索するのは冗長に過ぎる。ノイズな情報 (例えば IM を検索したら記事中の IME にマッチするとか...) を見つけてしまうことになるでせう。

Google Blog Search でも intitle: 演算子が使えるので、これで記事タイトルだけに検索を絞ってみては如何?

ゆるいカテゴリー名

最後に一つ提案。

ほとんどの人は、「Blog」で検索するようにカテゴリー・キーワードを決めたら、そのキーワード (この場合 Blog) をタイトルに含めるようにすると思う。いいかえれば、検索キーワードとタイトル内のキーワードが一対一対応しているかと思う。

でもそうすると、カテゴリーの数がそんなに多く増やせなくなる。強引に数を増やすと、カテゴリー部分がゴチャゴチャする。

ここで提案なのが、検索キーワードとタイトル内のキーワードを一致させない方法。

きっと具体例を出す方が早い。

clmemo@aka では、「Blog ツール」というカテゴリーを次のように定義している。

intitle:"Movable Type" | intitle:HaloScan | intitle:Flickr | intitle:SiteMeter

見て分かる通り、Movable TypeHaloScanFlickrSiteMeter の「どれか」が「Blog ツール」というわけ。

これは、Google の | (OR 演算子) を使ってる。

タイトルには、ある程度小さな単位のキーワード (HaloScan とか Flickr) を振っておき、検索する時に「Blog ツール」としてそれらを一気に OR 検索で検索する。SiteMeter の記事だけ多くなったから、独立したエントリーを作りたい、なんてことも簡単にできる。逆に、新しいツール (例えば Google Analytics とか) を「Blog ツール」の検索に加える。なんて事も一発でできる。どうでしょう。

2005-11-23

Emacs-w3m で複数 URL をタブで一気に開く

1 行 1 URL なテキスト

http://del.icio.us/ataka/
http://at-aka.blogspot.com/
http://www.flickr.com/photos/at-aka/
http://d.hatena.ne.jp/at-aka/
http://at-aka.typepad.jp/life/
http://booklog.jp/tana.php?ac=at-aka
http://www.spurl.net/discover/user/%40aka/

を、Emacs-w3m のタブで一気に開くコマンドを quick hack してみた。

テキストをリージョンで囲んで、M-x w3m-view-urls-in-new-session して使う。

インストール

次のコードを .emacs に追記。

(defun w3m-view-urls-in-new-session (start end &optional arg)
  (interactive "r\nP")
  (when (w3m-region-active-p)
    (w3m-deactivate-region))
  (let ((buffer (current-buffer))
 (prev start)
 (url (w3m-url-valid (buffer-substring-no-properties 
        (line-beginning-position) (line-end-position))))
 urls)
    (when url
      (setq urls (list url)))
    (save-excursion
      (goto-char start)
      (while (progn
        (forward-line 1)
        (and (> (point) prev)
      (< (point) end)))
 (setq prev (point))
 (when (and (setq url (w3m-url-valid (buffer-substring-no-properties 
          (line-beginning-position) (line-end-position))))
     (string-match "\\`https?:" url)
     (bolp))
   (push url urls))))
    (setq urls (nreverse urls))
    (while urls
      (setq url (car urls)
     urls (cdr urls))
      (set-buffer buffer)
      (w3m-view-this-url-1 url arg t))))

コードは w3m-open-all-links-in-new-session のほとんどコピー。

あとがき

BloglinesGoogle Reader で気に入った記事を ChangeLog メモでメモしてる。メモは Emacs-w3m 経由。

まず firefox で見ている記事の URL をコピーする。次に Emacs-w3mw3m-goto-url で先の URL を貼り付けて開き直す。最後にそのページを clmemo.el でメモに取る。以上の手順を記事の数だけ繰り返す。

こういうことをやり始めた最初の数週間はなんとかなったけど、もう我慢の限界。そこで、記事の URL をファイルにコピペで保存 (ここまでは全部 firefox 内の作業)。そして一気に Emacs-w3m で開くようにした。メモを取る手間はあるけれど、これで少しは楽になった。

ブログ記事の ChangeLog メモ技術については、まだまだ向上の余地があるので、これからもブログにちょこちょこと書いていきます。

2005-11-22

Google Analytics 新規受付中止中

SEM R: Google、「Google Analytics」のサインアップ受付を中止によると、新規サインアップができなくなっているそうな。手元の Google Analytics では、今日の昼頃にここ二日程更新の停まってたレポートが入るようになったものの、新規プロファイルを作成できなくなってる。予想以上のアクセスだったのが原因のよう。

Google というと、夏期インターンシップを米 Google で受けた小松氏のインタビュー記事

Googleでは常に「規模の大きさ」を意識しなくてはならないんです。 いわばインターネットのミニチュアが、Googleなわけですから、 1 人の人間が 1 台のコンピューターを扱うのとは、また異なる視点が求められるのです。 システムの規模を意識しながらプログラミングする習慣が身に付きましたね。

の印象が強くて、「自身の規模の大きさ」についてはしっかり把握しているものだと思っていたけど、そうでもなかったのね。

今回のアクセス解析は買収で手に入れた製品だそうだし、「規模を意識する」っていう Google の文化が Google Analitics の開発者たちに浸透していなかったのかなぁ、と思ってみたり。

「Google の製品だからって、そんなに期待し過ぎても...」と冷ややかな反応ができるのは、同じく Google に買収された Blogger (このブログ・サービスね) が無い無いずくしながらも少しずつ進化してるのを目の当たりにして免疫が出来てるからなのかなぁ。

2005-11-21

Linux で DVD マルチ・ドライブ (USB) を使う

2005-11-04 に新しく DVD マルチ・ドライブ (USB 接続) を手に入れた。

前回の記事では、ドライブ購入までの顛末と、/dev/scd0 を /dev/cdrom にシンボリック・リンクを張って音楽が聴けるようにするところまでを書いた。今回は、本来の目的であるデータのバックアップについて書こうと思う (誰ですか、音楽を聴くのが本当の目的だろうなんて言っているのは?)。

DVD-R にデータを焼く

Linux から DVD-R にデータを焼く手順は次の通り。

  1. mkisofsコマンドで ISO9660 なイメージ・ファイルを作る
  2. cdrecord コマンドか growisofs コマンドでイメージ・ファイルを DVD-R に焼く

DVD を焼くには、dvdrecord というコマンドもあるのだけれど、どうもこれは cdrecord のラッパーらしい。手元の man には次のように書かれている。

dvdrecord now is a stub for cdrecord(1) and will execute cdrecord. You may use cdrecord directly, or better use growisofs(1) from the dvd+rw-tools package.

訳せば、dvdrecord は cdrecord の売れ残りで cdrecord を実行しているから、cdrecord を直接実行するか、dvd+rw-tools に含まれている growisofs がもっといいので、そっちを使ってねということらしい。cdrecord と growisofs を比べてみると growisofs の方が使い易いので、そちらの使い方を書きます。

iso イメージ・ファイルの作成

foo というディレクトリーの内容を hoge.iso というイメージ・ファイルに書き出すコマンドは次の通り。

$ mkisofs -J -R -L -o hoge.iso foo/

オプションの解説を簡単にすると:

-J
Joliet ファイル・システム
-R
Rock Ridge ファイル・システム
-L
ピリオドで始まるファイル名を許す
-o hoge.iso
hoge.iso という ISO ファイルを作る
いくつかのトラブル

イメージ・ファイルの作成で失敗する時がある。僕がハマった失敗と対処法を二つ程載せておく。

一つ目は、以下のようなエラー・メッセージが出て mkisofs が通らないというもの。

Error Incorrectly encoded string (....) encountered.

これは、Shift_JIS なファイル名なんかで、Linux がファイル名を認識できない場合なんかに起こった。ネットから何も考えず Windows なファイルをダウンロードしていたらしい。

どのファイルが引っかかっているか調べるには、次のコマンドを使う。

$ find dir/ | grep '[^[:print:]]'

必要なファイルなら名前を変更。要らなければ消除してしまおう。

二つ目の問題は、mkisofs が無限ループに入っていつまで経っても iso ファイルができないというもの。4 時間もマシンを動かして、どうもおかしいぞと気づいた。

これは、ファイル名が 30 文字を越える場合に起きた。解決策は -l オプション。これはファイル名の文字数制限を緩和するオプションで、規格違反な ISO ファイルを作る。規格違反と言っても、実害は MS-DOS でファイルが読めなくなるだけで、Windows や Linux では問題ないそうな。

あくまで規格に則りたければ、ファイル名を変えるか、tar で固めるなりして iso イメージの中には現れないようにするしかない。

イメージ・ファイルを焼く

hoge.iso という ISO イメージを /dev/scd0 に繋がってる DVD-R に焼く方法は下の通り。

growisofs -dvd-compat -Z /dev/scd0=hoge.iso

growisofs は優れたツールで、ISO ファイルを作りながら DVD を焼くこともできる。こういう方式を on the fly と言い、HDD の容量が少い場合などに便利。上の例だと、次のコマンド一発で mkisofs を動かすこともなく DVD が焼ける。

growisofs -Z /dev/scd0 -J -R -L foo/

数個のファイルをバックアップする場合 on the fly は優利。ただしファイル数が大きい場合は上に書いたようなエラーが起きるとも限らないので、一旦 ISO ファイルを作る方が安全。(僕は) ディスク容量に余裕がある限り ISO ファイルを作るようにしている。

DVD-RAM を使う

DVD-RAM はハードディスクと同じように扱えるのが魅力。容量も 4.7GB と 10 年前の HDD 以上 (初めて買ったマシンの HDD 容領は 1.6GB だったなぁ)。linux で DVD-RAM を使うなら、ファイル・フォーマットも ext2 にしておく方が便利。

DVD-RAM のメディアをフォーマットする

/dev/scd0 で DVD-RAM を認識しているとしてせう。フォーマットの前にパーティッションを作る。

# fdisk /dev/scd0
n (新規パーティション作成)
p (基本領域)
1 (領域)
1 (最初シリンダ)
303 (終点シリンダ)
w (書き込み)

そんでフォーマット。

# mke2fs -b 2048 /dev/scd0
y

DVD-RAM のメディアをマウントする

/mnt/dvdram に ext2 でマウントするには、/etc/fstab に次の一行を加える。

/dev/scd0  /mnt/dvdram  ext2  user,noauto,rw,suid,exec  0 0

基本的に mount の実行は管理者だけに許されている。user オプションを付けると、一般ユーザーでもマウントできるようになる。ここら辺はセキュリティーの兼ね合いで各自で考えて下さい。

再起動後、mount コマンド一発で DVD-RAM をマウントできるようになる。

$ mount /mnt/dvdram

mount ドライブのパーミッション

ところで、DVD-RAM をマウントすると、permission が勝手に変わってしまいとても不便した。

$ ls -ld /mnt/dvdram
drwxrwxrwx  3 root root 2 11月 11 18:31 dvdram/
$ mount /mnt/dvdram
$ ls -ld /mnt/dvdram
drwxr-xr-x  3 root root 2 11月 11 18:33 dvdram/

見ての通り、一般ユーザーの書き込み権限が掻き消されてる。DVD-RAM をフォーマットした時に、管理者権限で次のようにしておくとよさそう。

# mount /mnt/dvdram
# cd /mnt/dvdram
# chmod 777 . ..

ref

最後に、参考にしたサイトを挙げておきます。半分以上、これらのサイトの焼き直しという説もチラホラ...

.

2005-11-20

VC 下にある ChangeLog メモのバックアップを取る

VC管理下のファイルのバックアップ」というエントリーで、ひげぽんさんが ChangeLog メモファイルを誤操作で削除してしまい、過去二週間分のデータをなくしたとあった。

ChangeLog メモファイルはバージョン・コントロールの Subversion で管理していたものの、最後の commit が二週間前であったらしい。運がなかったのは、Emacs は VC で管理しているファイルのバックアップは取らないこと。もしバックアップが取られていたら、もう少し被害は小さかったろうにとある。

バージョン・コントロールはバックアップを取ることも重要な役割だから、Emacs が重複する機能の一方を機能オフにするのは理に適ってる。ただ、VC のバックアップのタイミングは人任せなので、ひげぽんさんのようにバックアップを取っていないと不幸になる。その対処法として、ひげぽんさんのエントリーは、「バージョン・コントロール管理ファイルでもバックアップを取る設定」

(setq vc-make-backup-files t)

で最後を締めくくっている。ただ、このコードを入れると VC で管理している全てのファイルでバックアップ・ファイルができてしまう。

ChangeLog メモファイルだけ、バックアップ・ファイルを作るようにした方がスマートじゃなかろうか。もしそうしたければ、ファイル変数を使う手がある。方法は簡単で、ChangeLog メモファイルの末尾に次のようなコードを入れるだけ。

^L
;;; Local Variables: ***
;;; mode: change-log ***
;;; clmemo-mode: t ***
;;; vc-make-backup-files: t ***
;;; End: ***

バックアップ・ファイルのできる VC

ひげぽん氏のエントリーのコメントで、miyagawa 氏が

svkを使うと .svn ディレクトリがないので普通にバックアップファイルができます。

と書いている。基本、Emacs は VC 管理下のバックアップ・ファイルは作らない方針だから、svk 用のコードがまだ書かれてないだけじゃないかと思う。(svk は使ってないので当て推量だけど) もしそうなら、いつか誰かが svk 用のコードを書いて、バックアップ・ファイルが作られなくなる日が来るかもしれない。そして、大低そういう事に気づくのはバックアップ・ファイルが要る時だったりするもの。

実はこれ、自戒的なコメント。ぼくの使ってる Bazaar-NG という VC ツールもバックアップ・ファイルを作ってしまう。時々思い出して、バックアップを まだ 作るか確かめるようにしよう。

なぜ Blogger で Blog を書き続けるのか

「なぜブログを書くのか。ぼくのとってブログとは何なのか」といったことは、We [love] Blog のエントリーで書いた。今回は、何故、Blogger なのか。ということを書いてみる。

お題のきっかけは caramel*vanilla さんのエントリーで頂いたコメントの返事。引用すると

もしかしたらものすごく失礼な事を申し上げるかもしれませんがカテゴリーの概念がないblogツールにこだわる理由がよくわかりません。

話の前後関係を説明すると、まず Social Bookmark のセルフ・ブックマークの是非について記事があり、ぼくが Blogger にカテゴリー機能がないのではてなブックマークのタグ機能を利用して擬似カテゴリーを作るのにセルフ・ブックマークを活用しているとコメントを入れ、そういう使い方もあるのかとなった後、話題が横道に逸れて 何故 Blogger を使うのか? という問いが出てきたわけ。

ただ、caramel*vanilla さんの Blogger に対する認識は間違ってる。Blogger には「カテゴリー」がないだけじゃなくて、「トラックバック」も「カレンダー」も「最近のコメント」もないのだ。サイトフィードは Atom だけで RSS はサポートされてないし、「続きを読む」機能もない。ブログ記事のインポートもエクスポートもできない。ちょっと前までは、ヘルプも英語だったし、写真はアップできなかったし、コメント機能もなかった。

今も、Blogger ユーザーは、ブログを知らない人達に「ブログは書き手と読み手がコメントやトラックバックでつながるんだ。それが楽しいんだよ」と説明しながら、心の中で「でも Blogger にはトラックバックはないけれどね」と呟いている!

Blogger の進化

ぼくが Blogger を使い始めたのは、2005-04 末からだけど、今 (2005-11) までに加わった機能をリストアップしてみませう (漏れがあればコメント下さい)。

2005-05
管理画面が日本語化された
2005-06
画像をアップロードできるようになった
2005-07
何もなかった???
2005-08
コメント投稿画面に Word Verification 機能が追加された。スプログ通知ボタン「FLAG?」機能が追加された。
2005-09
Google が Blog Search をリリース。navbar の検索が Google 検索から Google Blog 検索に変わった。
2005-10
Google 版トラックバック: バックリンクが提供された。Google Reader リリース。
2005-11
コメント・モデレーション機能が追加された。Google Analytics リリース。

こうして見てみると、半年前の Blogger は本当にナイナイずくし。一年前の Blogger はもっとすごかったのだろうなぁ。

なんで Blogger?

ここまで書けば、Blogger は貧弱なブログ・ツールだと認識したかと思う。

では Blogger に長所はないのか? もちろん、そんなことはない。少し列挙してみやう。

  • テンプレートを編集できる (自由度はかなり高い!)。
  • トラックバックの代わりにバックリンクがある。
  • Atom-PP に対応している (Basic 認証)。
  • 複数のブログを持つことができる。
  • ゲスト投稿者 (contributor) を迎えることができる。

特に最近導入されたバックリンク機能は、weblogs.com に PING を送ってないと使えないのでトラックバックの代わりには 100% ならないものの、他のブログにない面白い機能。

この他にも、Blogger を使う理由に、「無料だから」とか「Google がやってるから」とか「もうれつな信者に布教された」というのもあるでせう。「手間のかかる子ほどかわいいもの」かもしれない。制限が多いからこそ、頭を使うえて楽しいという人もいないとは言えない。

でもね。Blogger を始めるきっかけは様々だけども、ぼくを含めて Blogger の利用者が Blogger をやめない理由は、「Blogger に対する愛」ではないでしょうかね :)

Google Sitemaps にトライしてはみたものの...

Google Sitemaps が日本語化されて、統計情報なんかも表示するようになったと言うので、重い腰を上げて試してみた。で、結果はほぼ敗北... そんな記事でよければお読み下さい。

サイトの登録

まず試したのは自分のウェブページ Pi&egrave;ce de l'Ensemble を登録すること。上記サイトにログインすると、「アカウントに追加」から「サイトマップを追加」と「サイトマップをお持ちでない場合」の二つが選べる。サイトマップを追加すると、Google がそのページをインデックスしてくれるようになる。一方、サイトマップを持っていない場合は...

ご自身のサイトのサイトマップを作成していない場合でも、アカウントにサイトを追加して、そのサイトの統計情報とエラー情報を確認できます。 サイトマップは、後からいつでも追加できます。

サイトの URL を次の欄に入力してください。

とのこと。Pi&egrave;ce de l'Ensemble のサイトマップはまだ作ってないので、とりあえず統計情報だけ見ようと URL を入力した。

この後、Google Sitemaps が指定するファイル名で空のファイルをアップして、自分のサイトを登録していることを証明する。で、ファイルをアップして「確認」ボタンを押したのだけど、こんなエラー・メッセージが出た。

http://pop-club.hp.infoseek.co.jp/GOOGLE30c3045759f5d80d.html 未確認

404 (ファイルが見つかりません) エラー ページのヘッダーで 200 (OK) のステータスが返されました。

とは言え上のファイルを GNU wget でダウンロードできるんだけど...

う〜ん、というわけで敗北。

ブログの登録

Google Sitemaps は Atom 0.3 や RSS 2.0 をサイトマップのデータとして渡せる。Blogger は Atom をサポートしているから、それを使う。

Blogger の Atom はメインページと同数の項目を含むので、Blogger の管理画面「設定」の「フォーマット」から「表示」を上限ギリギリまで上げて保存 (このサイトは 7 か月分位いのデータがあるので 300 日で設定)。そして「インデックスのみ再構築」を実行した。

するとエラー。なぜ...

いろいろ試した結果、165 日分より多めのデータを再構築しようとするとエラーになることが分かった。なんでだろう。仕方がないので、165 日分のデータだけをインデックスにして出力。

Google SitemapsBlogger の Atom Feed の URL を指定。

サイトマップがダウンロードされたのを確認して、Blogger の「表示」項目数を元に戻す。ぼくの場合、3 時間程でサイトマップがダウンロードされた。

確認ファイル

Blogger でサイトマップの統計情報を見るには、「サイトの登録」でも書いたように、Google Sitemaps が指定する空の確認ファイルをアップする必要がある。でも、Blogger はファイルのアップロードをサポートしていない。

そこで試したのが前のエントリーBlogger はファイル名を記事のタイトルから英数字部分を抜き出して作る。だから、Google Sitemaps が指定するファイル名を記事のタイトルにすれば、(ファイルの中身は空ではないけれど) 目的のファイルが作れるのではないかと企んだ。

結果は見ての通り。Blogger はタイトル中の「大文字」をファイル名では「小文字」に変換してしまった。

敗北。

結局、できたのは、Blogger の Atom Feed を半分程登録することだけだった (泣)。

ref

2005-11-19

Add to Google ボタン

またまた Going My Way さん経由の情報。

Google が RSS/Atom feed を Google Reader (と Google Personalized Home) に登録する為のスクリプトの提供を始めた。右サイドバーの About セクションにある Add to Google ボタンがそれ。

  • [ Add to Google 

ボタンをクリックすると、Google Reader (と Google Personalized Home) への RSS 登録ページへ飛ぶ。

RSS の登録ボタンを一括管理する solosub が、すぐに Google Reader に対応するかと期待してたけど、全然反応がないね。ちょっと残念。

「Add to Google」ボタンの作り方

下のサイトで自分の Atom feed (or RSS feed) を入力すると HTML ソースが出力されるので、それをブログのテンプレートに貼るだけ。

Blogger が標準で出力する Atom feed を喰わせてもよいけれど、FeedBurner を使えば登録者数を調べられるので、ぼくは FeedBurner 版を喰わせてる。お好みでどうぞ。

2005-11-18

ちょっと気になる Google Analytics コードの位置

備忘録的メモ。Landscape さんが「Google Analytics のタグを head に入れる理由は?」というエントリーで Google Analytics のトラッキング用コード (head 要素内に入れろと書かれている JavaScript コードのことね) の位置について Google に質問メールを送ってる。

まだ解答待ちだけど、もし body 内でも OK なら、はてなダイアリーTypePad でも小さな修正で Google Analytics が使えるようになる。Google からの返事が楽しみ。

ref

追記: (2005-11-20)

Google から回答が来たそうな。

結論:「よく分からない」

ただ、インストール位置による HTTP トランザクションの中身の変化はないそうです。

2005-11-17 の訪問者数

昨日は clmemo@aka にとってちょっと嬉しい日だった。というのも、このブログにとって 初めて --- そう、はじめて --- 毎時間アクセスしてくれる人がいたから。やっぱり、Google Analytics の記事が大きかったのかな...

あんまり嬉しかったんで、Site Meter のスクリーン・ショットを撮ってしまった。

縦軸が訪問者数になるわけだけど、一番下が 2 なんですよ。お分かりか。昨日は、毎時間、最低 2 人の visitor がいたのです。

こういうことで喜ぶのって、まだまだ初心者ブロガーなのかしらん。ブログのパワー・ユーザーな人達は、もう忘れてしまった感動でせうか。ぼくも、そのうち、あたりまえに思ってしまうのでせうか。いま一時、この感動を味あわせたまへ ;)

2005-11-17

Six Apart による We [love] Blog キャンペーンの賞品が届いた

昨夜、「日本全国・見たいもんはみたいぞの会」に Movable Type のロゴ (?) の入った帽子が出てた。すわ。これは We [love] blog キャンペーンの賞品に違いない。きっとウチにも届いているはず、と期待して帰宅。ポストを開けてみた。

そしたら届いていたよ、Six Apart から封筒が!

中身を確認したら、うちは首からかけるタイプの巨大ストラップ (何ていうの? これ?) が入ってた。送られてくるノベルティ・グッズは、みんな同じじゃないみたいね。(個人的には、帽子はかぶらないので、コッチの方が嬉しいかも :) 黒をベースにしてて、首にかける紐の部分に白字で「Movable Type」と「TypePad」の文字とロゴが入ってる。本当は写真に撮ってアップしたいのだけど、デジカメもカメラ付携帯も持っていないので、ゴメンなさい。

他には Six Apart の齋藤朱保さんがまとめて下すった We [love] Blog エントリーのダイジェスト (なんと全員分!)。読んでて、かなり楽しい。昨夜は途中まで読んで寝てしまったので、今夜はゆっくり寝る前に読もうっ。

ref

それにしても、ボクもヘタレだよなぁ... 理由はこの記事のソースをお読み下さい。

2005-11-16

Google Analytics は太平洋沿岸標準時 (PST)?

Google Analytics がついに動き始めた (スクリーンショット) けれども、Google Analytics の「時間」は、日本の時間だろうか? というわけで調べてみた。

まず「期間」の「表示」を「時間別」にして、カレンダーの日付を遡る。一番最初にデータを取り始めた時間を調べると、2005-11-13 の 23 時と出た。Google Analytics の存在を知ったのが 14 日だから、Google Analytics は日本の標準時ではない!

幸い僕は clmemo@aka のテンプレートを darcs でバージョン管理していて、ログを調べることで Google Analytics を設定した時間が分かる。

Mon Nov 14 16:18:07 JST 2005 Masayuki Ataka <ataka@foo.bar>
* Add `Google Analytics' script.

記録を見ると、2005-11-14 の 16:18 にコードを修正している。この直後に Blogger のテンプレートを更新したから、2005-11-14 の 16 時から Google Analytics はデータを取り始めたと考えていいと思う。ここから、2005-11-13 の 23 時を引き算すれば、17 間の時差が出る。日本標準時は [+0900] だから、Google Analytics の時間は [-0800] になる。これは太平洋沿岸標準時 (PST: Pacific Standard Time)。Blogger の時間も PST がデフォールトになっていることだし、Google Analytics の時間は PST と言っていいでしょう。

各所のブログを見ると、Google Analytics が「昨日の朝までのデータしか出ない」(書いているのは夕方) とかあるけれども、時差を考慮すればもう少しまともになる。

ちなみに、この記事を書いてるのは 20 時で、レポートは前日の 11 時分まで出ている。11 時に 17 時間を足せば今朝の 4 時。つまり、16 時間前のレポートが最新。まぁ、そんなもの?

Google Analytics の時間を日本標準時に直せればいいのだけど、その設定方法が分からない。もし分かったら、コメントかトラックバック下さい。

ref

Google Analytics レポート開始

ついにレポートが見えるようになった。

Screenshot of Google Analytics

ref

2005-11-15

Google Analytics と広告

Google Analytics が始まったのを受けて、Google AdSense と Google AdWords を混乱している人を多く見るという記事が InsideGoogle に載っていた。AdSense と AdWords をさらりと説明すればこんな感じ。

Google AdWords
広告主のためのサービス。広告主は Google にお金を払い、Google に代わりに広告を出してもらう。具体的には、○○というキーワードのあるページに□□という広告を出して欲しい、という感じ。
Google AdSense
僕らのようなブログの作者がアフィリエイトで儲けるためのサービス。AdSense が用意する JavaScript をウェブページに貼りつけておくと、ウェブページの内容に則した広告が表示され、クリック毎にお金が入る。

つまり、Google は AdWords というサービスで広告を集め、AdSense というサービスでその集めた広告を世界中のウェブページに表示させている。

Google Analytics は、AdSense ユーザーではなく AdWords ユーザー (広告主) のためのサービスとのこと。例えば自分のお店のサイトを Google Analytics でアクセス解析して、どんなキーワードで自分のサイトに人が来たか。言いかえれば、AdWords に登録するキーワードとして、より適切なキーワード○○は一体何か? というのを調べるのに使える。

5,000,000 PV over

さて、Google Analytics は、500 万 PV/月 までならフリーで使える。一日 16 万 PV 以上ということだから、一般ユーザー的には全然問題のない数値。

本題はここから。

それでも、もし月 500 万 PV を越えてしまったらどうするんだろう。

Google Analytics 側は Google AdWords のアカウントを持っていれば、無制限に使えると言っている。でも、売るモノもないのに AdWords のアカウントを取るのなんてちょっとヤだ。月○円で使う、という選択肢はないものか?

ここまで考えて、イヤ、むしろ AdWords アカウントを取るのはイイかもしんない と発想転換してみた。だって、月 500 万 PV もあるんだった、そのサイトはすごい人気サイトに違いない。ウェブ上には、Cafepress みたいに自分のイラストを T シャツやマグカップにして売ってくれるサービスがある (お友達のお店: ヒビノアワ)。そういった所で自分のお店を持って、その広告を AdWords で出す方が面白いんじゃなかろうか。

ブログのタイトルや作者の名前 (このブログだと clmemo@aka や @aka ですな) は、かなりに固有名詞。そういったものをキーワードとして登録しておけば、自分のブログに言及しているサイトに「自分のお店」の広告が出るわけで、読者としては、あれ、▽▽さんがお店を出してるなんて興味を引くと思う。そして、面白がってお店に来てくれて、あわよくば買い物をしてくれるかもしれない。

キモは、とんでもない PV を持っていれば Shop 作って AdWords するのもイイかもね、ということ。

まあ、このサイトの PV は先月初めて 2000 を越えた程度。一万 PV/月 もまだ先の話なので、そんな話は夢物語。そんなことを、やれる日が来たら、いいなぁ。

2005-11-14

Google Analytics 登場

Google Calendar のドメインが取られたと言っては騒ぎになり、Google Base のログイン・ページが出来たと言ってはサービス内容を推測し合った今日この頃。どちらのサービス・インが早いかな? とワクワクしていたら Google Analytics なんて伏兵が登場した (via Going My Way)。

Google Analytics は、Google 版アクセス解析。月 500 万 PV (Page View) まで無料でアクセス解析できる。サービスは最初から日本語で提供されている。登録には Google Account が必要。

他のアクセス解析サービスと同じように、解析する HTML の head 要素内に JavaScript コードを埋め込む。だから、HTML のテンプレートをいじれないようなブログ・サービスでは使えない。Blogger なら、テンプレートを自由にいじれるので、早速登録して解析を始めてみた。といっても、最初の解析結果が出るまで、最長 12 時待たされるとのこと。どんな解析結果が見れるかについては、また機会があったら。

内部トラフィック

アクセス解析で、まずやるべき設定は解析結果から自分自身のアクセスを無視させる (Ignore internal traffic) こと。

Site Meter なんかだと、ブラウザーの Cookie 情報を元にアクセスを無視してくれる設定があったけれども、Google Analytics は IP アドレスではじくしか方法がないみたい。ブラウザーの Cookie が利用する方法だと、複数のブラウザーを利用する場合にブラウザーごとに設定が必要なのが面倒。それに、Cookie の情報をクリアすると設定し直さなくちゃならない。そのかわり IP アドレスが変わっても設定し直さないで済む。一方 IP アドレスを設定する方法ならブラウザーごとの設定が要らない。けれど、Dynamic DNS で IP アドレスを動的に変えてる場合なんかに対処できなくなる。つまりは、どちらも一長一短。

設定は「Analytics 設定」から「プロファイルに適用したフィルタ」で「フィルタを追加」。「プロファイルに新しいフィルタを追加」の「フィルタの種類」で「IP アドレスからのトラフィックを除外」を選び、「IP アドレス」に自分の IP アドレスを入れる。自分の IP アドレスは、Linux なら次のコマンドで調べられる。

$ nslookup `hostname`

気をつけるのは、「IP アドレス」は正規表現として入力すること。正規表現が分からなければ、. の前に \ を置く。つまり、63.212.171.という IP アドレスなら 63\.212\.171\. とする。

ここら辺の説明は、「レポートから内部トラフィックを除外するにはどうすればよいですか」というヘルプにも詳しく書かれているので、そちらも読んで下さい。

プロファイル情報の設定

暇があれば「Analytics 設定」から「プロファイル情報」の編集もしておきませう。とりあえず、「通貨」を「日本円」にして、「レポート ダッシュボード」の「デフォルト」を「ウェブマスター」にしておくと幸せになれると思う。

日本語について

これは僕だけかもしれないし、もう Google 側が対処してしまっていることかもしれないけれど、Google Analytics のページが英語になって、日本語にすることができず困ってしまった。

とりあえず、Google Analytics のページにログイン後、URL の末尾に &hl=ja を追加するか、

でなく

からログインすることで日本語で表示されるようになった。一応、情報として載せておきます。

嗚呼、Site Meter

clmemo@aka では、アクセス解析に Site Meter を使って来た。これはフリー版でも最新 100 人の referrer 情報、訪問時間、Geo 情報、エントリー・ページ、ブラウザーと OS のシェア、JavaScript の対応情況等が分かるというお優れもの。更に有料版にアップグレードすると、保存されるデータが 100 人から 1000 人に増え、検索キーワードや Referrer の統計情報が見られる。お値段は、2 万 5 千 PV で 月 6.95 $。200 万 PV で月 49.95 $、500 万 PV で 99.95 $。

しかし。Google AnalyticsSite Meter が月 99.95 $ (約一万円/月) のサービスを無料で提供しようとしている。

嗚呼、Site Meter。頑張っておくれ。消えたりしないでね。

Space / Shift-Space |firefox|Google Reader|

firefox のショートカット・キーについて CLONより抜粋 (というか転載?)

Space キーでスクロールというかページダウンは使ってたけど、Shift-Space で逆になるのね!

最初、どのツールのことかと思ったのだけど、firefox のタグが付いていたので得心。うん、本当に Shift-Space で PageUp になる。

愛用の kinesis Keyboard だと右手一つで Shift-Space が押せるのでかなりイイ。

Google Reader の場合

更に Google Reader でも Shift-Space が効くかと試してみた。もう少し言えば、Google Reader の Space キーは、記事をスクロールして、記事の終わりまで来ると次の記事へ進むという仕様なので、Shift-Space で「記事を逆スクロールし、記事の頭まで来たら前の記事に戻る」という事ができるかどうか試してみた。するとちゃんと出来るのですな。記事を読み飛ばして通り越したらマウスに手を伸ばしていたものだけど、これで右手一つで更に快適に Google Reader を使うことができそう ;)

2005-11-13

ChangeLog メモの TAB 幅を小さくする

ChangeLog メモは、ChangeLog という変更履歴記録用のフォーマットを利用してメモを取ろうというアイデア。そのため、ChangeLog の書式に従う。

この ChangeLog の書式で一番の制約と言えるのが、行頭に TAB 文字を入れること。Emacs のデフォールト TAB 幅は 8 なので、ウィンドウ幅が 80 なら一行に実質 72 文字しか書くスペースが残らない。

そこで、ChangeLog メモファイルだけで TAB 幅を狭める Tips。ファイル変数を使って TAB 幅を変える。具体的には ChangeLog メモファイルの末尾に次のコードを追加する。

^L
;;; Local Variables: ***
;;; mode: change-log ***
;;; clmemo-mode: t ***
;;; tab-width: 4 ***
;;; End: ***

emacs 22.0.50 利用者は、次のコード。

^L
;;; Local Variables: ***
;;; mode: change-log ***
;;; clmemo-mode: t ***
;;; tab-width: 4 ***
;;; left-margin: 4 ***
;;; End: ***

TAB 幅が 8 から 4 に変わるはず。たった 4 文字の違いでしかないけれど、大きく違う。なにより、見た目がスッキリして見える。是非お試しあれ。

※この記事は chalow ML (非公開) に 2005-03-18 に登稿した内容を書き直したものです。

2005-11-12

xscreensaver を終了させる

Linux 用のスクリーンセーバー・ツール xscreensaver。これは、スクリーンセーバー集といった趣きのツールで、xscreensaver-demo から、用意されているスクリーンセーバーを見ることができる。見た目の綺麗なものから、見ていて楽しいものまで色々と揃っていて一つだけに絞れないので、起動するスクリーンセーバーをランダムに選ぶようにしている。

xscreensaver で困るのは、OpenGL やら何やらを使って CPU 負荷の高いスクリーンセーバーがあること。DVD-R を焼いたり、数値計算をしている時はなるたけ負荷を減らしたいので、xscreensaver を切るようにしている。切るコマンドは

xscreensaver-command -exit

Linux 使いなら、ps コマンドでプロセス ID を調べて kill するのが王道だけど、上のコマンドを使えば pid を調べるまでもなく xscreensaver だけを殺すことができる。

ちなみに xscreensaver-command -deactivate は動作中の xscreensaver を解除したり、待機中の xscreensaver のタイマーをリセットする (最初、こっちのコマンドを実行して xscreensaver が終了しない... と悩んだのは秘密の出来事)。

2005-11-11

はてなリング Blogger に参加

はてなはてなリングなる新サービスを起ち上げて 4 日。kuribo さんが、Blogger ユーザー用の「はてなリング - Blogger リング」を作って下さった。

このサービスが起ち上がった時から、きっとクリボウさんがリングを作ってくれるに違いない! と思っていたので、待ってましたとばかりにとびついた。

ロゴも Blogger のマークを上手に配したシンプルかつ格好いいもの。ちょっとこのセンスにクラクラ。

はてなリングとは...

各所で既に話題になっているけど、簡単に言えばブログ用の「リング」。それに、はてなブックマークやアンテナや掲示板をくっつけたようなサービス。リングは、一つのトピックスを決めてあてはまる人達が集うというもの。同好の士が集まるメーリング・リストのウェブ版という感じ。ただしはてなリングの登録上限は一つのリングにつき 100 まで。

ロゴをクリックすると、Blogger リングのホーム (?) へのリンクと、お隣りのブログ、それからランダム・ジャンプのボタンが現れる。

はてなリングは、今まであったものをただ組み合わせただけとの声も聞こえるけれど、当方、リングはこれが初めてなのでワクワクしてる。Blogger な人達と、出会えるキッカケになればいいな。

2005-11-10

AUCTeX のインストール (非特権ユーザーの場合, 2005/11)

CVS AUCTeX を一般ユーザー権限でインストールできないとのコメントがあったので試してみた。

$ cd auctex
$ ./autogen.sh
$ ./configure --prefix=$HOME/local
$ make
$ make install

以上のコマンドを実行すると確かにエラーになる。

解決策

configure で以下のオプションを加えると make install が通るはず。ここでは *.el ファイルを ~/local/site-lisp/auctex 以下にインストールするものとしている。

$ ./configure --prefix=$HOME/local --with-lispdir=$HOME/local/site-lisp --without-texmf-dir

--without-texmf-dir を指定すると、preview-latex 関連の sty ファイルも ~/local/site-lisp/auctex 以下にインストールされる。もし別の場所にインストールするなら、--with-texmf-dir=/path/to/your/texmf をかわりに指定する。

.emacs の設定

load-path--with-lispdir で指定した path を加える。また、info も ~/local/info 以下にインストールされているので、これも Info-directory-list に加える。AUCTeX と preview-latex と日本語の設定を加えると .emacs は次のようになる。

;;
;; Load path and Info path
;;
(add-to-list 'load-path "~/local/site-lisp/")
(eval-after-load 'info
  '(add-to-list 'Info-directory-list "~/local/info/"))

;;
;; AUCTeX (including preview-latex)
;;
(load "auctex.el" nil t t)
(load "preview-latex.el" nil t t)
;;
;; Automatic Parsing of TeX files.
;;
(setq TeX-parse-self t)  ; ファイルを開いた時に自動パース
(setq TeX-auto-save  t)  ; パースしたデータを保存する
;;
;; Japanese TeX
;;
(setq TeX-default-mode 'japanese-latex-mode)

load-path に追加するのは ~/local/site-lisp。AUCTeX 関連のファイルはほとんど ~/local/site-lisp/auctex 以下にあるけれど、tex-site.el (auctex.el の中で呼ばれる) の中で load-path が定義されているので、~/local/site-lisp/auctex を load-path に追加する必要はない。

非特権ユーザーでのインストールはこれで成功するはず。ただ preview-latex が通るかどうか試してないので、成功したらコメント下さい。

2005-11-09

はてなダイアリーの PING を weblogs.com へ

はてなダイアリーからこのブログにリンクを張ったのに、バックリンクができない。kuribo さんのおっしゃる通り、weblogs.com に PING を打たないと (Google の Blog 検索にインデックスされないし) バックリンクの対象にもならないようだ。

BloggerTypePad だと weblogs.com へ PING を打つことができたけど、はてなダイアリーではどうやらできないみたい。

FeedBurner を使う

幸いなことに FeedBurner の PingShot 機能を使うと、weblogs.com に PING を打つことができる。FeedBurner については、以下のエントリーを参照のこと。

なお、「 TypePad ブログの更新情報を weblogs.com にも送る」で、FeedBurner を使えば「任意の PING サービスに PING を送れる」ということを書いたけど、それは誤り。FeedBurner から送れる PING は以下のサービスだけでした。ごめんなさい。

  • Technorati
  • My Yahoo
  • PubSub
  • Ping-o-matic
  • Newsgator
  • Weblogs.com
  • FeedStar
  • icerocket
  • TailRank
  • Blogdigger
  • Syndic8
  • Blog Buzz Machine
  • RSS Fwd

さて、これでこのブログ・エントリーにはてなダイアリーへのバックリンクが付けば万々歳。

2005-11-08

ChangeLog メモの cite タグ

ChangeLog メモで、引用元を明示する方法として cite タグ なるものを使っている。例えばこんな感じ。

2003-09-04 (Thu)  Masayuki Ataka  <ataka@milk.freemail.ne.jp>

 * Quotation: うまく口をはさめるということは、まず他人の話をちゃんと聞いている
 ということだし、話の方向が何処へ向かえば良いかという見通しを持っていることだし、
 何よりも自分の考えをしっかり持っていることなのである。
 (cite: 男のホンネ 女のホンネ) p.72
 (author: 久世 光彦)

2003-05-15 (Thu)  Masayuki Ataka  <ataka@milk.freemail.ne.jp>

 * Command (pstops): B4 用紙を指定して印刷する方法
 pstops -h36.4cm -w25.7cm 2:0L(34.4cm,-0.8cm)+1L(34.4cm,16.8cm) in.ps out.ps
 (cite: tex-qa:18693) Re: pstops

見ての通り、「書名」や「メールの Subject」を cite タグの引数にしている。蛇足ながら、本の引用をするなら、「書名」だけでなくページ数も記録しておく方がいい。後で引用元を確認する時に、目的のページを探し直す手間が省けて便利。

なお、ウェブページからの引用は url タグ という URL 専用のタグを用意している。

ML との連携

メーリング・リストの中には、その内容をウェブ上で公開しているものがある。そういう ML は、大概、メールの通し番号を Subject に振っていて、(ウェブ上で公開しているメールの) URL も同じ通し番号を使っているものも多い。そこで、そういったメールの Subject から、ウェブ上へ browse-url するようなスクリプトを組んでみた。

(setq clmemo-tag-list 
      ;;        ;; Jump                ;; Put
      '(("url"  browse-url-at-point)
 ("cite" clmemo-tag-cite-jump)))
(setq clmemo-tag-cite-url-alist
      '(("tex-qa:\\([0-9]+\\)" . "http://oku.edu.mie-u.ac.jp/~okumura/texfaq/qa/%s.html")
))
(defun clmemo-tag-cite-jump ()
  (interactive)
  (let ((eol  (point-at-eol))
 (alist (copy-alist clmemo-tag-cite-url-alist))
 url)
    (beginning-of-line) (search-forward "(cite: ")
    (catch 'match
      (while alist
 (when (re-search-forward (caar alist) eol t)
   (setq url (format (cdar alist) (match-string 1)))
   (throw 'match t))
 (setq alist (cdr alist))))
    (when url
      (browse-url url))))

変数 clmemo-tag-cite-url-alist がキモ。これは ("REGEXP" . "URL") という alist。REGEXP では通し番号に当たる部分が \\([0-9]+\\) にマッチするようにする。URL で %s と書かれば部分に件の通し番号が展開される。

上記設定を追加して cite タグ上で C-c RET すれば、対応するウェブページを browse-url する。

あとがき

ローカルにあるメールへも jump できると便利なのだけど、ファイルへの path を指定する方法しか思いつかない。僕はメールの置き場所をよく変えてしまうので、path を指定する方法は使えない。何かよい方法はないものかと模索中。

上の例では、奥村先生の TeX Q & A の場合だけ取り扱った (正確には ML ではなくて掲示版、ただし、メール転送のサービス有)。この他 MewEmacs-w3m の ML に入ってるのだけど、各々、ML の通し番号と URL での番号が一致しない Xp。困った...

2005-11-05

つぶやき

周りの人達が結婚してゆく。その様は、まるでオセロのようだ。

Google Personalized Home の各国版コンテンツ

Screenshot of Google Personalized Home in multi language contents Google Personalized Home が日本語版になったとのレビューも増えた。気になったのは日本語のコンテンツも使えるようになっていること。手元の Personalized Home では英語のままなので、さてどうしたことかと訝しんだが理由は簡単。本当の日本語版 Google Personalized Home は google.co.jp で公開されてた。

日本語版のアドレスでも、「日本語」で表示される。でも、コンテンツはアメリカのもの。日本のコンテンツを使いたければ、 Google.co.jp 以下にある Personalized Home にアクセスする必要がある。

今まで英語版 Google Personalized Home にアクセスしてた人達は、アドレスを google.co.jp の方に変える方がよいでしょう。google.com から google.co.jp に変えても、設定 (ブックマークの内容とかコンテンツの配置とか) は引き継がれるので心配ない。

国際色豊かな Personalized Home の作り方

Personalized Home の設定が引き継がれると聞いて、ピンと来た人はいるでせう。

そう、各国の Personalized Home にアクセスして、その国のコンテンツを保存することが実は出来ちゃう。

上のスクリーンショットは、正にそうして作ったもの。左から右に、次のコンテンツを配している。

各国の Personalized Home は、「その国の Google のアドレス」の下に /ig を加えたもの。日本の Google は http://www.google.co.jp だから、Personalized Home は http://www.google.co.jp/ig になる。「その国の Google のアドレス」は、検索窓となりの「言語ツール」から辿って「自分の国のドメインの Google を見る」で調べられる。全てのアドレスに Personalized Home があるかどうかは調べていないけど、そこは各自調べて下さい。

外国と日本を股にかけて活躍するようなビジネスマンなら、Le Monde や London Review of Books も Personalized Home に置いておくのは如何?

ただし、 Google News のコンテンツに限っては、どの国の Personalized Home から設定しても「日本版 Google News」のコンテンツしか表示されない。これは仕様かな?

2005-11-04

外付け DVD ドライブを買った

昨夜夜半過ぎ、CD-RW ドライブの調子がおかしくなって、再起動したらそのまま御臨終。まず最初に grip (僕の使ってる Linux 上の CD 再生ツール) 上の再生時間にマイナスの値なんかが表示され、再生ボタンを押しても音楽が鳴らなくなった。Linux に reboot をかけたら、/dev/hdc から大量の Error が出ていて... BIOS の画面で再起動失敗。エラー・メッセージは

Secondary hard disk drive 0 not found.

最初は、 また HDD クラッシュやっちゃった? と思った。でも、Secondary のドライブは HDD じゃないぞ。CD-ROM だぞ。と思い直して、BIOS の設定で Secondary Master Disk を OFF にしてやると、無事 Linux 起動。流石に、11 台目の HDD クラッシュは勘弁。特に、このマシンには、重要なデータがバックアップもなしに入ってるんだからさ...

新しいドライブを求めて

さて、CD ドライブがなくなって困った。何と言っても、 No Music, No Life なわたくし。音楽がないと生きてけません。じゃなくて、CD-RW ドライブがないとデータのバックアップが取れない。これは非常に困る。

最初に、古くなって転がってるマシンからのドライブ移植を考えた。この際贅沢なぞ言いません。CD-R の 4 倍速でも我慢します。って気分だったのだが... ドライブが合わない。

今、使ってるマシンはスリム・タイプの Dell マシン。この手のドライブって、変わったドライブを使ってるのね。ドライブのトレイに開閉ボタンがあったり、電源コネクターと IDE のコネクターが一つの口になってたり。つまり、自作派御用達の内蔵 CD ドライブはコネクターも合わなきゃ、マシンに入れるスペースもない。二年以上も使ってたくせに、そんなことにも気付かないんだね。人間って。

周りと相談したところ、外付けの記録型 DVD ドライブが候補に上がった。最低限、音楽さえ聞ければ、いやいや、CD-R でバックアップが取れればいい。でも色を付けて、DVD で、というのも魅力。

結局、お店に行って手に取ったのはコレ。

最近はドライブも安いのね。1 万円ちょっとで買えました。ちなみに、隣に置いてあった CD-RW ドライブは 2 万円近くした。高すぎだよ。

Linux での設定

USB 接続のドライブは SCSI として認識される。dmesg の結果は次のような感じ。

input: USB HID v1.00 Device [05f3:0007] on usb-0000:00:1d.1-1.2
sr0: scsi3-mmc drive: 48x/48x writer dvd-ram cd/rw xa/form2 cdda tray
Uniform CD-ROM driver Revision: 3.20
Attached scsi CD-ROM sr0 at scsi0, channel 0, id 0, lun 0

上のメッセージを読むと、/dev/sr0 あたりにデバイスが出来てそうなのだけど、見つからない。代わりに、/dev/scd0 が使えるようになってた。CD 用に次の設定を /etc/fstab に加えて

/dev/scd0               /mnt/cdrom              iso9660 noauto,user,ro       0 0

/dev/scd0 から /dev/cdrom にシンボリック・リンクを張っておく。

$ ln -s /dev/scd0 /dev/cdrom

音楽を聞く

自作した人なら知ってるけど、CD ドライブには三本のケーブルが繋がってる。IDE ケーブル、電源ケーブル、そして音源ケーブル。音源ケーブルは直接サウンド・ボードに繋ぐ。 grip なんかの CD プレーヤー・ソフトで再生した「音」は、CD ドライブから直接サウンド・ボードに渡り、スピーカーから音が出る。

では外付けは? そう、マシンの外にあるドライブから、マシンの中にあるサウンド・ボードに線は繋げない。試しに grip で CD を再生してみると、CD は再生されるのに音は鳴らない。

音楽が聞けなきゃ、ドライブ買った意味ないじゃん。と本音が漏れそうになるのを堪えて調べてみたところ、上で書いた方法はアナログ再生と呼ばれているらしい。そして、デジタル再生を使えば外付けでも CD が聞けるとのこと。デジタル再生というのは、CD の中身をリッピングするようにコンピューターに取り込んで、それをそのままサウンド・デバイスに流す方法。アナログ再生と比べて、コンピューターを間に介すから CPU パワーを喰うデメリットがある。それでも、音楽のない生活よりはよいよね。

残念なことに、 grip はデジタル再生に対応してないっぽい。

デジタル再生ができるのは、下の三つらしい。

  • cdda2wav
  • xmms
  • Konqueror

ただし、cdda2wav はコマンドラインで使うツールだし、Konqueror は KDE プロジェクトのツールでマシンに入れてないので xmms しか選択肢がない。xmms って総合音楽再生ツールってイメージが強い。好みを言えば grip みたいに CD 再生に特化してくれる方が嬉しいのだけど... そういうツールってないかしらん。

最後に、cdda2wav でデジタル再生する方法。

$ cdda2wav --speed 1 -q -e -N -t1 -d0 -D /dev/cdrom

--speed 1 を入れるのがミソ。これを入れないと、ドライブに倍速でアクセスしようとするのか、回転音が五月蝿くてしょうがない。xmms で CD を再生する時、ドライブが五月蝿くなる時がある。そんな時、上のコマンドを実行するとアクセスが等倍に戻って静かになる。なんでだろ。きっと、もっとちゃんとした方法があるんだろうけど...

.

2005-11-03

hatena-mode 用 quickurl の設定

先日のはてなダイアリーへのエントリーを見ると、リンク部分の日本語がひどいことになってる。例えば

昨日に引き続いて、今日も ひきがえるの日記 で入力しました。

一体、なんのこっちゃ。本当は、 今日も hatena-mode で入力しました と書きたかった Xp。

はてな記法によるリンク

はてなの記法によると

  1. url
  2. [url:title]
  3. [url:title=TITLE]

というような書き方でリンクが張れる。

1 番目のリンクは、URL がそのまま表示される。2 番目のリンクは、リンク先のタイトルがアンカー名になる。3 番目のリンクはアンカー名を TITLE に指定する。

前回の記事では、リンク先のタイトルを確かめもせずに 2 番目のリンクの張り方をしたのが拙かった。不精せず、3 番目の書き方でリンク名を指定すべきだった。

quickurl を使う

この手のリンクは、Emacs の quickurl を使って入力するようにしているので、 hatena-mode にも対応させてみた。.emacs に書いた設定は以下の通り。

;;
;; quickurl
;;
(define-key mode-specific-map "q" 'quickurl)

(setq quickurl-grab-lookup-function #'quickurl-current-word)
(defun quickurl-current-word ()
  (save-excursion
    (let ((beg (progn (skip-chars-backward "A-Za-z0-9-") (point)))
   (end (progn (skip-chars-forward  "A-Za-z0-9-") (point))))
      (buffer-substring-no-properties beg end))))

(defadvice quickurl-insert (after fold-html-if-available)
  "Fold inserted url if fold-html-mode is t"
  (when (and 
  (memq major-mode '(nxml-mode sgml-mode xml-mode html-mode yahtml-mode xhtml-mode))
  (boundp 'html-fold-mode) html-fold-mode)
    (html-fold-inline)))

(setq quickurl-format-function #'quickurl-mode-format-function)
(eval-after-load "quickurl"
  '(progn
    (defun quickurl-mode-format-function (url-list)
       (let ((url  (quickurl-url-url         url-list))
      (desc (quickurl-url-description url-list)))
  (delete-region (point) (search-backward lookup))
  (cond
   ((eq major-mode 'hatena-mode)
    (format "[%s:title=%s]" url desc))
   ((memq major-mode '(nxml-mode sgml-mode xml-mode yahtml-mode))
    (format "<a href=\"%s\">%s</a>" url desc))
   ((memq major-mode '(rd-mode))
    (format "((<%s|URL:%s>))" desc url))
   (t url))))
    (ad-activate 'quickurl-insert)
))

quickurl については、以下の記事を参照されたし。

Google Personalized Home が日本語化

Google Personalized Home が日本語化された。検索に「日本語のページを検索」が追加され、メニューは日本語になった。追加コンテンツこそ英語だけど、これもその内日本版が用意されるでせう。

天気

もちろん、おととい紹介した「 Weather」も日本語になってる。

都市名がローマ字表記なので、少し読みにくい。

とか

気温が華氏なのは厳しい。

とか

ちなみに、mph は mile per hour で 1 mile は 1.6km。

と書いたのも、(たった二日で) 過去の記事になってしまった。都市名は海外 (「ロンドン」とか...) も含めて日本語になったし、気温は摂氏で表示されるし、mph は km/時間 になった (km/時間 は m/秒 の方がよいけれど...)。もう、 Google 電卓で華氏を摂氏に変換する必要はない。

僕は今日から、 firefox のホームを Google Personalized Home に変えた。(今までのホームページはブックマークに入れた) 皆さんもどう?

追記: okanomail さんの記事も参考になります。

Google 電卓で華氏を摂氏に変換する

昨日のエントリーGoogle Personalized Home の「天気予報」が華氏で表記されると書いた。 華氏度 (F) から摂氏度 (C) への変換公式は下の通り。

C = 5/9 * ( F - 32 )

でも、計算なんてまどろっこしい! ここは一発 Google 電卓で変換してもらおう。

Google 電卓

77F (華氏 77 度) を摂氏度に変換するのは、


        77Fを摂氏で

      

ただし「華氏77度を摂氏で」だと変換されない。

これの不便な点は日本語入力を ON にしないといけないこと。そこで、こんな方法もある。


        77F+0K

      

華氏 77 度と絶対温度 0 度との足し算を求めるというもの。ここで摂氏 0 度 (0C) を足すと、 とんでもない値が返る。まぁ、温度の加算を絶対温度でやっているからなのだけど...

そして、一番簡単な方法。


        77F in C

      

なんか Fortran から C への変換みたい Xp。

ref

2005-11-02

Site Meter の time zone

このブログのアクセス解析に使っている Site Meter には、Time Zone が一時間ずれているという不具合があった。つまり、日本は本来 UTC+9 なのに、 Site Meter では UTC+8 (中国とかのタイムゾーン) に設定する必要があった。最近、このバグが修正されたみたいで、UTC+9 で正確な時間を表示するようになった。アメリカのサービスに極東のタイムゾーンは難しかったのかしらん。

そういえば、 Blogger のプロフィールで表示される干支も一年ズレてる。1979 年生まれは「羊」なのに、「Horse」と表示されてる。こっちはまだ直ってない。

一時間ズレとか一年ズレってバグは見つかりにくいものなのか?

Google Personalized Home に「お天気」を表示

Google Personalized Home は、 Google が提供するポータルと言えばよいのかな? Google 検索のシンプルな画面に、好みのコンテンツを追加して「自分専用のポータル・サイト」を作ることができる。アカウントには Gmail アカウントを使う。

左上に出ている「Add Content」ボタンを押すと、サイドバーが出てきて「追加コンテンツ」を選べる。ただし、ほとんどの内容が英語。例えば、BBC News とか CNET News.com とか CBS Sportsline とか... そんな中でも、日本語が通るサービスにはこんなのがある。

  • Gmail の inbox を表示。
  • Google Search History の履歴を表示。
  • 自分で作る「Bookmark」セクション。
  • RSS feed から、簡易 RSS Reader。

特に、自分で作れる「Bookmark」はお気に入り。 Google Personalized Home をホームページにして、 Google Reader, Bloglines, del.icio.us なんかをタブを開こうかと考えてる。贅沢を言えば、Bookmark の中にサブ・セクション (RSS reader とか sbm とか...) が作れるともっと嬉しい。

天気予報

前振りが長くなってしまったけど、 Google Personalized Home に追加できるコンテンツの一つに「Weather」がある。もちろん、これは天気予報のこと。

Google のこの手のサービスは、米国限定が多いので試してなかったのだけど、日本の天気予報も表示できることに今日気づいた。「Weather」の「edit」ボタンから編集モードに入り、「Country」に「Japan」を選ぶ。すると「Add a city」の選択肢に「Tokyo」以下 26 都市が表示される。都市名がローマ字表記なので、少し読みにくい。あと、京都とか主要な都市が抜けている。

表示される情報は、

  • 「今日」とその先三日間の天気と最高気温・最低気温。
  • 現在 (?) の気温、天気、風向、湿度。

ただし、「その先三日間の天気」はブラウザーのウィンドウ幅が狭いと表示されない。上のスナップショットで、「Today」の天気しか表示されないのは、そういう理由。

情報が英語なのはいいとして、気温が華氏なのは厳しい。華氏 59 度って摂氏何度? ( Google 電卓: 59F+0K) ちなみに、mph は mile per hour で 1 mile は 1.6km。ここら辺は、 Google のことだからそのうち直ることでせう。

この天気予報で面白いのは、複数の都市の情報を表示できること。スクリーンショットでも、東京、大阪、ロンドンの三都市の情報を表示している。旅行や出張なんかで海外 (国内でもいいけど) の天気を調べる時に重宝するかも。

最後に、時々 Information is temporarily unavailable.とメッセージが表示されることがある。放っておいても直るけど、すぐ天気予報が見たければ「ページの更新」で OK。

2005-11-01

LaTeX の日本語コマンドで改行をさせない (AUCTeX 11.81)

AUCTeX の fill (改行) 回りで、またバグがあったので修正パッチ。対象は AUCTeX 11.81。

症状

日本語 TeX では、次のようにして日本語のコマンドを作ることができる。

\newcommand{\ほげぼげ}{日本語のコマンド}

本来、 \ほげぼげ は一つのコマンドなので、途中で改行を入れてはいけない。 例えば、次のソースは

\ほげ
ぼげ

\ほげというコマンドと、 ぼげという単なるテキストとして解釈される。

そのため、自動改行するエディターは、改行位置の日本語がコマンドでないことを確認しないといけなのだけど、 AUCTeX 11.81 の M-q (fill-paragraph) は何も考えずにコマンドを分割してしまう。思わぬコンパイル・エラーを引き起こす原因になるので、日本語コマンドを書く (もしくはそういうソースをもらう) 可能性のある人は下のパッチをどうぞ。

Patch

AUCTeX 11.81 に対するパッチ。

*** latex.el 11 10 2005 12:01:34 +0900 5.386
--- latex.el 11 10 2005 15:16:33 +0900 
***************
*** 2760,2765 ****
--- 2760,2774 ----
      (if (looking-at "..\\c>")
   (forward-char 1)
        (forward-char 2)))
+   ;; Cater for Japanese Macro
+   (when (and (boundp 'japanese-TeX-mode) japanese-TeX-mode
+       (aref (char-category-set (char-after)) ?j)
+       (TeX-looking-at-backward (concat (regexp-quote TeX-esc) "\\(?:[a-zA-Z]\\|\\cj\\)+")
+           (1- (- (point) (line-beginning-position))))
+       (save-excursion
+         (goto-char (match-beginning 0))
+         (zerop (logand 1 (skip-chars-backward "\\\\")))))
+       (goto-char (match-beginning 0)))
    ;; Cater for \verb|...| (and similar) contructs which should not be
    ;; broken. (FIXME: Make it work with shortvrb.sty (also loaded by
    ;; doc.sty) where |...| is allowed.  Arbitrary delimiters may be

なお、この修正は 2005-10-31 に AUCTeX CVS にコミットされている。