PyCon JP 2017 参加報告

## 概要
2017/9/8, 9 に [PyCon JP 2017](https://pycon.jp/2017/ja/) に参加しました。PyCon JP とは Pythonユーザが集まり、PythonやPythonを使ったソフトウェアについて情報交換、交流をするためのカンファレンスとのこと。以下参加メモ（個人の感想メモ）です。

## 今年の印象
全体を通して密度が濃くなった印象を受けました。理由としては、各セッションの時間が45分から30分に短縮されたという点が大きいと思います。質問の時間も3-5分程度しかないので、1人か2人質問して終わり、発表も駆け足でしないと時間内に収まらないためか、どの講演者も早口でスライドもガンガンめくって非常にスピーディな発表をされているケースが多かったです。個人的には情報密度が上がり質疑でモタつくこともなくなって好印象でした（ただその分集中して聞く必要がありちょっと疲れましたが）。

2016年（45分）
![スクリーンショット 2017-09-10 10.41.08.png](https://qiita-image-store.s3.amazonaws.com/0/92806/753622a6-898b-b16b-8e35-035fe0b23c0a.png)

2017年（30分）短縮された！
![スクリーンショット 2017-09-10 10.41.28.png](https://qiita-image-store.s3.amazonaws.com/0/92806/9a5bb313-0e8a-03e3-dbf0-2bbe46550258.png)

## 個人的に良かったTalks 3つ

個人的に聞いて良かったセッションは下記でした（良かった順）

* [Pythonをとりまく並行/非同期の話 (ja)](https://www.youtube.com/watch?v=ylorS35kfL8)
* [Geospatial data analysis and visualization in Python (en)](https://www.youtube.com/watch?v=Yd5oEIBFQ_E)
* [AWS APIGateway + Python Lambda + NEologdで作るサーバレス日本語形態素解析API (ja)](https://www.youtube.com/watch?v=9TBwuRjmLqQ)

## Talks

各Talksは動画として [Youtube](https://www.youtube.com/user/PyConJP/videos)  に上げられています。下記はそのリンクと簡単な（ほんとに簡単な）コメントです。

### [Industrial Test Automation with Asyncio (en)](https://www.youtube.com/watch?v=M_RFmiR4xac)

* 発表者はシーメンス（ドイツ）の人？
* 鉄道シミュレーションで自動テスト環境を構築する際の複数台マシン通信の同時処理が課題との
* asyncio というPythonのライブラリが非同期処理に使えて良かったよ（オススメ）みたいな内容

逐次通信：
![スクリーンショット 2017-09-10 11.02.45.png](https://qiita-image-store.s3.amazonaws.com/0/92806/57726a79-aa8c-2feb-88d9-3b2b75fcfe70.png)

asyncio（一気に通信できる！）：
![スクリーンショット 2017-09-10 11.03.29.png](https://qiita-image-store.s3.amazonaws.com/0/92806/067f0f0a-c0ee-0a71-ff23-b5c41ca230ce.png)

### [Kivyによるアプリケーション開発のすすめ (ja)](https://www.youtube.com/watch?v=iVOVpIXzbYY)

* PythonのGUIライブラリ Kivy の紹介
* 使いこなせれば色々良さげなUI作れそうだが、情報が少なそうで何となくいばらの道な印象を受けた（玄人向け?）
* [Creating Apps in Kivy(洋書)](http://amzn.to/2xWEBOk)  がオススメとのこと

4つの壁（使いこなすの過酷そうな印象を受けた）
![スクリーンショット 2017-09-10 11.14.59.png](https://qiita-image-store.s3.amazonaws.com/0/92806/05e81eca-9dfe-284d-26a4-8b97b2bd81f5.png)

### [len()関数がオブジェクトの長さを手にいれる仕組み (ja)](https://www.youtube.com/watch?v=aich6wqftkA)

* Python の基礎的ツール（len())を題材にPythonの中の仕様について理解を深めようとの
* 何気なく使っているオブジェクトの長さを返す len関数にはAdapter Patternが使われてる
* Python オブジェクト指向な言語じゃないという意見に対するアンチテーゼとも（詳しくはよく知らない）

![スクリーンショット 2017-09-10 11.18.48.png](https://qiita-image-store.s3.amazonaws.com/0/92806/7ec104e4-5bbe-ee1d-2a94-2a2b87a6dd0c.png)

![スクリーンショット 2017-09-10 11.19.18.png](https://qiita-image-store.s3.amazonaws.com/0/92806/0511d287-e515-86ad-99ef-df5089913c17.png)

### [ドローンのフライトコントローラをPythonで制御してみた話 (ja)](https://www.youtube.com/watch?v=21quPMpr9_0)

* Python+RasPi でモータの制御プログラムを書いて簡単な動作をさせてみたという発表
* MATLAB等のツールが有料で高いので Python を選んだとのこと
* ドローンのようなリアルタイム制御でPython+RasPiはどこかで無理が来そうな印象を受けたが、とりあえずやってみる姿勢は素晴らしいと思った

簡単なコードでドローン（モータ）を動かす
![スクリーンショット 2017-09-10 11.34.57.png](https://qiita-image-store.s3.amazonaws.com/0/92806/d5fb1b52-0e84-5675-4013-76da7552549b.png)

### [Geospatial data analysis and visualization in Python (en)](https://www.youtube.com/watch?v=Yd5oEIBFQ_E)

* 食べログデータを地図に反映させて効率的に日本全国のレストラン情報を表示・分析していく手法の紹介
* 地図データ処理には geopandas, 地図表示には folium というライブラリが良いとの（これは使ってみたいと思った）
* 地図の区画分けで郵便番号を使おうとしたが、北海道等の田舎は雑な区画分けされているので、自身で道路情報から区画を決めるアルゴリズムを作成したとのこと（道路情報はOpenStreetMapを利用）

時系列的にレストラン密度の増減を示すアニメーション（例）
![スクリーンショット 2017-09-10 11.45.15.png](https://qiita-image-store.s3.amazonaws.com/0/92806/af6086c6-b633-fa0e-e12d-124093ab0137.png)

### [Pythonの本気！RaspberryPiやEdisonを使ったIoTシステムの構築 (ja)](https://www.youtube.com/watch?v=EQtcsJq-l98)

* 組込み言語としてC/C++言語やPythonの立ち位置についての解説。 
* 今後は組込みハードごとのCコードをPythonでラップしたライブラリを提供するような流れが来るという主張（真かは不明）。色々なCコード間の連携をCのみでやろうとすると無理がある（開発工数がヤバい）。Pythonでやろうよという。
* 温度センサーIoT作ってWebで表示させたが1秒ごとの変化をプロットしたところで温度は大して変わらないしこのIoTシステム実は意味ないんじゃね？ということに発表前日に気づいたとのこと（笑）

温度センサーIoTを全てPythonライブラリ（自作のライブラリ含む）のみで構築した例 [温度グラフURL](http://elpisapi.net/TestAPI/)
![スクリーンショット 2017-09-10 11.54.52.png](https://qiita-image-store.s3.amazonaws.com/0/92806/d8c36055-7b2d-e4fc-5b6d-b308bb29a4e7.png)

### [Polyphony: Python ではじめる FPGA と CNN への応用 (ja)](https://www.youtube.com/watch?v=9vwIn0GMWKI)

* FPGA の解説・立ち位置、PythonでFPGA言語（Verilog HDL）コード生成（高位合成）ライブラリPoliphonyの紹介。
* FPGA vs RasPi だと、FPGAには勝ち目ない（コミュニティ規模とか？）。
* 最近流行りのDeepLearningもFPGAでやってみたとの（発表時間的には少しだけでした）
 
FPGAを使いたいソフトウェア技術者の感じる壁
![スクリーンショット 2017-09-10 12.07.22.png](https://qiita-image-store.s3.amazonaws.com/0/92806/0079aab5-0de1-889b-d1d2-7a4a22fb713a.png)

PythonのライブラリPolyphonyの仕組み（Verilog HDLを自動生成する）
![スクリーンショット 2017-09-10 12.08.05.png](https://qiita-image-store.s3.amazonaws.com/0/92806/74a83e9b-b075-85d9-1d4a-d441c1387a04.png)

### [Pythonをとりまく並行/非同期の話 (ja)](https://www.youtube.com/watch?v=ylorS35kfL8)

* 並列/並行処理とは、非同期I/Oとは、それらの解説と非同期I/Oライブラリ asyncio の紹介
* 気になっていた並列処理、非同期関連について丁寧にまとめられており分かりやすい発表だった（個人的にはベストな発表だった）
* [スライド](https://tell-k.github.io/pyconjp2017/#1)が上がっているのでぜひちゃんと見直したい

聞いた後の自分（並列/並行処理、非同期I/Oについて）
![スクリーンショット 2017-09-10 12.23.27.png](https://qiita-image-store.s3.amazonaws.com/0/92806/26b75a55-f241-0762-87b1-3489ee29afd5.png)

### [AWS APIGateway + Python Lambda + NEologdで作るサーバレス日本語形態素解析API (ja)](https://www.youtube.com/watch?v=9TBwuRjmLqQ)

* AWS Lamda 上で NEologd 辞書使って日本語形態素解析API使える環境構築方法の紹介
* NEologd のサイズが約900MBあるが、Lamda は512MB制限がありその辺の回避が紹介されていた
* 実用的な日本語の処理としては、ノーマライズやサニタイズが大切というのも勉強になった。辞書 NEologd じゃなくてもWikipedia辞書でも良いらしい？

動作例（ストーリーメイキングが一つのトークナイズで取れている）
![スクリーンショット 2017-09-10 12.32.19.png](https://qiita-image-store.s3.amazonaws.com/0/92806/6628bef9-9cba-e03f-3263-6d2960c749e0.png)

政府系の月例報告の差分、キーワード抽出例（毎年似たような文章出してるから）
![スクリーンショット 2017-09-10 12.33.52.png](https://qiita-image-store.s3.amazonaws.com/0/92806/f8e5b70b-2f12-4ef6-86d3-aa19220c72da.png)