generated at
PyCon mini 東海 2024

10:25 ~ 11:15
キーノート @aodag
前半は、Pythonと私、東海と私、的な話
後半はPyPIから、Linuxコマンドだけでパッケージをインストールするまでの話w

質疑応答
Q. @Peacock: distroless ってglibc? musl?
A. 何も入ってないはずなので自分でやらないといけない
Q. @shimizukawa: packagingについての情熱はどこから来るの?
A. 情熱については、だれしも「どうしてそれに興味持つの?」ってあるので、いいじゃないですか
A. PEPのとおり動くのかを調べてみようとおもって手でやってみた。こういう検証的なのってつまらない話になりがちなので、この機会にpackagingの総決算ということも兼ねて話してみました
Q. @hrs_sano645; パッケージングでお勧めのツールは
A. 何をお勧めしてもダメなところはどれにもあるので
A. pip, Poetry, Hatch あたりなら安心という感じ。
A, uvは今のところPEPを尊重してくれていて速いので良いけど、問題があったときにRustだと手が出しづらいいし、PEP以上のことを実装しはじめた時に、それをPEPがリファレンスとして参照できないという問題がある。そういう意味では、Pythonで実装されているPoetry, Hatchあたりがいいんじゃないか

11:30~11:55
Python開発の変遷をPythonプロフェッショナルプログラミングの改定の歴史から知る
質疑応答
Q. @ryu22e: 次版の構想は?
特にないです。出版社さんから「次版そろそろどうですか」と聞かれてから、現状に合わせて更新する形式
uvとかは入るかもしれない
Q. @hrs_sano645: 初版から変わらないものは?
A. Pythonプロフェッショナルプログラミングなので、Pythonやめたらこの本が出なくなるかな
A. NginxGunicornは変わらないのかもなあ
shimizukawa チーム開発は今後も変わらない
Q. Black, Ruff, MyPyは機能が重複していると思うけども目的別に使い分けている?
BlackとRuffは切り替わりつつある感じ

12:00~12:25
pytestでRust製CLIをe2eテストしてみよう
PythonユーザーからみたRust
良いところ
動作速度が軽快、バイナリ配布しやすい
公式のLinterがあって選びやすい
本体ソースとテストコードが同居
shimizukawa ほう
大変だったところ
「借用」は難しい

12:30 ~ 14:00
shimizukawa休憩時間にハンドドリップでコーヒーを頂きました。美味しかった~
shimizukawaランチ、見た目がすごい!味も美味しかった。滋味溢れるというかなんというか。一番美味しかったのは煮物の里芋でした。

14:00~14:25
Pythonはどうやってlen関数で長さを手にいれているの?
shimizukawa 自分です
質疑応答
Q. @Peacock: collections.abc にある一覧のように、プロトコルについて概念の継承関係みたいなのをまとめたPEPをどこかで見た気がするんですが、どこかで見かけませんでしたか?
A. shimizukawa 見かけてないです
@aodag: typing関連のどれかじゃないかな
Q. @aodag: ファイルオブジェクトのプロトコルって何でしたっけ?
A. shimizukawa io.BaseIO とか・・だったかその辺?
(正しくは多分 io.IOBase
Q. (うろ覚えだけど、面白いプロトコルは何だったか、を聞かれた気がする)
A. shimizukawa iterator iterable が最初難しかった記憶があります

14:30~14:55
Python(PYNQ)がテーマのAMD主催のFPGAコンテストに参加してきた
ミソジ さん
「コンテストで2位、すみません自慢です!」
shimizukawa すごい!!
FPGAの話
SUBARUのアイサイトなどで使われている
ZYNQ というAMDFPGAPYNQを動かす
数万円するFPGA。お高い
from pynq.lib import AxiGPIO
物体検出は yorox_run
FPGA(DPU)で推論
verilogとか使わずに全てPythonで組んだことで試行錯誤の時間を短縮
英語の質疑応答は大変だった
ROSとLOSSを聞き間違えてしまった
>
shimizukawa 分かるーー
まとめ
Pythonで動かせるFPGAも出てきている
Pythonで書くことでコーディング、デバッグの短縮
海外でもエンジニア向けの面白いコンテストがたくさんある

質疑応答
Q. 深度までみている?
A. 実は深度はみていない。前にある、丸っぽい、くらいで描画位置を決めている
Q. FPSはどのくらい?
A. USB 2.0 のカメラでその時点で 7 FPSくらい。そこに色々処理をして 4 FPSくらい。
Q. いくらぐらい?
A. FPGAボードが支給品で8万円くらい。ミニ四駆は1万円しない、配線類は元々持ってた。360℃カメラTheta360が4万円くらい。実はFPGAボードは支給されるまえに1台もってました。
Q. ZYNQ以外にもPythonが使えるFPGAがある?
(回答聞き逃し)
Q. @aodag Pythonで実装したら、ハードに焼くときはどうなりますか?
A. いやああ、良い質問ですね!(聞き逃し)
Q. @aodag Pythonの標準ライブラリなどはだいたい使える
A. いやああ、良い質問ですね!限られたライブラリしか使えないのが現状です。ハードウェア言語不要、となるのはまだまだ先だと思います。

15:00~15:25
Google Colaboratoryで試すVLM
高橋 かずひと さん
shimizukawa メモする余裕がないくらい動きがあって注視していたスライド & 興味深いトークでした
shimizukawa 紹介された参考情報が気になる

質疑応答
Q. そのめっちゃ動くスライドは何で作ったんですか
A. 発表に関係ないですが、PowerPointです
shimizukawa まじで!!!
Q. マリオの一番の死因は
A. 統計取ったわけじゃないですが、見た感じ、位置関係がうまく把握できないために、クリボーに抱きつく、穴に落ちる
Q. @takanory: どうやって追いかけていくと良さそう?
A. とりあえず全部ためしています
A. いちばんイイネ付いてるのを使えばいいんじゃないか、という話もあります
Q. shimizukawa たくさん調べた結果をどこかに使うのだと思いますが、調べる動機と利用先を教えてもらえると嬉しい
A. 動機は趣味
A. 本業が監視カメラの分析などがあるので、そこに活かされたりはする

15:45~16:10
asgirefのクラスasgiref.local.Localは何のためにあるのか?
asgirefの主な機能
同期と非同期の相互変換
Pythonエンジニアがよく使う機能だと思う
shimizukawaたしかに
Django 3.1 から非同期ビューが導入されたが、非同期ビューから同期処理が呼べない。
そこで sync_to_async() を使う
python
>>> from asgiref.sync import sync_to_async >>> # 同期処理の関数を引数として渡すと非同期関数に変換される >>> results = await sync_to_async(sync_function) >>> # 関数デコレータとしても使える >>> @sync_to_async >>> def sync_function(): ...
shimizukawaなるほどー
asgiref.local.Local
非同期タスク用のローカルストレージ
asgiref.local.Local がimportできない場合は threading.local にフォールバック
asgiref.local.Local は内部で contextvars を使っている
shimizukawa contextvars をそのまま使う場合との違いが気になる
asgiref.local.Local は​マルチスレッド、​コルーチン両方で​使える​万能ローカルストレージ
標準モジュールでは、​マルチスレッドでは​ threading.local 、​コルーチンでは contextvars.ContextVar を​使う。
shimizukawa後で調べてみよう。ContextVarsがthreadごとの独立したデータを扱えない、んだろうか?よく分かってなかった。

質疑応答
なし

16:15~16:40
ReflexによるPython onlyでの高速なWebアプリケーションプロトタイピング
川瀬 弘嗣 さん
Slide:
Reflex は、汎用的なWebアプリケーションのGUIおよびAPIをほとんどPythonのみで実装できる
「CSSからは逃れられない」
shimizukawa (´・ω・`)
でも、HTMLをRefrexコードに変換してくれる Reverse Compiler が提供されているっ!
でも、これも完璧ではない
Flexgen が提供されているっ
まとめ
Pythonだけで実装できる
フロントエンドの知見無しで実装できるほどではない

質疑応答
Q. @aodag: (聞き逃し)
A.(聞き逃し)
Q. @Peacock: Streamlit と比較してこちらは使わなかったんですが、たとえばMaterial UIを使いたい場合などためされましたか?
A. そこまでは確認していない
Q. @takanory: こういう使い方ならうまくいく、みたいな、実際に使って見て良かったところは
A. これは合う、みたいなケースはまだ見つかっていない
A. CSSに極力関わりたくない自分としては土台が提供されたのでよかった
Q. shimizukawa Reflexを使ってプロトタイピングした場合、このあと本番にもっていく上で、フロントはデザイナーさんが作るとなった場合、API側は本運用にもっていくときどうなりますか?
A. reflex export でフロント側は引き剥がせますが、API側は reflex 依存のPythonコードとしてコピーされるだけなので、本運用でもそのまま使うイメージになります。
(終了後、口頭で追加の質問)
Q. shimizukawa reflex export 等でOpenAPI/Swagger-uiみたいなのは出せますか?
A. それが見つからなかったのが残念です
shimizukawaですよねー。 reflex のままAPIサーバーを運用は厳しいだろうなと思うんですよね

17:00~17:20
クロージング