本を読む

読書やコンピュータなどに関するメモ

Linux版Second Lifeクライアントで日本語入力

 Linux版Second Life Viewerでは、チャットなどでSCIMからの日本語入力ができない。SCIMが立ち上がりもしない。そこで、ちょっと調べてみた。

追記(2007.8.5):バージョン1.18.1(2)からは日本入力に対応したライブラリが標準添付されたようです。

 以下、OSがUbuntu Linux 7.04、Second Life Viewerが1.17.0(12)、gccが4.12の環境で試した。

ソースを調べる

 Second Life Viewerはソースが公開されている。まずはダウンロードして中を見た。

 ソースの中で、Windows/Mac/Linuxのウィンドウやキーなどの環境依存の部分は、llwindowディレクトリの中にまとめられている。この中では、ベースになるLLWindowクラスやLLKeyboardクラスをまず定義し、それを各環境固有のクラスで継承することで、呼出し側に影響を与えないように設計されているようだ(Template Methodパターン)。

 Linuxでのキーまわり処理は、SDLを使ったLLKeyboardSDLクラスに書かれている。そこで、llkeyboardsdl.cppを見ると、SDLのキーイベントを直接処理して文字列を作り上げていることがわかる。SDLにはIM関連のイベント処理がないようで、それが原因でIMが使えないらしい。

SDL-IMを試す(失敗)

 IMに対応したSDLがないかと調べてみたところ、SDL-IMというパッチがあることがわかった。さっそくビルド。

$ wget http://sdl-im.csie.net/download/SDL_im-1.2.8-20070327.diff.gz
$ wget http://www.libsdl.org/release/SDL-1.2.8.tar.gz
$ tar zxvf SDL-1.2.8.tar.gz
$ cd SDL-1.2.8
$ zcat ../SDL_im-1.2.8-20070327.diff.gz | patch -p1
$ ./configure
$ make

 ちなみに私の環境では、automake1.8、x11proto-xext-dev、libxext-devを追加インストールする必要があった。

 Linux版Second Life Viewerでは、libディレクトリの下にlibSDL-1.2.so.0が含まれている。secondlifeスクリプトの中で、LD_LIBRARY_PATHを設定することで、含まれるほうのライブラリを優先的に使うという仕組みだ。そこで、できあがった.soをSeond Life Viewerのlibディレクトリの下にlibSDL-1.2.so.0という名前でシンボリックリンクしてやる。

 さて、Second Life Viewerを起動。

$ XIM=SCIM ./scondlife

 チャット入力で[半角/全角]キーを押すと、SCIMが立ち上がった。が、変換まではできるものの、そこからアプリ側に日本語テキストが渡らない。失敗のようだ。

別のパッチを試す(成功)

 さらに調べてみると、まさにSecond Life Viewer向けにを主なターゲットとしてSDLをハックしてIMを使えるようにした人がいた。SDL 1.2.11ベースだ。

 さっそくビルド。

$ wget http://alissa-sabre.cocolog-nifty.com/files/SDL-IM-20070525.zip
$ wget http://www.libsdl.org/release/SDL-1.2.11.tar.gz
$ unzip SDL-IM-20070525.zip
$ tar zxvf SDL-1.2.11.tar.gz
$ cd SDL-1.2.11
$ patch -p0 < ../IM-20070525.patch 
$ ./configure
$ make

 改めてlibSDL-1.2.so.0のシンボリックリンクを張りなおして、Second Life Viewerを起動。が、「window creation error」とエラーが表示されて、起動できない。

 そこで、Ubuntuのlibsdl1.2-debian-alsaのソースをapt-get sourceで取り寄せ、debian/controlファイルでBuild-Depends:に指定されているパッケージをすべてインストールした。そのうえで改めて、パッチのあたったSDLのソースで./configureしてmake。

 このバージョンでSecond Life Viewerを起動したら、今度は無事起動、SCIMも起動でき、そこから日本語を入力できた。

追記(2007.7.11):Alissa Sabreさんのパッチが本家SDLで取り込まれたようで、ご本人によるインストール方法の解説が書かれています。これは、Linux版Second Life Viewerユーザー必読ですね。

Linux版Second LifeクライアントでSLURL

 よく読んでいるブログ「独学Linux」に載っている設定を使うと、Linux版Second Lifeクライアント+FirefoxでSLURLが使える。つまり、Webで指定されたSecond Life上の場所に直接行ける。

 ただ、同じ情報を違うところで設定したのでメモ。といっても、~/.mozilla/firefox/(ランダムな文字列).default/user.jsを以下のように書いて、Firefoxを再起動しただけだ。user.jsに書く方法を使った理由は、設定をまとめて追加や変更したかったから。

user_pref("network.protocol-handler.external.secondlife", true);
user_pref("network.protocol-handler.warn-external.secondlife", true);
user_pref("network.protocol-handler.app.secondlife", "/path/to/secondlife");

 /path/to/secondlifeの部分は、secondlifeコマンド(シェルスクリプト)をフルパスで指定する。

 あとは、「独学Linux」同様、secondlifeシェルスクリプトに記述を追加したらOK。バージョンが違うらしくシェルスクリプトの記述が違ったが、気にせず同じように$@の前に追加したらできた。

追記(2007.7.14):今のバージョンだと、シェルスクリプトを変更しなくていいみたい。

GRUBから電源オフ

 GRUB(Linuxなどで使われるブートローダー)には、電源オフするhaltコマンドがあることを知った。

熊猫さくらのブログ: GRUBを使ってPCの電源を切る方法について

 さっそく試す。GRUBの画面で「c」キーを押してコマンドラインを出し、「halt」。

 おお、本当に電源オフになった。

石川賢「武蔵伝」全2巻

 宇宙最強のマンガ家、石川賢が、剣豪宮本武蔵を主人公にして描いた! 作品。が、そこは石川賢、普通の剣豪物になるわけがない。意表をつく展開と、賢チャン節とで、楽しく読んだ。いまさらながら、惜しい人を亡くしたと思う。

 内容は、ネタバレぎみに書くと、「武蔵だらけのチャンバラ大会」。野性児タイプから剣豪タイプ、年寄り、坊主、はてはキリシタンの美少女まで、たくさんの武蔵が江戸を目指して旅する。ラスボスのひとつ前がアレで、ラスボスがアレという具合に、話もわりとうまくまとまっていると思う(石川賢にしては)。

 それにしても、宮本武蔵のイメージって、「技よりパワー」「勝ったもん勝ち」ということで、石川賢のイメージに合うなぁ。

武蔵伝 1 (1)
武蔵伝 1 (1)
posted with amazlet on 07.06.17
石川 賢 ダイナミック・プロ
リイド社 (2005/12/26)


武蔵伝 (2)
武蔵伝 (2)
posted with amazlet on 07.06.17
石川 賢
リイド社 (2006/06/29)

Ubuntu 7.04 + ThinkPad X60sで音が出ない問題

 Ubuntu Linux 6.06では、デフォルトの状態で私のX60sで音が鳴った。が、7.04では鳴らなかった。使わないからいいやと思っていたのだけど、たまたま必要になったので調べてみた。

 へー、BIOSでモデムを無効にしていると鳴らないのか。ためしに有効にしてみたら鳴った。

Dell PCの光学ドライブとLinuxインストーラーとFreeDOS

 以下、2006年10月にmixi日記に書いたネタを、覚え書きとして転載してみる。


 Dell Precision 380にFedora Core(Linuxの一種)をインストールしようとしたところ、光学ドライブが認識されない。さすがにPATAの光学ドライブなんてインターフェイスの枯れた世界でそれはないだろうと思って調べてみる。

 へー、Philips DVD8701のファームウェアの問題か。

http://support2.jp.dell.com/jp/jp/download/document.asp?dn=303107

 さっそくファームウェアをアップデートして無事インストール成功した。

 しかしハードディスクに展開してDOSでブートしろって書いてあるけど、SATA+NTFSのハードディスクはDOSから読めませんがな。そもそもLinuxでの不具合に以下略

 しょうがないのでFreeDOSをインストールして、そこからアップデートを実行した。FreeDOS楽しいかも。

Ubuntuのi810switchをThinkPad X60s対応にする方法

 ThinkPad X60sのUbuntuを7.04に入れ替えてから、ふと気づくとi810switch(画面をプロジェクターなどの外部出力に切り替えるコマンド)が使えなくなっていた。6.06のときは使えていたんだけど。

$ i810switch crt on
PCI id of i810 is not recognized.

 調べると、既知のバグらしい。

 X60 + Ubuntu 6.10で、i810switchのソースを入手してパッチを当てて使っている人のレポートも見つかった。

 ついでなので、.debパッケージを作りなおして自分用にパッケージを作ってみる。Debian系では、dpatchというしくみを使ってパッチファイルをソースアーカイブに含め、オリジナルのソースを残したままビルド時にパッチを適用する方法が推奨されている。参考にしたのはこちら。

 まずソースを入手。

$ apt-get source i810switch
$ wget http://librarian.launchpad.net/6823931/i810switch-0.6.5.i945.diff
$ cd i810switch-0.6.5

 i810switchパッケージのソースはdpatchに対応していない。そのため、/usr/share/doc/dpatch/examples/rules/rules.new.dh.gzを参考に、debian/rulesファイルを変更して、dpatchに対応させる。

$ vi debian/rules

変更:

build-stamp: configure-stamp
   ↓
build-stamp: configure-stamp patch
clean:
   ↓
clean: clean1 unpatch
clean1:

追加:

patch: patch-stamp
patch-stamp:
	dpatch apply-all
	dpatch cat-all >patch-stamp
	touch patch-stamp
unpatch:
	dpatch deapply-all
	rm -rf patch-stamp debian/patched

 もしかするとパッチをdebian/patchesに置くだけでいいのかもしれないけど、とりあえずdpatch-edit-patchでパッチを再作成。

$ mkdir debian/patches
$ echo 03_i945 > debian/patches/00list
$ dpatch-edit-patch 03_i945
$ patch -p1 < /path/to/i810switch-0.6.5.i945.diff
$ exit
$ dch -v 0.6.5-2-emasaka1
(適当にコメント書く)

 あとはパッケージをビルドしてインストール。

$ dpkg-buildpackage -uc -us -rfakeroot
$ cd ..
$ sudo dpkg -i i810switch_0.6.5-2-emasaka1_i386.deb

 試す。

$ i810switch crt on
Enabling CRT display...

 成功。

「食い逃げされてもバイトは雇うな」

 「数字でハッタリを効かす術」を解説した本(200ページ中、頭から170ページぐらい)。あっという間に読了。

 自分として興味を持ったのは、光文社新書の担当編集者さんが、本のタイトルになんとか数字を入れようとしているという話。がんばってますねぇ。といいつつ、「さおだけ屋~」や本書でタイトルに数字を入れていないのが、これはこれで計算と自信を感じる。

食い逃げされてもバイトは雇うな 禁じられた数字 〈上〉
山田 真哉
光文社 (2007/04/17)
売り上げランキング: 41

「新・UFO入門―日本人は、なぜUFOを見なくなったのか」

 唐沢俊一氏が、「UFOというB級ポップカルチャーの歴史を洗い直してみたい」ということで新書にまとめた、「"UFO学" 学」入門書。

 視点としては、UFOそのものではなく、UFOを信じる人やUFO好きの人を好事家的に観察している本。だいたいの割合で、UFOコンタクティ史が1/3、CBA事件が1/3、ブラジルの脳天気系コンタクティ話が1/3。

 いやぁ、やっぱりブラジルの馬鹿話がよかった。

新・UFO入門―日本人は、なぜUFOを見なくなったのか
唐沢 俊一
幻冬舎 (2007/05)
売り上げランキング: 961

「C.M.B.」5巻

 「グーテンベルク聖書」は、ユニドロワ条約を背景に超稀覯本の行方を探るミステリー。結末が読めてしまうきらいはあるけど、ストーリーの進めかたは面白い。あと、自転車で通る丘の風景とかもいい感じ。

 「森の精霊」は、密林の開発を背景にした殺人事件ミステリー。森羅君の冒頭の態度が後の態度とかみあわないとか、七瀬さんに薬草を教えたのは誰とかあるけど、ホワイダニット的にひねってあって面白く読んだ。

C.M.B.森羅博物館の事件目録 5 (5)
加藤 元浩
講談社 (2007/05/17)
売り上げランキング: 3080

 | HOME | 

Categories

Recent Entries

Recent Comments

Recent Trackbacks

Appendix

emasaka

emasaka

フリーター。
連絡先はこのへん

Monthly