01072008 life
ビショップの下巻は買うとして、
このアルゴリズムデザインというのが気になる。
さらに、これも気になる。
短冊に願い事を書いてみようかな
01072008 life
ビショップの下巻は買うとして、
このアルゴリズムデザインというのが気になる。
さらに、これも気になる。
短冊に願い事を書いてみようかな
30062008 youtube
あれ、バタ子とおむすびってできてんだっけ?
娘と第一話から最終話まで一気にみた。 ようわからんけど、娘は「恐いアンパンマンだー」大喜びしていた。
というわけで、僕のmacbookがアンパンマン再生機にされかけておる。
30062008 chemoinformatics jython opsin
jython+web.pyがお手軽で、ちょっとしたことをやるならいい感じ。
jythonのosモジュールにはfstatがないのでtrunkのSimpleHTTPServerの静的ファイルの転送ができない。そのため、2.2.1のSimpleHTTPServerと入れ替えた。
import java.io.StringReader as StringReader
import org.openscience.cdk.interfaces.IMolecule
import org.openscience.cdk.io.CMLReader as CMLReader
import org.openscience.cdk.ChemFile as ChemFile
import org.openscience.cdk.layout.StructureDiagramGenerator as StructureDiagramGenerator
import uk.ac.cam.ch.wwmm.opsin as opsin
import net.sf.structure.cdk.util.ImageKit as ImageKit
import web
urls = (
'/(.*)', 'img2d'
)
class img2d:
def GET(self, name):
cml = opsin.NameToStructure().parseToCML(name).toXML()
str_reader = StringReader(cml);
cmlr = CMLReader()
cmlr.setReader(str_reader)
chem = cmlr.read(ChemFile());
mol = chem.getChemSequence(0).getChemModel(0).getSetOfMolecules().getMolecule(0)
sdg = StructureDiagramGenerator()
sdg.setMolecule(mol)
sdg.generateCoordinates()
mol = sdg.getMolecule()
ImageKit.writePNG(mol, 300, 300, "./static/test.png")
print '<h1>' + name + '</h1>' + '<img src="/static/test.png" />'
if __name__ == "__main__": web.run(urls, globals())
http://localhost:8080/(2,3-diethyl-benzyl)-isobutanolというURLにアクセスすると、IUPACを2次元構造に変換していい感じに描画して表示してくれる。

ImageKitが必ずファイルに出力するのでテンポラリのファイルを作ればいいのだけど、とりあえず動く事を確認したかったので決めうちの名前で。
29062008 life
なんか最近釣りに行かなくなったんだけど、昨日は久々にボート釣りに行ってきた。 ボート釣りはやっぱ楽しいのお。

5時半とちょっと遅めに漕ぎだして、10時くらいまで。雨が20%位という予報だったけど、ふらないどころか晴れてきた。

キスはまぁまぁ釣れて満足。

沖のほうまで漕いでいくと結構いろいろ釣れて楽しい。後半アナハゼばかりで飽きたけど。
あと黄色いひげのある赤い魚を初めて釣った。アカイオジサンと命名したけど、やっぱおじさんと呼ばれているらしかった。正式名はヒメジというそうだ。
29062008 chemoinformatics life
かなり消化不良だが読み終えた。
一応、僕はデザイン関係ではなくて、製薬の企業でデータマイニングとかの研究がメイン。マイニングするためのデータが欲しいという理由で、webのシステム組んだり、データを集約するための仕組みをあれこれ考えたりとかしている(今は)。だから、ターゲットとしている読者からは離れているかもしれない。
概要は正直辛かった。バックグラウンドが乏しいので、「誰の何とかが提唱したなんとかは」みたいに書かれても、なかなか自分の中でつながっていく感がなかった。ある程度分かっているヒトが読むとつながっていく感が感じられて面白いんだろうなとは思ったんだけど。第一部の概要は読んでて辛かったので途中で投げ出した、二週間くらい。他の本(ロベールとか)読んでて読むものがなくなってまた読み始めたって感じだった。
で、実践編はなかなか面白かった。ポストイットを張りながら読んだ。こっちを読んで考えながら一部の概論に立ち戻るという読み方が正解だったかなと、今は思う。
結局ペルソナっていうのは、TDDでのテストとかBDDの仕様に近いもんなのかなと。安心して戻ってこられるよりどころみたいな。
昔考えた人工無脳ケミストもそういった観点で捉え直せば、ケモインフォマティクスのためのアジャイルプロセス用ツールとして使えるかもしれんなと思った。
参考文献の中でおもしろそうなのを読んでいこうかな。
29062008 chemoinformatics jython opsin
CherryPyはSignalがないぜよっていうエラーを解決できなさそうだったのであきらめた。
webpyはSSL関係のクラスをコメントアウトして830行あたりをちょっと修正すれば動く。
これで、cgiとかサーブレットみたいな面倒な手段をとらなくても、javaライブラリとwebserverをつなげられる。
例としてIUPAC名をCMLに変換するjavaライブラリであるopsinを利用したwebappを作る
import uk.ac.cam.ch.wwmm.opsin as opsin
import web
urls = (
'/(.*)', 'hello'
)
class hello:
def GET(self, name):
i = web.input(times=1)
for c in range(int(i.times)):
print opsin.NameToStructure().parseToCML(name).toXML()
if __name__ == "__main__": web.run(urls, globals())
http://localhost:8080/benzeneってアクセスするとbenzeneのCMLがブラウザに出力される。
27062008 jython
fedora8にantが入ってなかったのでyum install antで入れた。
あとはsvn coしたらantって打つだけでOK
% ./bin/jython
Jython 2.3a0+ (trunk:4809, 6 27 2008, 21:45:52)
[Java HotSpot(TM) Client VM (Sun Microsystems Inc.)] on java1.6.0_06
Type "help", "copyright", "credits" or "license" for more information.
>>> def ytest(n):
... for x in range(n):
... yield x
...
>>> it = ytest(10)
>>> it.next()
0
>>> it.next()
1
>>> it.next()
2
OK。でも2.2.1でもfrom __future__すればいけるようだ。
Jython 2.2.1 on java1.6.0_06
Type "copyright", "credits" or "license" for more information.
>>> from __future__ import generators
>>> def ytest(n):
... for x in range(n):
... yield x
...
>>> it = ytest(10)
>>> it.next()
0
>>> it.next()
1
26062008 life
来た。
ケータイ開発とは無縁なので特集には惹かれないが、iKnowの話とかRubyでBDDあたりは面白そう。あと、openID,RESTあたりも。
perlはMooseの話。
というわけで、週末にちゃんと読もう。
小数点の切り上げはceil
(int) ceil(pointNeed);