[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.0 2006年9月 2.4 27/54組み込みモジュール  
1.1 2007年4月 部分的な2.5 モジュールの追加 優先度の高い問題
2.0 2008年早期 2.5 モジュールの追加 内部的なアーキテクチャ変更
3.0 2009年早期 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)
  • 2.5でwsgirefが標準で追加
  • PythonのWebフレームワークとWebサーバ間のインターフェース
WSGI, Paste, Pylons
質疑応答
  • お薦めは?
    • Django. 自分で使うならweb.py + Kid.
  • 複数データベースへの対応は?
    • Django
      • ブランチを切られている。SQLAlchemyを使う
    • TurboGears
      • SQLAlchemyを使う(ただし、SQLAlchemyはバージョンが低くて使えない?)

Tracの活用」落合豪史

  • インストール
    • Subversionを同じサーバにインストールすること
  • データベース
  • ステージング
    • Webサーバ
    • Trac Environment作成
  • 次のステップへ
    • コミットルールの制定
    • チケット運用の制定
    • Wiki記法に慣れてもらう
  • 0.11の新機能
    • ワークフローの強化

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

  • Python 1.5(10年くらい前)
  • EPICS
  • 構成
                                                                                                              • +
制御アプリケーション
                                                                                                              • +
Python
                                                                                                              • +
CAクライアントライブラリ(アプリケーションプロトコル)
                                                                                                              • +
Channel Accessプロトコル
                                                                                                              • +
CAサーバ
                                                                                                              • +
DB: 機器の状態を管理
                                                                                                              • +
機器
                                                                                                              • +
  • caモジュール
    • EPICS-CAライブラリへの接続
import ca
ca.Get("fred") # fred, jane, albertは機器の名前
ca.Put("jane", 10)
ca.Monitor("albert")
    • 機器プログラムの動作確認など
  • GUI
    • Tkinter
    • Pmw/BLT
      • グラフ表示
  • RDB連携
    • oracledbモジュール
    • pgモジュール
    • sqlobjectモジュール
  • 電子ログ
    • Zopeモジュール
    • pgモジュール
    • Webブラウザを運転記録の記入と閲覧に利用
  • おしゃべりアラーム
    • macspeechモジュール
    • ctypesモジュール
    • FrameWork, MiniAEFrame
    • 運転時のアラームの読み上げ。137行くらい
  • 改善のアイデアを素早く試すことができる
  • その他の言語も使用されている
  • なぜPython?
    • Perlはわかりにくい
    • Pythonはわかりやすい

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

  • 多くのCG制作スタジオがPythonをつかっている
  • デザイナーがPythonを書いていたりする
  • CGツールの多くがPythonに対応している
  • Maya
    • Maya Python
      • Mayaにネットワークサービスを組み込む
        • Twisted, SOAPpy
      • データ構造
      • シリアライズ
      • 不満足
        • GUIでコールバックをPythonらしく書けない
        • Mayaのノードをオブジェクトとして扱っていない
  • Ploneによる情報共有
    • SIGGRAPHPloneだったから
    • LDAP認証によるログイン
    • COREBlog2を使った日報
    • Help Centerによる技術文書管理
    • Software Centerによるツール管理
    • 困ったところ
      • 遅い
      • 画像・映像の扱いが苦手
      • カスタマイズするのは結構複雑
  • その他のLL
  • デジタルアセット管理システム
    • 制作パイプラインを支援するシステム(RubyRuby on Railsで構築)
  • セガVE研究所では人材募集中。CGの知識がなくてもOK. Python, Ruby, RoR, Plone, ...

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

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

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

  • 何が問題か
    • プログラムが作れるようにならない
  • 大学の授業の特徴
    • モチベーションが低い
    • プログラムコードはぐちゃぐちゃ
    • プログラムの重要性が訴求しきれていない
      • 世の中の変化に大学が追いついていない
    • いまだにFortran(66水準)を教えている
  • 言語の選択
    • 実用的なプログラミングは学習が難しい
    • 教育用言語は現場で使われない
  • Cの問題点
    • 間違ったプログラムが動く
    • アルゴリズム教育に必要
  • アンケート調査
    • 80%が初歩的なものなら書けると回答
      • 実際は異なる
  • 授業の問題
  • Cのわかりにくさ
    • コンパイルはさほどのことはない
    • ポインタはわかりにくい
    • 関数がわかりにくい
    • =による代入がわかりにくい
      • Pascalは=による代入のわかりにくさを認識していた?
  • 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の利点を最大に
    • 開発サイクルをより短く
      • 常にテスト
    • 納品前の時間損失を防ぐ
  • スクラムの基礎
    • タスク(1日から8時間)
    • プロダクト・バックログ
    • スプリント(開発期間)
    • スプリント・バックログ
    • スプリント・ゴール
    • スタンド・アップ(朝礼)
      • 昨日したこと
      • 今日すること
      • 今日困っていること
  • スクラムの流れ
    • 毎朝、スタンド・アップ
    • 毎晩、進捗の書き込み
  • ここがポイント
    • 開発中は、開発の邪魔はさせない
      • 「進み具合はどう?」などとは質問させない
      • バックログの有効活用
    • 2〜3週間のスケジュールしか組まない
    • デモにすべてのメンバーが参加する

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

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

ライトニングトーク

「過疎地域でPythonでHappy!」
  • 宮崎県
  • 竜巻で被災
  • Plone
「自作BDDフレームワーク PySpecの紹介と実装」
IronPythonFirebirdの管理ツール」
「xxxの回し者」安井力