debianでcapture

キャプチャーカードのインストール
NTSCを画像として取り込むために、キャプチャーカードをインストールした。カードはIODATA GV-VCP3/PCIを使用しました。以前にやっているので、それほど苦労しなかったが、moduleを組み込むようにして、必要なソフトをインストールして、permissionを変更して、終了。

echo "alias char-major-81 videodev" >> /etc/modprobe.d/video
echo "alias char-major-81-0 cx88xx" >> /etc/modprobe.d/video
echo "options cx88xx card=10" >> /etc/modprobe.d/video
aptitude install v4l-conf
aptitude install xawtv
mknod /dev/video0 c 81 0
chgrp video /dev/video0
chmod g+w /dev/video0

一番のコネクタに接続しているのに、なぜか二番のところで写る。不思議だが、まあ使うのには問題ないので良いだろう。

Read more...

プリンターの設定

PPD for Linux
長らく標準ドライバで動かしていたが、思い立ってプリンタの設定をした。使用するプリンタのPPDを探すのが一苦労なのだが、OKIの http://www.okidata.co.jp/support/unix/ppd.html に、Linux用のPPDを見付けたので、ダウンロードしてgunzipして適用してみた。KNOPPIXでの設定の仕方を見ると、JCLから%JCLにするように書いてあるが、とりあえずそのままでやってみた。うまくいかなかったらあとで変更しよう。 もう一台はFujiXeroxだったが、こちらもPPDが見付からなかったが、windows用のPPDをdownloadして、wineで展開したら、入手できた。

Read more...

perlとpythonとruby

スクリプト言語の比較
現在、pythonを少し勉強し始めたところだが、まだ哲学が分からない。今のところ、perlは楽に作る、rubyは楽しく書く、pythonは楽に読める、ということを重要視しているように感じている。例えば、簡単なループをするときには、perlだと

for($i=0;$i<10;$i++){print $i;}

となり、C言語から入った人には非常に分かり易い。一方、pythonだと

for i in range(0,10):
  print i,

となる。これ以外には書き方はほとんど無いでしょう。しかし、rubyだと

for i in 0...10 
  print i
end

が標準的な書き方でしょうが、

10.times{|i| print i}

でも良いし、

0.upto(9){|i| print i}

とも書ける。好きに書けるが、methodを知らないと何をしているのか分からなくもなってしまう。まあ、一長一短があるでしょうが、好きずきなのではないでしょうか。rubyは日本語が安心して使えるという利点もありますが。

Read more...

シェルスクリプト

rubyとsh
コマンドラインからのコマンドを実行する必要のある簡単なプログラムは、rubyで書くよりはシェルスクリプトの方が自然だと思うので、時々シェルスクリプトを使うのだが、文法がまだ覚えられない。今日は、 if then else fi while do done と、ファイルがあるかを調べるtest -fを覚えた。それから、前のコマンドが成功したときに実行するための&&と、失敗したときに実行するための||も知った。 あまり深く勉強するつもりはないが、シェルスクリプトをまともに書けるようになるのはそうとう先のことになりそうだ。

Read more...

rejectとdelete_ifとselect

rejectとselectはこれまで知らなかった。
rubyでarrayの処理にはdelete_ifをよく使っていたが、reject!の方が一般的な記述のようだ。当然rejectもあって、その逆もselectという名前であるらしい。「Rubyデスクトップリファレンス」を愛用しているのだが、rejectは配列の所に載っていたが、selectはEnumarableの所にあって、なかなか見付けられなかった。また、以前から欲しいと思っていたmethodであるmaxとかminとかも実はEnumarableにあった。これまでは、delete_if{|l| not l==0}のような感じで使っていたことも多かったのだが、selectを使うようにしよう。

2008/4/21追記 しかし、select!はない。

Read more...

sargeからetchへ

測定用のPCのOSをsargeからetchにした。
今回は二台目なので、ほとんど問題なくいったが、GPIBを入れるときに、シェルスクリプトを動かしたのだが、ソースをtarで展開するところがスキップされてしまったようだ。一行ずつコピーして実行したら動いたので、結局何が悪かったのかよく分からないけど。

Read more...

LANG変数

DebianのLANG
LANGの設定が日本語になっていて、うまく動かないので、それを解除しようと思ったが、なかなかどこで指定されているのか見つからなかった。.bashrcや/etc/profileを見ても無かったが、/etc/environmentで設定してあるのを見つけた。これをコメントアウトしたら、うまくいった。インストールのときに、決まってしまうのかと思うと、少し押し付けがましい気がする。

Read more...

大阪出張

デジットへ
新しく購入したPCを立ち上げていて気がついたのだが、プリンタポートが無い。確認を怠ったのが悪いのだが、なんとかしたい。パラレルポートはTTL出力で、いろいろなことに使えるので、いろいろと便利だ。マザーボードを調べてみると、ピンヘッダーは出ているので、これをD-subにするケーブルがあれば良いことが分かった。そこで、ケーブルを探すために日本橋へ。いろいろと探し回ったが、そのようなケーブルは見つからなかった。自作するかということで、デジットへ。出張中で半田ごてが手元にないので、フラットケーブル用のコネクタを購入して適当につないだら、あっさりと動作。ピンの番号はD-subのとピンヘッダのがずれることになるが、1番が一致するようにすれば良いようだ。ついでにいくつか玩具を購入。出張から戻ったら動かしてみよう。

Read more...

プリンターポートの設定

etchでプリンターポート
測定用のパソコンで、プリンターポートを使えるようにした。まず、双方向通信ができるように、biosの設定でEPPにした。次に、cupsysを組み込んでいると、lpを占有するようなので、これを開放する必要がある。rootでrmmod lpとすれば良いのだが、これを毎回するのも面倒なので、

echo '#! /bin/sh' > /etc/init.d/rmlp
echo 'rmmod lp' >> /etc/init.d/rmlp
chmod ugo+x /etc/init.d/rmlp
update-rc.d rmlp defaults 98

として、起動時にrmmodが自動的に行われるようにした。 そういえば、プリンターの設定をまだしていないな。まあ、あまり使わないけど。ppdを探すのが面倒だなあ。

Read more...

Macのバックスラッシュ

Macでは、yenとバックスラッシュが違うらしい。
昔、発見して知っていたのだが、またこのせいで時間を取られてしまった。プログラムでspecial codeを表すときによく使うので、注意が必要だ。

Read more...