12012010 Ruby
スタック型のオリジナル言語を本を読みながら写経
シンタックスとセマンティクス
次は最後の言語で、再帰下降パーサを使って構文解析をするやつを作るらしい。Higer-Order Perlだと8章あたり。
12012010 Ruby
12012010 Ruby
pylonsはじめました。なかなか面白そうです。
とりあえず、getting startedとflickr search tutorialはやってみた。
catalystとかJiftyとかturbogearsとか(RoRもそうだっけか?)はとりあえずプロジェクトを用意して何も考えずサーバー起動してアクセスすると小洒落た画面がでてきて、おー!ってちょっとした感動を覚えたりするんだけどpylonsの場合はそういうのなしの方向で。
ただ、エラー吐かすとなんかすごいよ。エラーから入らせるとは、、、テストファースト?
QuickWiki Tutorialに続く、、、
12012010 chemoinformatics bioinformatics Python
python2.5に入れる場合はNumericがsourceforgeになかったり、MxTextToolsの古いバージョンを入れたりとか、いろいろとあれなので、ドキュメント読みましょうってことです。
で、RCSBからgz圧縮されたpdbファイルをとりにいってBioPythonで扱うサンプル
import urllib2, StringIO, gzip
from Bio.PDB.PDBParser import PDBParser
def fetch_pdb(id):
url = 'http://www.rcsb.org/pdb/files/%s.pdb.gz' % id
content = urllib2.urlopen(url).read()
sf = StringIO.StringIO(content)
return gzip.GzipFile(fileobj=sf)
if __name__ == "__main__":
p=PDBParser(PERMISSIVE=1)
s=p.get_structure("1bgw", fetch_pdb("1bgw"))
for model in s.get_list():
for chain in model.get_list():
for residue in chain.get_list():
if residue.has_id("CA"):
ca_atom=residue["CA"]
print ca_atom.get_coord()
ところで、製薬系のドラッグデザインっていうかchemoinformaticsなSoftwareはpythonで拡張できるものが多いんだけれども、その割にはpythonでガリガリ書くよっていうヒトはあんまし見かけたことないんですよね。
またwikiかよ、、、と敬遠しがちなWikiを作ろうチュートリアルだけど、フレームワーク自体はじめてのヒト向けには素直に書かないといけないし、幾つかのフレームワークを渡り歩いたヒトにも新たな発見とか他のフレームワークとの違いを見せるようなサンプルにしないといけないので、意外と構成を考えるのが難しいですな。
そういった意味ではpylonsでwikiを作ろうチュートリアルはdeleteの実装がajaxでのドラッグドロップになってて、しかも簡単に実装できる!っていう喜びが得られてナイスな感じ。
ルーティング周りをちょっとよく理解していないのと、Ajaxがあっさり書けすぎてて何をやっているのかわからなかったので、あとでpylonsでなんか作ってみよう。
12012010 bioinformatics Python
Bioinformatics Programming in Python: A Practical Course for Beginners という書籍が出るらしい。
Bioinformatics Programming in Python: A Practical Course for BeginnersTOC見る限りはあんま欲しいとは思わないけど、他にもpythonでbioinformaticsという本が2冊くらいは出るらしいので、そっちのほうに期待。
PILを使うと簡単にかける
Image.open(f).resize((480,360)).save(outfile)
と書くだけで読み込んでリサイズして別名で保存できる。そんな感じで、とりあえずflickrのかわりに、リサイズして保存したらmarkdown書式でURLを出力するようなスクリプトを書いた。
import sys,datetime
import Image
if len(sys.argv) < 2:
print sys.argv[0], " image_file"
for f in sys.argv[1:]:
now = datetime.datetime.now().strftime('%s')
outfile = "/var/www/html/images/blog/" + now + ".jpg"
Image.open(f).resize((480,360)).save(outfile)
print r"" % (now,now + ".jpg")

あとはドラッグドロップで転送するようにする
pylonsのサンプルとか練習してるときに、気を抜くとインデントかおかしいじゃろがぼけーってエラーが出るのがちょっといやだったので、ふと調べたら、さっさと対応しとけばいい話だった。
デフォルトがタブってのもなんかあれ。