半年経ってまだバグが残っていた

ubuntu13.04のimpressive
プレゼンをしないといけないということで、impressiveを起動しようとしたら、ubuntuをupgradeしたせいで動かなくなっていた。調べてみたら、/usr/bin/impressiveの186行目の

import TiffImagePlugin, ...

from PIL import TiffImagePlugin, ...

に書き換えると良いらしい。最初はindentを無視して書き換えたら、エラーが出て、pythonはindentが重要なのを思い出して書き直したら、うまく動くようになった。これでプレゼンができるようになった。

Read more...

ubuntuのアップグレード

遅ればせながら、13.04へ
ノートで使っているubuntuが12.10だったのだが、ようやく13.04にした。そろそろサポートが切れる気がしたので。lubuntuだからか、それほど変化した気がしないので、良い感じである。パッケージの構成が一部変わっているので、動かないアプリケーションがあるかも知れないので、しばらく使って様子をみよう。

Read more...

メーリングリストサーバー

macからUNIXへ
現在研究室で運用しているメーリングリストのサーバーを入れ替えたいと思って調べているが、なかなか良いソフトが見つからない。現在はMac上でMacjordomoというソフトを使っているが、これをUNIX上のシステムで動かせるようにしたいのだが。 UNIX上で動くものとして、Mailmanやquickmlを試してみようとしたのだが、メールサーバも同じマシンにあることを想定した使い方が主なようで、別のマシンがメールサーバーになっている場合の設定が分からなかった。 quickmlはrubyで書かれているようなので、ソースを読めば使い方はわかる気がするが、長いと面倒だ。

Read more...

raspberry piでwebサーバー

apache2のCGI
現在PCで動かしているWebサーバーをraspberry piで置き換えて、コンパクトにしようと思い、インストールしてみた。apache2とlibapache2-mod-rubyをインストールして、rubyでCGIを動かせるようにするまでの設定である。まず、

/usr/sbin/a2enmod userdir
/etc/init.d/apache2 restart

として、ユーザーのディレクトリを見えるようにする。次に、 /etc/apache2/mods-available/userdir.confのOptionsにExecCGIを加えて、/etc/apache2/mods-available/mime.confの

#AddHandler cgi-script .cgi

という行のコメントアウトをはずす。そして、

/etc/init.d/apache2 restart

とすれば、CGIが動くようになる。以前と設定の仕方が違う気がするでお、まあうまくいったので良いか。注意しないといけないのは、rubyは標準では1.9になっているので、CGIの一行目で指定しているプログラムをruby1.8にしなければならない点である。しかし、実際にCGIを動かしてみると、かなり遅い。これでは思いCGIを動かす目的には使えないかも知れない。

Read more...

rubyで計算

平均の計算
ルービックキューブを揃えるタイムには、いくつかの種類がある。単発のタイム以外に、12回計測してその中から最も速かった回と最も遅かった回を除外した10回の時間の平均や、5回計測してその中から最も速かった回と最も遅かった回を除外した3回の時間の平均などがある。そのうち、最後のものを計算するプログラムをrubyで書いてみた。

p data.split(/\n/).map{|l| l.to_f}.sort[1..3].inject(:+)/3

ううん。以外に長くなってしまった。 最近は、ruby/tkで作ったタイマーで計測して、タイムを記録している。ようやく30秒を切れることが多くなってきたが、なかなか向上しない。

Read more...

tdiaryの更新

tdiary3.1.3へ
wwwサーバーが更新されるということで、tdiaryも更新することにした。rubyは1.8.7になった。最新のtdiaryは4.0.0だったが、こちらはruby1.8では動かないということで、3.1.3にした。 設定ファイルとして、tdiary.confや.htaccessと.htpasswdをいじったり、権限を変更したり、blogのデータを移したりしたら、ようやく動くようになった。また、以前tdiaryのversionを下げたときに、表示できなくなっていたページもうまく表示できるようになった。 今月は忙しかったので、なかなか更新できなかったのだが、ようやく完了した。

Read more...

ruby1.8からruby1.9へ

ruby1.8とruby1.9の違い
OSの入れ替えに伴い、普段使っているruby1.8のプログラムを、1.9に書き換えていくことにした。一応、いくつかの違いは理解しているつもりだったが、まだまだ知らないものがありそうだ。 昨日書き換えたプログラムでは、stringの[n]をgetbyte(n)に変えた。 今日は、require “file"をrequire “./file"とした。 さて、次はどんな変更が必要なプログラムが出てくるだろうか。

Read more...

Wheezyのインストール

ようやくインストール
DebianのWheezyが出てから、しばらくたったので、そろそろインストールしてみようと思い立って、やってみた。しかし、思ったよりも苦労してしまった。 ネットワークの調子がいまいちなので、CDを焼いて、まずはそこからインストールできる分だけをインストールしたら、GNOMEになってしまった。LXDEにしようと思っていたのに。さらに、日本語が入っていない。また再インストールするのも面倒なので、必要なパッケージをaptitudeで入れていったら、なんとかなった。結局、lxde, task-japanese, task-japanese-desktopを入れれば良かったようだが、その前にibus-anthyをいれたりしたので、日本語変換ができなくなり、ibusをremoveして、さらにim-switchを入れたら、ようやくなんとかなった。 しかし、以前苦労したプリンターの設定はあっさりとできた。また、動作も機敏になった気がする。 今問題になっているのが、rubyのversionが1.9であることである。1.8を入れても良いのだが、そろそろ移行しようと思って、あえて入れないことにしている。しかし、binaryを扱った場合にはstringの[]の挙動が違うので、ことごとくエラーが出てしまうので、多くのプログラムを書き換えないといけない可能性が高い。

Read more...

virtualboxでマウスの異常

virtualbox上のマウスの妙な挙動
ubuntu上のvirtualboxでwindowsNTを動かして、それで装置の制御を行っている。古い装置は古いOSでしか動かないので、面倒である。少し前にようやく動くようになって、しばらくは順調だったのだが、少し問題が生じた。 virtualbox上でマウスが妙な挙動をするのだ。動かしていないときは大丈夫なのだが、動かすと、クリックをしたときのような動作が起こり、誤動作を引き起こしかねない。virtualboxを再起動すると直るのだが、二度起こったので、今後も起こる可能性が高い。 原因としては、full screen modeとwindow modwを切り替えるときに、何かが起こるのか、screen saverが悪さをするのかである。とりあえずは、様子をみることにする。

Read more...

OCRもどきの作成

imagemagickとrubyによるデジタル文字の取り込み
装置の7セグ表示器に表示される数字を、数値データとしてPCに取り込む必要性が生じた。とりあえずwebカメラで表示器を撮影して、ファイルとして保存しておいたのだが、これから数字を読み取ることにした。当初はOCRを使えば簡単にできると思っていたのだが、表示器の数字には対応していないようである。linuxでつかえるgocr、ocrad、tesseract-ocrを試したが、どれもダメだった。 そこで、7セグだけを読み取るプログラムを書くことにした。まずは、imagemagickのconvertを使って、白黒の単純なファイル形式であるpnmに変換した。なお、asciiで保存するために、-compress Noneオプションを付けた。それをrubyで処理することにした。 数字を認識するアルゴリズムをいくつか考えたが、結局以下のようなものになった。まず、周囲の文字が無い部分を取り除き、それぞれの文字に文理し、文字の部分を3*5に分割して、0から9までのパターンとの一致具合をxorで判定して足し合わせる。そして、点数の大小で数字を判定する。それなりに短いプログラムではあるが、まあまあの認識率である。 今後の課題としては、画像の中のどこに表示器があるかを認識することがある。今は表示器の部分を切り出した後でプログラムで処理しているが、切り出しも自動でできるようになれば、少しwebカメラが動いても、そのまま処理できるのだが。

Read more...