wiki:PyCon2007/20070223

Version 20 (modified by sgk, 13 years ago) (diff)

--

PyCon2007/20070222

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

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出力なんて無いんだろう。

Attachments