Jabber と WordPress (補遺)

もたもたしている間に年が変わってしまいました。先日の記事に、これまで Jabber/XMPP と WordPress の連関について触れているところは少ない、というようなことを書いたのですが、前の記事を書く際に「WordPress勉強会「Automatticのワークスタイル」に参加しました」を見落としていました。

2009年8月とさらに1年遡って、その時点では Automattic 社内の事例として、P2im.wordpress.com のことに触れられています。その頃にはまったく気づいていませんでしたが。

P2 テーマと Jabber/XMPP

たとえば WordPress の翻訳に関わる人たちの情報交換の場が、昨年(2010年)9月末にメーリングリストから、この P2 を使った WP Polyglots に移行しました。私はもっぱら眺めているだけなのですが、私にとって P2 は非常に読みにくくて、移行後はもう読むこと自体をやめてしまっていました。

前の記事で触れた「ブログ投稿やコメントの即時配信」の記事を読んで、ようやく Jabber 通知を使えることを知り、さっそく継読するようにしました。コメントが投稿されるたびに通知されるので、以後はさっと流し読みだけでもできるようになりました。個人的には、Jabber/XMPP と組み合わせてはじめて P2 の力を見ることができました。

1年前や2年前の記事を見て何を今さら、と言われそうですが、私の検索能力が低いのか、やはり P2 を取り上げながら Jabber/XMPP に触れているのは、特に日本語では、上記の2009年の Automattic 社内の話以外には見つけることができません(このスライドも同じ時期のようです)。どうも Jabber/XMPP はあまり関心を持たれていないようです。

Jabber と WordPress (後編)

XMPP PubSub

Jabber / XMPP には PubSub という機能があります。Publish-Subscribe の意味です。

まず、Jabber サーバー上に「ノード node」と呼ばれるポイントを (たいていの場合、発信者が) 作成します。「発信者 publisher」と「継読者 subscriber」を文字どおり結びつける場所です。継読者は、このノードに対して継読を申し込みます(subscribe)。なお日本語では「購読」と訳されることが多いのですが、ここでは「継読」という語を当てます。そして、発信者がノードに対して情報を送るたびに、登録されている継読者にそのことが通知されます。

配信サービスという意味では、RSS/Atom フィードによく似ています。フィードは、更新があるかどうかを受信者側から (フィードリーダーの設定などにより定期的に) 情報を読みにいきます。このブログのように月に一度ほどしか更新がないのに受信者側がフィードリーダーに「60分」などと設定していると、受信者側からのアクセスに対する返答の十中八九は「更新情報なし」で、無駄足だったということになります。だからと言ってあまり長い時間間隔に設定していると、新しい情報が出た際には受信者がそれを読みにいく時刻までに大きなラグが生じます。

それに対して PubSub は、発信者が情報を出すたびに、「電光石火の速さ」で継読者に通知されます。

WordPress と PubSub

WordPress.com のブログ記事「ブログ投稿やコメントの即時配信」 (この日本語訳は2010年9月24日付ですが、元の英文記事は2010年8月25日付)は、WordPress.com のブログサービスにこの Jabber の PubSub 機能を連動させたことを伝えています。WordPress.com のサポートのページ (英語)の後半の解説によると、継読の申し込みや解除などの操作は bot を介して行うようです。

WordPress.com ではなく、WordPress.org で配布されているインストール型の WordPress には、この機能はないのでしょうか? プラグイン Jabber Feed を使えば実現できそうです。しかし、ノードを作成する権限のある Jabber サーバーがあるかどうか、など環境が整わないと難しそうです。自前で Jabber サーバーを設置できれば自由がききます。このブログにも設定してみました (サイドバーにリンクがあります)。

多くのホスティングサービスでは Web サーバー と Mail サーバーを使わせてくれますが、Jabber サーバーを使わせてくれるところというのは聞いたことがありません。素人考えでは Web サーバー や Mail サーバーに比べて難しいことはないと思うのですが。これが一般的になれば、Jabber の利用が拡がり、インストール型の WordPress でも PubSub を簡単に使えるようになるかもしれません。

【跋】 今頃(2010年11月末)になって、数カ月前の WordPress.com のブログ記事に気づきました。しかし検索してみると、この間にこれに注目しているような日本語の情報はごくわずかの例を除いて見つかりませんでした。また、WordPress.com のブログ記事も PubSub の機能を主に紹介するもので、Jabber のもっとも一般的な面であるインスタントメッセージングについての解説がなかった (そもそも Jabber に関する情報は日本語ではとても少ない) ので、ここに書いてみることにしました。

Jabber と WordPress (前編)

Jabber / XMPP とは

Jabber とはインスタントメッセージングサービスのひとつです。XMPP はそのプロトコルです。Web に対する HTTP と同じ対応で、Jabber に対する XMPP ということになります。

インスタントメッセージングサービスというと、「Yahoo!メッセンジャー」とか「Windows Live メッセンジャー」などと同系統のものですが、仕様がオープンなので、多くのサーバーやクライアントのソフトが存在します。好きなクライアントを選んで使うことができますし、また、Web サーバーや Mail サーバーを設置・運用するのと同じように、自分でサーバーを設置して運用することもできます。XMPP どうしならサーバーを越えて通信できます。たとえば、Google トークは XMPP 準拠なので、ほかの XMPP のサーバー、ネットワークと通信できます。

Jabber / XMPP1対1のチャットは、あまり説明の必要はありませんが、ちょうどメール、その返事、その返事……の連続といったものととらえることもできます。

多人数のチャット (Muiti-User Chat (MUC))もあります。ユーザーからの見た目や操作は IRC によく似ています。

クライアントとアカウント

Jabber を始めるのに必要なものは、まず Jabber クライアントです。Web を利用するのにブラウザが、Mail を利用するのにメールソフトが必要なのと同じです。

クライアントの

などは日本語化されていています。Web ブラウザ上で動くもの、モバイル向けなど、ほかにもたくさんあります

もう一つ、欠かせないのがアカウントです。メールを使う際にはメールアドレスが必要なのと同じことです。Jabber のアカウントは Jabber ID、略して JID と呼ばれ、形はメールアドレスにそっくりで、

name@example.com

アットマークの前はユーザー名、後ろはそのユーザーの属するサーバー名です。

自分で XMPP サーバーを設置できれば簡単に (そして自由に) JID を得られるのですが、そうでない場合はどうすればいいのでしょうか? ひとつの方法は公開 XMPP サーバーで JID を作ることができます。日本語では XMPP.JP というところがあります。

しかし、Jabber をいままで知らなかった人でも実は既に JID を持っている可能性があります。

のいずれかであれば、既に JID を持っています。

GMail の場合、メールアドレスとまったく同じで、たとえば name というアカウントを持っていれば、JID は name@gmail.com です。GMail にはチャット機能が含まれており、これが Google トーク、すなわち XMPP のメッセージングなのです。この Google の JID を別のクライアントで使用することも可能です。

WordPress.com (WordPress.com であって WordPress.org ではありません) の場合、たとえば name というアカウントを持っていれば、JID は name@im.wordpress.comになります。WordPress.com のサポートのページ (英語)に解説があり、そのページのリンクには主なクライアントの設定方法もあります。

前置きのような内容だけでも長くなったので、ここで区切って続きは後編で。

AT5IONT-I で組む PC に Debian をインストール

AT5IONT-I で PC を組む

PC の1台のファンがうるさくてしかたがなくなった。それだけ交換してもいいのだけれど、7年ほども使ってきた Pentium4 の PC で、ほかの箇所にガタがきてもおかしくないので、すっかり新しくすることにした。

この暑い夏、非常にうるさかったので、今回は静穏性を最重視して、CPU が Atom D525 のファンレスのマザーボード AT5IONT-I、ACアダプター電源、2.5インチHDD、光学ドライブはこの際なし(旧機のものを流用したくても ATAPI で、接続できない)とした。

「24pin対応」の電源を注文したのに届いた付属ケーブルが 20pin で[1]、販売店に連絡したら「メーカーが入れ間違えたもの」とのことで、正しいケーブルが届くまで時間がかかったりしたが、ようやく準備は整った。

Debian のインストール

接続できる光学ドライブがなく、しかも手元に USB メモリもなかったので、まずは旧機に新HDDを接続して、Debian lenny ネットワークインストール用 CD で起動してインストール開始。順調に進んで、ネットごしに最低限の Debian ができたところで、HDD を AT5IONT-I に接続する。

ネットワークコントローラチップドライバ

新機を起動すると順調に立ち上がって、いやー簡単簡単……と思ったのも束の間、追加のアプリを apt-get しようと思ったらネットにつながっていないことに気づく。しばらくケーブルやら設定やら見直してもなかなか解決できない。別の PC で検索して調べているうちに、ようやく原因にたどり着いた。

AT5IONT-I に搭載されているネットワークコントローラチップは RealTek 8112L というものらしい。Debian はドライバモジュール r8169.ko を読み込むがこれが動いていないようだ。検索して調べてみると、RealTek のサイトから RTL8111/8168B を持ってきて組み込めばいいらしい (参考: Script to Fix R8168 and R8111 in Debian/Ubuntu GNU/Linux)。

再び HDD を旧 PC に接続し、linux-headers-2.6.x などビルド環境を apt-get。Realtek のサイトから r8168-8.019.00.tar.bz2 をダウンロード。

rmmod r8169

で誤ったモジュールをはずし、持ってきたものを展開して、

make clean
make modules
make install

でインストール。インストールした先で

mv r8169.ko r8169.ko.BAK
echo "blacklist r8169" >> /etc/modprobe.d/blacklist
depmod -a
insmod r8168.ko

でモジュールを組み込む。

update-initramfs -u

initramfs を更新しておく。

ここまでできたら HDD を AT5IONT-I に戻し、起動してネットに正しく接続できた。

あとはネットごしに apt-get で必要なものをインストール。AT5IONT-I 搭載の ION2 のために nvidia-glx などもインストールした。

ATOK X3

上記のドライバの組み込みの作業は、カーネルが変わるたびにやらなければならならず面倒くさいので、この際と思い、その作業の前に lenny から unstable に上げてしまっていた。このときに dpkg も新しいものになった。

日本語変換は ATOK X3 にすることにした。別の PC (こちらも Debian の unstable)でも既に ATOK X3 を導入していたのだが、数ヶ月前から ATOK X3 に含まれる iiimf-* が「不正なバージョン番号」との警告が出るようになっていた。新機では、何と同じ警告のためにインストールそのものができない。これまた検索して調べてみると、「_」が含まれているのが原因。

dpkg -x, dpkg -e で展開して DEBIAN/control のバージョン番号を書き換えて dpkg-deb -b で再パッケージ。付属のインストールのためのスクリプトもそれに合わせて書き換えて、無事インストール完了。

ファン

完全ファンレスにしようかと思ったが、CPU温度が60度くらいになる。それでもいいのかもしれないが、旧機の電源部の大きなファンはそれほどうるさくないので(うるさくなっていたのはCPUファンだった)、これを取り出して、 AT5IONT-I のフィンの上に乗せた。CPU温度は30度程度になった。

  1. 20pin でも当面は困らないが、注文したものと違うままというのも嫌なので。

WordPress 3.0.1 日本語版

WordPress 3.0.1 日本語版が出ました。オリジナルのほうでは 50点ほどの修正箇所があったようですが、日本語版としてはほとんど変更はありません。ただし、今回から「オリジナルから日本語版への変更点」を記述したファイルをパッケージに同梱することにしました。WordPress をインストールした URL に /readme-ja.htmlを付けたところにあります。

そもそも、readme.html というファイルが元からあります。インストール時に一度目にするかしないかで、それ以後は見ることはないでしょう。これも WordPress をインストールした URL に /readme.htmlを付けたところ、このサイトなら //pasero.net/~mako/blog/readme.html にあるのですが、たぶんどこからもリンクが張られていないので、二度とお目にかかれないのです。せっかく訳したのにもったいないなあと思っています。

その readme.html の「おわりに」の章の最後に、ひっそりと 「オリジナルから日本語版への変更点」 へのリンクがあります。ますます見つけてもらえませんね。

WordPress 3.0 日本語版

ようやく WordPress 3.0 日本語版がリリースされました。

日本語版作成チーム内で、今回の 3.0 のリリースリーダーを担当するという話になったのが 3月中旬でした。その頃、オリジナルの WordPress 3.0 の予定は 4月にbeta と RC, 5月1日にリリースとなっていたのですが、実際には大幅に遅れました。

日本語版

日本語版の作成は、まずメッセージカタログを翻訳することです。メッセージとは、WordPress に現れる種々の文字列、たとえば管理画面に現れる個々の項目などです。メッセージカタログは、WordPress 日本語版をインストールしたディレクトリの wp-content/languages/ 以下にある ja.po, ms-ja.po, continents-cities-ja.po それにテーマ twentyten の wp-content/themes/twentyten/languages/ja.po です[1]

このうち continents-cities-ja.po は、世界の都市名で、前回の版 (2.9.x) から変更がなかったので今回はまったく作業せずにすみました。そのほかのメッセージも多くは前回の版から引き継ぐことができましたが、新規に増えたものも多くありました。

そのほか、メッセージカタログでは対処できない部分が若干あり、それらはオリジナルの構成ファイルの該当部分を直接翻訳して、日本語版パッケージに含めます。

リリース担当

リリース担当の仕事は……何でしょうね? 一言で言えば「スケジュール管理」ということになるでしょうか。正式版の前に beta1, beta2, RC1, RC2, RC3 のリリースがありました。日本語作成チームのメンバーはそれぞれが wp-polyglots ML開発ブログなどから、オリジナルの動向の情報を得ていますが、リリース担当としては、翻訳の状況を見ながら「いつまで翻訳を受け付け、いつまでにパッケージ化、いつまでにテスト、その後リリースと告知」とチームに提案して、エイヤッと日本語版リリースに持っていきました。特に今回の beta や RC の際には未翻訳のメッセージが多く残っていて、どこかで踏ん切りをつけなければならなかったのです。もちろん正式版では未翻訳は残っていません。

もうひとつは「調整」でしょうか。同じ語が場所によって別の訳語になっているのを統一しなければならなかったり、よりよい訳にするための修正が提案されることがありますが、「どうしましょうか」というところで話が止まってしまうこともよくあります。リリース担当として、これまたエイヤッと「こっちにしましょう」と進めていきました。

GlotPress

これから目にされる WordPress 3.0 日本語版で、「この翻訳は変じゃない?」「あっちとこっちで別の語になってるけど同じがいいのでは?」と思われる箇所がまだ残っているかもしれません。そんなときはぜひ、日本語作成チームにお知らせください。

GlotPressという仕組みで、訳文の修正の提案ができます。ログインに必要なアカウントはフォーラムと共通です。GlotPress はまだ発展途上で、使い勝手はよくないのですが、

のいずれかで、Filter に文字列を入力して対象となるメッセージを検索し、見つかったら右端の Details の押して、修正案を入力してください。

ここでの入力は「案」であり、ただちにメッセージカタログに取り込まれるものではありませんので、気軽にお知らせください。それを日本語作成チームのメンバーが見て、採用するかどうか検討し、今後のリリースに反映します。

3.0 は出ましたが、まだしばらくの間(3.0.x)はリリース担当です。今後ともよろしくお願いします。

  1. これら人間が読めるテキスト形式の *.po と、実際に WordPress が引用するバイナリ形式の *.mo を合わせて「日本語リソース」と言うこともあります。

WordPress 3.0 RC2 日本語版

テストのために WordPress 3.0 RC2 日本語版 に入れ替えました。以前の記事、WordPress 3.0 ベータ1 日本語版 が 4月13日ですから、あれから2カ月、ようやく正式リリースが見えてきました。管理画面のヘルプが充実しました。今回は、未翻訳はありません(が、訳のおかしなところがあるかもしれません)。