今日の畑(120331)

雨が降って畑にいけない。大根とか人参の発芽状況をチェックしたかったのに。

寝室の窓際で育てているズッキーニの苗。

1333173889

オクラとか、ゴーヤもそろそろ種まきしないとなぁ。

pygamess 0.3.0

バグフィックスしたり基底関数まわりを追加してバージョンをちょっとあげた。

一番大きな変更はデフォルトでrungmsを使わないようにしたことで 直接ddikickを叩くことにしたことか。それでgamessのパスをどうしようかなぁと。

とりあえずコンストラクタで直接指定してない場合は

  1. 環境変数GAMESS_PATHを調べる
  2. PATHの中からddikick.xのあるディレクトリを探して、それを選択する

それとは別にrungmsのpathを探したりもしている(僕の場合はrungmsを/usr/local/binに置いている)のでちょっとくどいやり方になってしまった。

それから、コンストラクタにオプションを渡せるようにしたんだけど、これだと、gamessのインプットいじるのと変わらないので、もう少しスマートな指定方法も用意したほうがいいかなぁと思った。

水分子を基底関数を変えながらエネルギーを計算する例。このくらいだったら対話環境でサクッとうごく。

>>> import pybel
>>> from pygamess import Gamess
>>> g = Gamess()
>>> mol = pybel.readstring('smi', 'O')
>>> mol.make3D()
>>> g.run(mol).energy
-74.96450135
>>> g.run_type('optimize')
>>> g.run(mol).energy
-74.9659012146
>>> g.basis_set('3-21G')
>>> g.run(mol).energy
-75.585959758
>>> g.basis_set('6-31G')
>>> g.run(mol).energy
-75.9853591564
>>> g.basis_set('6-311G')
>>> g.run(mol).energy
-76.0109546389
>>> g.basis_set('6-31G*')
>>> g.run(mol).energy
-76.0107465155
>>> g.basis_set('6-31G**')
>>> g.run(mol).energy
-76.0236150193

最近ちょっと困っているのが、構造最適化で収束しないのをどうやって収束させるかという。6-31G*くらいでmopacみたいなノリで計算できるようにしたい。

素晴らしいスピン多重度

openbabelのコンバーターがバグってる。

>>> import pybel
>>> from pygamess import Gamess
>>> g = Gamess()
>>> mol = pybel.readstring('smi','C')
>>> mol.make3D()
>>> nmol = g.run(mol)
>>> nmol.OBMol.GetTotalSpinMultiplicity()
1882919584

Between The Lines

CAMO & KROOKEDはちょっとイケイケすぎるというか疾走感が強すぎて、聴き疲れしてしまうという理由から超好きというわけではないのだけど、remixは期待度大。

ProductName Between The Lines
CAMO & KROOKED
HOSPITAL / 1600円 ( 2012-03-26 )


元ネタのほうは買ってない

ProductName Cross The Line
CAMO & KROOKED
HOSPITAL / 1486円 ( 2011-10-01 )


今日の最後のほう

jazzyなdrum'n'bass -> jazz -> technoっていう展開が気持ちよかった

Sentimental Moods / Makoto
King Of Sunshine / Nicola Conte
Ghost Song (Joris Voorn Remix) / Slam
Pique-E / Tanzmuzik

ProductName SOULED OUT
MAKOTO
selective records / 2393円 ( 2011-10-05 )


ProductName アザー・ディレクションズ(CCCD)
ニコラ・コンテ
EMIミュージック・ジャパン / ?円 ( 2004-10-14 )


ProductName Fabric 9
Slam
Fabric / 1255円 ( 2008-06-23 )


ジャケと曲の構成が違う。自分のもっているのはRisingHigh版だった。

ProductName シンセカイ
タンツムジーク
ソニーレコード / ?円 ( 1995-07-21 )


トピックブランチ的にワーキンググループを使う弊害

最近(というかここ2,3年くらい)今の職場で、新しい挑戦はセクションの壁を超えてトピックブランチ的にワーキンググループを作って自主的に議論して上に提案するというスタイルが普通になった。

これはやる気がある人が積極的に議論に加わるので、調子がいいし議論も生産的で楽しい。

が、あるワーキンググループの議論の中で「自分はその(別の)WGに参加してないからコンテクストが理解出来ない」みたいなことを言われたのでちょっと考えてしまった。

トピックブランチは他に影響を与えないで新しいことを試すので、WGも参加者以外には基本的に見えない。だからそういう発言になってしかるべきだし、それはあり方として正しい。一方で全然ワーキンググループに参加しないヒトは振る舞いや思想がメンテナンスブランチのそれに近くなってきているのではないかと。そもそも保守的な考えのヒトが多いからほっといたら保守化するわな、そりゃ。

昔はセクションのトップがそういうヒトにもある程度成長のためのチャレンジを促していたような気がするけど、プロジェクト色が強くなるとどうしても自主的に動けるかどうかが重要視されるよなぁと。

まぁサイエンティストだったら当たり前の感覚だろうけど、企業研究者の8割は単なる労働者でしょ?そういう状況で、こういうやり方が組織論的に正解なのかはよくわからん。

pybelでanilineをnitrenium ionに変換する

なぜnitrenium ionにする必要があるのかはここではふれないので、ココらへんを見てください。

import pybel
smarts = pybel.Smarts("c[#7]([#1])[#1]")

mol = pybel.readstring('smi', 'c1ccccc1N')
mol.make3D()
matches = smarts.findall(mol)
mol.OBMol.DeleteAtom(mol.atoms[matches[0][2]-1].OBAtom)
mol.OBMol.SetTotalCharge(1)
print mol.write('mol')

分子に修飾をしたい時はpybelにメソッドがないので、OpenBabelのオブジェクトを直接触る必要があるのであまりスマートではない気がする。

legit / Git for Humans

gitにわかりやすい名前のコマンドを追加してくれる。

使いそうなものから

git switch {branch}

checkoutよりもswitchのほうがスイッチした感が得られますね。

git branches

各ブランチが色付きで表示されつつ、それがリモートにpublishされているかどうかもあわせて表示されるので便利。

git graft {branch}

Merge unpublished branch into current branch, then remove it.

ってなってるんだけど、トピックブランチを立ててマージした後に残ったブランチを削除するのも面倒なので こっちのコマンドのほうがいいのかなと思うんだけど。そういう用途向けじゃないのかな。

git sprout {branch}

現在のブランチから新しいブランチを作る

git publish {branch}

リモートにブランチをパブリッシュ。

トピックブランチはリモートにpushしないのであまり使わないけど便利そう。

git unpublish {branch}

逆にこっちをgitのコマンドで実行するやり方がわからない。

git harvest {branch}

よくわからん。というかrebaseをきちんと理解してないのを理解したので調べた

結果、単独開発の場合はあまり必要ない感じだった。

git sync

複数人で作業することはないのでほとんど使わなさそう

ProductName 入門Git
濱野 純(Junio C Hamano)
秀和システム / 2310円 ( 2009-09-19 )


Python modules for Humans

for Humansなモジュールが気になったのでPyPiを探してみた

paperはちょっと気になるが、開発中。

大手メーカーが作らない「B級」iPhoneゲームが売れる50の理由

なかなか、面白かった。

真面目な内容を期待すると裏切られた感が得られるが、行間とか内容の本質を考えながら読めばそれなりに得られるものがあると思う。

僕の場合は参考になることが多かった。