Windows の NetBeans のエディタ部分をアンチエイリアス表示する

PuTTYNetBeans のエディタのフォントとして http://mix-mplus-ipa.sourceforge.jp/preview.html の 14px を使っています。PuTTY では設定でアンチエイリアスを指定できるのですが、NetBeans ではそのような設定がありません。NetBeans のメニュー等にはアンチエイリアスをかけることなく、エディタ部分のみにアンチエイリアスを掛けるにはどうすれば良いでしょうか。

設定

Java で小さいフォントにはアンチエイリアスを掛けない設定があるようです。コマンドライン環境変数で指定できるようです。

"gasp" の部分は他の指定が可能だそうです。

awt.useSystemAAFontSettingsの取りうる値
off アンチエイリアスを行わない
on アンチエイリアスを行う
gasp 小さい文字ではアンチエイリアスを行わない
lcd サブピクセルアンチエイリアス
lcd_hrgb サブピクセルアンチエイリアス 横方向RGB
lcd_hbgr サブピクセルアンチエイリアス 横方向BGR
lcd_vrgb サブピクセルアンチエイリアス 縦方向RGB
lcd_vbgr サブピクセルアンチエイリアス 縦方向BGR

ffmpeg で flv を wmv に変換して docomo FOMA P-03A で見る

docomo FOMA P-03A では以下の形式の "PC動画" を再生することができるそうです。

  • 映像コーデック: Windows Media Video 8〜9
    • WMV8: 768kbps以下かつ352x288以下
    • WMV9: 2Mbps以下かつ800x480以下
  • 音声コーデック: Windows Media Audio 2〜9、384kbps以下

FLV 動画を CentOS 5 上で WMV 動画に変換してみます。DAG リポジトリCentOS 5 向け ffmpeg が用意されています。対応している変換形式は

$ ffmpeg -formats | grep "Windows Media"
(略)
 DEA    wmav1           Windows Media Audio 1
 DEA    wmav2           Windows Media Audio 2
 DEVSD  wmv1            Windows Media Video 7
 DEVSD  wmv2            Windows Media Video 8
 D V    wmv3            Windows Media Video 9

Windows Media Video 9 のエンコードに未対応のようですので、Windows Media Video 8 と Windows Media Audio 2 の組み合わせでエンコードしてみます。以下の例では、音声は128kbps、映像はcif(352x288)、200kbpsに設定しています。

$ ffmpeg -i hage.flv -vcodec wmv2 -acodec wmav2 -ab 128k -ac 2 -b 200k -s cif Out.wmv

micro SD の PRIVATE/DOCOMO/MOVIE に入れてやると P-03A で再生できるようになりました。

Fedora 12 をクリーンインストール

何回もインストールするわけではないので、インストール用 CD/DVD を作成せずに済む方法をメモしておく。

手順

  1. vmlinuz, initrd.img をダウンロードし、grub.conf を書き換えて起動できるように設定。

とりあえずこれでネットインストールできるようになる。Fedora のミラー一覧(i386)は以下を参照。

今回は以下を利用した。

ネットインストールではなくて、Fedora-12-i386-DVD.iso を読みたかったが、なぜか失敗したので断念。

安全かつ手軽に svn+ssh

SubversionSSH 経由で使う場合、パスフレーズの入力が厄介です。だからといって、パスフレーズなしの鍵を使って SSH ログインできるようにしておくと、秘密鍵の盗難が即アカウントの奪取に繋がり危険です。

安全性をある程度維持しつつパスフレーズ入力の煩雑さを回避するには主に2つの方法が知られています。

  1. SSH のエージェントを使う
  2. Subversion 接続時のみパスフレーズなしの SSH 秘密鍵を利用する

ここでは 2. の方法について説明します。後述しますが、実際のところあまり安全とはいえない場合もあるので、限られた環境での運用にとどめて置くことが肝要です。

以下で、サーバとは Subversionリポジトリがおいてある計算機、クライアントとはサーバへアクセスする計算機とします。

クライアント側での準備

クライアント側にログインし、クライアントからサーバへ SSH 接続する際に利用する鍵ペアとは別に、新たに1つの鍵ペアを生成します。パスフレーズはなしにします。$HOME/.ssh/id_rsa_svn, $HOME/.ssh/id_rsa_svn.pub を作成したと仮定します。

サーバ側での準備

サーバ側で、クライアントの公開鍵を $HOME/.ssh/authorized_key ファイルに追加します。その際、以下のように公開鍵(ssh-rsa AAAA...の部分)の前にいくつかの設定を付け加えておきます。すべて1行で記述します。

command="/usr/bin/svnserve -t",from="iii.jjj.kkk.lll",no-port-forwarding,no-agent-forwarding,no-X11-forwarding,no-pty ssh-rsa AAAA...(略)

付け加えた設定のうち、最初の2つの機能は以下の通りです。

  • command="/usr/bin/svnserve -t" を指定することで、当該鍵ペアによるアクセス時にサーバ側で起動できるコマンドを svnserve に制限します。秘密鍵を盗まれた場合にシェルの奪取を回避できます。
  • from="iii.jjj.kkk.lll" にクライアントのドメイン名(ワイルドカード併用可)もしくはIPアドレスを指定することで、他の計算機から当該鍵ペアを利用してサーバへアクセスすることを禁止できます。

上記のようにサーバで実行できるコマンドの制限と接続元の制限を行っても、クライアントがクラックされた場合は Subversion で管理しているリポジトリの内容が漏洩したり改変される可能性があります。十分に注意して下さい。

クライアント側から接続確認

環境変数 SVN_SSH に以下のように設定します。クライアント側のログインシェルが bash の場合、$HOME/.bashrc あたりに書いておくとよいかも知れません。

export SVN_SSH="ssh -i $HOME/.ssh/id_rsa_svn"

クライアント側で svn+ssh できることを確認します。

svn ls svn+ssh://svnserver/path/to/svnrepos/

クライアント側で以下のコマンドを実行し、サーバ側で svnserve 以外のコマンドを実行できないことを確認します。

ssh -i $HOME/.ssh/id_rsa_svn svnserver
ssh -i $HOME/.ssh/id_rsa_svn w

CRTモニタの横線

まだ使えるから、という理由でCRTモニタを使っていますが、複数の白い横線が入るようになりました。複数なのでダンパ線とは違うようです。

調べてみると、帰線というもののようです。

モニターに線が - BIGLOBEなんでも相談室

CRTのモニターで、わずかに斜めの横線が何本も画面にはいるのだとすると、それは帰線がでているのかもしれませんね。
そうだとすれば、モニターの BRIGHT 設定を少し下げると直ります。

http://eclub.eizo.co.jp/lab/2005/11/crt3.html

この戻りを「水平帰線」といい、aからbの走査より速い走査となり、目には見えない。走査がxまで達すると1画面が完成し、aへ戻り、また同じ走査を繰り返す。

モニタの BRIGHT を下げたところ白い横線は気にならなくなりましたが、モニタの経年劣化のせいか少し暗いです。

Windows 7 RC は製品版へのアップグレードインストールができません

CNET Japan の記事 によると、Windows 7 RC からは Windows 7 製品版にアップグレードインストールできないようです。

Windows | Official Site for Microsoft Windows 10 Home & Pro OS, laptops, PCs, tablets & more

When you install the final version of Windows 7, you'll need to do a clean installation. So plan on backing up your data then reinstalling your applications and restoring your data.

場合によっては注意が必要です。

awk で配列を使う場合の注意点

awk の配列の添え字は数値と文字列の両方が使えますが、バグの元になることがあります。例えば、下記コードは配列の添字に数字を使う場合ですが、期待通りに動かないことがあります。

BEGIN {
  NumDataX = ENVIRON["NUM_DATA_X"];
  NumDataY = ENVIRON["NUM_DATA_Y"];

  for (i = 0; i < NumDataX; ++ i) {
    for (j = 0; j < NumDataY; ++ j) {
      data[i,j] = 0;
    }
  }
}
{
  a = $1;
  b = $2;
  data[a,b] = $3;END{
  for (i = 0; i < NumDataX; ++ i) {
    for (j = 0; j < NumDataY; ++ j) {
      printf "%d %d\n", data[i,j];
    }
  }
}

配列 data[a,b] の添字を $1, $2 から求める部分については、下記のように明示的に数値に変換する必要があります。

a = int($1);
b = int($2);

これと同様に、添字に文字列を使う場合には数値が混入しないようにしなければなりません。

配列を使っていてうまく動かない場合、awk コマンドの引数に --dump-variables を指定することで、利用している変数および配列の一覧を awkvars.out というファイルに出力することができます。このファイルには、変数については型と変数値が出力され、配列については要素数が出力されます。上記の例では、配列 data の要素数は NumDataX * NumDataY となっているかどうか確かめることで、問題を発見することができます。