heki1224の適当な日記

技術知識を忘れないように書き留めておくブログ

PyCon APAC 2013 - Day 1 参加メモ

9月14日、15日の2日間にかけて
Pythonのカンファレンスがありました。
今回私は初参加だったので、どんなモヒカンたちが
マサカリを投げ合っているのか
好奇心と恐怖が混じり合った気持ちで行ってきました。
以下に1日目の参加メモ書いておきます。

Keynote

Python中性子

Pythonプロダクトを活用した開発チーム運営

管理ツールをZabbixに刷新するプロジェクト
ソース管理をCVSから刷新するプロジェクト

3つのPythonプロダクト 
Mercurial
gistもあるよ
RhodeCode
ソースレビューツール
Sphinx
ドキュメンテーション

他言語でも利用できる
管理ツールたちだよ

健全な開発チーム運営

ソースコード管理あるある

ドキュメント管理あるある
sphinx themes bizstyle

コーディングあるある

科学とPython

何でPythonで科学なの?

Pythonは速い
・科学技術計算にとって計算スピードは重要
・NumPy Scipyがある
C++のライブラリを呼び出せる

Numpy、Scipyでできること
・行列計算
フーリエ変換
・統計
積分
・補完
・信号処理など

Numpy使用例:連立方程式
Numpy:Arrayの使用例

どうして科学用のライブラリが充実してるの?
PythonC++ともFortranとも仲良し

データ処理・機会学習用のライブラリ
・scikit-learn(機械学習
・shogun(機械学習
・pandas(データ解析)

多くの分野でPythonが使われている
グラフ理論
・ロボット制御
・数式処理
SAGE
金融工学
Financial Modelling in python
最適化問題
Mathematical Optimization and Python
・化学
・生物学

化学での利用
・分子構造の検索などに利用している

生物学での利用
・E-cell
 細胞の中の物質の濃度変化などを微分方程式で再現する
・BioPython
 遺伝子配列操作
・Pymol
 生体分子3次元Viewer
・MMTK

Pythonは創薬に役立つ

pylons/pyramidからのDjango逆入門

・テンプレートエンジンはjinja2を使うと
djangoとpyramidでもジョブチェンジ可能

VFX業界におけるPython活用事例

・CGプロダクションのプログラマ
 →映像制作の支援
  ・ソフトウェアのテクニカルサポート
  ・作業の自動化・効率化
  ・ライブラリ・アプリケーション開発
  ・社内サービスの検証
  ・論文調査
・ツール紹介:Muzzuri
 モブキャラの制作支援ツール 
・VFXの制作工程
プリプロ
 脚本
 絵コンテ
 絵の方向性
 色の使い方(カラコレ)
・モデリング
 3D
・リギング
 モデルを動かせるようにする
・アニメーション
 モデルを動かす
・エフェクト
 効果
・ライティング
 証明
・コンポジット
 各素材の合成
・編集

・工程とソフトウェア
 20種類くらいある
  →多い
・無駄な作業
 クリエイティブではない
  データ変換
  使用画像のパス変換
  ファイルをサーバにあげる
  ルールを守っているかチェック

・ソフトウェアの機能拡張

・業界として
 デザイナーが圧倒的多数
 スクリプト出来る人少数
 現場とツール制作兼任

・DSL弱いところ
 クラスの概念が無いものもある
 ネットワーク機能が無い

・MayaがPython対応したことで
 各種ソフトもPythonに対応し始めたー

・VFX業界の標準言語=Python

Pythonの恩恵
 ソフトに依存しないで使える
 実現可能なことがふえた

・ツール紹介:DonQuijote
スクリプトのライブラリ管理ツール

・ツール紹介:Karte
ルールによる大量のチェック項目管理ツール

・広がりと影響
GUIへの影響
 Qtの採用
  PyQt=最初
  PySide=今現在
Pythonの広がり
 Nuka コンポジット
 Katana
 Tranctor ディスパッチャ
 TACTIC マネージメントWEBアプリ
Pythonの広がり
 インハウス→オープンソース
  PythonAPIが多い
 論文採用
Pythonバージョン
 Python2.xが主流
・ツール紹介:Valhalla
自動化のフレームワークPython,PySide

・VFX業界の役職
・TD
 現場に一番近いプログラマ
  部署付き
・RD
 長期の研究開発

Programming AWS with Python

AWS API/SDK

Boto
Botoの応用例

pythonでオフィス快適化計画

・どうして社会人はExcelで書類を作るのか
 表計算完全無視☆Excel
 論破しても無駄
・総務の人と仲良くするためのPython
・医療系ライフサイエンスデータ文献検索サービス
 →pubmed
・欲しい文献がない場合
 →図書の人に大学図書館から複写を依頼する
 →Excel申請書ベースでやりとり
 →コピペ!
・複写して欲しい論文が何十件もあるとげんなりする
 →優秀な人ほど困る
・そこでPython
・OpenPyXL + BioPython
 OpenPyXL
  Excel 2007を読み書きするパッケージ
 BioPython
  pubmedAPIを叩ける
・ここまでのまとめ
 PyOpenXLを使うことでExcelファイルをテンプレートにして自動化できる
  →時間の節約
  →無駄な作業からの開放
・他にPythonでExcelを扱うモジュール
 XlsxWriter
  書き込みのみサポート
 xlrd/xlwt
  読み書き対応、古いフォーマットにも対応

・Wordで文書作成
 報告書のようなもの
  誰に報告したいのか?
  再利用されるのか?
  そもそも読まれるのか?
 申請書類のようなもの
  テンプレートに記入
 原稿っぽいもの
  章立て、校正、修正
・実験レポート
 トレーサビリティ重要
  /部門/研究室/年度/.…..etc
 これは使いづらい
  アクセスしにくい
  全体を把握しにくい
  同僚が何をやってるか分からない
・Wikiを使うことにした
FSWiki
 perlで書かれたwikiエンジン
 タグで分類
 XML-RPCに対応
 pdfで出力できる
 wordで出せと言われた
  →RTF:writerを使ってプラグインを開発
 docのテンプレートに埋め込む
・学んだこと
 Wikiでレポートをまとめていくので編集が楽
 仕事とレポートを並行してできる
 レポート作成の心理的障壁が下がった
 軽いバージョン管理
 必要十分な検索機能
・コンテンツと見た目の分離重要
 コンテンツは出来るだけシンプルな記法で持っておく
  バージョン管理システムと相性がいい
  フォーマット変換が簡単にできる
 docにするとコンテンツの再利用性が下がる
  word立ち上げる時間も馬鹿にならない
  ファイル管理のコストも高い?
・docでコンテンツを管理しないというスタンスがいい
Sphinx
 sphinx-docxbuilder
  Sphinxのドキュメントをdocxで出力できる
 →便利
Sphinxをはじめましょう
 Sphinx本でたよ
python-docx
 word2007形式のファイルの読み書きが出来る
 xmlを直接操作する漢字
  →もうちょっと高レベルがいいなぁ・・・
 できること
  段落
  リスト
  数字付きリスト
  見出し
  表
  ページ分割
  画像挿入
・wordに連番をふる
 連番の管理は現場任せ
 ツール作った
 →replace関数を使って、テンプレートを置き換え

PowerPoint
Naverまとめをpptファイルにする
python-pptx + requests
・ガチで美味いスライド
・創薬研究は様々なデータを収集
 それぞれ違う人間が関わっている
  それをまとめるのが大変
 コピペの問題
  時間がかかる
  ミスる
pythonで解消
 python-pptx + SQLAlchemyで必要なデータを取ってきてまとめる
・パッケージまとめ
xlsx
docx
pptx

・そもそも〜xとは?
 Office Open XML
  xmlを含むファイルをzipファイル圧縮したもの
   →XMLをいじればテンプレートで変更可能。
  zipfileとlxmlモジュールがあればOK

・メリット
 自動化できる
 再利用できる
 バージョン管理できる