Overview
We participated in PyCon JP 2017 on September 8th and 9th, 2017. PyCon JP is a conference where Python users gather to exchange information and exchange information about Python and software using Python. The following is a participation memo (personal impression memo).
Impressions of this year
I got the impression that the density became denser throughout. I think the main reason is that the time for each session has been reduced from 45 minutes to 30 minutes. Since the question time is only about 3-5 minutes, I asked one or two people and finished, and maybe because the presentation would not fit in time unless I rushed, all the speakers spoke fast and the slides were flipping through very much. There were many cases where speedy announcements were made. Personally, I was impressed by the fact that the information density increased and I wasn't motivated by questions (although I was a little tired because I had to concentrate on listening).
2016 (45 minutes)
![スクリーンショット 2017-09-10 10.41.08.png](https://qiita-image-store.s3.amazonaws.com/0/92806/753622a6-898b-b16b-8e35-035fe0b23c0a.png)
It was shortened in 2017 (30 minutes)!
![スクリーンショット 2017-09-10 10.41.28.png](https://qiita-image-store.s3.amazonaws.com/0/92806/9a5bb313-0e8a-03e3-dbf0-2bbe46550258.png)
3 Talks that were good personally
The sessions that I was happy to hear personally were as follows (in order of goodness)
Talks
Each Talks is posted as a video on Youtube. Below is the link and a brief (really simple) comment.
Industrial Test Automation with Asyncio (en)
- Is the presenter from Siemens (Germany)?
- Simultaneous processing of communication between multiple machines when building an automatic test environment by railway simulation is an issue.
- It's nice that a Python library called asyncio can be used for asynchronous processing (recommended)
Sequential communication:
![スクリーンショット 2017-09-10 11.02.45.png](https://qiita-image-store.s3.amazonaws.com/0/92806/57726a79-aa8c-2feb-88d9-3b2b75fcfe70.png)
asyncio (You can communicate at once!):
![スクリーンショット 2017-09-10 11.03.29.png](https://qiita-image-store.s3.amazonaws.com/0/92806/067f0f0a-c0ee-0a71-ff23-b5c41ca230ce.png)
- Introduction of Python GUI library Kivy
- It seems that you can make various nice UIs if you can master it, but it seems that there is little information and I got the impression that it is a thorny road (for professionals?)
- Creating Apps in Kivy (foreign books) is recommended.
4 walls (I got the impression that it seems to be harsh to use)
![スクリーンショット 2017-09-10 11.14.59.png](https://qiita-image-store.s3.amazonaws.com/0/92806/05e81eca-9dfe-284d-26a4-8b97b2bd81f5.png)
- To deepen the understanding of the specifications in Python using the basic Python tool (len ()) as a theme.
- Adapter Pattern is used for the len function that returns the length of the object that is casually used
- Also an antithesis to the opinion that it is not a Python object-oriented language (I don't know much about it)
![スクリーンショット 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)
- Announcement that I wrote a motor control program with Python + RasPi and tried to make it operate easily
- He said he chose Python because tools such as MATLAB are expensive for a fee.
- I got the impression that Python + RasPi might be overwhelmed by real-time control like a drone, but I thought that the attitude to try it for the time being was wonderful.
Move the drone (motor) with a simple code
![スクリーンショット 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)
- Introduction of a method to efficiently display and analyze restaurant information throughout Japan by reflecting tabelog data on a map
- A library called geopandas is good for map data processing and folium for map display (I wanted to use this)
- I tried to use the zip code for the map division, but since the countryside such as Hokkaido is a rough division, I said that I created an algorithm to determine the division from the road information by myself (Use OpenStreetMap for road information) )
Animation showing increase / decrease in restaurant density in chronological order (example)
![スクリーンショット 2017-09-10 11.45.15.png](https://qiita-image-store.s3.amazonaws.com/0/92806/af6086c6-b633-fa0e-e12d-124093ab0137.png)
- Explanation of the position of C / C ++ language and Python as embedded languages.
- Claims that in the future there will be a trend to provide a library that wraps C code for each embedded hardware in Python (whether it is true or not). It is impossible to link various C codes only with C (development man-hours are dangerous). Let's do it in Python.
- I made a temperature sensor IoT and displayed it on the Web, but when I plotted the change every second, the temperature did not change much, isn't this IoT system actually meaningless? I heard that I noticed that the day before the announcement (laugh)
Example of building all temperature sensor IoT with only Python library (including own library) Temperature graph URL
![スクリーンショット 2017-09-10 11.54.52.png](https://qiita-image-store.s3.amazonaws.com/0/92806/d8c36055-7b2d-e4fc-5b6d-b308bb29a4e7.png)
- Explanation and position of FPGA, Introduction of FPGA language (Verilog HDL) code generation (high-level synthesis) library Polyphony in Python.
- FPGA vs RasPi can't beat FPGA (community size?).
- Recently popular Deep Learning was also tried with FPGA (the announcement time was only a little)
The wall felt by software engineers who want to use FPGA
![スクリーンショット 2017-09-10 12.07.22.png](https://qiita-image-store.s3.amazonaws.com/0/92806/0079aab5-0de1-889b-d1d2-7a4a22fb713a.png)
How the Python library Polyphony works (automatically generate Verilog HDL)
![スクリーンショット 2017-09-10 12.08.05.png](https://qiita-image-store.s3.amazonaws.com/0/92806/74a83e9b-b075-85d9-1d4a-d441c1387a04.png)
- What is parallel / parallel processing? What is asynchronous I / O? An explanation of them and an introduction to the asynchronous I / O library asyncio.
- It was an easy-to-understand presentation that carefully summarized the parallel processing and asynchronous related issues that I was interested in (personally, it was the best presentation).
- Slide is up, so I definitely want to review it properly.
After hearing myself (parallel / parallel processing, asynchronous I / O)
![スクリーンショット 2017-09-10 12.23.27.png](https://qiita-image-store.s3.amazonaws.com/0/92806/26b75a55-f241-0762-87b1-3489ee29afd5.png)
- Introduction of environment construction method that can use Japanese morphological analysis API using NEologd dictionary on AWS Lambda
- NEologd has a size of about 900MB, but Lamda has a 512MB limit, and workarounds around that were introduced.
- I also learned that normalization and sanitization are important for practical Japanese processing. Dictionaries Wikipedia dictionaries may be used instead of NEologd?
Operation example (story making is taken in one tokenize)
![スクリーンショット 2017-09-10 12.32.19.png](https://qiita-image-store.s3.amazonaws.com/0/92806/6628bef9-9cba-e03f-3263-6d2960c749e0.png)
Differences from government-affiliated monthly reports, keyword extraction examples (because similar sentences are published every year)
![スクリーンショット 2017-09-10 12.33.52.png](https://qiita-image-store.s3.amazonaws.com/0/92806/f8e5b70b-2f12-4ef6-86d3-aa19220c72da.png)