ひむ日記

本名は設楽です

YAPC::Fukuoka 2025 探訪記 Day 1

himura467.hatenablog.com
が長くなりすぎてしまったので分割しました。
本エントリは Day 1 のトークの感想をまとめたものです。
Day 2 の感想はこちら

iPhone のマイナンバーカードを使った本人確認の実装 by kgoro

Verify with Wallet API を使って手元のマイナンバーカードで何か遊べないかなという思いがあり、ちょうど実装に触れているトークがあったので聴いてみることに。
結論としては Verify with Wallet API を使うためには利用申請が必要なようで、個人で趣味で用いるのは難しそうでした。

運転免許証やマイナンバーカードをスマートフォンに格納するための技術方式である mdoc を用いて読み書きを行う、という話がなされていましたが、電子保険証などの技術の背景を知ることができてよかったです。

途中 ル方式 という名前が出てきてどういうネーミングなんだ?と思ったのですが、調べたところイロハ順みたいですね。日本らしくて良い。

「正規表現をつくる」をつくる by makenowjust

speakerdeck.com

Perl といえば正規表現、ということで正規表現トークを聞きにきました。

正規表現を作る上で、マッチさせたい文字列を過不足なく表現する正規表現が作れたら最高なのですが、例えばメールアドレスだと RFC に準拠していないメールアドレスが存在したりしてどこまでカバーできる正規表現を作るべきか迷うことがたまにありました。

また、ReDoS 攻撃*1と呼ばれる「正規表現と特定の文字列のマッチをするときに異常な時間がかかってしまう脆弱性を利用した攻撃」に対する耐性も気にしながら正規表現を書く必要があります。

これらの問題にうまく対処しつつ、ユーザが求める正規表現を作ってくれるプログラムを模索しよう、というようなお話でした!

id:makenowjust さんは Kyoto.なんか #6 以来二年ぶりくらいにお会いしましたが、お元気そうで何よりでした!

なぜインフラコードのモジュール化は難しいのか - アプリケーションコードとの本質的な違いから考える by 宮下 剛輔

speakerdeck.com

自分は Terraform でリソースを定義する際に Best practices for root modules  |  Terraform  |  Google Cloud Documentation に沿ってモジュールを切り分けて運用しているのですが、時間の流れとともに構成が新しくなるにつれて「現在のモジュールの切り分け方で適切なのか?」という疑問が湧くことが度々ありました。

トークではそのような疑問・違和感を「凝集度」「結合度」という言葉を用いてうまく噛み砕いてくださって、個人的な日頃のもやもやが少し晴れました。

アプリケーションコードでは実装の詳細を隠蔽してインタフェースを提供する設計によりカプセル化疎結合性を担保し、モジュールの中身を理解しなくても利用できる状態を作るのに対し、IaC ではそもそも詳細が関心ごとでありモジュールの中身を理解して使う必要があるため抽象化についての考え方を変える必要がある、というのは確かにな (あんまり考えたことなかったな) と思いました。

そのような難しさとどう向き合うかについても具体的な話がされていましたので、早速うちの Terraform モジュールのリファクタリングを実践してみるぞ!

Amazon ECSデプロイツールecspressoの開発を支える「正しい抽象化」の探求 by 藤原俊一郎

speakerdeck.com

id:sfujiwara さんが開発している ecspresso を例に、設計における適切な抽象化についてお話しされていました。

抽象化の度合いによってインタフェースが吸収しなければならない実装が異なるため開発・メンテナンスする側のコストが大きく変わってくるという話は、実例として提示されていた各種 IaC ツールの差分の違いがすごく分かりやすかったです。

自分が LT で喋ったライブラリGoogle の実装をラップしたものなのですが、元の実装に深く依存している上に微妙に抽象化をしてしまっているので、メンテナンスコストなどを考えると今後困るんだろうな、と身につまされる思いでした。

大規模OSSに一人で立ち向かうには by Sosuke Suzuki

speakerdeck.com

本当にいい話でした。漠然と物事に対するやる気が出ました。

情熱をエミュレートするのが大事というのは本当にそうで、全然興味ない〜やる気出ない〜という時でも、あたかもやる気があるっぽい仕草をするといい感じに脳を騙すことができてパフォーマンスが上がるので、よくやっています。
今もブログを書く情熱をエミュレートしてブログを書いています。

適度に舐めるのも大事!藍染惣右介も「憧れは理解から最も遠い感情」だと言っている。

とりあえず散歩に行こうと思いました。

「バイブス静的解析」でレガシーコードを分析・改善しよう by hitode909

speakerdeck.com

id:hitode909 さんの発表が面白そうだったので見に行きました。

発表内容に関して、素朴に 4 万行のデッドコードを削除できたのはすごいなと思いました。
僕は AI くんをあまり信用できていないため、AI の出した差分は全て目を通さないと安心できず大規模なリファクタリングはそれ相応の時間がかかってしまうのですが、仕組みを整えればやりようがあると知ることができたのは驚きでした。

発表内容以外だと、このトーク会場だけずっと笑いが何処かから漏れているという異様な雰囲気で、これが YAPC か!と実感しました。

Agentに至る道 〜なぜLLMは自動でコードを書けるようになったのか〜 by macopy

speakerdeck.com

現代のエンジニアが愛用している Coding Agent が生まれるまでの歴史が解説されていました。
WebGPT や ReAct など聞いたことがあったようななかったような用語が時系列とともに解説されていて、改めて理解が深まりました。
人間はコードを書くときに Web 検索をするはず、みたいな直感を原体験として研究が進んでいく流れは納得感がありましたね。

後半のライブコーディングも聴衆と一緒に作り上げる感じがすごくよかったですね。

Perl ブートキャンプ by Takafumi ONAKA

speakerdeck.com

裏番組だったため現地で見れていないのですが、気になってしまい資料を読んだので感想を書きます。

流石に現在進行形で Perl を書いていることもあり、大体の話はうんうんと頷きながら読むことができました。
とはいえ Perl がもとはオブジェクト指向言語として作られていなかったために bless と糖衣構文でなんとかしたんだぜ、というような歴史はあまり理解していなかったのでかなり面白かったです。

現代のオブジェクト指向の書き方は最早 Perl に見えない!
カンマ演算子なるほど、全然知らなかった。学びです!

Perl ブートキャンプはインターンの時に受講しているしな、と思って*2 Coding Agent のお話を聞きに行ったのですが、めちゃめちゃ楽しそうなトークだった。録画を見ます!

SREのためのテレメトリー技術の探究 — モニタリングSaaS開発からAIOps・AIインフラまで by yuuk1

speakerdeck.com

SRE として活躍なされた後に、その経験を基にしたアイデアを活かして学術研究の道へ進む、というのは個人的にはすごく理想的な歩みだな〜と感じました。

ログ・メトリクス・トレースの量的な膨大さとそれぞれのデータ形式の違いをどう扱うかが課題であり、SRE ドメインに特化した時系列基盤モデルに期待している、という話はすごく納得感がありました (「データセットを得るのが難しい」、そうですよね...)。

初仕事を親だと思ってしまった

面白い。
初仕事として携わった領域に熱中し続けられる、というのはすごく憧れますね。

LT

プロジェクトの空気を読んで開発してくれるPerlのAIツールがほしい by kobaken

speakerdeck.com

+ をつけてスカラコンテキストで評価されるようにするテクニック、未だに忘れることがあり、ときたまテストを落としています。

間接オブジェクト記法に関して気になった方は以下のブログをチェック!
kfly8.hatenablog.com

Pythonを"理解"しているコーディングエージェントが欲しい!! by nikkie

ftnext.github.io

logging に fstring を用いると表示しないログに対しても評価が走ってしまうのでパフォーマンスが悪い、みたいな話があるんですね。なるほど知らなかった。
気にせず使っていたので気が向いた時に Linter の設定に追加しておこうかなと思いました。

LT でライブコーディング (ライブ AI コーディング) する体験、会場に人数が多い分ワイワイ応援できて楽しかったですね。

認知ではなく良い体験設計を追求する、そのための広告プロダクト開発組織における『Bet AI』とは by ほにゃにゃ / yuki

speakerdeck.com

LT とは思えないスライド量で、AI と属人性に対しての熱意を感じました。
これぞ LT という感じでしたね。

プロダクトにも、チームにも。サイボウズがAIと共に歩む理由 by tasshi

speakerdeck.com

Cybozu さんがどのように AI を活用されているかが分かりやすく紹介されていました!
プレゼンが上手い!

AIが見張り、人がもてなす — 全国400店舗のカラオケBanBanの運営をサポートするAI Agent by 西尾健人

マルチモーダルな情報を用いて異常検知を行うということで、僕の LT の内容と関わる部分があるな、と思いながら聞いていました。
めちゃめちゃ気になるところで終わったので、続きが聴きたくなる LT でした!

*1:文字列が長くなると処理が重くなる正規表現の書き方があるな〜と思ってはいたが、事象の名前は知らなかった

*2:というのと、macopy さんのトークは AI がテーマということもあり、自分の LT の温度感を掴むためにも見ておきたかった