hdknr’s posterous

 
Filed under

python

 

Amazon.co.jp: Practical Django Projects, Second Edition (Expert's Voice in Web Development): James Bennett: 洋書

Comments [0]

Amazon.co.jp: Pro Django (Expert's Voice in Web Development): Marty Alchin: 洋書

Comments [0]

Amazon.co.jp: Expert Python Programming: Tarek Ziad: 洋書

Comments [0]

Pythonのみで開発されたウィンドウマネージャ samurai-x | エンタープライズ | マイコミジャーナル

samurai-xと呼ばれるウィンドウマネージャがある。説明によれば高度にモジュール化されており、柔軟な設定が実施できる。最大の特徴はすべてPythonで開発されていることにある。動作させるには2.5以降のPythonが必要。BSD Licenseのもとで提供されている。ウィンドウマネージャの拡張が従来よりも開発しやすいと説明されている。

Filed under  //   Python   X-Windows  

Comments [0]

Hadoop conference 2009に行ってきました | イベント | キャリア形成のお手伝い | あすなろBLOG

■ Elastic Map Reduceでお手軽 Wikipediaマイニング

数百行程度のpythonスクリプトで大規模データ処理を実現する例を紹介。90万記事程度のwikipediaの日本語を題材に
AmazonEC2/S3とElastic Map Reduceを活用。

結構実践的な話が多く、実際に試した人ならではの話(S3は頻繁な入出力が想定されていないインフラのようなので頻繁に読み書きがされる用途ではパフォーマンス面ではオススメできないとのこと)とか、実際の分析結果(年、国名とかが上位にくるがこれを除外するようにフィルタリングすると、明治、神部天皇とかがPagerankとして高い...)という話は面白かったなぁ。

AmazonEC2/S3、Elastic Map Reduce良い/悪い部分もまとめてくださいました。
-良い点:かんたん。小規模なジョブならMasterの値段分安い。お手軽。1時間1台0.1ドルなので、1時間100台1000円
-悪い所:多数のジョブを走らせる事を考えるともったいない。ログが見にくい(開発時には生産性低下につながる?)。独自のディスクイメージが利用出来ない。

Q.amazonのサービスは時間によってパフォーマンスの差があると聞いた事があるが、実際にそのような事があったのか?
A.ある程度台数をつかっているからかもしれないが、時間によって差があるというのはかんじられなかった。(せいぜい2,3分)
※アメリカの昼時間帯に実際にジョブを実行していたとのこと。

Filed under  //   Hadoop   MapReduce   Python  

Comments [0]

MySQL-python : easy_install で入れたら libmysqlclient_r.so.15 が必要。(Squeeze)

imporError

(jail)hdknr@mailjail:~/.ve/jail/src/djpostfix/djpostfix$ python
Python 2.5.4 (r254:67916, Feb 17 2009, 20:16:45)
[GCC 4.3.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import MySQLdb
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "__init__.py", line 19, in <module>

       File "/home/hdknr/.ve/jail/lib/python2.5/site-packages/MySQL_python-1.2.3c1-py2.5-linux-i686.egg/_mysql.py", line 7, in <module>
  File "/home/hdknr/.ve/jail/lib/python2.5/site-packages/MySQL_python-1.2.3c1-py2.5-linux-i686.egg/_mysql.py", line 6, in __bootstrap__
ImportError: libmysqlclient_r.so.15: cannot open shared object file: No such file or directory

削除

(jail)hdknr@mailjail:~/.ve/jail/lib/python2.5/site-packages$ rm MySQL_python-1.2.3c1-py2.5-linux-i686.egg

aptで入れなおす

(jail)hdknr@mailjail:~/.ve/jail/lib/python2.5/site-packages$ sudo aptitude install python-mysqldb
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています               
状態情報を読み取っています... 完了
拡張状態情報を読み込んでいます     
パッケージの状態を初期化しています... 完了
タスクの記述を読み込んでいます... 完了       
以下の新規パッケージがインストールされます:
  python-mysqldb
更新: 0 個、新規インストール: 1 個、削除: 0 個、保留: 0 個。
アーカイブ 94.8kB 中 0B を取得する必要があります。展開後に 336kB のディスク領域が新たに消費されます。
拡張状態情報を書き込んでいます... 完了
未選択パッケージ python-mysqldb を選択しています。
(データベースを読み込んでいます ... 現在 78680 個のファイルとディレクトリがインストールされています。)
(.../python-mysqldb_1.2.2-10_i386.deb から) python-mysqldb を展開しています...
python-mysqldb (1.2.2-10) を設定しています ...
python-support のトリガを処理しています ...
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています               
状態情報を読み取っています... 完了
拡張状態情報を読み込んでいます     
パッケージの状態を初期化しています... 完了
拡張状態情報を書き込んでいます... 完了       
タスクの記述を読み込んでいます... 完了 

OK

(jail)hdknr@mailjail:~$ python
Python 2.5.4 (r254:67916, Feb 17 2009, 20:16:45)
[GCC 4.3.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import MySQLdb
>>>
(jail)hdknr@mailjail:~$

(jail)hdknr@mailjail:~$ pip install MySQL-python
Requirement already satisfied: MySQL-python in /usr/lib/pymodules/python2.5
Installing collected packages: MySQL-python
Successfully installed MySQL-python

Filed under  //   easy_install   MySQL   pip   Python   virtualenv  

Comments [0]

pip って何(・ω・ ) - Djangoへの片思い日記

オンライン環境あるならbundleしなくてもいいみたい。
pip install -r mypackages.txt
で一式入る

pip freeze > mypackages.txt

Filed under  //   bundle   freeze   pip   Python  

Comments [0]

pip — pip v0.5.1 documentation

Using pip With virtualenv

pip is most nutritious when used with virtualenv. One of the reasons pip doesn’t install “multi-version” eggs is that virtualenv removes much of the need for it.

pip does not have to be installed to use it, you can run python path/to/pip.py and it will work. This is intended to avoid the bootstrapping problem of installation. You can also run pip inside any virtualenv environment, like:

$ virtualenv new-env/
... creates new-env/ ...
$ pip install -E new-env/ MyPackage

This is exactly equivalent to:

$ ./new-env/bin/python path/to/pip.py install MyPackage

Except, if you have virtualenv installed and the path new-env/ doesn’t exist, then a new virtualenv will be created.

Using pip with buildout

If you are using zc.buildout you should look at gp.recipe.pip as an option to use pip and virtualenv in your buildouts.

Using pip with virtualenvwrapper

If you are using virtualenvwrapper, you might want pip to automatically create its virtualenvs in your $WORKON_HOME.

You can tell pip to do so by defining PIP_VIRTUALENV_BASE in your environment and setting it to the same value as that of $WORKON_HOME.

Do so by adding the line:

export PIP_VIRTUALENV_BASE=$WORKON_HOME

in your .bashrc under the line starting with export WORKON_HOME.

必須。

Filed under  //   pip   Python   virtualenv  

Comments [0]

None is None is None: Pythonで特異メソッド

Pythonで特異メソッド

メソッドは普通class文の中で定義して、そのクラスのインスタンスはみんな同じメソッドを共有するものですが、
特定のインスタンスだけための特注品のメソッドを、特異メソッドと言います。

Rubyには特異メソッドのための構文がありますが、Pythonにはありません。
しかし、Pythonでは特異メソッドは不可能・・・というわけではありません。

それにはnew.instancemethodを使います。

import new
new.instancemethod

Filed under  //   Python  

Comments [0]

特異メソッド

特異メソッド

Ruby におけるインスタンス特異的なメソッド(instance-specific method)のこと。singleton method、singular method などと英訳され呼称されることもあるが、日本語の特異メソッドを含めいずれも一般的ではない、Ruby 独自の用語。デザインパターンの Singleton 関連のメソッドと混同されがちだが両者は(まったく…というわけではないが)あまり関係ない。

Ruby 設計者、まつもと氏による直接の言及はないが、一連の発言から、おそらくは、CLOS総称関数における EQL スペシャライザ(引数のクラスを指定する代わりに、指定の書式により特定のインスタンスに限定できる)をヒントに Ruby に組み込まれた機能。ただエンドユーザーがイメージする動作モデルとしては、この EQL スペシャライザより SELF などインスタンスベース言語におけるメソッドの扱い、つまり、属するクラス(もしくはトレイト)ではなく、インスタンスそれ自身が自分専用のメソッドを持ったり、それを起動する様子のほうがより似ている。自ら言語学者を称する まつもと氏は、当然、SELF もかじっているはずなのに、この特異メソッドの発想が SELF ではなく CLOS からの影響だとする理由は不明。--sumim

  • その後のやりとりで判明したことだが、どうやら SELF については、まつもと氏はこれを軽視して(ミックスインなど、Ruby のプライオリティを主張するために必要なことも含め)あまり詳しくないらしい。--sumim

Ruby にはメタクラスがあり、クラスはそのインスタンスという扱いになっているにもかかわらず、Ruby のクラスメソッド(すなわちオブジェクトとしてのクラスがメッセージを受信して起動することができるメソッド)は、あえて、この特異メソッドで実現されているため扱いに注意を要する。--sumim

難しい。
- instance-specific method
- singleton method
- singular method
- CLOS 総称関数 EQL スペシャライザ

Filed under  //   Python  

Comments [0]