024号文書

主にプログラミング

PyConJP 2019 参加記

はじめに

PyCon JP 2019 に一般参加しました。 PyCon JP にはこれが初参加です。

Day 1

開始前

会場に近いため、余裕の8時起床。雨でテンションが下がりつつも出撃準備。 会場で飲み物が出るか分からなかったので、念のためコンビニで緑茶のペットボトルを購入したが、別に必要なかったです。 道中滑らないように気を付けながら9:30過ぎに到着。 会場にはサンドイッチとフルーツが用意されていました。PyConに来てよかったと感じました。

サンドイッチとフルーツをいただいた後、ブースを周回。 ステッカーをもらうなどしました。

keynote

独学プログラマー の著者の方の発表。 チンタラしてたら席が埋まってたので立ち聞きしました。 CS非専攻だったがPythonを使い始めてからメキメキ強くなった話でした。 Pythonistaの平均年収は1,300万円という話も。私はPythonistaではないのだろう。 ちなみに、レシーバーを借りると同時日本語通訳も聞けたようです。 視力と聴力(英語リスニング力)に乏しいので、借りればもう少しちゃんと話を聞けたと思います。残念。

Python開発を円滑に進めるためのツール設定

スライド: https://www.slideshare.net/aodag/python-172432039

つまらないミスをなくそう、というコンセプトで、lint, formatter, testツールをまとめられた発表です。 具体的には、flake8, black, mypy, pytest, tox について紹介されています。 2019年におけるモダンなPython開発ツールについて知る・復習できるよいセッションでした。

昼食

4種類くらいの弁当から一個+お茶が支給されました。 基本的に机で食べる選択肢はなさそうだったので、ホールの椅子に座って昼食。 昼食後は外で休憩(ゲーム)したり、ブースを周回するなどして、ギリギリまで昼休みしてました(悪手)。

Yet Another Isolation Debian packageと紐づく環境分離

スライド: https://speakerdeck.com/puhitaku/yet-another-isolation-debian-packagetoniu-dukuhuan-jing-fen-li

Djangoで実践ドメイン駆動設計による実装」の方を聞く予定だったのですが、悠長に昼休みを過ごした結果、満席になってしまいました。 仕事でもプライベートでもDebian環境とはあまり縁はないのですが、環境分離の話は興味あったので、このセッションに参加。 会場で展示されていたLOVOTというロボット上でのPython環境分離について、その苦労話を聞くことができました。 正直あまりピンとは来なかったですが、環境管理系のツールについてこれまでの歴史や最近のツールについて知ることができたので なかなか有益だったと思います(どうせPipenvが最強でしょ、と思っていたがそんなことをないみたいです。例えば、 Poetry

PyRun - Shipping the Python 3.7 runtime in just 4.8MB

スピーカはPython 1系の時代からPythonに関わっていたガチ勢。 僅か4.8MBのPythonランタイムを作ったのは驚きましたが、種は理解できませんでした。 容量制約の厳しい環境(マイコンとか?)やコンテナでPythonを動かすときに有用そうですね(小並感)。 https://ep2019.europython.eu/talks/wGmo3yT-pyrun-shipping-the-python-37-runtime-in-just-48mb/

Coffee Break

お菓子列に並ぶ人々が蛇のように並んでいて、PyConに参加していることを実感しました。 お菓子はどら焼きをいただきました。 Coffee Breakは1時間くらいありましたが、昼休みの反省を活かし、早めに次のセッションの部屋に移動しました。

Pythonを使ったAPIサーバー開発を始める際に整備したCIとテスト機構

スライド: https://speakerdeck.com/hgsgtk/python-api-ci-test

CI導入から活用例までカバーした発表です。 モックを用いたテストなど、テスト方法についても知ることができます。 Pythonに限らず、CIに興味のある方は一度見てみるといいのではないかと思います。 具体的で分かりやすい内容でしたが、15分という発表枠はちょっと狭かったですね。

pandasのStyling機能で強化するJupyter実験レポート

スライド: https://speakerdeck.com/komofr/pyconjp-2019

Excelの条件付き書式をPandasでやる方法について紹介した発表です。 CSSを関数の引数として渡すと聞いてダルそうだなと思いましたが、コードを見てみると直観的で良さげでした。 セルにバーを表示する機能もあって、Pandas最強だなと思いました。 最後に to_excel という上司向けのメソッドもあるのには驚かされました。

LT

PyQt5でオレオレブラウザを作った話 が印象的でした。 制限された環境がつらいというのは分かりみが深いのですが、それに対するアクションが激しくて笑いました。 この行動力は見習いたい... 結局、その職場から転職したというオチも面白かったです。

Party

カンファレンスでおなじみの立食パーティーです。最初は会場の広さに対して人数が多く、ほとんど身動きがとれませんでした。 まわりに知り合いのいない "ぼっち” 状態でしたが、最大公約数の最小値がPythonであることが保証されているので、会話は切り出しやすかったですね。 業務でPythonをバリバリ活用している人は少なく、サブウェポンとして活躍しているという声が多かったです。 食事については、カレーが近くにあったのでカレーを2杯、お酒はビールとハイボールをいただきました。 寿司を食べ損ねたのが残念...

Day 2

開始前

会場と同時(9時)に入場。サンドとフルーツをいただきました。 朝食後は早めにkeynote会場に着席しました。

keynote

スライド: https://www.slideshare.net/ikemkt/pyconjp2019python

キュウリ農業×Python な発表です。IoT, AI, ナレッジ伝承などキャッチーな内容が多く含まれますが、決してにわかな内容ではなく、地に足のついた内容です。 試行錯誤しながらキュウリ選別機の精度や使い勝手を上げていく過程は引き込まれるものがあります。 発表者はMakerコミュニティのメンバで、調味料調合機なども自作している、現代のエジソンでした。 また、他の発表でも言及されていましたが、Pythonはそのフレンドリーな文法が人気を得ていることが改めて分かりました。

講演終了後、速やかに次のセッションの部屋に移動する人々を見て、Pythonistaの学習能力の高さを感じました。

Pythonではじめてみよう関数型プログラミング

スライド: https://speakerdeck.com/meganehouser/pythondeshi-metemiyouguan-shu-xing-puroguramingu-058b9e1e-22f1-4f5e-80ba-4563f965140e

F#に出会ってから関数型プログラミングに関心を持った方による発表です。 F#のコードをベースに、fn.pyだと〜のように書けるという内容になっています。 関数型プログラミングについては、ある程度知識を持っているつもりでしたが、永続データ構造に関する話は新鮮でした(お前本当に競プロerか??)。 また、モナドもトピックとして挙がっていましたが、さすがに軽く紹介する程度でした。 なお、「Pythonで一からはじめるモナド」をいつか発表するかも、とのことです。超絶聞きたい...

昼食

同僚の先輩(隣の席)とエンカ。Day 1は参加していなかったようなので、「Day 1は最高でした」と言っておきました。 弁当は豚の角煮に釣られて和風の弁当を選びました(煮物はあまり得意でないくせに)。

婚活・恋活領域におけるPythonを使ったマッチング最適化

大人の事情により、スライドは公開されないようです。

マッチングアプリにおける、ユーザーを見つけるプロセスに焦点を当てた内容です。 発表の冒頭で安定結婚問題やGale-Shapley法という言葉が出てきてテンションがアガリましたが、マッチングアルゴリズムやメカニズムデザインについては深入りしない内容でした。 全人類に対してペアのスコアを計算しようとすると死ぬので、人類をグループ分けし、各グループについて、そのグループに属すペアのスコアを計算するという内容だったと思います。 また、Auto MLを用いることでスコアリングの精度を最大20%改善できた、という報告もありました。

入門 自作検索エンジン

スライド: https://speakerdeck.com/ryook/the-first-step-self-made-full-text-search

自分の手でゴリゴリと検索エンジンを作るお話です。手を動かしながら聞きたいかも!? バックグラウンドとなる知識がないと追いつくのはちょっと厳しい印象です。 とはいえ車輪の再発明の面白さが伝わる発表でした。

機械学習ライブラリのPython API作成方法

機械学習とありますが、機械学習は本質ではなかったです。 外部ライブラリのラッパーを作る話で、pytestだとメモリ使用量が変わるという問題をに気づくのに時間がかかった、というネタがありました。 正直、タイトルから乖離がある内容かなと思いました。

Ansibleを通じて「べき等性」を理解してみよう

スライド: https://attakei.net/slides/pyconjp-2019/index.html#/

べき等性とは何か、べき等性を満たすツールは何が嬉しいか、Ansibleはどのようにべき等性を満たしているのか、という内容です。 説明がていねいで、初心者にとってもわかりやすかったです。 Ansibleに関するトークが少ないのは個人的に意外でしたが、Ansibleはどちらかというとインフラエンジニアに受けがよく、PyConの参加者とはそれほどマッチしないため、Ansibleに関するトークは少ないのではないかとのことでした。

LT

Xonsh は俺得だなと感じました。後日、遊んでみたいと思います。 PyConのネットワークに関するトークも興味深いですね。あれだけの人が参加するカンファレンスで、あそこまで快適にネットワークが使えるようにした技術力には脱帽です。

おわりに

素敵な二日間で、Pythonistaとしての経験値を大量に獲得できました。 一方で、自分も経験値をアウトプットする側に回りたいという気持ちも生えました。あるいはスタッフとしてPyCon JPコミュニティにcontributeしたいですね。 Pythonは長年お世話になっている言語なので、何らかの形で恩返しができるようこの一年を過ごしたいと思います。

最後に、PyCon JPのスタッフのみなさま、参加者のみなさまに心より感謝を申し上げます。