uim-anthyで句読点を”,”,”.”に

etchでuim-anthyを使っているので句読点を変更.
~/.uimを作り,以下のように記述する(ただしeuc-jp).
ログインし直し反映させる.
(require-module “anthy”)
(define ja-rk-rule
(append ‘(
(((“,”) . ()) (“,” “,” “,”))
(((“.”) . ()) (“.” “.” “.”))
)
ja-rk-rule))
参考:Anthy wiki

etchへ移行開始

メインマシンをDebian etchにする.
インストールは問題なく終了.
LCD解像度の設定が出てこなくて,起動後にxorg.confを書き換えましたが,それだけでした.
KDEも3.5になって,見栄えがすっきりしてやや速くなった感じです.
FoxyTunesでamarokがplayer一覧に出てこないのが?
半透明化ですが,
「コンポーネント マネージャがクラッシュ…」とエラーが出て使えていません.
ドライバが必要かもですが,3年前のマシンでnVidiaもon Boardなので???
くやしいのでメニューパネルだけ半透明にしました.

C1VJでフルスクリーン再び

C1VJにetchをインストール.
woody以来,久しぶりに1024×480表示できました!
atiのドライバも修正されたようですね.
但し,grubのインストールで失敗します.
替わりにliloを入れましたが,
これも久しぶりなのでwin2kとのデュアルブートの方法を忘れてしまいました.
とりあえず,家ではアンプにつなぎplayerにして使う.
ていうか,amarokを直接 or VNC経由で使うだけです.
これで,ケータイからコントロールできたら楽なんだろうけど,
iアプリでアンプのON/OFF/volume Up/Down,
C1VJのプレイリストのコントロールができれば…
しかし残念ながら,C1VJには赤外線センサがありません.
グローバルネット経由で,ってのも無駄っぽいしセキュリティが心配.

etch 日本語入力

etchのデフォルトuimで日本語入力できない.
uimの設定を見てみると,日本語がない.
apt-get install uim-anthy
すると,uimの設定/全体設定/入力方式の利用準備/編集に
「Anthy」が無効の欄に出てくる.
これを有効の欄に移し,ついでに利用しないものを無効の欄へ移動.
これで,uimでAnthyを選択でき,日本語入力ができる.

etchへ移行の準備

sargeがstableになって間もないですが,
debianは若干他のdistributionに比べ古っぽい感じ.
ということで,次期stable候補のetchへ移行の準備です.
netinst-CDを焼いてインストールしてみます.
インストールは更に簡単に,短時間になってる模様.
で,軽く触ってみたところ,
・文字コードがUTF-8になってました.
・amarokでmp3再生できました.
・日本語入力が???中国語やハングルしか入らない?
いろいろありそうですが,KDEも3.5になってたりとよさそうですね.
しばらく遊んでみて,ファイルサーバから換装(?)しようかしら.
外向けサーバにはまだ不安かも.

構造体のバイトアライメント

linuxへの移植中に?な経験.
次の構造体なんですが,挙動がおかしい.
typedef struct tagBITMAPFILEHEADER {
  WORD bfType;
  DWORD bfSize;
  WORD bfReserved1;
  WORD bfReserved2;
  DWORD bfOffBits;
} BITMAPFILEHEADER;
ファイルに保存してみると,bfTypeとbfSizeの間に2byteの空白ができてます.
色々と調べてみると,gccでは(?)x86では4byte毎に区切って構造体などを配置するようですね.
バイトアライメントというらしい.
VCと同じようにバイトアライメントを明示的に2byteにするには,
#pragma pack(push, 2)
typedef struct tagBITMAPFILEHEADER {
  WORD bfType;
  DWORD bfSize;
  WORD bfReserved1;
  WORD bfReserved2;
  DWORD bfOffBits;
} BITMAPFILEHEADER;
#pragma pack(pop)
または,次のように間を詰めるように指定すればok.
typedef struct tagBITMAPFILEHEADER {
  WORD bfType;
  DWORD bfSize __attribute__ ((packed));
  WORD bfReserved1 __attribute__ ((packed));
  WORD bfReserved2 __attribute__ ((packed));
  DWORD bfOffBits __attribute__ ((packed));
} BITMAPFILEHEADER;
bfReserved1以降の __attribute__ ((packed))は今の場合は必要ないですが.
参考:Using and Porting the GNU Compiler Collection (GCC) – C 言語ファミリに対する拡張機能

gcc と文字コード

gcc 3.4.0以降では,ソースやバイナリの文字コードを指定できる.
–input-charset=cp932 –exec-charset=cp932
SHIFT-JISの場合は,cp932で指定する.
Windowsのプログラムをlinuxでも動かせるように作業していて,
メインターゲットをdebian sargeにと思っているたのですが,version 3.3.5でした.
まぁ,文字コード変換のスクリプトをかませばいいのですが.

docomoのケータイ

普段はauのW42Sを使っているのですが,実は一月前からdocomoのケータイでも遊んでます.
SO902iWP+
ソニエリの防水のアレです.
充電完了するとVAIOと同じく「バッテリーの充電が完了しました.」
って言うんですよ.
最初に聴いたとき笑いました.
というわけで,最近は寝る前にW42SとSO902iWP+で遊ぶのが日課.
これまであまり積極的に触ってなかったせいか,初めて使う機能も多々あります.
TVリモコンを使ったり,FMラジオを聴いたり,とか.
今日は初めてSO902iWP+でEdyを使いました.
あと,「ガーネット」をSO902iWP+で聴いてみたり.
あと,docomoで契約した時にはW42SからSO902iWP+へアドレスコピーできませんでしたが,
赤外線全件転送であっさり送れました.
細かいところまでチェックしてませんが,おおよそ大丈夫でしたよ?
もう軽快電話とか必要ないかな?