ubuntuかdebianか
2/26に注文していたDellのinspiron mini 9が本日手元に届いた。ubuntu版のメモリ2GでSSDが32Gのものだ。windows無しのものを前々から欲しいと思っていたが、デスクトップは新しいものに更新されるのはずいぶん先のことになりそうなので、勢いで注文してしまっていたものだ。
ubuntuはしばらくいじっていたが、耐えられずにdebianをインストール。swap無しで、lennyの標準システムとラップトップとxfce4をインストールした。後は細かいものを入れていったが、問題になると思っていたものが三つあった。SDとcameraとディスプレイの外部出力だ。このうち、前の二つは、何も意識しないで認識されていた。最後の課題はとりあえずは動いていなかったが、これは宿題かな。その後、いろいろと設定していたが、おそらくalsaの設定をミスったのか、起動できなくなってしまった。
もう一度インストールする時には、同じことをするのも面白くないので、今度はubuntuをrecoveryした。ubuntuが使いにくいと言っても、GNOMEが使いにくいわけだし、xfce4に替えれば使い易くなるのでは無いかと思ったわけだ。アプリケーションの追加には無かったので、aptitudeでrubyとxfce4を入れて、起動時にセッションを選択したら、無事起動した、と思ったら、邪魔なランチャーが出て来る。Alt+F4で殺せばxfce4の画面になるところまでは良かったが、設定で画面が小さすぎてうまくいかない。debianのときは感じなかったのに。
仕方がないので、GNOMEに戻っていろいろとカスタマイズしていたら、デスクトップモードの変更というところで、ランチャーは無くせることが分かった。また、設定の電源管理のところで、蓋を閉じたときにサスペンドに入らないようにしたりした。まあ、多少耐えられるようにはなってきたが、いつまで耐えられるかな。
しかし、ショックだったのは、inspiron mini 9を調べたら、今はメモリ2GでSSDが64Gのものが、さらに値下げして売っていたことだ。cameraは無しだけど。うむむ。
https用のpem
Rubyでのhttpsへのアクセスに成功
これまで、認証を少しさぼってはアクセスできていたが、ようやくpemを作ってきちんとアクセスすることに成功した。具体的には、Debian LennyのFirefox(正確にはIceweasel)で以下のようにしてpemファイルを作った。
まず、目的にhttpsのサイトにアクセスする。右下の鍵のマークをダブルクリックしてセキュリティを表示する。View CertificateをクリックしてDetailタブを選び、Hierarchyの一番上のものを選んで、Exportを押すと、pem形式でセーブされる。これをroot.pemなどという名前にしたら、以下のようにしてアクセスできる。
https = Net::HTTP.new(host,443) https.use_ssl = true https.ca_file='root.pem' https.verify_mode = OpenSSL::SSL::VERIFY_PEER https.verify_depth = 5 https.start { |w| response = w.get('/index.html') puts response.body }
SSLのことはさっぱり理解していないが、これでおそらくきちんとしたアクセスなのだと思う。
rubyでhttps
ようやくhttpsにアクセスできた。
ずいぶん前からrubyでhttpsにアクセスしたくて、いろいろと試していたが、なかなかうまくいかなかった。まだ不完全なのだが、やっとアクセスすることができた。まずは、
aptitude install libopenssl-ruby
としてSSLを使えるようにする。そして、たとえばこんな感じのプログラムでアクセス。
https = Net::HTTP.new(host,443) https.use_ssl = true https.verify_mode = OpenSSL::SSL::VERIFY_NONE https.start { |w| response = w.get('/index.html') puts response.body }
不完全というのは、署名の検証をしていないという意味で、本当はpem形式のファイルを取得しないといけないのだが、IEをつかって取得する方法は見付けたが、firefoxでは方法が分からなかった。rubyでもできるはずな気がするが。いずれにせよ、アクセスできてもその先はソースを読まないといけないので、気が進まない。
メインマシンの性能
最新のPCとの差
新しいメンバー用のPCを買うために、PCの性能と価格を調べていたのだが、最近の性能の向上には関心する。2GBのメモリと500GBのハードディスクが標準になっているようだ。
一方、私がメインに仕事につかっているPCを調べてみたら、メモリは256MBだった。ハードディスクは、後から自分で増設して、三台内蔵しているので、どれがオリジナルなのか分からなくなってしまっている。このPCは個人が仕事につかっているものとしては、研究室内ではもっとも遅いPCである。ちなみに、このメモリの量は、ubuntuがインストールできる下限であるらしい。Debianはもっと少なくても大丈夫だろうが。
他のほとんどの人はWindowsをつかっているが、Windowsはしばらく使っていると不安定になる仕様になっているようで、そうすると新しいPCに替えるようである。私はLinuxを使っているので、不安定になることはほとんどなく、そのためにPCがなかなか新しくならない。私が一台目を使っている間に、二回もPCを替えている人もいる。
Debianもlennyがリリースされたので、PCも新しくしたいのだが、特に不安定になって仕事ができないわけではないので、なかなか難しいだろう。
Xming
CygwinとXmingとVNC
WindowsではXを使えない。普段はLinuxを使っているが、ときどきWindowsで仕事をしないといけない場合がある。しかし、Xを使えないと非常に不便なので、なんとかする必要がある。これまでは、cygwinをよく使っていたのだが、Windowsをメインに使っている人には、VNCを薦めている。最近、Xmingというものもあることを知った。これは、Windows上で、sshで接続してXを起動できるものらしく、remoteログインしてXを使うときには便利なようだ。もっとも、unixのコマンドが使いたい場合には、cygwinも捨てがたいが。cygwinのコマンドとXmingのXを使えば良いのかな。
LennyでGPIB
SargeからLennyへ
研究室で唯一残っていたSargeのマシンをLennyに入れ換えた。このときに問題になるのがGPIBである。正式なリリース前に練習しているので、それほど苦労しなかったが、そのときとは多少違うようだったので、記録しておこう。パッケージのインストールは、
aptitude -y install gpib-modules-source module-assistant auto-install gpib aptitude -y install libgpib0-dev
で終了する。必要に応じて/etc/gpib.confと/etc/groupを編集する。今回はgroupのみを追加した。
modprobe tnt4882 gpib_config --minor 0
として、ドライバを組み込んで設定を行う。これを行っていないと、gpib-rubyのインストールがうまくいかないようだ。gpib-rubyは、
aptitude install ruby ruby1.8-dev flex wget http://www009.upp.so-net.ne.jp/sakura_home/gpib-ruby.tgz tar xfz gpib-ruby.tgz cd gpib-ruby ruby ./extconf.rb --with-gpib-include=/usr/include/gpib make make install
で完了。前回と違ったのは、/etc/modprobe.d/gpibの設定だ。前は特にいじらなかった気がするのだが、今回は以下の二行を追加する必要があった。
alias gpib0 tnt4882 install tnt4882 /sbin/modprobe --ignore-install tnt4882; /sbin/gpib_config --minor 0
gpib_configの場所が、etchでlinux-gpibを入れた場合とは変わっていた。 これでgpibが動くようになったので、あとは必要なパッケージをインストールするだけだ。
debian 5.0のリリース
いつの間にかlennyがリリースされていた
もうそろそろだとは思っていたが、2/14にdebianのlennyがリリースされた。ニュースを読んだ感じだと、NTFSへの対応と、javaのmainへの追加、EEEPCのサポートなんかが目についた。個人的には、GPIBのインストールが楽になっていると良いな。しばらく様子をみてから、研究室のPCをlennyにupgradeしていこう。
2009/4/4追記 eeepcにどう対応しているのか分からなかったが、aptitude searchでさがしてみると、eeepc-acpi-scriptsというのがあった。
init.dの終了作業
起動スクリプトの書き方
debianの起動時に立ち上げるプログラムは、/etc/init.dに起動スクリプトを書いて、update-rc.dで登録すると良い。これまで、このスクリプトをいい加減に書いていた。poweroffがうまくいかないことがあって、原因を調べていたらこれが原因であることが分かった。
起動スクリプトは、start, stop, restartという引数を取って、それぞれの場合についての動作を記述しなければならない。これはcaseをつかって書けば良い。
#! /bin/sh case "$1" in start) webcam-server esac exit
こんな感じである。ただし、restartと終了のときには、何もしないが、まあとりあえずは問題ないだろう。
Win32OLEとRubyOSA
rubyで他のアプリケーションの操作
Windowsのrubyには、Win32OLEというものがあって、Windows上で走るプログラムをrubyからアクセスすることができる。るびまでも取り上げられています。私が試したのは、ずいぶん前ですが、texをwordに変換したりといったことができないかと思って試したことがありますが、コマンドを調べるのが面倒になって、あまりまともなプログラムを書かないうちに、(windows自体を)使うのを止めてしまいました。
いろいろと調べていたら、Macにも似たようなものがあるようで、RubyOSAを使うと、他のアプリケーションの操作が可能になるようです。こっちは使ったことがないので、なんのコメントもできませんが。
Linuxではこのようなことができないかと調べているのだが、今のところ見付からない。知っている人が居たら教えて欲しいが、身近にrubyに詳しい人がほとんどいない。
サイト内検索
inurlをやめよう
このblogも一年を越えて、だんだん自分でも内容を探すのが難しくなってきたので、googleのinurlを使って検索をつくった。これはうまく働くときもあるが、あまりうまくいかないときが多い。そこで、セットアップ日記とsetup diaryをキーワードに加えて検索することにしたら、それなりにうまくいった。
具体的には、ヘッダーに
<form action="http://www.google.com/search"> <input type="hidden" name="hl" value="ja" > <input type="hidden" name="ie" value="EUC-JP"> <input type="hidden" name="oe" value="EUC-JP"> <input type="hidden" name="q" value="セットアップ日記"> <input type="hidden" name="q" value=""setup diary""> <input type="text" name="q" size="31" maxlength="256" value=""> <input type="submit" name="btnG" value="search"> </form>
を加えて、検索formをつくったら、googleで検索できるようになった。あと、日本語がうまくいかないと思っていたら、漢字コードの設定がShift_JISになっていたので、これを訂正した。しばらくはこれでいこう。