immutableクイズ

http://www.nishiohirokazu.org/blog/2007/03/immutable.html 西尾さんとこにimmutableクイズ リスト(のようなものまでOK?) をハッシュのキーにするコードの中間を埋める. hashをなんとかすればいいので、__hash__を入れ替えてみる >>> x = [0] >>> x.__hash…

mod_wsgi 試運転してみていた

公式リリースがまちどおしいmod_wsgiをsvnから取って動かしてみてました。 導入はとても楽だった。 ./configure && make && make install でいいと思う。 僕はmakeしたあと手動でmod_wsgi.so をコピーしたけど。 (ちなみにlinuxだと.libsのしたにmod_wsgi.so…

projectやsummary レベルのドキュメントは, menber要素のname属性で, P:やN: のプリフィックスをつければいいらしい. <doc> <assembly> <name>foo</name> </assembly> <members> <member name="R:Project"> <summary> This is the project summary </summary> </member> <member name="N:foo"> <summary> This is the NS summary </summary></member></members></doc>

wsgi environ

ドキュメントには書かれていないが, requestオブジェクトのenvironアトリビュートからWSGI環境辞書にアクセスできる. WSGIミドルウェアはこの辞書に情報をのせてくることが多いので要チェック

mod_wsgi の登場が近い

http://d.hatena.ne.jp/perezvon/20070320/1174363964 http://d.hatena.ne.jp/Voluntas/20070320/1174372431google code にホスティングされているようで. さすが軍曹svn からとれるので試してみた 環境は, Macbook Mac OSX 10.4 付属のApacheのバージョンは…

10分で作るエディターのその後

pydevcamp2007w のライトニングトークで作ったエディターです. 少し手を入れたのでHGで晒しときます.http://aodagx.ddo.jp/cgi-bin/hgwebdir.cgi/e10取得するには, hg mercurial をご利用のこと. http://www.selenic.com/mercurial/wiki/ から入手できます. …

Lighty + SCGI + Flup + Colubrid で動かしてみようとしてみたけど

タイトルの組み合わせでうまく動いてくれない. class MyApplication(WebpyApplication): urls = [ (r'^blog$', Blog), (r'^(index)?$', Site), ] 上記のディスパッチャを組んでみたが, 常にSiteを呼び出してしまう.調べてみると, Colubridはリクエストディス…

関西Workshop01

行ってきました。 ライトニングトークの資料は以下のURLにおいてあります。 http://aodagx.ddo.jp/aodag/kansai_workshop01_lightningtalk_wsgi.pdf 内容はWSGIと、WSGIはてな認証ミドルウェア。ymasudaさんのDjango紹介 基本から内部動作、最近の動向(ymasu…

Colubrid

関西Workshop01で細江さんがライトニングトークしてくださるColubridを予習 http://wsgiarea.pocoo.org/colubrid/基本はリクエストディスパッチャー。 そして、WSGI対応。 ディスパッチに特化しているだけあって、多彩なディスパッチ方法をサポートしている…

SQLAlchemy単体で使用する場合のmodule_setup例

http://d.hatena.ne.jp/aodag/20070306/1173202454 のTGに頼らない方法 import model from sqlalchemy import * def setup_module(module): dburi = "sqlite:///:memory:" engine = create_engine(dburi) engine.echo = 1 model.metadata.connect(engine) mo…

テスト結果通知のアイディア

Mac限定で、growlという通知ツールがあって結構便利。 テスト結果をここに出したい。 py.testで考えてみたけどテスト結果をフックする方法が見当たらない。 noseにはplugin機構があって、テストレポートもプラッガブルにできるようだ。 growlへの通知自体はg…

Ambrai Smalltalk

http://www.ambrai.com/index.htmlsmalltalkからcocoaを使えるらしい。 たまらんです。

python出版ラッシュ

がんがん出てきますなPythonプログラミング入門 https://products.locus.co.jp/index.php3?dtl=pb910

& とか < とかエスケープするには

htmllibにあるかと思ったけど見当たらない。 とりあえず xml.sax.saxutils にあるのを発見 >>> xml.sax.saxutils.escape('a & b') 'a & b' >>> xml.sax.saxutils.unescape(xml.sax.saxutils.escape('a & b')) 'a & b'

WSGIはてな認証ミドルウェア

WSGIの勉強としてはてな認証ミドルウェアを作っちゃいました。 """ WSGI middleware for Hatena Auth """ import md5 import base64 import re import urllib import urllib2 import simplejson certUrl = "http://auth.hatena.ne.jp/auth?api_key=%s&api_si…

翻訳中

2 py.test の基本機能 は一通り訳した http://aodagx.ddo.jp/aodag/translation/test_ja.html

IronPython本が出るらしい

去年から続くPython本出版ラッシュ。今年は何冊でるのだろうかhttp://www.cbook24.com/bm_detail.asp?sku=9784797339390 IronPythonの世界 ASIN:9784797339390

Lingr

合宿で使ったTurboGears部屋を今後もTurboGearsに興味を持っている方たちの雑談の場として、残すことにしました。 http://www.lingr.com/room/turbogears-ja

TurboGearsでSQLALchemyを使用している場合にpy.testでモデルをテストする方法

test.cfgでdburiをテスト用のDB接続に設定する。 以下はSqliteのオンメモリDBを使う例 sqlalchemy.dburi = "sqlite:///:memory:" model.py内のセットアップを以下のようにする。 def setup_module(module): database.bind_meta_data() database.metadata.eng…

PyDevCamp2007w おつかれー

ということで、Python合宿 Python Developers Camp 2007 winter に行ってきました。 今回はTGプログラムのリーダー + プログラム進行まとめ という役割付き。 単に参加する以上に良い経験をしたと思います。 ネタも大放出しました。PyQt, py.test, GlowArcと…

とりあえずここで書いてた分*1をマージしました. http://aodagx.ddo.jp/aodag/translation/test_ja.html *1:2.10 テスト実行順序 まで

TODOリストアプリケーション

合宿のお題TODOリストアプリケーション とりあえず作ってみた。 http://aodagx.ddo.jp/aodag/todo30.tar.bz2 モデルを考えながら所要時間40分 ウィジェットを使ったのでHTMLを書く手間は省けた ユーザー管理はCatwalkを使う前提追加した方がいいと思うもの …

2.10 テストの実行順序

通常はファイル中に記述された順にテストを実行する。 しかし、テストは他のテストの後に実行されることを前提とすべきではない。 こうしてしまうと、より進歩した使い方を妨げることになる。 例えば分散的にテストしたり、選択的にテストしたり、"loopuonfa…

そろそろ

http://aodagx.ddo.jp/aodag/translation/test_ja.html reSt形式にまとめていきます。

2.9 print文でのデバッグ

http://codespeak.net/py/dist/test.html#debug-with-the-print-statement通常は、py.testはそれぞれのテストが実行中に、標準出力と標準エラー出力に書き出す内容をキャッシュする。 この出力は、テストが失敗したときだけ画面に表示される。 そうでない場…

2.8 コマンドラインユーティリティと衝突しない

http://codespeak.net/py/dist/test.html#no-interference-with-cmdline-utilities py.testは主にコマンドラインツールとして用いられる。 複数のテストを同じファイルに書いて、コマンドラインで簡単に実行できる。自信なし

2.7 即座にテストする

http://codespeak.net/py/dist/test.html#testing-starts-immediately テスト収集プロセスで最初のテストを発見したら即座にテストを開始する。 収集プロセスは反復的で、最初のテストの実行が完璧に行われることを要求しない。

2.6 バージョンが異なる複数のPythonでテストする

http://codespeak.net/py/dist/test.html#testing-with-multiple-python-versions-executables --exec=EXECUTABLE で実際にテストするPython(例えばpython2.1など)を選択できる。

2.5 キーワードでテストを選択する

http://codespeak.net/py/dist/test.html#selecting-tests-by-keywordコマンドラインで指定したキーワードで選択したテストを実行可能だ。 例: py.test -k test_simple この例ではカレントディレクトリ以下の全てのテストのうちで、テストまでのパスの一部が…

SQLObjectでMATCH AGAINST を発行する。

http://d.hatena.ne.jp/tasukuchan/20070213/learn_turbogears ■[Python]TurboGearsを勉強するもMATCH AGAINSTできねっすということで勉強がてらMATCH AGAINST を発行する方法 from sqlobject.sqlbuilder import * class Match(SQLExpression): """ >>> Sele…