« 2007年12月 | トップページ | 2008年2月 »

2008年1月の記事

2008年1月30日 (水)

結局でなかったし

1.19.0RC(0)

2008年1月28日 (月)

mono

こんなもの発見。

SVC-1276

これって、つまり、もうすぐ mono のテストが始まるってこと、でしょうかね?

# いやー、WindLight でアーティストさんたちが、Havok 4 でビルダーさんたちが、大騒ぎになっているわけですが、今度はスクリプターさんたちですね。

2008年1月27日 (日)

1.19.0 RC0 は火曜日に予定されているそうです

最新情報によると、1.19.0 RC0 は、いよいよ今度の火曜日に出る模様です。

日本時間だと、1月30日水曜日の午前中くらいでしょうか。

2008年1月16日 (水)

1.19.0正式アナウンス

ついに正式にアナウンスされました。1.19.0。

既報の通り、ここには、Alissa版の日本語その場入力が含まれる見込みです。Macintoshにも対応。

正直、待ち遠しいです。

※ 追記: 最新情報によると、1.19.0 の RC0 が出るのは今月終わりくらいの見込みです。

2008年1月14日 (月)

私が使っているLinux機の宣伝

ついでなので、宣伝をもう一つ。こちらの記事にも書いた、現在の私の主力Linux機の部品です。GA-M68SM-S2というマザーはショップの店頭でもあまり見かけませんが、実は隠れた名品なのではないかと思っています。オンボードのGeForce7025は、正直なところあまり期待していなかったのですが、予想以上にしっかりしていました。Second Lifeも問題なく動きます。Windows Vistaも試してみましたが、こちらもいけました。GMA950とは雲泥の差って感じですか?

あと、メモリは、私が買ったのはノーブランド品ですが、同じお店で通販していたものを適当に張ってみました。これみて、まとめて注文する人とか、… まぁ、いないでしょうねぇ。ははは。

ギガバイト GA-M68SM-S2 NVIDIA GeForce7025搭載 SocketAM2用マイクロATXマザーボード ギガバイト GA-M68SM-S2 NVIDIA GeForce7025搭載 SocketAM2用マイクロATXマザーボード

販売元:スリートップ
楽天市場で詳細を確認する

AMD CPU ADH2350DOBOX Athlon X2 BE-2350 BOX(動作周波数2.1GHz×2/L2=512KB×2/45W/SocketAM2) AMD CPU ADH2350DOBOX Athlon X2 BE-2350 BOX(動作周波数2.1GHz×2/L2=512KB×2/45W/SocketAM2)

販売元:スリートップ
楽天市場で詳細を確認する

CFD W2U800CQ-1GLZJ DDR2-800(PC2-6400) 1GB 2枚組 BUFFALO基盤 & ELIXIRチップ採用の高信頼メモリモジュール【次回1月中旬入荷予定】 CFD W2U800CQ-1GLZJ DDR2-800(PC2-6400) 1GB 2枚組 BUFFALO基盤 & ELIXIRチップ採用の高信頼メモリモジュール【次回1月中旬入荷予定】

販売元:スリートップ
楽天市場で詳細を確認する

ATOK X3の宣伝

某氏の勧めにより宣伝します。(^_^)

ATOK X3とは、Linux用の「日本語入力ソフト」ATOKの最新版。こういうものは好みによるわけですが、少なくとも私の感覚だと、Anthy よりもずっといい。最大の問題は「インターフェース/フレームワークがIIIMFだ」という点だと思いますが、とりあえずXIMからも使えるし、GTKならimmoduleもしっかりしているし、まぁ、実用上はこれでもいいのではないかと。

なお、LinuxでSecond Lifeやる人は、こちらの記事に書いたバージョンを試してみてください。ATOK X3との組み合わせで快適に動作しています。こんな感じ。また、SLに限りませんが、たぶんこの情報も知っておくと、買ったあと幸せではないかと。

ATOK X3 for Linux

販売元:ジャストシステム
発売日:2007/11/30
Amazon.co.jpで詳細を確認する

以上、提供はジャストシステムとアマゾンでお送りしました。

2008年1月10日 (木)

ATOK X3

今日、教わった技。

ATOK X3 をインストールしたら、その CD-ROM に密かに格納されている iiimf-properties-trunc_r3104-js1.i386.rpm をインストールするべき。すると、iiim-properties というプログラムが使えるようになる。iiim-properties を使うと、

  • IM (ATOK) の起動・終了を、任意のキーに割り当て直すことが出来る。
  • ウィンドウの左下に張り付いて入力状態などをしめすモノを消すことが出来る。

素晴らしい!

2008年1月 5日 (土)

1.19

1.19.0 のベータ (まだ 1.19.0.0 になっていない) が、ソースだけ配布されています。

中身をざっと眺めましたが、ついに、Alissa版その場入力が含まれている模様。「1.19に入る」というのは、正しかったようです。(12月末には間に合いませんでしたが。)

2008年1月 4日 (金)

Linux

こんなことを調べていたのは、もちろん、Alissa版Linux用ビューアでフルスクリーン解像度の設定をサポートするためです。相変わらず1.18.5.3ベースですが、一応動いています。あと、ガンマ補正値の設定も、微妙にインチキですが、機能するようになっています。

とはいえ、このところLinuxは反響がないのでモチベーションが上がらないんですよね。ということで公表せずにぼちぼちと…。

2008年1月 2日 (水)

X11で画面の解像度を変える

昔はXF86 Video Mode Extensionを使っていたのだが、これは最近のX.orgではうまく機能しなくなってしまったようだ。(互換のためにAPIは実装されているようだが、実質的に機能しない。)

現代的には、XRandR Extensionというものを使う。しかし、XRandRは、資料があまりない。その上、どういうわけか、関数とかデータ型とかの名前がめちゃめちゃだし、関数の仕様にも首をひねる部分が多く、理解を妨げる。

例えば、XRandRの基本のデータ構造は、XRRGetScreenInfo() という関数を呼ぶと得られるのだが、ここで得られるデータ構造の型名はXRRScreenConfigurationであって、XRRScreenInfoという名前のデータ構造は存在しない。XRRGetScreenInfo() は、動的に割り当てたXRRScreenConfigurationへのポインタを返すのだが、使い終わったらこのメモリをアプリ側で開放する必要がある。で、XRRScreenConfigurationを開放するための関数はXRRFreeScreenConfigInfo()というのだ。XRRFreeScreenInfoでも、XRRFreeScreenConfigurationでもなく。

誰だ、こういう名前つけたの。責任者出て来い、みたいな。

ということで、使い方のまとめ。(SL Viewerで使うものだけ。)

#include <X11/extensions/Xrandr.h>
XRandRを使うときには、X11の標準のヘッダに加えて、これをインクルードする。大文字小文字は、ここに書いてある通りにする必要がある (ファイルシステムにもよるが)。
Status XRRQueryVersion(Display *dpy, int *major, int *minor)
とにかく最初に呼ぶ。XRandR Extension がサポートされていれば戻り値は非0になる。サポートされていなければ0。majorとminorには、アプリ側で確保したint型の変数 (初期化不要) のアドレスをわたす。ここに、XRandRのバージョンのメジャーとマイナーが入って戻ってくる。普通は、majorが指す変数の値が1ならOK。minorは、使う関数によっては値をチェックする必要がある (1以上とか2以上とか) ようだが、以下の関数はバージョン1.0で使えるのでチェック不要。
XRRScreenConfiguration *XRRGetScreenInfo(Display *dpy, Drawable draw)
この関数を呼ぶと、XRRScreenCOnfiguration型のデータへのポインタが得られる。drawには、ディスプレイdpy配下にあるスクリーンのうち、解像度を変更しようとしているスクリーンのルートウィンドウを指定する。(スクリーン番号などではなく。なぜ、こんな仕様なのか不明。) 以下の関数の引数にconfigというパラメタがあったら、そこには、この関数の結果として得られたポインタをわたす。使い終わったら、XRRFreeScreenConfigInfoで開放する。
void XRRFreeScreenConfigInfo(XRRScreenConfiguration *config)
XRRGetScreenInfoで得たXRRScreenConfigurationを開放する。
Time XRRConfigTimes(XRRScreenConfiguration *config, Time *timestamp)
この関数は、XRRGetScreenInfoを使ってXRRScreenConfigurationを得た時刻を調べるのに使う。Time型が、引数 (ポインタ) と戻り値の両方に登場するが、両者に同じ値が返るらしい。時刻なんかどうでもいいと思うかもしれないが、この時刻は、あとでXRRSetScreenConfig()を呼ぶときに必要になる。
XRRScreenSize *XRRConfigSizes(XRRScreenConfiguration *config, int *nsizes)
利用可能な解像度の一覧を得る。関数の結果はXRRScreenSizeへのポインタという型だが、実際には、XRRScreenSizeを要素型とする配列の先頭のポインタが得られる。アプリ側でint型の変数を用意 (初期化不要) して、そのアドレスをnsizesとしてわたすと、結果として得られる配列の大きさ (要素数) がセットされる。XRRScreenSizeというのはstructで、ここにwidthとheightというメンバがあって、それぞれ横方向、縦方向の解像度 (ドット数) を表している。
Rotation XRRConfigRotations(XRRScreenConfiguration *config, Rotation *rotation)
この関数は、現在の画面の回転状態 (90度回転させて縦長表示にできるようなもの) を得る。関数名はconfig rotations だが、configure するわけではないし、得られるのは回転状態を表す1個の値だ。引数でRotation型の変数のアドレスをわたすと、その変数に値がセットされると同時に、同じ値が戻り値としても返る。なお、サポートされている回転状態の一覧を調べる機能はないようだ。Xrandr.hに理論的に可能なすべての状態がマクロとして定義されているが、当然使えるものはハードによって異なるはず。どれが実際に使えるかを知るためには、実行時に試してみるしかないようだ。
Status XRRSetScreenConfig(Display *dpy, XRRScreenConfiguration *config, Drawable draw, int size_index, Rotation rotation, Time timestamp)
この関数で実際に解像度を変更する。XRRGetScreenInfo()と同じく、drawにはルートウィンドウを指定する。size_indexには、変更後の解像度を、XRRConfigSizes()の戻り値として得られた配列の添え字番号で指定する。rotationには、XRRConfigRotations()で得られた値をそのまま指定する (勝手な値を指定するとエラーになる模様)。timestampにはやはりXRRConfigTimes()で得られた値をそのまま指定する。この関数の戻り値はStatus型なのだが、値0が成功で、それ以外がエラー。
なお、この関数は、XRRGetScreenInfo()を呼んでからすぐに呼ばないといけないらしく、時間が経つとエラーになってしまうそうだ。そのためにtimestampを渡すのだ、とも言われている。そして、時間が経った場合は、(いったんメモリを開放したあと) XRRGetScreenInfo() からやり直す、という記述も見かける。しかし、関数が非0を返したときに、そのエラーの原因が、時間が経ったためなのか、他の理由なのかを区別する方法が不明。いったい、なんなんだ、この仕様は。

ネクソンジャパンの社長さん

http://www.4gamer.net/games/041/G004174/20071229003/

「日本のユーザの特性」の話題など。面白い。リンデンの人にも読んでほしいよ。誰か英訳してないかな。

最後のページに Second Life の話題も出てくるけど、わかってないなぁ、という感じ。自分でやらずに外から見ているだけだと、やはり「大手広告代理店」を中心とした方向性に支配されちゃいますよね。そういう意味で「一般誌」と同じ誤解をしているのでしょう。

ま、それはいいけど。

« 2007年12月 | トップページ | 2008年2月 »