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に載っているのだが、自由度についてはマニュアルには記載がない。