1. NOOP Tech Talk
  2. 其の0012 桃かハートかタイト..
其の0012 桃かハートかタイトルに付けたフックがないAI時代のOSS
2026-04-08 33:12

其の0012 桃かハートかタイトルに付けたフックがないAI時代のOSS

spotify

オープニングトーク

続報、ラテアート

PHPUnitのフックがない!

テーマトーク

AI時代のOSS

エンディング

次回の配信は4月15日の予定です。

感想

まだ感想はありません。最初の1件を書きましょう!

サマリー

今回のテックトークでは、まずオープニングでラテアートの腕前が上達した話から始まり、続いてPHPUnitのテストフックに関する話題に移りました。TakigawaさんはPHPカンファレンス小田原での登壇準備中に、PHPUnitの最新バージョンでテストフックインターフェースが廃止されたことを知り、内容を急遽変更する必要に迫られた経験を共有しました。フックとイベントの違いや、PHPの進化の速さについても触れられました。 メインテーマでは「AI時代のOSS」について議論されました。AIによるOSSへの貢献が増える一方で、低品質なプルリクエストの増加や、貢献スコア稼ぎのための悪用といった問題点が指摘されました。LaravelではAI生成貢献に対するガイドラインを設けるなど、各OSSプロジェクトが対策を講じ始めている現状が紹介されました。また、GoPoseというツールにAIを活用して機能追加を行った事例が紹介され、AIをOSS開発に役立てる具体的な方法についても考察が深められました。 エンディングでは、札幌PHP勉強会ナイトセッションとPHPカンファレンス小田原という二つのイベントが紹介されました。特にPHPカンファレンス小田原はチケットが完売しているものの、参加予定者に向けてイベントでの交流や発表への期待が語られました。AI時代のOSSのあり方や、OSSコミュニティの健全性を保つための貢献者の意識の重要性が改めて強調された回となりました。

オープニングトーク:ラテアートとPHPUnitの変更
スピーカー 3
こんにちは、Kanohです。
こんにちは、Takigawaです。
スピーカー 2
あ、何て言うんだったっけ?
あ、こんにちは、Masatoです。
スピーカー 2
どうしたんですか?
ちょっと急に。
スピーカー 2
こういう始まりのままかなと。
待って、待って。
はい、もう一回やり直します。
ちょっとごめんなさい、待って。
Kanohさんのツボをついてしまいました。
自分のセリフを忘れているところに突っ込もうと思ったら、自分が大変なことになりました。
連鎖的に何かが起きたってことですかね。
あったあった。
そっちも切れたってことですか。
スピーカー 3
両方切れて、突っ込んでいる最中に両耳が聞こえなくなるっていう。
さすがにその間に突っ込みながら、これを交換してはできなかったです。
そうですね。
ちょっと一瞬抜けます。
スピーカー 3
じゃあ、いきましょうか。
テイク2。
スピーカー 3
こんにちは、Kanohです。
スピーカー 1
こんにちは、Takigawaです。
スピーカー 2
こんにちは、Masuokaです。
テクトークは大阪のスタートアップ企業で働くKanohと、京都のスタートアップ企業で働くTakigawaが、テクノロジー周りのお題から脱線しがちな雑談を楽しむポッドキャストです。
編集はMasuokaです。
今週もよろしくお願いします。
よろしくお願いします。
よろしくお願いします。
10回の時に会社にコーヒーマシンが来た話したじゃないですか。
はい。
牛乳飲むために私が牛乳を一人で泡立ててるっていう。
牛乳会になってしまったっていう。
そうそう。
あれがですね、だんだん上達してきまして。
台本に写真を貼って、またツイッターに。
なんか私ずっと写真の話してるな。
ちょっと待って、あれが上達した?
そう、ラテアートが書けるようになりまして。
ああ、はいはい。
コーヒーマシンで、確かラテアートが上手く書けなかったっていう。
全然書けなかったのが、だんだん動画を見たり、解説読んだり、いろいろした結果、なんとかハートを作れるようになりましたね。
すごい。
これハートなのか。
そう、これハート。
そんなわかりにくくないでしょ。
完全になんで桃を書いてるんだろうって思って。
クリームがハートの上部側にふわっとなってて、桃の葉っぱみたいに見えてた。
あれちょっと混ぜ損ねたから少し線が残っちゃった。
桃太郎が乗ってくる桃みたいなのをイメージで見てたんですけど。
そう言われるとハートですね。
後でツイッター上げるんで、みんなハートに見えるか桃に見えるか判定してください。
そうしましょう。
という話を自慢したかっただけなんですけどね。
会社でクリームで入れてるのは私だけなんで。
みんなめんどくさいからやらない。
ちゃんと練習をして。
練習したらできるようになりました。
成長が見えるっていうのはとても良いですね。
1日数回自分のタイムスにスレッドでラテアートの練習結果を投げるスレッドを作ってるんですけど。
そこに挑んで。
それ楽しそうですね。
誰も反応してくれるかわからないけど、ずっとそれで練習結果をそこで公開してるみたいな感じになってます。
さて、技術的な点に移りますけど。
これ一応テックトークなんでね。
何を言ってるんですか。テックトークですよ我々。
滝川さんがさっきPHPユニットの話してましたよね。
そうですね。
今週末にですね、PHPカバエルス小田原があって、このLTで登壇をする内容で
スピーカー 1
PHPユニットはテストフックを使ってテストがかかる時間の計測をしようというトークを発表させていただくんですけど。
トータルシールを作っていく中で調べているとですね、最新のバージョンでなんとフックインターフェースがもうないということがわかってしまってですね。
スピーカー 1
大幅に内容を変えないといけないということに気づいてしまったというのが。
スピーカー 2
タイトルにテストフックと書いてあるか。
テストフックと書いてあって、ちゃんと移行先を用意してくれているものになっているので、イベントというのを使って同じようなことができるので、
それを手元では試しているので、それを使った内容に変えて今週末持っていくぞというようなところになっていますという感じですね。
スピーカー 1
これ実はだいぶ前から配信で違うものになっていたみたいなので、
ただやっぱり会社で触っているバージョンが違ったりするとなかなか気づかないものだなというのに。
そんなに古いわけではないんですよ、これ。
なんですけど、PagePrint流れも速いしというのがあって、そんなことがまさかというのがありましたという話ですね。
簡単にフックインターフェースが何かとかイベントが何かみたいなのを説明してもらって大丈夫ですか?
はい。テストフックはそうですね。
スピーカー 1
こういうことがあったらこういうことをするみたいなのがフック。
それを登録しておくと、例えばテストランナーでこのテストケースを走らせ始めましたというのをやって時間を記録しておくみたいな。
変数に格納しておくみたいなことができたのがフックで。
これを使うとテスト前後の時間を比較して時間がかかっているテストを特定できますみたいなことをやって、
これはあんまり言うと本当にネタバレになってしまう流れなんですけど。
イベントも似たような感じで、
これはそうですね、テストが始まりましたみたいなのをPagePrint側から通知してもらって、
それを高速するような流れに。
スピーカー 1
変わったといえば変わったのかなという感じですけど、それぞれそういうものになってますね。
なるほど。
こういうのに会社の中で感度強く何人かが目を光らせていて、
なくなるらしいぞみたいなことを言わないとなかなか気づかないものだったりもしますからね。
ですね。
ちなみにこれ今何か突っ込むとネタバレになったりしますかね。
まあまあ大丈夫です。
セーブしてください。
ちなみにフックって、完全にノールックで質問しますけど、
スピーカー 2
フックなのでイベントの処理に対して文字通り別の処理をフックしていた感じですね。
引っ掛けていたみたいな感じですよね。
イベントが起きたときに行われる処理みたいなやつを引っ掛けているからフック機能みたいになってたけど、
イベントになったときに対象に対して機能を引っ掛けてたけど、
それが呼び出し方が変わったってことですかね。
なんですかね。
一応これはインターフェースに、もともとフックはインターフェースになってたので、
これをインプリメントのところに書いて、
それでそれに応じたメソッドをテストケースに書いてっていう感じですね。
今質問して思ったんですけど、適当に質問すると答えてもらってもらえない。
スピーカー 1
難しい。説明するのもなかなか。
ちゃんと今度から調べて質問するようにしたいと思いました。
答え合わせを小田原で。
僕も調べていきます。
それこそフックですでにできたものをイベントに変えたことに何かしらの理由があるはずなので、
その辺りは気になりますよね。
そういうところが知りたいな。
いいネタができたなとは思います。
いいですね。
LTのテーマ自体はそれじゃなくて実体験みたいな形になるんですかね。
計測もできるんでしっかりやっていこうぜみたいなことを言えたらよいんですけど、
技術的にはそういうところもあったという感じでした。
なるほど。
LTだとそれでどうやって改善していきましょうみたいな心がけとかのところで十分ためになりますもんね。
なるほどな。
テーマトーク:AI時代のOSS
小田原は後でまた詳しく話すとして、今週末ですか。
はい。
4月11日の土曜日です。
皆さん気になる方は行ってみてください。
さて、オープニングはこれぐらいにしてテーマトークの方に移りましょうかね。
本日もよろしくお願いします。
よろしくお願いします。
スピーカー 3
さて、今日のテーマトークタイトルがAI時代のOSSについて考えたいってありますね。
AI出てきてOSSの活動ってかなり変わりましたよね。
そうですね。
なんかすごいいろんな良くないプリンクが来てめちゃくちゃ困っているみたいな声も一部では聞いたりとかしていて、
ストナが広がった部分はあるのかもしれないんですけど、
やっぱりそういうところでスパンみたいなのも出てきてしまうというのがあるのかなというところですよね。
スピーカー 3
各OSSが対策とかしてるんですかね、こうなると。
スピーカー 1
そうなんですよね。
ララベル、このスタンスみたいなのを偶然どこかで聞いて、
スピーカー 1
そうなんだって思ったのがララベルがあってですね。
これはコントリビューションガイドにもAIが推進した貢献に関しては、
プリンクに関しては構わないけれども、
人間がやっぱりちゃんと確認してねと、
確認をせずに生成されたものは受け入れませんみたいな、
スピーカー 1
そういう基準というか、
そういうのを出しているっていうのがあるみたいですね。
そうですね。
本当だ。
公開されたコントリビューションガイドに、
AI Generated Contributionsってちゃんと明記されてますね。
ですね。
寄せられるプリンクには感謝するが、
人間の慎重なレビューや検討をせずに、
主にAIによって生成された功績は受け入れられません。
スピーカー 3
ちゃんと明記されてますね。
なるほどな。
スピーカー 3
確かGitHubが、
低品質なコントリビュートを拒否する仕様を作ろうとしている、
みたいなニュースをどこかで見かけた気がするんですよね。
へー。
来ましたね、適当にしゃべるやつが。
スピーカー 2
どっかにソースがあるか。
これか。
これかな。
個人ブログですけど。
あくまでもGitHubっていうのはね、
今までずっとみんなそうでしたけど、
ある程度の知識がある人たちが、
生前説で基づいて作っているところに、
まあAIでこれやってみたらいいんじゃないかみたいなのが、
ポンポン来始めるとちょっとしんどいという話。
なのでそういうのを防止するような機能を作ろうか、
みたいな話があるっていうのは聞いてましたし、
スピーカー 3
やっぱりいろんなところのプロジェクトで問題にはなってるんですかね。
例えば、去年ヤプシの福岡で、
ゆうすけベイさんのアプリの中でも、
炎の開発をしているときにプロテクを受けたりとかするんですけど、
そういうときに実例とかを語られてたような気がします。
もし語られてなかったらこの場面はカットします。
適当にしゃべったんですけど。
多分語られてたはずです。
なるほどな。
AIによる行動が果たしてそれでいいのかどうかっていう話がね、
ちゃんと自分が実装したいことを、
それこそ手の代わりに動いてくれるんだったらいいですけど、
この機能が欲しい、AIに行ったらできました。
さすがにちょっと受け入れられるかっていうと怪しいですもんね。
でもこういう何でしょうね、
無理やりコントリビュートしたことにしたいみたいなのって、
多分AI以前にもあった嵐みたいなのとか、
治さなくてもいいようなタイプを報告してみるみたいなのは、
多分これはわかんないんですけど、
OSSのコントリビュートでスコアを出すようなサービスとかもあるというところで、
スコア稼ぎに使われてしまうみたいな側面もあるのかもしれないなとか、
そういうところはありますよね。
なるほどな。
昔ね、スコアを上げるために自分の会社の行動をGitHubに突っ込んで炎上した人とかいましたね。
ありましたね。
ツイッターで話題になってましたね。
さすがにちょっと怖いなと思いましたが、
実際問題そんなに大きな問題がなくてよかったですけど、
何なんでしょうね。
スピーカー 3
よくツイッターとかでも話題になる、
世の中にあるでっかいサービスっていうのはこういうOSSによって支えられていて、
スピーカー 3
ただそこってめちゃくちゃ定着で、みんなして全員でやってるボランティアっていう、
この仕組みは何だろう、
AIができることによって何かしらが崩れるんじゃないかって感じはすごくしますね。
それこそ先週あったアキシオスのやつとか、
ああいう感じの攻撃とかも今後は出てくるわけで、
さらにああいう攻撃が今後AIと繋がって、
すごい無差別的にやってくるみたいなことが多分増えてくるでしょうし、
そうなった時に果たしてボランティアで何とかなっているところのOSSっていうのはどうなるんだろう、
ちょっと勝手にリコストが大きくなっていって、
メンテナーそのままできるのかっていうのは気になるところです。
やっぱりメインのメンテナーが勝ち取りをするっていうのは、
あるところではあると思うんですけど、
そういうのが増えすぎるとなかなかもうそれができなくなってしまうみたいな、
結構危機的なところはありますかね。
そういう意味では数年前のPHPがちゃんとPHPの開発者にお金を出すようになったっていうのがいい傾向だと思うんですけど、
そういうものばかりではないんでね。
ちなみに、生成AIを使ったプルリクを実際に出した事例を聞かせてもらえますか。
僕は聞きましたよ、この間の関西PHP勉強会で。
あれは関西デブガレージで。
違うイベントの紹介をしましたね。
あれは関西デブガレージの話ですね。
OSSの貢献の話みたいなところで、
実際にやっぱりこういうところありつつも、
スピーカー 1
使ってやっていける部分もあるんじゃないかみたいなところで、
自分でもやってみたというのがありまして、
スピーカー 1
GoPoseというポートの競合を解決するツールがありまして、
これちょっと多分日本人の方が作っていらっしゃって、
OSSで公開しているものになるんですけど、
これのサブコマンドを1つ作ってコンティニュートしたというのが、
生成AIを使ってやってみたというのがありました。
GoPoseでAIでたくさん開発環境を立ち上げていると、
ポートがぶつかっておいってなるから、
という感じですね。
すごいな、私おいってなるかなって感じのやつですかねって言って、
それで同意を求めるっていう超適当ムーブをかましたわけですが。
DockerプラスGitWorks3を使うとよく当たる問題なんですけど、
例えばWebサーバー80番ポートで立ち上げているという設定の環境を2個用意すると、
勝ちあってしまってDockerが立ち上げられないみたいな、
Docker Composeできないっていうのが、
それを自動で解決するみたいな、
自分で使ってたっていうのが大きくてですね。
それでやってみようみたいなところでできたっていうのがありましたね。
どこの部分を直したんですか?
直したっていうか追加ですか?
追加?
追加ですね。
これかな?
GoPoseステータスコマンドというのがあって。
スピーカー 3
ほんとだ、いつものアイコンが並んでる。
GoPose自体がいろんなサブコマンド、
スピーカー 1
例えばアップって打つとポートスキャナーが走ってですね、
今立ち上げようとしているDocker Compose YAMLの設定と被っているものがあれば
オーバーライドするYAMLファイルを作ってくれて、
オーバーライドYAMLがあるとそれにオーバーライドされるので、
Dockerがコンポーズ立ち上げられるみたいな風になっていて、
スピーカー 1
それのうちのコマンドを1個作ったという。
スピーカー 3
すげー、ステータスコマンド。
確かにこれ必要っすね。
ポートマッピング状態を確認できるようにするコマンド。
そうですね。
これがあると、
エージェント、例えばプレイライトMCPとか使うときに、
ポートどこか分かりませんみたいなのがあったりとか、
スピーカー 1
愚直にDocker Compose YAMLを見に行ってしまうと、
別のワークステータス立ち上げてるやつなんだけどな、
みたいなところを見に行っちゃうみたいなのが、
まあまああるんですよね。
スピーカー 1
ポート確認するときはステータスを使ってくれみたいなのをすると、
すんなり行くようになるので、結構重宝するという感じですね。
なるほどな。
すごい。
確かにそうか。
AIがそんな動かしてるなんて知らないから、
元々のやつを見に行って、
このポートだと思ってやるみたいな、
で失敗するみたいな。
ありそう。
実装されてませんみたいな。
スピーカー 1
そこでは実装してないで確かに、
そっちはマスターだからねみたいな。
ある。
悲しいすれ違いが起きるわけですね。
そうですね。
なのでそう、
このツールはめちゃくちゃ便利で、
僕もすごい愛用してるんですけど、
そこに対して追加してみたっていう感じですね。
これはAI使って?
スピーカー 1
うん、そうですそうです。
AIを使ってやってまして、
自分は語をたまに書いたり、
趣味で書いたりとかはするんですけど、
あんまりPHPばっかり書いてたりとかするので、
あそこまでめっちゃ詳しいってわけじゃないですけど、
でも書いてみて、動作確認して、
内容もとりあえず見て大丈夫そうかなというので、
プリルクを投げたという形ですね。
これはAIの良い使い方ですよね。
ちゃんと中身確認して。
そうですね。
スピーカー 3
具体的にどんなの来るんでしょうね。
わかりづらい、良くない使い方っていうのは。
そうですね。
どんなのが、
実物を、
スピーカー 1
Xにたまにこんなひでぇ奴が来たぞみたいなのが貼られてるのを
たまに見て大変そうだなって思うのもあるんですけど、
そんなマジマジと見たことはないので。
そんなにね。
はい、自分のゴミ、プリルクが送られてくるっていう。
ちょっとブログでしろったやつなんですけど、
エンディング:イベント紹介とまとめ
すんごい勢いのリジェクトがあるなここ。
ちょっといいですか。
スピーカー 1
有名になると出てくるみたいなのはあるんですかね。
ちょっとだけいいですか。
収録中に業務連絡なんですけど、
リンクできれば、
ドキュメントのほうにもあってほしいです。
編集のときにですね。
確かに。
ヒロインに行くのが大変で。
いいですね。
これはあれですね、そのまま流すタイプの業務連絡ですか。
そうです、流します。
何の話をしているのかというと、
収録中のチャットのほうにたくさんリンクをみんなで貼り合っているんですけど、
後でPhotocast配信のときに貼るリンクを探すのが大変なので、
スピーカー 2
事前のミーティングのときに使っているノートに貼ってくれっていう。
スピーカー 1
台本ノートですね。
スピーカー 2
台本に貼ってくれっていう業務連絡をしました。
素晴らしい。
ハンドメイド感あふれるPodcastですね。
まだまだハンドメイド。
10回からだったはずだけど。
まだまだハンドメイドですよね、我々の気分。
まあいいか、それは。
みんなで作っているやつです。
そろそろ時間的にはいいぐらいですかね。
言い残したことなければせっかくなのでエンディングに行きますけど大丈夫ですか。
そうですね。
締めるみたいなところで言うと、
やっぱりこういうのは善意で成り立ってみたいなところがあるので、
スピーカー 1
もし貢献したいっていうときは、
結構礼儀というか、
スピーカー 1
相手にとって見やすいブリリックとかっていうところは、
やっぱり自分としては意識したいなみたいなところを感じた。
最近AIが来て、特に踏み込みやすくなったからこそ、
そういうところには気をつけていきたいなと思ったエピソードでしたという感じですかね。
ありがとうございます。
そういうのも含めると、一番冒頭で話があった、
スピーカー 2
Galabelのコントリビューションガイドですかね。
各OSSごとにこういう感じでコントリビューションしてねみたいなガイドラインがあったりとかもするので、
そういうのを参考にしてもらうといいですね。
そうですね。コントリビューションガイドは見た方がいいですよね。
そうですね。
善意で成り立っているところだからこそ、
自分たちでちょっとそういうところは実践していきたい部分でありますね。
スピーカー 1
批判を良くする方に。
そうですね。
なんですか?
知恵やん知恵やん。
良い環境であり続けられるように努力するみたいなのは大事だな。
OSS使って商売させてもらってみたところももちろんあるので。
ありがとうございます。
ありがとうございます。
じゃあテーマとここまででエンディングの方に移ります。
気になるイベントを勝手に紹介するコーナー。
まずは札幌PHP勉強会ナイトセッションというものですね。
そうですね。
これ配信がいつだっけ。
今日が7日なので。
明日配信。
4月8日ですね。この配信は。
下とか言っていいのか。
札幌PHP勉強会の今回これナイトセッションの第1回っていうのになるのかな。
これが来週の16日の木曜日ですね。
4月16日の木曜日の19時から21時半で札幌市男女共同。
これなんて読むんですか。
共同角。
共同三角?
三角じゃない?
三角ですけど会場名が間違ってる。
間違ってるの?
3がついてないぞ。
今会場名の間違いを見つけたので。
札幌PHP勉強会の。
お前。
札幌PHP勉強会の方聞いていれば会場名の三角センターの3が抜けております。
うつきさん直しておいてくださいということで。
イベント説明の方はちゃんと三角センターになってますけど。
今コンパスのページを見てて右側の。
会場リンクのところですね。
会場リンクのところを読もうとしたら読めなかったってことですね。
改めて言うと4月16日の木曜日の19時から21時半で開催予定になっているので。
興味がある方はぜひ参加。
あるいはライティングトークとかも。
あと登壇枠も募集してますね。
発表側で参加してみるのもいいかなと思いました。
皆さん札幌の方々お願いします。
もう一つが我らがPHPコンパス小田原ですね。
4月11日土曜日小田原での開催ですので皆さん行ってみたい方はぜひお越しください。
さっきツイッターで小田原は新宿から人駅だっていう話を聞いたんですけど。
あ、あれか。小田急で人駅かならしいですよ。
ロマンスカー?
ロマンスカーで人駅。隣にある代々木とかと一緒ってだから。
僕普通電車で1時間半くらい寝ながら移動したことありますね。
相変わらず冒険が溢れますね。
小田急に乗ってみたいなと思って乗ったらずっと寝てたんですけど。
全然車窓とかも見なかった。
みんな車窓を見てもらえると取り繕ってしまった。
我々関西ウインから行くと新幹線に乗って小田原駅までね。
そうですね。小田原駅から近いのがいいですよね。
ありがたいですね。
新幹線に泊まるから西側からやってくる人も参加しやすいですね。
コンパクトな街で好きです。
もうすでにチケットは完売になってる。
あ、そうか。そうだった。
新規参加は難しいんですけど、
もうすでにチケット持っている方はぜひ小田原でお越しください。
あらためて俺たちとバトルだっていう。
いや、バトルはしないんですけど。
何のバトル?
僕の冒頭で話したATがどうなってしまうのかみたいなところを
確認していただければと思います。
瀧谷さんはライトニングトークの発表をやっているので、
瀧谷さんにどうなってるんですかとかって煽ったらダメですね。
はい、煽りに来てください。
Ask the Speakerとかあったのかな?
そうだっけな。
あったらこう。
Ask the Speakerベアはあるんですけど、
ライトニングトークでAsk the Speakerあったのかな。
当日の何かが来ていたはず。
タイムラインには書いてないっぽいですね。
でもライトニングトーク終わってすぐ。
LTEはないかも。
ないのか。
終了後、あるいは懇親会中にまたお話を振ってもらえると
すべて瀧谷さんが答えてくれると思います。
がんばれ。
はい、リファインで。
KANOさんは今回はいない?
私は今回チケット買えなかったんでいないんで、
活躍をツイッターから見回っておきます。
今日はここまでにしましょうかね。
このポッドキャストノーブテックトークの感想は、
ハッシュタグNOPTTでポストお願いします。
最後までお付き合いいただきありがとうございました。
また来週。さよなら。
33:12

コメント

スクロール