PyCon2011。論文の要約

3月11日から13日まで、ジョージア州アトランタでPyCon 2011開発者会議が開催されたことが知られています。



以下の記事では、ほとんどのレポートの概要とビデオへのリンクを示します。 参照しやすいように、レポートはカテゴリに分けられています。



レポートのトピックは非常に広範であったため、この記事は、パイニストだけでなく、他のすべての怠zyで好奇心to盛な人にも役立つことがわかります。





全般



優れたドキュメントを書く

ジェイコブ・カプラン・モスによる講演。

ドキュメントが必要な理由についてではありません。 Djangoスタイルのドキュメントに触発されたものについて。 ドキュメントの文化について。 なぜ人々はドキュメントを読むのですか? コミュニケーションの手段としてのドキュメンテーションは、効用係数を拡大するために異なる角度から同じものをドキュメンテーションすることです。 開発者がドキュメントを書くべき理由。 ドキュメント開発に関するいくつかの言葉-DDD。 ドキュメントの種類について:マニュアル、テーマ別ガイド、ディレクトリ、よくある質問。 文書化の支援について。 質問への回答。



技術の多様性:ツールセットの改善

ジェニファー・リーチを召喚してください。

一般的な相違点について。 テクノロジーに女性が少ない理由:女性とビールの例に対する期待と[自己]提案について。 一般に非類似性は何につながりますか(男性チームの女性へのスムーズな移行)。 異様へのdulの3つのルール。 一般的に、講演者のような人々に対する耐性に関する報告書。 質問への回答。



仕事に就く:Pythonジョブを上陸させることのすべきこととやってはいけないこと

ブラウンモロニの指示。

私自身について。 MicrosoftおよびPHPを参照したHRの見通しの例。 候補者の一連のルール:1)スタイルを観察します。 2)雇用主の指示に従って作成し、履歴書が添付された手紙の内容に注意してください。 3)気にしないでください。 4)インターネット上であなたに関するデータをフォローします; 5)あなた自身についてのより少ない; 6)調理されます。 7)フィードバック機能を利用します。 使用された候補者評価フォームの例。 人事は他に何を求めていますか。 質問への回答。



ドキュメント駆動型開発

Corey Urdtによるレポート。

「ドキュメント開発」アプローチがどのように出現し、どの程度優れているかについて。 マイクロソフトのエンジニアに関するたとえ。 開発者がコードを文書化することを好まない理由。 Sphinxはどのように役立ちますか(構成例付き)。 RPDの例と、このような考え方のロジック。 質問への回答。



不可能な期限のベストプラクティス

クリストファー・グロスコップによる報告。

シカゴトリビューンの例で、予測不可能な期限がある状況で使用できる機械について。 聴衆からの質問への回答。



完全なPythonへの移行-スレッドレス

クリスマカヴォイレポート

PyConのTシャツについて、そこから司祭を見ることができます。 スレッドレスとは、誰が何をしていて、どこにいるのか。 PythonとDjangoがそれと何をするのか、そしてPHPがそれとは何の関係もないのかについて。 PHPは碑文のイチジクの木のようなものです。



Python.MiroCommunity.org + UniversalSubtitles.org

William Can-GreenとKarl Karstenによるミニプレゼンテーション。

MiroCommunityおよびPython.MiroCommunity.orgとは何ですか。 UniversalSubtitlesとは何ですか?



科学と研究



Twitterの言語学

マイケル・ヒーリーによる報告。

私自身について。 言語分析の複雑さの問題、単語選択の地域差、米国中の方言の分布について。 歴史的背景:アメリカ英語のマイルストーン、言語発達のベクトル。 さまざまな方言を共通の形にする可能性について:1)エンチャントモジュールとnltkモジュール。 2)正規表現辞書からの置換。 3)nltkモジュールを使用した選択的言語コーパスによるベイズ確率。 4)simplegeoモジュールの地理的インデックスの使用。 simplegeoとツイートのデータを使用した言語のサンプルコーパスのコンパイルについて。 質問への回答。



Pythonで探索の輪にグリースを塗る

マイケル・シムズによる報告。

私自身について。 他の惑星の研究におけるロボットの役割について。 火星探査探査機について。 クレーターの研究、地質図および位相図の作成。 Pythonを使用してローバーにコマンドを生成および送信し、ローバーの自律性を確保する方法。 Pythonが使用される理由。 NASAからのプログラムについて。 質問への回答。



Pythonでの超大型望遠鏡の実行

Maciez Fialkowskiによるレポート。

さまざまな望遠鏡とその用途について。 望遠鏡からデータを受信し、IPythonコンソールを使用してデータを制御する例。 ツイストを使用したサンプルコード。 質問への回答:このタスクでのPyhtonのパフォーマンス、JavaからPythonへの移行、衛星や羊については、従来の衛星アンテナを制御することが可能です。



Pythonで特許を殺す方法

ヴァン・リンドバーグによる報告。

適切な特許を見つけるのが簡単でない場合について。 著者としては、無駄に、データベースを作成するための米国の登録特許に関するデータを含む解析サイトであり、Googleのプロジェクトの1つとして彼の生活が楽になりました。 特許を分類するタスクについて。 データの検索に自然言語処理の原則を適用し、データの関連性を判断する際にノイズを分離する問題。 ヤフーからの用語の抽出の適用。 ベクトルとグラフが特許の解析にどのように役立ったか。 質問への回答。



確率論的なデータ構造でとてつもない量のデータを処理する

Cタイタスブラウンレポート。

自分自身とC ++に対する憎しみについて。 シーケンス出力はどのように増加しましたか? 生物学と物理学で大量のデータを分析する問題の比較。 シーケンスとデータ分析における今日の制限について。 なぜ雲が役に立たないのか。 ショットガン法の簡単な紹介。 Pythonのシーケンスアルゴリズムの例、およびDNAシーケンスを計算するときに注意する必要があるもの。 説明されたアプローチのパフォーマンスとグラフの品質について。 未来への思い。 グラフの視覚化の例。 質問への答え。



トレーニング



パネル:学校でのPython:教えて、教えて

Joel Zachary Miller、Maria Litwin、Jeffrey Elkner、Wern Sider、Bayan Bramleyによるレポート。

ザカリー・ミラーによる開会の挨拶。 Bramley:学習プロセスの構築方法。 コンピュータサイエンスの教育はどのような課題を解決しますか。 なぜpython; 彼らは何を勉強していますか。 リトビン:自分自身について。 コンピュータサイエンスで数学を教える決定について。 なぜpython; はしご問題を解く例について、コンピュータサイエンスとアルゴリズム思考の訓練を伴う離散数学のコースについて。 エルクナー:自分について。 バージニア州のコンピューターサイエンスコースについて。 サイダー:あなた自身について。 北西インディアナ州のコンピューターサイエンスコース。 なぜpython。 質問への回答と、教師がJavaを好まない理由について。



Pythonとロボット:高校でのプログラミング教育

ヴァーン・サイダーによる講演。

私自身について。 子供がプログラミングを学びたくないのは、教師の間違いです。言語のルールで学習を始めてください。 抽象化と詳細の悪用。 退屈な仕事や人生から切り離された仕事をする。 ミニロボットと、子供たちへの関心を高める方法について。 ロボットを制御するために、Debianは古いタブレットにインストールされました。 ロボットをプログラミングするための単純なタスク(ソリューション付き)の例。 方法論:後続の各タスクで言語機能への関心を刺激する方法。 その他のタスク:障害物の克服、ロボットのカメラの制御、スピーカーの制御。 提案されたコースのボトルネック:バッテリー、低電圧での固着ロボット。 クラスに必要な機器の準備; 必要な講義資料のサイズを決定する難しさ。 学生のフィードバック。 これらのロボットの費用など、質問への回答。



コミュニティ



Python Software Foundation会長アドレス

スティーブホールデンの魅力。

Pythonコミュニティについて。 PyCon Conferencesについて。 Python Software FoundationからのPythonプロジェクト(会議やソフトウェアを含む)のサポートについて。 PSFで呼び出します。



アウトリーチを通じて新しい貢献者(および多様性)を獲得する

Ashish Laroyによるレポート。

私自身について。 小さなコミュニティの問題について。 コミュニティ構築のためのFedoraアプローチ、Railsアプローチの例。 非公式会議の有用性について。 Debian、Thunderbirdコミュニティで例示されているように、コミュニティの構築における良い点と悪い点。 女性をプロジェクトに引き付ける方法。 質問への回答。



Montreal-Python-Pythonコミュニティのブートストラップから学んだ教訓

Yannick Jingrasによるレポート。

Montreal Pythonユーザーグループの始まり 既存のユーザーグループの分析。 すべては通常の電子メールから始まりました。 グループを構築するためのヒント:1)主催者の仕事は、人々を集めることだけでなく、コミュニケーションの条件を作成することです。 2)Blitzレポートはまさにそれです。 3)集合場所の選択は重要な問題です。 4)組織の分野の人は戦士ではありません。 5)お金がかかります。つまり、スポンサーを意味します。 6)実験する必要があります。 7)他のユーザーグループと連絡を取り合う。 質問への回答。



事業内容



深刻なビジネス:Pythonはエンジニアリングだけではありません

Zach Steindlerによるレポート。

最前線でのビジネス戦略の設定、KPIの素晴らしさ、さまざまなグラフの描画(視覚化)、これらのインジケーターを取得できる技術的手段、およびWebプロジェクトのどの側面を分析できるかについて。



Pythonの販売方法

ラウンドテーブル。

ダニエル・グリーンフィールドが議長。 参加者のプレゼンテーション:タイタス・ブラウン、ダン・メッシュ、クリスチャン・エント、フランク・ウェールズ、ジェイス・ターク。 成功事例:非営利組織、政府組織、大小の組織、教育機関。 彼らが恐怖、不確実性、疑念をどのように克服し、Pythonを使用した理由に加えて、「穴だらけのオープンソース」スタイルの攻撃への回答と、他の言語を知っているPythonへの切り替えがいかに簡単かについての会話。 プロモーションに役立つマーケティングツールについて。 Pythonでの開発コストについて(PHP、Javaとの比較の例を使用)。 実装言語の選択を指示する顧客を納得させる方法。 雇用市場について。



Python言語



なかったPython

ラリー・ヘイスティングスの講義。

言語の変更について-提案するのは簡単であるが、ベースから作成するのが難しい理由、そしてPythonが安定している理由、さらにPHPへの丸石。 それにもかかわらず、アイデアがかゆみがあり、実装が必要な場合の対処方法。 具現化されていないアイデアの例:凍結プロトコル(PEP 351)、Noneによって呼び出される行列演算子(PEP 211、PEP 225)(PEP 336)、スイッチ/ケースコンストラクト(PEP 275、PEP 3103)、および人々が自分のPEPを拒否する、リテラルとしての範囲(PEP 204)、属性への動的アクセス(PEPなし)。 他に誰が勇敢ですか?



便利な名前空間:コンテキストマネージャーとデコレーター

ジャック・ディデリッチによる報告。

禅を思い出してください。 名前空間のタイプ:1)字句。 2)モジュラー/バッチ; 3)オブジェクト内/クラス。 4)「作業中」。 構文糖、特にデコレータ、コンテキストマネージャ、およびそれらの混合物について。 functools.wrapsを使用して例を装飾します。 functools.total_orderingを使用したクラスのドレッシング。 コンテキストマネージャー、「デコレーターの逆」。 モンキーパッチについて、またデコレーターとコンテキストマネージャーを使用したモンキーパッチについて。 置換例:unicodenaziライブラリ。 contextlib.contextmanagerを使用したサンプルコンテキストマネージャー。 デコレータとコンテキストマネージャを混在させる方法。 質問への回答。



コルーチンに関する部外者の見方

Peter Portanteによるレポート。

コルーチンを取り巻く誇大広告:10,000以上の同時リクエストに耐える方法、スレッドがオプションではない理由。 ストレステストの結果のチャートトルネード、uWSGI、Gevent、およびGeventが馬に乗った理由。 既知のコルーチン定義。 Pythonのコルーチンとその制限。 Pythonのコルーチンとは対照的に、コルーチンの実装を提供するパッケージ。 Greenletのメカニズムについて。 スレッドの定義。 スレッドの抽象化とスレッドとコルーチンの関係。 ノンブロッキングAPIの必要性について。 libeventイベントエンジンとその上のラッパーについて。 質問への回答。



Python 3への移植

レナート・レゲブロによる講演。

Pythonのプロモーションに関する紹介。 移植戦略の選択について:さまざまなバージョンのPythonのコードの維持について、配布モデルについて、単一のコードベースについて。 2to3ユーティリティについて。 いつ移植を開始するか。 移植手順:準備(初期コード処理の推奨)、テスト(オプション)、移植(Distributeを使用した2to3および2to3)。 バイト、文字列、Unicodeなどの一般的な問題。 2to3を使用しない移植。 Cの拡張機能について。モジュール6について。 トピックのリソースについて。 質問への回答。



Python 3のUnicodeのステータス

ビクター・スティンナーによる報告。

PythonのUnicode履歴。 Python 3のUnicode。デコード不可のデータとPEP 383、およびサロゲート(surrogareescape)とは何か。 バイト文字列をUnicodeに変換し、Python 3.2のサロゲート用の新しいAPI。 機械輸入の転換について。 コマンドライン引数について。 ファイルシステム内のオブジェクトの名前について。 非BMP文字について。 ソースコードのエンコードについて。 Unicodeを使用した無料の書籍プログラミングについてのいくつかの言葉。 Unicodeサポートの実装時に発生した問題について。 CのモジュールのUnicodeの新機能。質問への回答。



Pythonのデータ構造

アレックス・ゲイナーによる報告。

レポートの内容について。 Pythonがクールな理由。 組み込みデータ型について。 「O」大および「o」小で30秒。 異なるタイプのシーケンスの比較-どちらかを使用するには:1)タプルに対するリスト。 2)リストに対して設定します。 3)セットと不変セット、および不変辞書がない理由。 標準ライブラリの追加タイプの概要:1)collections.OrderedDict; 2)collections.deque。 collections.abcがいつどのように役立つか。 質問への回答。



残虐行為の展示

Mike Pirnathによるレポート。

著者がPythonで11年以上の作業を行った結果生じたエラーについて。 ハンガリー記法はひどい嘘と愚かさです。 PEP-8に対する犯罪について(他の言語から来た人専用)。 混乱の手段としての1文字の変数名。 ラムダ関数への執着。 リスト内包表記の繰り返し。 不気味な分岐エリフ。 関数の引数のデフォルト値にある可変型の脅威。 ゲッターとセッターを置き換えるプロパティ。 黒魔術の代わりとしてのメタクラス。 神のオブジェクトとメソッドはリファクタリングの対象です。 グローバル変数の悪。 抗おむつパターン(例外のジャマー)。 実行時に認識を超えてアヒルを絞殺する方法について(モンキーパッチ)。 伐採における車輪の発明。



難読化されたpythonの書き方

ジョニー・ヒーリーによるレブロン・レポート。

Pyhtonを紛らわしい方法で(Rubyに突進して)書くのはどれほど難しいか。 トレースが混乱する可能性がある場合:1)代入演算子。 2)比較演算子; 3)バイトコードの編集(コードタイプのオブジェクト、モジュールdisの言及); 4)デコレーター(および彼らの助けを借りたbrainfuckの肖像の実装); 5)末尾再帰の最適化(ラムダとデコレータを使用)。 質問への回答。



Pythonを知っている人のためのJavascript

講義Aena Biking。

JavaScriptがpythonistsにとって奇妙に見える理由。 奇妙さを理解する方法について。 言語の簡単な概要比較:オブジェクト、関数、変数、関数の引数、未定義の型、プロトタイピングと自己のオブジェクト、これを決定するメカニズム、モジュールのパロディ、クロージャーのthisとself、func.call()およびfunc.apply() 、オブジェクトの直接インスタンス化のデータ型とエラー、演算子+と==、ひどいJavaScript配列。 JSとDOMの関係についてのいくつかの言葉。 JSの進捗状況。 pythonistsに興味があるかもしれないCoffeeScriptについて。 質問への回答。



標準ライブラリの隠された宝物

ダグ・ヘルマンによる報告。

標準ライブラリモジュールに興味がある:csv、sqlite3、hmac、json、sys.excepthook、logging。 質問への回答。



Pythonの新しいツールをお楽しみください

レイモンド・ヘッティンガーによる報告。

collections.counterと例を使用した辞書としてのカウンター。 カウンターの数学。 collection.namedtupleからの名前付きタプルの例と、_asdict()および_replace()ヘルパーメソッドへの特別な注意。 名前付きタプルの興味深い使用例。 関数結果をキャッシュする方法は、lru_cacheのキャッシュに対する例を使用した古典的なキャッシュです。 新しい文字列フォーマット構文.format()。 質問への回答。



通訳者


パネル:Python VM

ラウンドテーブル。

ジェイコブ・カプラン・モスが主side。 Iron Pythonおよび.Net統合に関するDino Wieland。 PyPyについてのMatsiezh Fialkovsky-「CPythonのように、よりクールなだけ」 JythonのFrank WierzbickiとJVMのクールさ。 CPythonの旗艦としてのBrett Cannon。 質問:1)VMの表現。 2)パフォーマンス 3)過去1年間に実装で何が起こったのか(Sun-> Oracleの状況については率直、人々を困らせるマイクロソフトからのライセンスについてはDino、一時停止の終了についてはBrettおよびその他)。 4)パイトン3; 5)PSFから受け取ったお金を何に使うかについてのMatsiezhuの質問。 6)サンドボックスとその実装へのアプローチについて。 7)Unladen Swallowに関してはどうですか(Brettの質問)。 8)ctypesモジュールのサポートについて。 9)PyCon 2012の時点で何が起こるか。



Pythonとあなたの開発

バヤン・カーティンの講義。

あなた自身についてのいくつかの言葉。 CPythonの開発には、どのような人々、どこで、なぜ関与していますか。 参加を開始する方法:開発者ガイド、リポジトリセクションの概要、アセンブリノート、テストの実行。 バグが修正された場合の対処方法と、良いパッチと悪いパッチの違いについて。 バグトラッカーの使用について。 開発で使用されるツール。 質問への回答。



サポートされていないプラットフォームでのCPythonのサポート

Tim Loescherによるレポート。

Vocollectデバイスの例に関する問題の説明(Windows CEを実行)。 組み込み可能なスクリプティングJava、Lua、Pythonの選択は後者で止まりました。 なぜ最初に分岐したのか、これからどのような教訓を学んだのか:1)分岐しない。 2)クロスカットまたは検疫を使用する価値があります。 3)1つのC表記法に従う。 質問への回答。



Stackless.pyでStackless.pyを使用してGoのSelectをプロトタイプ化する

アンドリュー・フランシスによる報告。

Goを模倣するアイデアはどこから来たのですか。 現在の実装の同期チャネルを介してstackless.pyにメッセージを送信することについて。 selectが便利な場所(スーパーバイザーの例)、およびツイストのタスクレットとリアクターの比較。 機能を説明する例を選択してください。 Cのstacklessとstackless.pyの違い、スケジューラー、チャネルとそれらのバランスについて。 stackless.pyでのselectの実装方法、チャネルでの操作の表示方法、タスクレットキューが操作キューに置き換えられた方法。 レポートは割り当てられた時間に間に合わず、中断されました。



コード分​​析


Python対応Python

Ned Batchelderによる報告。

イントロ:一部のPythonプログラムが他のPythonプログラムを解析する方法(例、coverage.py)。 コードとは:コードの種類。 ソースコード->抽象構文ツリー(AST)->コードオブジェクト(バイトコード、.pycファイルを含む)->関数オブジェクト、フレームオブジェクト->実行->フレームのスタック。 sys.settrace()を使用したコードのトレース。 トレースの例。 Linecacheモジュール。 トレースの落とし穴。 ASTの操作について-式の検索、astモジュール。 検査の力について。 tokenize、dis、opcodeモジュールに関するいくつかの言葉。 動的言語の問題について。 解析できないコードの例。 質問への回答。



astで何をしますか?

マシュー・デスマレによる報告。

マシューがテスターだったときに行ったこと:手動テスト、コード分析を使用するツールを使用したテスト。 AST、ツリーの例、概念の定義とは何ですか。 ノード属性、ノードフィールド。 ツリーを作成する例。 JavaScriptでのPythonコードの自動翻訳の例。 通訳をスパイする例。 どんな種類のユーティリティがASTを使用できますか。 ASTが必要な場合と必要でない場合。 質問への回答。



スキャン



Ian Bickingの頭脳をリバースエンジニアリングする:内部pipとvirtualenv

カールマイヤーによる研究。

分離された環境を構築する方法。 サイトパッケージとは何であり、どのように機能するのか。 sys.prefixとsys.exec_prefixの仕組み。 標準ライブラリを仮想環境に接続する方法。 グローバルサイトパッケージの接続方法。 bin / activateとは本当に何ですか。 virtualenv(mod_wsgi)を直接使用できない場合の対処方法。 フォークsite.pyの問題とその解決策。 本当にピップとは何ですか。 pip APIを使用します。 virtualenvとpipの将来について。 質問への回答(Larry HastingsとAan Bikingが突然登場しました)。



zc.buildoutを使用したアプリケーションのデプロイ

ジムファルトンレポート。

Zopeでのビルドアウトの始まり。 目的:開発(展開)の2つの段階を統合する-ソフトウェアのインストールとその構成。 ソリューション:ソースリリース、アーカイブ、パッケージ(rpm)、最終アプリケーション構成を作成するためのビルドアウト構成の例。 ビルドアウトメタレシピについて。 プロジェクトのさらなる発展について。



パペットを使用した依存関係管理

リチャード・クローリーによる報告。

なぜピップフリーズしないのか、なぜパペットなのか。 Puppetを使用した依存関係管理とアプリケーション構成。 Puppetのリソースとそのタイプの概念:パッケージ、グループ、ユーザー、sshキー、サービス、exec、ファイルなど。リソースをクラス(これはリソースのタイプ)に結合し、独自のリソースタイプを作成します。 puppet-pipを使用します。 モジュールの自動ロードのメカニズム。 ノード構成-サーバーへのモジュールの送信。 Djangoと落とし穴のサンプルモジュール。 サービス宣言付きのApacheのサンプルモジュール。 ファブリックスイープとPuppetマスター。 自動パペットコード生成のためのdevstructureからの青写真プロジェクトについてのいくつかの言葉。 質問への回答。



TUF:Pythonでの安全なソフトウェア更新

ジェレミー・コンドラによるプレゼンテーション。

一般的なソフトウェアアップデータとは何ですか? アップデーターとその弱点として使用できるツール(それらを明らかにする攻撃方法の説明付き):PyPi、パッケージマネージャー。 TUF(更新用フレームワーク)とその機能 質問への回答。 TUFをdistutilsスクリプトに統合するデモ。



継続的な展開

ローレンス・ヴァン・ガットウェンによる報告。

私自身について。 継続的統合と継続的開発の関係について。 開発中のウォーターフォールモデルに対する批判と、Agine / Scrum / EXPへの反対。 継続的な開発と短い開発サイクルの関係。 継続的な開発の定義。 スイープからイベントを作成しない方法。 テスト、自動化、測定、コード監査。 さまざまなスイープメカニズムの落とし穴。 開発戦略:特に、「慎重な」開発。 開発システムの機能を構築する際の常識の必要性について。 質問への回答。



DistutilsからDistutils2までのパッケージング

Tarek Ziadeによるレポート。

distutilsマスコットについてのいくつかの言葉。 distutils2のDistutilsの問題とその解決策:1)PEP 345のメタデータを使用した依存関係とその解決策。 2)巨大なスイスのナイフとしてのsetup.py、およびその代替はsetup.cfg(およびpysetupの使用例)。 3)PEP 376を使用した削除の問題とその解決策(pysetupを使用した例)。 4)PEP 386でのエイリアンバージョン番号とその解決策の問題(およびdistutils2でバージョン番号を正規化する例)。 5)distutils2の追加データファイルとfiles.resourcesディレクティブ。 distutils2とさまざまなビルドシステムとの相互作用について。 distutils2という名前のパッケージング。 質問への回答。



アプリケーション設計



APIデザインのアンチパターン

アレックス・マルテリによる講演。

APIを設計および実装する際によくある間違いについて。



APIの設計:学んだ教訓

レイモンド・ヘッティンガーによる講演。

優れたAPIに関する一般的なヒント。 詳細:1)同等の型を1つに減らす場合(たとえば、配列の整数へのインデックス)、削減できる型を明確に示す必要があります。 2)継承しやすいクラスでは、すべての内部呼び出しは変更から保護されています。 3)(単純化とは対照的に)柔軟性が必要な場合、コードに事前設定されたパラメーターを避ける必要があります。オプションの引数を使用することをお勧めします。 4)位置引数と反復可能引数の両方を処理する必要がある場合は、コンストラクターで異なるシグネチャを処理しないでください。これらのニーズに合わせて個別のメソッドを定義することをお勧めします。 5)新しい位置引数を追加して署名を変更するよりも、キーワード引数を使用する方が適切です。 6)継承されたクラスのコンストラクタのシグネチャが継承されたコンストラクタのシグネチャと競合しないように、メソッドの1つで、後者を間接的に決定できます。 asyncore.pyとグローバル設定の例を使用して、APIとソリューションを作成するときに発生したエラー。 分類と階層がモジュールにもたらす問題、およびそれらに対処する方法について。



最適化



「おい、RAMはどこにある?」-Pythonがメモリを使用する方法についての詳細

Dave Malcolmによるプレゼンテーションレポート。

レポートの短いレビュー。 過剰なメモリ消費の症状、CPythonの原因(参照カウンターのバグ、キャッシングによるバスティングなど)およびそれらを解決する方法。 オブジェクトとメモリ内での配置の例。 sys.getsizeof()によって取得された主なデータ型のメモリ内のサイズ。 __slots__を使用した最適化。 Meliaeオブジェクトのリンクレベルのプロファイリングツールについてのいくつかの言葉。 PYMALLOCを通過するものとmallocに与えられるもの。 メモリ内のオブジェクトの配置レベルをプロファイリングする方法について:1)Valgrind; 2)gdb-heap。 Gdbヒーププレゼンテーション:動作原理、データ出力の例、クエリ言語、使用の落とし穴、Fedoraプロジェクトの成功事例、プロジェクトの将来。 質問への回答。



Pythonが遅いのはなぜですか、またPyPyはどのように役立つのでしょうか?

Alex Gaynor、Maciez Fialkowski、Armin Rigoによるレポート。

PyPyとは何ですか? JITとjittingとは何ですか。 ガジェットの例に注目してください。 言語のセマンティック分析、ボックス、フレームのイントロスペクションの熊手。 すばらしい質問への回答。



Swarming the Web:Evolving the Perfect Config File

カート・グランディスによる報告。

問題は、なぜ構成ファイルを頻繁に変更する必要があるのですか? 制御理論とパフォーマンス評価の観点からのサーバーパフォーマンスのチューニングと最適化:システムがあり、センサーがあります-コントローラーが十分ではありません。 Python(ecspy)での粒子群最適化と、構成ファイルを作成するためのコントローラーとしての使用。 構成テストアルゴリズムのバリアント。 テストの最適化とその結果。 質問への回答。



テストとデバッグ



ユニットもテストが必要

ゲイリー・ベンハルトによる報告。

テストするものと、同時に発生する問題:1)完全なテストが達成できない。 2)テストの実行時間は、システムボリュームの増加に比例して増加します。 3)バイナリの性質のため、テスト結果の表示は有益ではありません。 用語の欠点について。 コンセプトユニットおよびユニットテストの定義。 例としてDjangoを使用したテスト(偽オブジェクト-モック、スタブを使用)を修正します。 統合テストについて。 テストを書くための推奨事項。 10,000行のコードを1秒で少し実行するテストスイート(510テスト)の例。 質問への回答(行の適切な量のクラスを含む)。



Selenium 2.0を使用したモバイル(およびデスクトップ)Webのテスト-より良く、より速く、よりPythonicに

ジェイソン・グギンズによるプレゼンテーション。

Seleniumとは何ですか、どのような問題を解決しますか? Selenium IDE、ビルダー、リモートコントロールについて。 JavaおよびC#のテスト例。 Selenium Gridについて。 推奨されるのは、テストをシーケンスではなく並行して実行することです。 Selenium 2の新機能:モバイルプラットフォーム(AndroidおよびiOS)をテストするためのコンポーネントの概要。 キーボードおよびマウスイベントのネイティブ処理。 XSS検証 ダイアログなどのサポート。Pythonバインディングを使用した新しいAPIの使用例。 Selenium RC Java Serverを除外することが判明した方法と、グリッドをその場所に固定する方法について。 iPhone、Androidのテストを実行する例(ステップバイステップ)。



モックでテストする

Michael Fourdによるレポート。

私自身について。 モックの目的であるモックライブラリの紹介。 モックには、その呼び出し方法に関する情報が格納されます。 MagicMockクラスの機能。 その場でオブジェクトを置換し、mock.patchを使用してロールバック置換します。 ライブラリーの使用例(オブジェクトとその属性の置換を含む)。 モックを使いすぎないように注意してください。 質問への回答。



Pythonを使用してCおよびC ++コードをデバッグする(gdbを使用)

デイブマルコムレポート。

gdbバージョン7+でのPythonの組み込みサポートについて、Pythonで書かれたRed Hatインストーラーのデバッグに関するストーリーでこれが素晴らしい理由について。 gdb内でPythonを使用する例-Cでアプリケーションをデバッグする-a)型を定義して値を取得する際に注意すべき点に関するメモを含む長い古典的なgdbパス。 b)Pythonを使用したショートカット。 配列、構造体をパススルーします。 また、このようなデバッグが便利であることについても説明します。 LibreOfficeの文字列型の1つに対する文字列処理フック(prettyprinter)と、クラスによるgdbへの接続の例。 作業時に注意すべきこと。 関連リソース。 質問への回答。



Web



PythonのHTTP:どのタスクのどのライブラリですか?

Augie Feklerによるレポート。

httplib、httplib2、pycURL、twisted.web.httpの概要。 指定されたライブラリHTTP 1.1によるサポートについて。 py-nonblocking-httpビュー。



WSGI:Webの問題を解決するために協力する

ラウンドテーブル。

PEP 4444について、wsgiに欠けているもの。wsgiとは何か、そうではないものについて。wsgiの開発の見通し。



HTSQL-お気に入りのデータベース

Clark Evans Report への非常に優れたWSGI / RESTインターフェイス

クラークは自分自身についてです。HTSQLを使用したいくつかの例。Pythonプロジェクトでライブラリを使用するのがいかに簡単かについて。HTSQLの歴史。HTSQLの構成要素 HTSQLは主にデータナビゲーション言語です。最初の部分に関する質問への回答。構文とそのRESTの準備について、結果の書式設定(プレゼンテーション)の組み込みおよび接続手段について。プロジェクトの現在の状態、ライセンスについて。質問への回答。



コルーチンを使用して効率的で同時実行性の高いWebアプリケーションを

作成するレポート(マットスピッツ)

負荷の高いWebアプリケーションとは何ですか。そのようなアプリケーションを最適化するためのオプション。 Meeboバーと広告サーバーの例。 Apache CGI、Apache mod_wsgi(mpm_prefork)、Twisted、gevent + gunicornなど、さまざまなデータベースからの単純なアプリケーションの発行の長所と短所の興味深い比較。 geventを使用する際に注意する必要があること、およびプロジェクトをgevent + gunicornにプロダクションに移行するのに役立つもの(管理およびデバッグツール)。 Meeboでバンドルを使用した経験について。質問への回答。



フックボックス:すべてのPython Webフレームワークがリアルタイムになりました。

マイケル・カーターによる バッテリー付属プレゼンテーション。

リアルタイムWebアプリケーションを作成するためのアプローチとその制限。フックボックスアプローチ。デモンストレーション、レビュー。質問への回答。Mark Rammによる



python web レポートの(偏った)調査



Web開発用のPythonとは何ですか。 2005年のWebワイヤフレームの現状と現在の状況、ワイヤフレームリスト。フレームが多すぎます-それらを選択するのは難しいです。明らかなリーダーはいません。 Djangoについて。 rubistがpythonをヒットできるためです。 Web開発に役立つかもしれない共通ライブラリ。 Pythonホスティングについて。一般化。 Pyramidフレームワークについてのいくつかの言葉。 web2pyが悪い理由。質問への回答。Mark Rammによる



100過去の レポートのPythonのスケーリング



私自身について。 FossFor.usがDjangoで働いた理由については、ウクライナ出身の男がいます。それはDjangoで良かったし、そうでもなかった。 SourceForge.netがマークとその理由のためにTruboGearsで働き始めた方法について。 SourceForgeサイトの構成:なぜMongoDB、mod_wsgi;そして、彼らがどうやって期限を守ったか。 SourceForgeのすべてにPythonを使用することを決定した方法-結果のAlluraプラットフォームについて。 PythonコミュニティがAlluraの作成を支援した方法。アプリケーションを計画するためのヒント:アプリケーションによって解決された問題を正確に定式化します。スケーリングへの執着は有害です。適切なツールを選択して、アプリケーションを作成します。質問への回答。Pythonのスケーリングが困難であるという恐怖を含みます。



Disqus: Jason JonとDavid CramerによるPython レポートで4億人にサービスを提供してい

ます。

1か月あたり5億人のユニークユーザーにサービスを提供する方法について(ピーク負荷25,000リクエスト/秒)。 Disqusとは、内部組織に関する少しの歴史とデータです。インフラストラクチャApache + mod_wsgi vs. nginx + uWSGI。彼らはセロリ、Grahpite、Sentry、Gargoyle、フォークDjangoを使用しています。なぜこれらの人たちはRubyとPHPからPythonに切り替えたのですか?



Dropboxの機能とPythonに

よるRyan Hunterの報告

スピーカーについて。 Dropboxとは何で、どのように始まったのですか。 Pythonが2007年のDropboxの初期開発をスピードアップした方法。会社の経緯。その当時の主な成果:Makovsky Finderを反転させてアイコンを重ねることができました。大量のHTTPアラートのインフラストラクチャを作成します(Twistedを使用)。プラットフォームに依存しないコードベースなどを作成します。Pythonを使用する場合:サーバーロジック、デスクトップクライアント、サイトコントローラー、API、分析。 Pythonの理由の説明。 Pythonは反復的な開発に役立ちます。 Pythonによるランダムアクセスメモリの低速化と貪食について。 CPU時間を短縮する方法(約()関数など)。メモリ使用量を最適化し、メモリの断片化に対処する方法-または、代わりにPyPyを使用します。 Dropboxの計画。



Catch.comのMongoDB + Pylons:

Nyall O'Higginsによる PythonおよびNoSQL によるスケーラブルなWebアプリレポート。

catch.comとは何ですか。また、作成時に考慮された要件は何ですか。 JavaとBDB JEからPylonsとMongoDBに切り替えた理由。 MongoDBの簡単な概要と、MongoDBデータモデルに関するMogoDB対MySQL対BDBのミクロ比較表。 Pythonを使用したMongoDB(PyMongo経由)、サンプルクエリ、演算子の比率に関する表。 MongoDBでの地理データのサポートについて。注意する必要があるのは、MongoDBの落とし穴です。 Pylonsに関するいくつかの言葉と、それらがmod_wsgiよりもPastersを好む理由。 catch.comインフラストラクチャについて少し。質問への回答。



Tornado Gavin Royレポートの紹介



Tornadoフレームワークの主要なコンポーネント(モジュール)と機能の概要。トルネードがTwistedを使用しない理由。竜巻を使用したアプリケーションの例。ノンブロッキングトルネードサーバーの使用について少し説明します。



ツイスト

グリフレフコヴィッツの10年レポート。 * Glyphで誰かが悪いマイクを滑らせた。

Twistedについてです。ちょっとした歴史:ゲームがどのようにフレームワークになったか、なぜWebサーバーとそのバインディングをゼロから記述する必要があるのか​​。同期と非同期とは何ですか。 Twistedサーバーの能力の例。アーミンロナによる



フラスコ プレゼンテーションのオープニング



エイプリルフールの日がどのようにマイクロフレームワークになったかについて:冗談は何で、なぜそれが額面通りに取られたのか。Flaskの表示方法とその構成要素。helloアプリケーションの例。Flaskで使用される設計アプローチについて:ローカルコンテキスト変数、モジュールの1カードインポート、アプリケーションオブジェクトの欠如、明示的な設定、複雑さによるURLルールの自動順序付け。Flaskの拡張について。マイクロフレームの開発中に学んだ教訓。質問への回答。



ジャンゴ


プラグ可能なDjangoパターン

Corey Oordtレポート。

一体型アプリケーションがDjangoの精神に合わない理由。プラグインアプリケーションとは何で、なぜそれが良いのか。プラグインアプリケーションにとって重要なもの。メモできる既存のDjangoアプリケーションで使用されるトリック。



Django:遭遇した落とし穴とそれらを回避する方法

Luke Sniringerによるレポート。

モジュールをインポートする方法。パターンの継承。テンプレートコンテキスト処理とRequestContextのユーティリティ。モデル内のカスタマイズ可能なマネージャー。動的フォーム:メタクラスまたは__init __()オーバーライドを使用しますか?



ジャンゴパッケージ: ダニエルグリーンフェルドによるケーススタディ

プレゼンテーション。

django-apps.comの詳細なレビュー、または何が間違っていたのか。 DjangoDash 2010でのdjangopackages.comの作成方法。アプローチとイデオロギー:比較表、客観的指標。開発結果に関するアドバイス:1)サードパーティのAPIについては、実装を開始する前に、可能な限り深く調査する必要があります。 2)PEP 8を覚えておいてください。 3)フィクスチャを使用します。 4)時期尚早な最適化に頼らないでください。 5)アーキテクチャを設計します。 6)チームで情報を交換します。 DjangoCon2010でのストーリーの流れ。使用済みのdjangoアプリケーション。他に何が計画されています。 pythonpackages.comで何が起こるか。質問への回答。Wesley Chenによる



Google App EngineでのDjangoアプリの実行

レポート。

聴衆が集まるまで6分間、Pythonを使用して30分間プレゼンテーションを作成します。チェン自身について。ジャンゴについてチェン。App EngineについてのChen。Djangoを使用する場合のApp Engineの制限と、それらをスムーズにしようとする試みについて-ヘルパーとパッチ。O djangoappengine。O Django-nonrelとその利点、使用する際に注意すべきこと。djangoアプリケーションをApp Engineに移植する手順。質問への回答。



ピラミッド


State of Pylons / TurboGears 2 / repoze.bfg

レポート:Chris MacDon、Ben Bangert、およびMark Ramm。

Pylonsについて:バージョン2.0より前であり、次に何が起こったのか。 BangertがTurboGearsと統合して、すべてを再度書き換えるのではなく、再統合することにしたのはなぜですか。ピラミッドはどのようにして生まれましたか。 TurboGearsと、RammがPyramidイニシアチブに参加することを決定した方法について。 repoze.bfgについて。これはZopeの松葉杖として登場し、別のフレームワークになりました。 repoze.bfgと小さな名声のイデオロギーについて。ようになった:Pylons、repoze.bfgはPyramidになり、TurboGears 2(Pylonsに基づく)とTurboGears 1(CherryPyに基づく)は引き続き開発および保守されます。 Pyramid(hello Django)を使用したwsgiアプリケーションの例。 Pyramidに含まれるもの、それに取り組むことができるもの。ピラミッドではないもの(Zopeではない)。 Pyramidロゴの作成に関する元気いっぱいのビデオ。質問への回答。





カルロスデラゴルディアによる ピラミッドFAQ レポート。

Pyramidについての質問はどこでできますか。ピラミッドが良いのはなぜですか?PyramidとPylons、TurboGears、Zopeの比率。ドキュメントについて。ピラミッドがレンガではなくレールである理由。新しいプロジェクトに使用するもの:PylonsまたはPyramid。PyramidでPylonsアプリケーションを開始する例。Akhet-Pylonsスタイルのアプリケーションテンプレート1.ディスパッチとトラバーサルメカニズムについて。いくつかの質問への回答。



技術



Celeryを使用した分散タスク

Ryan Petrelloによるプレゼンテーション。

スピーカーについて。 Celeryが選ばれた理由について:タスクの非同期処理(分散を含む)、ユーザーにとっての魅力、スケジューラー、エラー処理、ジョブの繰り返し。 メッセージキューイング(AMQP)の簡単な紹介。 AMPQのタスクキューとしての使用について。 セロリの基本。 Celerybeat、Webフック、実行プロセス(ワーカー)のリモートコントロール(ブロードキャスト)。 使用例。 Celeryevとcelerycom。 ヒント 質問への回答。



ZeroMQを使用した高度なネットワークアーキテクチャ

Zed Shawによるレポート。

私については、「Learn Python The Hard Way」という本に言及しています。 インターネットでZeroMQをリリースしないでください。 ZeroMQは何のために使用され、どのようにネットワークを操作するためのライブラリの代わりになることができますか。 楽しいDBMS MulletDBの例(リクエスト-レスポンス、パブリケーション-サブスクリプション、ストリーミング)。 Mongrel2 Webサーバーの例。 ZeroMQは次のことができます。http+ jsonの代わりに使用されるメッセージキューは、サーバーまたはプロトコルを作成するための基礎となります。 質問への回答。



CouchDBと実際のPython

リュック・ゴッツリングによる報告。

CouchDBとは何で、何で構成され、何が良いのか。 Fuconを介してCouchDBを操作するデモ。 PythonでのORMからCouchDBへ。 couchdb-python:フィールドタイプ、使用例。 表現の作成、マップ/削減。 パフォーマンス、スケーラビリティについて。 長所と短所について。 今後の計画。 質問への回答。



Firefoxの同期

Tarek Ziadeのプレゼンテーション。

Firefox Syncとは何で、どのように機能しますか。 クライアントおよびサーバー側の実装メカニズム。 ジャグリングによる暗号化の詳細。 サーバーでのパフォーマンスの測定方法、どのように、どの部分がスケーリングされたか。 Firefox Syncの数字。 サーバーで使用されるアプリケーションスタック。 プロジェクトが提示する教訓は何ですか。 履歴同期の質問に対する答え。



クラウドのオープンな成功:OpenStack

アンディ・スミスによるプレゼンテーション。

私自身について。 OpenStackについて:迅速、新星、巣穴、一見、djangoダッシュボードプロジェクトがどのように組み合わされたか。 NASA、RackspaceでのOpenStackの成功事例。 なぜPython novaプロジェクトの開発の歴史。 novaプロジェクトでrpc、tornado、twisted、eventletが互いにどのように成功したか。 質問への回答。



ピクルスについて知りたいと思っていたが、尋ねることを恐れていたすべて!

リチャード・サンダースによる報告。

私自身について。 漬物とは何か、使用例、それに代わるもの、長所と短所。 パフォーマンス測定を伴うシリアル化プロトコルの一般的な説明。 4つの各プロトコルの説明。 スタッキングマシン-リストの例でのバイナリプロトコルの動作。 使用するときに探すもの。 pickleモジュールとcPickleモジュールの違い。 質問への回答。



Toxを使用したすべてのバージョンのPythonのサポート

Kumar McMillanによるレポート。

オープンソースについて。 デモ付きのtoxユーティリティの紹介。 tox.ini構成ファイルについて。 2to3とそれについて。 serii 2および3の単一ディストリビューションの作成について、setup.pyに関する情報。 ディストリビューション内およびその外部のテスト用にtoxを構成します。 Toxおよびdocテスト。 バージョン管理システムからのトックスとソースコード。 toxとJenkins CIについて。 質問への回答。



mrjob:みんなのための分散コンピューティング

ジミー・レツラフのレポート。

MapReduceはどのような問題を解決しますか? 写真のMapReduceの例。 mrjobとは、使用例です。 バナーのクリック/インプレッションをカウントし、MRJobを使用して売上を追跡するというタスクに対するソリューションの詳細な分析。 以下を含む質問への回答 なぜダンボじゃないの。



ZODB:Python永続システム

クリス・マクドナによる報告。

ZODBとは何ですか? pickleモジュールについて:オブジェクトをpickleファイルにパックし、ファイルから読み込む例。 ピクルス形式について; その制限について; サポートされているデータ型について。 ZODBがpickleとどのように異なり、どのように似ているか。 ZODBの使用例。 トランザクション性について。 ZODBとオブジェクト、リレーショナル、nosqlデータベースとの比較。 ZODBがサポートするデータストアのタイプ。 インデックス作成と検索機能について。 スケーリングについて。 ZODBのユニークな機能と制限。 使用する場所と使用しない場所。 質問への回答。



Blenderの新しいBPY Python APIを使用する

クリストファー・アラン・ウェバーによるプレゼンテーション。

Blenderについて簡単に説明します。 Pythonでスクリプト化されたシーンの例:アニメーション映画Elephant's Dreamから。 クモの群れのシミュレーション例; 特許爆撃の地図。 Blenderのユーザーインターフェースのミニ紹介。 BPYとは何ですか? .blendファイルの内部について。 Blenderで直接BPYを使用する例は、オブジェクトの検索と変更です。 Blenderの自己文書化について。 Blender自体のスクリプト機能:オペレーター作成; パネル作成。 パッケージングシステムについて一言。 BPYの将来について。 ゲームエンジンについて少し(Yo!Frankieの例)。 質問への回答。 Creature Factoryコースの控えめな広告。



雑多



グイド・ファン・ロッサムとのファイアサイド・チャット

ヴァンロッサムが質問に答えます。

Pythonの20周年、モラトリアムの終わり、PEP 342およびジェネレーターを介したコルーチン(またはGuidoがコールバックプログラムを好まない理由)で、Python 3(またはごめんなさいPilgrimの本)を適応させるプロセスで、Python 4がありますか? GuidoはPEP(およびラムダ関数などが言語にどのように詰まったか)、CPython以外の実装(特にPyPy)への態度を受け入れませんでした。



基調講演:ヒラリー・メイソン

ヒラリー・メイソンのソリヤンカ。

自分自身、bit.ly、およびデータ分析について簡単に説明します。 自分自身を生成する式。 Pythonの誕生日おめでとう。 言語の人気のグラフ。 食料品店のプログラマーについての冗談。 計算思考について。 活動が脳の身体的変化にどのようにつながるか。 最もクールな言語構成要素について:with、ジェネレーター、デコレーター、およびリスト内包表記。 リストの理解はどこから来たのですか。 業界は何に移行していますか? 遺伝学、フィットネス関数、バイオインフォマティクス、および私たちに超能力を与える他のものについて。 質問への回答。



Python IDEパネル

メーカーによるPython開発環境のプレゼンテーション。

Dino Wieland-Visual Studio用のPythonツール。 ドミトリー・ジェヘロフ-PyCharm。 トッド・ホワイトマン-コモド。 Stefan Divel-Wing IDE。 Barry Worso-Emacs用のpython-mod.el。 質問への回答。



PythonおよびLinuxを使用したエクストリームネットワークプログラミング

ロブ・ラドウィックによる報告。

ネットワークでの作業の複雑さについて。 建築信号スロットとその使用(例)、およびSignallingStreamとSelectSignaller。 マルチキャスト、IGMP、TTLの例、およびインターフェイスがマルチキャストパケットを無視できる理由について。 生のソケットについて。 pypcapライブラリについて。 インターフェイスを高度なリスニングモード(プロミスキャスモード)にすることについて。 recvfrom()によって返されるsockaddr_ll構造体の読み方。 「準備完了」ソケットについて。 socket.sendto()の使用方法。 タイプTUNおよびTAPの仮想インターフェースについて。 dpktの使用と、注意すべきことについて。 ブリッジを作成します。 遅延と中断(DTN)に強いネットワークの使用について。 質問への回答。



サイドチャネルを介して:Pythonでのタイミングおよび実装攻撃

ジェレミー・コンドラによる研究。

サードパーティのチャネルに対する攻撃とは何ですか。 「古典的な」認可関数の例と、攻撃に対する脆弱性の分析。 RSA暗号化の解明。 RSAが指でどのように機能するか、暗号化/復号化の手順。 RSA-CRTの強み。 RSA攻撃の例(pow())。 結論 以下を含む質問への回答 攻撃==の問題を解決し、PyCryptoユーザーにアピールする方法について。



添加物:ジャンルの鑑識家のために、示されたレポートのビデオからの急流へのリンク-narod.ru/disk/23856546001/pycon2011.torrent.html



All Articles