カテゴリー別アーカイブ: ソフトウェア

Gajim 0.13.4

XMPPクライアント Gajim の0.13.4 が公開されました。今回から日本語化ファイルが含まれました。 大胆に訳したところ、自信の持てなかったところ、そして手をつけられなかったところが多々あります。お気づきの点がありましたら、メール mako(あっと)pasero.net または XMPP でも同じ形の mako(あっと)pasero.net までお知らせください。

psvn でのパスワードの入力

自分のためのメモ。 Emacs の subversion のためのインターフェース psvn.el の先頭のほうで、コメントの形の FAQ に書かれていた。
TEXT:
  1. ;; Q3: How do I enter a username and password?
  2. ;; A3: In the *svn-status* buffer press "s", switch to the
  3. ;;     *svn-process* buffer and press enter. You will be prompted for
  4. ;;     username and password.

WordPress でping/トラックバックを送信できない

サーバーの移転以来、トラックバックができていないようだと思いながらも、あまり記事を書いていなかったので確信を持てずにいました。思い当たる設定をいくつか直してみたのですが、やはり出ていっていませんでした。

検索してみると実にたくさん引っかかりましたが、どうやら

  1. wp-include/cron.php の wp_remote_post() の設定時間を長くする
  2. Smart Update Pinger プラグインを使う1)
  3. /etc/hosts の 127.0.0.1 にホスト名を加える

の 3 つの解決策に分類されるようです。

まず (1) をやってみましたが、ここでは何も起きず、(2) をやってみると「更新情報サービス」に設定してたところには ping を送信できましたが、トラックバックは別でした。

結局「移転以来」というのが鍵でした。移転というのはいわゆる「自宅サーバー」になった訳ですが、そこに問題がありました。

「自宅サーバー」というのは、つまりルーターの内側にあって、NAT により外側に見えるグローバル IP アドレスと、内側(自分自身を含む)から見えるプライベート IP アドレスが異なっている状態にあるということです。外向きの DNS は立てていたのですが、自分自身 (つまり pasero.net) を 127.0.0.1 や 192.168.x.x と引けなくてもこれまで特に問題はありませんでした (それはそれで驚き)。

「トラックバック」の仕組み上、これではいけないのですね。ひとつの解決策が (3) のように、/etc/hosts で WordPress のあるホスト名を 127.0.0.1 に対応させる方法です。ここでは、VIEWによるスプリットDNSという方法で、内向きの DNS を設定して解決しました。


  1. 後継のUltimate Plugins Smart Update Pinger というものがあるようです。

Pidgin で IRC

WordPress ja “非公式” IRC チャンネル」について、先日書きました
サーバ:
irc.freenode.net
チャンネル名:
#wordpress-ja
文字コード:
UTF-8
それ以来、PC の前にいるときは接続しているようにしているのですが、ほとんど誰もいませんね。時間帯が合わないのでしょうか。 随分前の「WordPress交流会」のときには Chatzilla を使いました。その頃 Pidgin はまだ Gaim という名前でしたが、日本語を使おうとするといろいろ問題があったのです。今は普通に使う分には問題ありません。 Pidginは多くのプロトコルに対応していて、普段から Jabber/XMPP のクライアントとして使っていたので、そこに IRC のアカウントを追加したのでした。

Mozilla Firefox のサイドバー

数日前から Firefox (Debian では Iceweasel) のサイドバーに
asahi.comのネットスケープ用サイドバーは、2009年6月5日で終了します。RSS、ツールバーなどをご利用ください。
と表示されるようになりました。 サイドバーは確か Netscape 6 からだったでしょうか。その後 Firefox には引き継がれず、衰退してしまいました。私は拡張機能のイージーSidebarを利用しています。asahi.com のサービスがなくなれば、購読しているまともなサイドバー対応のサービスはスラッシュドットジャパンくらいです。 しかしサイドバーは、携帯サイトを表示させればちょうどいいサイズです。便利に使っているのは河川情報の「レーダー雨量」の履歴動画です。

Emacs で subversion のコミットログ

日本語入力システムにWnn7を使うために環境変数 LANG を ja_JP.eucJP にしなければならないのだが、いくつか問題が出てきた。 そのうちのひとつ、emacs で subversion のコミットをする際のログを日本語で書こうとするとエラーを起こす。しばらく放っておいたのだが、やはりログは日本語で書いたほうがささっと書ける1)。 .emacs に
LISP:
  1. (add-hook 'svn-log-edit-mode-hook
  2.         '(lambda ()
  3.          (set-buffer-file-coding-system 'euc-jp)))

を加えて解決した。
  1. 諸説あるが、何しろここでは自分ひとりで使っているリポジトリのものなので自分流である。

PostgreSQL を 8.3 に

バックエンドに PostgreSQL を使っているのは、自前のデータベースのほかに Trac と MediaWiki だ。バージョン 8.3 が出てから1ヵ月以上経つし、MediaWiki の 1.12.0rc1 で PostgreSQL 8.3 対応の文字が見えてきたのでそろそろ大丈夫だろうとバージョンアップしてみた。

debian の場合 pg_upgradecluster で簡単にデータの移行ができる……はずだったのだが一筋縄ではいかなかったのだった。きっと数ヵ月後には根本的に解決されていて役に立たない情報になるだろうが、記録しておく。

自前のデータベース

PostgreSQL の contrib に含まれている isn.sql1)を利用している。この isn.sql も 8.2 と 8.3 で若干違っているようで、pg_dump したものを読み込ませてもうまくいかなかった。

しかたがないので、pg_dump したものを isn.sql 関連の定義前の部分、isn.sql による部分、その後の部分の3つに分け、前の部分を読み込ませた後、contrib の isn.sql を読み込ませ、それから後の部分を読み込ませることで、ようやくデータの移行ができた。

自前で書いていたフロントエンドは特に問題なしと思ったら、

互換性のない変更点
文字でない型 (日付型など) を自動的に text 型に変換しないようにしました。
今までは text 型入力を受けとる演算子や関数に文字でない値が渡されると、自動的に text 型にキャストしていました。 これからは text 型でないデータを渡したい場合には text 型への明示的なキャストが必要になります。
に引っかかるところが数ヵ所見つかった。演算子 ~ はテキスト型にしか使えないとのこと。暗黙のルールは使わないようにしているつもりでもうっかり使っているのものだなと思った。

Trac

データの移行はすんなりとできた。が、使ってみるとエラーが出る。上と同様、キャストに関わる問題のようだ。検索して、64166512の変更を加えて、うまく動くようになった。

MediaWiki

MediaWiki で使っている tsearch2 は PostgreSQL 8.2 では contrib だったのが 8.3 では本体に組み込まれた。と言っても関数名等の互換性を取るために 8.3 でも contrib の tsearch2.sql を読み込ませる必要がある。上述したのと同じように dump を分割してデータを移行した。

これで大丈夫と思ったら、記事を書き換えようとした際にエラーが出た。ts2_page_text() で tsvectorの引数の 'default' は存在しないというもの(すみません、メッセージを正確に記録していませんでした)。

maintenance/postgres/tables.sql の 当該関数の定義箇所を見てみると

SQL:
  1. -- Tsearch2 2 stuff. Will fail if we don't have proper access to the tsearch2 tables
  2. -- Note: if version 8.3 or higher, we remove the 'default' arg

とのコメントがある。1.12.0rc1 ではまだ対応されていないのだった。新しい版を見るとコメントがつけ加えられていて、patch-tsearch2funcs.sqlの存在を教えてくれた。これを適用して、問題なく動くようになった。


  1. 書籍コードの ISBN をひとつの変数型として扱うためのもの。

gdm でのシャットダウンの禁止

特に設定しないと gdm のグリーティング画面で、「アクション」から誰でもシャットダウンや再起動ができてしまう。これではコンソールの前を通りかかった人は誰でも実行できてしまうので困ったものだと思うのだが、GNOME の考え方なのだろう、以前からこれがデフォルトだ。

また、いったんログインすれば、メインメニュー「シャットダウン」の項目があり、一般ユーザーがシャットダウンできてしまう。意図的でなくてもメニューで「ログアウト」と隣合っているので、うっかり間違えてシャットダウンしてしまうことがある。別のユーザーがリモートからそのマシンを使っていると困ったことになる。

シャットダウンを禁止するには、GNOME 2.18 では、gdm の設定ファイル /etc/gdm/gdm.conf1) の [deamon] セクションに

CODE:
  1. [daemon]
  2. HaltCommand=
  3. RebootCommand=

と書き加えればよかった。シャットダウンと再起動用のコマンドに空を指定することで、自動的にグリーティング画面の「アクション」メニューから「シャットダウン」「再起動」の項目が消え、ログインした一般ユーザーのメインメニューからも「シャットダウン」が消えていた。

ところが、gdm 2.20 になると、グリーティング画面の「アクション」からは消えるが一般ユーザーのメインメニューには「シャットダウン」が出るようになってしまった2)

gdm の設定の [daemon] セクションを見ると、 AllowLogoutActions という項目が 2.20 から増えていた。これに空の値を指定する、つまり先ほどの2行に加えて

CODE:
  1. AllowLogoutActions=

と書くことで、一般ユーザーのメインメニューから「シャットダウン」を消すことができた。

【2011年6月29日追記】 GNOME でのシャットダウンの禁止—最近の流儀 を書きました。


  1. gdm のマニュアルを見ると /etc/gdm/custom.conf という名前のようだが、Debian では古い名前 /etc/gdm/gdm.conf が使われ続けているようだ。
  2. ロックダウン・エディタ pessulus を使うことも考えたが、これで「ログアウトを無効にする」と「シャットダウン」も「ログアウト」も一緒にできなくなってしまう。これらを別々に設定することはできない。

ブラザーのレーザー複合機

レーザープリンタのドラムが汚れて縦に黒線が入るようになってどうしようかなと思っていたところに Fax付電話機が故障したので、ここは複合機を買うことにした。 Postscript(互換)、Linux用のドライバが用意されているということでブラザーのレーザー複合機を購入した。

ほしい機能

Fax機能で、受信時は複合機のメモリに保持しておき(これは当然できる)、必要なときに PCからファイルとして見えると助かる1)のだが、結局、紙に印刷するしかない。スキャナ機能ではデータをFTPでPCに送ることもできるのだから、Fax機能でも受信データを同じように送ることができてもよさそうなものだが、その機能はないらしい。

brpcfax

オンラインでマニュアルを読めばだいたいの設定はできたのだが、「PC-FAX 送信 CUPS Wrapper ドライバのインストール方法」はちょっと不親切だ。インストールまではできるが使い方がわかりにくい2)。 そこで検索してみると英語版のInstalling a Brother Linux PC-FAX send driver into a CUPS based Linux Systemが見つかり、こちらの方がはるかにわかりやすい3)。もっとも使用頻度の高いと思われる OpenOffice.org から直接印刷するようにFaxを送る方法が載っている。ここにかいつまんで訳すと4)
  1. OpenOfficeの設定ユーティリティである spadmin を起動する。(注: このプログラムを探すには find / | grep spadmin )
  2. 「新しいプリンタ」ボタンをクリック
  3. 「Fax 機の設定」を選択して、「次へ」ボタンをクリック
  4. 「標準ドライバ」を選択して、「次へ」ボタンをクリック
  5. 次のコマンド行を入力5)
    brpcfax -o fax-number=(PHONE)
    そして「次へ」ボタンをクリック
  6. Faxプリンタの名前を入力。例えば Brother fax
  7. 「完了」ボタンをクリック
OOo で作成した文書を送るには、「印刷」で上記で名づけたFaxプリンタ名を選択して「OK」すると、Fax番号を入れる小さなウィンドウが開くのでそれを入力して「OK」する。 英語版マニュアルにはこの下に Mozilla の場合の設定方法があるが、firefoxでは「PostScript/default」以外のプリンタでは印刷コマンド指定ができないようだ。
  1. Windows なら附属のソフトでできるらしい。
  2. さらに誤りもある。「ファクス送信を実行する」の章の最初のコマンド例「単一宛先にファクス送信する場合:」は dpkg -i brmfcfaxcups-1.0.0-1.i386.deb と書かれているが、いくらなんでもそんな訳はない。英語版を見れば brpcfax -o fax-number=0566-55-12345 psfile.ps である。
  3. 検索中に見つけたブログの記事も参考になる。
  4. 実はStarSuite 8 管理ガイドにほぼ同じ記述がある。
  5. StarSuite 8 管理ガイドブログの記事によると (TMP)をつけたほうがよさそうだ。

MediaWikiのスタイルシート

編集の際、プレビューはするものの最後に保存するのを忘れてしまい、せっかくの編集が水泡に帰すことがしばしばある。そこでせめてプレビューのあいだは背景に色を着けて注意を促したい。 全ての外装に反映されるスタイルは MediaWiki:Common.css に書けばいいらしい。編集画面でプレビューは <div id='wikiPreview'> となっているので、
CSS:
  1. div#wikiPreview {
  2. background-color: #ACCAC1;
  3. }

のように書いた。