2006/9/29


サーバーが Jabberd 2 ではなぜか JEP-0054: vcard-temp の仕様の通りに vCard をセットしようとしても、うまく行かない。 Jabberd 2 Installation and Administration Guide を見ると、FAX 番号や携帯の番号をセットする項目がない。(Figure 13.5.2. Jabberd Table Descriptions 参照)なので、少し違ったメッセージを送信してやらないといけない。

<iq type="set" id="msg_23">
<vCard xmlns="vcard-temp" version="2.0" prodid="-//HandGen//NONSGML vGen v1.0//EN">
<FN>フルネーム</FN>
<ORG>
<ORGNAME>会社名</ORGNAME>
<ORGUNIT>部署</ORGUNIT>
</ORG>
<TITLE>肩書</TITLE>
<TEL>
<WORK/>
<VOICE/>
<NUMBER>111-111-1111(電話番号)</NUMBER>
</TEL>
<EMAIL>
<INTERNET/>
<PREF/>
<USERID>bokuno@mail-address.com</USERID>
</EMAIL>
</vCard>
</iq>

てな感じで送ってやらなくてはいけない。(ん、FAX、携帯がないだけで正規のメッセージか?本当は <WORK/><VOICE/> や <INTERNET/><PREF/> はなくてもいい。)
FAX や携帯の番号がセットされないのはちと痛いが、しゃあないなあ。今回は Gaim ですらこれに対応していなかった。いち早くこっちが対応したということで。
ちなみに Jabberd 2 ではこういった情報は MySQL, PostgreSQL と言ったデータベースに保存される。(ID、パスワードも保存することができる)なかなかおもしろい。
0

2006/9/27

FreeBSD で ICH7 オーディオデバイス  FreeBSD

がーん、FreeBSD ってまだ ICH7 サウンドデバイスに対応してないと思ったら、6.1 から対応してるやんけ。でもなんでうちのは認識されていなかったのか…。
とりあえず pciconf -lv で調べてみる。

none0@pci0:27:0: class=0x040300 card=0x04048086 chip=0x27d88086 rev=0x01 hdr=0x00
vendor = 'Intel Corporation'
device = '82801G (ICH7 Family) High Definition Audio'
class = multimedia

と出てきた。
まず chip ID をチェック。/sys/dev/sound/pci/ich.c に書いてある ICH7 の ID と比べる。ich.c では
#define INTEL_82801GB 0x27de
となってた。pciconf の出力ではうちの ICH7 の chip ID は 0x27d88086 なので、
#define INTEL_82801GB 0x27d8
に直す。でカーネルを再コンパイルしてリブート。
pcm0 は認識。が、

pcm0: unable to map IO port space

となり、使えない。がちょ〜ん。うちのマシンの BIOS には Plug & Play OS の設定項目はないし(これを off にするといいという情報あり)、もうどうしようもない。もう一枚サウンドカードが余っているので、これを使ってみよう。とほほ…。
ちなみにマザボは Intel D945GTP。誰かこれでサウンド使っている人いませんかー?
0

2006/9/27

Windows GTK でフォントを変えたい - 解決  GTK

やっと解決した。実は
font_name="Arial, MS PGothic 9"
で、,(コンマ)の後にスペースがあると Windows ではダメなようだ。なので
font_name="Arial,MS PGothic 9"
が正解。あー、時間かかった。しかしなぜか MS PGothic は 8 と 9 でサイズが全然違うんだよなあ。もう訳わからん。FreeBSD ではコンマの後にスペースがあろうと OK だし、MS PGothic もちゃんとサイズが変わるし…。
まあしゃあない。

<昨日の FreeBSD>
PCI サウンドカードをマシンにさした。ESS1969 とか言うやつで、snd_solo で行けそうだった。カーネルを再コンパイルして起動。pcm0 もあるし、cat /dev/sndstat も
FreeBSD Audio Driver (newpcm)
Installed devices:
pcm0: <ESS Solo-1E> at io 0x1040,0x1090,0x1080 irq 11 (1p/1r/0v channels duplex default)
で OK そう。しかーし、音を鳴らそうとすると FreeBSD が固まる…。なんでやねん。
もともとこのマシンには ICH7 なオンボードサウンドチップが載ってるんやけど、FreeBSD ではまだ対応していなかったので、別のやつを試してみたんやけど…。敢えなく撃沈。さてどうするか…。
0

2006/9/27

FreeBSD でオーディオデバイス  FreeBSD

ふう、やっと動いた、うちのマシン + FreeBSD + サウンド。
ESS1969 アウト、ICH7 アウト、最後に残った Aureal Vortex 8820。FreeBSD 本家のホームページの対応デバイスを見ても載ってないし、なのに /sys/dev/sound/pci には Aureal の記述があるし。やっと色々探して、なんと ports に audio/aureal-kmod というものがあることがわかった。どうもドライバがサードパーティーしか出ていないらしく、それを使わなければならないとのこと。とにかく make install して OK!! 疲れたぜえ。

% pciconf -lv
pcm0@pci6:1:0: class=0x040100 card=0x33555053 chip=0x000112eb rev=0x02 hdr=0x00
vendor = 'Aureal Semiconductor'
device = 'AU8820 Vortex 1 Digital Audio Processor'
class = multimedia
subclass = audio

% dmesg | grep pcm0
pcm0: <Aureal Vortex 8820> port 0x1048-0x104f,0x1040-0x1047 mem 0x50000000-0x5001ffff irq 9 at device 1.0 on pci6

xmms を立ち上げて音が出るのを確認!! やっとここまで来れたぜ。これで仕事にもサウンドが使える。でもやっぱ内蔵の ICH7 を使いたいよなあ。
0

2006/9/26

rc ファイルで GtkTooptips の設定を変える  GTK

メモ:
rc ファイルで GtkTooltips の背景を変えるには、
style "tooltips"
{
bg[NORMAL] = "#EEEEAA"
}
widget "gtk-tooltips" style "tooltips"

これは GtkTooltips が GtkWidget ではなく、更に gtktooltips.c の中で
gtk_widget_set_name (tooltips->tip_window, "gtk-tooltips");
が呼ばれているためのようである。
0

2006/9/26

Windows GTK でフォントを変えたい - 続き  GTK

GtkSettings を使ってみた。結局これでもだめだった。
実は Windows で
font_name="Arial, MS PGothic 9"
を試してみたのだけど、日本語は文字化けする。 FreeBSD では似たような設定で OK なのに。GTK デフォルトフォントと思っていたのは、 Tahoma の日本語フォントだった。Tahoma って、日本語も使えたんやね。って、自分の使ってるのが英語の(アメリカの)Windows だからか?
日本語関係は一度ちゃんとした日本版の Windows で使ってみたい。
なんか FreeBSD 版の方が見た目良くなってきてる。

<今日の FreeBSD>
今後の 6.2 リリース予定:
BETA1: Sep. 17
BETA2: Oct. 1
RC1: Oct. 15
RC2: Oct. 29
RELEASE: Nov. 13

本リリースが11月13日になってる。6 系列は安定してる(少なくとも自分が使ってきて何の問題もなかった)ので、待ち遠しい。ただ ICH7 なサウンドドライバーがまだなので、それさえ実装してくれれば何の問題もないなあ。6.2 では実装されるのかな?
時間があったら BETA1 にしてみようかな?(って、やっぱ不安定になったらまずいなあ…)
0

2006/9/23

Windows GTK でフォントを変えたい  GTK

仕事の方はほぼある程度のことは実装完了(?)。
で、もう少し見栄えを良くするために GTK のフォント周りをいじっていたのだけれど…。

半角英語フォントは Tahoma に、日本語フォントは MS P ゴシックにというように分けてフォントを指定したかったので、rc ファイルに以下のように記入。

style "user-font"
{
font_name="Tahoma, MS PGothic 9"
}


(注:↑なぜか "font_name" の前のスペース(インデント)が表示されない。とほほ。<pre> タグも使えんのね…)

実はこれ、FreeBSD では OK(実際はちょっとフォントを変えてあるけど)で、Windows ではあかんことが分かった。なんでやろ?
Windows では日本語フォントが GTK のデフォルト(Firefox とか Thunderbird と同じ)になる。あーよく分からん。

ここで GtkSettings を使ってみろとのご指摘が…。今度やってみよう。
(結構時間かかったりするんだよなあ、こういうことで)
0

2006/9/20

訂正 - mu-conference の設定 - クライアント  インスタント・メッセンジャー

う、プロトコル仕様書 JEP-0045 に乗っ取って送信メッセージを作っていたのに、なんとこれではうまくいっていないことが分かった。

9/16 分のメッセージの roomconfig_ のところを全部 owner_ に変えなくてはならない。正しくは

<iq type="set" to="aaa@conference.xxx.net" id="msg_30">
<query xmlns="">http://jabber.org/protocol/muc#owner">
<x type="submit" xmlns="jabber:x:data">
<field var="muc#owner_publicroom"><value>0</value></field>
<field var="muc#owner_passwordprotectedroom"><value>1</value></field>
<field var="muc#owner_roomsecret"> <value>xxx</value></field>
</x>
</query>
</iq>

これは Gaim のメッセージを見てわかった。たのむ、JEP-0045、いくら Draft(下書き段階)だからと言ってこういう大事な事は書いておいてくれ…。しかも間違ったメッセージ送ってもエラーを返さないし…。

そういや Jingle でも同じ事があったなあ。仕様書に書いてあるメッセージと全く違うメッセージを送らなあかんかったし。Google Talk は一体どうしているのか…。

これからは Gaim の出力だけを信じよう。 Gaim 作った人も大変だったろうなあ。
0

2006/9/19

GtkTreeView の row のサイズ  GTK

GtkTreeView の一つ一つの row の高さが高すぎていたので、色々いじってみた。
結果、
renderer = gtk_cell_renderer_pixbuf_new();
の後、
g_object_set(renderer, "ypad", 1, NULL);
で ypad の値を変えてやればよかっただけだった。xpad はいじったことあるのに…。
それに加えて、spacing みたいなのがあるのだろうか?
0

2006/9/16

mu-conference の設定 - クライアント  インスタント・メッセンジャー

ふう、やっと部屋に入ることができた。
クライアントは部屋を作る時、configuration メッセージを送らなければならない。

<iq type="set" to="aaa@conference.xxx.net" id="msg_30">
<query xmlns="">http://jabber.org/protocol/muc#owner">
<x type="submit" xmlns="jabber:x:data">
<field var="muc#roomconfig_publicroom"><value>0</value></field>
<field var="muc#roomconfig_passwordprotectedroom"><value>1</value></field>
<field var="muc#roomconfig_roomsecret"> <value>xxx</value></field>
</x>
</query>
</iq>

仕様に乗っ取り
roomconfig_publicroom -> 0: 検索に引っかからないよう
roomconfig_passwordprotectedroom -> 1: パスワードを必ず設定
roomconfig_roomsecre -> xxx: パスワード

ちょっとぐらい文法に誤りがあってもエラーを返してこないところが痛い。
まあこれで良しとしよう。

まあこれで Jabber 会議室 (mu-conference) に入ることができた。
0



teacup.ブログ “AutoPage”
AutoPage最新お知らせ