emacsが終了できない。
久々にwindowsを使う必要に迫られたので、仕方がないのでcygwinを入れた。editorとして、nanoとemacsをいれたのだが、emacsで終了ができない。いろいろと調べてみたら、ctrl-Cが効いていないようだ。
windowsの環境変数CYGWINにntsec tty emacsと入れれば、使えるようになるらしい。いろいろ難しいな。
停電対策
明日は停電
様々な装置の中には、できるだけ停止している時間を短くした方が良いものがいくつかある。それらを停止するために、停電の直前まで待っていて、さらに停電が終わってすぐに復帰させることを試みる。停電前には、そのための体力を温存しておく必要がある。体力の無いときは、早めにすべての装置を切ってしまうが、今回は何時まで起きていられるだろうか。
停電があるたびに、我々がいかに電気に頼っているかを痛感する。生まれてこのかた、一日たりとも電気を使わなかったことはないのではないか。
計画的な停電は一年に一度ぐらいあるが、雷の季節になると、落雷による瞬間停電も起こることがある。運が悪いとそれで装置が死んだりすることもある。これは停電のためというより、過電圧のためだろうが。今年はどうなるだろう。
eeepc
eeepc900が来た。
Let’s noteが不調だったので、EeePCを購入してみた。901か900で迷ったが、軽いしSSDの容量も大きいということで、900にしてみた。
研究室の評判としては、思ったよりも良い感じといったところか。SSDは少し遅い気がするが、多少気になる程度だ。外部ディスプレイの切替えでは、内蔵と両方表示させると、外部も上下がけずられて横長になってしまう。通常の使用では、外部のみにして使う必要があるだろう。
そろそろLinux版が出ても良いころだと思うのだが、日本ではなかなか発売されない。日本語を扱うようにするのって、そんなに難しいのかな。まあ、Windows無しで発売してくれれば、なんとかインストールできるような気がしますが。Ubuntuとかではやっている人もいるし。
let's note R2のHDD入れ換え
研究室の共用のPCが不調だったので、HDDを入れ換えた。
しかし、Windowsが悪いのか、Panasonicが悪いのか、非常に苦労した。
まず、HDDリカバリなので、それをバックアップしなければならない。C:\util\oxp\tools\showRHDD.jsを実行して、リカバリ領域を可視化して、そのbackupを取る。しかし、その領域のセクタが壊れているようで、完全なバックアップは取れない。仕方がないので、コピーできるだけはコピーした。
新しいHDDにパーティションを切って、データ領域とリカバリ領域(3075M)に分ける。この際、リカバリ領域は、四番目のパーティションにしなければいけなかったようだが、このときはそんなことは知らないので、後で苦労することになる。そして、リカバリ領域にバックアップしたものを移す。
HDDは3.3V用のものが必要だったようだが、それはHitachiのHDDのピンを折ることによって、5Vを3.3V用に改造。後は、開腹してHDDを載せ替える。最近は、Web上に写真付きで開けかたが載っているので、迷うことなく行えたが、やはり少しトリッキーだった。
さて、ここまでは一見順調だったが、BIOSにリカバリーを登録することができずに、悪戦苦闘することになる。Win98でboot して、c:\tools\にあるコマンドで、
makebeer /copy
とすれば良いようなのだが、パーティションの切る順序が重要だったようで、これがうまくいかない。なんと不自由な。Linuxでパーティションを切ったり、いろいろとやってみたが、結局あまりうまくいかず、最終的には次のような方法でごまかした。 \imagesにあるイメージファイルを\er\pqerを使って復元しているようだったので、それを元にwebを調べたら、
\ER\PQER /CMD=\TOOLS\FULL2KXP.TXT /IMG=\IMAGES\INSTALL1.PQI
とすれば良いような感じだったので、やってみた。コマンドの指定するべきファイルは何種類かあったが、違いがわからなかったので、full2kxpにしてみた。その結果、リカバリーはできたようだが、全ディスクを使用して、リカバリ領域も殺してしまった。fullとはそういう意味だったのかな。1st2xpc0とかいうファイルがあった気がするので、これはcドライブの何かという意味だったのだろうか。 まあ、よくわからないが、最低限使えるようになった気がするので、今回はこれでよしとしよう。もう一度リカバリーが必要になったときは、素直にLinuxを入れることにしよう。Linuxだったら、何の苦労もしないでインストールできた気がする。 リカバリ領域に関しては、イメージファイルとそれを書き込むプログラム等を別の場所に保存しておくようにした方が良い用に思う。
2008/11/6追記 recovery用のパーティションは見えないだけで、まだあるのかも知れない。Windowsから見えないので、無いと思っていたのだが、容量から判断するとある気がする。別のOSから立ち上げないといけないなんで、なんて不自由なOSなんだろう。
リモートスキャナー
共通のスキャナーをネットワークから使えるようにしてみた。
用いたスキャナーはSCSI接続のものだったので、LINUXマシンにSCSIカードをさして、VNCでリモートで使えるようにした。Linux側では、sane等を入れてスキャナーを使えるようにしてから、vnc4serverをインストールして、自動でVNCのサーバーが立ち上がるように/etc/init.d/scannerをつくって、
#! /bin/sh su user -c "vnc4server :1" exit
という内容にして、あとは
chmod ugo+x /etc/init.d/scanner update-rc.d scanner defaults 98
とした。poweroffを使えるようにvisudoで設定したり、scannerのgroupにユーザーを加えたりしたら、ほぼ完成。 基本的には、スキャナーの電源を入れて、LINUXマシンの電源を入れてしばらく待ったら、VNCのViewerでloginして、xscanimageと打てば、スキャナーが使えるようになる。使い終わったら、sudo poweroffと打てば、電源が切れるという仕組である。 LINUXマシンにはマウスもキーボードもつないでいないので、起動時にgdmが落ちるが、sshでログインできるようにしてあるので問題ないだろう。残る問題は、ファイルの転送であるが、sftpを使えばできるのだが、Windowsでは標準で使えないし、それならsshのXでやれば、VNCなんか使う必要も無くなる気がするし。VNCでもファイル転送ができた気がするのだが、やりかたが分からない。
11/2追記 やはりVNCではファイルのできないようだ。仕方がないので、sambaを入れることにした。
2009/2/21追記 本当はinit.dはstart, stop, restartという引数をとるようにしないといけない。上の場合では、終了のときにも起動してしまうことになる。
ツッコミを消した
ジャンクツッコミが多いので、ツッコミを消した。
httpへのリンクが張ってあるのを自動で消したりすれば、大半のものは無くなるのだろうが、自分以外の書き込みはほとんどないので、面倒になって、ツッコミを禁止した。
るびまゴルフにトラックバックしたからか、訪問者が多少増えて、ジャンクも増えてしまったのだろう。ところで、第四回のるびまゴルフは出遅れていたら、ほとんど答えが出揃っているようだったので、今回は参戦しないことにした。今回のは短い問題なのだが、個人的にはもう少し長い問題の方が好きだ。
new media
知らないメディアを入手した。
SparQというもので、1GBの容量がある。以前EZDriveというものを入手したが、その親戚のようだ。しかし、ドライブが無いので、動作確認もできない。いつかドライブが手に入るといいな。
ジャンクツッコミ
最近、ツッコミあらしが増えてきた
最初にtDiaryをインストールしたときから、心配していたのだが、ツッコミにはなんの制限も設けていない。つまり、誰でも何でも書き込めてしまうのだ。いずれは、広告や変な内容を書き込まれることになるとは思っていたが、最近そういったものが増えてきた。
知らない人からのコメントなどがもらえるかも知れないということで、表示しているが、これまではほとんど自分のコメントしかないし、消してしまおうか迷っている。自分のコメントは、本文に追加すればよいわけだし。
サーバーのrubyが1.6.8なので、tDiaryのバージョンが古くなってしまっている。新しいものでは、junkを取り除く機能がつけられたりするのかな。まあ、ソースをいじって変なのを除いてしまえばよいのだろうが、読むの面倒だし。
まあ、もうしばらくはこのままで行って様子をみよう。ruby関連のサイトからいくつかリンクを張られるようになったので、以前よりは多少は有名になったのかも知れない。junkも増えるのはしかた無いのだろう。
タイムアウト処理
RS232Cのエラー
この間、装置が暴走してしまった。その原因はまだはっきりしないが、一番状況を説明できるのが、RS232Cの読み取りで止まってしまったという可能性だ。GPIBなどでは、長い間読み取りできないと、タイムアウトエラーになるので、そのエラートラップをかけておけばよいが、RS232Cにはデフォルトではタイムアウトがない。また、パリティーぐらいしかチェックしていないので、通信ミスでうまく命令が伝わらなくても、それに気づかないで、読み取ろうとしていつまでもデータが戻ってこない。そうなると、その部分でずっとプログラムが止まってしまう。
それを防止するために、RS232Cでもtime outができるように、読み込みのmethodをこんなふうにしてみた。
def read() @rs.write(sprintf("L\x0d\x0a")) t=Thread::start{@v=@rs.gets("\x0d\x0a").to_f} t0=Time::now while Time::now < t0+1 return @v unless t.alive? sleep 0.01 end t.kill print "rs232c timeout!\n" @v=-1.0 return @v end
もっとシンプルに書ける気がするが、読み取りはスレッドにまかせて、それが終了していたらその値を返して、それがいつまでも終わらなかったら、スレッドを殺すという感じである。 これで、RS232Cのエラーは無くなるはずだが、これが本当の原因なのかはまだはっきりしないので、他の部分も調べないと。
2008/11/30追記 timeoutのライブラリもあるようで、
require 'timeout' def read() @rs.write(sprintf("L\x0d\x0a")) timeout(1){ return @rs.gets("\x0d\x0a").to_f } rescue TimeoutError return -1.0 end end
てな感じで良いのかも。
ntpの設定
時計の同期
時計の正確さはあまり気にしていなかったが、ようやくntpの設定をした。以前は失敗に終わっていたので、放っておいたというのが正確ですが。いつか気がついたのが、独自のntpサーバーがあるらしく、外部のntpの使用は禁止されているかも知れないということである。つまり、そのntpサーバーを指定すれば良いということです。
インストールするのはntpかと思ったら、ntpdateだった。ntpはサーバーのようです。
sudo aptitude install ntpdate
/etc/default/ntpdateで設定を変更。NTPDATE_USE_NTP_CONF=noとntpサーバーを指定。これで、
sudo ntpdate-debian
とすれば、時計を合わせてくれる。cronなどで自動でやるのもいいけど、今回はやめにしよう。/etc/cron.daily/をみたら、ntpというのがあったけど、これはntpを誤ってインストールして、アンインストールしたけど残ってしまったものかな。