PyCon JP 2021に登壇しました

3年連続3回目の登壇となりました。 また、オンサイトが基本の2019→完全オンラインの2020→ハイブリッドを目指した2021とスタイルがだいぶ違う体験ができたので、 ちょっとそのあたりも踏まえて今回のPyConの感想も書いてみようと思います。

登壇編

課題

YouTubeのアーカイブ動画を貼る

今回は「PyPIデビュー手前の人のための地下活動手法 - pypicloudを使ったプライベートレジストリの構築 」というタイトルでした。 根っこの部分としては、いわゆる「使ってみた」系の発表です。

自分としてはとっくにPyPIにパッケージをアップロードしている身ではあります。 とはいえ、その上で「PyPIにアップロードするものでもないなぁ」といったものを置く場所として 自分のニーズにマッチしそうなのを探していた結果として目に入ったのが今回の PyPICloud です。 1 これについての使い方・使い道を、使う動機をスタート地点に持ってきて話す内容となっています。

今回「可能性があるならせっかくだし」と思って希望した結果、オンサイト登壇を担当させていただきました。 2 そのため、現地で直接トークを行い、その内容をスタッフの方経由でZoomで配信というスタイルでの発表となりました。 リアクションを五感で感じられるのはやっぱり良いですね。

個人的に一番の収穫は、ATSにて周辺情報に強い方のF/Bをリアルに受けられたことでしょうか。 3 pip--find-links オプションの存在や、名称としてのSimple Registryの存在など、 「PyPICloudである理由・でなくても良い理由」といった観点などでの 会話 ができる機会は非常に貴重でした。 このあたりは、やはり「オフラインはいいなぁ」と思える良い時間帯でした。

ちなみに、上記の時間帯に出た「パッケージなんてPyPIに気にせずアップロードすればいい」は個人的にも9割同意です。 ただ、「需要がわかんない」系はともかく「ただの静的ファイルをまとめただけ」的なものをパッケージ扱いしたくなる時があって、 こういうときは流石になぁと思ったりはします。 4

聴講編

明確な意識をもって聴講できたのは以下のセッションでした。 5

  • Day 1

    • PyCon JP Association公開mtg

  • Day 2

    • Opening

    • Keynote: Mr. Brandt Bucher

    • 他人が書いたコードのリファレンスをSphinxで作る方法

Day2 Keynote

Python 3.10の新機能であるStructural Pattern Matchingの開発者の方によるトーク。何というタイムリー。

Pythonにおけるswitch導入のための歴史から始まり、switchではなくmatchとして導入された本機能の中身、さらに未来における高速化などを聞けました。 アフターパーティーでも話題に出ており、「if+αのシンタックスシュガー」というくくり方は確かにしっくりきます。

なお、英語トークですが同時通訳を提供してくれており、個人的には聞きやすいと感じました。

他人が書いたコードのリファレンスをSphinxで作る方法

フィクション。

ここで出てくる考え方は別にPythonに限らず適用できるものですね。 ので、同じような状況が起きがちな環境だとかなり即時で生きそうな知見かなと思いました。

ハイブリッド開催編

ここから先は、このハイブリッド開催というものを体験した事による感想とか。

一応、前提

  • オンサイト発表者という視点です(スタッフではない立ち位置)

  • あくまで、PyCon JP 2021という今回の仕様と過去の開催形式の変遷によるものを含みます

  • 個人の性格に依存する要素もあります

現地における、オンライン配信の聴講環境

今回、大半がオンライン発表なハイブリッド開催のため、「オンサイト参加した人がオンライン発表をどう見るか」は疑問に思っていました。 (聞いてみようかと思ったけど、「多分余裕がなさそうだし」で特に前日までに聞いたりはしなかった)

これについては、以下のような形で実装していました。

  • 同時通訳用レシーバーにオンライン発表の音声を乗せる

  • 会場の後方にオンライン発表のスクリーンを設置

自分は前述の通りDay1でオンライン発表を視聴していないのですが、これなら通信系にも優しくて助かるなぁという感想です。

Discordを使った、オンライン主体でも密度の濃いコミュニケーション

今回の配信スタイルは、近年では無いパターンとして「YouTubeライブなし」「配信はZoomのみ」という形式でした。 更に、配信以外のメインコミュニケーションをする場所はDiscordです。

PyConJPスタッフの方が丁寧にチャンネルのセットアップをしてくれており、 「発表の反応用」「ざっくばらんな雑談用」「ブース用」といったように、 さながらオンサイトイベントの各地点を切り取ったかのような感覚でした。

スポンサーブースに関しては、セッションの合間に「ブースツアー」という形式でスポンサーの音声チャネルに突撃するイベントも用意されていました。 ちょっとしたトラブルはあったにせよ、逆にオンサイトではやりづらい規模感でのブース訪問が出来た点については非常に価値があると感じました。

なお、この「発表の反応用」チャネルの影響を結構強く受けてしまって、 少なくとも自分は今までのPyConイベントでは起こらなかった 「2日間 #pyconjp 付きツイートを一切しない」という事態に見舞われました。 6 とはいえ、これに関しては個人のアクティビティについての偏り方の問題です。 実態としてTwitterへの投稿自体は止められているわけではなく、 今時点でハッシュタグを見返すとツイート自体は結構されていたみたいです。

自分の視点からすると、全体として良くも悪くも内輪感の強い、密度のあるイベントになったような印象です。

アフターパーティーのパーティー感

オンサイトイベントとしてのPyCon JPは例年フードへの力の入れ方が強く、 Day1でのパーティー・ランチ時間帯の弁当・スイーツタイムなど、 かなり食べ物が美味しいです。

昨年はZoomでオンラインパーティーを行ったものの基本的には各自で食事を用意する形式だったのに対して、 今年はピザハットの力を借りて「アフターパーティー直前の時間帯に届く」というタイミングでピザのデリバリーが行われました。 パーティーの懇親について、「会話をする」という観点では大きな差はないものの、 「同じ時間に」「同じ食べ物を手に取る」という要素は懇親会としての一体感にかなり寄与したのではと思います。 とても良い企画でした。

イベントのタイミング的な所感

今回、企画進行の段階でハイブリッド開催を計画を行い、実際にオンサイトの決行が出来たために、 無事にハイブリッド開催を完遂することが出来ました。

  • ワクチン接種の効果か、COVID-19の新規感染者ペースは確実に減っている

  • 緊急事態宣言解除後も上記が続き、再宣言せずに済むだろうだけの時間が程よく経過

  • 上記の結果として、要請ベースによるオンサイト中止をする必要がない

個人的には、 非常にタイミングの良い イベント開催だったと思います。 Day1夜にも会話で上がったのですが、良い意味で「ハイブリッド開催の一形態」を界隈に見せられるイベントでした。

来年?

感染者数の推移がこのペースで動くなら、もしかしたらPyCon JP 2022は2019以前のスタイルに戻せるような気もします。 発表にしてもパーティーにしても、オンラインはオンラインで利用ツールの限界が構造上の課題になるのは、今年の進行でより可視化できたと思います。 7 参加者という視点ではこのあたりのことの大半は完全オンサイトでは問題になりづらい内容のため、 そういった意味ではやはりオンサイト開催を目指してほしいですね。

なお、今回の発表内容は自身のPythonistaキャリアとしてはコア領域の派生分野のトークでした。 振り返ってみると採択後の資料作成時間含めて、それなりに無茶気味でした。 おそらくCfPは出すと思うのですが、今回とはまた大きく違う内容になると思います。

改めて、楽しい2日間でした。

1

要件としては、主に「永続化領域を非インスタンス系サービスに委譲しやすい構造であること」です

2

まさに、文字通り「壇に登って」発表

3

当日のオンサイト参加者リストを見て、ありがたい半分マサカリ覚悟半分ぐらいな感情

4

要はsphinx-revealjsの自分用テーマみたいな「Pythonを実行する」ことが目的でないもの

5

それ以外の時間帯は「発表準備で心ここにあらず」だったり、Day1の疲労でふわふわしたり

6

配信がZoomに限定されていたので、スライドURLについても自分のセッション反応用チャネルに貼って満足してしまいました

7

前述のブースツアーのトラブルがこれに当たり、Discordのボイスチャネルはビデオ配信を始めると参加上限が25人になってしまう 8

8

なお、この制限も直近の状況によって引き上げられていて、通常は10人が上限らしい