Insipid

イントラで使えるdel.icio.usクローンが紹介されていたので、早速使ってみた。

MOONGIFT - Insipid - オープンソースによるIT戦略支援 -

本日紹介するオープンソース・ソフトウェアはInsipid、Deliciousクローンなブックマークエンジンだ。

見た目もあるが、何よりも良いのがインポート/エクスポートでDelicious互換である事。乗り換えも後戻りも容易だ。システムはPerl+DB(MySQL/PostgreSQL)で作られている。

perlとポスグレかMySQLがあれば動作するが、設定が意外にややこしいかも。あと、htaccessに頼る部分もアレかも(使わなくてもいいが)

が、問題は

ユーザー間でのタグの共有ができナイっぽい(個人用?)

マルチユーザー対応できないと魅力半減だナァ

卓郎商店

先週手術した「はな」の抜糸のために、三島へ。抜糸って、糸じゃなくてワイヤーなのな。で、ペンチみたいなのでパチンと切ってはずしてた。三箇所留めてあったので、パチパチパチンってな感じで切ったら、ワイヤー抜いて終了。

思ったよりも早く終わったので、毎度でも行くことにしたら、休みっぽい。車から通り際に張り紙読んだから、はっきりしないんだけど、月火は休みみたいなこと書いてあった。

というわけで、飯嶋で蕎麦食うか、御殿場のかわ嶋にでも足をのばすかなんて、悩んでみたが、やっぱラーメンな気分なので卓郎商店に行くことにした(ラーメンは好きだが駐車場が、、、、道沿いに駐車場が並んでいるので、埋まってると、そのまま走り去るくらいしか選択肢がないのが不便。)

というわけで、行くだけ行ってみたところ、予想通り駐車場が一杯。が、ちょうど一番いい場所に留めてあった車が出るとこだったので、スムースに停められた(ラッキー)。

店構え

なにやら、新しいメニューがあるので注文

背脂揚げたまねぎラーメン

メニュー 背脂揚げたまねぎラーメン

揚げたまねぎは結構、甘みとかエグミみたいのが強すぎるうえ、油が玉ねぎ臭くなるからどうかなぁと思ったが、背脂が入ってるので浮いた感じがしなくていい。麺は多加水(だっけ?)の細めんで、好みだし、スルメかムール貝かそっち系の味が強く感じられるスープはやっぱ旨い。毎度とかやくみやはもうちょい鶏とか豚が強かったかな。

卓郎商店

PyQuanteをWindowsでも動かしたいと思ったが

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に入れたのを使って遊ぼう。

PyQuante

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もラッパー書けばいいじゃんって言われそうな気もするが。

WriteExcelでセルに画像を貼り付けるために画像を変換

エクセル万歳系が多いのは世の常(あぁ無常)。万歳というより漫才ジャネーか?CSVでいいじゃんと思いつつも、何かと応える必要があったり。

というわけで、Linux(perl)でこのようなニーズを満たすperl moduleが出現したときには軽い興奮を覚えたもんです(ビバ!とか叫んだとか叫ばなかったとか)。さて、このWriteExcelですが、最近どうしてもExcelに画像を貼り付けて返すCGIを作る必要が生じたわけダ。

CPANで最新バージョンをチェックしてみると24bitのビットマップなら可能という情報が。今使っているバージョンみると、0.39なんで(古スギ!)早速アップデート。

依存も特に無く、サクッとインストール完了

さて、今回貼り付けたい画像はgif(png)なもんでいきおい、PerlmagickWriteExcelの組み合わせというのがベターな解というわけですな。

と、サクサク進むわけがなく。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
  • +matteはαチャンネルを除く
  • -type TrueTypeで24bitにする

みたいに属性を変えればいいみたい。ほんでもってperlでこねくりまわすには、ここの部分をPerlMagickを使ってやればイイ。

カブロボへのご招待の続き

developerWorkから株ロボコンテストへの招待の続きが、、、

IBM dW : カブロボ・コンテスト : カブロボへのご招待・その2 - Japan

さて、前回のコラムでは、カブロボコンテストの概要と、サンプルロボットの作り方、および最も簡単なカブロボの作成方法をお伝えしました。 今回はカブロボを作る上での基本技術である、

* 情報取得方法
* 売買注文の方法

および、

* コンテストへのロボットの登録方法

についてお伝えしていきます。

でも、株ロボ本とそんな変わらないことが書いてあるような、、、

ProductName 株式自動売買ソフトウェア 株ロボを作ろう!
鳥海 不二夫
秀和システム / ?円 ( 2005-07 )


そんな僕は、ここ3,4日ノーポジが続いていますゾ。押し目狙いで、明日新興下げたらちょっと買おうかナァと思っている。

堀江の拳

昨日に引き続き、今日も泣きたくなるほどの大幅下落。年末年始の利益がもうすぐ吹っ飛びそうな勢いで、ヤサグレモードだ。

堀江の拳(最高!)でも見て気長に株価回復を待つしかないなぁ。

で、夢想転生ってどういう技だったっけ?ググってもパチスロネタしか出てこん。

買い場だと思ったら、、、、

先週、ぐるなびで逆張りして、DS買える位のお小遣いをゲットしつつ、目ぼしい株もないのでノーポジだったんだが、ライブドア騒動で朝から下げてるので、チャンスと思い。

前場の終わりに少し買っといた。

16時頃チェックしたら、、、、

メチャクチャ下げてるじゃねーか!!

後場の終わりに買うべきだったかな。

ちょっと凹む含み損つまり凹み損のせいでキャノンの儲けでEOS KISS DIGITAL Nを買うぞ作戦が一歩後退だ。

Perlmolのsmilesには名前が必須みたいだ

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');

ってしてやれば解消される。

© kzfm 2003-2021