PyCon2007/20070223
PyCon2007 >> 20070223
カンファレンス1日目。 16時をすぎた辺りから、眠いのと寒いのとでリタイアしてしまった。 テキサスだからといって、この季節にクーラーってのは何か間違ってる気がします。
pyweek: making games in 7 days
16:15から。アルゼンチンの人?通訳付き。
pyweekルール:
- 1 week
- themed
- code from scratch
- published libraries ok
- free or new assets
- no prizes
Creating WhatWhat Status with TurboGears
15:40から。定刻通り。
- Optio Software
-
- 小さいソフト開発会社
- 4人~16人のチーム
- アジャイル開発
どのようにプロジェクトのステータスレポートを得るか?
"WhatWhat?"のアプローチは:
- Dashboard -- status at a glance
- Project Page -- detailed project info
- issues, risks, notes, questions & files.
最初のバージョンは、たった4日間で書いた。TurboGears?があったから!
Python on Parrot -- under the hood
14:37~。
ひとつのVMの上にPerlとPythonの両方を乗せようという野望。 元々はLarry WallとGuidoの冗談から生まれた?
Parrot 0.4.9 released on Feb 22, 2007.
Compilers for Perl6, Tcl, Ruby, Python, JavaScript?, Common Lisp in progress.
新しくバイトコード(とアセンブラ言語)を定めている。PIR
- "Higher-level assembly language"
- "This is not your typical assembly language"
Native Calling Interface (NCI)
- Cライブラリ関数を呼び出すことができる。
Towards and Beyond PyPy
13:52開始。遅れ気味。時間が過ぎてから、わらわらと聴衆が増える。
ぱいぱい。 Python in Python。 コンパイラ、インタプリタのフレームワークでもある。
- CPythonに比べて、2~4倍遅い。
- .net CLIのバイナリをはき出すこともできる。
モチベーション
- JITやよりよいガベコレを使うことによるパフォーマンス向上
- add expressiveness -- stackless style coroutineとか。
- 移植を簡単にする。
- Standard Interpreter
- Bytecode Evaluator
- Standard Object Space
- Parser/Compiler
- Compiler Framework
- Flow Analysis
- Annotator
バックエンド
- C
- LLVM
- CLI
- JVM
- JavaScript?
Cバックエンドは、Stacklessの機能を持つ。-- coroutines, tasklets
- JITコンパイラ
- 透過プロキシ
@lazyデコレータ
未来:
- もっといいGC
- JavaScript?, Prolog, Ruby, Perlなどの動的言語に適用する。JITがすぐに手に入る。
Using Stackless
12:00開始。
「Stackless」はPython。ただし、ちょっと機能追加してある。
「協調型スレッド」
import stackless
stackless.tasklet(writeln)("Hello!")
stackless.run()
stackless.schedule()でCPUを譲ることができる。
stackless.channle()でチャンネルを作成し、チャンネル経由でデータを送受信できる。
タスクで捕まえなかった例外は、メインタスクに転送される。
再帰呼び出しを行う代わりに、タスクを作成して制御を移し、値をチャンネル経由で返す。 再帰呼び出しが不要になる。
- Scalable, light-weight threads
- Fast inter-tasklet communication
ネットワーク処理への応用。asyncoreといっしょに使う。
Turn it into a library? -- Maybe.
Richard Tew's "stacklesssocket.py" module.
Some stdlib modules "just work".
Some stdlib modules aren't thread-safe -- but Stackless has weaker requirements than system threads.
Grant Olson's excellent tutorial "Introduction to..."
Will not be part of CPython.
ゲームソフトで、100,000タスク並列という実例があるらしい。
Writing a Python Extension module in C++ using SWIG
11:25から。
MySQLの人らしい。
- Python自体はC++でモジュールを書くことをサポートしてはいない。
- C++のメソッドを呼び出す、C関数を作らなきゃいけない。
SWIG以外の選択肢:
- Boost
- pycxx
- ctypes
複数の言語に対応したモジュールのソースをはき出すことができる。 しかし、エラー処理、typemapなど、一部は特定の言語専用のコードを書く必要がある。#ifdef SWIGPYTHON。
Writing Your Own Python Types in C
10:55から始まりました。
数独を解くプログラムを作るのを題材にする。 ビットセットを実現する型をCで作り直したら、30秒だったのが20秒になった。
- Pythonソースは、例として最適。
- grepしてみよう。
- 特定の目的の型を作ると高速化できる。
Keynote: One Laptop per Child project
09:00始まりました。
OLPC「XO」では全面的にPythonを採用。 例外は、X.org、mDNS、サウンドデーモンなど。
- GUI "Suger"という名前。
- デーモン
- ファイルシステム?!--内蔵ドキュメントはPythonオブジェクトだ!
- 検索
- ユーザスペースのセキュリティ
- init、起動プロセス!
- コマンド類
全てをいじることができる。 キーボードに、「ソースを見る」キーがある!
"Python one button away" comp.lang.pythonはきっと大混雑だよ! "This is a dangerous idea."
ここまで違っていて「Fedoraベース」と言ってるのはどういう意味だろう?
"We can really use your help!" http://dev.laptop.org/
Pythonを採用した理由は:
- 全てをいじれるようにしたい。「オープンソースの理想と嘘」ソースがついてても普通はリビルドなんてできない。
- メモリもストレージも限られている。128MBメモリ、512MBフラッシュ。
その他マシンスペック:
- Geode-500 366MHz 16KB L1、L2無し。
- 白黒高解像度、カラー低解像度のデュアルモード液晶。専用チップを開発した。
- IEEE 802.11sメッシュ。802.11b/g。ダイバーシティアンテナ。
- USB×3ポート
- SDカードスロット
- 30fpsカメラ
- マイクロフォン
実機2台がプレゼントされた。1台はクイズに正解した人。もう1台はGuidoに。
スライドを映していたのは普通のPC。これがXOだったらかっこいいのだけど。いや、VGA出力なんて無いんだろう。
添付ファイル
- sourceview_key].JPG (26.1 kB) -
sourceview_key
itsuko によって 2007/02/24 16:16:58 に登録されました。
