PyConJP2022参加記事

PyConJP2022参加記事

2022/10/14-15(16)に開かれたPyConJPに参加してきました!

2022.pycon.jp

※正確には16日はスプリントです。

今回私は初めての東京のカンファレンスに参加しました。 勢いが凄く、セッション・スポンサーブース・パーティと楽しませてもらいました。

遠方支援制度も利用させて頂き、私は大阪・東京間の新幹線代を出していただきました。 ええ年した社会人ではありますが、「YouTubeで見られるし金銭的にもなぁ・・・」という気持ちがあったので 悩んでいたのですが、非常に助かりました。ありがとうございました。 分断させないという考え方の元、こうやって支援下さっていて非常に素敵だなと思いました。 何か別の形でもっとコミュニティに貢献したいなと思います。

セッションを聴講してて全体的に「あ〜そうだよね、わかるわかる!」ではなく、「全然知らないことばかりや・・・」と 思ったのでそういう意味でも非常に刺激になりました。 また、Pythonの話ができる・聞ける、という点でも普段できない体験だったので非常に楽しかったです。

それでは以下につらつらと書いていきます。

DAY1 10/14

The challenge of speeding up Python

Keynote(基調講演) Mark Shanonnさん

英語での発表でしたが、なんと同時通訳で日本語でも聞けました。 PyConJPすごい。

Pythonの歴史から始まり、JITコンパイラの話が多く「知らない世界だ!」と思いながら聞いてました。 いろんな種類があるんですね。。 PyPy, Hotpy, Jython, IronPython... 途中からちょっと追いきれなくなりました。 2000年にPython2.0が出て、そのころはまだ遅かったそうですがPython3.11では非常に高速化されているとのこと。

セッションの内容に直接的な関係はありませんが、銀の弾丸は無いと言うニュアンスで「魔法の杖はありません」と 言っていてちょっと笑いましたw

C APIっていう単語についても言及があり。聞き馴染みがありませんでしたが、おそらくこちらですかね。

Python/C API リファレンスマニュアル — Python 3.10.6 ドキュメント

また、CPythonのソースを読むためにということでにゃんだーすわんさんが以下のツイートをされていて参考になりそうでした。

FasterCPythonに関わるのは難しそうですが、こうやってPythonが作られているんだなと学べる良い機会でした。 JavaScriptが比較対象?として最初話に挙がっていたと思うのですが、投資されて最適化が進んでおり、 Pythonもそういう意味で我々も投資していかないといけないのかな、など考えるようになりました。

github.com

youtu.be

詳解 print("Hello, world")

Rei Suyamaさん

docs.google.com

Python実践入門の著者の方でした。私は実は最初にPythonについて学ぶ際に買った書籍がPython実践入門だったので勝手に非常に嬉しくなりました。

gihyo.jp

print("Hello, workd")の裏側で何をされているのか・・・ということで抽象構文木(これまで私はちゅうしょうこうぶんもく)や 読んでいたのは秘密。ちゅうしょうこうぶん'ぎ')プログラム実行時の流れを丁寧に解説していただいており、 抑えておきたいセッションでした。

CPythonのビルド手順やデバッグビルドの手順も発表されており、実際にPythonがprint("Hello, world")を するまでに何が裏側で起こっているのか?わかる素晴らしい発表でした。 ふりかえってスライドを見直していると、手を動かしたくなってきたのでまた手を動かして。学んでいきます。

youtu.be

Pythonアスタリスク 🐍🌟💫🐍🌟💫

nikkieさん

ftnext.github.io

我らがミノ駆動本_読書py共同主催者のnikkieさん。

感想の途中ですが一緒に開いているミノ駆動本_読書pyはこちらです。

pythonista-books.connpass.com

スライド170枚という量の多さ、のっけの挨拶「うぃっす」から始まりPythonアスタリスクについてたくさん 語っていただきました。 良い意味で「アニメノモトネタオオスギテワカラナイヨー」っていうスライドでしたw (最初、さかなー🐟の元ネタがわかっていませんでしたw リコリス・リコイルの4話ですね。)

アニメネタ以外だと、Pythonの処理の裏側のことも追える良セッションでした。 例えば二項算術演算子の乗算・べき乗で呼ばれている特殊メソッド __mul__, __pow__ といった存在など Pythonの何気なく動いている裏側には特殊メソッドというものがあるんだよね、ということに触れてもらっていて 初心者の方に聞いて欲しいなと思いました。

アスタリスクがこんなに好きな人を始めてみたので、にっきーさんにみてもらうコードにはimport * を多用して 喜んでもらおうと思います(駄目です)。

youtu.be

Pythonに上級テクニックは要らない(そして正しい付き合い方)

清原弘貴さん

slides.hirokiky.org

Shodoを運営されている清原さん。私もShodoを使ってブログ記事の添削をしてもらったことがありますが 「あ!これだめなんだ!」っていう学びがありました。

shodo.ink

セッションの中身について、自分には刺さることが多いセッションでした。 どうしても覚えた技術をすぐに使いたくなっちゃうことが多いですが、それを戒めてくれるという点で響きました。 自分にとって良いコードでも、他人にとって良いコードかどうかはまた別問題なので。

BeProud時代に実は一度、問い合わせ対応をしていただいたことがあり迅速丁寧な対応をいただいて「この方すごい」 と思っていたり、Make組ブログの記事から勇気をもらったことがあります。

blog.hirokiky.org

使わない方が良いコードの中にabcが挙げられており、抽象基底クラスも使えるなら使った方が良いかなと思ってはいたので、 自分なりに「なぜだろう?」という点は学び直して、適切に取捨選択していこうと思いました。

セッションが始まるまでの場繋ぎのトーク(当初予定していたブースが使えなくなったので)

youtu.be

実際にセッションが始まった時のトーク

youtu.be

AST(Abstract Syntax Tree)に入門する

安本雅啓さん

speakerdeck.com

詳解 print("Hello, world")にも続いて、ASTについて入門するためのセッションでした。 astって本当、名前はよく聞く(?)気がするのですが、ちゃんと理解できていないので学びたく聴講しました。

セッション中に教えていただいたinstavizを早速手元で動かしてみましたが、こんな風になっているのかと 驚きました・・・!!

instavizを動かしてみた

と言ってもまだ理解できていないので、ASTについてもっと理解していきたいなと思いました。

ちなみに紹介されていたLibCSTのGitHubリポジトリはこちら。

github.com

pytestなどの裏側でこうして動いているんだな、とわかって自分の世界がまた1つ、広がりました!

youtu.be

DAY2 10/15

基調講演 統計家 西内啓によるPythonの使い方

西内啓さん

めちゃくちゃ面白かったです。 データ分析とか、今のところ特に馴染みないしなぁ・・・と最初少し思っていたのですが、 喋りが非常にお上手で面白く引き込まれました。

ちなみに「統計学が最強の学問である」の著者様でした。

www.diamond.co.jp

セッションの中で個人的に非常に刺さったのは、データサイエンティストは何に一番時間を使っているのか、という アンケートの結果のグラフがあったのですが、これは置き換えれるなと。 「xxは何に一番時間を使っているのか?」という問いを投げかけることで、課題解決のためのプロセスに役立てそうだと感じました。

実際にその課題解決をするためのdataDiverということで、データ分析をしたいけどそこまでなかなか・・・ という痛みがあったらdataDiverを紹介・あるいは利用したいなと思いました。

(司会者による経歴紹介からStart)

youtu.be

Fast API と学ぶ WebRTC

Takayuki Kawazoeさん

docs.google.com

Web RTCってなんだろ?って聞き馴染みが無かったので興味本位で聴講しました。 リアルタイム通信に適したプロトコルを組み合わせた技術なんですね。 スライド中にもあったのですが、リアルタイム通信ってこれからのWebだと重要な技術だなと自分も 思うので色々な技術がある、そして(今の自分にはまだ)わからん!ということを知れてよかったです。

シグナリング・データのやり取り・再送制御・・・ ネットワークとも少しずつ仲良くなっていきたいですね。

紹介されていたサンプルコード。

github.com

youtu.be

お前はまだ本当のDjango ASGIを知らない。

denzowさん

speakerdeck.com

Djangoは過去勉強してちょっとしたWebサイトをherokuにデプロイする程度なのでどうしようかなと思いつつ、 WSGIは聞いたことがあるけどASGIってなんだろう?って思っていたので聴講しました。

WSGIは同期ですが、ASGIは非同期・・・ということでシンプルな違いながら、Fast API と学ぶ WebRTCのセッションでも話が挙がったように これからのWeb開発には非同期的なものが重要になってくると思うので、Djangoに限らず抑えていこうと思いました。

ASGI Documentation — ASGI 3.0 documentation

youtu.be

コーディング規約自動化: Pylintのカスタムルールを作ろう

Takayuki Hirayamaさん

ここでもASTの話が出てきました!今回のPyConJPで一番共通して挙がったテーマが実はASTではないだろうか?

astroidというライブラリを利用して説明がされつつ、 モジュール検索パスという普段意識していない概念や PylintのVisitorパターン(エキスパートPythonプログラミング 改訂3版にも記載があったそう)など紹介もあり勉強になりました。

github.com

スコープの管理のくだりがまだ理解・頭の中に落とし込めていないので勉強していこうと思います。

speakerdeck.com

youtu.be

続・絵を読む技術 Pythonで読むイラストの心理戦略

ひろさじ / Hirosajiさん

speakerdeck.com

今話題のAI絵師のことにも触れられていました。

魅力的なキャラクターの構成要素に 最も代表的な定石としてコントラポスト、最も原始的な定石として性戦略が挙げられていました。 コントラポストは体重の多くが片脚にかかった姿勢とのこと、だそうで私が質問したのですが「ジョジョ立ち」もコントラポストと言えるそうです。

例えばこのコントラポストを検出するためにPython(3D姿勢推定モデルのSMPL)を利用しており、 普段Webアプリケーション以外のPythonには馴染みないのですが「すげー!面白い!」って思いました。

キャラクターの好みについて、「なぜ」「どうして」といった理由を説明しつつPythonを使って実証?することで 非常に興味深いセッションでした。 referenceも多く、まさに論文では・・・と思われるすごいスライドでした!

本題とは全く関係ないですが、スライドの構成も非常にみやすくて「わかりやすく伝えるためのスライド」では こちらを周りの方に紹介しようと思いました。

ちなみに2021年のPyCon JPで発表があったのはこちら。

www.slideshare.net

youtu.be

アフターパーティへの参加とLTをしました

コロナの抗原検査も無事陰性だったのでアフターパーティに参加しました。 お寿司やアルコール類が出される姿、、、コロナ前の勉強会が戻ってきたみたいで懐かしくなりました。

当時私が未経験だった頃はラクスさんの勉強会に毎月顔を出させてもらっていたな、とか 懐かしい気持ちになっていたところ・・・(当時はPHPを勉強していました)

なんとLTの抽選があたり、発表しました。 盛り込んで5分ギリギリ・早口になったのですが楽しかったです。

スライドはこちら。

docs.google.com

nikkieさんには感謝の意を伝えていましたが、あそこで声をかけてもらって?一緒に始めたことから PyConJP2022に参加も繋がっていると思ったので。本当に感謝しています。

ちなみに、スライド自体は大枠を14日の朝の新幹線に作成していたので、日の目を見ることになってよかったなと思いましたw

他にも気になった発表

イベント駆動アーキテクチャについて

Masataka Araiさん

Pythonアスタリスク 🐍🌟💫🐍🌟💫と同時刻だったため聴講しておらず。 Araiさんとはスポンサーブースでお話しさせてもらってから登壇していたことを知ったのですが、 手続き型の上から順に処理が実行されるプログラミングではない技法とのことで、知らない概念を知ることができました。

speakerdeck.com

youtu.be

DAY3 10/16

Anshitsuのスプリントへ参加

コミュニティスプリント(他コミュニティでいうところのハッカソン)に参加しました。 正直自分にできることって何かあるかな?と思っていたのですが、ここはノリと勢いでそのまま参加しました。

どんなツールなんだろう?と思って話を聞いてみて、そのまま一緒に加わらせて頂きました。 今思い返すと微妙かな・・・ と思ってはしまうのですが、自分の書いたコードをMergeしてもらって、 OSSに技術でcontributeするという経験を得ることができました(Type Hintsがダメだったので修正してもらいましたが・・・)。

加わらせてもらったのはこちらのanshitsuです。

github.com

ちなみに身体が1個しかないので参加できませんでしたが、 Python Boot Campのスプリントや Python製ノーコードツールStreamlitなども活動されており、ちょっとStreamlitは中身が気になるので ソースを少しみてみようと思います。

github.com

最後に

今回、PyConJP2022に参加してみて、全然Pythonのことを知ってないなと思いました。 もちろんCPythonの中身の実装が分からずともPythonが書けるように、詳細に内部まで知る必要性・必然性まではないのですが・・・。 それ自体は別に決して悲観することでもないなと思いつつも、自分が目指しているのは言語の仕様も理解し 楽しめるようなエンジニアなので、もっともっと強く・成長していきたいなと痛感させられました。

また、これは直接PyConとは関係ないですが、私が未経験エンジニア時代に憧れていたKawamataRyoさんともお話しする機会があって 非常に嬉しかったです。

普段、周りでPythonの話がしっかりと出来ているわけでもないので非常に刺激的な3日間を過ごすことが出来ました。 次はTechの話で登壇できるように1つずつ、学んでいこうと思います。