昨日に続いてPyCon JP 2014に足を運んできました。日本のカンファレンスながら、英語が飛び交う国際感高いものとなっています。実行委員の皆様、話者の皆様、お会いした皆様、大変お世話になりました。お楽しみ様でした!

それでは、今回もノートをアップしておきます。こちらは2014/09/14(日)に行われた3日目、カンファレンスとしては2日目のノートです。

IMG_2360

抽選会ではpepperが当選番号を読み上げていました。先進的!

2日間を通した全般の感想

  • 科学計算系、特に機械学習とそれに派生する話が他のカンファレンスに比べて多かった。自分がこれらに携わっている時に聞けていたら、もっと研究を楽に進められたはず。
  • PythonとITインフラ系の話を絡めたセッションは特になかった。というか、機会があれば自分が話せばいいのかとも考えている。
  • オフィスアワーが設定されていたのはとても良かった。実は、YAPC::Asiaの発表をしてから、質問したいけどkoemuを捕まえられなかったというコメントをもらっていて、何か申し訳ない気持ちになっていたからだ。実際、PyConの懇親会でもYAPCの発表の件で声をかけられてもいる。
  • Python 2と3の間にある溝をどう捉えるか、Pythonに入れ込んだ事がある人は考えなければならない課題となっている。ただ、僕の中ではまだ3にどっぷりという判断ができないので、辛い。
  • 懇親会は向き・不向きがある事を再発見した。当たり前の事だが、身内だとより現実的に捉える事ができた。今後は、懇親会に来てみたいんだが迷っている人の背中を押す事ができればと考えている。
  • 西尾さんの講演の後、ポスター展示を見てしまうと時間を持て余してしまって、さてどうしたものかと悩んだ。例えば、YAPC::Asia 2014のように、無限コーヒーコーナーを通じて交流を深められる場があると良いのかもしれない。
  • 相方とイギリスに旅行に行ってから英語がスムーズに話せる事の重要性をひしひしと感じていたが、今回さらにその認識を深める事となった。やはり、英語で質問・会話できないのはかなりの機会損失になっている。かなりやり込まないと行けない。もっと異文化交流したい。
  • 弁当やケータリングにハラル・ベジタリアンメニューがあるのは素晴らしい。そして、日本では本当に珍しい。海外のカンファレンスではよく準備されているので、日本人もそう言う意識は高めた方が良いと思った。

Keynote

  • @nishio さん
    • サイボウズラボ
    • 邪悪なPythonista www
    • Slide
  • 感想
    • ソフトウェア技術者の育成、これまで職人芸っぽいものがあってモデル化されていなかった所を、西尾さんが取り組まれているのはいつも感服する。
    • 西尾さんが持っているテーマを改めて棚卸しして伺っているように思った。
    • ソフトウェア工学とはまた違った、ソフトウェア技術者育成のモデルを作る事に、自分も加担していくモティベーションをあげる良い時間となった。
    • 「盲点」がみつかると思わず死にたくなるほど辛い気持ちになりますが、西尾さんの話を基準に考えるとそれは普通の事でそれほど気にする事でもないのがわかり、安心した。
  • 1行でPythonを書くwww ワンライナーの話
  • サイボウズラボ
    • 次世代のグループウェアを研究
    • 利用シーン
    • 自動化
      • 設定管理
      • テスト
      • Jenkinsスクリプト
    • インフラ
      • DRでのバックアップスクリプト
      • P2P automatic failure recovery system 月読
    • 解析
      • 収集
      • データクレンジング
      • 統計処理 NumPy, SciPy
      • 今日はここをクローズアップ
  • 解析について
    • 西尾さんの担当
    • kintoneとGitHubの比較: ソースではなく、データを溜め込む所が違う。
    • kintoneにはたまっているデータを見て、どのようにビジュアライズするか提案する機能がある。これはすごい。 詳細:「おすすめグラフ」の裏側
    • プロトタイプ、Flask + NumPy。
  • Groupware
    • Group + Software
    • Douglas C. Engelbart: Augmenting Human Intellect
    • Googleのある状態: 知性が強化されていると感じませんか?
    • コンピュータによって人間を強化する
    • モニタリング
      • 自分自身をモニタリングする事はできない。ダメな時にダメな自分でモニタリングしても、気づけないのではないか。
      • 他の人にモニタリングしてもらう: 精度は上がるかもしれないが、プライベートな情報等を渡さなければならず、人間関係が問題になる。
      • ではコンピュータにやらせてみよう。
      • やる気の出るアドバイス
        • 僕は前使った時にやる気が出ました!!!
    • 人間の情報を取り込む能力を強化するために、コンピュータを利用していく。
  • 人間の増強の4要素 (Augmenting Human Intellect)
    • Artifacts
      • Computer, Software …
    • Language
      • Design Pattern, 専門用語…
    • Methodology
      • 問題解決のための手順、戦略…
    • Training
      • これらを利用できるための育成・教育
  • Discover – 方法論
    • 詳しくなればなるほど、バイアスに縛られて見えなくなるものがある。
    • だからこそ視点を変えて行く必要がある。
    • Known <–> Unkonwn の間に「不明」な領域がある。
    • まずは「知っている領域」を明確にする。そうすると、盲点を理解できる。
  • 抽象的なものは、具体的なものに紐づける事で理解する事ができる。
    • 例えばTrueの定義の違いとPythonの事例
  • 歴史を追うことで盲点に気づく
    • 例えばなぜPythonにはNew-Styleクラスがあるのか
    • それは型とクラスを融合する必要性があったから
  • 経験をする事で理解する
    • 例えばPythonは 1 / 2 = 0.5 にならない
    • これってMediatorパターンって名前だったんだ!→経験に名前が付けられる事で言語化できる
  • 学びは必ずしもひとりでする事ではない
    • 経験の異なる他人と会話する事で盲点に気づく
    • オフィスアワー、ブログ、メールでのコミュニケーションしましょう!
    • 今後、情報は英語化を進めます。
      • 僕もやろう。
  • 質問
    • Q: 認知的不協和
    • A: U理論 (どう書くか後で西尾さんに聞いた、ありがとうございました!)では7つのステップに分解されている
      • 自分以外の他人を自分が啓蒙するのは、良い思考ではない。自分が変わる方が良い。
    • Q: CEで成功するポイントを挙げていると思う。モデリングをどう考えるかもポイント思うがどうか?Abstraction自体が大事なのではないか?
    • A: とても大事な話だと思う。 エンジニアの学び方─効率的に知識を得て,成果に結び付ける の第3章にまつわる話。
      • 試作して試して確認して…を繰り返して精度を上げる。
      • 人文系のような実験が難しい場合は、Grounded TheoryやKJ法を適用する。

OpenCVのpythonインターフェース入門

  • Masaki Hayashiさん
    • 機械学習の画像認識の研究に従事 (D3)
    • 人物姿勢推定を動画から解析する研究をしているらしい
    • Slide
  • 感想
    • がんばってC++を書く事が減るのはとても良いですよね。今度からPythonで書く。
    • CUDAとかはサポートしていないそうですが、これが直ちに問題になるのは限られた状況かなと理解している。
    • (話とは関係ありませんが)会場設営をもっと早め、せめてもう10分早くやるといいと思った。ポスターセッションが長く続いていたので、入場待ちの人が廊下に溢れていた。
  • 概要
    • OpenCVのPython I/Fのチュートリアル
    • C++で時間を損している人もいる!ぜひPythonでも触ってほしいなー
    • Scikit-learnやPandasが使える人が画像認識も使えるようになるといいな
  • OpenCV
    • Python, Java用のラッパーもあり、C++と同じように使える。
    • 現在は 2.4.9、先日 3.0.0のα版も出た。
  • 応用モジュール
    • 機械学習のライブラリは、OpenCVではなくscikit-learnの利用をお勧めする。実際、連携しやすいそうです(pandasも)。
  • 画像の可視化
    • matplotlib,PIL,scikit-imageはRGB画像で保持するのに対して、nnOpeCVはBGR画像がデフォルト。変換処理が必要。
  • あとは、実際の使い方を解説。
  • HOG, SVMを使って人の検出がOpenCVで検出
    • 詳しい話は GitHub リポジトリにて。
  • 質疑応答
    • Q. デメリット
    • A. 計算速度が遅い
    • Q. 2.4.9か2.5か?
    • A. anacondaで入るのが2.4.9なのでこっち
    • Q: GPUアクセラレーション対応のラッパはあるか
    • A: ラッパがない

Pythonによる非同期プログラミング入門

  • Hironori Sekineさん
    • アライドアーキテクツさん
  • 感想
    • 非同期なコードを書きやすいというだけでもPython 3.4に移行するのはありなのではと考えた。
    • サンプル、あまり実感が沸かなかった。もう少し現実に即した例だと嬉しい。
  • Agenda
    • 同期・非同期のおさらいと違い
    • Pythonの非同期F/W
    • asyncio概要とサンプル
  • 同期・非同期のおさらいと違い
    • 非同期はCPUバウンドな処理には有効ではない
  • Pythonの非同期F/W
    • twisted
    • tornado
    • gevent
    • そして thread, multi process (これはライブラリという訳ではないけど)
  • Twisted
    • イベントドリブン型 NWプログラミングF/W
    • 2003年〜
    • defferedを駆使して書く
  • Tornado
    • FriendFeedが作り始めて今でもメンテされている
    • Web F/W + 非同期通信ライブラリ どちらかを選択する事も可能
    • 非常に高速 アドテクでも使われているくらい
  • さて
    • 選べるけど、どれがスタンダードかわかりづらい。
  • asyncio
    • PEP 3154 のリファレンス実装
    • Python 3.4 から標準ライブラリとなった
    • 各種プラットフォームサポート
    • 既存のF/Wを保管している
    • アーキテクチャ
      • Event loop: プラットフォームに最適なI/O処理を提供する
      • Corutines: PythonでいうGenerator
      • Future, Task: 非同期実行をカプセル化

NOCツアー

  • NOCのみなさん
  • 感想
    • 最高のカンファレンスは最高のITインフラに支えられている。
    • カンファレンスネットワークと、携わっている人はもっと評価されていいと思う。
    • 敷設、及びトラブル対応の手際の良さはハンパない。普段相当取り組まれているのだろう。
    • NOCツアー、仕事の差し障りがあるはずなのであまり大々的にできないかもしれないけど、話がこうして聞けただけでも良かった。そして、いきなりお邪魔してすいませんでした…。
  • See also: PyCon JP 2014 開催前レポート 第3回 会場・パーティについて :CodeZine
  • プログラムになかったけど、急遽(?)開かれていた模様。
  • ネットワーク機材、NOCの模様、及び各部屋への配線の事例について解説。
  • 設計
    • 事前に建物の配置等を確認していた。
    • 綿密に設計書を書かれていた。特に配線。
  • ゲートウェイ
    • Flet’s Nextをこのために引き込んでいる
      • (ONUはいつも家で見るそれそのもの)
    • DualStack-lite
      • IPv4はv6をトンネルしている
      • v6のIPが降ってきているのはそのため
      • IPv4は局側のLS-NATを使って外に出ている
    • カンファレンス2日目は最大110Mbpsをマークしたそうだ(カンファレンス1日目はもっとあったらしい)
  • Macのifconfigの結果
$ ifconfig   # 一部省略
en0: flags=8863 mtu 1500
	ether 84:38:35:??:??:?? 
	inet6 fe80::8638:35ff:fe44:8584%en0 prefixlen 64 scopeid 0x4 
	inet 10.1.0.25 netmask 0xfffffc00 broadcast 10.1.3.255
	inet6 2409:10::504:8638:35ff:fe44:8584 prefixlen 64 autoconf 
	inet6 2409:10::504:5481:e39:453e:628f prefixlen 64 autoconf temporary 
	media: autoselect
	status: active
  • DHCP
    • 約1,000個確保
    • 500〜600個程度リースされている実績を確認している
  • 機材
    • 事前に別の場所で設定、稼働テストを実施。 (これはLTで聞いた)
    • 機材の死活は Dead Man で監視。
      • Interopでも使われていたもの。確かにShowNetで同じものを見たな。
      • Pingのみでシンプルだがいいソフトっぽい。
    • YAMAHAさんから提供を受けている
    • Wi-Fi AP
      • YAMAHA WLX302 がメイン。
      • 予備はIIJのWi-Fi APがいくつか。
      • 大ホールは5台。
      • メディアホールは 2台。
      • 各会議室は1台。
      • 急遽、懇親会会場や1階のテラスに増設。
    • スイッチ
      • 動画送信だけ、品質が落ちないようQoSで優先して使えるようにした。
      • スイッチをリピーターとしても使っている。
      • 急遽AP追加もある程度見据えて設置。
      • 看板の裏等に隠してあまり目立たないようにしている。セキュリティ、及び景観を考慮。
  • ケーブリング
    • 3時間で構築 ただし事前の設計は綿密だったようだ。
    • 機材は看板の裏に隠して置いている。
    • 3階から4階は階段経由。隙間をうまく使ってケーブルをショートカットさせている。
    • メディアホールは3階から直接接続しづらかったため、調整室の窓から出している。なので3→4→3階と経由している。
    • 断線を考慮して、その可能性がある部分は部分的に取り替えられるようにメス・メスのコネクタでケーブルを分離。
      IMG_2357
    • その他の配線の様子はこちら。足の踏み場や防火扉をうまくかわして配線されています。
      IMG_2359
      IMG_2356

Python Quest in Taiwan

  • Keith Yangさん
  • 感想
    • 台湾、ソフトウェア開発教育に積極的だ。
    • 教材にPythonが使われているケースが増えているような気がしている。
    • ローカライズしてまで使ってもらおうとする組織力、すごい。日本ももっと大きな集団でやれたらいいなと思っている(実際ちょっとやってる)。
  • 変化・チャンス・そして挑戦
    • 教え、学び、書き、そして教育する
    • Pythonは学びやすい(と思う)
    • イギリス: Code Club
      • 放課後教育で9〜11歳に教えている
      • BBCがソフトウェア開発教育に関する番組をはじめているらしい
      • (前にLondonで聞いた話と同じだった)
    • CheckIO
      • 体験の共有?交換?
    • PyCon Taiwan (2014)
      • CheckIOを中国語で
      • 地元での挑戦
      • 英語から中国語に訳さないと
      • カスタマイズしたゲーム
      • 旧来の教科時間とぶつかってしまう
        • あー、とりくめなくね?これだと。
    • geekpy.org
      • 優秀者にはpycon taiwan 2014に参加できる
      • 楽しさを拡散させて行く
      • モティベーションを持つのが大変
  • PyCon Taiwan 2014
    • 100枚の学生チケットが売り切れた
  • 教え学ぶ勉強会
    • Taipei Python Workshop
      • 朝: setup games
      • 昼: チームプレー
        • Web, GUI, Mobile, Data
      • 良い結果を得られた
  • その他のイベント
    • PyLadies Taiwan
    • Django Girls Taiwan
    • Raspberry Pi Workshop