2010年2月9日火曜日

樹海の入口にメモを書く

どうも、会社の先輩に結婚しないなんて人生損するよ?と言われること山の如しのQです、こんちには。


すいませんが先輩、あんまり幸せそうじゃないっす(笑)

さてさて、Xwindowという樹海に紛れ込みそうになっているので、とにかくメモを書いておきます。基本的な概念・構成は今から20年以上前に出来ていたわけで、当然ながらちょー巨大・カオスなプログラム、ライブラリと化しているわけです。
とんでもないところに足を踏み入れたもんだ・・・


1.Atom
サーバーとクライアント間の通信に使われる、識別子、らしい。Atom自体は単なる32bitの整数型でしかないが、これに
atom = XInternAtom(d,*name,only_if_exist)
とすることで、*nameの関連付けをすることが出来る.
dはDisplay、*nameは要するにAtomにつける名前、only_if_existはbool型で、よくわからんがとりあえずTrueの時は*nameのAtomが存在するときに値を返す、Falseの時は*nameのAtomが存在しないときに新しく生成してくれるらしい。

とりあえず、これを使えばクライアント-サーバ間やクライアントークライアント間通信を実現できるのだが、実際にはwindowのプロパティとかEventとかの設定をしなければいけない。ぶっちゃけ使うだけならなんとかなるのだが、この辺の深い内容は一度腰を据えてきちんと理解しないとカオスになりそうなので、今はここで留めておこう。




2.xで色を使う。
Colormap = DefaultColormap(Display,0)
デフォルトで用意されているカラーマップのIDを手に入れる。

XAllocNamedColor(Display,
Colormap,
(char*)color_name,
XColor *screen_def_return
XColor *exact_def_return)
Colormapを放りこんで、color_nameを指定すれと、exact_def_returnには本来指定されるべき色のデータ、screen_def_returnには使いたい色が使えなかった場合に近い色のデータが返される。要するにscreen_def_returnに代入される値を使う.




3.Linuxで文字のエンコードを変える。
システム的に変えるには
/etc/sysconfig/i18n
の内容をいじり、再起動。

その場で文字コードを変換するには
nkfというコマンドが使える。
echo hogehoge | nkf -e
とやるとEUCになる。
kccも似たようなことができるようなのだが、僕のPCではうまくいきません。
まあnkfが動くからいいけど。




4.古いRoomba
やっぱりROIが使えなかった。鬱。





なんてこと
これじゃあ只の
掃除機じゃん

0 件のコメント:

コメントを投稿