2005-10-31

hatena-mode の設定

hatena-mode で はてなダイアリーの投稿を始めたので、設定その他をメモ。

ダウンロード

hatena-mode は cvs で開発版を公開している。開発版を ~/cvs 下に置くとして、

$ cd ~/cvs
$ cvs -z8 -d:pserver:anonymous@cvs.sourceforge.jp:/cvsroot/hatena-mode co hatena-mode

最新版への更新は ~/cvs/hatena-mode で cvs update。

.emacs の編集

site-lisp にコピーしてもよいけれど、いろいろと面倒なので ~/cvs/hatena-mode に load-path を通すことにした。次の設定を .emacs に追加。

;;
;; Hatena Mode
;;
(setq load-path (cons (expand-file-name "~/cvs/hatena-mode/") load-path))
(autoload 'hatena "hatena-mode" "hatena mode" t)
(setq hatena-usrid "at-aka")
(setq hatena-plugin-directory "~/cvs/hatena-mode/")
;; Optional
(setq hatena-directory (expand-file-name "~/path/to/hatena/"))   ; default は ~/.hatena
(setq hatena-proxy "http://foo.bar.net:8080/")                   ; proxy を通す場合

load-path の設定には、 expand-file-name が必要。これをつけなかったら、hatena mode が起動してくれず、ハマった。

hatena-mode の説明では load を使って hatena-mode をロードしている。これだと、 Emacs 起動時に hatena-mode.el を読み込んで起動が遅くなる。ここは autoload で十分なはず。何か理由があるのかな?

quick start

M-x hatena で「はてなモード」に入って「はてな記法」で文章を入力。

C-c C-p で、「 はてなダイアリー」に送信

2005-10-30

はてなダイアリーも始めました

はてなダイアリーも始めました。

最近いろんなサービスを試してばかりで収拾がつかなくなっている。だけど始めちゃった。

始めたきっかけは、 hatena-mode なる Emacs Lisp を見つけてしまったこと。ちょっと面白いかも、と思って、hatena-mode を試すために「はてなダイアリー」に登録。う〜ん、何か順番が逆だよね。

そんなわけで、 hatena@aka の方は hatena-mode に関する文章ばかりになると思う。更新頻度も低いと思う。それから、ほとんどの内容はこのブログとのクロス・ポストにするかもしれない。

あまり、期待せずにお読み下さいまし。

Google Reader アップデート (2005/10)

The Official Google Reader Blog によると、先週末に Google Reader がアップデートされていたそうな。

My favorite is support for the space keyboard shortcut. In all browsers, pressing the space key moves down in the current page. Reader's addition to that is to advance to the next item if you're at the end of the current one. This means that you can read your entire reading list with just one finger press!

ということで、「スペースキー」を押し続けるだけで、全てのフィードを読むことができるようになった。 Emacs-w3m のようなインターフェースですな。

手元のキーボードは Kinesis キーボードの dvorak 配列なので、 j を左手で、 SPACE や s を右手で押す。短いフィードと長いフィードが交互にあると、左手と右手を両方使わなくちゃいけなくて大変だった。

今回の変更のおかげで、フィードを読むのもスターを打つのも右手だけで事足りるようになった。便利。

j や k で前後のフィードに移動できるというのは、vi 由来のキーバインドなのだろうけど、dvorak 使いには不便極りない配列。ここら辺、キーバインドを mnemonic にしてくれるか、変更できるともっと便利なのだけど...

その他、こまごまと

Google Reader の雑感で、日本語が Your subscriptions で表示されない問題があると書いたけど、こちらの修正も行われたみたい。ただし、既に登録してあるものについてはそのまま。もう一度登録し直す必要があるのかな?

2005-10-29

Blogger の Word Verification

Blogger へ Atom-PP 経由でポストできない問題は解決したみたい。Atom-PP 経由でポストしてもエラーにはならなくなった。とはいえ、全面的に Atom-PP からのポストを許しているわけじゃない。

現在 Blogger では、splog と疑わしきブログから Atom-PP 経由でポストしようとするとドラフトとして保存される仕組になっている。そこで、 Blogger にログインして「投稿」画面から CAPTCHA を入力すると、あらためて記事が投稿される。こういった仕組みは、Atom-PP 経由だけじゃなくて、次のサービスでも取られている。

  • AudioBlogger
  • Mail-to-Blogger
  • Blogger for Word
  • Hello BloggerBot
  • Flickr
  • API clients (XML-RPC, Atom-PP, etc?)

question mark投稿時の Word Verification をやめさせるには、「Word Verification:」についてる「?」マークをクリックする。すると下のような画面になるので、そこで CAPTCHA を入力する。これで投稿時の Word Verification は出なくなる。

word verification

以上、元ネタは Blogger のヘルプ:

追記: という記事を Atom-PP 経由で投稿したところ、Error 500 が返った。あれ? さっきは成功したのに... しかも、「投稿時に Word Verification させない」ようにしたはずなのに有効になってない。ううん、Blogger、頑張れ。

追々記: 先刻、Blogger Support からメールがあった。「あなたのブログをレビューして、確認して、ホワイトリストに加えました」という内容。メールが英語なのがちょっとマイナス。でも、Blogger の日本語化は早めだから、すぐに日本語のメールが届くようになるでしょう。メールが届いたら、Blogger をログアウトしてもう一度 Blogger に入り直す。それで、Word Verification は行われなくなる。最後に、「我慢してくれてありがとね、こんなことになって不便な思いをさせてごめんなさい」と書いてあった。Blogger、頑張ってるじゃん。

2005-10-27

Bazaar-NG のコマンドライン補完 |zsh|

Bazaar-NG には、zsh (と bash) のコマンドライン補完用ファイルが同梱されている。darcs の補完入力でも書いたけど、僕は zsh 使いなので、zsh の設定方法をば書いておく。

補完ファイルの追加

zsh 補完用のファイルは、以下の場所にある。

  • bzr-0.X.X/contrib/zsh/_bzr

これを、zsh の completion 用のディレクトリー (ここでは、~/etc/zsh とする) にコピーして、.zshrc に次のコードを追加する。

fpath=(~/etc/zsh $fpath)
autoload -U ~/etc/zsh/*(:t)
autoload -U compinit && compinit

zsh を起動し直せば、設定が反映される。

もうちょっと賢い (?) zsh 補完

[2005-10-19]、much improved zsh completion script から始まる (Bazaar-NG ML 内の) 一連のスレッドで、もう少し賢い zsh 用の completion script が公開された。このスクリプトは、[2005-10-27] 現在、Bazaar-NG の開発版には含まれていない。ファイルは以下の場所で手に入る。

設定は上と同じ。

2005-10-26

Blogger の Word Verification と ATOM-PP

Blogger の投稿画面で CAPTCHA による Word Verification が行われている。

最近増加しつつある splog (ブログ版スパム) 対策だそうな。

現在、この Word Verification のおかげで、Blogger の ATOM-PP 経由による投稿ができなくなっている (送ろうとすると Error が返る)。Blogger 側の説明によると、数日のうちに直す模様。早く直るといいな。

ソースはこちら。

Bazaar-NG の branch format をアップグレードする

調子に乗って Bazaar-NG のバージョンを 0.0.9 から 0.1.1 に上げたら、bzr のコマンドが全く通らなくなってしまった。エラー・メッセージはこんな感じ。

$ bzr log
bzr: ERROR: command: '/usr/bin/bzr' 'log'
pwd: /home/foo/path/to/your/bzr-project
unsupported branch format: sorry, branch format u'Bazaar-NG branch, format 0.0.4\n' not supported
  at /usr/lib/python2.4/site-packages/bzrlib/branch.py line 515, in _check_format()
  see ~/.bzr.log for debug information

これは、Bazaar-NG のリポジトリーの形式 (branch format というのかな?) が変更されたのが原因らしい。新しい format は、weave format と呼ぶそうな。

リポジトリーのアップグレードは、ソース・ツリーの中で bzr upgrade と打つだけでよいみたい。

$ pwd
/home/foo/path/to/your/bzr-project
$ bzr upgrade
starting upgrade of /home/foo/path/to/your/bzr-project
making backup of tree history
./.bzr has been backed up to ./.bzr.backup
if conversion fails, you can move this directory back to .bzr
if it succeeds, you can remove this directory if you wish
starting upgrade from format 4 to 5
note: upgrade may be faster if all store files are ungzipped first
upgraded to weaves:
      17 revisions and inventories
       0 revisions not present
      45 texts
starting upgrade from format 5 to 6
adding prefixes to weaves
adding prefixes to revision-store
this branch is in the most current format
finished

アップグレードは、あっという間に終わる。でも、念のため、ディレクトリーのコピーを取ってからやることをお勧めする。

一応、Bazaar-NG 0.1.1 の bzr help upgrade を和訳 (意訳) しておく。

ブランチのストレージを最新のフォーマットにアップグレードする。

(bzr の) check コマンドや bzr の開発者は、時々このコマンドを実行するようアドバイスするでしょう。

このバージョン (0.1.1) のこのコマンドは、0.0.8 及びそれ以前のバージョンで使われていた full-text storage から weave format (v5) にアップグレードします。

はてなブックマークの「注目エントリー」の閾値

はてなブックマークの注目のエントリーは、(ブックマークしているユーザーの) 閾値を越えたエントリーを、ユーザー数と更新の新しさから並べてくれるというもの。[2005-10-25]、はてなは閾値をユーザー数 3 から 5 に引き上げ、[2005-10-21] にユーザー数を 3 と 5 に切り替えられるようにしてデフォールト値を 3users に戻した。

clmemo@aka をはてなブックマークでエントリーしている user 数は、最大 5。だから、5users だと「注目のエントリー」にほとんどのエントリーが表示されなくなる。

デフォールト値の切り替え機能は大歓迎。

閾値を任意の値にする

さて、はてな側ではこの閾値の値は 3users と 5users の二者択一。実はこの閾値、URL を直接いじることで、任意の値に変えられる。

注目のエントリーの URL の末尾は、

&threshold=5

という風になっている。ここを好きな値に変えればいい。

RSS の閾値も設定する

「注目のエントリー」ページにある RSS でも、同じように閾値を設定できる。

「注目」の基準なんて、タグやサイトごとに違うものだから、任意に変えられるのは便利。

ちなみに、末尾に &threshold=# をつけない場合、閾値は 5users になるみたい。例えば、&threshold=# が導入される前の RSS を引き続き使っていると閾値が 5users になる。

clmemo@aka のサイドバーには、はてなブックマークを利用した「Hot Entries」を JavaScript で表示しているのだけど、その閾値が (はてなの設定画面で 3users にしたにもかかわらず) 5users になっているので気付いた。

2005-10-25

開発版 Bazaar-NG を入手する

開発版 Bazaar-NG を get する方法について。つまり、 CVS の cvs checkout を Bazaar-NG でやる方法。

CVS で開発版を get するとは、リモートにあるレポジトリーから最新の状態のソース・ツリー一式をローカルにコピーすること。一方、 Bazaar-NG では、リモートにあるレポジトリーそのものをローカルにコピーする。そのため、レポジトリーはリモート側 (開発元) とローカル側 (手元) に二つ出来てしまう。そして、十人が開発版を get すれば、11 のレポジトリーが出来る。これが分散型バージョン管理システムの特徴。

Bazaar-NG では、最新版を手に入れるコマンドを branch と呼んでいる ( get は branch の alias)。つまり分散型バージョン管理においては、最新版の get は、新しくブランチを作るのと変わりがない、ということ。

Bazaar-NG の公式開発版は、以下のアドレスにある。

最新版の入手と更新

Bazaar-NG の開発版は以下のコマンドで手に入る。

$ bzr branch http://bazaar-ng.org/bzr/bzr.dev

全てのバージョンをダウンロードしようとするので、とても時間がかかった。mirror とか、無いのかな?

更新は、bzr.dev ディレクトリー内で

$ bzr pull

branch コマンドと pull コマンドは、ローカルのレポジトリーに対しても (当然) 有効。例えば、 foo というプロジェクトを bzr でバージョン管理していたとして、新しいブランチを作る場合は、こんな風にする。

$ ls
foo
$ bzr branch foo foo-new-branch
$ ls
foo foo-new-branch

古いバージョンを手に入れる

先の foo プロジェクトで、古いバージョンが欲しくなったとする。その場合、revision number を -r オプションで指定して branch コマンドを実行する。例えば、欲しい revision number が 15 だとすると、次のような感じ。

$ ls
foo foo-new-branch
$ bzr branch foo foo-old -r15
$ ls
foo foo-new-branch foo-old

revision number は、 log コマンドで調べられる ( revno が revision number)。

$ bzr log