24012006 music
CPANのこやつがいい感じ。
24012006 music
CPANのこやつがいい感じ。
イントラで使えるdel.icio.usクローンが紹介されていたので、早速使ってみた。
MOONGIFT - Insipid - オープンソースによるIT戦略支援 -
本日紹介するオープンソース・ソフトウェアはInsipid、Deliciousクローンなブックマークエンジンだ。見た目もあるが、何よりも良いのがインポート/エクスポートでDelicious互換である事。乗り換えも後戻りも容易だ。システムはPerl+DB(MySQL/PostgreSQL)で作られている。
perlとポスグレかMySQLがあれば動作するが、設定が意外にややこしいかも。あと、htaccessに頼る部分もアレかも(使わなくてもいいが)
が、問題は
ユーザー間でのタグの共有ができナイっぽい(個人用?)
マルチユーザー対応できないと魅力半減だナァ
23012006 静岡
先週手術した「はな」の抜糸のために、三島へ。抜糸って、糸じゃなくてワイヤーなのな。で、ペンチみたいなのでパチンと切ってはずしてた。三箇所留めてあったので、パチパチパチンってな感じで切ったら、ワイヤー抜いて終了。
思ったよりも早く終わったので、毎度でも行くことにしたら、休みっぽい。車から通り際に張り紙読んだから、はっきりしないんだけど、月火は休みみたいなこと書いてあった。
というわけで、飯嶋で蕎麦食うか、御殿場のかわ嶋にでも足をのばすかなんて、悩んでみたが、やっぱラーメンな気分なので卓郎商店に行くことにした(ラーメンは好きだが駐車場が、、、、道沿いに駐車場が並んでいるので、埋まってると、そのまま走り去るくらいしか選択肢がないのが不便。)
というわけで、行くだけ行ってみたところ、予想通り駐車場が一杯。が、ちょうど一番いい場所に留めてあった車が出るとこだったので、スムースに停められた(ラッキー)。
なにやら、新しいメニューがあるので注文
背脂揚げたまねぎラーメン

揚げたまねぎは結構、甘みとかエグミみたいのが強すぎるうえ、油が玉ねぎ臭くなるからどうかなぁと思ったが、背脂が入ってるので浮いた感じがしなくていい。麺は多加水(だっけ?)の細めんで、好みだし、スルメかムール貝かそっち系の味が強く感じられるスープはやっぱ旨い。毎度とかやくみやはもうちょい鶏とか豚が強かったかな。
22012006 Python
PyQuanteはCのコード入っているから、Windowsだとインストかませないだろうナァとわかっているが駄目もとでやってみたら駄目だった。
running install
running build
running build_py
running build_ext
error: The .NET Framework SDK needs to be installed before building extensions f
or Python.
調べてみると、MSもコンパイラ配布しているようだ(やるではないか)。ということで、.NET Framework SDKをダウンロードしてきてインストール。100M超えているので結構だるかった。
で、インストールが終了したら、環境変数の設定のために以下のコマンドたたく。
C:\Program Files\Microsoft.NET\SDK\v1.1\Bin\sdkvars.bat
再度、python setup.pu install
running install
running build
running build_py
running build_ext
building 'PyQuante.cints' extension
error: Python was built with version 7.1 of Visual Studio, and extensions need t
o be built with the same version of the compiler, but it isn't installed.
あれ、コンパイラのバージョンが違うと出てくる。ここのとおりにパッチ当ててみるか?
Windowsにpatchコマンドあるのか?
無事にパッチを当てたら、3度目のpython setup.py installだ!
running install
running build
running build_py
running build_ext
building 'PyQuante.cints' extension
C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\bin\cl.exe /c /nologo /Ox
/MD /W3 /GX /DNDEBUG -IC:\Python24\include -IC:\Python24\PC /TcSrc/cints.c /Fob
uild\temp.win32-2.4\Release\Src/cints.obj
cl : コマンド ライン warning D4029 : 標準の編集コンパイラでは最適化は使用できま
せん。
cints.c
c:\Python24\include\pyconfig.h(130) : fatal error C1083: インクルード ファイルを
開けません。'basetsd.h': No such file or directory
error: command '"C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\bin\cl.e
xe"' failed with exit status 2
もう少頑張ればいけるのか、そもそも駄目なのかわからなくて、はまる予感がする。というわけで、これ以上突っ込まないことに。おとなしくlinuxに入れたのを使って遊ぼう。
22012006 Python
pythonの量子化学計算用モジュールで遊んでみた。最初は、量子化学計算みたいなコストのかかる計算をスクリプト言語で書いてどうすんの?みたいに思ったが、速くしなきゃならん部分だけCで書いてあとはPythonでもいいのかも?いや逆にトータルの生産性はこっちのほうがいいのかもしれないゾと思ったり。
あとは、モパクーもガウシーもゲムスーもそもそもインプットからしてややこしいから、よりシンプルな記述で計算できるとベター。だからOOPな感じで書けるのは有用かもん。
GUIでインプットのややこしさをラップすればいいじゃん的ナ発想もあるんだろうが、複雑なオプション与えたいときに、GUIの操作ほうが余計複雑になっちゃったりとか、結局自分でインプットいじらなあかんていうことが良くあるしな。なにより、バッチとか、スクリプトに組み込むときメンドイ。
特にUserGuideの例にあるように、同じ分子をアルゴリズム変えたり、基底関数変えて計算したいとかいうときには、スクリプトのほうが便利だ。
ユーザーガイドには水素分子の計算が例として挙げられているが、ちょっとだけいじった、水分子のHF計算をのせておく
from PyQuante.hartree_fock import rhf
from PyQuante.Molecule import Molecule
h2o = Molecule('H2O',
atomlist = [(8,(0,0,0)),
(1,(0.959,0,0)),
(1,(-.230,0.930,0))],
units = 'Angstrom')
en,orbe,orbs = rhf(h2o,verbose=True)
モジュールのインポートをしたら、moleculeオブジェクトで水分子を作ったら、rhfでh2oを計算。これだけ。
お手軽!!
$ python test.py
Nbf = 25
Nclosed = 5
Optimization of HF orbitals
0 -68.2710764842
1 -71.4107153837
2 -73.8915175997
3 -75.0373719156
4 -75.6459826198
5 -75.8850728221
6 -75.9751560983
7 -76.0064588121
8 -76.0173702077
9 -76.0210974045
10 -76.0223774136
11 -76.0228145355
12 -76.0229641837
13 -76.023015328
結果はこんな感じで。verbose=Trueのオプションつけたからずらずら出てくるが、普通はエネルギーを出力させるくらいでいいでしょう。
計算時間は、C3マシンで実行したので3分程度かかったが、今のスペックならほとんど一瞬で終わるのではないかな。
Chemruby,PerlMol,CDKなどで、ある程度まともな3次元構造立ち上げられるようになったら、
構造立ち上げ -> MMで構造最適化 -> 半経験的MO構造最適化 -> いい基底関数とMP2レベルでシングルポイントの電子状態計算
という、トラディッショナルな構造最適ルーチンをスクリプトで実行したくなるだろうなぁ。
Corinaレベルの構造立ち上げライブラリでオープンなものってあるのだろうか?職場だったら、corina用モジュール書けばいいのだろうが。MMはTinker使えるような気がするが使ったことないからわからん。mopacもラッパー書けばいいじゃんって言われそうな気もするが。
21012006
エクセル万歳系が多いのは世の常(あぁ無常)。万歳というより漫才ジャネーか?CSVでいいじゃんと思いつつも、何かと応える必要があったり。
というわけで、Linux(perl)でこのようなニーズを満たすperl moduleが出現したときには軽い興奮を覚えたもんです(ビバ!とか叫んだとか叫ばなかったとか)。さて、このWriteExcelですが、最近どうしてもExcelに画像を貼り付けて返すCGIを作る必要が生じたわけダ。
CPANで最新バージョンをチェックしてみると24bitのビットマップなら可能という情報が。今使っているバージョンみると、0.39なんで(古スギ!)早速アップデート。
依存も特に無く、サクッとインストール完了
さて、今回貼り付けたい画像はgif(png)なもんでいきおい、PerlmagickとWriteExcelの組み合わせというのがベターな解というわけですな。
と、サクサク進むわけがなく。Imagemagickのconvertで躓くの巻ナリ
#convert test.png test.bmp
で変換したビットマップ画像を下のテストプログラムで実行すると、エラーを吐きすてとまりやがる。
#!/usr/bin/perl use Spreadsheet::WriteExcel; my $workbook = Spreadsheet::WriteExcel->new("test.xls"); $worksheet = $workbook->add_worksheet(); $worksheet->insert_bitmap('A1','./test.bmp');
#./test.pl ./test.bmp isn't a 24bit true color bitmap. at ./test.pl line 5
えっ?なんで24bitじゃないの。ググッたりしてもイマイチすっきりしないので、identifyしていろいろ調べたところ、Class:DirectClass,Type:TrueColor (or Palette?)にしないといけないっぽい。
#identify -verbose ./test.bmp Image: ./test.bmp Format: BMP (Microsoft Windows bitmap image) Geometry: 46x43 Class: DirectClass Type: Palette Endianess: Undefined Colorspace: RGB Depth: 8 bits
どっかに png -> jpg -> bmpでうまく行くヨ~とか書いてあったのだが、スマートじゃないので、オプションで指定だ。
%% pngの場合 %% #convert +matte test.png test.bmp %% gifの場合 %% #convert +matte -type TrueColor test.gif test.bmp
みたいに属性を変えればいいみたい。ほんでもってperlでこねくりまわすには、ここの部分をPerlMagickを使ってやればイイ。
developerWorkから株ロボコンテストへの招待の続きが、、、
IBM dW : カブロボ・コンテスト : カブロボへのご招待・その2 - Japan
さて、前回のコラムでは、カブロボコンテストの概要と、サンプルロボットの作り方、および最も簡単なカブロボの作成方法をお伝えしました。 今回はカブロボを作る上での基本技術である、* 情報取得方法 * 売買注文の方法および、
* コンテストへのロボットの登録方法についてお伝えしていきます。
でも、株ロボ本とそんな変わらないことが書いてあるような、、、
そんな僕は、ここ3,4日ノーポジが続いていますゾ。押し目狙いで、明日新興下げたらちょっと買おうかナァと思っている。
20012006 trade
20012006 trade
先週、ぐるなびで逆張りして、DS買える位のお小遣いをゲットしつつ、目ぼしい株もないのでノーポジだったんだが、ライブドア騒動で朝から下げてるので、チャンスと思い。
前場の終わりに少し買っといた。
16時頃チェックしたら、、、、
メチャクチャ下げてるじゃねーか!!
後場の終わりに買うべきだったかな。
ちょっと凹む含み損つまり凹み損のせいでキャノンの儲けでEOS KISS DIGITAL Nを買うぞ作戦が一歩後退だ。
19012006 perlmol
perlmolでparse_smiするとwarningが出るのでなんでかな?と思って調べたところ、名前を入れてやらないと駄目らしい。
Use of uninitialized value in concatenation (.) or string at /usr/lib/perl5/site_perl/5.8.3/Chemistry/File/SMILES.pm line 500. Oc1ccccc1Cl
ってエラーがでるので、
my $react = Chemistry::Mol->parse('c1ccccc1Cl Cl-benzene', format => 'smiles');
ってしてやれば解消される。