カンファレンス2日目¶
2回目はカンファレンス2日目の様子をお伝えします。 さまざまなトークに加え、Diversity & Inclusionパネル、PyLadiesオークションといった特色のあるイベントがありました。
Diversity & Inclusionパネル¶
スピーカー:Debora Azevedo、Dima Dinama、Jessica Greene、Jules、Mason Egger、Abigail Dogbe
2日目の朝はDiversity & Inclusionパネルです。 各国のコミュニティメンバーがパネリストとして登壇し、ディスカッションをするというよりは、それぞれの経験や考えを共有するということがメインに行われた印象でした。 アジアからはインドネシアのDima氏が登壇していました。 Dima氏はPyCon APAC 2023に参加してクロージングで「PyCon APAC 2024はインドネシア」とアピールしていたので、日本で見たことがある人もいると思います。 Dima氏は2019年にPyCon Indonesiaにボランティアとして参加し、2020年からリードオーガナイザーとして活動してきたとのこと。

Dima氏¶
Abigail氏は0日目のパーティーで同じテーブルにいた方でした。 2017年にガーナで開催されたDjango Girlsに参加し、その後ガーナのPythonコミュニティやPyDataガーナに参加し、自らPyLadiesガーナを立ち上げたそうです。
挑戦したことや大変だったことは?という話では、Abigail氏はコミュニティを立ち上げるのは大変で、維持するのはもっと大変だということを語っていました。 Dima氏はPyCon始めたときにどうやってスポンサーや人を探すのかがわからなかった、PSFがカンファレンス開催に助成金を出してくれるのは本当に助かったと語っていました。 またブラジルではCOVID-19後、多くの小さなコミュニティが孤立し分裂している問題があるそうです。 またカンファレンスが健全な場となるために、安全な場所を作る必要があるという話が印象的でした。
国を超えても似たような課題もあれば、まったく異なる課題もあると感じるパネルディスカッションでした。
Keynote: Simon Willison¶
2日目のキーノートスピーカーのSimon Willison氏はDjangoの共同作成者ですが、最近はAIとLLM(大規模言語モデル)に取り込んでおり、トークはこれらについての内容でした。

Simon氏¶
まずAI(人工知能)はArtificial Intelligenceの略ですが、ChatGPT、Google Gemini、ClaudeやLlamaは「AIではなくImitation Intelligence(模倣知能)だ」と語られました。 知能を模倣すれば有用なことができるということです。 このようなサービスができることは文中の次の単語を予測するだけで、統計的にオートコンプリートしているだけです。 ただ、より良いオートコンプリートになると便利になるということです。 筆者もこの考え方には非常に同意しました。
どのモデルを使うのがよいか?という質問に対しては「Vibes(雰囲気で)」と語っていました。 参考になるサイトとしてLMSYS Chatbot Arena Leaderboardが紹介されました。 このサイトではLLMをランク付けしています(2024年6月21日版ではGPT-4oが1位、次いでGeminiが2位でした)。
多くのモデルはオープンなライセンスモデルですが、オープンソースではありません。 iPhoneを使っている人にはMLC Chatというアプリをインストールすると、オープンソースライセンスのMistralというモデルが使えるためおすすめだそうです。 ここでは例としてPythonでCSVを解析する方法を質問し、ほぼ正しいコードが回答されていました。
Simon氏の現在のメインプロジェクトであるdatasette.ioについても紹介していました。 このサイトはデータを探索して公開するためのツールで、さまざまな形式のデータを分析、探索して、対話的ななWebサイトやAPIとして公開することができるそうです。 このサイトにLLMを活用した機能の追加をしているそうです(llm.datasette.io)。 非構造化された大量のテキストから、LLMを使って活用できる構造化されたデータに変換するというものです。 例としてPSFの議事録ページから構造化したデータを取得していました。 このツールとWebサイトは普通に便利そうだなと思いました。
他にもAIとLLMに対して、ここでは書き切れないほどさまざまな知見が紹介されていました。 興味のある方はぜひビデオを確認してみてください。
挑戦と反省:はじめてのPyCon US 2024登壇で得たもの
こんにちは、福田 隼也(@JunyaFff)です。ここでは、初めて参加の「PyCon US」で登壇してきた話をコラムで紹介します。 私はカンファレンス2日目に「Event-Driven asyncio: A Case Study of Trio's API」というタイトルのトークをしました。
事前にスタッフの方より控室には20分前に、トークする部屋には10分前に入るように言われており、時間通りに会場に入りました。司会の方に挨拶をした後に、パソコンやマイクの設定を行い、いざ会場を見渡すと、広い部屋に見慣れた日本からの参加者数名の方しかいない状況でした。
司会の方と「人が少ないね」と話をしていると時間になり、司会の方が壇上でトークの紹介をしてくれました。すると途中から会場に参加者が増えてきました。あとから聞いた話では、キーノートが予定の時間よりも終わる時間が少し遅かったようで、そこからの移動だったようです。一安心してトークを進めることができました。
わたしのトークは、Pythonの非同期プログラミングライブラリ「Trio」のAPIを使ったプロダクションでの事例とコードの紹介です。
Pythonの非同期といえば標準ライブラリである asyncio
が有名ですが、 今回のトークではよりシンプルで使いやすい Trio
にフォーカスしました。なぜ Trio
が使いやすいのか、なぜプロダクションでの採用したのか、また Trio
を拡張した trio-util
の AsyncValue
というAPIにフォーカスを当てて紹介しました。
今回のトークに合わせ公開した、 AsyncValue
のasyncio版であるライブラリ asyncio-util
についても触れました。
ご興味がある方は以下のリンクをみてみてください。
実は去年Euro Python 2023でトークをした時[1]に、Pythonで非同期を利用されている方が多く驚いたのですが、「何に利用しているか」というのを聞くことができませんでした。その反省をふまえ、今回は「何に使っているか」というのを挙手で聞いてみました。すると、参加者の方々が挙手をしてくれました。Web、バッチ処理、ツール、などさまざまな用途で利用されていることがわかりました(ちなみにTrioのユーザーは確認できませんでした。)

トーク中の様子¶
今回のトークはわたしの中でとても挑戦的な内容でした。 AsyncValue
の紹介や、asyncio版であるライブラリ asyncio-util
の公開、そしてそのトークをPyConの本場とも言えるUSで行うという点です。実際には、反省点も多くありました。いつもなら長くなってしまうトークの時間が、極端に短く、準備不足が目立ってしまいました。なによりききに来てくださった方に伝えたいことをすべて伝えることができなかったことがとても悔しいです。
はじめてのアメリカ、はじめてのPyCon USでの学びをたくさん持ち帰ることができ、多くの出会いがありました。また、機会を作ってカンファレンスに参加したいと思います。ありがとうございました。

トーク終了後の様子¶
食事がおいしいPyCon US¶
筆者は過去PyCon US 2019(クリーブランド)とPyCon US 2023(ソルトレイクシティ)に参加しました。 その様子は以下の記事でも参照できます。
その過去2回と比べると、今回はダントツでカンファレンスで提供される食事がおいしい!!といううれしいことがありました。 カンファレンス会場によるものなのか、イベント主催者側の意向かは不明ですが、朝食も昼食もとても豪華でおいしいため、食事の時間も非常に楽しみだったことが印象的です。 筆者はホテルで朝食を食べていましたが、この内容なら朝食無しのホテルでも全然問題ないなと思いました。 来年もおなじくらいおいしい食事だといいなぁ。

フルーツがたくさんの豪華な朝食¶

ビュッフェスタイルのおいしいランチ¶
PyCon での PSFメンバーランチについて
一般社団法人PyCon JP Association理事の吉田(@koedoyoshida)です。 このコラムではPSFメンバーランチについて紹介します。
PSFメンバーランチとは、PyCon US中のどこか一日カンファレンスランチの時間帯で、Python Software Foundation(PSF)のさまざまな地域のメンバーが集まってランチするサブイベントです。
例年ここではランチを取りながら、PSFのスタッフとボードメンバーから昨年の活動や会計に関する報告がされ、他のPSFメンバーと交流します。今年もPythonの生みの親のGuido van Rossum氏が参加していました。 今年は主にPSFのExecutive DirectorであるDeb Nicholson氏から説明がありました。
活動や会計報告と言うだけでは無味乾燥に思われるかも知れませんが、今年はプレゼンテーションの他、フルカラーの20ページほどの報告資料の冊子が準備され、大変分かりやすくなっていました。 特に配布物については昨年まではモノクロコピー数枚組の配布で読み解くのに少し苦労する部分はあったのですが、写真付きのカラー資料でとても分かりやすくなっていました。

PSFの活動報告の冊子¶
PSFの収入の主要な物としては、年間スポンサーおよびPyCon USなどのイベントの参加者収入となります。また、主な支出としてはPyCon USの開催費用や遠方などからの参加者に対する費用の援助であるTravel Grant、スタッフ人件費、またPython開発者の保険料の支払いなどがあります。今年の報告を聞いて、読んで興味深かった点は、Travel Grantが世界、特にアジアなどの地域にもより公平に分配される傾向になってきたことや、アメリカでのインフレの進行によりスタッフ系のコストが増大していることです (なお、PyCon JPでは一般社団法人PyCon JP Associationの理事を含め、有給でのスタッフはおらず、無償のボランティアにより運営されています)。
Travel Grantについては前年などにアジア地域を対象とした支出が少ないように思われる点を、以前のこの会議などで日本含めアジアのメンバーから主張してきたことが、反映されたのでは無いかと思います。
PSFメンバーランチはPSFのメンバーであれば、PyCon USの開催の少し前に登録案内が来て、それに登録すれば、無料で参加することができます。
PSFメンバーランチはその場で質問なども出来る貴重な機会です。 PyCon JPと関わりの深いイクバルさんなど多くの方が意見や質問を出していました。

メンバーランチでの質疑応答¶
PSFのメンバーにはいくつかの種類があります。私は投票権のあるマネージングメンバー(Managing Members)として登録しています。 マネージングメンバーになるには、月に5時間程度PythonやPyConについて継続して活動している必要があります。 PSFメンバーを通じて、ボードメンバーの投票などPSFの活動に関わることが出来ます。 条件を満たしている方、また興味のある方は下記のページから詳細を確認してみてはいかがでしょうか?
CPython's Compilation Pipeline¶
スピーカー:Irit Katriel氏
本トークではCPythonのコア開発者であるIrit Katriel氏から、Pythonのコードを解析して実行するパイプラインを、Python 3.11でどのように変更するかという内容です。 Pythonのコード実行には2つのステージがあります。PythonコードからバイトコードというCPythonの内部表現への コンパイル 処理のステージと、バイトコードを実行して結果を得るステージです。 このトークで扱うのは前半のステージを改良した話です。

Irit Katriel氏と新しいパイプライン¶
現在のコンパイルのステージは以下の様な流れ(パイプライン)です。
トーカナイザーがPythonのコードをトークンに変換
パーサーがトークンをAST(抽象構文木)に変換
コンパイラーがASTをバイトコードに変換
Python 3.13で導入される新しいコンパイルのステージは、AST以降が以下の様なパイプラインに変わるとのことです。
AST optimizerでASTを「最適化されたAST」に変換
コード生成で最適化されたASTを疑似命令に変換
peephole otimizerで疑似命令を「最適化された疑似命令」に変換
アセンブラーで最適化された疑似命令をバイトコードに変換
このようにしたモチベーションとしては、「ユニットテスト、特にpeephole otimizerのテストがしやすくなること」をあげていました。 他の理由としては「コードの構造の改善」と「柔軟性」があげられていました。
トークの後半ではASTや疑似命令のコードに対して、どういった最適化が行われるかを例をで示していました。 ASTの最適化の例では、サブノードに「1 + 2」が存在したらそこは「3」に置き換えるというものでした。 疑似命令の最適化では、if文とfor文の組み合わせでJUMPが2回存在するところを1回にまとめるという例を挙げていました。
これらの処理は新しいPython APIとして _testinternalcapi
モジュールに含まれています。
これは、標準ライブラリに含めるにはPEP(Pythonの拡張提案)を書く必要があるため、現在は仮のモジュール名となっているそうです。
また、この新しいパイプラインの動作を可視化して確認するツールもIrit氏は作成しています。
興味がある方は以下のリポジトリを参照してみてください。
めちゃくちゃ難しい内容でした。 ただCPythonの内部がどんどん書き換えられていってるんだなと感じました。
Lightning Talks¶
2日目のライトニングトークです。 ライトニングトークではPure Pythonを標準ライブラリを使ってクラッシュさせる話、ソフトスキルとしてレビュー時のコメントをChatGPTを使って優しくする方法、NumPy 2.0で追加された可変長文字列の紹介などがされました。
アジアからの参加者では、朝のパネルにも出ていたDima氏が発表していました。 Dima氏は政府で働いており、オフィス製品を使うつまらない仕事がたくさんあるそうです。 そこで、PyAutoGUIでマウスとキーボード操作を自動化したり、PDFをReportlabで自動的に処理したり時間を作り、たくさん眠ったそうです。 仕事が終わっていると上司にバレると新しい仕事が来るので気をつけてくださいとのこと。
もう一人は韓国のJoeun Park氏で、Joeun氏は自身のストーリーを共有しました。 現在の2児の母でもあるJoeun氏は育児休暇を取得した後に以前の仕事に戻ることができず、新しい仕事を探す必要ができました。 子育て中にPythonのチュートリアルビデオを作り始め、少しの空き時間でもビデオを作成して公開を続けたそうです。 古いMacbookとQuickTimeを使い、編集をほぼしていないそのチュートリアル動画の公開を続け、現在そのチャンネルには25,000人のチャンネル登録者がいるとのことです(すごい!)。 このチャンネルがきっかけで、Pythonでのテキスト分析の書籍を出版したり、さまざまな大学、企業などで講義をするようになっていったそうです。

Joeun Park氏¶
Joeun氏のYouTubeチャンネルは以下です。339本の動画、2.5万人の登録者、一番人気のpandasに関する動画は5.1万回も再生されています。ただただすごいなと感じました。
PyLadiesオークション¶
2日目の夜はPyLadiesオークションです。 このイベントはコミュニティメンバーやスポンサーから提供された物品を、参加者がオークション形式で競り落とすというイベントです。 あつまったお金はすべて寄付金となり、PyLadiesの運営資金となります。 おいしい食事を食べながら、面白おかしく展開するオークションを見られるため、とても楽しいイベントです。
最初にオークションに出品されているアイテムを見て、どれに入札するかを考えます。 今年はなんか品数が多いぞ?と思いました。

なぞの帽子¶
上野写真の「Release Developer Hats」はなんか変わった帽子が6つあります。 これはいったいどういうものなのかと思ったら、このアイテムのオークションがはじまるときに説明がありました。 Python 3.10と3.11のリリース時に、ライブ中継をしながらコア開発者が集まって新機能を紹介したり、リリース作業をしていたようです。 そのときにコア開発者やリリースマネージャーが被っていた帽子が今回出品されたものです。 リリース時の動画は以下で参照できますが、コア開発者が確かにみんな変な帽子を被っています。 面白いことを考えますね。
オークションでは競りが始まる前に、アイテムをよく見てもらうためにスタッフがアイテムを持って会場を練り歩きます。 それがこの帽子のときには実際にコア開発者が出てきて帽子を被って歩きました。

ノリノリのコア開発者たち¶
他にはPSFのブースに展示されていたGuido van Rossum氏の等身大じゃないパネル2枚も出品されていました。 写真を見ると上半身はほぼ同じです。この日のために衣装を合わせてきたんでしょうか。

Guido van Rossum氏とそのパネル¶
当初思った通りアイテム数が多くなかなかオークションが終わりません。 18:45から開始し、19:20頃からご飯を食べ始めたPyLadiesオークションですが、22時を過ぎてもまだアイテムが残っていました。 最後の方は数点をまとめて「PyCon Taiwanセット」みたいな感じになってました。 そして寄付金額は当初の目標としていた50,000 USDを大きく越えて終了しました。
会場の外に出てみると橋がPython色にライトアップされていました。

ライトアップされた橋¶