2008年
4月
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30

setup diary

2007|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|06|08|11|
2015|01|02|03|04|05|06|07|08|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|07|08|09|10|11|

2008-04-02 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!はない。


2008-04-10 シェルスクリプト

_ rubyとsh

コマンドラインからのコマンドを実行する必要のある簡単なプログラムは、rubyで書くよりはシェルスクリプトの方が自然だと思うので、時々シェルスクリプトを使うのだが、文法がまだ覚えられない。今日は、

if then else fi

while do done

と、ファイルがあるかを調べるtest -fを覚えた。それから、前のコマンドが成功したときに実行するための&&と、失敗したときに実行するための||も知った。

あまり深く勉強するつもりはないが、シェルスクリプトをまともに書けるようになるのはそうとう先のことになりそうだ。


2008-04-15 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は日本語が安心して使えるという利点もありますが。

2008-04-21 プリンターの設定

_ 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で展開したら、入手できた。


2008-04-25 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
一番のコネクタに接続しているのに、なぜか二番のところで写る。不思議だが、まあ使うのには問題ないので良いだろう。

2008-04-29 gifアニメーション

_ ImageMagickでアニメーションをつくる

結晶をまわす絵を作りたかったので、convertで作ってみた。
convert -delay 10 -loop 0 hoge*.jpg temp.gif
delayの単位は10msで、アニメーションの速度を変えられます。loopでループの回数を設定しますが、0だと無限ループになります。このようなアニメーションがTeXに組み込めるようになると、プレゼンで使えるのに。でも、epsでアニメーションができるようになってからかな。