SumiTomohikoの日記 このページをアンテナに追加 RSSフィード

2007-06-30

[Python] Python Workshop the Edge 2007報告

この記事について

2007年6月30日に開催された、Python Workshop the Edge 2007について報告します。私はずっとセミナーに出席していたので、この記事の内容もすべてセミナーに関してです。

私がとったメモをそのまま記載するので、わかり難いところが多々あると思います。Python Workshop the Edge 2007のサイト (http://www.python.jp/Zope/workshop/200706) には発表資料がアップされていますので、そちらもご参照下さい。

なお、以下では適宜敬称を省略させていただきます。

"IronPython and Dynamic Languages on .NET" Mahesh Prakriya (Microsoft Corporation)

>>> s = "foo"
>>> s.ToLower() # エラー

>>> import clr
>>> s.ToLower() # 使えるようになる
>>> import msagent
IronPythonのバージョンリリース時期Pythonの仕様のバージョンモジュール備考
1.02006年9月2.427/54組み込みモジュール 
1.12007年4月部分的な2.5モジュールの追加優先度の高い問題
2.02008年早期2.5モジュールの追加内部的なアーキテクチャ変更
3.02009年早期3.0?モジュールの追加 

Python Webフレームワーク総ざらえ2007」三浦雅弘 (http://playrecord.org/)

フレームワーク棲み分け図
高機能
  ^
  | Zope
  | Djangoなどたくさん
  | cgiモジュール
  v
低機能
Django
  • 自前コンポーネントの統一感
  • 高いパフォーマンス
  • 管理画面
  • 最近はDjangoの一人勝ち?
    • ネット上での盛り上がり
    • Guide氏が使用
  • newforms
  • URLconf強化
  • テストフレームワーク
  • 管理画面でユーザ管理強化
  • Unicodeブランチ完成間近?
TurboGears
web.py
  • 0.21リリース
  • 複数ファイル化
WSGI (PEP333)
WSGI, Paste, Pylons
質疑応答
  • お薦めは?
  • 複数データベースへの対応は?
    • Django
      • ブランチを切られている。SQLAlchemyを使う
    • TurboGears
      • SQLAlchemyを使う(ただし、SQLAlchemyはバージョンが低くて使えない?)

Tracの活用」落合豪史

「高エネルギー加速器制御システムにおけるPythonの活用」山本昇(高エネルギー加速器研究機構

  • Python 1.5(10年くらい前)
  • EPICS
  • 構成
+------------------------------------------------------+
|制御アプリケーション                                  |
+------------------------------------------------------+
|Python                                                |
+------------------------------------------------------+
|CAクライアントライブラリアプリケーションプロトコル)|
+------------------------------------------------------+
|Channel Accessプロトコル                              |
+------------------------------------------------------+
|CAサーバ                                              |
+------------------------------------------------------+
|DB: 機器の状態を管理                                  |
+------------------------------------------------------+
|機器                                                  |
+------------------------------------------------------+
import ca
ca.Get("fred") # fred, jane, albertは機器の名前
ca.Put("jane", 10)
ca.Monitor("albert")

「CG映像制作とPython セガVE研究開発部での事例」齊藤淳(株式会社セガ

Pythonコード添削道場」増田泰(株式会社アクセンステクノロジー)、西尾泰和、柴田淳Webcore株式会社

  • Py然
    • PyZen
    • 的確な構文と名前
    • PEP8-ism
    • Beautiful
    • Explicit
    • Simple
    • Complex
    • Flat
    • Sparse
      • スペースや空白
  • http://ja.doukaku.org/
  • assertは最適化で消える
  • チームで仕事をするようになって、「他の人のためのコード」を意識するようになった(増田

教育現場におけるPythonの利用」菊池靖(東京理科大学

「プロジェクトにコンパイルはいらない」Emerson Mills(Orinoco株式会社

  • 講師はスクラム(開発手法)のユーザ
    • スクラムを実施して、
      • 毎日14時間労働だったのが、8時間労働になった
      • 生産性は以前より上
  • スクラムとは
    • アジャイル開発の原型
    • 発案者Jeff Sutherland
    • Takeuchi HirotakaとNonaka Ikujiro
      • NASA(ダメ)、Fuji-XEROX, Honda(もっとも良い)の研究から
  • 主概念
  • 滝(ウォーターフォール開発)的
    • 建築のように基礎から
    • 仕事は分離されて順番に行う
    • 最初にすべて設計および計画
    • 設計してから作業開始
      • 期間の長い場合は?
      • 「会場内で、3年後もユーザの要望がいまと同じだと思う人は?」と質問
        • 誰も手をあげなかった
  • 非滝的
    • タスクを同時並行
    • デザインをしながら開発(設計ではない)
    • 失敗を許す
    • スペックは途中で変わる
  • プロジェクトの抽象化
    • ゴールを決める
    • 大きいマイルストーンまで
    • スケジュールは小(1週間)、中(2週間から3週間)、大(6週間)、特大(8週間以上)の4つ
      • 一日単位で組めない
  • Pythonとどういう関係?
    • 抽象化
    • よりより開発環境を目指す
    • 開発サイクルの短縮
  • ウォーターフォールだと
  • スクラムのここが違う
    • 開発チームが中心
    • 開発チームが見直しをする
    • ちょっとしたメモで
    • 2〜3週間単位
    • 常に納品
  • 蛇とラグビー
    • 開発の抽象化ならプロジェクトにも
    • Pythonの利点を最大に
    • 開発サイクルをより短く
      • 常にテスト
    • 納品前の時間損失を防ぐ
  • スクラムの基礎
  • スクラムの流れ
    • 毎朝、スタンド・アップ
    • 毎晩、進捗の書き込み
  • ここがポイント
    • 開発中は、開発の邪魔はさせない
      • 「進み具合はどう?」などとは質問させない
      • バックログの有効活用
    • 2〜3週間のスケジュールしか組まない
    • デモにすべてのメンバーが参加する

BOF: Python国民投票原弘(ミラクル・リナックス株式会社

PyObjCでSkyBotをつくってみよう」ひらただいじ (http://www.daijihirata.com/ , http://uva.jp/dh/mt)

ライトニングトーク

「過疎地域でPythonHappy!
「自作BDDフレームワーク PySpecの紹介と実装」
Pythonの禅を実践するフレームワーク Pylons」
IronPythonFirebird管理ツール
「xxxの回し者」安井力