GNOME でのシャットダウンの禁止—最近の流儀

検索で古い記事「gdm でのシャットダウンの禁止」にだどりつく方があるようなので、最近のやり方を書いておきます。

その記事にあるように、私にとってそもそもなぜこの設定をしたいのかというと、うっかりミスの防止です。ログイン後のメインメニューで、「ログアウト」と隣り合って「シャットダウン」の項目があり、単にログアウトするつもりがシャットダウンしてしまうことがあるのです。

最近の流儀では policykit で設定で行うようです。その方法はdebian-user メーリングリストにあるとおりです。要点を簡単に記すと、

  • /usr/share/polkit-1/actions/org.freedesktop.consolekit.policy を書き換えるという回答もあるが、このファイルはそもそも設定ファイルではないし、バージョンアップによって書き換えられる(元に戻ってしまう)ので、よろしくない。
  • /etc/polkit-1/localauthority/50-local.d/ に適当な名前(ただし末尾を .pkla にする)のファイルを作り、その中に次のように書く。
    [consolekit]
    Identity=unix-user:*
    Action=org.freedesktop.consolekit.system.*
    ResultAny=no
    ResultInactive=no
    ResultActive=no
    [upower]
    Identity=unix-user:*
    Action=org.freedesktop.upower.*
    ResultAny=no
    ResultInactive=no
    ResultActive=no
    
これで GNOME のメニューから「シャットダウン」の項目が消えます。

異体字同一視検索

PostgreSQL をバックエンドに、フロントエンドを PHP でどうにか書いて、自前のデータベースを仕事に使っています。そこでたまに異体字を同一視してほしい(たとえば「斎藤」さんだったか「齊藤」さんだったかうろ覚え)ときがあるのですが、それほど頻度も高くないし、人間が注意して対処(「読み」も登録しているので「さいとう」で検索)すれば乗り切れるので、つい後回しにしていました。

そろそろ何とかしなければ、と web を検索したところ、「異体字同一視検索」を見つけました。そう、以前に調べたときにこの方と同じく「漢字データベースの異体字データベース」を見つけてはいたものの、そこからどうしようと思いながらそのままにしていたのでした。

さっそくそのページの説明のとおりに自分のスクリプトに組み込みました。こちらでは日本語のいわゆる旧字体があれば十分で、簡体字は必要ではないのですが、そのままで快適に機能しています。このように情報を公開していただいていることに大変感謝しています。

インターネットラジオを FM ラジオで聴く

radiko や NHK のインターネット配信とちょうど逆の話。

仕事中に音楽を聴きたい。しかし目の前にある PC にはスピーカーが付いていない。どうしても必要なときのために簡単なヘッドホンを付けてあるのだが音楽を聴くのには向いていない。1時間に数回は席を立つので紐付きになってしまうのは非常にうっとうしい。

FM トランスミッター

FM ラジオで聴くことにした。と言っても普通の放送局では好みの音楽をやっていない。そこで、音楽サーバーを置いて電波を出すことにした。

目の前の PC のほかに、いわゆる自宅サーバーとして電源を入れっぱなしの PC がある。これに FM トランスミッターを付けた。しばらく前に買ったもののすぐに使わなくなっていた オーディオテクニカの AT-FMT6だ。もともと電池式だが、無理矢理ケーブルを付けて USB から電源をとるようにした。

XMMS2

Debian で動いているこの自宅サーバーには、これまでサウンド関係のソフトは入っていないので、まず alsa-base パッケージをインストールする(必要なものが芋づる式にインストールされる)。音楽プレーヤーは、軽そうな XMMS2 にした。xmms2 パッケージをインストールするとこれも必要なものが芋づる式にインストールされる。そのほかに必要となりそうなプラグイン、xmms2-plugin-curl, xmms2-plugin-pls などもインストールした。

XMMS2 はプレーヤー本体と操作パネルを分離できるので、今回のような場合にはもってこいである。サーバー側には上記のものを入れ、目の前にある PC にクライアントの gxmms2 を入れる。X や libgtk はこちらにだけあればよい。

サーバー側で

xmms2 config core.ipcsocket tcp://192.168.1.101:9667
のように、接続しにくるクライアントを指定しておき、いっぽうのクライアント側では環境変数 XMMS_PATHtcp://192.168.1.2:9667 のようにサーバーを指定する。

そしてサーバー側で xmms2-launcher として、デーモンを動かしておき、目の前の PC で gxmms2 を立ち上げる。

プレイリスト

あとの操作は gxmms2 で……と思ったものの、gxmms2 でのプレイリストの作成手順がよく分からないので、これはサーバー側に付いている CUI の nyxmms2 で行うことにした。

まず適当な名前で playlist を作成する(以下の例では gourd)。リストを切り換えて、聴きたいストリームの pls を加える。

nyxmms2 playlist create gourd
nyxmms2 playlist switch gourd
nyxmms2 addpls http://stream-19.streamsolutions.co.uk:9052/listen.pls

複数の接続先を設定したければこれを繰り返して行う。聴くときにはクライアントの gxmms2 でリストの切り換えができる。


サーバーは家のほぼ真ん中の階段下に置いてあるので、仕事場だけでなく台所や寝室のラジオでも聴けるようになった。トランスミッターのアンテナがもう少しよければ、庭仕事のときにも聴けるのだが。

GNOME の「最近開いたドキュメント」

evince などを起動しようとすると、数分ものあいだ固まったようになってしまうことがごくたまにある。そのときは、GNOME の「最近開いたドキュメント」が記録されている ~/.local/share/recently-used.xbel の内容を消去すると直る。

原因は、そのファイルに NFS の向こうにあるファイル名が記録されているからだった。「ごくたまに」というのは、目の前の PC を使っているときに NFS 先のもうひとつの PC が動いていないことはめったにないから。で、いま evince で見たいのは手元のファイルという場合だと、NFS 先の PC の電源が入っていないことはわかっていても、起動がおかしくなる原因がそれとはすぐに思いつかない。起動時に勝手に(?)「最近開いたドキュメント」を読み込もうとして、そこで引っかかっている。

それで、手っ取り早い解決策がそのファイルの中身を消去すること。

数年前にもこれで首を捻ったことがあるのだけれど、ずいぶん長いこと同じ目に遭わなかったのですっかり忘れていて、またもや首を捻ってしまった。そういう訳で、たぶんほかの人の役には立たないけれど、自分のためにここにメモしておく。

Debian の psql で日本語を入力できない

Debian の PostgreSQL のフロントエンド psql で日本語が入力できなくなっていることに気づいた。いろいろ検索してみてわかったことをざっと記すと、まず、以前の psql では問題なかったのが最近おかしくなったのは

#603599
これまでの psql は libreadline (GPL v2+) と libssl (BSD-like であり GPL とは非互換) の両方にリンクしており、ライセンス的にバイナリの再配布は不可能。そこで、libreadline をやめて BSDライセンスの libedit にする

という事情らしい。

#607109
psql でマルチバイト文字が使えない

で指摘されているように、-n オプションを使えば回避できることから、libedit のバグのようだ。

同じ libedit を使っている gnuplot

#596870
非アスキー文字が使えない

で、実際に試してみたらそのとおりだ。

当の libedit には

#579729
utf8 に対応した新しいバージョンをパッケージしてほしい

という要望が出されているものの、動きはなし。

上流は NetBSD libedit なのだけれど、「libedit I18N化への道」(イントロ)を見ると、utf8 対応といっても問題が多く、ことの成り行きはこの方にかかっているらしい (つづきが(その1)(その2)(その3)(その4)(その5)。そしてこの時点での最新の「めもがき」によると、たいへんお忙しいらしい)。

さし当たりこの問題を回避するには、libreadline / libedit の機能をあきらめて psql -n として使うか、libedit を libreadline に差し替えてパッケージを作り直すか。根本的解決は、能力のない者としてはただじっと待つより為す術がない。

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 はあまり関心を持たれていないようです。