Starry

スタック型のオリジナル言語を本を読みながら写経

サポートサイトの正誤表

ProductName Rubyで作る奇妙なプログラミング言語 ~Esoteric Language~
原 悠
毎日コミュニケーションズ / ¥ 2,814 ()
在庫あり。

シンタックスとセマンティクス

次は最後の言語で、再帰下降パーサを使って構文解析をするやつを作るらしい。Higer-Order Perlだと8章あたり。

Bolic

再帰下降パーサを利用して、Unicodeを利用した言語を実装

ProductName Rubyで作る奇妙なプログラミング言語 ~Esoteric Language~
原 悠
毎日コミュニケーションズ / ¥ 2,814 ()
在庫あり。

  • 式と文の違い
  • 変数の実装

というわけで、一通り読了。Rubyの初級者向けの本としても良かった。コードの解説が丁寧だったので、たいしてRubyを知らなくてもすっと入っていけた(素晴らしい!)

言語実装的には、特にスタック型の言語を実装してみたおかげで、なんでも継続がかなり理解できて、満足の一冊。

あと読み終えたら、SICPで飛ばしていた、レジスタ計算機の実装のところがちょっと気になり始めた。

ProductName 計算機プログラムの構造と解釈
ジェラルド・ジェイ サスマン,ジュリー サスマン,ハロルド エイブルソン
ピアソンエデュケーション / ¥ 4,830 ()
在庫あり。

さらに、実践Common Lispも読んでおくかなぁという気にさせられた。

ProductName 実践Common Lisp
Peter Seibel
オーム社 / ¥ 4,410 ()
在庫あり。

pylonsはじめました

pylonsはじめました。なかなか面白そうです。

とりあえず、getting startedflickr search tutorialはやってみた。

catalystとかJiftyとかturbogearsとか(RoRもそうだっけか?)はとりあえずプロジェクトを用意して何も考えずサーバー起動してアクセスすると小洒落た画面がでてきて、おー!ってちょっとした感動を覚えたりするんだけどpylonsの場合はそういうのなしの方向で。

ただ、エラー吐かすとなんかすごいよ。エラーから入らせるとは、、、テストファースト?

QuickWiki Tutorialに続く、、、

python2.5でBioPythonを使う

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でガリガリ書くよっていうヒトはあんまし見かけたことないんですよね。

pylonsでQuickWIki

またwikiかよ、、、と敬遠しがちなWikiを作ろうチュートリアルだけど、フレームワーク自体はじめてのヒト向けには素直に書かないといけないし、幾つかのフレームワークを渡り歩いたヒトにも新たな発見とか他のフレームワークとの違いを見せるようなサンプルにしないといけないので、意外と構成を考えるのが難しいですな。

そういった意味ではpylonsでwikiを作ろうチュートリアルはdeleteの実装がajaxでのドラッグドロップになってて、しかも簡単に実装できる!っていう喜びが得られてナイスな感じ。

  • modelまわり
  • 他のパッケージの依存や自動インストールのやり方
  • ルーティングの方法
  • Ajax関連

ルーティング周りをちょっとよく理解していないのと、Ajaxがあっさり書けすぎてて何をやっているのかわからなかったので、あとでpylonsでなんか作ってみよう。

Bioinformatics Programming in Python

Bioinformatics Programming in Python: A Practical Course for Beginners という書籍が出るらしい。

ProductName Bioinformatics Programming in Python: A Practical Course for Beginners
Ruediger-Marcus Flaig
Wiley-VCH / ¥ 7,525 ()
通常1~3週間以内に発送

TOC見る限りはあんま欲しいとは思わないけど、他にもpythonでbioinformaticsという本が2冊くらいは出るらしいので、そっちのほうに期待。

pythonで画像のリサイズ

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"![%s](http://www.kzfmix.com/images/blog/%s)" % (now,now + ".jpg")

1203853093

あとはドラッグドロップで転送するようにする

PILの画像の圧縮

昨日のPILのリサイズ後のザラザラ感が気になったので、フィルタを比較してみた。きろくを圧縮

左上から右下に向かってnearest,bilinear,bicubic,antialias

nearest bilinear bicubic antialias

antialiasが無難か。

MeadowのPython-modeでタブるのを何とかする。

pylonsのサンプルとか練習してるときに、気を抜くとインデントかおかしいじゃろがぼけーってエラーが出るのがちょっといやだったので、ふと調べたら、さっさと対応しとけばいい話だった。

nilっとく

デフォルトがタブってのもなんかあれ。

電子工作なめてた

超面白そうなことに気づかされた。勢いでGainerを注文した。

ProductName +GAINER―PHYSICAL COMPUTING WITH GAINER
GainerBook Labo,くるくる研究室
九天社 / ¥ 3,780 ()


ProductName MASHUP++
鹿倉 公維,澤久 裕昭,原 央樹,セトウ ナオ,タナカ ミノル,三宅 涼,宮下 剛輔,さうなまん
九天社 / ¥ 3,360 ()


pydevcamp2008の電子工作のセッションが楽しみ。

えと、クラブでDJがアンセムとかかけっときに、ライティングがブワーとかやって盛り上げるんだけど、それって、フロア遅行型だよなと。むしろフロア先行型的に、フロアから自然発生するムクムク感みたいなのをセンサーで感じ取って、フロアの熱気に応じてズガーンって盛り上げたらどうなるんだろうかとか思ったけどそれもまたフィジカルコンピューティングじゃろか。