Doge log

Abby CTO 雑賀 力王のオフィシャルサイトです

virtualenv

最近、流行りのvirtualenvですが、仕組み的なものにあまり触れられてないように 思えたので書いてみます。 機能 とりあえずvirtualenvの機能は ライブラリがまっさらな状態な環境を作る 作られた環境に対してのみモジュールをインストールできる です。 これ…

yolkとpipは早いとこ合流して欲しいという話

最近pipが少しづつ認知度があがってきてるんだけど、まあ貧弱 or 弱貧だよね。 だってsearchできないじゃんとかまあいろいろある。なのでyolkを使うんだけどさあ。 yolkはpackage情報を色々を出力してくれるツール。 Error 404: File Not Found | Assembla …

tg2の話

tg2のスタンスというか位置づけってどうなんだ!?と思ってたら書いてあったのね。 http://ledmonster.seesaa.net/article/86217260.html いやあまさしくこの通りですね。 Pylons にとってのTurboGears 2 は、Debian にとっての Ubuntu のようなものである。…

モダンPython開発環境入門

今日、KevinさんところにBespinの話が出ててそいつを見てて思った。 最近のpython開発環境はこんな感じだろうと。 エディター 軽量なものが好まれてるのはまあどこもみんな同じだろう。 vim emacs TextMate MacだとTextMateを使ってる人がやはり多いっぽい。…

Bespinのbackendがpythonで書かれている理由

GAEで動かすためですね。わかります。

MakoのTagを追加する

MakoのTagの追加方法を誰も書いていないようなので適当に書いてみる。 from mako.parsetree import Tag from mako.template import Template from mako.codegen import _GenerateRenderMethod class TestTag(Tag): __keyword__ = 'test' def __init__(self, …

pythonistaのためのphp用の開発サーバ

phpで開発する時の開発用サーバとかよくわからなかった。 未だにapacheとか云々するのもなんだかなあと思うんだけど。 まあpythonistaならwphp使うよねって話。wphp http://pythonpaste.org/wphp/こいつはwsgiのインターフェイスでphpをfastcgiで動かしてく…

きっかけの話

pythonからdjangoにたどり着くか djangoやりたいからpythonにたどり着くか この違いは意外に大きいのかも知れない。成長するという意味で。 僕は前者だったけどもー。

ライブラリの話

http://d.hatena.ne.jp/tokuhirom/20090219/1235034086 を見て。pythonの場合ってどうするか? 最近ならばpipでbundleつくりゃあいいんじゃね?で終わりかと。 ちょうどいいエントリがあったので紹介。 http://d.hatena.ne.jp/pyxis-dev/20090219/1235012848

Jinja2かMakoか

こんにちわ、Pの付く言語なのに全く相手にされていない言語:Pythonを使ってるmopemopeです。 完全に私事ですが、普段やっつけ仕事(コード生成とか)で使ってるのはCheetahだったりするんだけど乗り換えようとちょい調べました。 最近ならば「Jinja2使え!ボ…

Django勉強会について

ネタが尽きてる感があるのでもうPython勉強会にしませんか?

タプルのリストとGC

Issue 4074: Building a list of tuples has non-linear performance - Python tracker こんな問題があったのかー。 2.7、3.1では修正されてます。

Python力を高めるためのライブラリコードリーディング

id:yuroyoroがpython力を高めるとか言ってたのを聞いて、自分の場合どうだったかなあと。 思い入れがあるものを簡単に。まあ参考になれば。 pure python系 まずはpure python系 django 結構python初心者のころからdjangoのソースは読んでた。 多分、今ほど大…

Plufが日本のdjango厨の間でそれほど話題になっていない件

http://www.pluf.org/ どーせpythonで仕事させてもらえないならもっと食いつけ! と言いたい。 でも「phpだからなあ。。。」って気持ちもわかりますよ!

Filename Filter

ただ単にfnmatchを使いたかっただけ。 import fnmatch import os import os.path ignore_files = ['*/.svn/*', '*/CVS/*', '*.pyc'] for root, dirs , files in os.walk('.'): for file in files: path = os.path.join(root, file) ignore = reduce(lambda x…

なんとなく

http://d.hatena.ne.jp/yappo/20090204/1233731596 をみて。 参考になれば Eventlet - Second Life Wiki Google Code Archive - Long-term storage for Google Code Project Hosting. http://opensource.hyves.org/concurrence/

Pluginシステムの実装

ちょっとPlugin的なものを実装しようとしてたら行き着いた。 http://lucumr.pocoo.org/2006/7/3/python-plugin-system importする仕組みはよくあるのでわかるんだけど。 読み込んだモジュールからPluginクラスを抽出するスマートな方法が書いてあったので紹…

werkzeug その2(Routing基礎)

前回とりあえずテスト用サーバの起動、何かを表示するまでをやった。 早速Requestを作って云々したいところだけど、先にRouting部を見ていく。 Routing System Routing SystemとはURLと実処理である関数の紐づけする仕組みの事。 werkzeugはこの機能も提供し…

Ellipsisの話

某所で見て思い出した。 ...ってpythonでも使えるって例。 class Test(object): def __getitem__(self, item): st = item[0] ed = item[2] return xrange(st, ed) t = Test() for i in t[1,...,10]: print i 出力 1 2 3 4 5 6 7 8 9 ...はEllipsisってtypeに…

werkzeug その1

werkzeugのチュートリアルを見てもいいんだけどせっかくなのでスクラッチから Webアプリケーションを組んでみたいと思う。 最終的にDBを絡めて簡単な投稿フォームとかまでできたらやりたい。 はじめの一歩 とりあえずwerkzeugをインストールする 大概はこれ…

ファイルの監視

http://d.hatena.ne.jp/jYoshiori/20090121/1232526865 autotestか!っていうコードだけど。 Linuxならpyinotifyを使えばいいんじゃないかな。 from pyinotify import WatchManager, Notifier, IN_MODIFY, ProcessEvent wm = WatchManager() mask = IN_MODIF…

geodjango

かなり周回遅れ気味だけど言っておこう。 すげー! 予想通りGoogle Map用のWidgetもついてるんだなあ。 ちょっと色々いじってみよう。

PythonでOracleに接続する

そーいえば真面目にやったことなかったのでメモ。 Oracle clientのダウンロード とりあえずpure pythonでは動かないのでOracleのサイト からclientをダウンロードする必要がある。 http://www.oracle.com/technology/software/tech/oci/instantclient/index.…

werkzeug

何かと最近話題のwerkzeugですが、こいつが一体なんなのか 書いてみる。 werkzeug ドイツ語で工具を意味する。pythonistaがwebアプリケーション 開発を書くための工具であるようなライブラリ。 (あくまで工具である) 具体的にはWSGI Utilityで、粒度の小さ…

Django勉強会 Disc6

皆様勉強会お疲れ様でした。 とりあえずいろいろ書いておいたら時間切れになってしまって申しわけありません。 (資料はメールしておきます)資料自体はreSTで書いて、bruceを使って描画してみたのですがなかなかbruceいいです。あと昨日印象に残ったのはid:…

今年のふりかえり

とりあえず裏でコツコツ勉強しようと思ってた年だった。 来年からは少しエントリ増やす予定です。 まああと来年からPythonに本腰入れますよ!!

入れてるモジュール

最近Ubuntuをセットアップしたので入れたモジュールを挙げてみる。 In /opt/python26/lib/python2.6/site-packages: Zipped packages: PyAMF-0.3.1-py2.6.egg Tempita-0.2-py2.6.egg WebOb-0.9.4-py2.6.egg WebTest-1.1-py2.6.egg pyOpenSSL-0.7-py2.6-linux…

実装モジュールを切り替えるモジュール

昨日のコードをモジュール化するtry except ImportErrorとか多い書く人にはいいかも知れないな modinstaller.py from abc import ABCMeta, abstractmethod import sys def install(imports, *args, **kwargs): global _mod_name, _imports local = sys._getf…

実装モジュールを切り替える

pythonの定番パターンだと思うんだけどあんまり書いてなさげなので書いておく。 twisted厨にはおなじみのコードなのでtwisted厨はよまなくて良し!! 実装を抽象化しておき、モジュール切り替え + シングルトン化で使用する側は実装 を意識しないでよくする…

Python3000のパフォーマンス

The net result of the 3.0 generalizations is that Python 3.0 runs the pystone benchmark around 10% slower than Python 2.5. Most likely the biggest cause is the removal of special-casing for small integers. 以前は33%ぐらい遅かったはずなので…