2008年
9月
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-09-01 結晶構造用のソフト

_ VESTAのインストール

UNIXで使える結晶構造表示ソフトはいくつかあるが、見栄えや使い勝手の面で良いものは少ない。最近ときどき使っているもので比較的よいのがVESTAであるが、debianでのインストールがあまりうまくいっていなかった。 amd64版では、
sudo ln -s /usr/lib/libtiff.so.4 /usr/lib/libtiff.so.3
とするだけで動いたが、686版ではなぜかうまく動かなかった。libstdc++.so.5が必要らしいので、
sudo aptitude install libstdc++5
として、64版と同様にlibtiffのリンクを作っても、動きそうで動かない。さらに、2008/7/11版では、permissionがうまく設定されていないので、goでの許可をした方が良いだろう。実行すると、
*** glibc detected *** free(): invalid pointer: 0 ***
で終了する。いろいろといじっていて、発見したのが、sudoで実行すると、動くということだ。super userで実行するのは、非常に気持ち悪いのだが、実用上はなんとかなるかも知れない。間違って、システムにセーブしたりしないようにしないといけないだろうが。これは、libstdc++5の問題なのか、VESTAの問題なのか、少し調べてみたが分からなかった。まあ、次のマシンはamd64にするつもりなので、気にしないことにしよう。

2008-09-02 rubyでOpenGL

_ rubyでgraphics

GUIをrubyでつくる時には、最近はruby/Tkを使っている。簡単なgraphicsはTkのCanvasで実現できる。研究室でOpenGLの話が出たので、rubyでも使えるのかどうかやってみた。
sudo aptitude install  libopengl-ruby
でインストールして、GLUTを使うとcと同じ感覚で使えるようだ。こんな感じ。
require "opengl"
require "glut"
shape = proc {
  GL.Clear(GL::COLOR_BUFFER_BIT)
  GL.Color3d(1.0,0,0)
  GL.Begin(GL::LINES)
  GL.Vertex2d(-1,-1)
  GL.Vertex2d(1,1)
  GL.End()
  GL.Flush()
}
mouse = proc{|button,state,x,y|
  p [button,state,x,y]
}
GLUT.Init()
GLUT.InitDisplayMode(GLUT::RGBA)
GLUT.CreateWindow("OpenGL:test")
GLUT.DisplayFunc(shape)
GLUT.MouseFunc(mouse)
GLUT.MainLoop()
まあ、でも覚えるのが面倒なので、必要性が出てこない限り使わないだろう。

2008-09-03 ACアダプダー

_ 小さくなったACアダプター

本日、LED照明用の電源が届いた。15V,0.8Aのものだが、思っていたよりも、ずいぶん小さい。電源回路も徐々に進化しているのを実感する。コンセントよりもひとまわり大きいぐらいで、ほとんど邪魔にならない。少し前のスイッチング電源でももう二まわりぐらい大きかったのに。

ちなみに、EeePC701は9.5V,2.5Aで、901は12V,3Aだが、ACアダプターの大きさは後者の方が小さい感じだ。9/13に発売予定の900は12V,3Aだろうか。なお、今度のは1kgを切るようです。


2008-09-06 SCSI

_ MOの増設

最近はUSBが普及して来たため、SCSIを使う機会も徐々に減ってきた。昔は自分のPCにはかならずSCSIカードを積んで、いろいろなものを繋いでいたが、現在使っているマシンには、SCSIが無いものもある。Macも昔はSCSIが標準だったが、もう無くなっているし。

研究室では測定用のWindowsはLANには繋がないことになっているので、データの転送に苦労することがある。前は面倒になって、Linuxに変えてしまい、wineで測定ソフトを動かしたこともあった。今回はWindowsNTで動いているもので、MOが標準でついていたので、それを使うことにした。

SCSIカードを積んで、立ち上げたら、見慣れたSCSIの認識画面が出ない。何か失敗したかなと思ったが、問題無く動いた。これはマザーボードの仕様なのかな。

しかし、最近の学生は、MOを使ったこともないようだ。個人的な認識では、MOはまだぎりぎり現役のメディアだと思っているが、数年先にはどうなっているか分からない。今のうちに買い溜めて置かないといけないかな。


2008-09-07 HDDのクラッシュか

_ Linuxマシンの調子がおかしい。

Windowsと違って、UNIXマシンは安定しているので、めったなことではおかしくならない。以前、異常があったことが一度だけあったが、そのときは再起動したが直らず、HDDにアクセスできなくなっていることが判明した。このときは、数週間バックアップを取っていなかったので、その間のあるデータを失った。

最近、なにか変なアクセス音がするなと思っていたら、今日になってPCの調子がおかしいことに気がついた。おそらく今回もHDDが原因と思われるが、まだなんとか動いている。前回のように再起動すると、二度と立ち上がらなくなりそうな気がするので、吸い出せるだけデータを吸い出してから、再起動しよう。

近年のHDDの進歩には目をみはるものがある。昔は20Mbyteで20万円ぐらいしたものだが、今では100Gbyteで1万円を切るようになっている。しかし、信頼性という観点では昔の方が安定していたようにも思われる。私は、よく使うPCには、HDDを二台はつむようにしている。そして、最も重要なデータは、一昔前のHDDに保存するようにしている。


2008-09-08 emacsで置換

_ emacsで改行の置換

emacsの置換は意外に難しい。すべてを置換するときに!だったり、改行を指定するときにc-q c-jだったり。改行は\nで指定したいと思うのは私だけだろうか。タブはC-q tabっぽい。

editorとしては、emacsかnanoを使っている。Linuxではまだ本当に気に入ったeditorにはであっていない。手をemacsになれさせているところである。

DOS時代はVZが最強だと思っていたし、今でもその思いは変わらない。そういえば、XZはどうなったんだろう。Windowsでもeditorは何を使うべきか迷うところだが。


2008-09-10 wavフォーマット

_ 音の解析

実験中の装置の音を記録する必要が生じて、いろいろと試していたが、alsaで録音ができるようになった。苦労していた点は、マイクの端子が微妙に違っていたところと、alsamixerの微妙な設定だった。

音質を上げるとサイズが大きくなるので、サンプリングレートは10kHzにして、unsigned 8bitで記録すると、5分で3Mbyteになった。これだと一日で1.4Gbyteなので、連続実験の音を記録しても大丈夫そうだ。しかし、音質はかなり悪い。

最初は音量を最大にしていたので、大きな音がうまく記録されなかった。これは、PCMでは仕方がないが、mic boostを調整してなんとかした。

記録形式は、wavの8bitPCMで、headerの44byteを除くと、そのまま1byteごとのデータになっているので、処理はそれほど難しくない。とりあえずは、大きな音がいつ生じたかを調べるために、値がある程度大きい時間を表示するプログラムを書いてみた。あとは、必要に応じて作っていこう。

しかし、データが大きいので、波形をRで表示するのもなかなか時間がかかってしまう。


2008-09-11 クラス分け

_ 最適な構造

最近立ち上げている装置が、ようやく動き出そうとしている。今日は、実際の測定とほぼ同じセッティングで初めての運転。昨日中に、プログラムの変更は終え、今日は本試験といった感じ。

始めは比較的シンプルな装置だったが、今ではGPIB機器が14台ぐらい、GPIBにもNIのボードとプリンターポートでGPIBをエミュレートした二系統あり、GPIB機器としてはAVRで作った自作のGPIB機器もあり、モーターが7つぐらい、電磁バルブが三つぐらい、という自分でも全体を把握しているのかあやしいような装置になってきた。昨日はそれに録音プログラムも追加したし。

それにともなって、制御用のプログラムも複雑になってきている。そのプログラムは、GUIを必要とするので、Ruby/Tkで書いている。いろいろな装置に対して、一つのクラスを定義して、それをさらに別のクラスが呼び出すという感じになっているが、いくつものクラスがどう継っているのか、よく分からなくなってしまっている。クラスを書いてブラックボックス化すると、その下の階層のことを気にしないで良くなるので、詳しいことは忘れてしまう。しかし、本当にそのクラスの割り当てかたが最適なのは、疑問が残ることがある。

それはさておき、実験の方は、中盤で物理的な問題で失敗した。プログラムは素直にそれを実行してくれるが、実際のものは想定外のことが起きることが多く、プログラムよりも難しいのかも知れない。


2008-09-12 色空間

_ rainbowのRGB表示

いくつものデータのあるグラフを書いていると、それぞれのデータをいろいろな色で区別する必要がある。このとき、どのような色で表現するか迷うことがあるが、その場合にはrainbow colorをしばしば用いる。 このrainbow colorは、HSV色空間でHueを等間隔で変化させた色となっている。色空間としては、RGBが有名であるが、rainbow colorをRGBで表すとどうなるかが必要になった。HSVとRGBの変換公式から計算すれば良いのだが、これは面倒だ。できるだけ簡単にRGB表示を求める方法はないかと考えると、Rを使うと良いということに気がついた。 Rでは、rainbow(n)とすると、n分割した色のベクトルとなる。そこで、
col2rgb(rainbow(7))
とすると、RGBの値が表示される。 YIQなんかも一種の色空間と言えると思うが、地上デジタルの場合には、どうなるのだろうか。白黒の地上デジタルなんかもあるのかな。

2008-09-14 プロジェクターとポスター

_ platexとrubyをつかって準備

最近のプレゼンの手法としては、プロジェクターとポスターが主で、OHPはほとんど使われなくなってきた。OHPシートは別の目的に良く使うので、無くなると困るのだが。プロジェクターの場合にはprosperを、ポスターの場合はposterクラスを使ってplatexで作っている。

しかし、直にtexで書くとコマンドなどがいろいろと入って構造がよくわからなくなるので、texのソースはrubyで作っている。arrayとして、内容を記述しておいて、それをrubyで処理すると、texのソースができる仕組である。実際には、化学式などの表記を適宜処理するスクリプトも使っているが。

このとき、プロジェクターとポスターの元になるarrayのフォーマットを共通にしておくと、ポスターの内容をそのままプロジェクターに移植することもできて便利である。多少の場所などの調整は必要になるが。

ひとつ難点を挙げると、最終的にはpdfにするのだが、間でpsを通るので、そのファイルサイズが大きくなってしまうことである。dvipdfmxで処理するとprosperはうまくいかないので、dvipsとps2pdfを使っているのである。


2008-09-24 web camera

_ web cameraを設置した

昨日までは出張だった。上野で新幹線から常磐線に乗り換えるときにweb cameraを見付けたので、おもちゃとして買ってきた。Creative製だったので、まあそれなりのものだろう。USBをさしたらov511というdriverで認識したようだ。xawtvをインストールして実行したら、何もしなくても見ることはできた。webcam-serverをインストールして、
webcam-server -d /dev/video1
でサーバーを起動すると、8888のポートで見ることができるようになった。video0はキャプチャーカードが使っているので、video1を指定する必要があったが、結局ほとんど何もしないでweb cameraが使えるようになってしまった。まだ細かい設定やストリーミングは配信できるようにはしていないが。Linuxでは古いハードの設定は非常に簡単にできるようになっているように感じる。

2008-09-27 web cameraのストリーミング配信

_ web cameraで動画

ストリーミングの配信には、他のソフトをインストールする必要があるのかと思っていたが、/usr/share/doc/webcam-server/applet/webcam.htmlをブラウザで見ると、動画が見れることが分かった。デフォルトだとFPSが1なので、5ぐらいにしておくと良いだろう。

あとはIPの制限などをしたいところだが、この設定はまだ不明だ。 apacheの方で制限することはできるが、httpから直接見ることはできるし。webcam-serverを-Dhオプションで立ち上げれば、localhostのみからアクセスが可能になるが、それでは別のマシンから見れないし。


2008-09-28 検索form

_ サイト内検索

blogも長くなってくると、検索機能が欲しくなってくる。メモの意味合いもあるので。本当はNamazuなどをインストールすると良いのだろうが、面倒なので、googleで自分のサイトに限定して検索するようにしてみた。

inurlを使うと、URLに含まれる文字列を限定できるので、これをblogのURLを入れれば、良いことになります。プラグインのsearch_form.rbを使うと、短く書けそうだが、まあ良いだろう。欠点としては、googleが見に来てくれるまでは、検索にかからないということだ。

_ 2008/9/28追記

カレンダーの右に持ってきたいのだが、うまくいかない。

_ 2009/2/11追記

inurlではあまり検索にかからない場合が多いので、キーワードを追加して検索する方法に変えてみた。