PyCon 2010 Atlanta セッションの翻訳 †Pythonコミュニティでは、PyConと言うカンファレンスが行われる。だいたい、3日間程度で、様々なセッションや、ライトニングトークが行われる。Pythonというプログラミング言語の周辺で何が起こっているか見渡せる良い機会になる。 今年は、2/19-21までジョージア州アトランタで開催される。正式なサイトはこちら->PyCon2010
今年のセッションを翻訳した。色々と意訳や誤訳があるので、意図を取り違えていたら、教えて欲しいです。また、セッションの原文は、こちらで、参照出来ます。 pytho-hack-a-thonで、LTでちょっと話しました。 発表スライドを上げます。 #slideshare(2975605,lt-100122193444-phpapp02); また、Pycon2009のセッション訳はこちら 5. Designing to Scale: The Story of ShootQ †5.スケールするためのデザイン。ShootQの場合 †このセッションでは、ShootQのCTO(Jonathan LaCour)が利用者の要望に迅速に答え、規模を拡大したWebアプリケーションの設計経験を、共有する。 このセッションでの議題は多岐に渡る。TuroboGears2.0,WSGI,水平垂直DB分割、ロードバランシング,デプロイ,etc。 6. How Are Large Applications Embedding Python? †6.巨大なアプリケーションへのPython組み込み †RenderMan,Maya,Houdini,Nuke等のCGアプリケーションに見る巨大アプリケーションに対するpython組み込み このセッションでは、Pythonインタプリタを組み込むポピュラーなテクニックに興味を向ける。 この調査では、巨大なアプリケーションのコアへ、Pythonを組み込む祭のベストプラクティスを紹介する。 7. Distributed Programming with Pyro †7.Pyroを用いた分散プログラミング †あたかもそれがローカルにあるかのように返答するネットワーク透過的な分散コードを作る。 この強力なライブラリを使って、送信、受信、そして、データ管理をする。 プレゼンテーションでは、実世界にあるようなリアルな実例を示す。それは、MySQLと二つのApacheとロードバランサーを使うような例だ。 Pythonには、シンプルなネットワーク環境があるが、Pyroは、Pythonのシンプルなネットーワーク要素と、あなたコードを繋ぐ良いレイヤーになる。あなたはアプリケーション開発にもっと集中出来るようになるだろう。 9. Import this, that, and the other thing: custom importers †9.Import あれこれ。import カスタマイズ †Python2.3からimportプロセスをカスタマイズできるようになった。例えば、人は例えばzipフォーマットのファイルをインポートできるようになった。 このセッションの目的は、カスタムimportはどのような機構で、あなた独自のimportをPython3.1のimportlibを使ってどのように実装するかを理解してもらうことだ。 11. Cooperative Multitasking with Twisted: Getting Things Done Concurrently. †11. Twistedを用いた協調マルチタスク。 †Twistedは非同期ネットワークアプリケーションの為のフレームワークだ。 それはまた、ネットワークを伴わないアプリケーションでも強力な道具になる。実際の大規模アプリケーション構築に効果を発揮している。 私は、このセッションで、中級のTwistedユーザに、これらのツールが、同期処理にどのように役に立つか包括的に示したい。 13. How and why Python is being used to by the Military to model real-world battlefield scenarios †13 Pythonは、何故、どのように、軍隊で、実際の戦場シナリオのモデル化に使用されているか †Pythonの力を梃子に、軍事アナリストとソフト開発者は、ニューメキシコにあるホワイトサンズミサイル発射場の外で、冷戦時代のシナリオモデルを、もっと洗練された環境に適応したシナリオへ変更した。 COMBATXXIは極上の戦争ゲームモデルだ。([FIXME]後半訳せず) 15. A Short Pinax Tutorial †15 Pinexチュートリアル †PinexはDjangoによって作られた素早いWebサイト開発のためのプラットホームである。 このチュートリアルでは以下の事を、示す。
17. Creating RESTful Web services with restish †17. resishを用いたRESTfulなWebサービス開発 †RoyFieldingは2000年に彼の博士論文で、REST概念について発表した。 もう10年が経つが、Web開発者は、彼らのアプリケーションにREST原理をどの様に応用して良いか混乱がつづいている。 今回は、あまりRESTフルに設計されていない例を使う。 今回のプレゼンテーションでは、RESTの概要と設計原理を述べ、restishフレームワークを用いて実装したRESTfulWebサービスの完璧な例を示す。 私の例では、CRUDはもちろん、トランザクションも含む。 また、httplib2,curlを使ったWebサービスを示す。 19. TurboGears Geospatial Framework †19. TurboGears.地理空間フレームワーク †現在、TurboGearsを使ってリッチな地理情報Webアプリが作れる。そのためには以下のモノを使う。 GeoAlchemyという空間データベースやTurboGearsのGISフレームワークであるgtext.geoをTurboGearsに統合して使用する。 20. Panel: Form Generator Generators †20. パネルディスカッション:フォーム生成ジェネレータ †ほぼすべてのPythonのWebフレームワークには、フォームを自動生成するための機構が存在する。 いくつかのフレームワークは、標準的でわかりやすい手法を用い、いくつかは独自のトリッキーなアプローチでその問題を解決する。 問題は、その両方から私たちは何を学べるかということだ。 このパネルでは、有益なWeb開発ツールを用いて、提示された例を、異なったやり方で示し、機能性をまとめる。そして、類似点や差異を、示す。 21. What every developer should know about database scalability †21. データベースのスケーラビリティについて知っておくべきこと †キャッシュ、レプリケーション、パーティショニング、分散データベース。それらはどのようにあなたのデータをスケールさせることが出来るか(あるいは出来ないか)? 24. Building Leafy Chat, DjangoDose, and Hurricane, Lessons Learned on the Real-Time Web with Python †24.Pythonを使用したリアルタイムWebの教訓 †Webサイトは、デスクトップアプリケーションと競合するため、ますます動的にリアルタイムに成っている。 この話は、Pythonで私が作った3つのwebsiteとtoolの話だ。私がどの様にそれらを作ってきたか、そしてどの様にすればあなたも同じものが作れるようになるか伝えられるようにしたい。 30. Python Testing Patterns †30. Pythonテストパターン †どなたかバグが少ない良いコードを手早く書きたい方はいらっしゃいませんか? 自動化テストがお約束します。 しかし、素早く力強く保守が容易なテストを作る知識や内省はあまり明確ではない。 このセッションは、Pythonコードで、あなたが、効果的に自動化ユニットテストを作る助けになります。 あなたは以下の事を学ぶ。
36. Optimal Resource Allocation using Python †36. Pythonを使用した最善の資源割り当て †SCIPとPythonを使って、スケジュールと資源割り当てのモデルを簡単に紹介する。 時として、プログラマーは、NP困難のような難しい最適化問題に直面する。スケジュールや割り当てのような。 それらの問題を解く洗練された手法が存在する。 このセッションでは、ZIB最適化ソフトと、Pythonインターフェースを使って、それらを解く手法を紹介する。 38. Optimizations And Micro-Optimizations In CPython †38. CPythonにおけるいろんなレベルでの最適化 †CPythonはたいてい、ひとつ前のバージョンより早くなる。 そして、CPythonが早くなるとき、あなたのプログラムも自然と早くなる。 このセッションでは、CPythonの最近や過去、大域や局所的な最適化について話す。 聴衆は、CPythonの内部に熟知している必要はない。しかし、CとPythonに精通している方が良い。 40. Writing Books using Python and Open Source Software †40. PythonやOSSを使って本を書く †最近、無数のアプリやWebサービスがオープンソースを使って開発される。 それらのツールは、あまりに柔軟で強力で汎用性が高いので、アプリケーションを開発するのと同様、著者が原稿を書く際に使えます。 このセッションでは、この現象のいくつかのケーススタディをお見せします。 47. How Python, TurboGears, and MongoDB are Transforming SourceForge.net †47.Python,TurboGears,MongoDBはSourceForge.netをどのように変えているか †2009年の中頃、SourceForgeは、Webサイトの近代化へ乗り出した。手始めに、downloadフローの改良に着手した。 少人数からなるチームは、オリジナルのPHPからPythonへ書き直した。 カスタマイズされたTurboGearsをコアとして、改訂した新しいサイトは、2ヶ月未満で作られた。 このセッションでは、その移行の物語を話す。また、私たちの新しい道具立てを説明する。それらは、TurboGears,MongoDB,Jinjaテンプレートを含んでいる。 48. Python 3: The Next Generation †48. Python3.次世代のPython †これは、Pythonの進化に関する話しだ。 私たちは、Python 2,3について話す。互換性と、異なっている点について話す。また、Python2.6または、他の移行ツールからのVersion3への移行について話す。 49. Diversity as a Dependency †49. 依存としての多様性 †PSF(Python Software Foundation)は近頃、多様性声明を採択した。 この声明を採択するのに、議論があった。私たちは、技術コミュニティーだ。どうして、多様性声明のようなモノを採択する必要があるの?と言う質問だ。 この会では、その質問に言及する。道徳的、倫理的な面ではなく、実用的な面での議論だ。 創造性と生産性に関する研究では、多様性が、創造性の原動力に成っていると示している。 Pythonを最も良い言語にするために、多様性は単に、それを手助けする為だけではなく、まさに多様性によって、良い言語に生る。 51. Simple WSGI composition: story of one refactoring †51. シンプルなWSGI作例,あるリファクタリング †この話は、巨大で単一のPylonアプリを、WSGIとnginxの力を用いて、小さく分割して、リファクタリングした実例だ。 神は細部に宿る。認証、サイト全体のUI,共通のユーティリティ、DB管理等の細かい話をする。 この手法の長所と短所を示し、選択できるようにする。 聴衆は、WSGIを知っていて、Pylon,Werkzeug,PasteのようなWSGI準拠のフレームワークに親しんでいることが望ましい。 この実例は、developers.org.uaと言うサイトの強力さによって示される。 52. New *and* Improved: Coming changes to unittest, the standard library test framework †52. 新しく改良されたunittest,標準テストフレームワーク †Python2.7とPython3.2では、unittestは刷新される。 unittestは、Pythonの標準ライブラリだ。何年もの間、UnitTestは、他のpythonのテストツールの革新に比べて、停滞してきた。 それらの革新的な手法を用いて、UnitTestは刷新された。 今回は、その主要な変更点を見ていく。例えば、新しいassert関数。テスト発見、そして、テストロードプロトコルなどだ。また、それらの新しいUnitTestを以前のPythonで使うにはどうしたら良いか説明する。 55. The Mighty Dictionary †55. 凄い辞書 †初心者もベテランも、Pythonの組み込みデータ型が好き。特に辞書が好き。ところで、辞書は、どの様に動いている?辞書は、他のコンテナ型に比べてどの様に優れている?また、他方どの様な弱点がある? シンプルで鮮やかな図を用いて、Pythonの内部で、辞書型がどの様に実装されているか説明します。 また、どの様に振舞うのか面白いサンプルをお見せします。それらによって、開発者は、辞書をどの様な場面で使うのが適切か、また、どの様な場合には、別のデータ構造が良いのか判断するための青写真を描けるようになるでしょう。 57. Learning Hosting Best-Practices From WebFaction †57. WebFactionに見るWebホスティングのベストプラクティス †WebFactionの隆盛は、Pythonホストサービスの中で、劇的だ。 それらの、機能の秘密は何か? そして、大して宣伝してないのに、お客がお客を呼ぶのか? この話は、単純な静的ページから複数のPythonWebアプリケーションまで共存してホストするWebFactionを使う歳に得られる教訓をお話する。 WebFactionはユーザーごとで、またアプリケーションごとのパッケージシステムをサポートする。 ユーザーは、その独自のインストール方法か、verturalenvの使う。 それらのトレードオフと、どうして、WebFaction上で、easy_insallを使うべきでないかを教える。 58. Maximize your program's laziness †58. 貴方のプログラムをもっと怠惰に †「最も安く早く信頼性の高いコンピューター部品は、それらが存在しないことだ」と言うゴードンベルの格言は、データ構造にも当てはまる。 最も早く、最も簡便で、最も効率的な、データ構造は、それらが、必要になるまで、実行されないことだ。 Python2.0で追加され3.0でもっとシステムに組み込まれた、イテレーターと、ジェネレーターは、遅延評価を、もっと簡単に実装できる。 それは、例えば、Big-Oのオーダーのような巨大な計算でさえ、パフォーマンスを改善させる。 しかしながら、時々、遅延データ構造は、単純なリスト繰り返しよりも、特別な設計が必要になる。 62. Deconstruction of an Object †62. オブジェクトの脱構築 †漸次的なクラス定義の脱構築は、名前空間の構造や、共通属性、ライフサイクル、アクセス制御のような主要素と特徴付けられる。 63. The state of Packaging †63. パッケージングの現在 †PyPiは、Pythonプログラムを、近年、共有する主要なツールになった。 Distutilsを使えば、数秒で、貴方のソフトをPyPIに登録できる。 SetupToolsやPipは、この上に、偉大な機能を追加する。それは、PyPIで依存するパッケージを新ストールする機能だ。それで、貴方は、easy_installと実行するだけで、自動ですべてを行ってくれる。 しかし、現在の配布システムには、欠点や制限がある。そして、それらを改良しなければならない。 今回は、その解決すべき大きな問題の詳細を述べ、どうすべきかのべる。 最後に、Distutilsのロードマップを示し、また、SetupToolsを置き換える配布プロジェクトの概要を示す。 64. Python Metaprogramming †64. Pythonメタプログラミング †Pythonは、偉大なメタプログラミング言語だ。 メタプログラミングは、包括的な手法で、素早く問題を解決できる。そして、リッチなAPIを提供する。 今回は、Pythonでメタプログラムで行う際の異なった選択肢を探求し、また、それらを使う際の正しい方法を探査する。 65. Extending Java Applications with Jython †65. Jythonを使ってJavaアプリケーションを拡張する †Jythonは、JavaVMの為のPython実装だ。 今回は、JythonとJavaの統合についてしゃべる。特に、トリッキーなケース、すなわち、JythonをJavaから呼ぶ方法についてだ。 これは、Jythonアプリケーションをjarファイルとして配布するような、Java固有のデプロイオプションについて話す。 多くの環境で、ユーザーは、単にJarをクリックするだけで、Javaアプリを起動できる。 67. IronPython Tooling †67. IronPythonのTool †概要 IronPythonチームへの要望でもっとも多いものの一つが、ツールのサポートだ。 この会では、IronPythonアプリケーションを作る上で利用可能なツールを示す。 また、最新のIronPythonでデバッグやプロファイルなどアプリケーションの改良に役立つ機能を紹介する。 そして、それらのツールとCPythonで慣れ親しんでいるツール類と比較検討する。 71. Python in the Browser †71. ブラウザーの中のPython †希望して、Pythonでサーバ側コードを書く。 そうしなければならないので、JavaScriptでブラウザー側のコードを書く。 しかし、IronPythonとSilverlightを使えば、Pythonを使ってブラウザー側のコードが書ける。 これは、Python開発者に、SilverLightの概要を示すとともに、HTMLページに直に埋め込まれたPythonCodeによって実行されるJustTextモデルの説明を行う。 この話はまた、Linux,Mac開発者にとって利点になる。 73. Unladen Swallow: fewer coconuts, faster Python †73.Unladen Swallow 少ないココナッツ、速いPython †Unladen Swallowはグーグルによって支援されたCPython最適化プロジェクトだ。 ここでは、UnladenSwallowに対するGoogleの動機、(高速化の為に)取られたアプローチ、ここまでの成果直面した課題,取り除いた不具合、また、CPythonとの統合に、ついて話す。 74. Internationalizing your Django project †74. Djangoでの国際化 †Djangoアプリの国際化は、その響きほどには難しくない。 この話は、国際化と、Djangoツールを用いてどの様に国際化を行うかの概略を説明する。それは、モデルと、ヴュー,または、テンプレートの翻訳と国際化を含む。 また、新しい外国語への適応方法も示す。 78. Small acts make great revolutions: crafting Python and Open Source communities in Rio de Janeiro †78. 少しの行動で大きな変革を起こす。リオデジャネイロで、PythonとOSSコミュニティを作る。 †Python好きであるが、(同時に)リオデジャネイロPythonユーザーは、多様性を信じていた。 プログラミング言語や技術は、宗教とは違う。 どうして、互いに良いツールを学び、知識を共有する多様性をうまく生かさなければいけないのに、互いに競わねばならないのか? この考えを推進して、私たちは、多くの異なった(言語)のオープンソースコミュニティが協働できるようにした。 Coding Dojo Rio,PythonCampus,Dev in Rioなどの多数の言語コミュニティで協働した。。 この考え方によって、リオデジャネイロのコミュニティは、単に一つ一つを足すよりも、もっと強い団体になった。 私たちは、単に方法や技法についてだけではなく、楽しく強い活発なコミュニティを作る価値や経験について共有したい。 79. Simulating network devices with Python †79.Pythonを使ってネットワーク機器を模倣する †インターネットが一般化した。 みんな、ケーブルモデムがなんであるか知っているが、どの様に機能するか知っているはいるだろうか? 今回は、DCHPサーバ開発の過程でできた、新しいネットワークトラフィックシミュレーターについて話す。 最初に、ケーブルモデムやCMTSのようなそのデバイスについて話す。仮想デバイスを用いて貴方が望むだけの多くのネットワーク機器を模倣することが如何に簡単か。また、多くのプロトコルがすでに実装済みか話す。 そして、WimaxやEMAT等の新しネットワークデバイスを追加することや新しいプロトコルを追加することが如何に簡単か示す。 80. Managing the world's oldest Django project †80. 最も古いDjangoプロジェクト †または、どの様に、4万行にも及ぶコードを分割し、unit testを愛するようになったか。 †この話は、Djangoによって作られたEllingtonと言うCMSの開発史である。そしてこれは、長い歴史と巨大な分量を持つコードベースの開発と保守に巻き込まれた開発史である。 この話は、以下の事を話す。ブランチ管理、オープンソースの利点、移植の困難と、テストにパスした時の喜びについて話す。 81. rapid multi-purpose testing †81. 高速多目的テスト †Javascirptやドキュメントや、異なったヴァージョンや異なったPython実行環境の素早くテストできるコードをお望みですか? 今回は、昨年リリースした新しいpy.testの機能について概要を説明します。 最小のテスト使用例と、新しいプラグインモデルを示します。そして、それは次のようなことをカバーします。
最後に、来るべきクラウド上でのテスト機能やテスト集約に関して、話します。 サイトは http://pytest.orgです。 82. Understanding the Python GIL †82. Pythonグローバルロックの理解 †Pythonグローバルインタプリターロックは、度々、スレッドや同期に関して作業を行うプログラマーの関心を引き、議論の的になってきた。 多くのPythonプログラマーは一般的に、GILがPythoがマルチCPU利用を妨げることを知っているが、実際にどう機能し、アプリケーションにどの様な影響があるか詳細に知っている人は少ない。 この話は、あなた達が以前見たことが無いようなGILの内部に、分け入る。 Pythonインタープリターの実行、スレッド実装、マルチコアでのGILの驚くべき振る舞いについて説明する。 83. The speed of PyPy †83. PyPyの速度 †最初に、PyPyのスピードが、昨年のJITコンパイラーの成果によって、どう早くなったか示す。 また、多くのベンチマークを紹介し、他のPython高速化プロジェクトと比較する。 そして、JITの基礎を紹介し、どんな種類のプログラムが大幅にスピードアップし、また、どれがそれほど高速化しないか示す。 84. How Python is guiding infrastructure construction in Africa †84. Pythonは、どのように、アフリカのインフラ構築に貢献したか †この慌ただしいツアーでは、地理空間のインフラ計画システムの構築に、異なるPythonモジュールが果たした役割について話す。 わたちたちは、Pythonを用いて、念入りで、多段的なプロセスであった村の各家庭結びつけるプランを、単一の合理的な計画にへと変更した。 時間、予算、人材で制約が多いなかPythonの無料の使えるライブラリー達が、私たちどの様に勇気づけたか話す。 Javaで同様のことを行うことを想像してご覧なさい。 85. What We've Learned From Building Basie †85.Basieを作る過程で学んだこと。 †2008年の9月から、Basieと呼ばれる異なった大学の6組の学生チームによるDjangoベースのTrac置き換えプロジェクトを行っている。 私たちは、6組の混成された若い開発者チームがどの様な成果を残し、製品レベルのコードを書き上げる過程で学んだことを紹介する。 86. Revisioned Databases for MultiUser Editing †86.多人数によって編集可能な改訂されるデータベース †CCPゲームズでは、巨大なMMOプロジェクトであるので、同じデータを何十ものエデッターで編集する。 これを可能にするため、ユーザーがデータの同期に関して、大した関心を払うことなしに、多人数で編集できるリビジョンデータベースフレームワークを作った。 この話では、リビジョンデータベースの基本的な設計を話す。またこのPythonレイヤーがプログラマーに対して、透過的に機能したか詳細に話す。そして、Pythonレイヤーがどう実行されたから話す。 この開発を通して、何がうまく機能し、落とし穴はなんであったか述べる。 87. Teaching compilers with python †87.pythonを使ってコンパイラーを教える。 †なぜ、コンパイラーを教えるのに、Pythonを選んだか? ARC応用科学大学では、コンパイラーを教える時間は短い。 そのため、技術的詳細を抜きに、主な概念の説明に、集中しなければならない。 学生は、何週間かで、コンパイラーを書き上げることを期待される。 最初、伝統的なC/Lex/Yaccを試し、その後、より教育的な出自を持つJava/Jaccieを試した。その後、PythonとPLY(と構文木を図示する機能とコード分割を用意する機能)を採用した。 その結果、生徒の理解は向上し、面白いプロジェクトを生み出すようになった。 93. PLY and PyParsing †93. PLYとPyParsing †テキストを解釈したくなったら?多くの場合、文字列処理と、正規表現で問題は解決できる。しかし、もっと複雑になったら?解釈システムを試してみよう。 Pythonの世界では、PyParsingとPLYが有名です。 PLYは、伝統的なlex/yaccに連なり、トークンと文法で記述します。 それらは、エラー診断と、パフォーマンスに優れます。 PyParsingは、Pythonのデータ構造として表せる再帰下降構文解析機です。 それは、字句解析と文法の間に差異がなく、容易にデータ型を抽出できるコールバックシステムを形作ります。 今回は、異なったフォーマットで異なった複雑さを持つ文を解析し、二つのライブラリーの基礎を示します。 それはまた、このパーサーをどの様に使うべきか、また、複雑さや読みやすさ、エラーハンドリングや性能についてのトレードオフに関して、理解が深まります。 95. Agent Based Modeling and Simulation in Python †95. pythonを使ったエージェントベースドモデルとシミュレーション †エージェントベースモデルとシミュレーションは、複雑なシステムを、個体の集合や相互の干渉として扱う学問分野だ。 Swarmは多分、その中で、最も使われるフレームワークとプロトコルで、複数の言語で、実装されている。最近は、Pythonで実装された。 このセッションでは、エージェントベースモデル、Pythonで実装されたSwarmそして、モデリングサンプルを説明する。 96. Introduction to unittest (a.k.a. PyUnit) †96. unittest(別名PyUnit)紹介 †PyUnit(unittest)はPythonCodeに堅牢なユニットテストを簡単に付け加えるためのフレームワークである。 ユニットテストを統合すれば、壊れたコードを簡単に素早く見つけるための堅牢なツールが手に入る。 このセッションでは、PyUnitモジュールを紹介し、それをどう使えば有効かデモする。 99. To relate or not to relate, that is the question †99. 関連すべきか?そうでないか?それが問題だ。 †CouchやCasandra,CongoDBなどリレーショナルDBでないものが取りざたされている。それは同時に、リレーショナルモデル周辺のデータベースの最適化がハマった困難な10年でもある。 今回は、リレーショナルデータベースと、その新しい仲間を実情に即して比較し、貴方のプロジェクトでそれらを適切に使用するための実用的なツールを提供する。 101. How to write cross-interpreter Python programs †101. Pythonプログラムのクロスインタープリターをどのように書くか(CPYthon,Jythonで動くプログラムを書く) †このセッションでは、クロスインタプリターで動くPythonプログラムを書くために、何をすべきか、あるいは(ほとんどの場合)、何をしなくて良いかを解説する。 これは、貴方が、Javaプラットフォームで、あるいは高速なpythonインタープリターで動かすと同時に、CPythonでも動かさなければならないプログラムを書くために参考になるでしょう。 106. A Little Bit of Zope Goes a Long Way: Rethinking Interface-Based Abstractions †106. 少しのZopeがとても役に立つ。Interface抽象化再考。 †フレームワークを簡単に拡張出来ないだろうか? もし貴方が、Lanchpadソフトウェアのような複雑なアプリケーションに関わるとして、どの様に相互接続の個所を綺麗に保ち、それらを洗練された相互作用を維持するか? 五年以上前に、Lanchpadは、それらの問題を解くために、ZopeTookitライブラリの実装とデザインを、利用した最初のプロジェクトの一つだ。 それらは、プラグインシングルトン、プラグイン関数、プラグインクラスやインタフェースによって作られている。 それらはいくつかの警告はあるがよく機能している。 私はそのアイディアについて説明する。 私たちは、それらの(設計)パターンをどう応用し、問題を解くために、ZopeToolkitをどう作り替え、そうて、そのアイディアやライブラリをDjangoを用いたような他のプロジェクトに応用したかそのアイディアを共有する。 107. Python for Large Astronomical Data Reduction and Analysis Systems †107. 巨大天文データから抽出分析システムのためのPython †私たちは、Pythonが、地球上の望遠鏡から送られてくるデータを自動的に処理する巨大な天文プロジェクトに、どのように活用されているか書き記す。 私たちは、一般的な問題を紹介し、試みや教訓を話す。 108. How does Enthought distribute packages? †108. Enthoughtではパッケージをどうするか? †distributed for different operating systems in the Enthought Python Distribution. このプレゼンテーションでは、EnthoughtPython配布ソフトを用いて、異なったOSにパッケージをビルドし配布するかその概要を示す。 私が書いた、Enstallerは、eggベースのパッケーインストーラーだ。それは、SWIGやHDF5のような外部パッケージを必要としない。 私は、Enstallerについて説明する。特にeggベースの配布フォーマットについて述べる。 111. The Zen of CherryPy †111. CherryPyの真髄 †CherryPyは、2010年6月で、8歳になる。 このプレゼンテーションでは、CherryPyの真髄について話す。 それは、近年のCherryPy開発において、10この設計ガイドラインとしてまとめられている。 それらのガイドラインはどうして有効なのか、そしてPythonにおいて独自なのか、またそれらを貴方のプロジェクトに応用するためにはどうしたら良いかについて説明する。 113. Modern version control: Mercurial internals †113. モダンバージョンコントロール Mercurial内部構造 †今回、Mercurialについて少しだけ話す。 これは、hgや分散ヴァージョン管理システムに関する初心者レベルの話しではない。Mercurialで使われたコンセプトについて話す上級者向けの話しだ。 その後、GITとMercurialについて比較を行う。特に、パフォーマンスや暗黙のコンセプトについて話す。 116. Cross platform application development and distribution †116. クロスプラットフォームのアプリケーション開発と配布 †Pythonで無料で、クラスプラットフォームのネイティブアプリケーション作りたいとよく考える。 異なるプラットフォームへのアプリケーション配布に興味はないだろうか?でもどうやって? ネイティブっぽいアプリケーションの振る舞い、UI告知やファイルタイプへの登録の方法や実例を示す。 また、よくある落とし穴を避け、クラスプラットフォームのUIをデザインする方法を教える。 私たちは、wxPythonを使って、例を示すが、それは他のツールキットでも有効だ。 希望により、py2exe,py2app,Debian/Ubuntuパッケージシステムのようなクラスプラットフォームの配布システムに付いて話す。 この話しは、Phatchと言う写真処理プロセッサーやSPEと言うPythonエデッター開発の経験に基づいている。 117. Advanced String Formatting †117. 上級ストリングフォーマット †このレクチャーは、上級ストリングフォーマット(str.format)について述べる。 使用法、拡張、チップスをカバーしている。 119. 508 and You: Taking the Pain out of Accessibility †119. 508条と貴方. †政府との契約を考えるのでなければ、508条項について聞いたことが無いだろう。 障害を持つ人達が、使い易いサイトを作ることに興味ありますか? 条項自体にとらわれないで、どうしてそれが良い考えなのか知って欲しい。 120. The Python and the Elephant: Large Scale Natural Language Processing with NLTK and Dumbo †120. Pythonと象。大規模事前言語処理。NLTKとダンボ †Python用の大規模自然言語処理のためのオープンソースツールキットであるNLTKとDumboについて実用的な話しをする。 コンピューターに自然言語を理解させることを生業とする私たちのような人間にとって、Pythonは強力な言語だ。それは、迅速なプロトタイピングを可能にし、Unicodeのネイティブサポートがあり、一流の標準ライブラリが揃っているからだ。 PythonベースのNLTK(Natural Language ToolKit)は、教育研究の分野で、広く使われており、本も出版されPython界隈でも話題に成っている。 最近、Klaas Bosteelsの手によって、Dumboと言う名のHadoopベースのオープンソースPythonクラウド環境APIがリリースされた このセッションでは、Python,NLTK,Dumboを用いて、大規模自然言語処理をどの様に効率的に、優雅に解くかと言う話しをする。 122. Think Globally, Hack Locally - Teaching Python in Your Community †122. グローバルに考え、ローカルにハックせよ。貴方のコミュニティーでPythonを教える。 †一年以上、トロントのハッカースペースであるHackLabTOでは、毎週木曜夕方に形式ばらないPython class/hack nightを開いてきた。 このイベントの参加者自体が、このラボの多様性を表している。参加者には、高校時代、BASICを触っていらいの全くの初心者から、ベテランまで揃っている。 ここに来て、私たちの成功と失敗を聞き、貴方のローカルコミュニティーで同様のイベントを始める際の参考にして欲しい。 126. DJing in Python: Audio processing fundamentals †126. DJするPython.音楽処理原理 †音楽処理について学びたいと思っていた。なぜなら、シンプルなDJアプリケーションを作りたかったからだ。 今回、最終的にはGUIを追加するつもりの、自作したコンソールベースのDJソフトウェアについて説明する。 133. Dude, Where's My Database? †133. Dude,私に最善のデータベースはどこ? †多くのすごいオープンソースのデータベースが市場の外にある。私たちはデータベースの黄金時代に生きている。 幸運にも、Pythonは、仮想的にそのすべてとやり取りできる。 多くのDBが棄却されても、私たちは、自分に最良のDBをどの様に選べば良いだろうか? いくつもの異なった分類のデータベースを調査し、その長所短所を明らかにする。 それぞれ、利点欠点を天秤にかけることによって、DBに関する多くの噂や誤解を晴らすことを期待する。 134. Scaling Python webapps from zero to 50 million users - A top-down approach. †134. 0から5千万ユーザーへのPythonWebアプリ拡張。トップダウンアプローチ。 †LOLappsは、Facebook,MySpace,Bebo上に、5千万人以上のユニークユーザーがいるソーシャルアプリのトップ提供者の一つだ。 このセッションは、何百万ユーザーものユーザーに大して、私たちがアプリケーションを拡張するために取ったトップダウンのアプローチについて述べる。 それらは、以下の6つのトピックを含む。
135. Using Django in Non-Standard Ways †135. Djangoの普通じゃない使い方。 †Djangoに慣れ親しんでいるなら、これをどう使ったら良いかいくらか知っているでしょう。 今回、その考えを粉々に打ち砕き、Djangoを使う異なったやり方を教えます。 それは、大きく分けて二つのやり方があります。 Djangoのモジュールを、Django外で使います。また、Djangoが想定していたものに、別のものを使います。 もし、過去にこれらの方法を、見てないなら、それらはいささか奇妙だったり難しく見えるでしょう。 しかし、実際は、そんなに奇妙でも、難しくも無いです。 137. Sprox: data driven web development †137. Sprox,データ駆動Web開発 †Sproxは、データ操作やデータ生成を取り扱う為に作られたWebフロントエンドツールだ。 Sproxはとても賢い。 繰り返しのコードを書かなくて良い。 正しいデフォルト値と、簡単な上書きで、貴方が必要とするものを、Sproxは推測する。 今回は、Sproxが何者で、どう使えばよいか、概要を説明する。 その後、SQLAlchemyやMongoDB等のバックエンドとの接続や、TurboGears2用の管理Toolとの協働について説明する。 138. Decorators From Basics to Class Decorators to Decorator Libraries †138. デコレーター、基礎からクラスデコレーターへ、デコレーターライブラリーへ。 †デコレーターは、設計をシンプルにし、可読性と信頼性を増進する。 このチュートリアルは、手始めに、基本的なデコレーターから始める。デコレーターを使って、関数に管理者制限を、明確に読みやすい方法で加える。これは、デコレーターがどの様に機能しているか示すためでもある。 その後、トラッキングやロギング、結果のキャッシュ等のシンプルなデコレーターライブりを示す。 それらに続いて、Simionatoのデコレーターモジュールや@call_before(fn)等のライブラリや0から、独自のデコレータや、パラメーター化されたデコレータを作ります。 最終的に、Python3に導入された、クラスデコレーターを使います。 140. Persistent Graphs in Python with Neo4j †140. Neo4jを使ったPythonの永続グラフ †データベースのリレーショナルな側面が、注目を集めるようになりました。 Neo4jはデータモデルとして、グラフを用いているオープンソースのDBです。 Neo4jのデータは、ノードやノード間の関連性として保存されます。 私たちが毎日モデル化しているデータは、実際は、グラフ志向のものです。 それらのデータを自然に保存できるデータベースには大きな利点があります。 このプレゼンテーションでは、Pythonを使ってNeo4jを操作し、また、それを使って作ったDjangoアプリのデモをします。 141. Eventlet: Asynchronous I/O with a synchronous interface †141. Eventlet 非同期IOの同期インターフェース †asyncoreやtwistedのようなライブラリのおかげで、Pythonを使って、何千もの同時接続をさばくネットーワークサーバを作ることができる。 最近は、FriendFeedの新しいプロジェクトのTornadoがその分野に一石を投じた。 これらのライブラリは一般には、非同期IOとして知られるノンブロッキングIOを使って、多人数の同時接続を可能にしている。 しかしながら、これらのプロジェクトでは、コールバックスタイルの複雑なプログラミング手法を学ばねばならない。 Eventletでは、greenletと呼ばれるコルーチンを使って、協調並列実行を行う。 Eventletは、また標準のソケットライブラリを実装する。 Pythonの標準ソケットライブラリに、ノンブロッキングI/Oとスレッドの能力を透過的に付与できる。 そのため、既存のコードを利用して、並列実行を、付与できる。 146. Ecommerce in Python: Introduction to Satchmo and GetPaid †146.Pythonを使った電子商取引。SatchmoとGetPaid紹介 †オープンソース電子商取引の世界では、PHPベースの製品が実権を握っている。 しかしながら、ここ数年は、Pythonベースの堅牢な大用品が、着実な進歩と遂げている。 今回は、2つの異なったPythonのアプローチを紹介する。 Satchmoは、Djangoベースのフレームワークである。対して、GetPaidは、Ploneベースのクレジットカード処理フレームワークである。 これらの製品は、似た設計思想を共有しながら、しかし全く異なった使われ方をしている。 これらのソフトウェアの、現状と輝かしい未来を話し、また貴方のプロジェクトにどう使えるか説明する。そして、貴方が、オープンソースコミュニティーに繋がる手助けをする。 148. Pynie: Python 3 on Parrot †148. Pynie.Parrot(Perl 6仮想マシン)上のPython3 †Pynieは、Parrot上のPython3実装だ。 Pynieのゴールは、CPython3の振る舞いを真似ることで、そして最終的には、CのAPIと互換性を保つことだ。 Parrotが多くの動的言語共有の関数やコンパイラーを提供するので、Pynie自体のコードは軽量だ。 Pynieを使ってPython3のライブラリは、他の言語で動く。 今回は、現時点のPynieの機能を紹介し、また、なされなければならない仕事を示す。あわせて、Pynieの内部構造を紹介する。 150. Evolving Your Framework Under Fire †150. 火事場で、貴方のフレームワークを発展させる。 †フレームワークを書くことは楽しい。そのことは、PythonのWebフレームワークの多さを見ればわかる。 貴方の輝かしいまっさらなフレームワークを実際の要求の多いアプリケーションに適応するのは、痛みを伴う。しかし、それこそが、実質的な改善をもたらす。 152. Supercharging Web Communications: Integrating Python-based Apps with Salesforce.com CRM †152. Webコミュニケーションを過給する。Pythonベースのアプリをセールスフォースに統合する。 †セールスフォースは、企業で5万5千超の顧客と、非営利部門で6千超の顧客を持つ、顧客管理システムのリーディングカンパニーだ。 販売であれ、売買やサポートであれ、ビジネスプロセスの自動化は、ビシネス運営の中核を担う。 セールスフォースを使う企業のPython開発者は、セールスフォースと自社のアプリケーションを統合できる。 運良くセールスフォースには、簡潔で強力なSOAPAPIがある。 このプレゼンでは、セールスフォースのPythonラッパーを使ったインタラクティブサイトの例を紹介する。 そのライブラリ自体も強力だが、Pythonコミュニティでは更に、Ploneコンテンツ管理システムとセールスフォースの統合が進められている。 PloneWebサイトからのポスト、電子商取引、そしてセールスフォースからの返信を、デモする。 加えて、PloneWebサイトでの、セールスフォースデータ利用例を示す。 153. Easy command-line applications with cmd and cmd2 †153. cmd,cmd2で作る簡単コマンドラインアプリケーション。 †Pythonの標準ライブラリcmdを使うと、ばかみたいに簡単に、コマンドラインアプリを書ける。 サードパーティのcmd2は、更に強力なパワーを発揮する。 このプレゼンでは、cmdとcmd2を使って、強力なコマンドラインツールが如何に簡単に出来るか示す。 cmd2で使われるトリックを目にしたら、それがあまりに機能的なので、あなた自身の(たとえそれが無関係な)プログラムにも実装してしまうでしょう。 最後の、そのような例として、cmd2ベースのSQLアプリケーション(sqlpython)を紹介します。 154. Hg and Git : Can't we all just get along? †154. HgとGit。うまくやって行けないのか? †バージョン管理システムを巡る開発者同士の反目は、かなり不必要だ。特に、マーキュリアルユーザーと、Gitユーザの間では。 ほんとにこの二つのシステムはとてもよく似ていて、実際にうまく協力できている。 今回は、GitとMercurialが如何に似ているか、そして「技術的な」相違点を示す。また、Pythonで書かれた、Git/Mercurialの双方向ブリッジであるhg-gitを使って、どの様に共同作業行うか例を示す。 156. Dealing with unsightly data in the real world. †156. 現実世界の見苦しいデータを扱う。 †http://m.ox.ac.uk/での経験を通して、役立たずのシステムから出たデータの取り扱いを説明する。 最初に、そのシステムとやり取りし、そのシステムからのデータを解釈し、最後に、綺麗なインタフェースを取り付けるまでの説明する。 157. Remixing Music Pythonically †157. Python風に、音楽をリミックス †EchoNestは、ボストンに2008秋にできた音楽知能を扱う会社だ。EchoNestは、オープンソースのリミックスAPIを作った。 今回は、コンテンツ中心のマルチメディア編集に採用された簡潔な表現手法について詳しく述べる、そして、そのモジュール作成に、Python的な考えがどの様に作用し、また作用しなかったかを見抜く。 面白くてちょっと奇妙なオーディオとビデオをお見せすることが出来ます。 158. Python in quantitative finance †158. 量的金融の中のPython †この会は、量的金融トレードモジュールの作成実装にPythonやNumPyのようなライブラリがどう使われたをお見せする。 また、多くの異なったツールを知らせる。例えば、金融や経済のデータを分析するために作られたオープンソースのライブラリ、pandasだ。 また、RやMATLABや他の商用、オープンソースの統計製品の置換えとして、Pythonが使われている様々な例を示す。 159. Using Python to Create Robotic Simulations for Planetary Exploration †159. 惑星探査のための、ロボットシミュレーター作成のためのPython使用 †ジェット推進研究所のDartslabの主要な活動は、惑星探査の為の自走ロボットのシュミレーターを作ることだ。 宇宙船や、ローバーや飛行船のような様々な種類の自律ロボット用シミュレーションを作っている。 シミュレーションを作るために様々な用途でPythonが使われている。 Pythonを使ってシミュレーション用の実行時環境を作り、また、C++で書かれたコードを結びつける。 そして、C++のプロトタイプと設計用にPythonをどの様に使っているか示す。 160. Why not run all your tests all the 05:49:33 A study of continuous integration systems. †160. どうしてすべてのテストを随時走らせないのか?継続的統合システム研究 †Python愛好者が使える継続的統合(CI)システムが増えている。しかし、そのCIを使えばよいか明確な指針は無い。 buildbot, bitten, Hudson, continuum, CruiseControl, DART, and pony-build, and discussを紹介する。そして、いくつかのCIには、Python風の修正を施した。それらのCI(buildbot, bitten, Hudson, and pony-build)について、デモを交えて紹介する。 161. Actors: What, Why, and How †161. アクター。何?何故?そしてどのように? †並列性研究の始まりから、二つの陣営があった。すべてを共有する設計思想。そして、何も共有しない設計思想だ。 並列処理にスレッドを使う多くのアプリケーションは、すべての共有するアーキテクチャだ。 アクターモデルは逆に、何も共有しないモデルだ。アクターモデルは、メッセージ交換を通して、互いに通信する軽量プロセスアーキテクチャだ。 アクターは、状態を変化させ、新しいアクターを作り、配達可能などの様なアクターにも、メッセージを送り、また、メールボックスに特定の種類のメッセージを受け取るために待機できる。 アクターアーキテクチャの利点を述べ、そして、アクターシステムを実装する戦略について述べる。 http://bitbucket.org/fzzzy/python-actors/ 162. Seattle: A Python-based Platform for Easy Development and Deployment of Networked Systems and Applications. †162. Sattle:Pythonベースのネットワークシステム・アプリの簡易開発配置用プラットフォーム †Seattleは、ネットワークアプリケーション開発のための、オープンソースプラットフォームだ。 Seattleの中心機能は、エンドユーザの信用出来ないコードを安全に実行する機能だ。 今回Seattleを使って、安全なPython実行環境を構築する。それは、単に安全な実行を提供するだけではなく、実行環境のコンピューターリソース使用もきちんと制限する。 加えて、Seattleは、開発者に対して、OS固有の振る舞いを隠蔽した高レベルのAPIを含んでいる。 結果的に、Seattleはエンドユーザーのコンピュータを用いた一般的な目的の為の分散プログラミング環境の為のプラットフォームになる。 [1] http://seattle.cs.washington.edu/ 164. Demystifying Non-Blocking and Asynchronous I/O †164. ノンブロッキングと非同期IOの秘密を暴く †最初に、POSIXインタフェース上の、ブロッキング、ノンブロッキング、同期、非同期IOについて述べる。 それらの四つのタイプのIOはいつどの様に使えばよいか示し、また、それらは、Pythonベースのアプリケーションに異なった効果をもたらす。 それらのPythonアプリケーションを見ながら、シンプルなマルチスレッドのブロッキングIOアプリから、ノンブロッキングのシングルスレッドアプリまでを比較する。そして、それぞれの並列性に関する意図を明らかにする。 169. Turtles All The Way Down: Demystifying Deferreds, Decorators, and Declarations †169. Turtles隅から隅まで。Deferredとデコレーター,宣言の秘密を暴く。 †Pythonの柔軟なオブジェクトモデルによって、ライブラリやフレームワークの作者は、とても柔軟な定義ができる。 メタクラス、デコレーター、関数オブジェクト、オペレーターの上書きの力によって、簡潔で自然な形式のライブラリを作るために、言語を再定義することもできる。 不幸なことに、そのような便利なものに、触れたライブラリのユーザーは、しばしば混乱する。なぜならば、それらは、何をしているか明確で無いからだ。 今回は、それらが、単に奇妙なのではなく、素晴らしいマジックであることを確信させよう。 このセッションは、典型的なPythonとTwistedの部分的な機能を使った、ハウツーセッションではない。むしろ、Python,Twsited,Zopeの例を通して、それらの魔術的なPythonコードを理解し、心に思い描けるようにしたい。 171. Customizing your editor for maximum productivity †171. 最高の生産性の為の、あなたのエデッターカスタマイズ。 †今回は、貴方のプログラマーズライフを容易にするエディターに関する種類の話しです。 それは、(VimかEmacsか決めてませんが)、基本的なエディッターの機能についての詳細を含みます。 172. VisTrails: A Python-Based Scientific Workflow and Provenance System †172. VisTrails:Pythonベースの科学ワークフローと起源システム †VisTrailsは、Pythonベースのオープンソースプロダクトです。それは、研究対象からデータやプロセス両方の起源(例えば、血統)を透過的に補足する為のシステムです。 VisTrailsを利用して、どの様に線形データ探査や可視化に使っているかお見せします。 実例を通して、このシステムの主要機能について、説明します。それは、様々なツールやライブラリ(VTK,pylab,matplotlib)からのデータを、視覚的に組み合わてパイプライン処理を行う機能です。 VisTrailsは、起源調査において、単に、結果を生成するだけでなく、パイプラインを作り、きれいにするのにも有効であることを示します。 173. Powering the real-time web with Python: PubSubHubbub on App Engine †173. Pythonを使ってリアルタイムWebに力を。AppEngine上のPubSubHubbub †PubSubHubbubはAtomやRSSフィードを、リアルタイムのストリームへと変換するオープンなプロトコルです。 私は、PythonとGoogle App Engineを使って、サンプルのソフトを作りました。 私は、このリアルタイム作品を作る上でどんな教訓をえたかお話します。 それは、プロトコル、APP Engine上での非同期処理、耐障害性、そして、スケーラビリティについてです。 http://code.google.com/p/pubsubhubbub/ 詳しくはこちらを御覧下さい 174. Pay only for what you eat: A tour of the Repoze.BFG repository and philosophy †174. 食べた分だけ払う。Rezope.BFGリポジトリと、哲学。 †BFGは、WSGIベースのPythonWebアプリです。 これは、食べた分だけ払うフレームワークです。 それの意味するところは、簡単に始められて、そして、必要になったら新しい概念を覚えれば良いと言うことです。 それは、シンプルで、テストされており、ドキュメントも揃っていて、早いです。 これは、開発を楽しくします。 今回は、このフレームワークと設計思想を紹介します。また、他のフレームワークとの類似点と相違点を明らかにします。 175. An Underwater Python: Tortuga the Python Powered Robot †175. 水面下のPython:Tortuga,Pythonで動く潜水ロボット †Tortugaは、Pythonベースの、メリーランドのロボット工学によって作られた水中用自律ロボットだ。 PythonがTortugaの指揮、シュミレーション、制御の為のソフトウェアを書くのにどの様に柔軟性と効率を与えたかを示す。 また、Tortugaを作る際の、試行錯誤、困難、得難い経験、AUVSI AUVコンテストの勝敗について話す。 招待スピーチはややこしいので、タイトルしか訳してません。 †180. On The Subject Of Source Code †180. ソースコードについて †181. Interfaces, Adapters and Factories †181. インターフェース、アダブター、ファクトリー。 †182. Python's Dusty Corners †182. Pythonの汚い所 †183. Debating 'til Dawn: Topics to keep you up all night †183. 朝まで話そう。徹夜させるトピック。 †184. Mastering Team Play: Four powerful examples of composing Python tools †184. チームプレイを習得する。Pythonツールを組み合わせる四つの強力な例。 †185. The other kind of testing †185. テストだけではない。 †186. Powerful Pythonic Patterns †186. 強力なPythonパターン †187. Threading is not a model †187. スレッドはモデルではない。 †188. Tests and Testability †188. テストと検査性 †189. The Ring of Python †189 .Pythonの輪 † |