2007/10/29

GV-MPEG2/PCI

このところ、ビデオキャプチャカードが気になっていた。
だからといって注目を集める、Monster XとかPV4が欲しいわけでもなく。
ハイビジョン画像をキャプチャしてもな。
ThinkPad X23だと間違いなくコマ落ちして、動画鑑賞どころじゃない。
ハイビジョンをキャプチャする目的っていうのは、いくつかあると思うわけだが、自分としては他のPCで見れないなら意味は薄い。
家のPCで見るなら、家のプラズマで見ればいいのだ。
録画保存してもあまり見ないし。
ということでGV-MPEG2/PCIを購入。
1980円也。
MPEG2でハードウェア圧縮する、キャプチャカードだそうで、若干の画質劣化がある。

こいつをFMVにインストールした。
スリムPCでLANとUSB2.0のカードでPCIが埋まっていたのだが、NICは無線LANをPCカードで刺しているので取り外し。
次いで上記のリンクからドライバを落としてくる。
さらにコントロールパネルでハードウェアの削除をしてNICを削除し、カード入れ替え。
この削除を忘れていて、何度か青画面を見る羽目になった。
GV-MPEG2/PCIはサイズが大きかったが、FMVに格納できた。
後はドライバを指定し、Readmeに従えばいい。

早速XBOXの画像を入力してみると、あっさりと表示された。
これでキャプチャができるようになった。
しかしこのカードで入力したままゲームをしてみると、タイムラグが発生した。
格闘とかスポーツ系だとそのままプレイするのは無理だと思えた。
ゆっくりしたゲームとかムービー、静止画のキャプチャに使うのがよさそうだ。

2007/10/24

Super RAIDENが壊れた

SEIKO製目覚まし時計「Super RAIDEN」はベルを2つ備える大型の目覚まし時計。
大学生の頃、朝は自分で起きると決めて購入、以来5年以上に渡って働いてくれた。
こいつのアラームはかなりの大音量で、家人はおろか隣家にも聞こえるという、すさまじいものだ。
さらに電子音ではなくベルなので、一発で飛び起きる。
周囲の人間に迷惑だという意識がそれを助ける。

このSuper RAIDEN、しばらく前からやや不調だったが、最近になってアラームが全く鳴らなくなってしまった。
このままでは朝起きるのに支障があるので、修理を決意。
ここを参考に分解してみた。
簡単に手順を書いてみる。

1.まず裏の時刻調整つまみを引っこ抜く。
2.裏面4箇所のネジを緩める。

これでOKだ。
が、上記のURLのように、スヌーズボタンが押されっぱなしだったわけではないことを確認。
コードのハンダが取れていたわけでもなければ、何もおかしな箇所が見当たらない。

素人がお手軽に直せるもんではないと判断し、メーカーサポートに連絡。
修理代3500円、返送代1000円の計4500円代引き払い。
もうSuper RAIDENは生産していないし、別に高いとも思わないので送付して修理することにした。

2007/10/22

pLaTeXで長い表を扱う

TeXで表を書くときはtableを使う。
が、長くなるとこれでは駄目になる。
表は文字として扱われるらしく、勝手にページがかわったりせずにどこまでも伸びていく。
具体的にどうなるかというと、ページの一番下まで伸びていき、そこで切れてしまう。
表をどこまでも幅広くすると、やがて紙面の右端を超えていくのと同じだ。
こういうのを回避して、表でページをまたぐにはlongtableを使えばいい。

\begin{longtable}
表の中身
\end{longtable}

ただしlongtableを使うにはあらかじめそれを宣言する必要がある。
\begin{document}の前に下記の1行を追加すればいい。

\usepackage{longtable}

2007/10/18

GIMPとgsとpLaTeX

pLaTeXで画像を扱うにはepsを使うのが一般的だが、eps形式というのはデフォルトでWindowsでは読めない。
そこでeps画像を作ったり、読んだりするためにGIMP 2をインストールした。
参考にしたのはここ
ちなみにIrfanViewでもプラグインがあると読めるようだ。

まず上記のページからGTK+2とGIMPの最新版を落としてくる。
が、これだけではepsは読めない。
TipsのGIMPでEPSやPDFを開くにあるように、Ghostscriptが必要だ。
これを落としてきてインストールする。

最後に環境変数を設定する。
gswin32.cをGIMPのフォルダにコピーするという方法もあるが、これだとGIMPでしかepsを扱えないままだ。
自分のモチベーションはpLaTeXでepsを使うということなので、これでは駄目。

設定する環境変数はPATH。
要はgsにパスを通してやればいいわけだ。
PATHにC:\gs\gs8.54\bin;C:\gs\gs8.54\libを追加し再起動したところ、dvipdfmxでepsを読み込んで、pdfを作ることができるようになった。

それとPythonでROOTを使うに関して。
CygwinだとCドライブを/cygdrive/c/と認識しているし、Cygwin内で環境変数を設定していたりする。
一方でWindowsとして設定している環境変数もちゃんとあって、それはCドライブは当たり前にC:となっている。
そしてROOTはCygwinから呼んでいるが、実際にはCygwinとは完全に独立になっている。
なのでWindowsで環境変数ROOTSYSも設定している。
そこらへんにうまくいかない理由があるようだ。

2007/10/17

PythonでROOTを使う

ROOTのコマンドはC++だし、マクロもC++で書くのだが、そういったものをPythonで書くことが可能だ。
PyROOTというもののようだが、何をもってPyROOTというのかは不明。
設定はここを参考にした。
やってみた環境はFC5+Python 2.4+ROOT 5.12。

まず単純に

export PYTHONPATH=$PYTHONPATH:$LD_LIBRARY_PATH

という1行を.bashrcに追加してみた。
ところがlibCore.soというのがない、というエラーが出てうまく行かない。
importの途中でエラーが出る。

この問題はすでにROOTのバグとして、ここに報告されている。
ついでに解決法も示されている。

libCore.soはPythonのモジュールでないので、sysでは読み込まない。
したがって、LD_LIBRARY_PATHに$ROOTSYS/libを加えればいい。
ちなみに$ROOTSYS/libにはROOT.pycがある。
具体的には以下の2行を.bashrcに追加すればいい。

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ROOTSYS/lib
export PYTHONPATH=$PYTHONPATH:$LD_LIBRARY_PATH

なおWindowsのROOTとPythonは.bashrcを直しても効果がない。
importでエラーが出てしまう。
libPyROOTを読み込めない。
上と同じように直してみたが、さっぱりうまく行かない。
こちらはROOT.pyを変えればうまく行くようだ。

2007/10/16

Python備忘録その2

5.例外処理について
関数定義の後、tryっていうのを入れればいい。
あとはexceptでエラーの種類を書くようにする。
具体的に書くと、hogeっていう関数の中でsyntax errorの例外処理をする場合、次のようになる。
なおインデントを入れていないことに注意、念のため。

def hoge:
try:
(プログラム本体)
except SyntaxError:
print 'Syntax Error!'

6.OSモジュール
osモジュールというのがある。
便利なので紹介。
これを使うにはまずインポートしておく必要がある。
任意のディレクトリのすべてのファイルやディレクトリについて処理をしたり、OSのコマンドをそのまま使えたりする。
たとえばカレントディレクトリを舐めるには次のようにすればいい。

import os
for dirpath,dirnames,filenames in os.walk("./"):

これでdirpathにはディレクトリのパスが、dirnamesには存在するディレクトリが、filenamesには存在するファイル名が入るので、それぞれについて任意の処理が可能だ。
OSのコマンドを使うには、osモジュールのsystemを使う。
temp.datをhoge.datにしたい場合は以下。

import os
os.system('mv temp.dat hoge.dat')

ちなみにこのosモジュールの使い方は、備忘録その1の4.に記載した書式に順じている。

7.クラスの定義
クラスの定義は関数と同じ。
簡単。

class hoge:

2007/10/09

Python備忘録その1

Pythonを勉強中。
覚えたことを何点か。

1.関数の定義はdefを使う。
hogeという関数でaを引数に取るとすると、

def hoge(a):

となる。
:がつくと、その後はインデントを増やす必要がある。

2.引数の数が分からないときは、*を用いる。
上の例だと、

def hoge(*a):

になる。
*aには任意の数の引数がタプルとして入る。

3.任意の数のキーワード引数をとる場合、**を用いる。
上の例だと

def hoge(**a):

のようになる。
**aには引数とキーワードのペアが辞書として入る。

4.hoge.pyの使い方
Pythonでプログラムを書くとき、長いと対話式が面倒になってくる。
そういうときはhoge.pyに書いて、それをインポートすればいい。

>>>import hoge

これでOK。
この中のhoge2という関数を使いたければ、

>>>hoge.hoge2()

とか打てばいい。

2007/10/05

Linuxで7zipを解凍する

あまり使用される頻度は高くないが、7zipという圧縮形式がある。
この形式はrar形式と同様に、Windows起源なので、Linuxでは解凍できない。
ちなみに余談だが、Lhaplusでも7zipを解凍できない。
何とかしてほしい。

Linuxで7zipを解凍できるようにするには、p7zipというパッケージを取ってくればいい。
ソースとバイナリがこことかここで配布されている。
ここからbz2形式を落としてきて解凍。
ちなみにbz2形式の解凍の仕方は以下。

$ tar jxf p7zip_4.55_x86_linux_bin.tar.bz2

これでできたディレクトリに移動し、rootになってから、

# ./install.sh

とやればいいだけだ。
これでLinuxでも7zipが解凍できるようになる。

ちなみに解凍にはxオプションが必要になる。
例えばhoge.7zを解凍するなら、以下のようになる。

$ 7z x hoge.7z

ちなみにeというオプションでも解凍できるようだが、動作がちょっと違うようだ。
他にもオプションがあるかもしれないが、解凍だけならxだけ知っていればOK。

2007/10/01

pLaTeXの設定

HDD交換後、初めてpLaTeXで文書を作成したらエラーが出た。
I can't find the format file 'platex.fmt'!

そこでエラーメッセージで検索。
ここに行き当たった。
デスクトップを検索したら、platex.fmtなるファイルはいらっしゃる。
そこでcygwinを立ち上げて、環境変数を見る。
TEXMFが.bashrcで指定されていたのでそれを修正。
最近は指定しないようだ。
昔のcygwinで使っていた.bashrcを流用したので、こんなことになっている。
が、これを修正しても直らない。
さらにTEMPとTMPが存在しないディレクトリを指定していたので修正したところ、platex.fmtを発見するようになってくれた。

これで大丈夫かと思いきや、またもエラー。
I can't find the format file 'jsarticle.cls'!
同じようにデスクトップを検索したら、今度はjsarticle.clsは存在しなかった。
そこで最新版のjsarticle.clsをここから落としてくる。
自分の環境ではpLaTeX用のフォルダはC:\cygwin\usr\local\share\texmf\tex\platexなので、ここにjsというフォルダを作って、解凍した中身をコピー。

これでpLaTeXが使えるようになった。