wiki:PyCon2007/20070224

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

--

PyCon2007/20070224

PyCon2007 >> 2007/2/24

カンファレンス2日目。

Keynote: Python 3000

Guido van Rossum

Python 3000とは:

  • 次のメジャーリリース。Python 3.0としてリリースされる。
  • はじめて、バックワードコンパチでなくなる。
  • 2000年くらいから検討している。
  • 初期の設計で「間違えた」部分を修正する。
  • PEP 2007/4
  • 3.0a1 2007/6
  • 3.0 final 2008/6
  • 2.6a1 2007/12
  • 2.6 final 2008/4
  • No more classic class -- "class C:" and "class C(object):" both are new-style classes.
  • "print" will be a function. -- 98%は自動的に変換できる。
    • print(x, y) -- print x, y
    • print(x, end=" ") -- print x,
    • print(x, file=f) -- print >>f, x
  • Dictionary Views
    • Inspired by Java Collections Framework
    • Remove .iterkeys(eritems(), .itervalues()
    • Change .keys(), .items(), .values()
      • dict viewを返す。
      • イテレータじゃないよ。
      • keys()とitems()は、setのような使い方。
      • values()は、コレクションのような使い方。
  • Default Comparison Changed
    • Default == != compare object identity; unchanged
    • Default <, <=, >, >= raise TypeError?
    • ex: [1, 2, ""].sort() raises TYpeError
  • Unicode Strings
    • Java-like model
      • 文字列は常にUnicode
      • separate bytes type
      • bytesとの相互変換には、エンコーディングを明示的に指定する必要がある。
    • どのように実装するか、まだ決定してない。
  • Bytes型
    • A mutable sequence of small integers (0..255)
    • unsigned char[]くらいに効率的な実装。
    • .extend(), .find()
    • リテラル:b"abcdefg"
  • New I/O Library
    • Stackable components (inspired by Java, Perl)
      • 最下位は、バッファ無しI/O
      • バッファリングを追加。
      • ユニコード変換を追加。
      • CRLF/LF変換を追加。
  • Int/Long? Unification
    • Only one built-in integer type; named 'int'
    • Python 2.xでのlongに近い実装。
  • Int division returns a float
    • 常にfloatを返す!
    • Python 2.xでfrom future import divisionとするのと同じ。
    • 整数の割り算には、「//」を使う。
  • Raise and Except Changes
    • 全ての例外はBaseExceptionを継承すべし。
    • Exceptions have __traceback__ attribute
    • raise E, arg」は廃止。「raise E(arg)
    • except E, v」は廃止。「except E as v:
      • 例外ブロックが終わるとvは削除される。

Understanding and Using NumPy

What is  NumPy?

  • 巨大なデータを取り扱う。
  • Multi-dimensional array
  • array同士の演算
  • 科学計算ユーティリティ

歴史:

  • Numeric (1995) -- 型に制限があった。
  • Numarray (2001) -- 小さいarrayでは遅すぎる。Numericを完全に置き換えるものではなかった。
  • NumPy (2006) -- NumericとNumarrayの協力のもとに。

コンパチビリティ:

  • Numeric、Numarray用のコードも動く。
  • 新しく書くならNumPy用に書いてくれ。

画像処理:

  • たとえば静止画のサイズ変換は、配列アクセスで1行で書ける。

Arrays of "Records"

Ufuncs

 http://www.trelgol.com/

380 page book available for purchase. freely available in Oct. 2010 at the latest.

Scaling Python for High-Load Web Sites

10:52。

 http://www.polimetrix.com/pycon/slides/

  • 静的ページ:4000 pages/s
  • 動的ページ(Python):400
  • データベース:40
  1. CGIで実装 25 pages/seq
  2. Python App Server 120 pages/seq
    • 問題
      • Global Interpreter Lock
      • セッション情報がDBにある。
  3. ロードバランス 220 pages/seq
    • 問題
      • 静的ファイルは毎回ディスクから読んでいる。
  4. キャッシュ 600 pages/seq

 nginx  memcached

  • DBのインデックスを忘れるな。
  • SQL問い合わせのログをとって、最適化すべし。

デモコード: http://polimetrix.com/pycon/demo.tar.gz

Keynote: Premise: eLearning does not Belong in Public Schools

0900から。

by Ms. Adele Goldberg

"40 is a small number"

アメリカは40年前、世界一位だったが、現在は19位。 29秒に一人、脱落している。

公立学校教育の危機と、eLearningができること。 これまでのところ、どのようにPythonと関係する話になるのかよくわからない…。 コンピュータを教える話と、コンピュータで教える話が混ざってるような気がする。

LOGOの話にからんで、Seymor Papertの名前が出てきたが、ハノイでの事故の話にはふれられなかった。

"Guido van Robot"  http://gvr.sourceforge.net/ 教育用言語。Guido?Guidoってば、いじられキャラらしい?

Creativist Teaching is Hard

Programming needs to be taught as a form of reflection.

教育→「CourseCloud?」→Zope/MySQL/SQLAlchemy/ZAlchemy→Pythonってつながり?残り5分。

rougemountain.com