arveltのソフトウェア技術メモ

Arvelt's software technology memo

Pycon APAC 2013の感想メモ

Pycon2013にいったので、講演のメモなど。
2日目は台風のせいで帰れなくなるじゃないかと思って行かなかったんですが、実際そうでもなかったようで惜しいことをしました。


おぼえたこと。英語わからない、Sphinxおもしろそう、Pythonの環境はVirtualenvおすすめ、WindowsAzureは途上感ある、英語わからない。
GoogleComputeEngineとAmazonSebServiceとWindowsAzureで競争して、どんどんプログラマブルな仮想環境が使いやすくなってほしいと思いました。



「基調講演」Georg Brandl
python and Neutrons


python3.Xのパッケージ増えている
The FRM2で pythonを使用している
中性子をX線の用に使って走査することができる
中性子の計測装置
いろいろな条件、いろいろな操作
それらの装置をしっかりコントロールしたい
 たくさんのハードウエア
 自動化
 新しい機器が増える
 使いやすくないといけない
プログラマと物理学者
NICOS
新しいPythonも挙動
デーモンをキャッシュするとき
ドキュメンテーション
ユーザー体験
NameSpaceハック
デバッキング
 PyEval_SetTrace()
メタクラス
デコレーター
コンパイルについて


「パッケージングの今と未来」@Odagiri
http://www.slideshare.net/aodag/ss-26183017
パッケージングの基礎知識
 なぜパッケージングするのか?
  人に使ってもらうため
 distutils
 setup.pyに情報書いて実行すればいい
パッケージングの今
 Pypaツール群
 Pypa PythonPackagingAuthority
  パッケージングツールをメンテナスしてる
 pypaツール
 virtualenv ←これ入れればOk
 setuptool
 pip
 setuptools/distrivute
  distributeはsetuptoolsにマージされた
  entry-point
   起動時点を指定する仕組み
 setuptoolsの使い方
 setup.pyの書き方とか
パッケージの未来
 wheel
 distlib
まとめ
 今はSetuptoolsとsetup.pyの使い方を覚えておく
 今後はwheelとかに注目する


Sphinx入門」@tell_k
Sphnx概要
 ドキュメンテーションツール
 pipでインストールできる
 .rstファイルが元データとなる
 いろんな形式に出力できる
 テーマを設定できる。
  変更できるし、改造できる。
 ドキュメント作成に
  自動ビルドにはWatchdogを使う
  自動ビルドにjekins
   そういうことをやってくれるサービスReadTheDocs
 APIリファレンス
  sphinx.etx.autodoc
 DB定義
 よく使う拡張
 参考
  Sphinxx-User.jp
  アドベントカレンダー
  カンファレンス
 QA
  電子書籍特化ならRubyのReview使うと捗る


「Django逆入門」Nozomu Kaneko
https://speakerdeck.com/knzm/pyramid-karafalse-django-ni-ru-men
pyramid(ピラミッド)
django
 自前でパッケージ持ってる
Pyramid
 都度読み込んでる
Requestオブジェクトのとりかた
 だいたい同じ
ORマッパー
 相違点いくつか
ビュー
 相違点いくつか
デバッグツール
 django-debug-toobar
ルーティング
スキーママイグレーション
 djangoはsouth
 sqlalceammyはalembic
フォーム
テストランナー


「VFX業界におけるPython活用例」@alpaca3
CGプロダクションのプログラマ
 映像制作の支援
VFXの製作工程
 プリプロ
 脚本
  絵コンテ
  絵の方向性
  レイアウト
 モデリング
  3Dデータを作成
 リギング
  動かせるようにする
 アニメーション
  動かす
 エフェクト
 ライティング
 コンポジット
  各素材を合成
  ルックを決める
 編集
  タイミング
  カラコレ
 いろんな作業でいろんなソフトを使う
 無駄な作業
  クリエイティブでない作業
  自動化・効率化
 効率化のための機能拡張
 業界として
  デザイナーが圧倒的多数
 スクリプト出来る人いない
  現場とツール制作兼任
 DSLの弱いところ
  クラスの概念なし
  ネットワークなし
 Maya8.5
  Python対応
 Pythonの恩恵
  ソフトに依存させないで使える
  実現可能な幅の広がり
   ネットワークやDB、ライブラリを使える
 ツール2
  スクリプトを整理するためのアプリ
 GUIへの影響
  Qtの採用
   PyQt、PySlide
 Pythonベース、Pythonで書かれたソフト
  Nuke,Katana、Trac、TACTIC
 インハウスをOSSにしていたり
 プロダクションの論文検証・実装活用
  NumPyやSciPy
 Python2.Xが主流
 TDとTR
 TD
  現場に近いプログラマ
  納期が短い(今日中とか
  デザイナーとプログラマ
  元デザイナー
 RD
  プロジェクトには属さない
  長期開発
  海外だともっと細かく分類
  VFX業界にPythonは普及してる
  プログラマを専業で雇うところは少ない
   海外では多い



「Programing AWS with Python」@understeer
http://www.slideshare.net/understeer/20130914-py-conapacawspublic
AWSをPythonで使う話
AWSのSDK
AWSのサービス操作
 ManagementConsole
 コマンドラインツール
 AWSCLI
いずれのツールもAPIを操作しているだけ
AWSSDK
 現在はPerl以外のメジャーな言語版で出ている
Boto
 Python用のAWSSDK
 AmazonWebServiceだけではなく、GoogleStorage、OpenStack、Eucalyptusでも使える。
JavaとBotoはAPI全てにほぼ対応している
DynamoDBの操作例
デモ

 DyamicDNSとして使える
 ServerSwapping
 ScaleUp
まとめ
 SDKを使うことでAWSをアプリのバックエンドで利用可
 AWSはコーディングする方の力を最大限に引き出せる



Python on WindowsAzureの心得」高橋和也
WindowsAzure概要
仮想マシン
 汎用IaaS
 WindowsServer
 CentOS
 Ubuntu
 SUSE
クラウドサービス
 汎用PaaS
 専用SDKで作成したアプリをWindowsServer上にデプロイできる
Webサイト
 Git,FTP等でデプロイ可能 
 最大10サイトまで
 Django/flaskをサポート
開発ツール
 PythonToolsForVisualStudio
 WindowsAzureSDKforPython
仮想マシンの注意点
 Linux仮想マシンの初期状態ではスワップ領域が構成されてない
  /etc/waagent.cfgを編集しないといけない
 一時領域ディスクにファイルを置かない
  再起動で消される
 インスタンス上のPythonは2.7
 クラウドサービス独特のルール
  SDK
  設定ファイル
  デプロイ
  ライフサイクル
 パッケージの作成方法によりデプロイ後のPythonインタプリタの構成が異なる
  PythonToolsForVisualStudio
   Virtualenvの内容をまとめてデプロイ
  WindowsAzurePowerShell
   必要なライブラリでも自動デプロイされないので、自分でいれる
   Djangoのバージョンが古い
 メンテナンスダウンへの対策
  仮想マシン
   可用性セットを構成して、ダウンを回避
  クラウドサービス
Webサイトの注意点
 Python2.7
 Django1.4
 pip等実行できないため、必要なライブラリはすべて抱え込まないといけない
AzureStorageの注意点
 複雑な検索は遅い
SQLDatabaseの注意点
 1DBで150GB
 サポートされないSQL
 コネクション強制切断されることがあるため、リトライロジックが必須
 SQLserver2008以降のデータ型が使えない(datetime2)
 同名DBでも作成のたびに日割り料金が発生する
仮想ネットワークの注意点
 IPアドレスの永続期間
  IPはDHCP割り当て
  仮想マシンを停止すると変わる(再起動はOK)
まとめ
 WindowsAzureでPythonを使える。ツールもある。
 注意点がいくつかある。


「Running your Python applications on Google Computer Engine」BrainDorsey
UsingComputeEngine
 Demo
VirtualMactine
BlockStorage
 snapshot
Networking
Building&PortingYourApplication
QA