カンファレンス2日目です。今日も会場での朝食からスタート!!

ライトニングトーク
2日目朝のライトニングトークからはEric Matthes氏によるdjango-simple-deployを紹介します。
django-simple-deployはDjangoのプロジェクトを各種プラットフォームに簡単にデプロイできるライブラリです。現在はFly.

ダイバーシティ&インクルージョンのパネル
- ビデオ:Diversity and Inclusion Panel: The Work Still Matters: Inclusion, Access, and Community in 2025
- Diversity and Inclusion Panel: The Work Still Matters: Inclusion, Access, and Community in 2025 -PyCon US 2025
ダイバーシティ&インクルージョン
- Keanya Phelps氏:モデレーター。ソフトウェア開発者、PyCon US初参加
- Naomi Ceder氏:長年Pythonコミュニティに関わっており、2022年にPSF Distinguished Service Awards | Python.
org を受賞 - Jay Miller氏:Black Python Devsの創設者。PyCon US 2024のキーノートスピーカー[1]
- Cristián Maureira-Fredes氏:スペイン語圏コミュニティのPython Españaの主催者
- Alla Barbalat氏:モデレーター。弁護士でPython愛好家であり、サンフランシスコのSF Pythonの主催者
パネラーのCristián氏はベルリン在住ですが、それ以外はアメリカ在住であり、昨年のD&Iパネルとは異なる方向性の話となりました[2]。

最初にPythonコミュニティで長年D&Iに取り組んできたNaomi氏に現状について質問をすると
Cristián氏はベルリンからの参加だったため、やはり無事にアメリカに入国できるか少し心配だったようです。ただ
Jay氏は昨年、PyCon USに来たがホテルでクレジットカードが通らず保証金が支払えない知人がおり、すぐにホテルに向かって代わりに支払ったそうです。これは元々の知り合いじゃないとなかなかできないことですが、確かに現実で発生しそうなことだなと思いました。筆者も2025年のPyCon APACでフィリピンのホテルに着いたときに、保証金が現金のみと言われ、他のメンバーに現金を借りました
構造的な支援が薄れていく中でなにができるか?
キーノート:Lynn Root
カンファレンス2日目のキーノートはLynn Root氏です。Lynn Root氏は現在SpotifyのエンジニアでPyLadiesのChairであり、Python Software Foundationのフェローメンバーでもあります。
そんな多才なLynn氏ですが、イタリアの会議からロシアの会議に向かう予定の中、ものすごく燃え尽きた状態になったそうです。このときは昇進する数ヵ月前であり、ハードに仕事をこなしていましたが、燃え尽きた状態となり

話は学生時代に戻り、子どもから大人になる悩みの話となりました。大人になる過程で遊ぶことを置き去りにすることが大事であると考えていましたが、大人になっても遊び
Peter Gray博士は遊びを5つの特徴で定義しました。
- 遊びはプロセスが重要で、結果ではない
- 自ら選択して遊ぶ
(人から強要されて遊ぶわけではない) - ルールがある。ルールはプレイヤーによって作られる
- 想像力に富んでいる
- リラックスして覚醒状態で行われる
そしてLynn氏は燃え尽きから回復するために、積極的に遊んだそうです。まずはスカイダイビング。次に100日間プロジェクトとして絵を描き続けたそうです。うまくなりたいわけではなく、ただ過程を楽しむために。その後Spotifyの社員バンドで高校生以来のベースを演奏したそうです。そのバンドで現在の婚約者と出会ったそうです。
最後に小説家のKurt Vonnegut氏の
とても共感できる内容のトークでした。また、スライド全編にLynn氏による手描きのイラストが使われており、これも100日絵を描き続けた成果なのかな?
Why len('😶🌫️') == 4
and other weird things you should know about strings in Python
- スピーカー:Marie Roald、Yngve Mardal Moe
- ビデオ:Why
len('😶🌫️') == 4
and other weird things you should know about strings in Python - スライド:PyConUS-2025-slides.
pdf at main -MarieRoald/ PyConUS25 - Why
len('😶🌫️') == 4
and other weird things you should know about strings in Python -PyCon US 2025
このトークではPythonでは文字列をどのように扱っているか、またUnicodeの詳細についても触れていきます。最初に以下のようなコードがスライドで示されました。この段階で
>>> "naïve" == "naïve"
True
>>> "naïve" == "naïve"
False
>>> int("৪")
4

トークは文字列のエンコーディング、比較、スライスの3つのパートに分かれて進みます。Pythonは87種類の文字列のエンコーディング[4]に対応しています。2バイトでは65536文字に対応していますが、Unicodeでは4バイトを使用して100万以上の文字に対応しています。同じ文字列でもエンコーディングによってサイズが変わります。
またUnicodeの各文字にはカテゴリがあり、unicodedataモジュールのcategory()
関数で取得できます。以下の'Nd'
は十進数を意味します。
>>> from unicodedata import category
>>> category("৪")
'Nd'
ここで冒頭の謎に迫るわけですが、この文字列をint()
に変換するとなぜか4になります。name()
関数で名前を取得すると
>>> int("৪")
4
>>> from unicodedata import name
>>> name("৪")
'BENGALI DIGIT FOUR'
文字列の比較では、Pythonでは"y" is "y"
とすると==
じゃないの?」==
を使いましょう。
Unicodeでは見た目が同じでも異なる文字の場合があります。たとえば"\u000E5"
と"\u0061\u030A"
というコードはどちらも同じ見た目の"å"
となります。前者は1文字ですが、後者は2文字のUnicode文字が結合しています。この2つの文字列を比較するとFalse
となります。
>>> a1 = "\u00E5"
>>> a2 = "\u0061\u030A"
>>> a1, a2
('å', 'å')
>>> a1 == a2
False
このような場合にunicodedataモジュールのnormalize
関数を使用すると、正規化されて文字列として等価であることが確認できます。
また、面白いことにPythonの識別子は正規化をしているそうです。
>>> normalize("NFKC", a1) == normalize("NFKC", a2)
True
>>> 𝕞𝕖ſ𝚜𝒂𝙜𝓮= "Hello world"
>>> 𝕡𝗋𝓲𝗇𝔱(𝔪e𝕤𝘀𝓪ᵍₑ)
Hello world
他にもいろいろPythonでの文字列やUnicodeの扱いについて深い話が面白い例とともに示されて、とても興味深いトークでした。
面白いなーと思って聞いていると、最後のまとめのところで
ライトニングトークに申し込み
ライトニングトークはカンファレンス中に4回
「記念受験として出してみるかー」

PyLadies Auction
カンファレンス2日目の夜は毎年恒例のPyLadies Auctionです。このイベントはPyCon USの関係者がグッズを提供し、オークション形式で購入するというものです。落札されたお金は全てPyLadiesに寄付されて運営資金となる、というチャリティオークションです。

丸テーブルでおいしい食事を食べながら、楽しくオークションに参加します。とはいえ、あっという間にすごい金額になるため、オークションそのものには全然参加できませんでした。

オークションで全ての商品が終わった後に会場から

こうしてカンファレンス2日目は21時40分くらいに終わりましたが、このあと私はライトニングトークの資料作成があるため、ホテルに戻った後に夜なべしてスライドを作成していました。