オープニングトーク
続報、ラテアート
- 其の0010 実は牛乳が飲みたかったが英会話を始める第10回記念 - NOOP Tech Talk - LISTEN
https://listen.style/p/nooptt/0nuscu7v
PHPUnitのフックがない!
- PHPUnitのテストフックを使ってテストにかかる時間の計測をしよう by あき | トーク | PHPカンファレンス小田原2026 #phpcon_odawara - fortee.jp
https://fortee.jp/phpconodawara-2026/proposal/dc2afd4b-e673-44f5-9225-0b1b354878fc - 11. Extending PHPUnit — PHPUnit 7.5 Manual
https://docs.phpunit.de/en/7.5/extending-phpunit.html#extending-the-testrunner - 11. Extending PHPUnit — PHPUnit 13.1 Manual
https://docs.phpunit.de/en/13.1/extending-phpunit.html#extending-the-test-runner
テーマトーク
AI時代のOSS
- Contribution Guide | Laravel 13.x - The clean stack for Artisans and agents
https://laravel.com/docs/13.x/contributions#ai-generated-contributions - 【GitHub】GitHubは低品質なユーザによるContributeを拒否する仕様を検討・実装中 #AI - Qiita
https://qiita.com/rana_kualu/items/78fdef38b201985cb0d9 - OSS開発者の憂鬱 by Yusuke Wada | トーク | YAPC::Fukuoka 2025 #yapcjapan - fortee.jp
https://fortee.jp/yapc-fukuoka-2025/proposal/72e1ace7-5a57-45fe-8d16-3af47539574f - OSSにおけるAI Slop問題の何が問題なのか?
https://zenn.dev/yusukebe/articles/3fd5bc6ea341c9 - `gopose status` コマンドを実装しました by takigawaakinori · Pull Request #37 · harakeishi/gopose · GitHub
https://github.com/harakeishi/gopose/pull/37
エンディング
- 札幌PHP勉強会 ナイトセッション #1 - connpass
https://sapporo-php-study-meeting.connpass.com/event/386669/ - PHPカンファレンス小田原
https://phpcon-odawara.jp/ja/2026/
次回の配信は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の変更
こんにちは、Kanohです。
こんにちは、Takigawaです。
あ、何て言うんだったっけ?
あ、こんにちは、Masatoです。
どうしたんですか?
ちょっと急に。
こういう始まりのままかなと。
待って、待って。
はい、もう一回やり直します。
ちょっとごめんなさい、待って。
Kanohさんのツボをついてしまいました。
自分のセリフを忘れているところに突っ込もうと思ったら、自分が大変なことになりました。
連鎖的に何かが起きたってことですかね。
あったあった。
そっちも切れたってことですか。
両方切れて、突っ込んでいる最中に両耳が聞こえなくなるっていう。
さすがにその間に突っ込みながら、これを交換してはできなかったです。
そうですね。
ちょっと一瞬抜けます。
じゃあ、いきましょうか。
テイク2。
こんにちは、Kanohです。
こんにちは、Takigawaです。
こんにちは、Masuokaです。
テクトークは大阪のスタートアップ企業で働くKanohと、京都のスタートアップ企業で働くTakigawaが、テクノロジー周りのお題から脱線しがちな雑談を楽しむポッドキャストです。
編集はMasuokaです。
今週もよろしくお願いします。
よろしくお願いします。
よろしくお願いします。
10回の時に会社にコーヒーマシンが来た話したじゃないですか。
はい。
牛乳飲むために私が牛乳を一人で泡立ててるっていう。
牛乳会になってしまったっていう。
そうそう。
あれがですね、だんだん上達してきまして。
台本に写真を貼って、またツイッターに。
なんか私ずっと写真の話してるな。
ちょっと待って、あれが上達した?
そう、ラテアートが書けるようになりまして。
ああ、はいはい。
コーヒーマシンで、確かラテアートが上手く書けなかったっていう。
全然書けなかったのが、だんだん動画を見たり、解説読んだり、いろいろした結果、なんとかハートを作れるようになりましたね。
すごい。
これハートなのか。
そう、これハート。
そんなわかりにくくないでしょ。
完全になんで桃を書いてるんだろうって思って。
クリームがハートの上部側にふわっとなってて、桃の葉っぱみたいに見えてた。
あれちょっと混ぜ損ねたから少し線が残っちゃった。
桃太郎が乗ってくる桃みたいなのをイメージで見てたんですけど。
そう言われるとハートですね。
後でツイッター上げるんで、みんなハートに見えるか桃に見えるか判定してください。
そうしましょう。
という話を自慢したかっただけなんですけどね。
会社でクリームで入れてるのは私だけなんで。
みんなめんどくさいからやらない。
ちゃんと練習をして。
練習したらできるようになりました。
成長が見えるっていうのはとても良いですね。
1日数回自分のタイムスにスレッドでラテアートの練習結果を投げるスレッドを作ってるんですけど。
そこに挑んで。
それ楽しそうですね。
誰も反応してくれるかわからないけど、ずっとそれで練習結果をそこで公開してるみたいな感じになってます。
さて、技術的な点に移りますけど。
これ一応テックトークなんでね。
何を言ってるんですか。テックトークですよ我々。
滝川さんがさっきPHPユニットの話してましたよね。
そうですね。
今週末にですね、PHPカバエルス小田原があって、このLTで登壇をする内容で
PHPユニットはテストフックを使ってテストがかかる時間の計測をしようというトークを発表させていただくんですけど。
トータルシールを作っていく中で調べているとですね、最新のバージョンでなんとフックインターフェースがもうないということがわかってしまってですね。
大幅に内容を変えないといけないということに気づいてしまったというのが。
タイトルにテストフックと書いてあるか。
テストフックと書いてあって、ちゃんと移行先を用意してくれているものになっているので、イベントというのを使って同じようなことができるので、
それを手元では試しているので、それを使った内容に変えて今週末持っていくぞというようなところになっていますという感じですね。
これ実はだいぶ前から配信で違うものになっていたみたいなので、
ただやっぱり会社で触っているバージョンが違ったりするとなかなか気づかないものだなというのに。
そんなに古いわけではないんですよ、これ。
なんですけど、PagePrint流れも速いしというのがあって、そんなことがまさかというのがありましたという話ですね。
簡単にフックインターフェースが何かとかイベントが何かみたいなのを説明してもらって大丈夫ですか?
はい。テストフックはそうですね。
こういうことがあったらこういうことをするみたいなのがフック。
それを登録しておくと、例えばテストランナーでこのテストケースを走らせ始めましたというのをやって時間を記録しておくみたいな。
変数に格納しておくみたいなことができたのがフックで。
これを使うとテスト前後の時間を比較して時間がかかっているテストを特定できますみたいなことをやって、
これはあんまり言うと本当にネタバレになってしまう流れなんですけど。
イベントも似たような感じで、
これはそうですね、テストが始まりましたみたいなのをPagePrint側から通知してもらって、
それを高速するような流れに。
変わったといえば変わったのかなという感じですけど、それぞれそういうものになってますね。
なるほど。
こういうのに会社の中で感度強く何人かが目を光らせていて、
なくなるらしいぞみたいなことを言わないとなかなか気づかないものだったりもしますからね。
ですね。
ちなみにこれ今何か突っ込むとネタバレになったりしますかね。
まあまあ大丈夫です。
セーブしてください。
ちなみにフックって、完全にノールックで質問しますけど、
フックなのでイベントの処理に対して文字通り別の処理をフックしていた感じですね。
引っ掛けていたみたいな感じですよね。
イベントが起きたときに行われる処理みたいなやつを引っ掛けているからフック機能みたいになってたけど、
イベントになったときに対象に対して機能を引っ掛けてたけど、
それが呼び出し方が変わったってことですかね。
なんですかね。
一応これはインターフェースに、もともとフックはインターフェースになってたので、
これをインプリメントのところに書いて、
それでそれに応じたメソッドをテストケースに書いてっていう感じですね。
今質問して思ったんですけど、適当に質問すると答えてもらってもらえない。
難しい。説明するのもなかなか。
ちゃんと今度から調べて質問するようにしたいと思いました。
答え合わせを小田原で。
僕も調べていきます。
それこそフックですでにできたものをイベントに変えたことに何かしらの理由があるはずなので、
その辺りは気になりますよね。
そういうところが知りたいな。
いいネタができたなとは思います。
いいですね。
LTのテーマ自体はそれじゃなくて実体験みたいな形になるんですかね。
計測もできるんでしっかりやっていこうぜみたいなことを言えたらよいんですけど、
技術的にはそういうところもあったという感じでした。
なるほど。
LTだとそれでどうやって改善していきましょうみたいな心がけとかのところで十分ためになりますもんね。
なるほどな。
テーマトーク:AI時代のOSS
小田原は後でまた詳しく話すとして、今週末ですか。
はい。
4月11日の土曜日です。
皆さん気になる方は行ってみてください。
さて、オープニングはこれぐらいにしてテーマトークの方に移りましょうかね。
本日もよろしくお願いします。
よろしくお願いします。
さて、今日のテーマトークタイトルがAI時代のOSSについて考えたいってありますね。
AI出てきてOSSの活動ってかなり変わりましたよね。
そうですね。
なんかすごいいろんな良くないプリンクが来てめちゃくちゃ困っているみたいな声も一部では聞いたりとかしていて、
ストナが広がった部分はあるのかもしれないんですけど、
やっぱりそういうところでスパンみたいなのも出てきてしまうというのがあるのかなというところですよね。
各OSSが対策とかしてるんですかね、こうなると。
そうなんですよね。
ララベル、このスタンスみたいなのを偶然どこかで聞いて、
そうなんだって思ったのがララベルがあってですね。
これはコントリビューションガイドにもAIが推進した貢献に関しては、
プリンクに関しては構わないけれども、
人間がやっぱりちゃんと確認してねと、
確認をせずに生成されたものは受け入れませんみたいな、
そういう基準というか、
そういうのを出しているっていうのがあるみたいですね。
そうですね。
本当だ。
公開されたコントリビューションガイドに、
AI Generated Contributionsってちゃんと明記されてますね。
ですね。
寄せられるプリンクには感謝するが、
人間の慎重なレビューや検討をせずに、
主にAIによって生成された功績は受け入れられません。
ちゃんと明記されてますね。
なるほどな。
確かGitHubが、
低品質なコントリビュートを拒否する仕様を作ろうとしている、
みたいなニュースをどこかで見かけた気がするんですよね。
へー。
来ましたね、適当にしゃべるやつが。
どっかにソースがあるか。
これか。
これかな。
個人ブログですけど。
あくまでもGitHubっていうのはね、
今までずっとみんなそうでしたけど、
ある程度の知識がある人たちが、
生前説で基づいて作っているところに、
まあAIでこれやってみたらいいんじゃないかみたいなのが、
ポンポン来始めるとちょっとしんどいという話。
なのでそういうのを防止するような機能を作ろうか、
みたいな話があるっていうのは聞いてましたし、
やっぱりいろんなところのプロジェクトで問題にはなってるんですかね。
例えば、去年ヤプシの福岡で、
ゆうすけベイさんのアプリの中でも、
炎の開発をしているときにプロテクを受けたりとかするんですけど、
そういうときに実例とかを語られてたような気がします。
もし語られてなかったらこの場面はカットします。
適当にしゃべったんですけど。
多分語られてたはずです。
なるほどな。
AIによる行動が果たしてそれでいいのかどうかっていう話がね、
ちゃんと自分が実装したいことを、
それこそ手の代わりに動いてくれるんだったらいいですけど、
この機能が欲しい、AIに行ったらできました。
さすがにちょっと受け入れられるかっていうと怪しいですもんね。
でもこういう何でしょうね、
無理やりコントリビュートしたことにしたいみたいなのって、
多分AI以前にもあった嵐みたいなのとか、
治さなくてもいいようなタイプを報告してみるみたいなのは、
多分これはわかんないんですけど、
OSSのコントリビュートでスコアを出すようなサービスとかもあるというところで、
スコア稼ぎに使われてしまうみたいな側面もあるのかもしれないなとか、
そういうところはありますよね。
なるほどな。
昔ね、スコアを上げるために自分の会社の行動をGitHubに突っ込んで炎上した人とかいましたね。
ありましたね。
ツイッターで話題になってましたね。
さすがにちょっと怖いなと思いましたが、
実際問題そんなに大きな問題がなくてよかったですけど、
何なんでしょうね。
よくツイッターとかでも話題になる、
世の中にあるでっかいサービスっていうのはこういうOSSによって支えられていて、
ただそこってめちゃくちゃ定着で、みんなして全員でやってるボランティアっていう、
この仕組みは何だろう、
AIができることによって何かしらが崩れるんじゃないかって感じはすごくしますね。
それこそ先週あったアキシオスのやつとか、
ああいう感じの攻撃とかも今後は出てくるわけで、
さらにああいう攻撃が今後AIと繋がって、
すごい無差別的にやってくるみたいなことが多分増えてくるでしょうし、
そうなった時に果たしてボランティアで何とかなっているところのOSSっていうのはどうなるんだろう、
ちょっと勝手にリコストが大きくなっていって、
メンテナーそのままできるのかっていうのは気になるところです。
やっぱりメインのメンテナーが勝ち取りをするっていうのは、
あるところではあると思うんですけど、
そういうのが増えすぎるとなかなかもうそれができなくなってしまうみたいな、
結構危機的なところはありますかね。
そういう意味では数年前のPHPがちゃんとPHPの開発者にお金を出すようになったっていうのがいい傾向だと思うんですけど、
そういうものばかりではないんでね。
ちなみに、生成AIを使ったプルリクを実際に出した事例を聞かせてもらえますか。
僕は聞きましたよ、この間の関西PHP勉強会で。
あれは関西デブガレージで。
違うイベントの紹介をしましたね。
あれは関西デブガレージの話ですね。
OSSの貢献の話みたいなところで、
実際にやっぱりこういうところありつつも、
使ってやっていける部分もあるんじゃないかみたいなところで、
自分でもやってみたというのがありまして、
GoPoseというポートの競合を解決するツールがありまして、
これちょっと多分日本人の方が作っていらっしゃって、
OSSで公開しているものになるんですけど、
これのサブコマンドを1つ作ってコンティニュートしたというのが、
生成AIを使ってやってみたというのがありました。
GoPoseでAIでたくさん開発環境を立ち上げていると、
ポートがぶつかっておいってなるから、
という感じですね。
すごいな、私おいってなるかなって感じのやつですかねって言って、
それで同意を求めるっていう超適当ムーブをかましたわけですが。
DockerプラスGitWorks3を使うとよく当たる問題なんですけど、
例えばWebサーバー80番ポートで立ち上げているという設定の環境を2個用意すると、
勝ちあってしまってDockerが立ち上げられないみたいな、
Docker Composeできないっていうのが、
それを自動で解決するみたいな、
自分で使ってたっていうのが大きくてですね。
それでやってみようみたいなところでできたっていうのがありましたね。
どこの部分を直したんですか?
直したっていうか追加ですか?
追加?
追加ですね。
これかな?
GoPoseステータスコマンドというのがあって。
ほんとだ、いつものアイコンが並んでる。
GoPose自体がいろんなサブコマンド、
例えばアップって打つとポートスキャナーが走ってですね、
今立ち上げようとしているDocker Compose YAMLの設定と被っているものがあれば
オーバーライドするYAMLファイルを作ってくれて、
オーバーライドYAMLがあるとそれにオーバーライドされるので、
Dockerがコンポーズ立ち上げられるみたいな風になっていて、
それのうちのコマンドを1個作ったという。
すげー、ステータスコマンド。
確かにこれ必要っすね。
ポートマッピング状態を確認できるようにするコマンド。
そうですね。
これがあると、
エージェント、例えばプレイライトMCPとか使うときに、
ポートどこか分かりませんみたいなのがあったりとか、
愚直にDocker Compose YAMLを見に行ってしまうと、
別のワークステータス立ち上げてるやつなんだけどな、
みたいなところを見に行っちゃうみたいなのが、
まあまああるんですよね。
ポート確認するときはステータスを使ってくれみたいなのをすると、
すんなり行くようになるので、結構重宝するという感じですね。
なるほどな。
すごい。
確かにそうか。
AIがそんな動かしてるなんて知らないから、
元々のやつを見に行って、
このポートだと思ってやるみたいな、
で失敗するみたいな。
ありそう。
実装されてませんみたいな。
そこでは実装してないで確かに、
そっちはマスターだからねみたいな。
ある。
悲しいすれ違いが起きるわけですね。
そうですね。
なのでそう、
このツールはめちゃくちゃ便利で、
僕もすごい愛用してるんですけど、
そこに対して追加してみたっていう感じですね。
これはAI使って?
うん、そうですそうです。
AIを使ってやってまして、
自分は語をたまに書いたり、
趣味で書いたりとかはするんですけど、
あんまりPHPばっかり書いてたりとかするので、
あそこまでめっちゃ詳しいってわけじゃないですけど、
でも書いてみて、動作確認して、
内容もとりあえず見て大丈夫そうかなというので、
プリルクを投げたという形ですね。
これはAIの良い使い方ですよね。
ちゃんと中身確認して。
そうですね。
具体的にどんなの来るんでしょうね。
わかりづらい、良くない使い方っていうのは。
そうですね。
どんなのが、
実物を、
Xにたまにこんなひでぇ奴が来たぞみたいなのが貼られてるのを
たまに見て大変そうだなって思うのもあるんですけど、
そんなマジマジと見たことはないので。
そんなにね。
はい、自分のゴミ、プリルクが送られてくるっていう。
ちょっとブログでしろったやつなんですけど、
エンディング:イベント紹介とまとめ
すんごい勢いのリジェクトがあるなここ。
ちょっといいですか。
有名になると出てくるみたいなのはあるんですかね。
ちょっとだけいいですか。
収録中に業務連絡なんですけど、
リンクできれば、
ドキュメントのほうにもあってほしいです。
編集のときにですね。
確かに。
ヒロインに行くのが大変で。
いいですね。
これはあれですね、そのまま流すタイプの業務連絡ですか。
そうです、流します。
何の話をしているのかというと、
収録中のチャットのほうにたくさんリンクをみんなで貼り合っているんですけど、
後でPhotocast配信のときに貼るリンクを探すのが大変なので、
事前のミーティングのときに使っているノートに貼ってくれっていう。
台本ノートですね。
台本に貼ってくれっていう業務連絡をしました。
素晴らしい。
ハンドメイド感あふれるPodcastですね。
まだまだハンドメイド。
10回からだったはずだけど。
まだまだハンドメイドですよね、我々の気分。
まあいいか、それは。
みんなで作っているやつです。
そろそろ時間的にはいいぐらいですかね。
言い残したことなければせっかくなのでエンディングに行きますけど大丈夫ですか。
そうですね。
締めるみたいなところで言うと、
やっぱりこういうのは善意で成り立ってみたいなところがあるので、
もし貢献したいっていうときは、
結構礼儀というか、
相手にとって見やすいブリリックとかっていうところは、
やっぱり自分としては意識したいなみたいなところを感じた。
最近AIが来て、特に踏み込みやすくなったからこそ、
そういうところには気をつけていきたいなと思ったエピソードでしたという感じですかね。
ありがとうございます。
そういうのも含めると、一番冒頭で話があった、
Galabelのコントリビューションガイドですかね。
各OSSごとにこういう感じでコントリビューションしてねみたいなガイドラインがあったりとかもするので、
そういうのを参考にしてもらうといいですね。
そうですね。コントリビューションガイドは見た方がいいですよね。
そうですね。
善意で成り立っているところだからこそ、
自分たちでちょっとそういうところは実践していきたい部分でありますね。
批判を良くする方に。
そうですね。
なんですか?
知恵やん知恵やん。
良い環境であり続けられるように努力するみたいなのは大事だな。
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
コメント
スクロール