A Face for Richie Hawtin

ruby-processingのところのGalleryにあったA Face for Richie Hawtinはマイクの音に反応する。

ffrh

椎名林檎の時は暴走するを流して適当にスクリーンショットを撮ってみた。

あとでコードをちゃんと見てみる。

Rubyで作る奇妙なプログラミング言語

予約した

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

Quine

Esotericを読み始め。

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

一章の練習問題にファイルのオープンを使わないでQuine

rubyだとかなり短く書けるのね。

printf a="printf a=%p,a",a

perlだとsigilが必要な分だけ難しいなぁ。

シングルクォートをq{}にして$_に入れてevalするとか。

HQ9+

HQ9+の実装終了。

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

HQ9+のQはQuineのQだったのね。

Brainf*ck

Brainf*ckの実装を通して、チューリングマシンに対する理解が深まった。

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

この本おもしろいですのう。

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でなんか作ってみよう。