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のことはさっぱり理解していないが、これでおそらくきちんとしたアクセスなのだと思う。

Read more...

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でもできるはずな気がするが。いずれにせよ、アクセスできてもその先はソースを読まないといけないので、気が進まない。

Read more...

メインマシンの性能

最新のPCとの差
新しいメンバー用のPCを買うために、PCの性能と価格を調べていたのだが、最近の性能の向上には関心する。2GBのメモリと500GBのハードディスクが標準になっているようだ。 一方、私がメインに仕事につかっているPCを調べてみたら、メモリは256MBだった。ハードディスクは、後から自分で増設して、三台内蔵しているので、どれがオリジナルなのか分からなくなってしまっている。このPCは個人が仕事につかっているものとしては、研究室内ではもっとも遅いPCである。ちなみに、このメモリの量は、ubuntuがインストールできる下限であるらしい。Debianはもっと少なくても大丈夫だろうが。 他のほとんどの人はWindowsをつかっているが、Windowsはしばらく使っていると不安定になる仕様になっているようで、そうすると新しいPCに替えるようである。私はLinuxを使っているので、不安定になることはほとんどなく、そのためにPCがなかなか新しくならない。私が一台目を使っている間に、二回もPCを替えている人もいる。 Debianもlennyがリリースされたので、PCも新しくしたいのだが、特に不安定になって仕事ができないわけではないので、なかなか難しいだろう。

Read more...

Xming

CygwinとXmingとVNC
WindowsではXを使えない。普段はLinuxを使っているが、ときどきWindowsで仕事をしないといけない場合がある。しかし、Xを使えないと非常に不便なので、なんとかする必要がある。これまでは、cygwinをよく使っていたのだが、Windowsをメインに使っている人には、VNCを薦めている。最近、Xmingというものもあることを知った。これは、Windows上で、sshで接続してXを起動できるものらしく、remoteログインしてXを使うときには便利なようだ。もっとも、unixのコマンドが使いたい場合には、cygwinも捨てがたいが。cygwinのコマンドとXmingのXを使えば良いのかな。

Read more...

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が動くようになったので、あとは必要なパッケージをインストールするだけだ。

Read more...

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というのがあった。

Read more...

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と終了のときには、何もしないが、まあとりあえずは問題ないだろう。

Read more...

Win32OLEとRubyOSA

rubyで他のアプリケーションの操作
Windowsのrubyには、Win32OLEというものがあって、Windows上で走るプログラムをrubyからアクセスすることができる。るびまでも取り上げられています。私が試したのは、ずいぶん前ですが、texをwordに変換したりといったことができないかと思って試したことがありますが、コマンドを調べるのが面倒になって、あまりまともなプログラムを書かないうちに、(windows自体を)使うのを止めてしまいました。 いろいろと調べていたら、Macにも似たようなものがあるようで、RubyOSAを使うと、他のアプリケーションの操作が可能になるようです。こっちは使ったことがないので、なんのコメントもできませんが。 Linuxではこのようなことができないかと調べているのだが、今のところ見付からない。知っている人が居たら教えて欲しいが、身近にrubyに詳しい人がほとんどいない。

Read more...

サイト内検索

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="&quot;setup diary&quot;">
<input type="text" name="q" size="31" maxlength="256" value="">
<input type="submit" name="btnG" value="search">
</form>

を加えて、検索formをつくったら、googleで検索できるようになった。あと、日本語がうまくいかないと思っていたら、漢字コードの設定がShift_JISになっていたので、これを訂正した。しばらくはこれでいこう。

Read more...

ベンガル語の結合文字

複雑なベンガル文字
世界には多くの文字がある。日頃よく目にするものの多くはアルファベットで、それ以外の文字もあるが、なかなか触れる機会が無い。最近、ベンガル文字を読めるようになろうと勉強しているのだが、文字の形の判別が難しい。中でも厄介なのが結合文字である。 アルファベットと対応させると、sはসで、tはটと書くのだが、これを結合させたস্টという文字がある。これにさらにrを表すরをつけるとস্ট্রとなる。さらに母音のoをつけるとস্ট্রোてな感じになる。別の例としては、mのমとyのযとaをくっつけると、ম্যাとなる。 ただでさえ子音が30個以上もあって多いのに、結合文字を合わせると、一体いくつになるのだろう。この結合文字を文字コードとしてどう表現するのかというと、結合させることを表すコードを間にはさむと良いようだ。詳しくは、このページのソースを見れば分かるでしょう。結合文字に関する情報があまり手に入らなかったので、とりあえずコンピュータで表示してみて、どんな形になるかを調べて学習した。しかし、rが結合するとなぜ毛みたいになるのだろう。 外国の文字を勉強していると、日本語のひらがなやカタカナは、外国人にとっては、学習するのが難しいだろうなと思ってしまう。母音と子音に分かれているわけではないので、ひらがなだけでも約50ぐらいは覚えないといけないことになる。

2009/2/8追記 結合を表す文字は、子音のみを表す文字でもあるようだ。試しに、二つの子音を並べたときにどうなるかを表にしてみた。私の環境だと、結合文字はdisplayには表示されるけど、印刷すると子音を表す印が加わるだけで、結合文字としては表示されなかった。

ক্ক ক্খ ক্গ ক্ঘ ক্ঙ ক্চ ক্ছ ক্জ ক্ঝ ক্ঞ ক্ট ক্ঠ ক্ড ক্ঢ ক্ণ ক্ত ক্থ ক্দ ক্ধ ক্ন ক্প ক্ফ ক্ব ক্ভ ক্ম ক্য ক্র ক্ল ক্শ ক্ষ ক্স ক্হ
খ্ক খ্খ খ্গ খ্ঘ খ্ঙ খ্চ খ্ছ খ্জ খ্ঝ খ্ঞ খ্ট খ্ঠ খ্ড খ্ঢ খ্ণ খ্ত খ্থ খ্দ খ্ধ খ্ন খ্প খ্ফ খ্ব খ্ভ খ্ম খ্য খ্র খ্ল খ্শ খ্ষ খ্স খ্হ
গ্ক গ্খ গ্গ গ্ঘ গ্ঙ গ্চ গ্ছ গ্জ গ্ঝ গ্ঞ গ্ট গ্ঠ গ্ড গ্ঢ গ্ণ গ্ত গ্থ গ্দ গ্ধ গ্ন গ্প গ্ফ গ্ব গ্ভ গ্ম গ্য গ্র গ্ল গ্শ গ্ষ গ্স গ্হ
ঘ্ক ঘ্খ ঘ্গ ঘ্ঘ ঘ্ঙ ঘ্চ ঘ্ছ ঘ্জ ঘ্ঝ ঘ্ঞ ঘ্ট ঘ্ঠ ঘ্ড ঘ্ঢ ঘ্ণ ঘ্ত ঘ্থ ঘ্দ ঘ্ধ ঘ্ন ঘ্প ঘ্ফ ঘ্ব ঘ্ভ ঘ্ম ঘ্য ঘ্র ঘ্ল ঘ্শ ঘ্ষ ঘ্স ঘ্হ
ঙ্ক ঙ্খ ঙ্গ ঙ্ঘ ঙ্ঙ ঙ্চ ঙ্ছ ঙ্জ ঙ্ঝ ঙ্ঞ ঙ্ট ঙ্ঠ ঙ্ড ঙ্ঢ ঙ্ণ ঙ্ত ঙ্থ ঙ্দ ঙ্ধ ঙ্ন ঙ্প ঙ্ফ ঙ্ব ঙ্ভ ঙ্ম ঙ্য ঙ্র ঙ্ল ঙ্শ ঙ্ষ ঙ্স ঙ্হ
চ্ক চ্খ চ্গ চ্ঘ চ্ঙ চ্চ চ্ছ চ্জ চ্ঝ চ্ঞ চ্ট চ্ঠ চ্ড চ্ঢ চ্ণ চ্ত চ্থ চ্দ চ্ধ চ্ন চ্প চ্ফ চ্ব চ্ভ চ্ম চ্য চ্র চ্ল চ্শ চ্ষ চ্স চ্হ
ছ্ক ছ্খ ছ্গ ছ্ঘ ছ্ঙ ছ্চ ছ্ছ ছ্জ ছ্ঝ ছ্ঞ ছ্ট ছ্ঠ ছ্ড ছ্ঢ ছ্ণ ছ্ত ছ্থ ছ্দ ছ্ধ ছ্ন ছ্প ছ্ফ ছ্ব ছ্ভ ছ্ম ছ্য ছ্র ছ্ল ছ্শ ছ্ষ ছ্স ছ্হ
জ্ক জ্খ জ্গ জ্ঘ জ্ঙ জ্চ জ্ছ জ্জ জ্ঝ জ্ঞ জ্ট জ্ঠ জ্ড জ্ঢ জ্ণ জ্ত জ্থ জ্দ জ্ধ জ্ন জ্প জ্ফ জ্ব জ্ভ জ্ম জ্য জ্র জ্ল জ্শ জ্ষ জ্স জ্হ
ঝ্ক ঝ্খ ঝ্গ ঝ্ঘ ঝ্ঙ ঝ্চ ঝ্ছ ঝ্জ ঝ্ঝ ঝ্ঞ ঝ্ট ঝ্ঠ ঝ্ড ঝ্ঢ ঝ্ণ ঝ্ত ঝ্থ ঝ্দ ঝ্ধ ঝ্ন ঝ্প ঝ্ফ ঝ্ব ঝ্ভ ঝ্ম ঝ্য ঝ্র ঝ্ল ঝ্শ ঝ্ষ ঝ্স ঝ্হ
ঞ্ক ঞ্খ ঞ্গ ঞ্ঘ ঞ্ঙ ঞ্চ ঞ্ছ ঞ্জ ঞ্ঝ ঞ্ঞ ঞ্ট ঞ্ঠ ঞ্ড ঞ্ঢ ঞ্ণ ঞ্ত ঞ্থ ঞ্দ ঞ্ধ ঞ্ন ঞ্প ঞ্ফ ঞ্ব ঞ্ভ ঞ্ম ঞ্য ঞ্র ঞ্ল ঞ্শ ঞ্ষ ঞ্স ঞ্হ
ট্ক ট্খ ট্গ ট্ঘ ট্ঙ ট্চ ট্ছ ট্জ ট্ঝ ট্ঞ ট্ট ট্ঠ ট্ড ট্ঢ ট্ণ ট্ত ট্থ ট্দ ট্ধ ট্ন ট্প ট্ফ ট্ব ট্ভ ট্ম ট্য ট্র ট্ল ট্শ ট্ষ ট্স ট্হ
ঠ্ক ঠ্খ ঠ্গ ঠ্ঘ ঠ্ঙ ঠ্চ ঠ্ছ ঠ্জ ঠ্ঝ ঠ্ঞ ঠ্ট ঠ্ঠ ঠ্ড ঠ্ঢ ঠ্ণ ঠ্ত ঠ্থ ঠ্দ ঠ্ধ ঠ্ন ঠ্প ঠ্ফ ঠ্ব ঠ্ভ ঠ্ম ঠ্য ঠ্র ঠ্ল ঠ্শ ঠ্ষ ঠ্স ঠ্হ
ড্ক ড্খ ড্গ ড্ঘ ড্ঙ ড্চ ড্ছ ড্জ ড্ঝ ড্ঞ ড্ট ড্ঠ ড্ড ড্ঢ ড্ণ ড্ত ড্থ ড্দ ড্ধ ড্ন ড্প ড্ফ ড্ব ড্ভ ড্ম ড্য ড্র ড্ল ড্শ ড্ষ ড্স ড্হ
ঢ্ক ঢ্খ ঢ্গ ঢ্ঘ ঢ্ঙ ঢ্চ ঢ্ছ ঢ্জ ঢ্ঝ ঢ্ঞ ঢ্ট ঢ্ঠ ঢ্ড ঢ্ঢ ঢ্ণ ঢ্ত ঢ্থ ঢ্দ ঢ্ধ ঢ্ন ঢ্প ঢ্ফ ঢ্ব ঢ্ভ ঢ্ম ঢ্য ঢ্র ঢ্ল ঢ্শ ঢ্ষ ঢ্স ঢ্হ
ণ্ক ণ্খ ণ্গ ণ্ঘ ণ্ঙ ণ্চ ণ্ছ ণ্জ ণ্ঝ ণ্ঞ ণ্ট ণ্ঠ ণ্ড ণ্ঢ ণ্ণ ণ্ত ণ্থ ণ্দ ণ্ধ ণ্ন ণ্প ণ্ফ ণ্ব ণ্ভ ণ্ম ণ্য ণ্র ণ্ল ণ্শ ণ্ষ ণ্স ণ্হ
ত্ক ত্খ ত্গ ত্ঘ ত্ঙ ত্চ ত্ছ ত্জ ত্ঝ ত্ঞ ত্ট ত্ঠ ত্ড ত্ঢ ত্ণ ত্ত ত্থ ত্দ ত্ধ ত্ন ত্প ত্ফ ত্ব ত্ভ ত্ম ত্য ত্র ত্ল ত্শ ত্ষ ত্স ত্হ
থ্ক থ্খ থ্গ থ্ঘ থ্ঙ থ্চ থ্ছ থ্জ থ্ঝ থ্ঞ থ্ট থ্ঠ থ্ড থ্ঢ থ্ণ থ্ত থ্থ থ্দ থ্ধ থ্ন থ্প থ্ফ থ্ব থ্ভ থ্ম থ্য থ্র থ্ল থ্শ থ্ষ থ্স থ্হ
দ্ক দ্খ দ্গ দ্ঘ দ্ঙ দ্চ দ্ছ দ্জ দ্ঝ দ্ঞ দ্ট দ্ঠ দ্ড দ্ঢ দ্ণ দ্ত দ্থ দ্দ দ্ধ দ্ন দ্প দ্ফ দ্ব দ্ভ দ্ম দ্য দ্র দ্ল দ্শ দ্ষ দ্স দ্হ
ধ্ক ধ্খ ধ্গ ধ্ঘ ধ্ঙ ধ্চ ধ্ছ ধ্জ ধ্ঝ ধ্ঞ ধ্ট ধ্ঠ ধ্ড ধ্ঢ ধ্ণ ধ্ত ধ্থ ধ্দ ধ্ধ ধ্ন ধ্প ধ্ফ ধ্ব ধ্ভ ধ্ম ধ্য ধ্র ধ্ল ধ্শ ধ্ষ ধ্স ধ্হ
ন্ক ন্খ ন্গ ন্ঘ ন্ঙ ন্চ ন্ছ ন্জ ন্ঝ ন্ঞ ন্ট ন্ঠ ন্ড ন্ঢ ন্ণ ন্ত ন্থ ন্দ ন্ধ ন্ন ন্প ন্ফ ন্ব ন্ভ ন্ম ন্য ন্র ন্ল ন্শ ন্ষ ন্স ন্হ
প্ক প্খ প্গ প্ঘ প্ঙ প্চ প্ছ প্জ প্ঝ প্ঞ প্ট প্ঠ প্ড প্ঢ প্ণ প্ত প্থ প্দ প্ধ প্ন প্প প্ফ প্ব প্ভ প্ম প্য প্র প্ল প্শ প্ষ প্স প্হ
ফ্ক ফ্খ ফ্গ ফ্ঘ ফ্ঙ ফ্চ ফ্ছ ফ্জ ফ্ঝ ফ্ঞ ফ্ট ফ্ঠ ফ্ড ফ্ঢ ফ্ণ ফ্ত ফ্থ ফ্দ ফ্ধ ফ্ন ফ্প ফ্ফ ফ্ব ফ্ভ ফ্ম ফ্য ফ্র ফ্ল ফ্শ ফ্ষ ফ্স ফ্হ
ব্ক ব্খ ব্গ ব্ঘ ব্ঙ ব্চ ব্ছ ব্জ ব্ঝ ব্ঞ ব্ট ব্ঠ ব্ড ব্ঢ ব্ণ ব্ত ব্থ ব্দ ব্ধ ব্ন ব্প ব্ফ ব্ব ব্ভ ব্ম ব্য ব্র ব্ল ব্শ ব্ষ ব্স ব্হ
ভ্ক ভ্খ ভ্গ ভ্ঘ ভ্ঙ ভ্চ ভ্ছ ভ্জ ভ্ঝ ভ্ঞ ভ্ট ভ্ঠ ভ্ড ভ্ঢ ভ্ণ ভ্ত ভ্থ ভ্দ ভ্ধ ভ্ন ভ্প ভ্ফ ভ্ব ভ্ভ ভ্ম ভ্য ভ্র ভ্ল ভ্শ ভ্ষ ভ্স ভ্হ
ম্ক ম্খ ম্গ ম্ঘ ম্ঙ ম্চ ম্ছ ম্জ ম্ঝ ম্ঞ ম্ট ম্ঠ ম্ড ম্ঢ ম্ণ ম্ত ম্থ ম্দ ম্ধ ম্ন ম্প ম্ফ ম্ব ম্ভ ম্ম ম্য ম্র ম্ল ম্শ ম্ষ ম্স ম্হ
য্ক য্খ য্গ য্ঘ য্ঙ য্চ য্ছ য্জ য্ঝ য্ঞ য্ট য্ঠ য্ড য্ঢ য্ণ য্ত য্থ য্দ য্ধ য্ন য্প য্ফ য্ব য্ভ য্ম য্য য্র য্ল য্শ য্ষ য্স য্হ
র্ক র্খ র্গ র্ঘ র্ঙ র্চ র্ছ র্জ র্ঝ র্ঞ র্ট র্ঠ র্ড র্ঢ র্ণ র্ত র্থ র্দ র্ধ র্ন র্প র্ফ র্ব র্ভ র্ম র্য র্র র্ল র্শ র্ষ র্স র্হ
ল্ক ল্খ ল্গ ল্ঘ ল্ঙ ল্চ ল্ছ ল্জ ল্ঝ ল্ঞ ল্ট ল্ঠ ল্ড ল্ঢ ল্ণ ল্ত ল্থ ল্দ ল্ধ ল্ন ল্প ল্ফ ল্ব ল্ভ ল্ম ল্য ল্র ল্ল ল্শ ল্ষ ল্স ল্হ
শ্ক শ্খ শ্গ শ্ঘ শ্ঙ শ্চ শ্ছ শ্জ শ্ঝ শ্ঞ শ্ট শ্ঠ শ্ড শ্ঢ শ্ণ শ্ত শ্থ শ্দ শ্ধ শ্ন শ্প শ্ফ শ্ব শ্ভ শ্ম শ্য শ্র শ্ল শ্শ শ্ষ শ্স শ্হ
ষ্ক ষ্খ ষ্গ ষ্ঘ ষ্ঙ ষ্চ ষ্ছ ষ্জ ষ্ঝ ষ্ঞ ষ্ট ষ্ঠ ষ্ড ষ্ঢ ষ্ণ ষ্ত ষ্থ ষ্দ ষ্ধ ষ্ন ষ্প ষ্ফ ষ্ব ষ্ভ ষ্ম ষ্য ষ্র ষ্ল ষ্শ ষ্ষ ষ্স ষ্হ
স্ক স্খ স্গ স্ঘ স্ঙ স্চ স্ছ স্জ স্ঝ স্ঞ স্ট স্ঠ স্ড স্ঢ স্ণ স্ত স্থ স্দ স্ধ স্ন স্প স্ফ স্ব স্ভ স্ম স্য স্র স্ল স্শ স্ষ স্স স্হ
হ্ক হ্খ হ্গ হ্ঘ হ্ঙ হ্চ হ্ছ হ্জ হ্ঝ হ্ঞ হ্ট হ্ঠ হ্ড হ্ঢ হ্ণ হ্ত হ্থ হ্দ হ্ধ হ্ন হ্প হ্ফ হ্ব হ্ভ হ্ম হ্য হ্র হ্ল হ্শ হ্ষ হ্স হ্হ

2009/3/29追記 OSを入れ替えたら、結合文字が表示されなくなってしまった。まあ、フォントの問題なのだろうが。

Read more...