PyCon JP 2011 に参加してきました。
参加メモを残します。
間違いがございましたら、ご指摘ください。
基調講演 [twitter:@tarek_ziade]氏
遠くは広島からこられた方がいました。いやー、遠いですね。
生 Tarek 。もちろん英語!
Package
聴きやすい、はっきりとした英語でいいね!
ななめ聞きしかできないけれど、資料を見つつ聞きました。
パッケージングは大変!
- 依存関係はどう定義するか。
- setup.py の役割は何か?
- 何がインストールされるか?
- バージョンをどうつけるか?
- データファイルをどう定義するか?
依存関係はどう定義するか。
依存性の段階でもいろいろあるよ!
モジュール、パッケージ、システム。
あと、Windowsにどう入れるの?
Distutils Setuptools OS-Packaging
大変だけど、PEP 345 Metadata v1.2 で解決できる。
setup.py の役割は何か?
色々するけど、いろいろ書きすぎるし、
Python コードだし、管理が大変。
これを setup.cfg で簡素化していくらしい。
ini 形式。no python needed here! w らしい。
pytohn 3.3 で導入される pysetup でsetup.cfg を
create。sphinx-quickstart と同じ感じで入力していく。
これで解決。
何がインストールされるか?
Distutils、easy_install、Pip の3種類のインストールされた
パッケージ管理フォーマットがある。
ここでも PEP。PEP 376 が参考になる。
インストールされたパッケージを管理するためのPEP。
動画を見せるのはいいね。参考にします。>> PHPCon JP 2011
pysetup を使って管理する。
バージョンをどうつけるか?
tip で書かれたバージョンとか、長すぎる名前とか
過去に実際PyPIで出された。ひどい!
これも PEP 386 Standard version scheme で
対策しよう。
1.2.dev<1.2<1.2.2
などのバージョン管理にしよう。
データファイルをどう定義するか?
VIDEO IMAGE ISO などどこにあるか、、、
これはsysconfig.cfg で対処しよう。
Roadmap
Pytohn 3.3 から上記の機能を所有した distutils2 の
利用ができるようになるよ!
今風の 5 Tips
Tips
1. PEP 386 バージョン体型を使う
2. できるだけひとまとめにsetup.pyを作る
3. インストーラの利用を前提としない
4. PyPIに不安定版をリリースしない
5. データファイルに気を付ける
Python 3
3.2まで徐々にバージョンが上がってきた。
パッケージ数は最近やっと500を超えたあたりで
もっと多くのパッケージのバージョンアップが求められる。
だけど、Numpy、SQLAlchemyなどが使える。
でもやはり、Django、Pyramidなどがいまだ移行できず、困った。
感想
aptと似た感じと思ったので、何か参考にしたかどうか
尋ねたかった。
C APIへの誘い![twitter:@cocoatomo]氏
構造体と関数ポインターがわかる人向け。
C使っていないから難しかった。
C API の読み方、使い方
Py[型名]_[処理名]でCの関数名を書く。
ヘッダとライブラリを読みこめばコンパイルできる。
PyNumber_Add は+が対象の処理をいろいろしていて複雑。
初期化->処理->終了処理
の流れで記載する。
Pythonから使う
静的に組み込むことができる。
動的に読み込むことができる。
実際にCで何か作ってないので、わからない。
クラスも作れます。
modules/xxsubmodule.c というサンプルがあるはず。
Pythonエンジニアの作り方 [twitter:@tk0miya]氏
blockdiagの人。#世界の小宮
Pythonに出会ってからの体験談
16-29は他の言語使っていて、ラスト2年Python使った。
あるあるってな感じの人になっている。
新しいツールや手法を取り入れず、ツール作っても
他に似たツールがあったりでリリースぜず、何も作らなかったらしい。
お小遣い帳など。
- Pythonとの出会い
偶然、同僚がPythonistaだった。
最初は普通の【シンプルかつストイック】な言語だと感じたらしい。
- Develop with Python
Visioを使っていたが、ファイルの編集に飽き飽きし、blockdiag 作ってしまった。
- 決心
自分がどう変わったのか
でも素晴らしツールだから、公開しよう、発表してこうと思った。
Demoを入れると伝わるよ!!
まとめ
- 何かを作りましょう
- ブログ、発表などでアウトプットしましょう
- 楽しもう!
ブーイングなんてされない。
発表では顔を上げてもらうようにしよう。
感想
何かパッケージなんでもいいので、パッチ当ててみたい。
PHPCon の発表が ls コマンドの説明レベルなので困った。
お昼
[twitter:@bakorer]氏
[twitter:@kazutoyo]氏
[twitter:@wakadannacom]氏
と知り合った!
[twitter:@shimizukawa]氏に再来週の
スタートSphinxの助言をいただけた!
Guidoへの5つの質問
- 多言語化について。
英語のみ極端な多言語化法やだと、PEP 3131 をみて。
ユニコード使えるよ。
- Pythonを追加しし後悔した機能。
reduce()
- Python3への置換えで重要な点
ライブラリの書き換え
- Python以外の進めたいg年後
- 今後のPythonへ影響を与える事象は?
生物や、神経系、ソーシャルグラフが影響を与えるのでは?
http://goo.gl/jtnBK
Pythonで創るソーシャルゲームの未来 [twitter:@horiuchi]氏
GUMI CTO horiuci
Pythonの利用状況
いろいろPythonとかsouth、capistrano、Redmineを使っている。
AWSに環境を作っています。
Tuning Python Code [twitter:@methane]氏
ボトルネックを探す
DiskIO Network Latency PacketLoss TTL が
ボトルネックになりやすいよね。
探すには、top dstat strace などを使って探しましょう。
strace -c python -c などで
システムコール何回呼ばれたか探せます。
CPUがボトルネックだったら
deterministic: 関数に入った時と出たときの時間がわかる
statstical: プログラムのどこを今実行しているのかわかる
deterministicはバイナリが必要だったり、遅くなったりする。
stasticalは十分な時間をとらないと行けないし、stdlibにはない。
cputime(計算した時間) wallclocktime(実時間) を測れる。
sigperf(稲田さんが作成されたもの)を使うと
実行中の状態を取得できる。
早いコードを書く
まずは、より良いデータ構造とアルゴリズムを選択すること。
その上高速化する。
遅い理由としては、下記のPython由来の問題がある。
バイナリーレベルでは、特にループの中で、
グローバル変数、関数を呼ばないようにする。
ローカル変数に入れるのもよい。
できるだけ、Cで書かれているものを利用する。
循環参照も削除する。
Pythonで働くということ
各社各社で違うんだなあと思った。
GUMIはいけいけの体育会系だし、
BeProudは職人気質、
Nexediは独自路線。
どの会社も面白そうですね。
Closing
皆様お疲れ様でした。
エキスパートPythonプログラミング
参加した方で、この本を高評価している人が多かった。
私もこの本が Python 界のスタンダードになればいいなと思います。
- 作者: Tarek Ziade,稲田直哉,渋川よしき,清水川貴之,森本哲也
- 出版社/メーカー: KADOKAWA/アスキー・メディアワークス
- 発売日: 2010/05/28
- メディア: 大型本
- 購入: 33人 クリック: 791回
- この商品を含むブログ (90件) を見る