オープニングトーク
- 馬の進捗を報告します!
テーマトーク
- FrankenPHPのStandaloneモードでCLIを作った
エンディング
- 気になるイベント紹介コーナー
- 関西PHP勉強会
- PHPカンファレンスJapan
次回の配信は7月1日(水)を予定しています
感想
まだ感想はありません。最初の1件を書きましょう!
サマリー
NOOP Tech Talkの今回のエピソードでは、まずTakigawaさんが競馬体験の進捗を報告しました。競走馬だった馬に乗る機会を得て、その賢さや乗馬による筋肉痛など、馬の世界の奥深さに触れた体験が語られました。続いてMasuokaさんが、FrankenPHPのStandaloneモードを活用してCLIツールを開発した経験について語りました。Laravel Live JapanでのNativePHPの試みから、生成AIの提案でFrankenPHPにたどり着いた経緯が紹介されました。 Masuokaさんは、GeminiモデルとAntigravity CLIを用いて、コードを深く確認することなく音声ファイルの音圧調整とノイズ除去を行うCLIツールを生成したと説明しました。このツールは内部でFFmpegを呼び出すことで機能を実現しており、PHP自体が直接音声処理を行っているわけではない点が興味深いポイントでした。生成AIが技術選定や複数のライブラリの同時試行を容易にするメリットが強調され、開発プロセスが大きく変化したことが示されました。 しかし、大規模なファイル処理や並行処理においてはGo言語の方が優れているという発見もあり、AIが言語の特性に応じて実装の深さを変えるという興味深い挙動も共有されました。最終的に実用性を重視した開発アプローチが取られたことが語られました。エンディングでは、関西PHP勉強会とPHPカンファレンスJapan 2026のイベント情報が告知され、早めの申し込みが推奨されました。
オープニングとTakigawaさんの競馬体験
こんにちは、Kanohです。
こんにちは、Takigawaです。
こんにちは、Masuokaです。
NOOP Tech Talkは、大阪のスタートアップ企業で働くKanohと、
京都のスタートアップ企業で働くTakigawaが、
テクノロジー周りの話題から、
螺旋しがちな雑談をお楽しむポッドキャストです。
今週は、Masuokaです。
はい、今週もよろしくお願いします。
よろしくお願いします。
よろしくお願いします。
前回、あ、前回ありがとうございました。
そうですね、無事陸に戻ってきたようで。
今、本当にパッと、車掌を述べないといけないなと思います。
今日は、今回は全然大丈夫ですので、よろしくお願いします。
よかったです。あんなにね、普通に打ち合わせの時は喋れてたのに、
急に喋れなくなった。
申し訳ないです。
前回、札幌の話をしたんですけど、競馬場に行ってたと聞きまして、
そうですね、はい。
Takigawaさんがですね、僕が結構心配をしてですね。
心配して。
その後、大丈夫かなと思って、進捗とかってどうなってるんですか?
競馬の方にね。
そうですね、これはもう進捗がありましてですね。
競馬に進捗ですか?
進捗があるっていうのが心配なんですけど。
遂に、うまい大馬さんに乗ってまいりましたと。
乗ったの?
駆けたじゃなくて。
乗ったの?
競馬の体験に行ってきたっていう。
競馬に乗るの?
乗って、はい。
なんで?
これもほんとたまたま。
おかしくない?
たまたま行ってみようかなっていうので。
実は競馬に行く前にも予約は取ってた、だったかな。
多分時期的にはそんな感じだったと思う。
なるほど。
どっか競馬体験のところとか行ったみたいな感じですか?
そうですね、競馬、なんて言ったかな。
競馬クラブの体験みたいな。
行ってきて、乗ってきましたね。
馬主でも目指しますか?
馬主でもね。
いや、その競馬クラブで乗れる馬さんたちも
もともと競走場だったりとかするんですよね。
そういうところで世界がつながっているみたいなのがあるっていうので。
すごい世界、世界っていうか馬の世界は結構奥が深いなっていうか
いろいろな側面で接する場面があるんだなと知る機会になりましたね。
じゃあ結構この馬は走ってたんだよみたいな子に乗って体験できるみたいな形ですか?
この馬は走ってたんだよ、走ってたんだよ。
そう、デビューできた子と、デビューはしなかったけども
訓練は受けてみたいな。
やっぱり人乗せるっていうのは一緒なんで、
多分訓練は共通してるんかなって思うんですけど。
あまりにも競馬に明るくなくてすごいぼんやりとした質問しかできないけど。
実家がちょっと競馬場に近かったんでね。
競馬の日は外に出たら渋滞に巻き込まれる日っていうイメージしかなくて。
地元の人はよくあるある。
日が出ちゃダメよっていうイメージしかない。
筋肉使いますか?あちこち。
でも結構筋肉痛になりましたね、やっぱり。
足かな?
結構効きますね、筋肉痛になるって。
いろんなとこ使うから。
ちなみに僕も競馬とかやったことないんですけど、
そういう場所があるんですか?
大草原みたいなイメージしかないんですけど。
でもそこはもともと大学運動場だったところの土地を買って
そこでやってるみたいな。
学校のグラウンダーみたいなところですか?
でも砂を敷いちゃってるんで、もともと面影はあんまりないんですけど。
でも陸上のトラックが埋められてるみたいな。
殴り場を買った砂に埋まった陸上トラックみたいな。
今、ちっちゃい競馬場を想像してる。
パトックよりちょっと大きめの競馬場で。
サークルになってるんですか?遠径のコース?
というかコースがある?
コースも一応あって、
初心者向けとか体験の人たちはどのくらいですかね。
せいぜい10m四方のところぐらいをぐるぐる回るだけみたいな感じですね。
回りながら一部、遠径のコースを作るんですけど、
コースは結構こうみたいなやつで組み替えられるんで、
組み替えて方向転換も練習できるみたいな。
左の手綱を引っ張ると左側に曲がっていくとか。
すげえ。ちゃんと訓練受けてる。
でもちゃんと指示通りに馬さんが動いてくれて感動しますね。
へー面白い。
変わってるみたいな。
馬って賢いですもんね。思った以上に。
賢い、そうですね。
訓練受けてるっていうのもあるんでしょうけど、
でもやっぱりすごい賢さだなっていう感じで。
大丈夫ですか?途中で道臭くて動かなくなるとかそういうのは?
いやそこはもう練習するところはご飯ないんで、そんなのないですけど。
たまに聞きますよ。
でもちゃんと練習して免許っていうか、連名難求みたいなやつを取ると、
外で乗れる。軽車両なんですよね、馬さんって。
軽車両っすね。
馬は。
たまに見ますね、なんか。
たまに見る、たまに見る。
一応軽車両扱いなんでっていう。
そう、そうなんすよ。
だから暴れん坊将軍みたいな。これ分かるんかな?
ヤブサメ?
違う違う違う。暴れん坊将軍ですよ、松平県のやつ。
あれですね、波打ち際をパカラパカラとして。
そうそうそう。
あれがやりたいんですか?
あれはもう暴れん坊じゃん。無理よあんな。松平県よく乗ってますよ。
いやいや本当に。
そう、だからいつかは馬に乗ってサンバを踊れる松平県になれるのかなって。僕も頑張ればって。
馬でサンバは踊ってないんですよ。
怪しい。あれサンバかも怪しいし。
もともと大学の運動場だったっていうぐらい。街中にあるんですか?
いや結構山ですね。山っていうか。
場所で言ったら平方市の山側にあるっていうところですね。
なるほど。
多分検索したらそこしか出てこないと思うんですけど。
ここかここか。
割と近い。割と近いってどこから近いんだ?ってなるけど。
なるほどな。頑張ればいけるな。
意外とハットリ緑地とか鶴見緑地とかでも序盤ってやってたりするんで。
そうですね、ハットリ緑地もあります。
あの辺は緑地と言いつつすごい街中だから行きやすい人が多いかもしれないですね。
まあね、いかんせん高いんですよね。
そうっすよね。
序盤ってやっぱりブルジュアナ遊びじゃないですか。
まあそうなりますよね。
やばい、冒頭の話に繋がりそうになってやばいな。
いやいや、なんでもないです。
そうですね、結局生まれ入れ込むという意味では。
繋げないようにします。
もうまた繋ぐ気満々だったけど。
今後が心配なんで。
素敵なアクションですよね。
K-1の話に戻ると、
戻らなくていいと思いますけど。
竹井豊、竹井豊に負けたんですよね。
竹井豊が乗ってる大間さんに勝てなかったっていうのがあって。
その翌週ですよ、翌週のG1のレースですね。
宝塚記念なんですけど、竹井豊が勝ってるんですよね。
もうやばいですね。
勝ってないんですよ。勝ってなくて全然。
そういうレースがあったことも全然知らなかったんですけど。
僕らの年代でも知ってるような奇襲で。
すごいやっぱり強い人なんだなっていうのを改めて知ることになりましたね。
すごいですよね。
50…何歳今竹井豊さんって?
57歳!?
60歳!?
2週連続で勝ってて、やっとピークが来た。
お育ちでしたねって言ってるそうです、本人は。
竹井豊が若かった時にですね。
やめとこう、やめます、この話はやめます。
そこまで言ったら、テーマチャンネルになっていきたいなって。
僕はもう何も分からないです。
テーマチャンネルになる前に。
年齢がわりと高めになっても活躍できるっていう。
確かにかっこいいですね。それはちょっと希望が。
希望って言ってね、今じゃあ怠けてるわけじゃないんですけど。
いろいろと夢がある話ですね。
そんな感じでオープニングの方、今後の話でした。
MasuokaさんのFrankenPHP CLI開発
さて、テーマトークの方行きましょうか。
テーマトークは、フランケンPHPをまさかさんが使ってみたって話ですね。
なんでこんな話をするかというと、みんなテックなことをしてないから、僕がこんな話をするんですけど。
もうテックトークと言いつつ、脱線をしすぎている自覚が。
意外と技術的な話しなくなったなとか、別にしなくてもいいかと思いつつ。
もともと、あれ?先月?ラルベルライブジャパンって。
そう、先月ですね。
いろいろありすぎてあれですけど、先月ですよ。
先月ですよね。
ラルベルライブジャパンでいろいろ新しいことを試してみるかと思ったのか、やってみようというきっかけだったんですよ。
フランケンPHPの話じゃなくて、ネイティブPHPの話をしてたんだったかな、ラルベルライブジャパンでは。
してましたね。
これネイティブアプリ作れるのいいじゃんとか思って、試してみようと思ったんですけど、
全然別のプロダクトでコマンドラインインターフェースのアプリケーションを作るっていうのをやってて、
全然PHPとか関係なく作ってたんですけど、そういうやつもPHPでいけるんじゃないかと思って、生成させてみたら、
残念ながら、ご指摘のネイティブPHPではそのような用途には向いてませんとかって、
冷静に的確な判断をされて、できないのかとか思ってしまうんですけど、
最近の生成AIはかなり賢くて、いろいろ提案してくれるから、
それはできないけど、フランケンPHPだったらできますよっていう代替案を出してくれて、
フランケンPHPのほうがそんなにできるんだろうとか思ったんですけど、実はこのスタンダウンローンモードっていうのがあるらしくて、
これを使うと、実行環境のPHPと関係なくビルドした生成物ができる、今適当にしゃべりました。
というような機能らしくて、なぜらしくてっていうか、完全に生成させて何もコードを見ていないっていうので、
今時ですね。
何もコードを見ていないっていうのがこれ。
静的な自己完結型バイナリに埋め込む機能。
はい。1個のバイナリファイルとして、全ての実行に必要なものを埋め込んでくれるっていう。
これも今適当にしゃべりました。
この発言で何かが起きてる。
なんで適当にしゃべるかっていうと、確かこれ生成させて作ったのが先週の話でですね。
先週ノールックで生成させて、その機能について深く知らなくても実行するものができてしまっているので、
そこに甘えてちゃんと見ていないっていうやつですね。
暇時だな。
本来だったらちゃんと動くっていうのを情報として調べて確証を取って作るんですけど、
先に作っちゃうってやつですね。
作ってから学ぶっていう手段が取れるんですけど、それを取ってないです。
学ばないと作れないだね。
確かに作りながら学んでたのが、一旦作って動かしながら学ぶに変わってきましたよね。
しかもそこで学ぶっていう手段を取らないっていう。取ったほうがいいんですけど。
本当に年老いでね。
完全に計算資源の無駄遣いじゃないですか。
人間の理解も促進されていないけど、よくわからんデモアプリが生成されるみたいな。
ここで第三者が使うものだったらちゃんとそこで調べるんですけど、
完全に個人で使う、自分で使うだけのものを作ったので。
実行結果だけ見て。
そうなると確かに中身を見てないっていう。
こういうことができますよっていうきっかけで実際にやってみたら、
そっちはないんですけど、さらに新しい発見があって、別の方法で実現ができたっていうのが、
この話のポイントなんですけど。
音声処理ツールの詳細とAIの活用
何を作ったかというと、音声ファイルを渡すと自動で音圧を一定にしてくれて、
なおかつ環境ノイズをきれいにしてくれるっていう。
一応聞きましょうか。一応聞きますよ。
何の目的ですか、それ。
収録した後の音声ファイルが3つできるんですけど、
その3つをAI編集してなくて、その3つを編集ソフトに入れて、
3つの音圧を合わせてノイズを除去するっていうところまでは手動でやったんですよ。
これもしかしてこれ。
作業自体は簡単なんですけど、5分ぐらいはかかるんですよね。
5分ぐらいはかかるし、手動でなんやかんやファイルを移して、確認をして、
こっちに書き出してみたいなやつをやったんですけど、
それだけ指定しちゃったらできるんじゃないと思って。
それをやったら、すごい完璧なものを作ってくれてですね。
完全に面白いことやってますねって聞いてたのが、
急に自分ごとになったんだけど。
まだ実践はさせてないんですけど、
今日収録したやつはそのコマンドに渡して、
明日の配信に載るっていう。
すごい。
聞いてる方々は今チラッと聞こえてわかったかもしれないですけど、
松岡さんはめちゃくちゃパワーがすごくて、
今日収録して明日配信してるんですよ。
バレてしまった。
その時間短縮のために。
5分も惜しいわって。
一人でやってくれるかなっていうので。
音声ファイル読み込んで、
数字の配列になり、それを平滑化させるみたいなことをやってるんですかね。
そうなんですよ。
リポジトリがあって、
あんまり大役にしたくないんですけど、何もコード見てないから。
大役にすると他のコードキャストに使い始める気がせへんから。
使ってもらえればいいんですけど、コード作ってるかどうか調べてないから。
その辺の精査はしないので、ちょっと怖いんですけど。
台本に貼ろうかな。
学生の時にC言語で練習でやらされたりしましたね。
平滑化フィルターみたいな。
いまたにたまに移動平均とか使いますけどね。
ネタバラシがあるんですけど、
PHPでコード作ってくれたのはいいんですけど、
実際中で何をやってるかというと、
コマンドラインインターフェースの中でコマンドラインを読んでて、
ソースコードの中に、
コマンドだったっけ?自分で書いてないから分かんない。
コマンドの中にオーディオプロセスコマンド.phpってのがありますね。
ソースコードの中でFFMPGを読んで、
FFMPGっていうネタ編集プログラムがあるんですけど、
それ読んできて、必要なプログラムを実行させてるだけっていう。
PHPの意味。
PHPで処理してるのは、別のプログラムを読んできて、
いい感じにして実行するだけっていう。
アイル操作ぐらいに使うとなると。
ソースのオーディオのFFMPGロケーターとかに書いてる。
本当だ。FFMPGのインフォ、FFMPGのロケーター。
FFMPGを読むスクリプトファイルを作ってくれてるって。
スクリプトファイルはCLIとパッケージ化してくれてるみたいな感じで。
これ、なんだろうな。ザAIっぽいあれですね。
はい。ただ、要件を満たしてくれてるってやつですね。
普段を選ばなきゃそれでいいでしょ。
最初に生成してもらうときに、
プロジェクトイニット.mdみたいなやつに、
使用書と要件定義だけを書いて渡したら、
ちゃんとしたものを作ってくれて、
あとはデバッグだけしたっていうやつですね。
こういうのは楽しくなりましたよね、いろいろと。
パッと要件と使用書だけ渡してしたら、
必要なアーキテクチャを向こう側が選んでくれるっていうやつですね。
いいですね。こういうのは楽しくなったな。
一つの機能をパッと試せるっていうだけじゃなくて、
複数の機能を同時に試せるっていうのができたっていう感じですね。
例えば、今回FFmpeg使ってますけど、
別の似たようなライブラリとかを同時に試して、
実際に実用的なものを選ぶっていうのを
SafeAIのほうにやってもらえるっていうやつが、
超簡単になったっていうやつですね。
技術選定とかで一生懸命調べてたやつを、
実際に動かしながらやってくれるっていう。
調べて見捨ててやりたいこと実はできませんでしたとか、
そういうのがなくなるのはいいですね。
先に動くのが分かってきて。
複数のライブラリがあったとして、
ライブラリAだったら実現できるんですけど、
ライブラリBでは実は実現できませんでしたみたいなやつを、
一生懸命頑張って調べなくても、
同時進行でやってくれるっていう。
それは調べやすくなったというか、
あまり悩まずにパッと実行できるようになった。
超楽でいいですね。
いいですね。
開発言語の選択とAIの挙動
使用書を見てますけどめっちゃ簡単ですね、これで。
超簡単なやつしか入れてない。
足して、フランケンピーチピー。
これフランケンピーチピーって指定しちゃったから、
フランケンピーチピーで固くなりに作ってくれたんですけど、
実はフランケンピーチピー使わなくてよかったっていう。
確かに。
中身はFFMPを読んできてるだけだから、
HTTPとかそういうの全然使ってなくて、
PHPサーバーとかいらないんですよ。
どちらかといえば、
ネイティブPHPでデスクトップアプリにして、
ドラッグ&ドロップでできるようになってくれたりとかのほうが
嬉しかったのでは。
なんで先にCLIだけ作ったかというと、
背景があって、これは自分用に作ったんですけど、
先行して、今まで業務とかでデスクトップアプリケーションを作るときは、
スペルトキットとかっていうので、
Webアプリを一回作ってしまって、
Webアプリを今はタオリを使って、
アプリケーションとしてビルドさせるみたいなやつをやってるんですよ。
そこをちょっと変えて、
UIはUIだけそのままJavaScriptのライブラリで作って、
そのUIでコマンドラインアプリケーションを操作するような形で作っておくと、
実用的じゃないんですけど、
CLIだけを入れ替えたりとか、
そういうことができる。
ということができるかなと思って、
試しにやってみたらうまくいったみたいな感じ。
さらにネタバラシをすると、
業務用で作ったやつは、
最初PHPで作ったんですけど、
でっかいファイルを扱うときにめちゃくちゃ遅くなっちゃってですね。
結局そこから語言語に書き直して、
語で並行処理をするみたいなやつをして、
実装したっていう。
語のほうが得意そう。
実際にやってみたらやっぱり語のほうが得意だったっていうのと、
あとですね、
生成させてたのがKubernetesを使ったんですけど、
多分モデルとかによって挙動が変わってくると思うんですけど、
ジェミニのモデルで、
最近出たアンチグラビティCLIっていうやつで生成してたんですよ。
それを使って生成すると、
PHPでやってって言うと、
ffmfegとかこの外部のCLIを使おうとしてくるんですけど、
語で書いてあったら、これ書けますよみたいな感じで、
語で実装してくれたりとかして。
そうかー。
PHPだったらうちも読むだろって。
向き不向きがあって、
PHPで実装してくださいって言ったら、
これは難しいですねみたいな感じで、
ライブラリを使おうとしてくるんだけど、
別の言語だとちゃんと詳細まで実装してくれるっていうやつがあって。
PHPで信号処理やるトリッキーな人なかなかいないですもん。
だから細かいところまで実装していければ、
複雑なのをあえて、
ライブラリが持ってないところまで作っていくっていうやつを指示して、
作っていくっていう形も取れるかなとは思ったんですけど、
そこまで挑戦はしなかったっていうやつです。
実用を取りました。
いろいろやってますね。
試しにやってみたらめちゃくちゃ面白くてですね。
昼夜逆転しちゃったみたいな感じで、ずっと作ってます。
大丈夫ですか?
今日の編集は無理しない感じでお願いしますね。
今日は大丈夫です。
昨日頑張って逆転逆転させたんで。
大変かな。
よくないですよ。
お財布周りも健康周りもいろいろ不安になるトークでしたけど大丈夫ですか。
今日のテーマは不安になっちゃいました。
不安になるのはまともなものを私だけだな。
エンディングとイベント告知
よし、エンディングに行きましょう。
当事者は楽しいんですか?
そうらしい。
じゃあエンディング行きます。
気になるイベントを勝手に紹介するコーナーです。
これ勝手じゃないけど関西PHP勉強会が今週末ですか?
今週末ですね。
まだ参加者が少ないのでいっぱい来てください。
クランフロントでお願いします。
6月26日金曜日19時からクランフロントでお願いします。
もう一つPHPで言うと
PHPカンファレンス東京でやるジャパンの方ですね。
こちらが実は日が迫っていて
7月20日月曜日になっております。
ほぼ1か月後ですね。
皆さん是非東京で参加できる方は参加してください。
場所がいつも通りのオタクPIOなんですけど
改修工事とかをやってて
普段はPIOを1階から上から下まで
ザーッと使ってたくさん来るみたいな
大きなイベントになってたんですけど
今年は改修工事が入ってて
縮小で2トラック編成でという形になっているので
早めの申し込みがいいんじゃないかなという気がしています。
もしかしたら人数制限するかもしれないとか
という話もあるので
早めの申し込みがいいかなと思います。
人数制限するとしたらコンパスで申し込みやらないといけないですかね。
早めにやってみたことはないと思うので
興味がある方は早めにお願いします。
今日はそれぐらいにしておきましょうか。
では今日の配信はここまでとします。
このポッドキャストノープテックトークの感想は
ハッシュタグNOOPTTでポストをお願いします。
これ毎回言ってるけど
NOOPTTでOOとTTがすごく言いづらいんだよね。
どうでもいいです。
NOOPTTでポストをお願いします。
最後までお付き合いいただきありがとうございました。
また来週。
さよなら。
Mixi2もよろしく。
さよなら。
30:48
コメント
スクロール