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
VIDEO youtu.be
詳解 print("Hello, world")
Rei Suyamaさん
docs.google.com
Python 実践入門の著者の方でした。私は実は最初にPython について学ぶ際に買った書籍がPython 実践入門だったので勝手に非常に嬉しくなりました。
gihyo.jp
print("Hello, workd")の裏側で何をされているのか・・・ということで抽象構文木 (これまで私はちゅうしょうこうぶんもく)や
読んでいたのは秘密。ちゅうしょうこうぶん'ぎ')プログラム実行時の流れを丁寧に解説していただいており、
抑えておきたいセッションでした。
CPythonのビルド手順やデバッグ ビルドの手順も発表されており、実際にPython がprint("Hello, world")を
するまでに何が裏側で起こっているのか?わかる素晴らしい発表でした。
ふりかえってスライドを見直していると、手を動かしたくなってきたのでまた手を動かして。学んでいきます。
VIDEO youtu.be
nikkieさん
ftnext.github.io
我らがミノ駆動本_読書py共同主催者のnikkieさん。
感想の途中ですが一緒に開いているミノ駆動本_読書pyはこちらです。
pythonista-books.connpass.com
スライド170枚という量の多さ、のっけの挨拶「うぃっす」から始まりPython とアスタリスク についてたくさん
語っていただきました。
良い意味で「アニメノモトネタオオスギテワカラナイヨー」っていうスライドでしたw
(最初、さかなー🐟の元ネタがわかっていませんでしたw リコリス ・リコイルの4話ですね。)
アニメネタ以外だと、Python の処理の裏側のことも追える良セッションでした。
例えば二項算術演算子 の乗算・べき乗で呼ばれている特殊メソッド __mul__, __pow__
といった存在など
Python の何気なく動いている裏側には特殊メソッドというものがあるんだよね、ということに触れてもらっていて
初心者の方に聞いて欲しいなと思いました。
アスタリスク がこんなに好きな人を始めてみたので、にっきーさんにみてもらうコードにはimport * を多用して
喜んでもらおうと思います(駄目です)。
VIDEO youtu.be
Python に上級テクニックは要らない(そして正しい付き合い方)
清原弘貴さん
slides.hirokiky.org
Shodoを運営されている清原さん。私もShodoを使ってブログ記事の添削をしてもらったことがありますが
「あ!これだめなんだ!」っていう学びがありました。
shodo.ink
セッションの中身について、自分には刺さることが多いセッションでした。
どうしても覚えた技術をすぐに使いたくなっちゃうことが多いですが、それを戒めてくれるという点で響きました。
自分にとって良いコードでも、他人にとって良いコードかどうかはまた別問題なので。
BeProud時代に実は一度、問い合わせ対応をしていただいたことがあり迅速丁寧な対応をいただいて「この方すごい」
と思っていたり、Make組ブログの記事から勇気をもらったことがあります。
blog.hirokiky.org
使わない方が良いコードの中にabcが挙げられており、抽象基底クラスも使えるなら使った方が良いかなと思ってはいたので、
自分なりに「なぜだろう?」という点は学び直して、適切に取捨選択していこうと思いました。
セッションが始まるまでの場繋ぎのトーク (当初予定していたブースが使えなくなったので)
VIDEO youtu.be
実際にセッションが始まった時のトーク
VIDEO youtu.be
AST(Abstract Syntax Tree)に入門する
安本雅啓さん
speakerdeck.com
詳解 print("Hello, world")にも続いて、ASTについて入門するためのセッションでした。
astって本当、名前はよく聞く(?)気がするのですが、ちゃんと理解できていないので学びたく聴講しました。
セッション中に教えていただいたinstavizを早速手元で動かしてみましたが、こんな風になっているのかと
驚きました・・・!!
instavizを動かしてみた
と言ってもまだ理解できていないので、ASTについてもっと理解していきたいなと思いました。
ちなみに紹介されていたLibCSTのGitHub リポジトリ はこちら。
github.com
pytestなどの裏側でこうして動いているんだな、とわかって自分の世界がまた1つ、広がりました!
VIDEO youtu.be
DAY2 10/15
基調講演 統計家 西内啓によるPython の使い方
西内啓さん
めちゃくちゃ面白かったです。
データ分析とか、今のところ特に馴染みないしなぁ・・・と最初少し思っていたのですが、
喋りが非常にお上手で面白く引き込まれました。
ちなみに「統計学 が最強の学問である」の著者様でした。
www.diamond.co.jp
セッションの中で個人的に非常に刺さったのは、データサイエンティストは何に一番時間を使っているのか、という
アンケートの結果のグラフがあったのですが、これは置き換えれるなと。
「xxは何に一番時間を使っているのか?」という問いを投げかけることで、課題解決のためのプロセスに役立てそうだと感じました。
実際にその課題解決をするためのdataDiverということで、データ分析をしたいけどそこまでなかなか・・・
という痛みがあったらdataDiverを紹介・あるいは利用したいなと思いました。
(司会者による経歴紹介からStart)
VIDEO youtu.be
Fast API と学ぶ WebRTC
Takayuki Kawazoeさん
docs.google.com
Web RTCってなんだろ?って聞き馴染みが無かったので興味本位で聴講しました。
リアルタイム通信に適したプロトコル を組み合わせた技術なんですね。
スライド中にもあったのですが、リアルタイム通信ってこれからのWebだと重要な技術だなと自分も
思うので色々な技術がある、そして(今の自分にはまだ)わからん!ということを知れてよかったです。
シグナリング ・データのやり取り・再送制御・・・ ネットワークとも少しずつ仲良くなっていきたいですね。
紹介されていたサンプルコード。
github.com
VIDEO 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
VIDEO youtu.be
コーディング規約自動化: Pylintのカスタムルールを作ろう
Takayuki Hirayamaさん
ここでもASTの話が出てきました!今回のPyConJPで一番共通して挙がったテーマが実はASTではないだろうか?
astroidというライブラリを利用して説明がされつつ、
モジュール検索パスという普段意識していない概念や
PylintのVisitorパターン(エキスパートPython プログラミング 改訂3版にも記載があったそう)など紹介もあり勉強になりました。
github.com
スコープの管理のくだりがまだ理解・頭の中に落とし込めていないので勉強していこうと思います。
speakerdeck.com
VIDEO youtu.be
続・絵を読む技術 Python で読むイラストの心理戦略
ひろさじ / Hirosajiさん
speakerdeck.com
今話題のAI絵師のことにも触れられていました。
魅力的なキャラク ターの構成要素に
最も代表的な定石としてコントラ ポスト、最も原始的な定石として性戦略が挙げられていました。
コントラ ポストは体重の多くが片脚にかかった姿勢とのこと、だそうで私が質問したのですが「ジョジョ立ち 」もコントラ ポストと言えるそうです。
例えばこのコントラ ポストを検出するためにPython (3D姿勢推定モデルのSMPL)を利用しており、
普段Webアプリケーション以外のPython には馴染みないのですが「すげー!面白い!」って思いました。
キャラク ターの好みについて、「なぜ」「どうして」といった理由を説明しつつPython を使って実証?することで
非常に興味深いセッションでした。
referenceも多く、まさに論文では・・・と思われるすごいスライドでした!
本題とは全く関係ないですが、スライドの構成も非常にみやすくて「わかりやすく伝えるためのスライド」では
こちらを周りの方に紹介しようと思いました。
ちなみに2021年のPyCon JPで発表があったのはこちら。
www.slideshare.net
VIDEO youtu.be
アフターパーティへの参加とLTをしました
コロナの抗原検査も無事陰性だったのでアフターパーティに参加しました。
お寿司やアルコール類が出される姿、、、コロナ前の勉強会が戻ってきたみたいで懐かしくなりました。
当時私が未経験だった頃はラク スさんの勉強会に毎月顔を出させてもらっていたな、とか
懐かしい気持ちになっていたところ・・・(当時はPHP を勉強していました)
なんとLTの抽選があたり、発表しました。
盛り込んで5分ギリギリ・早口になったのですが楽しかったです。
スライドはこちら。
docs.google.com
nikkieさんには感謝の意を伝えていましたが、あそこで声をかけてもらって?一緒に始めたことから
PyConJP2022に参加も繋がっていると思ったので。本当に感謝しています。
ちなみに、スライド自体は大枠を14日の朝の新幹線に作成していたので、日の目を見ることになってよかったなと思いましたw
他にも気になった発表
Masataka Araiさん
Python とアスタリスク 🐍🌟💫🐍🌟💫と同時刻だったため聴講しておらず。
Araiさんとはスポンサーブースでお話しさせてもらってから登壇していたことを知ったのですが、
手続き型の上から順に処理が実行されるプログラミングではない技法とのことで、知らない概念を知ることができました。
speakerdeck.com
VIDEO 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つずつ、学んでいこうと思います。