2008/12/21

タイトルに日付を入れない

TeXで\maketitleとすると、日付が入ってしまう。
\dateコマンドを書かなくても、デフォルトで作成日時が入るようになっている。
しかし書式等が決まっていて、日付を入れたくないときがある。

こういうときは、

\date{}

と書けばいい。
これだけで日付を消すことが出来る。

2008/12/07

TeXにpng画像を貼り付ける

TeXに画像を貼り付ける場合、普段はeps形式にしてから貼り付けるということをしていた。
これだと元画像から容量が急に大きくなったりする。
epsもirfanviewとかではデフォルトでは見れないし、使いづらい。
ちなみにGimp2.4.6でも、変換してepsを出力することは出来るものの、見ることが出来ない。

pngを直接貼るには、まずもとのTeXファイルでdvipdfmのパッケージを使う必要がある。
本文の上に、以下の行を追加する。

\usepackage[dvipdfm]{graphicx, color}

次にebbというコマンドで、画像サイズを指定するbbファイルを作ればいい。
これによって、hoge.bbというファイルが出来るが、Bounding Boxを指定するファイルで、わずか1KBである。
中には画像タイトル、作成に使ったソフト、画像サイズ、作成日時が1行ずつで入っている。
ファイルの数は減らないが、bbファイルは1KBでしかないので、容量としてはずいぶん稼ぐことになる。
このやり方で、jpgファイルもPDFも貼ることが出来る。

2008/12/05

グラフや関数の座標軸にタイトルをつける

ROOTで座標軸にタイトルをつけたい場合、ヒストグラムだと非常に簡単だ。
SetXTitle、SetYTitleがあるので、簡単に指定できる。
しかしこの関数は、TGraphとかTF1といった、グラフや関数を描画する際には使えない。
TGraphやTF1にはSetXTitleやSetYTitleが用意されていないためだ。

グラフや関数の軸にタイトルをつけたいときは、GetXaxisとGetYaxis、SetTitleを組み合わせて使う。
SetTitleは左上に出る、グラフや関数そのもののタイトルを与えるが、軸にタイトルをつけるのにも使用できる。
一度描画してからGetXaxisやGetYaxisで、軸を取ってくればいい。

TGraph* g1 = new TGraph(n, x, y);
g1->Draw();
g1->GetXaxis()->SetTitle("X-Title");
g1->GetYaxis()->SetTitle("Y-Title");

タイトルを中心に持ってきたり、タイトルのオフセットを変えたりする場合も、いちいち軸を取ってくる必要がある。

2008/11/30

ROOTあれこれ

グラフやヒストグラムを何かの関数でフィットするとき、パラメータを固定したいことがある。
そのときにはFixParameterを用いる。

TF1* f1 = new TF1("f1", "[0]*sin(x)+[1]*cos(x)", -0.1, 0.1);

としたとして、[1]のパラメータを0にしたいときは、

f1->FixParameter(1, 0)

とする。

それと上限値をつけるときグラフに矢印を描いたり、エラーバーが上下左右対称でない場合など、エラーバーをいじりたいときは、TGraphAsymmErrorsを用いる。
ただしこれを使ったグラフは、うまくフィットが出来ない。
フィット作業は行うが、変な結果を返してくる。
なおTGraphErrorsはきちんとフィットできる。

2008/11/17

Skype Out

Skypeから固定電話にかけるには、料金が発生する。
今回やむなく使用したのだが、その価格に驚いた。
ハワイから日本の固定電話にかけて、なんと\2.66/分。
3分で8円。
ちなみに日本の携帯だと、\17.5/分。
固定電話に関しては、非常に安い。
おまけにプリペイドカードと比べると、圧倒的に手軽だ。
音質等も問題ない。

2008/11/04

serving

食事を買いに行ったとき、"How many serving ~?"って聞かれた。
が、困ったことにservingの意味が分からない。
すると店員の人が、これがone serving、これがtwo serving、という風に見せてくれた。
そこでなんとなく、servingっていうのが、単位であることが理解できた。

調べてみると、servingっていうのは、1人分とか1杯って言う意味があることが分かった。
serveにも~人分である、という意味がある。
学校で習ったかもしれないが、覚えていなかった。

2008/11/01

サクラエディタでPython mode

Windowsで使うエディタはしばらく前から、サクラエディタだ。
このサクラエディタはプログラムのコードを書くとき、拡張子に対応して、強調キーワードに色付けしてくれる。
ところがCとかTeXとかは自動的にやってくれるのだが、Pythonのコードの場合、自動的に強調ワードに色付けしてくれない。
色付けしてくれるようにするには、以下のようにすればいい。

1.メニューバーの"設定">"共通設定"と選び、"強調キーワード"タブをクリックする。
2."セット追加ボタン"をクリックし、セット名をPythonとする。
3."インポート"から、python_2.5_kwdを選んで、OKを押す。
4.メニューバーの"設定">"タイプ別設定一覧"を選択し、設定されていない設定(設定17等)を選択して"設定変更"をクリックする。
5.設定の名前をPythonとし、ファイル拡張子にpyと入れる。
6."カラー"タブをクリックし、強調キーワード1にPythonのセットを選択する。
7.コメントスタイルはブロック型(F)"""~(T)"""、ブロック型(A)#~(Z)として、OKを押す。

これでPythonのコードに色づけしてくれるようになる。
さらにつける色を替えたり、色付けしてほしい単語を追加することも出来る。

2008/10/26

unix timeと時間の変換

unix timeを普通の時間表記に直したいときがある。
すばやく計算したいときは、ターミナルで以下のように打てばいい。

$ ruby -e 'p Time.at(1224928800)'

これはRubyのコマンドを、-eオプションで1行だけ実行させている。
逆に普通の時間をunix timeにしたりしたいときは、dateコマンドを使う。

$ date -d '2008/10/25 00:00:00' +'%s'

+'%s'の部分でunix timeの出力を指定している。
ちなみにdateはbashのコマンドだが、上のようにunix timeを普通の時間に戻すことは出来ない。
またPythonでもRubyと同じようにできないか調べたが、どうもヘルプを読んだ限りでは出来ないようだ。
1行だけのコマンドを実行するオプションがなかった。

2008/10/21

Xのシングルウィンドウモードその2

検索していたら、こんなページを見つけた。
実はこれまでにWindow Managerを起動すればいいことは分かっていたのだが、.xinitrcを作って、

wmaker &

と書き込んでも、Window Managerはすでに起動しているというエラーが出て、Xが立ち上がらなかった。
なので原因は別だと思っていた。

だけど実際にはWindow Managerは立ち上がっていないようだ。
よって改めてWindow Managerを立ち上げればいい。
それには立ち上がったxtermで以下のように打てばいい。

$ twm &

ただしこれはKDEに似ていて、自分はあまり好きじゃない。
もう1つの方法は、xtermで

$ wmaker &

とする。
UIが違うだけだが、自分はこちらのほうが好みだ。

Xlib: extension "MIT-SHM" missing on display "(hostname):0.0".

というエラーが出るが、特に気にする必要はなさそうだ。

2008/10/18

Cygwinのシングルウィンドウモード

CygwinではローカルでXを起動するコマンドとして、startxとstartxwin.sh、xinitの3つがある。
startxとstartxwin.shはシェルで、/usr/X11R6/bin以下にある。
xinitはxinit.exeという実行ファイルで、場所はstartxとかと同じ。
ちなみに自分が現在使っているCygwinのバージョンは1.5.25。

このうちstartxとstartxwin.shはマルチウィンドウモードで立ち上がり、xinitはシングルウィンドウモードで立ち上がる。
シングルウィンドウモードのほうが自分は好きなのだが、xinitだとウィンドウ内のウィンドウを移動できなかったりして、これはこれで非常に使いづらい。
そこでstartxからうまくシングルウィンドウモードを立ち上げられないかを調べた。

startxがマルチウィンドウモードで立ち上がるのは、30行目に

defaultserverargs="-multiwindow -clipboard"

というのがあるため。
この-multiwindowを取ってしまえば、シングルウィンドウモードで起動できる。
が、このままだとxinitとまったく同じ状態。
まだまだ使いづらいのだが、解決策は今のところ分からず。

結局xinitの設定の問題かもしれない。
startxはxinitrcとxserverrcを読み込んでいるので、ここを変えればいいのかも。

2008/10/10

PDF Knife

PDFファイルを編集するためのソフト第2弾。
PDF KnifeはPDFから好きなようにファイルを切り出せる。
開始と終了のページを指定すれば、そこを切り出せるほか、ばらばらにすることも出来る。

PDF Knifeはここから落としてくればいい。
インターフェースはこれ以上なくシンプル。
解凍すればすぐ使えて、レジストリも汚さないし軽い。

2008/10/07

cfitsioのサンプルプログラムをコンパイルする

cfitsioのサンプルプログラムが、ここにある。
注釈の数字をどけてから、コンパイルしようとして失敗した。

:undefined reference to `ffopentest'

とかいう風に、いくつかの関数が定義されていないというエラーが出る。

これは-lmをつけないで、sinとかがあるプログラムをコンパイルしようとしたときと同じエラー。
これを解決するには、-lcfitsioをつければいい。

$ gcc hoge.c -lm -lcfitsio -o hoge

とかでいい。

-lはリンクするライブラリを指定している。
mathとcfitsioにリンクします、という意味だ。

Cygwinにcfitsioをインストールする

ここからWindows用のcfitsioを落としてくる。
落としてきたファイルを適当に解凍して、Cygwinのgccでコンパイルするだけ。
そこで

$ ./configure

とやるとエラーを吐いた。
エラーの1行目は、

./configure: line 11: $'\r': command not found

という感じ。
エディタでconfigureを見てみると、10行目まではコメントアウトされているので、いきなりこけていることが分かる。
そこで11行目を見てやると、11行目はただの改行。
おそらく改行コードだろうと思って、LF改行に変更してやるとうまくいった。
ちなみにデフォルトでは、configureがあるディレクトリ以下にlibとincludeが作られてしまう。
prefixを使った指定はうまくいかなかったので、一連のファイルを/usr
/local以下に持って行く。

$ ./configure
$ make
$ make install

これでOK。
余分なファイルは、/usr/local/srcを作って、そこに突っ込んでおいた。

2008/10/03

Amazonクレジットカード終了

Amazonクレジットカードが今年の12/15をもって終了してしまうようだ。
自分のメインのカードとして使っていたのでショック。
Amazon内の買い物なら2%、その他の買い物でも1%のバックがあり、これは一定額たまると、ギフトカードとしてメールで送られて来ていた。
今まで何回かギフトカードを活用した。
年会費も無料だったし、入会特典の2000円バックもあった。

匹敵するカードとなると、P-oneカードくらいか。
12/15までにシティクラシックカードが送られてくるようだが、こっちは年3150円。
海外旅行保険がつくが、シティポイントは使い勝手が悪そうだ。
あと2ヶ月で代替のカードを探すしかないか。

2008/10/01

ROOTでのフィット結果の見方

ROOTでフィットしたとき、そのカイ2乗の値や自由度を求めたいとする。
たとえば、g1というグラフを用意し、g1をf1という関数でフィットしたとする。
このときカイ2乗と自由度を求めるには、次のようにすればいい。

double chi = f1->GetChisquare();
double ndf = f1->GetNDF();

これでchiにカイ2乗が、ndfに自由度が入る。

カイ2乗に関しては、マニュアルのFitting HistogramsのAccess to the Fit Parameters and Resultsに載っているのだが、自由度についてはマニュアルには記載がない。

2008/09/27

Linuxサーバへのインストールあれこれ

Linuxサーバにソフトをインストールした。
ここでサーバと書いたのは、root権限を持たないPCという意味だ。
root権限が無いので、/usr/localとかは触ることが出来ない。
ROOTのインストールはバイナリを持ってきただけなので、ソースを落としてきてコンパイルしたわけでは無い。
今回インストールしたのは、cfitsioとCCfits、gqviewの3つ。

まずcfitsioのtarをここから落としてくる。
解凍してできたディレクトリに移動し、configureを実行する。

$ tar xzvf cfitsio3100.tar.gz
$ cd cfitsio
$./configure --prefix =/home/chonan/

これで自分のホームディレクトリ以下にインストールするためのMakefileが出来る。
後はmakeしてやればいい。

$ make
$ make install

こうすると、/home/chonan以下の/libにlibcfitsio.aが、/includeにdrvrsmem.h, fitsio.h, fitsio2.h, longnam.hが出来る。

次にCCfitsをここから落としてきて解凍し、そこに移動する。

$ tar xzvf CCfits-2.0.tar.gz
$ cd CCfits
$./configure --prefix =/home/chonan/ --with-cfitsio=/home/chonan/cfitsio

README.INSTALLに従って、cfitsioの場所を指定している。
しかしこのようにすると、

configure: error: C++ compiler cannot create executables

というエラーを吐いて止まってしまう。
config.logというのを見ると、CCという変数が指定されていないために、C++のコンパイラが無いというエラーが表示されている。
そこでconfigureの中に

CC=gcc

の1行を追加してやったら、今度はMakefileが出来た。
実はREADME.INSTALLの上の方に、CCを指定するようにという記述があったのだが、こいつを無視していた。

$ gmake
$ gmake DESTDIR=/home/chonan/CCfits install

ここでもインストールする場所を/home/chonan/CCfitsに指定している。
デフォルトでは/usr/localにインストールするようになっている。
それで良ければ、DESTDIR=の部分は要らない。

gqviewも上に同じ。
ここから落としてくる。

$ tar xzvf gqview-2.0.4.tar.gz
$ cd gqview-2.0.4
$./configure --prefix =/home/chonan/
$ make
$ make check
$ make install
$ make clean

これで/home/chonan/bin以下に、gqviewの実行ファイルが出来る。

PDF reDirect

PDFを作ったり、編集したりするソフトといえば、Adobe Acrobatだが、Standardでさえ30000円以上する。
Adobe Acrobat 7の頃、Elementというのが出来て、PDF化とちょっとした編集が出来て10000円以下、というのがあったが、それ以降消滅してしまった。
ちなみにTeXはdvipdfmxでPDF化出来るし、Open OfficeとかStar suiteとかは直接PDFにエクスポートできるが、編集できない。
自分が求める機能は、PDF作成、結合+分割、ページの回転。
作ったファイルに広告が入ったりするものや、日本語フォントで文字化けしたりするのは論外。

純正品はお高いので、フリーでPDF化するツールを探すと、これが結構いっぱいある。
しかしたったこれだけの条件に、適合するソフトは、自分の調べた範囲では1つもなかった。
圧倒的に多いのが、プリンタとして動いて、PDFを作成するだけのソフト。
あるいは結合するだけ、分割するだけ、回転するだけのソフトがそれぞれある。
広告が入ってしまうのも結構ある。

色々と調べた挙句、自分にはPDF reDirectがベストだという結論に達した。
PDF reDirectは作成と結合が出来るソフトで、広告無しの日本語OK。
メニュー等の日本語化は出来ないようだ。

PDF reDirectはここから落としてくる。
インストールは言語を選択可能だが、日本語はないので英語。
実行すると、途中でWindowsでは認証されていないプリンタドライバを入れる許可を求めてくる。
これを許可しないで、もたもたと注意書きを読んでいたら、インストールに失敗した。
気を取り直し、再実行して、ドライバにもOKを押すと、インストール完了。

作成は印刷でプリンタにPDF reDirect v2を選べばよいだけ。
もっさりとだが、勝手にPDF reDirectのUIが立ち上がる。
画質、カラー、ページの回転、保存場所、ファイル名を指定できる。
日本語や全角数字もファイル名にしてOKで、暗号化も出来る。
保存場所はFoldersの中の好きなフォルダを選べばよい。

結合はPDF reDirectを立ち上げる必要がある。
プログラムから立ち上げ、Foldersで結合したいファイルの場所に行くと、Filesというところに勝手にPDFが読み込まれる。
これをドラッグ&ドロップでMerge Listに入れて、上と同様に画質やら何やらを指定し、Saveを押す。

これだけのことがフリーで出来るのは、自分が知る限りPDF reDirectだけだ。
デフォルトでFoldersが毎回デスクトップに戻ることと、結合するファイル名がもとのファイル名になっていること、いちいちプレビューを読み込もうとすることの3点が気になるが、おおむね満足。

2008/09/20

ROOTでのフィット

ROOTでは任意の関数で、任意のグラフやヒストグラムをフィットできる。
例として2次元ガウス関数で、読み込んだファイルをフィットしたいとすると、次のようになる。

double par[6];
f1 = new TF2("f1", "[0]+[1]*exp(-(x-[2])*(x-[2])/2/([4]*[4])-(y-[3])*(y-[3])/2/([5]*[5]))", 100., 200., 100., 200.);
f1->SetParameters(100., 500., 150., 150., 30., 30.);
g1 = new TGraph2D("hoge.dat");
g1->Fit("f1");
f1->GetParameters(par);

parはフィットした結果を格納するための配列。
まず、f1で2次元ガウス関数を用意している。
このときフィットで求める値は[n]の形で書く。
上の例だと、[0]がオフセット、[1]はピーク高さ、[2]と[3]が中心のxy座標、[4]と[5]がxyのσになっている。
その後の数字は、式を定義する範囲であり、何も書かないと、デフォルトでは0から1になる。
SetParametersでは初期値を決め、g1はhoge.datという、(x y 値)という形式のファイルを読み込んだグラフである。
最後のGetParametersでフィットの結果をparに格納している。

ROOTの軸あれこれ

ROOTでグラフを書くとき、軸を追加したり改変したりしたいときがある。
たとえばy軸は普段、上が大きく下が小さいが、これを逆にしたかったりする。
こういうときはTGaxisを使う。
たとえばy軸の上下を反転させる場合だと、次のようになる。

frame = new TH1F("frame", "", 10, -50, 1000);
frame->SetMinimum(0.0);
frame->SetMaximum(20.0);
frame->Draw("AB");
TF1 *f1 = new TF1("f1", "-x", 20, 0);
TGaxis *a1 = new TGaxis(-50, 0, -50, 20, "f1", 510, "-");
a1->Draw();

まず始めにframeという枠を指定している。
x座標は-50から1000までで、yは0から20である。
このときDrawのオプション"AB"は軸を描画しないことを意味する。
軸の表記が重ねがきになるのを防ぐためである。

次にf1という関数を作る。
-xで軸の値の分布の関数を作っていて、20と0はその範囲を示している。
TGaxisの始めの4つの数字は、元の図の中での軸の始点と終点の座標を入れる。
ここでは軸は(-50, 0)から(-50, 20)までを指定している。
510は軸の目盛りの分割数を意味していて、510がデフォルトだが、510個に分割するわけではない。
数値の詳細は不明だが、これを大きくすると分割数が上昇した。
最後の"-"は軸に書かれる数値やタイトルが軸のどちら側に来るかを指定する。
ちなみに軸のタイトルとかは
a1->SetTitle("");
とかやればいい。

これだけだとx軸には何も出ないので、新たに軸を書いてやる必要がある。

Cでlogを使う

logを計算したいときは、lnと10を底にしたlogの2つの場合が多い。
関数電卓ではlnというボタンとlogというボタンがあるので、理由もなくCでもそうだと思っていた。

実際には、Cではlogはlnに相当している。
つまり、

y = log(x);

とすると、yにはln(x)が入る。
では10を底にしたlogの関数はというと、log10という関数がそれだ。

y = log10(x);

とすると、yにlog(x)が入る。

2008/09/11

DV-410V

DVDプレイヤーを探して欲しいと頼まれた。
そこで性能と価格について調べた。
必要な機能はDVDの再生とTVへ出力できること。
それとケーブルの取り回しが楽なHDMI端子付きであればなおよし。
この条件で調べ、DV-410Vを買ってみた。
10300円@Amazon。

思っていたよりも奥行きが無い。
そして軽い。
なので省スペースだが、何かの台にするには、あまりよろしくない。
それと付属のケーブルが1mしかない。
1mだと大きいTVの場合、端子位置にもよるけど、かなり設置場所が限られる。
本体のボタンもやや小さめ。

HDMIケーブルが付属しないので、2mのを1380円@Amazonで購入して、実際にDVDを見てみた。
結論としては、俺基準だと画質的にはまったく問題なし。
ただ2画面表示(4:3)にしたときと全画面(16:9)とで、色が違うように見えたのがやや気になった。
アスペクト比が4:3のときのほうが、16:9よりも鮮明だったように思えた。
こいつはUSBとかに入れたDivXの動画とかも見れるし、CDも聞けるようなので、そこら辺は追々。

ファイルの行数を知る

今までファイルの行数を知るのに、wcコマンドを知らなかった。
仕方なくEmacsとかで開いていたが、やたら大きいサイズのファイルだとEmacsのバッファサイズを超えてしまって、開けなかったり、えらい時間がかかったりしてしまう。

$ wc -l hoge.txt

とすれば、行数が表示される。

2008/09/06

fitsのネガポジ反転

fits画像をネガポジ反転させたくなったのだが、Irfanviewでうまくいかないので調べた。
Irfanviewでは、読み込んで反転させるまではいいのだが、それをfitsで吐き出せない。
irafとかSDFREDとかでは出来るようだが、インストールとか設定が面倒だ。

自分の環境では、もっとも簡単なのはGIMPでやることだ。
画像を開き、メニューバーの色(C)>反転(V)で反転させることが出来る。
なお、おなじくメニューバーの選択(S)>反転(I)というのがあるが、こちらはうまくいかない。

2008/08/23

sprintf

これまであまり文字列をCで扱う機会が無くて、Cで文字列を合成するsprintfを知らなかった。
sprintfはprintfと同じ感覚で使える。
stdio.hをインクルードする必要がある。
ちなみに文字列はPythonで扱うと非常に楽で、結合したければ+で出来てしまうし、切り出すにはsplitが使いやすい。

#include <stdio.h>
char str[10];
char str1[5] = "Today";
char str2[2] = "is";
int month = 8;
int day = 23;
sprintf(str,"%s %s %2d/%2d\n", str1, str2, month, day);

このように書けばいいだけだ。
この関数のおかげで、strcpyとか、strcatとかの存在意義がよくわからなくなった。

Pythonでの時刻取得

PythonでもCと同様に時刻取得が出来る。
Cだと、time.hをインクルードして、gmtime()を使えばいい。
#include <time.h>
time_t t;
struct tm *ut;
time(&t);
ut = gmtime(&t);

こうするとtに、1970年1月1日からの秒が入る。
さらに構造体utに、UTの時刻の表示形式に変えて格納している。
PCのある地域のローカルタイムにするには、localtime()を使う。
これで年、月、日、時、分、秒、曜日、1/1からの日数、夏時間フラグが取り出せる。

基本的にはPythonも同じ。
timeモジュールをインポートして、gmtime()とすると、時刻を取ってこれる。

import os
from time import gmtime, strftime
year = time.gmtime()[0]
month = strftime("%b", gmtime())

gmtime()が返す時刻は9項目で、Cと同じく、年、月、時、分、秒、曜日、1/1からの日数、夏時間フラグ。
上では1つ目の出力をyearに入力している。
またstrftime()は時刻を入力し、その出力を所定の文字列で返す関数。
%bは省略形の月名(先頭大文字の3文字)を指定している。
他にもいろいろな形式を指定できる。

ちなみにbashでもdateと打つと、時刻を持ってこれる。

wget

wgetはコマンドラインから、URLを指定して、Webページを取得するコマンド。

$ wget (URL)

で持ってこれる。
ファイル名を指定したい場合は、

$ wget (URL) -O hoge.html

などとすればいい。

2008/08/13

ifの制御式

ソースを書いたり読んだりしていて、すぐに忘れてしまうので記述。

ifは制御式を評価して、それが非0なら、以降の文を実行するようになっている。
制御文が変数のみだった場合、その数値が非0なら、実行される。
0なら実行されない。

2008/07/23

pLaTeXとdvipdfmxのインストール

cygwinもofficeも無事インストール終了したので、pLaTeX関係。
1年前にもやったので、流れも要領も分かっている。

まずここからインストーラを落としてきて、/usr/localに解凍。
注意すべきは、落ちてきたexeファイルに実行権限が無いこと。
そのままだとアクセス権限が無いので、インストールできない。

$ chmod a+x *.exe

同様に標準インストールの20個のファイルを落としてきて、/usr/local/tmpに格納。

$ ./texinst757 tmp/

これで終わり。
要らなくなったtmp/を削除し、exeファイルはbinに格納、残りは消去。
ユーザーの環境変数PATHにC:\cygwin\usr\local\binを追加した。

これでtexファイルをコンパイルしてみると通らない。
jsarticle.clsが見つからないというエラー。
デスクトップ検索してみたが、見当たらないので、ここから落としてきた。
/usr/local/share/texmf/tex/platexにjs/というフォルダを作って、そこに解凍する。
これでコンパイルが通るようになった。

次にGIMPをインストール。
これでEPSをいじれるようになる。
GTK+2はGIMP 2.4になって、要らなくなった。
最後にGhostscriptをインストール。
日本語版はここから落とせばいい。
環境変数PATHにC:\gs\gs8.62\bin;C:\gs\gs8.62\libを追加する。

作業は以上。
これでplatexもdvipdfmxも復活。

2008/07/20

X23のACアダプタとHDD

一昨日からX23の様子が少し変だった。
発端はACでつないでいるのにバッテリ駆動だったこと。
といっても、バッテリはもうほとんど空っぽなので、電力はすぐ尽きてしまった。
とりあえずバッテリをはずしたりしてみたが、どうにも改善しない。
そこでACアダプタの入力側のケーブルをいじったところ、AC駆動になった。
しかし非常に不安定なままだった。
思えばここで気付いて、適切に対応していればよかった。

一昨日はそのままにしておいて、昨日朝にもう一度いじる。
この時点で、おそらくACアダプタの入力側ケーブルが断線しているであろうことに気付いていた。
しかし先にやってしまいたいことがあったので、ACアダプタを注意して固定しておき、X23を起動させた。
当然、状態は非常に不安定で、使用中に唐突に電源がOFFになるということがあり、そのたびに立ち上げていた。

こういうのを何回か繰り返した後、Windowsがうまく立ち上がらなくなってしまった。
XPのロゴは出るが、直後にブルースクリーン&再起動のループ。
セーフモードでも同じ。
HDDを抜いて、USB接続のケースに入れ、他のPCにつないだところ、システム領域が空だと認識されていた。
また入力のACは中の2本のうちの1本が断線しているのをテスターで確認した。

こうなってしまうと再インストールか、修復かしかない。
そこでACの入力ケーブル(400円也)を購入しつつ、ウルトラベースX2のある自宅に帰宅した。
まずCDから修復を試みたが、システム領域には見事に何も無く、どうしようもなかった。
そこでシステム領域をフォーマットし、そこに改めてXPをインストールした。
ウイルスバスターを入れ、Microsoft Updateを掛けて、アプリをいくつかインストールして、作業としては一段落。
あとはMicrosoft OfficeとCygwinの再インストールと設定が非常に面倒くさいので、今日以降に。

それにしてもドライバ類とかアプリを入れるのがますます簡単になった。
Lenovoのサイトから、ThinkVantage System Updateというのを落としてきて動かすだけ。
これで必要な分を自動で探してきてくれる。
前はいちいち確認して手で1つずつ入れていた。

2008/07/12

ウイニングイレブン2008のネットワーク設定

PS2のウイイレ2008ではネットワーク対戦が出来るようだ。
そこでネットワークケーブルを買ってきて設定してみた。
買ってきたのはカテ6eのケーブル。
ギガビットも10ギガも対応している。
端子の保護がついていて、5mで約1000円@ビックカメラ。

PS2の型番はSCPH-75000なので、専用ネットワークアダプタは不必要。
ルータとLANケーブルでつなげばいいだけ。
WE2008を立ち上げ、ネットワークを選ぶと、自分のネットワークの設定を打ち込む画面になる。
PPPoE不使用にし、IPを割り振り、ゲートウェイとDNSにルータのIPを入れる。
サブネットマスクは255.255.255.0。
次にPCからポート5738(UDP)を開く。
WE2008で決めたIPについて、ポートを開く設定にした。

作業はこれだけ。
設定の後のネットワークチェックで、ネットワーク接続が確認できた。
とりあえず今日はここまで。

2008/07/03

ROOTのgStyle

ROOTでヒストグラムを書いたり、グラフを書いたりすると、右肩に名前とか、平均値とかの情報が表示される。
デフォルトでそうなっている。
だが、この表示が鬱陶しくなるときがある。
TH1だとSetStats(kFlase);とか書けば消すことができるのだが、他の場合ではどうするのか知らなかった。

この設定をいじくるにはgStyleという構造体の中の、SetOptStatという変数を指定してやればいい。
ここによれば、セットできるパラメータは9つ。
9桁の数字は、尖度(k)、歪度(s)、ビン数(i)、オーバーフロー数(o)、アンダーフロー数(u)、RMS(r)、平均値(m)、データ数(e)、ヒスト名(n)の9つに対応している。
kとsとrとmは0-2の値、その他は0-1の値を取る。
0は表記せず、1は値の表記あり、2は値とそのエラーの表記ありという風になっている。
ちなみにデフォルトだと000001111になっているので、RMS、平均値、データ数、ヒスト名が記入される。
また000001111のうち、0以外の最大の桁の数字より左側の0は省略可能。
つまり000001111と1111は同じになる。
全てがゼロの場合、統計情報のボックスは消える。

例1)gStyle->SetOptStat(0); //統計情報ボックス無し
例2)gStyle->SetOptStat(11); //ヒスト名とデータ数

またコンターマップの色を指定するときも、gStyleの変数SetPalleteを指定する。
デフォルトは色使いのセンスがイマイチなので、

gStyle->SetPallete(1);

とかしてやればいい。

2008/06/28

タンジェントの逆関数

Cのタンジェントの逆関数atan(double)は-π/2からπ/2の値を返す。
しかしタンジェントは180度周期なので、360°で考えるときには、このままでは駄目だ。
そのため0°から360°の範囲で考えなくてはいけないときには、別途cosとかsinを見る必要がある。
atan2(double, double)はその点、-πからπまでの値を返してくれる。
どうせcosとsinが分かっていて、角度を知りたいときがほとんどなので、atanよりもatan2の方が使い易い。

ちなみに三角関数の逆関数が返す値の範囲をいつも忘れるのでメモ。
acosは-π/2からπ/2。
asinは0からπ。

それと角度を計算する時は単位に気を付ける。
大体、妙な動作をするときは決まって、度のまま三角関数を計算しようとしてしまっている。

2008/06/23

VMplayerのアップデート

yumでさまざまなアプリをアップデートしたせいで、カーネルもアップデートされてしまった。
そのせいでVMplayerが使えなくなってしまった。
これはかなり痛い。
/usr/bin/vmware-config.plを実行してみたが、途中でエラーを吐いて止まってしまう。

仕方が無くVMplayerをアップデートすることにした。
バージョンアップされていたので、アップデートしたら使えるのではないかと期待。
前と同じrpm版を落としてくる。

# rpm -Uvh VMware-player-2.0.4-93057.i386.rpm

でアップデート。
次いで、

# /usr/bin/vmware-config.pl

で設定。
デフォルトのまま、Enterを押していると、今度はOKだった。
これで今までのWindowsのイメージファイルが使えるようになった。

2008/06/20

ヒートシンクお掃除

FC5を入れているPCのCPUがやたら熱くなっていた。
そこでケースについていた壊れたファンを交換してみた。
これで冷えるだろうと思いきや、全く効果が無かった。
最近は常時60度前後で、何か重い処理をするとすぐに70度とかになる。
ヒートシンクに直接風を当てても冷えないということなので、ヒートシンクからの放熱に問題があると思われた。

そこでヒートシンクの上についている、CPUファンを取り外してみた。
するとファンとヒートシンクの間に綿埃が層になって挟まっていた。
さらにヒートシンクの薄い金属板の間にも埃が挟まっていた。

埃を圧縮空気で吹き飛ばし、PCの電源をオンにすると、驚くほど温度が下がっていた。
常時60度前後だったのが、45度前後になった。
これで問題なく今年の夏を越せる。

Firefox 3 続き

いくつかのPCで試したけど、Gmailから抜けるとき、おかしくなるのはThinkPad X23だけだと判明。
しかも必ずというわけでもなくて、問題なく抜けられることもある。
訳が分からない。
マウスジェスチャに関しては、All-in-One Gesturesのインストーラを書き換えると使えるらしい。
すぐに対応してくれても良さそうなものだ。

Linux版もFedora Core 5に入れようとしたけど、あえなく失敗。
GTK+のバージョンが2.10以降じゃないと使えないが、Fedora Core 5は2.8なので、GTK+をアップグレードしてくれと言われてしまう。
そもそもFC5にはもともとFirefox 2さえ入ってなかったし、ディストリ的にもう時代遅れだということか。

GTK+のアップグレードは面倒で試していない。
yumで簡単に出来るようなものでもなさそうなので、今のところFC5だけはFirefox 2で行く予定。

# yum update

ではうまく行かなかった。

余談だが、これでアップデートすると、Firefoxが2から1に戻されてしまった。
/usr/bin以下のFirefoxの実行ファイルを消して、Firefox 2の実行ファイルにリンクを貼っていたからだ。
なので後から直してやらないといけない。
yumは便利だけど、メジャーアップデートとかがあると面倒臭い。

2008/06/18

Firefox 3

本日(6/18)午前2:00から正式版がリリースされた。
Firefoxのサイトはつながりづらくなっているが、早速DLしてみた。
Windowsだとexe形式で落ちてくる。
落としてきたファイルを実行するだけで、非常に簡単にFirefox 2から移行できた。

インターフェースは多少変わったが、特に大きな変更はないという印象。
設定は引き継がれるし、ブックマークもそのまま。
気になったのは、これまでのアドオンが一部使えなくなったということ。
Skypeはそのまま使えたが、SageとAll-in-One Gesturesが使えない旨の警告が出た。
SageはFirefox 3に対応した1.4が出ていたので、それを使えば問題なかったが、All-in-One Gesturesは使えなくなってしまった。
マウスジェスチャが使えないと非常に不便だ。

速度はややスピードアップしたかなという感想。
GmailとかGoogle Docs & Spreadsheetsとかがサクサク動くことを期待していたのだが、やっぱりそこまでは速くならなかった。
X23のハード的な問題も絡んでいるのかもしれない。
食べログ.comとか、YouTubeの表示は結構速くなった。

1つだけ気になる点は、Gmailからのログアウト時の挙動。
Gmailからログアウトしようとすると、突然CPU使用率が100%になり、メモリの使用量が際限なく上がっていく、ということが起こった。
この現象は再現性があった。
これはGoogleからのログアウトでは起こらなかった。

大騒ぎすることもないが、今回のバージョンアップで全体的に使いやすくなったと感じた。
後はマウスジェスチャとGmailの問題が何とかなってくれればいいのだが。

2008/06/11

USBメモリを洗濯した

最近、USBメモリを買い換えた。
これまでは1GBのTS1GJF150というのを使っていたが、少し容量が少ないと感じることが増えたためだ。
そこで同じくTranscendのTS4GJFV30というのにした。
こちらは4GB。
Amazonで2580円也。

このTS4GJFV30をうっかり洗濯してしまった。
たまたま中には何のデータも入っていなかったのだが、データ以上にハード死亡は痛い。
ところが駄目元でPCに突き刺してみたら、何と認識した。
今のところ、データのコピー等にも問題無し。
嬉しい誤算。

2008/06/01

Solid Edge 2D Draftingでdxfファイルを扱う

Solid Edgeを使っていて、dxfファイルを開きたくなるときがある。
ところがこのとき問題がおきる。
デフォルトがインチになっていて、mmで書かれた図が拡大されて取り込まれてしまうのだ。
開発元がアメリカだからなのだろうが、こういった仕様は何とかして欲しい。
世界的にはmmだろう。
設定をいじってもうまく読めないので、配布元に連絡してみた。
そこで判明したやり方は以下のとおり。

1.まず[ファイルを開く]を用いて、dxfファイルをクリックする。
2.ダイアログボックスの[オプション]をクリックする。
3.[AutoCADからSolid Edgeへの変換ウィザードーステップ8の1]というウィンドウで[次へ]をクリックする。
4.[AutoCADからSolid Edgeへの変換ウィザードーステップ8の2]で単位をmmとし、[次へ]をクリックする。
5.[AutoCADからSolid Edgeへの変換ウィザードーステップ8の4-7]で[次へ]をクリックする。
6.[AutoCADからSolid Edgeへの変換ウィザードーステップ8の8]で[新規構成ファイルを作成する]を選択し、[コピー先]をクリックする。
7.[名前をつけて保存]で適当なファイル名をつけて、[保存]をクリックする。
8.[AutoCADからSolid Edgeへの変換ウィザードーステップ8の8]で[完了]をクリックする。

これで開けばいい。
7.で決めた設定ファイルが呼ばれるので、次からは特に指定する必要は無い。

2008/05/28

イイ話

GoogleSatTrackの作者の方が、NASAからスペースシャトルの打ち上げに招待されたそうだ。
ここでご本人が経緯とともに報告されている。

一読して、やっぱり人は人に認められたいもんなんだと改めて思った。
自分の存在が社会に肯定されるっていうのは、そりゃ嬉しいもんだろうなあ。
シャトルの打ち上げの招待状はそれが具体的な形になったもののように思えてならない。

2008/05/25

Cでのプログラムあれこれ

1つ目のTipsはガウス記号について。
ガウス記号を用いるのにどうすればいいのか、良く知らなかった。
そこでこれまでは、(int)(double x)みたいな書き方をしていた。
こうするとxが正だったら、小数点以下を取ってくれる。
ただし負だと期待した動作にならない。
ただ小数点以下を取ってしまうので、欲しい値よりも+1された値が返ってくる。
具体的には、例えば-2.8は-3になって欲しいのに、-2になってしまう。
なので、正か負かをあらかじめ考えておく必要があった。

実際にはfloor関数を用いればよい。
これはガウス記号とまったく同じ動作をしてくれるので、正負に注意する必要がない。
これは床関数といい、これとは反対に天井関数というものもある。
天井関数はceil関数を用いる。

2つ目はgccについて。
sinとかcosの三角関数を使うようなとき、gccでコンパイルしようとするとエラーを吐く。
これを回避するには、-lmオプションを指定すればいい。

2008/05/21

緯度と経度を求めるには

緯度や経度は普通気にする必要はないが、時々知りたくなったりする。
こういうとき、手軽に求める方法を見つけた。
ネタ元はここ

Google Mapを開き、経度と緯度を求めたい地点を地図の真ん中に持ってきて、[このページのリンク]をクリックすると、URLの中に入っている。
下6桁まで入っているが、そんな精度は普通要らない。
下2桁くらいの精度で求めたいときは、目の精度で十分。
URLは長いが、見てすぐにそれと分かる。

2008/05/17

MobileMeter

MobileMeterはノートPCのCPUとHDDの温度をモニターする。
仕組みはよく分からないのだが、Core Tempと違って、X23でも温度モニター可能。
その他、CPUのクロック数が変動している様も見ることが出来る。
が、X23で900MHz以上の周波数を返してくることがあったりした。
ちなみに上限は866MHz。

X23のCPU温度は60度程度、HDDは40-45度。
ノートだとこんなもんか。
VMwareのXPに入れてみたが、こちらはCPUのクロックのみモニターできた。

2008/05/07

XP SP3

SP3が公開になったので、VMWareで動かしてるXPに突っ込んでみた。
ちなみにProfessional。
1度目は失敗したが、2度目で成功。
ちなみにIE7を入れたままやると、IE6に戻せなくなるようだが、別にIEを使わないので無視。

HDDの使用量は5.35GBから6.61GBに増えた。
インストール前後で1.26GBも増えたということだ。
あまり大きな変化があるようには見えないのに、やたらと大きい。
HDD容量小さめのPC使ってる人だと、入らないんじゃないだろうか。
SSDとか、今はやりのEee PCとか。

2008/05/05

FC5その後

CPUを注意してモニターしていると、スクリーンセーバを表示しているとき、CPU使用率が100%になり、温度が70度程度まで上がることに気づいた。
そこでCPUに負担をかけないように、スクリーンセーバを真っ暗になるだけにした。
これで劇的な改善が見られた。
CPU温度は大体50-60度で安定するようになり、この状態でシステムも安定した。
CPU温度60度後半は危険水域で、これくらいでほぼ間違いなく熱暴走し始める。
もう少しマージンを取りたいのだが、PCの蓋を開けっ放しにしても効果が見られない。
モニターできているので、危なくなるとすぐにそれと分かるようになっただけだが、それでも幾分マシな状況にはなった。

2008/04/29

FC5でCPUとHDDの温度を監視する

FedoraCore5を使っているが、近頃どうしようもなくXの調子が悪い。
手始めに時計とかボリュームのアプリが落ち始め、連鎖的に落ちた挙句、最終的にXが落ちたり、あるいはそういう前触れなしに、いきなりXが落ちたりする。
前にディストリを入れ替えたが、そういえばそのときもXの不調が原因だったように思う。

そこでよくよく観察していると、CPUに大きな負荷がかかった時にXが駄目になっていた。
2つのディストリで同じような問題が発生したという事実を踏まえれば、これはハードの問題を疑わざるを得ない。
CPUの負荷を上げたときに落ちやすいことから、今の段階では、電源やメモリではなく、熱による暴走を疑っている。
そこでCPUの温度をモニターすることにした。

FC5でCPUの温度をモニターするには、GNOME Sensors Appletを用いる。
やり方はここここを参考にした。

まずyumでGNOME Sensors Appletとhddtempを持ってくる。

# yum install gnome-applet-sensors
# yum install hddtemp

次にhddtempを起動し、自分の環境に合わせて、HDDを指定する。

# hddtemp -d /dev/hda

さらに[デスクトップ]>[設定]>[他の個人設定]>[セッション]で、[自動起動するプログラム]にhddtemp -d /dev/hdaを追加する。
こうしておいて再度ログインすると、Hardware Sensors Monitorというのが、パネルに追加できるようになっている。
これでパネルに温度を表示できる。
このアイコンを右クリックし、Sensorsタブを見ると、動いているセンサーが確認できる。
自分の環境ではacpiの下にCPUという項目があり、これはデフォルトでONになっていた。
一方HDDのほうはONになっていなかったので、hddtempのプロパティで、Enabledにチェックを入れた。

今の段階では、アイドル状態でCPU温度が51度、HDDの温度は36度になっている。
今後、監視してみて、落ちるときの温度をみてみよう。

2008/04/25

cron

自動的にある時間ごとに実行していて欲しいプログラムがある。
このとき一定時間ごとに動くようにシェルを書くというのも1つの手だが、どんなきっかけでプロセスが終わってしまうとも限らない。
そういうのをターミナルから実行するのは、嬉しくない。

こういうときはcronを使えばいい。
時間間隔と実行して欲しいシェルを指定すると、あとは勝手に実行してくれる。
デーモンとして動いてくれるので、予後を気にする必要がない。

設定は非常に簡単。

$ crontab -e

と打てばいい。
こうすると、デフォルトのエディタで、設定ファイルが立ち上がる。
そこに例えば、

SHELL=/bin/bash
DIR=/home/hoge

0 1 * * * $DIR/hoge.sh

とか書いておく。
この例だと、1時間に1回、/home/hoge以下のhoge.shを実行してくれる。

デフォルトのエディタはFC5だとviだが、これはexportで指定できる。

export EDITOR=emacs

というのを.bashrcに足しておけばいい。

それと自分の環境では、シェルを実行するたびにいちいちメールが来るようになっていた。
これを回避するには、crontabに、

MAILTO=""

という1行を書いておけばいい。

ちなみに実行するhoge.shに、ROOTが入っている場合、hoge.shに環境変数の追加が必要になる。
自分の環境では、ROOTSYSとROOTDIR、PATH、LD_LIBRARYを付け加えると動いた。
それとファイルの場所はフルパスで指定する必要がある。

2008/04/19

bashからROOTのマクロを動かす

シェルからROOTのマクロを呼びたいときがある。
これには下記のように打てばいい。

$ root -r -b -l -q hoge.C("hoge.dat")

-qがROOTの実行後、シェルに復帰させるためのオプション。
さらにこの読み込むファイルを変数にするには、

$ root -r -b -l -q hoge.C(`printf 'hoge.C("%s")' $data`)

と打てばいい。
$dataはファイル名を別途入れる。

ここで注意する必要があるのは、"のところ。
ROOTのマクロでファイルを引数に取るには、"を用いる必要があって、'とかだとエラーを吐く。
printfのほうは"でも'でも問題ないが、ROOTのマクロは"である必要がある。

TGraph2DとTH2

x座標、y座標、値の3つが並んだファイルがあったとする。
このときこれを2次元的なコンターマップにしたいとする。

これにはTGraph2DとTH2のどちらかを使えばいい。
ただし両者の振る舞いはかなり異なる。
TGraph2Dは各座標の値の中間値を計算しているらしく、やたらと時間がかかるし、x座標が全て共通だった場合、つまり線のような入力だとエラーを吐く。
2次元のマップにならないと駄目なようだ。
一方TH2はヒストグラムなので、入力が実質線であろうと関係ないし、時間も短い。
状況に応じて使い分ければいいのだろう。

ROOTのマクロでファイルを引数に取る

ROOTのマクロに限った話ではないが、引数にファイルを取りたいとする。
ついでに存在しないファイルを引数に取ったときは、エラーを吐くようにしたい。
これを実現するには、以下のようにすればいい。

void hoge(const char* fname)
{
ifstream fin;
fin.open(fname);
if(!fin.good()){
cerr << "Can not open " << fname << "!\n";
return NULL;
}
}

fnameはファイル名、finがファイルのポインタ。

2008/04/01

flvファイルをWMPで再生する

まずffdshowを入手する。
適当に検索し、安定版を落としてきて、全てデフォルトでインストールした。
次にFlash Video decoderを落としてくる。
Program Files以下に解凍し、register.batを実行する。
最後にffdshowの設定で、FLV1を有効にした。
参考にしたのはここ
なおFLV Splitterは開発が終了しており、EasySplitterManagerは見つけられなかった。

2008/03/30

ファックス新調

自宅の電話機兼ファックスが壊れた。
しばらく前から通話中に音が切れたりしていたのだが、とうとう音が聞こえなくなった。
発信音さえ聞こえない状態。
ちなみにこちらからの音声は相手に聞こえている。
子機だと電話を受けれるし、親機もマイク自体は使えているので、単にスピーカーの故障だと思われた。

というわけでハンドセットの部分を外し、分解してみた。
ねじを一本外せばいいだけだ。
中を開けてみたのだが、目だった断線やショートした箇所は見つからない。
スピーカーを取り替えればいいだけだと思われたが、10年ものということで他にもガタが来ていることから買い換えることになった。
子機が1台あることと、コンパクトなサイズであること、インクジェット式ではないこと、普通紙タイプであることという条件で探した。
ファックスの使用頻度はせいぜい1ヶ月に1、2回といったところだ。
それと売り場で見て、子機の充電は無接点式がいいという条件を追加した。

買ってきたのはNEC製のスピークス SP-DA240(PW)という機種。
実際に店舗で見てみて、ブラザーの製品は全体的に大きかったので却下した。
シャープの製品は余計な機能がついているものが多く、そのせいで割高になっている印象を受けた。
最後まで候補だったのは、パナソニックのおたっくす KX-PW506DLおたっくす KX-PW507DL
この2機種に関しては、ファックス原稿を入れたりする部分のカバーのヒンジがやや複雑な形状になっていた。
一般にこういった可動部がまず壊れるので、構造がシンプルなほうを選んだ。
スピークスは単なる蓋になっていて、外れる以外の壊れ方がありえない。

設定は簡単で、単につなげばいいだけだ。
時刻調整をし、アドレス帳を編集する。
ちなみに新しいハンドセットを古いのにつないだら、あっさりと発信音が聞こえた。
通話の音質がやや変わったように思えたが、クリアなのでそのうち慣れるだろう。

2008/03/27

Ubuntuのネットワーク設定

Wubiで入れたUbuntuのバージョンが7.04だったので、アップデートした。
5時間以上かかって終了し、再起動するとネットがつながらなくなった。
調べるとIPが振られていないようだと気づいた。

Ubuntuでネットワークの設定がかかれているのは/etc/network/interfaces。
ここを見ると、

auto eth0
iface eth0 inet dhcp

の2行目がコメントアウトされていた。
ここのコメントアウトを外して再起動すると、無事ネットワークにつながった。
参考にしたのはこのページ

2008/03/25

Ubuntuのランレベル変更

Ubuntuの設定ファイルをいじってみて、FC5との違いに気づいた。
まず/etc/sysconfig/networkがない。
それと/etc/inittabがなく、ランレベル変更しようにも、どこをいじればいいのかさっぱり。

ググってみたところ、こことかここを発見した。
/etc/event.d/rc-defaultというファイルに、起動時の挙動が記述されているようで、まず/etc/inittabを見に行き、無いとデフォルトのtelinit2で起動するようになっている。
telinitの設定はsysv-rc-confというので変更できる。
だからsysv-rc-confを落としてきて、それでtelinitを設定し、ついで/etc/event.d/rc-defaultを変更すればいい。
inittabを書き直すという方法もあるが、何か別のトラブルの原因になるかもしれないので回避。

$ sudo apt-get install sysv-rc-conf
$ sudo sysv-rc-conf

でsysv-rc-confが立ち上がる。
この中の3のgdmとx-serverのチェックを外して終了。

$ sudo emacs /etc/event.d/rc-default

で/etc/event.d/rc-defaultを立ち上げ、21行目をtelinit 2からtelinit 3に直す。
これでCUIで立ち上がるようになった。

ちなみに今の問題点は半角全角キーが使えず、日本語入力が行えていない点。
ノートのキーボードなので仕方がないかもしれない。

Wubi

CygwinがXをうまく飛ばせないという問題が発生して、このところ困っていた。
Clipboardの設定に失敗してエラーが出ることは分かっていたが、エラーメッセージをググっても、対応策が見つからなかった。
Cygwinの再インストールも試みたが、あまりに時間がかかりすぎ、2度中断せざるを得なくなって以降、頓挫していた。

VMware Playerが楽そうだとも思ったが、設定が面倒でちょっと躊躇していたときに、Wubiを知った。
Wubiを用いると、非常に簡単にPCをUbuntuとのデュアルブートに出来る。
ウィンドウズで落としてきたファイルを実行し、ユーザーネームとパスワード、Ubuntuの容量を決めると、あとは全部勝手にやってくれる。
アンインストールもソフトウェアの追加と削除から簡単に出来る。
非常にお手軽だ。

Ubuntuは初めて導入するディストリだったが、基本的にFC5と変わらない。
一番大きな違いはrootが存在しないことだ。
なのでsuコマンドは使わない。
rootが実行するようなコマンドはsudoをつけて実行する。
それとyumの代わりにapt-getを用いる。
なのでEmacsをインストールするときは、次のように打てばいい。

$ sudo apt-get install emacs

アップデートはinstallをupdateにすればいい。
なおSystemのシステム管理から、アップデート・マネージャを起動することでも、アップデートは可能。
rootとds9はダメだが、sextractorとかもインストールできた。

このUbuntuからWindows側のファイルを見たり操作したり出来る。
My Documentは自分の環境だと、/media/host/以下に存在した。
こういうファイル共有がVmware Playerだと面倒だった。
非常に手軽にデュアルブートに出来る上に、お互いがファイル共有できるので、Cygwin並に使い勝手がいいと思う。

2008/03/21

sshとrsync

これまでバックアップはsshを使ったファイル転送によって行っていた。
sshはデフォルトだとディレクトリはコピーできないので、一度固めて送るということをしていた。
しかしこれだと差分のバックアップを取るとき、非常に面倒なことになる。
かなり大きなディレクトリがあったとして、その中身がちょっとしか変わっていなくても、全部バックアップして差し替えしなくてはならない。
これに対して、rsyncは差分バックアップを実現してくれる。
今後は、転送やリモートログインはssh、バックアップはrsyncということにしよう。

2008/03/20

Cygwinとds9

Cygwinを使っているとき、ローカルにfits画像をscpしてきてds9で見たい、ということがある。
あるいはfitsを見たいとき、Cygwinで何かをやっていたりする。
こういうとき、Cygwinとds9を同時に立ち上げたいのだが、この2つは同時には立ち上がらない。
Cygwinを立ち上げた状態で、ds9を立ち上げようとすると、タスクマネージャでは見えるのに、ウィンドウが立ち上がらない。

これはds9のローカルにあるcygwin1.dllが原因。
Cygwinは\cygwin\bin\cygwin1.dllを使っているが、同じcygwin1.dllがds9のローカルにも存在している。
理屈は不明だが、この2つがバッティングしてしまうようだ。
そこでds9側のcygwin1.dllを削除した。
するとcygwin1.dllが見つからない、というエラーを吐く。
ためしに\cygwin\bin\cygwin1.dllへのリンクをds9のローカルに作ってみたが、駄目だった。

が、cygwin1.dllが見えれば立ち上がりそうだったので、PATHを設定してみた。
システム>詳細設定>環境変数で、PATHに\cygwin\binを追加した。
するとあっさり解決。
これでCygwinとds9を同時に使えるようになった。

2008/03/12

ROOTでウィンドウを出さない方法

ROOTで解析をするとき、Cygwinとかでssh経由でXを飛ばそうとしてうまくいかず、Linux側のマクロが動かないようなときがある。
これを回避するには、ウィンドウを出さないようにすればいい。
ROOTの起動時のオプションで指定できる。

$ root -b

と打てばいいだけだ。

2008/03/07

統計の考え方

科学ではしばしば統計学を用いて、有意かどうかを議論する。
95%の信頼度で~である、とかいう言い方をよくする。
信頼度というのはConfidence Levelと訳され、95%信頼度は95%CLという書き方にもなる。

この95%の信頼度で誤解しやすいのは、95%の確率で正しいということと同じ意味ではないということだ。
それが真理か否か、それは神のみぞ知るところだから、そもそもの正しい確率というのは知ることは出来ない。
そうではなくて、95%信頼度というのは、20回に1回の偶然は認める程度の信頼度という意味である。
つまり95%の信頼度で確認しても、それは実は1/20の偶然によるものかもしれないわけだ。
20回測ると偶然にも1回起こるような、そんな頻度の話だが、それ以上確認しようがないので、それでよしとする。
開きなおりのような態度であるが、そこが人間の限界だから、仕方がない。
あとはその信頼度を上げる努力をするのみである。
信頼度を上げることで、その偶然の可能性を排除していく。

例を挙げる。
ある事象の観測を行ったとして、その分布をポアソン分布とする。
このとき観測された事象が0イベントだったとする。
するとポアソン分布だから、その確率pはp=exp(-λ)という式で与えられる。
この式のλは神のみぞ知りうる、真の期待値が入る。
ここで95%の信頼度を仮定すると、ある期待値λに対して、偶然0イベントが観測される確率は5%であると言える。
ここからλが推定できる。

pはある期待値λに対し、0イベントが観測される確率であるので、p<0.05であればよいわけだ。
これは簡単に計算可能で、p<0.05はλ>3にほぼ一致する。
つまり95%信頼度でλ>3であると言えることになる。

2008/03/06

ENELOOPの充電時間

単三のENELOOPを使っていて、先日充電した。
充電器はNC-M55。
これで4本を充電すると、空の状態から3時間40分もかかる。
携帯電話と比べるからか、やたらに長いような気がする。

ThinkPad X300

lenovoが2/26にX300の公式発表をしていた。
モノ自体は昨年から噂で聞こえていたのだが、とうとう大幅なモデルチェンジとなった。
13.3インチのワイド液晶(1440x900)、光学ドライブ搭載、64GBの1.8"SSDでバッテリ込みの重さが1.42kg。
おまけに薄くもなっている。
いままでのXとTの間をとるような位置付けだ。

X23は非常に気に入っているし使い倒すつもりだが、画面の狭さが最近気になるし、光学ドライブがないのも気になっていたし、SSDにも興味津々。
おまけに軽く、剛性が高く、薄い。
ウチのX23が勝っているのは、160GBというHDD容量だけだ。
欲しくなってしまったが、300000円超のお値段に手が出ない。

2008/02/29

Friio再販

コピーワンスを突き破るデジタル録画が出来ることで話題になった、Friioが本日(2/29)21:00より再販。
ソースはITMediaのここ
ヤフオクとかでは100000越えの値段が付いてたみたいだけど、それも今日までか。
ただ今回は前以上に殺到するんだろうな。
ページ、ダウンしたりして。

ただ前と状況が違うのは、Friioを自作レベルでほぼ再現できる手法が確立され始めている点。
いずれにせよコピーワンスだのコピー10回だのではなく、B-CASも廃止して欲しい。

2008/02/26

/etc/resolv.conf

ネットワークの設定変更のせいか、NFSのマウントが出来なくなっていた。
エラーメッセージは下記。

mount \hoge failed, reason given by server: 許可がありません

散々ローカルの設定を調べたが、問題はホスト側にあった。
ホスト側のPCの/etc/resolv.confにアクセス許可するホスト名が登録されている。
ホスト名とIPが変わったので、許可が出なくなってしまったわけだ。
これを修正後、再起動すると、無事マウントできた。

2008/02/25

CATVのSTB交換

自宅のCATVはこれまでアナログだったのだが、とうとうデジタルになることになった。
エアコンのダクトからケーブルを通すとのことだったが、テレビの信号強度が弱かったせいで、問題が複雑になった。
業者はまず自宅のTV出力端子の数と、その配線を確認しようとしていたが、この案を途中で断念。

代わりにインターネットのケーブルを用いることにした。
このケーブルは同軸だが、ネットワーク用だと思っていたら、周波数が違うだけで、TVのシグナルも流れているらしい。
ケーブルをネットワーク用とTV用の2分岐にし、それをネットワーク用モデムと新しいSTBにつなぐ。
新しいSTBはBD-V370というPioneer製。
ちなみに信号強度は上りだと100dBuVを上回ると弱いらしく、上りにもブースターを入れている。
流れで書くとすると以下。

CATV用ケーブル=>ブースター(下り用)=>ブースター用電源=>ブースター(上り用)=>STB(BV-370)=>(A,B)
(A)=>VHSビデオデッキ=>TV
(B)=>TV

なおこれまでTV端子からTV用とSlingBox用を分けていたが、今回からわざわざ分ける必要が無くなった。
IR制御が出来れば、TV端子を使用しないつなぎ方になるかもしれない。

2008/02/19

IEのダウングレード

IE7をIE6にダウングレードするには、コントロールパネルからプログラムの追加と削除を選び、IE7をアンインストールすればいい。
これだけでIE7はIE6に戻る。

しばらく前から、マイドキュメントを開こうとすると、「このページには、セキュリティの危険性がある可能性があります。続行しますか?」というウィンドウがでるようになってしまった。
これを消せるかもしれないと思って試したが、IE6でもきっちりと出た。
IE7にしたときに出るようになったと思うんだが、調べてみてもなかなか対処法が見つからない。
非常に鬱陶しいので、なんとかしたい。
ウィンドウの上にInternet Explolerと書いてあるので、なんか関係ありそうなもんだが。

Linuxのネットワーク設定

ネットワーク環境が変わり、ポリシーが変わると設定も変わる。
Linuxのホスト名、IP、ゲートウェイ、DNSを変更するには、次のようにする。
環境はFedora Core 5。

まずホスト名とIPは/etc/hostsと/etc/sysconfig/networkの2つを書き換える。
ここに今までのホスト名とIPが書かれているので、それを直す。
ゲートウェイは/etc/sysconfig/networkに書かれているので、そこのIPを直す。
DNSは/etc/resolv.confに書かれているので直す。
ついでに/etc/fstabでNFSの設定を書き換える。
これでシステム再起動。

これでいいはずなのだが、なぜかつながらなかった。
ホスト名は変わっているのが、ログイン画面で分かる。
まあDNSだろうとあたりをつけ、GUIを起動して修正。
DNSのIPを間違えたりしたが、それでも駄目。

まさかと思ってifconfigをやってみると、IPの変更が反映されていないことを確認。
結局GUIを使ってIPとゲートウェイの設定もしてやるとようやくつながった。
しかしGUIとCUIで設定が共有できないというのはおかしな仕様だ。

Core Temp

CPUのコアの温度をモニタしてくれるソフト、Core Temp
これでAthron 64 X2のコア温度をモニタしてみた。
ウィンドウでも見れるが、起動と同時にタスクトレーに数字が出て、コア1が赤、コア2が青で表示される。
アイドル状態だと、コア1が25度、コア2が20度程度。
iDeaSを立ち上げて、CPU使用率80%程度まで上げると、コア1は40度、コア2が35度程度になることが分かった。
最大許容温度は67度なので、まあ熱暴走なんてことにはならないだろう。
夏場に測ってみると、また違うのだろうが。

ちなみにこのソフト、Pentium IIIやらAthron XPは対応していないようだ。
X23ではCPUが非対応だという表示が出てしまう。
当時のCPUにはまだハード的に温度センサが実装されていなかったのだろう。

2008/02/09

iDeaSとNO$GBA

どっちもNintendo DSのエミュレータ。
本日の時点でiDeaSの最新Ver.は1.0.2.1、NO$GBAのほうは2.6。
ちなみにNO$GBAの$はキャッシュと読む。
両方で逆転裁判4をやってみた。

iDeaSの特徴としては、第一にやたらと重いということ。
Athron64 X2の3800でもCPUは常時100%使用だ。
日本語化が簡単な点と、クイックセーブが出来る点は○。
サウンドは音が一部変になる。
ポーズやストップの機能が実装されているが、これはかなり便利。
デフォルトの設定だとセーブできないが、オプションのセーブ形式からEEPROM 512kbitsを選ぶとセーブできた。
それとウィンドウを最小化できないのが気になった。

NO$GBAのほうはiDeaSよりもやや軽いが、それでも重い。
こちらは日本語化できず、理由は良く分からないが、今後の対応も望めないようだ。
発色が薄いというか、やや鮮やかさに欠けている点と、音が割れまくるのが欠点。
こちらはウィンドウを最小化できる。
セーブに関してはデフォルトでは駄目。
OptionsのEmulation Setupで、NDS Cartridge Buckup Mediaの欄をNONEからEEPROM 64KBytesに変更すればいい。
起動するたびに、この設定はリセットされるので、Save Optionsを押して、NO$GBA.INIというファイルを作っておくと、いちいち起動のたびに設定しなくてもよくなる。

途中で実際に息をかけるというのが出てくるが、こちらはPCにマイクをつないで息をかければいい。

2008/02/06

Thumbs.dbとdesktop.ini

画像の入ったフォルダを開くと、サムネイルをキャッシュするためのThumb.dbというファイルが勝手に出来る。
これはただのキャッシュファイルなので、削除してもいいが、面倒ならば作成されないようにも出来る。
ツールのフォルダオプションから表示を選択。
縮小版をキャッシュしないにチェックを入れればいいだけだ。

desktop.iniはアスキーのファイルなので、エディタで読むことが出来る。
これも勝手に作られるようだが、気にせず消していいようだ。

cygwin1.dll

普段、CのプログラムはCygwinのgccでコンパイルしていた。
出来た実行ファイルもCygwin上で走らせていたが、ふとアイコンをダブルクリックしてみて、実行できないことに気づいた。
「cygwin1.dllが見つからなかったため、このアプリケーションを開始できませんでした。アプリケーションをインストールし直すとこの問題は解決される場合があります。」
という表示が出る。
ググってみると、こんなページを見つけた。

$ objdump -p hoge.exe | grep -i '\.dll'

上のように打ってみて、cygwin1.dllが必要になっていることが確認できた。
これを回避するには、gccの引数として、-mno-cygwinをつければいいということなのでやってみると、あっさり解決した。
とりあえず.bashrcに以下の行を追加しておいた。

alias gcc='gcc -mno-cygwin'

GPU-Z

以前にCPU-Zについて書いたが、GPUに関しても同様のツールが出ている。
CPU-Zとは関係ないようだが、GPU-Zというものだ。
実行形式で配られているので、DL後実行すると、CPU-Zにそっくりの形でGPUに関する情報を見ることが出来る。
ちなみに実行後のValidationタブでSubmitを押すと、自分の情報を投稿できる。
表示されるIDをトップページで入力すればいい。

これをX23でやってみた。
搭載のATI Mobility Radeonは、AGPのx4に乗っかっていること、コアとメモリのクロックが166MHzであること、DirectXは7.0までしかサポートしていないことなどが分かる。
それにしてもコアクロックは最近のでも1GHz超えないわけで、CPUほど早くなっていないことに気づく。
それ以外のほうが重要なのかもしれないが。

2008/01/28

謎のマザボ4

起動できたのでBIOSを見てみると、CPUは667MHzではなく1GHzだったことに気づいた。
2箇所のスイッチが結局何を意味していたのかはよく分からない。
ちなみにグラボはMatroxのG45+MDHA32D/OEMという型番のもので、D-Subの出力が2つある奴。
メモリは256のほうがSEITEC製のチップ、128のほうが日立のチップ。

これでハードの構成と出自はほとんど完全に理解できた。
しかし運用面ではいまだに悩み中。
流用するHDDがないのもネック。
しばらく放置することで異議なし。

2008/01/27

謎のマザボ3

GA-6VXD7にPCスイッチのキットを取り付けた。
これに拾ってきたメモリを挿して、電源ケーブルをつなぎ、グラボを挿して、電源を入れてみるとあっさり起動した。
メモリ4枚はどれも問題なく認識されて、PC100の256MBx2とPC100の128MBx2でトータル768MB。
ということで無事に起動したはいいのだが、これからに関してのプランが無い。

仕事で使うPCは間に合っているし、自宅のPCもあるし。
デュアルCPUが生きるにはマルチタスクだが、そもそもCPUが遅い。
ワークステーション向きだが、そんなの扱いきれない。
Linuxでも仕込んで、ファイルサーバでも作るか。
いずれにしてもOSの他に電源、HDD、FDD、光学ドライブ、ケースが要る。
全部買うとそれなりの額になる。
いっそのこと売っぱらってしまうのがいいのかも。

2008/01/25

PC用スイッチ

PCのマザボにはLEDとかリセットとかスイッチとかをつなげる端子がある。
マザボの試験をしたりするのにこれをつなぐ必要があるのだが、スイッチを入れるためにケースを持ってくるのは面倒だ。
なので独立したスイッチを探してみると、セリングのひもつき君というのがあった。
が、これは高すぎた。

検索してみた結果、千石電商のページで「MB実験セット」というのを見つけた。
中身はパワースイッチx1、リセットスイッチx1、パワーLEDx1、HDD LEDx1、スピーカーx1。
100個未満だと230円/個。
メーカーはCOMON
しかし残念ながら在庫なし。

そこで同じ製品を扱っている店を探した結果、コンピュエースにたどり着いた。
こちらだと「LED・スイッチ 実験用セット」という名前だ。
こちらは210円/個。
在庫もあったので、早速注文。
3個買ったが、送料が同じ値段した。

とは言え、このスイッチは相当使い勝手がよさそうだ。
作るという観点の記事がITMediaにあったが、買ったほうが安い。
マザーボードのジャンクをいじるのにもいいし、PCケースなしでPCを組んだり出来る。

2008/01/24

謎のマザボ2

前回のエントリのマザボだが、時間がなくてまだ動作試験さえしていない。
ただ、マニュアルをちょろっと見たところ、このマザボはCPUとFSBを2箇所のスイッチと1個のジャンパで指定するようだ。
つまりこの設定を見ると、どんなCPUが載っているのか、クーラーを外したりしなくても分かる。

これを見てみると、載っているCPUはPentium IIIの667MHzであることが判明。
FSBは133MHz。
X23どころか、自宅で使っているFMVのCPUよりも遅い。
1GHzとかが2つ載っているとなるとやる気が出るのだが、いかんせん667MHzだとやる気が出ない。
どうしたものか。

2008/01/20

謎のマザボ

某所のゴミ捨て場で、PC一式分のパーツが捨てられているのを発見した。
見た目は特に問題なさそうだったので、AGPのグラボ、SDRAMのメモリ4枚、マザボを回収。
試してみたところ、グラボは動作が確認できた。
メモリはまだ不明。

一番の問題はマザボ。
GIGABYTE製であること、Socket370のCPUが2つついていること以外に情報がない。
乗っているチップの型番で検索したけど、うまくヒットしない。
八方塞だったが、価格.comのマザボのページで、GIGABYTE製のSocket370のマルチCPUマザボを探したら、3種類しかないことが分かった。
GA-6VTXD、GA-6VXD7、GA-6VXDR7-1。
このうちGA-6VXDR7-1はLANとグラフィックがオンボードなので違う。
残りのGA-6VTXDとGA-6VXD7をイメージ検索したところ、GA-6VXD7が正解。

GIGABYTE内のGA-6VXD7のページにドライバとかマニュアルがあった。
ちょこちょこといじった時点では起動できなかったが、マニュアルを見つつ、もう一度トライしてみよう。
もしマザボが死んでいても、CPUが生きていればFMVに転用することが出来るかもしれない。

2008/01/19

Alcohol 52%

Alcohol 52%はイメージファイル作成と仮想ドライブのソフト。
CDとかDVDからイメージファイルを抽出したり、それをマウントしたり出来る。
これを用いることで、イメージファイルを切り出して、HDD内に保存して持ち運ぶということが出来る。
日本語に対応していて、落としてきたインストーラを起動したときは英語だが、インストールした後、日本語化する必要が無いのもいい。
ここでフリーで配られている。
商用ソフトの機能制限版だと思われるが、これだけで十分だ。
Daemon Toolsよりもいいと思う。

2008/01/13

エミュレータ

少し調べてみたら、ほとんど全てのゲーム機にエミュレータが開発されている。
ちなみにエミュレータ自体は違法ではないらしい。
ROMを持ってきたり、ゲーム機からBIOSを引っこ抜くと違法になるのだろうか。
分からない。

PlaystationだとePSXeが最も有名で、かなり使いやすいようだ。
ただしこのePSXeは残念ながらBIOSを持ってくる必要がある。
一方Adri PSXはBIOSを内部に持っているので、わざわざ持ってくる必要がない。
ちなみにBIOSを内部に持っているが、ソフト本体のDLが著作権侵害なのかは不明。
こっちはメモリーカードをサポートしない。
これらはCDドライブにディスクを突っ込んで、ソフトを立ち上げると、そのままゲームが出来てしまう。
またどちらもISOイメージから読み込むことも出来る。

Game Boy AdvanceはVisual Boy Advanceというのが有名。
日本語化パッチも配られている。
ただし当然ゲーム用のROMが要る。

Nintendo DSのエミュレータもすでに何種類かある。
iDeaSとかは結構高度なスペックを要求する。
X23では動かなさそうだ。
こちらもROMを用意する必要がある。

そのほか、非常にマイナーなゲーム機とか、昔のゲーム機にもエミュレータは用意されている。
検索すると、いろいろな解説ページが出てくる。

すでに3世代目のPS3で、SONYは下位の互換をあきらめた。
つまりハードが滅びていくと、消費者のソフトウェアの資産はどんどんとごみになっていくことになる。
これをエミュレータで防ぐことが出来る。
互換とかに力を注ぐのをやめて、エミュレータで再生できるような形を模索したら、結構なニーズがありそうな気がする。

2008/01/09

バックライト切れの後日談

ThinkPadのバックライトだが、一度切れたものの復活し、現在に至るまで再発していない。
一時は買い替えさえも視野に入っていたが、とりあえず使えているから、それで良しとしている。

今回の事態の原因についてだが、冷陰極管が駄目になっていた場合、復活が説明できないので、冷陰極管が原因ではなさそうだ。
またインバータが駄目になっていた場合、こちらも復活はありえない。
ということで消去法から、フラットケーブルの接触不良が原因だったと推定している。
冷陰極管とかインバータほど深刻でも面倒でもないので、まあまた何かあったら対応すればいいだろう。
部品購入したとしても1000円もかからない。