昨今のComposerは(サプライチェーンアタックについて)どうなってるんすかね??って軽く調べ

PHPユーザーなので、掲題の通り「どうなってるんだろー」って気になったので調べてみました。

  • きっかけ
  • 任意のスクリプトの(自動的な)実行について
  • composer audit
  • 汚染に対して
    • サプライチェーンアタック対策の基本
    • Transparency
    • Filter
    • CoolDown
  • 現状+直近でどうしていくか

きっかけ

やっぱりaxiosの件とか。

blog.flatt.tech

続きを読む

記: PHPerKaigi 2026で寄稿や登壇をしてきました #phperkaigi

3月20日~3月22日の3日間、東京は中野セントラルパークカンファレンスで開催されたPHPerKaigi 2026に参加してきました。

phperkaigi.jp

サイトかわいいな〜。
ここ何回かは「ででーん」「バフンっ!!」って感じで元気な雰囲気だったけど、今年は楽しくて明るくてワクワクしつつもちょっとチルい感じもする〜改めて見たら右下に焚き火してる子たち居ますね😌 あと、真ん中の方(DAY1のセクション)、ペンライト持っている!って後から気づいて笑ったw

「このブログを書いているってことは本当に今年のpheprkaigiも終わっちゃったんだな」という寂しさがあるのですが、そうも言っていられないですからね、書きます。

参加した感想や聴いたセッションの感想などはこの後に書くとして、まずは自分の発表についての話からです。

続きを読む

「文字が小さい部分もあるので見にくかったら資料公開済みなので手元で御覧ください」をやりやすくするやつを書かせた

GitHub - o0h/speaker-watch-party · GitHub

登壇するときのスライド、自分はなるべく見やすくなるように気をつけてはいるつもりだけど。
フォントサイズ大きくするとか、コードを黒背景で載せないとか、なるべく視線の移動を小さくするとか。
といっても、限界はあるじゃないですか。会場の明るさとかコントロールできないし、あと座っている位置や前に座っている人とか。

なので、カンファレンス登壇とかの準備時間がしっかり取れている系の登壇は、事前に資料は共有して&導線を分かりやすいところに貼って&ハッシュタグ付けて投稿(予約投稿)して・・・とかって準備はするのだけども。

これがベストなのか?っていうと違うなぁ、そもそも「不便を回避できるように手元で見れるようにした」と言いつつ、「喋りに合わせてスライドをめくるから、耳だけこっちに向けてもらっても手元でスライド合わせるよう要求するの無茶じゃね??」って疑念が、ある時からあったんですよね。

ってことで、ツールを作った。
発表者が開いているスライドと同じページを、ブラウザ上に表示するよってやつです。自動ページめくり&同期するもの。*1

やっていることは単純で、

  1. あらかじめ、発表に使うものとページ番号を合わせたスライドをPDFでサーバーにおいておく*2
  2. 利用者は指定したURLをブラウザで開いておいてもらう
  3. applescriptでKeynoteのイベントをポーリングしておき、スライドがめくられたタイミングでサーバーにページ番号を送る
  4. サーバーから利用者のブラウザに、ページめくりイベントを送信する

というもの。

技術

使っているのはapplescript + frankenphpです。Claude Codeは最初「honoでやるぞ〜」って言ってきたけど、そうだよねnodejsがいいよねーって思ってから、いや!ちょっと待って!!PHPでいけね・・?となり。
使ったことがなかったので、初めてFrankenPHPに触ってみた。
自分はコード書いてないですAnthropicからきた業務委託がやってくれました。

あと、これは自分のためのツールなので、プレゼンテーションツールはKeynote前提です。
というかGoogle Slideとかは、元々そういう機能だかChrome拡張だか無かったっけ?って気がする。未調査。
SpeakerDeckと連携してスライドめくりを〜・・とかも探ったけど、SpeakerDeckのスライドを埋め込んだ上でそれをJSから操作する口がなさそうだったので断念。

使い道とか

大前提として、会場がネットワークに自身がある機会にしか使えないと思っています。
直近であるイベントが(例年通りなら)ネットワークかなり拘って提供してくれているので、いけるかもなーって。

このアプリ自体の通信量は微々たるものなはずだけど、単純にWi-Fi接続数を増やすよう誘導することにはなりそうなので。

その他

作ったきっかけは、#ツナギメエフエム 第149回で「スライドツール作ってみたくなった」みたいな発言があって、「そういえば自分も、プレゼンツールを・・・」って思ったことがあったのを思い出したこと。
tsunagi.me

ニコ動風の字幕をプレゼン上に流すやつとかもあったよなぁ〜とか思い出しつつ。

単なる思いつき・雑なアイディアを、こうやって調査から設計からプロトタイピングまで半自動でやってくれる時代、よくないですね〜。今までだったら、調べる時点で腰が重くて手を出してなかったのにね!!
「他にやるべきことがある時に手を出しちゃう」が捗りすぎている。

あと、使えるようにするにはインターネットに乗っけておく必要があるので*3、どこにしようかな〜と思って久々にVPSを触ったり。放置していたドメインをいじったりした

*1:と言いつつも、本当に1番良いのは「会場のスクリーンだけ見ておけばOK」だと思うし、そういう見やすい・聞きやすい発表になるよう努めるべきだよなーとは思う。自分の登壇、スライド枚数がめっちゃ多いわけではないけど、そこそこ枚数ある&1枚あたりの情報量を少なめに抑えている方だろうな、という自覚があるので

*2:これも自動化できないかなーって思ったけど、SpeakerDeck側との連携を考えるのが面倒くさそうだったので、まぁいっか!ってなった

*3:このくらいならngrokとかでも良いかな?とも思ったけど、プレゼンに使うマシンになるべく負荷を掛けたくない

趣味開発のための小さなPHPStan拡張を作った

このメッセージを見る度に「supagethiの世界では構造化コードなどいらぬのだ!」って脳内で再生される

「作った」というか「作らせた」、って感じですが。
Claude Codeさんにアイディアとゴールを渡して、さささ〜っと書いてもらってザッと手直しだけしてって感じ。

Packagistにも登録済みなので、お役立てくださいませ。

packagist.org

これは何

PHPStanを活用して、 コード品質の担保 を推し進めるための拡張です。

良い感じに、ユーザー定義関数や制御構文(if/elseif/for/foreach/while/switch、ついでにmatch式も)や、簡略化された条件分岐(エルビス演算子、NULL合体(代入)演算子、宇宙船演算子)などを禁止するものです。

一例として、PHPを書いていて最も使いそうなループであるforeach。こんな感じです。

<?php
// コレは駄目
foreach ($items as $item) {
    process($item);
}

// こう書いてください
$i = 0;
$count = count($items);
loop_start:
$done = $i >= $count;
if ($done)
    goto loop_end;
goto do_process;

do_process:
process($items[$i]);
$i++;
goto loop_start;

loop_end:

あとクラスも駄目です。

例外はない

更新があるのかは不明ですが、この記事を書いている時点で最新版がv0.0.1です。
phpstan-extension-installer等で導入してください。
・・・今、ずっと 〜if you want〜 と唱えながらこれを書いている感覚なのですが、まぁ言わずもがなってやつですね。

背景

3月にあるPHPerKaigiでの発表の準備をしています。

fortee.jp

パンフ記事の執筆が完了したので、本格的に準備し始めるぞ〜ってことで。
謎に勘違いしていたのですが、「パンフ終わったら1ヵ月で資料作らないと・・」という気分でいた所、なんと1月中旬〜3月中旬って、2ヵ月あるんですよね!!
そうなると、もう少し機能を追加したり作り込んだりできそうだなーという気分になり。

限られた時間で効率的に面白い発表材料を集めるにはコーディングエージェントを使いたい、そのためには生成されたコードに対して明確にOK/NGを出す機械が必要、じゃあ静的解析で構文チェックをできればいいな・・・

というのが開発の動機です。

やってみて

PHPStan自体が素晴らしいので、拡張の中身は簡単なコードで済むことが多い。
かつ、実装やテストで参考にできるOSSも十分に存在するので、あるべき指針の咀嚼も自律的に進めさせやすい。

このあたりの条件が整っていたこともあり、本当に「アイディアを具現化するのに掛かるコストが猛烈に下がっているなぁ」とも感じました。

コードそのものに価値を置きたい場面では「機械に代替させるのが勿体ないな」と思います。一方で、美味しいところ・面白さを感じるところだけを選り好んで摂取しつつ他は任せた!を可能にする手段があるのは、楽しさが加速しますね〜

スライドを作る時にそーだいさん風のやつを真似している #そーだいアドカレ

この記事は「そーだいなる Advent Calendar 2025」の 「13日目」 の記事です。 adventar.org

アカセさんの記事を読んでいて、「チケットまで取った映画を観に行かずにクリスマスイブに飲み明かした」ってエピソードで大変笑わせてもらった思い出が蘇り、自分もお礼(なのか?)に書いてみようというものです。

スライドのつくりを途中から変えた

スライドを作る時にそーだいさん風のやつを真似しております。

伝わるでしょうか、こういうやつです。

実際の例として、先日のPHPカンファレンス福岡での自分の発表資料を挙げてみます。
制作中の資料と、フォークして作られた最終版、それぞれのバージョンがあったので比べてみます。

★before

言いたい事を固める、っていうのは成功している

最初はこんな感じでした。
これで発表しよう〜となっても全然行けるとは思いつつ、もっと磨き込んでいって・・

★after

スライドを分割しつつ、1〜2行程度に留める
動きの中で、連鎖しつつもう1センテンス

このような形に。

やってみてどうだった?

話す内容や言及するフレーズを、ちゃんとスライド上に投影するか。あるいは、ポイントだけを載っけておいて一瞥で捉えられる程度に留めつつ、口頭で補足する割合を増やすか。
人によるところですが、自分の場合は後者の方が喋りやすいし、自然に流れを作れるな〜って。*1

他方で、「最悪、スライドの内容をそのまま読み上げればOK」な程度には情報を載せているのもポイント。本番は緊張もするし時間配分の問題なども諸々ありますからね。「何を話すつもりなんだっけ??」って頭の中が真っ白になった時のセーフティを作ります。

んで。
最初はそうした「話しやすさ」重視でやってきましたが、もう1つ重要なメリットを、何度か場数を踏む内に感じました。言語化の練度です。

スライドの制作中、もっと言えば内容を考えている途中には、「言おうと思ったこと」がフラットに頭の中にあるんですよね。情報は揃っている、が、立体感が無いみたいな。
そこから登壇内容の細部まで全体が揃ってきたり、素振りを繰り返す内に、オートクライン的な効果もあって、「ここが大事だ、ここで刺しに行きたいぞ!」が見えてきます。フラットだったものが立体感を帯びてくるような感じ。
そうやって煮詰められてくると、やっぱりスライド1枚1枚のまとまりが良くなるな〜と。ここまで来て初めて、「スライドの内容を1文まで絞り込む」ができる。

なので、これは「単に話す時に便利」に留まらず、「しっかり思考を蒸留できているかな?」を測るバロメータにもなったし、そこを目指しながらスライドを制作するぞ〜となったのでした。

2024年の3月から

きっかけになった体験がありまして。

PHPerKaigi 2024のあとに、ピクシブさん(とtadsan)のお力で開かれたafter hack的なイベントで、ゆるゆるとタイムシフト動画を上演していた時です。
その内の1つに、そーだいさんの発表もあった訳ですね。

このスライドの感じだと、

  • 喋る量をその場で調整しやすそう。会場の雰囲気とか持ち時間とかと相談しながら
  • 1番言いたいことはスライド上で凝集できている、なので資料としても利便性が良くなる

なんてことを思ったりしたわけです。
「ついここ数日で資料作りと発表を終えた開放感、自分なりの反省が頭の中にあるぞ」ってタイミングで降ってきたこの気付きには、妙に魅力を感じました。

その翌月にあったPHPカンファレンス小田原から、実践に移す事になります。*2

実際に比較してみると。
3月のPHPerKaigi・・はコード解説系が中心なので、その前のPHPカンファレンス関西を持ってきてみました。雰囲気が変わっているのが分かります。

★2月のスライド

箇条書き+フォントによる強調を使っている様子

★4月のスライド

スライド上のコンテンツはギュッとまとめつつ
展開を作る時には吹き出しを使ったり

どんな感覚でやっているのか

スライドの文字数は確かに減らしているので、「情報量が減っている」ことになるのか?というと、「意外とそんなことはない / そうならないように削ぎ落としている」ような感じがします。

例えるなら、「最近っぽいビジネス書で、太字のところだけを抜き出した」のがスライド上に現れるもの。それで本筋の8割以上は伝わるはず。ビジネス書って、強調部分だけを拾っても、要点を理解できるようになっているものが多いですからね。

それと合わせて、「本筋」「幹」「骨格」に対する「補足」「枝葉」「肉」に当たる話では、スライドレイアウトを変えるようにしたり。
前者が、ここで取り上げた「1,2センテンスをセンタリングして70pt以上でドーン」ってやつですね。後者は、図やコードが入ることが多かったり、箇条書きだったり。

あとは矢印や吹き出しを良く使いますね!
土台となっている内容と、そこに乗せたり連鎖させる流れを、構造化して捉えやすくなるのかなぁと思います。

さっき「立体感」と表現したパラメータに、これらの全てが与しているなぁと感じます。

スライド制作、発表の「体験」の変化でもあった

つくりの変更は、自分にとって良い刺激になっています。

雑に散らかす→発表や公開に向けて整える!という流れは、今も昔も変わっていないのですが。
何となく「完成した姿」のイメージが変わったことで、「ここ文字数多いな、もっと凝縮できそうだな」なんて嗅覚が働くようになりました。

「話す時に便利そう」でやってみたフォームが、準備や思考の過程にもフィードバックされているのですから、面白いなと感じます。

そして発表する時には、「お題をスライド上にドーンと映す」「そこに即興的に反応して、自分の引き出しからコンテンツを放り出す」っていう感じ。

1スライドに載せる量を絞りまくる、というと高橋メソッドもありますが。あちらは喋るスピードとスライドをめくるテンポが連動する感じですよね。
それに対して、例えば「1スライドに20文字だけ書いて、それで45秒喋る」というような、スライドを膨らませるような形になります。
そう考えると、スライドに載せることが「話す内容」ではなく「話し手である自分を刺激するもの」であり、スライドは「話し手(自分)とその中にある知識・経験に対する触媒」とも言えるでしょうか。

もともと発表者ノートにスクリプトを書いていない!っていう人であれば、発表時に口から出るのは、一定の割合でその場・その時点で生み出された言語表現という事になります*3
であれば、「自分が拾いやすい」ようにスライドを最適化していくのは、有利な状況を作ってくれるはずなのです。視覚から仕入れて処理される文字数は少ない方が負荷が低いし、本当に抑えるべきポイントの判断をミスりにくくなるのは、とても楽です。

そーだいさんといえば「いい話」なので

以前に#yokohamanortham で「いい話」について聞いたのですけども。

listen.style

僕の場合はいい言語化ができたなっていうのをいい話としているんですけども、
言語化をできるようになったなって思うようになったのはいつかって話ですよね。
僕、構造とか言語を認知するの得意側なんですよね。
それのアウトプットが、インプットは得意って話なんですけど、
アウトプットがついてくるようになったのを多分、
外で発表するのをめちゃくちゃ数こなすようになってからって話だと思うから、
多分27、8ぐらいからはてブがつくようになってきたなとか、
登壇良かったよって言われるようになってきたっていう感じで、
そういう風に自分の言語化ってこうすると人に伝わるんだとか、価値が提供できるんだって思うようになってきてからですかね

今回、自分でもこの記事を書いていて、ああしたスライドのつくりっていうのは「構造化して考える」ことの現れなんだな〜〜と感じました。
そういう上手い人の真似で「形から入る」をやってみることで、レベル上げに繋がるのかも知れません。

自分の場合は、「まず散らかして→整えて→磨く」という肯定を経た上で、最終的に「真ん中に良い感じな言葉をドーン」の姿になるのですが。
最初から言いたいことがハッキリしているし、それに耐え得る経験値や技量があれば、初手から「それぞれのスライドで押さえておくべきポイント」に基づいた構成ができるのかな〜なんて気もします。

ということで

#そーだいアドカレでした!
色々な「◯◯さんスタイルのスライド/登壇」をトレースしてやってみるの面白そうだよな〜なんてことも思ったり。

あんまりsoudai1025さん自身や思い出について書いておらず、自分の体験ばかりになって恐縮ですが、「こんな形で影響を受けているモノもあるよ」という話でした。
あと、「どうしたらあんな風に伝わりやすく表現できるのか」を自分なりに体験・考察してみた話でもあるかも知れません。

*1:同じスライドで滞在するのがあまり得意じゃない、一定のテンポでめくりたいな〜というのもありますが、これは完全に好みの問題ですね

*2:ちゃんとご本人も「真似させていただきやした!!!」って伝えました。深夜にラーメンを食べながら。もう暫く、あの時間は来ないかも知れないですが・・

*3:ちゃんと準備して頭の中に流れが入っているのは前提でありつつですが

2025年をふりかえろ〜 > 参加したカンファレンスとか出したプロポーザルとか

↓の続き。
daisuki.nichiyoubi.land

今年の「プロポーザルを出したなぁ」を並べてみましょう

今オープンしているCfPもないので(?)、全部並べられる
のんびりとブログを書いている間に北海道が募集開始していたぞ、後で何か出そう〜

出したプロポーザル

開催が今年(CfP期間が去年のものを含む)〜来年(CfPが今年中に締め切られたもの)って線引で。

2月

PHP Sessionless Conference

2025/02/08(CfP 〜2024/12/16)

ピセカめっちゃ楽しかったな〜、「全員が参加者!!」って感じもするし、ワークショップって楽しいよねぇ〜
空気感も素敵で良かった。またやりたいね。主催者の「言うなら自分でやていいですよ?」って顔が浮かぶけどw

ケイタMAXさんの発表でもおなじみ(?)のkazさんとも初めてじっくり話せたのがピセカの懇親会だな、今年めちゃよかったことの1つだ

出したもの 採否
「こんなテストコードは嫌ぁ〜ダ!ヤダー!」を祓う会 ワークショップ@100分 採択
初めてのRector Custom Rule作り体験 ワークショップ@40分

ディスカッション系のグループワークを自分がイメージする時に、「こういう話が好きな人と、飲み会で話題にすると盛り上がるんだけど、飲み会でやるには具体的すぎる、素面で色んな人とやりたいよな!!」ってものを出しがちかも知れない。

PHPカンファレンス名古屋2025

2025/02/22(CfP 〜2024/11/04)

名古屋、これで3年連続かな?で行っている地に!
雪だったなぁ。ひつまぶしも食べました。
ベストトーク賞の2位タイっていうのも、そういう所を意識していた訳でもなかったけど嬉しいものですね。思い出。

出したもの 採否
「考えるのを後回し」で磨く設計力 @15分
「複雑なコード」を図にして考える @30分
Edit PHP files programmatically feat. AST @15分
「Promiseって何だ!分からん!!」覗いて作って遊んでみよう @30分
『テスト書いた方が開発が早いじゃん』を解き明かす @15分 採択

ここで採択したもらった話は、前に人と話していたのがきっかけで「ちょっと考えまとめておこうかな〜」ってやつだったので、発表後に本人とも喋れて良かった。

で、その時に喋っていたことへのリアクションを、名古屋から帰って数日後のphpstudyで補足的に発表もしたり。その時の資料、自分が2025年に公開した中で閲覧数が1番多いって結果に。

もう少しテストを書きたいんじゃ〜 #phpstudy - Speaker Deck

3月

PHPerKaigi 2025

2025/03/21-23(記事CfP 〜2024/12/9, トークCfP 〜2024/12/30)

いつも楽しい最高のPHPerKaigi。
1月のパンフ記事、2月の2本、3月の本編、4月の小田原・・・っていうラッシュのど真ん中って感じで、このあたりからブログ書き切れていないんだよな

今年も #phperkaigi がやってきた!行ってきた!楽しかった〜〜〜記 - 大好き!にちようびは公開しているのだけど、自分の登壇・セッションの感想をかけていないなっていう。

コードゴルフ楽しかったな〜、プログラミングやっていると未だに「食わず嫌い」が発見されて面白い!

「次回は絶対に有給取ってday0からフル参加する!!」って心に決めていたのですが、春分の日→土日なんだよな有り難いw

出したもの 採否
設計に必要なモノは何だっけ / 設計に”Why"を宿す @20分
PHPでPromiseの世界を「完全に理解」する @20分
クイズ・PHPUnit 〜11にあって、1にないものど〜れだ〜 LT
「雑に作る」に学んで始める、自己満がらくた作り -それはとても楽しい- 40分
PIEとPackagist パンフ記事@4ページ
PHPによる"非"構造化プログラミング入門 -本当に熱いスパゲティコードを求めて- @20分 採択
ライフサイクルから理解するPHPUnit パンフ記事@8ページ

いま見返してみると、あんまり出せていないな。(色々な枠があって、色々な楽しみ方ができるのお得)

この「雑に作る〜」のやつも、すごい自分の中でホットなトピックで、ぜひ言語化したいぞ!!って思って書いた記憶があるぞ

この回は、今年全体の中でも1番くらいに印象深い。
自分で発表準備を進めていて、本当に自分に衝撃を与えたんだよなあ。
別に「出力できる内容が、登壇駆動で初めて出てくる」とかって訳ではないんだけど。「ちゃんと調べる」っていうのが本当に色々なものを持ち込んでくれる・・・

ドナルド・ノーマンの話とかを読んでいたりしたのが、ココでこんなに繋がることある???ってビックリしたり。
また新しく「プログラミングに興味を持った!」って言えるような機会だったなーって、9ヵ月後の今になって思っています。

4月

PHPカンファレンス小田原2025

2025/4/12(CfP 〜 2024/12/5)

小田原、楽しかったな〜!
参加ブログを書けていない・・・!けど楽しかったのは本当で、それがゆえにまとめきれない〜〜〜ってなっていた背景がありますね。

企画も言わずもがななんだけど、前日の宮小路散策ナイトでの会話と言うか出会いというか、が非常に良かったので今年最高級の思い出的な場面の1つです。
単純にお酒飲むのが好きだから美味しい魚をつまみながら気楽に喋るの最高〜〜っていうのがありきなんだけど、そこで「一方的に存在を知っていました、ハジメマシテ!!」な人とお話ができて、その時に聞けた話ってのがこれまた衝撃的に面白くて・・・ですね。

次回の小田原に期待することがあるとすれば、「また天気が良いと嬉しいです!!」です。*1
ランチ時にちょっと散歩しながらご飯屋さんに行くの、最高に良いので。

出したもの 採否
「影響が少ない」を自分の目でみてみる @20分 採択
PhpQuickCheckで覗いてみるProperty Based Testingの世界 @20分
「具体的」の反対は「ぼんやり」じゃない、あるいは漠然・曖昧の抱きしめ方 @20分
リファクタに 成功したら 褒めてくれ @20分
PHP: Haiku-text Preprocessorってなに? LT
設計がもたらすもの、もたらさないもの〜夢・現実・理想〜 @20分
オブジェクト指向は「つながり」で考える〜より良いコードを目指せるようになろう!〜 @20分
比べてご覧よ、フレームワーク〜DIコンテナ編〜 @20分
「PhpStormのGit GUIがこんなに便利なんだぞ」ということを見せつけたい @20分

PHPerKaigiのパンフレット記事としてリファクタリングの話を書いた後に、「この話をもう少し掘り下げたりパッケージの仕方を変えて、ちょっと話してみたいな〜」って思っていたものが、採択された結果に

「依存の”距離”みたいなのあるよねー」ってな話を交えているのだけど、距離の話はソフトウェア設計の結合バランス 持続可能な成長を支えるモジュール化の原則 (impress top gearシリーズ)でも同様の語彙が出てきたな。それをみて、ふふふってなった思い出

5月

PHPカンファレンス新潟2025

2025/05/31(CfP 〜2/2)

新潟もな〜〜〜楽しかったなーー! 前夜祭の後の懇親会のお店が素敵すぎたし、本編終わった後も朝まで酒を飲んでいたり、変える前に寿司もラーメンも食べたぞ

品川/新横浜以外の駅から新幹線に乗ったもの初めてだったかも!

出したもの 採否
「設計をすること」を見直す @20分
日常と抽象とプログラミング @20分
壊れても良いガラクタを作って遊ぶ、再発明が楽しい @20分
入門!PHPとASTとOPCode 〜いつものPHPの少し深淵を覗いてみよう〜 ワークショップ@90分 採択

めっちゃ楽しかった&準備に力を入れました!!の回だな。
この時に使うアプリ作ったんですよね。 資料も含めて使い捨てにするの勿体ないな〜〜〜って気がするw

ものすごいタイミング良く「JetbarainsのJunieがPHPでも使えるようになったぞ!!」っていうのと、さらに「さくらのAppRun(β)が使えるぞ!」と。

視覚的で手元で動かせる何かあればいいんだけど、それはめっちゃ大変そうだからハードル高いな・・・って思っていたのだけど。まじでvibesだけで欲しかったもの・描いていたものができる!!!となり。

  • 木構造をブラウザ上で見られて、それがPHPのコードのトークンと対応して反応して、っていうUI
  • tree-sitterを使って具象構文木をだしましょう

ってなやつ、このあたりを「自由に触ってね、何かが分かるよ〜」って出来たのはとてもデカい!!

あと、opcodeとかastをちゃんと調べる&出力可能にするためにphp-srcをハックして・・っていうのも、かなりAIに頼ってやらせてもらったり。

開催タイミングが1ヵ月早かったら、まるで違うものになってたよなぁ〜って。
例によって自分自身の勉強にもメッッッッッチャなったし、実施し他満足度みたいなのはとても◎
去年のphpconのワークショップで「もっとこうすれば良かった〜」って思った部分のリベンジって意味でも◎

【一切】PHPとASTとOPCodeに本当に入門できるのか理解する会【非公式】 - connpassで手伝ってくれた人たちにも大感謝!

6月

PHP Conference Japan 2025

2025/05/07(CfP 〜2025/06/28) 今回のphpcon、「後輩が後輩を連れて来る(面倒を見ている)」的な場面を見たのが印象に残っているかも。(その前、PHPerKaigi辺りでも連れてきていたはずなんだけど)。蒲田で餃子を食べたよ!

あと、after hack的なものが開催されたの最高だったなぁ ああいう雰囲気好きなんですよね。みんな疲れてるんですけど、集団で余韻に浸っている感じと言うか。

出したもの 採否
PHPの日時の表現に詳しくなろう LT
設計手法に詳しくなる前に考えたい、「なぜ設計ってするんだっけ」 @25分
「○○駆動」がなぜ役に立つのか? / プログラマとしての闘い方を見つめる @25分
「プログラマーに国語力が必要だよね」について、現代文(科目)の参考書を解いた上で分析する @25分
50分でComposerを作る <ライブコーディング> @50分
Composerが「依存解決」のためにどんな工夫をしているか @25分 採択

「日付表現」のやつも、「AST→パーサー→BNFとか調べているうちに、良くわからなかったPHPのDatetime文字列が、こんなに明確にわかるようになるじゃん!!」って思って出したLTなので、自分の中では今年っぽい1本だな

過去にComposrの内部実装を読む系の発表を何度かさせてもらっているんですけど、ココら辺は完全に「ちゃんと読みきれ なくて諦めていた」っていう部分。なので、 自分にとってはとても印象深い。
これまたコーディングエージェントやAI様々案件ですね。動画の自動翻訳的なサービスとか使って、SAT Solverなるものについて学んだぞー!の成果です。

関連してphpstudyでも喋った! Composerの依存解決 #phpstudy - Speaker Deck

7月

TechRAMEN 2025 Conference

前回参加した時の得も言えぬ良さ、あれをまた摂取したくて・・・で旭川へ。
今回は素直に「1番良かった発表はキーノートでした!」になるな、素晴らしかった。

小田原〜japnまで「ブログ書けてない、順番通りに出したいし・・・」でスタックしていたのが、どうしても「いやTechRAMENだけは今のうちに出しておきたい!!」で、ここから参加ブログ書けるようになりましたね。
(單純に、「次の準備が暫くないぞ」になった影響もとてもデカいけどw)

それと、前夜祭で複数のコミュニティによる”祭り”状態で勉強会が発生していたけど、自分はJava Doのものに参加し。色々と良い体験だったなー。
まず普通に講師のお話が上手で「こうやるんだ!!!」的な感じもあったし、内容も「ただの違う言語」以上に感じるものや共通しているものが見つかったり、で。

出したもの 採否
AI時代の技術の楽しみ(方)・学び(方) by きんじょうひでき | トーク | TechRAMEN 2025 Conference #techramen25conf - fortee.jp ワークショップ@40分 採択

そうか、1本だけだったんだ。
「どこかで発表しないで純粋に聴講と廊下を楽しむ参加者もいいよな〜〜」って思っているフシはあり、だとしたらTechRAMEN/旭川はピッタリじゃないかな〜〜!っていう思惑がありそう。
とはいえ、成功に向けて奔走している人たちがいるんだよなって思うと、少しでも盛り上げに貢献できないか・・・となって「プロポーザル出すことで少しでも何かを!!」っていうのもあるんだよな。

この回は、物理的に小道具を色々と準備して臨みつつも、会場を見てから話の流れややり方も含めて現地でアレコレを入れ替えさせてもらったなぁ。

それにしても、自分も参加したかった。ファシリテーションやっていると、人と話せない。いや話せるようなコンテンツにすれば良いんだけど、その技量が自分になくて。。

9月

大吉祥寺.pm 2025

2025/09/05-06(CfP 〜6/22)

参加するつもり満々でちょっと諸事情があった大吉祥寺.pmの登場だ〜〜

でも前夜祭の後に非公式に飲みに行ったのがめちゃくちゃ良かったです。
それがあるから、心から参加できてよかったイベント。

出したもの 採否
日本語で読めるトム・デマルコ本、8選 LT

折角参加するならあの壇上で喋ってみたいな、と思って出したプロポーザル。
これは「8”選”っていうけど、そもそも8冊しかないでしょ」っていうのが自分なりのポイント?みたいな所なんだけど、伝わらんよなぁ。

結局「トム・デマルコ」って名前にしかフックがなかったので、これで何をメッセージとして持ち込みたいのかってのが不明、自分が書いた良くないプロポーザルの代表作や〜〜って気もする。パット見で期待できる内容がない、というか。(デマルコの書籍について紹介してくれるんですね、は分かるだろうけど。Wikipedia読み上げるだけと変わらんというか。)

そうやって言語化してみると、「ちゃんと磨いてどっかで話してみたいかもな??」って気もしてくるな。テーマんポテンシャルをちゃんと引き出してリベンジじゃーー!的な

11月

PHPカンファレンス福岡2025

2025/11/08(〜2025/08/08)

福岡・・・!めっちゃ最近じゃんって気持ちと、あっという間に「随分前の記憶」になっているような。
とにもかくにも、また行きたいな福岡。ひらお食えてないんですよ、く〜〜〜

出したもの 採否
Rectorのルール自作で学ぶVisitorパターン @15分
自作JSONパーサーで学ぶ構文解析器生成入門 @30分
30分で用意するComposer 〜LIVE CODING〜 @30分
組織もソフトウェアも難しく考えない、もっとシンプルな考え方で設計する @30分 採択

1番プロポーザルの内容について「伝わるのかな?」って自信がなく、実際に(ゴメンナサイゴメンナサイ・・・と思いながら)提出後に結構プロポーザル本文を書き換えたやつが採択された。
「どうせ、この文字数で伝えようとしてもフワフワとして余計に伝わりづらくなって終わる・・・だったら、興味を持てるか?需要ありそう〜ってなるか?の得点が低かったとしても、せめて採択者が好き/嫌いは判断できるくらいにはしよう!割り切ってぶち上げるぞ!!」
つって。
しかも「タイムテーブル的に、なんか妙に重い意味のありそうな枠じゃない??」って感じで、不思議で仕方なかったんですけども。

ただ、結果的に、本当に色々な人に直接声をかけてもらったりオンラインで言及してもらったりで。今まで複数回の登壇機会をもらってきた中で自分史上最高のリアクション数になったなー。
スライド作りながら「どうやって話をまとめるの〜これを聴きたい人って何を求めてるの〜〜」と迷っていた自分は、それでかなり救われましたね!

PHPカンファレンス香川2025

11/23-24(CfP 〜9/15)

香川良かった!!めーーっちゃうどん食えたし、うどんってまだもっと食べたいから不思議。
海鮮ももっと食べたかったなぁ、来年も行くぞ。そーめん食べられるかな??まだ早い??

出したもの 採否
手軽に使える「抽象」の道具 @30分
ASTって面白いね!あなたがコンパイラじゃなくても、役に立つよ 30分
手軽に積ん読を増やすには?/読みたい本と付き合うには? LT 採択
symfony/mcp-bundleで、既存アプリケーションもお手軽にMCPサーバー化 LT 採択

いやー、LT2本やると思ってなかったw そういうのもあるのか〜!って。

カンファレンスでの(もしくは、ちゃんと時間が測られる場での)LTを久々にやることとなり、「5分で喋るのも結構楽しいぞ」って感覚を思い出したり。

ここでやった話、準備したり当日の反応をもらって「少し視点を変えて掘り下げてみても面白いかもな〜」とか思ったんですよね。
それがPHPerKaigiや小田原のプロポーザルへと姿を変えて飛び立って行きました。しかもレギュラートーク

2026/3月

PHPerKaigi 2026

2026/03/20 22(記事CfP 〜2025/12/10 , トークCfP 〜2025/12/22)

ということで、LT多めの今回。
パンフ記事、2ページのも出そうかな〜〜とか思ったりしたのですが、ちょっと12−1月に複数の記事を書けるかな・・?の自信が持てなかったので、1本だけ。

それ以外だと、20・40分枠をそれぞれ2本ずつなので、そんなに「すごい沢山出した〜」って感じも無いなぁ。
並列して開いているCfPがあると、何となく被らないように〜って意識が個人的に働いてしまう。気にする意味もないんだけど。

出したもの 採否
deptracモドキを作って、仲良くなるぞ! @40分
コンストラクタを通さずにオブジェクトを作る方法と、何故それが嬉しいのか LT
PHP Deprecated術 味比べ LT
PHP-TUIで初めてのTUIアプリ LT
PhpStorm Git便利術 LT
なるほど!Visitorパターン 〜Rectorをお供に〜 LT
PHPUnitの進化から、最近のPHPの進化をおさらい! LT
Official PHP SDK for MCPって何?どう動くの?読んでみました! 〜FWとして読み解くMCP SDK〜 @20分
プログラミング言語と文法の関係を覗いてみよう 〜自作DSLで追いかける、ソースコードが解釈されるまで〜 @40分
夢の無限スパゲッティ製造機 @20分 採択
遊んで仲良くなるAST: php-parserを使ってコードを生成してみよう パンフ記事@8ページ 採択

記事の方は、過去に他のカンファレンスでプロポーザルに使ったネタを、ちょっと形を変えたもの。
トークの方は、完全に去年の続きって感じのテーマ!

2026/4月

PHPカンファレンス小田原2026

2026/4/11(CfP 〜2025/12/23)

小田原はレギュラートークが20分枠のみだったので、そこに4本。
前回・前々回と「ちょっと役に立つ感じの話」を採択してもらっていて、自分の中でそういう場っていうイメージがあったり。
なので、個人的には同時期にCfPがあったPHPerKaigiと出す内容の毛色が違うかな〜〜って感じ。仕事していたりコード読んでたりの最中に思ったこととか考えたこと、がベースになっているものが多いなぁ

出したもの 採否
入門 return LT
PCOVから学ぶコードカバレッジ @20分 採択
コードリーディングから学ぶ乱読のための読書術 @20分
あなたのコードに必要な「違和感」 〜読み手に意図を届ける仕掛け〜 @20分
"1行分の意思決定"が、明日のコードの姿をどう変えるのか @20分
AIにコードを書かせていたら、自分の好みと向き合うことになった! LT
【最強の】継続的アップデート学習法【習慣づけ】 LT

蓋を開けてみたら、めっちゃコードっぽい話が採択された!
タイムテーブル見ても、他の話もそんな感じのする「ここでしか聞けなそうな話」とでもいうのか、普段そこまで覗きに行かないかもな〜ってものが多い気がする今回。

いやはや楽しみですなぁ

どんなものが多かったのかな

本数どんなもんだろ・・・って思ったけど、数自体は自分にとってはあまり意味があるものに感じないし、「今年のプロポーザル」ってどこで区切るの??も分からんから、別に良いか。
来年も、出せる時は出すだろうし、出すなら自分が本当に話したいことだろうし。

それよりも、内容から見た傾向を探る方が面白そうだなーって思ったので、そっちの話。

「AST」とか「BNF」とか、そういうので遊んでいた年だったな〜っていうのが分かる感じがする。
「読んでみた」系とか「作ってみる」系もあわせて、このあたりは「コーディングエージェントがかなり役に立ったので、自分でできること・踏み込める深さが増した」っていう効果は見て取れるかな。

あとは、「なんとなく感覚的には捉えられているものを、いい感じに言語化できないかな?」的な所は、やっぱりチャレンジとして好きなんだろうなぁ自分。抽象が〜とか影響が〜とかはそれ系。

せっかく一覧出したので、Claudeに食わせて「今年はどんな傾向だった?」って聞いてみた。

Claudeさんからのご神託

スパゲッティの魔術師、同僚にいたらマジで最悪そうだな。

来年はどうしていくか

わっかんね〜〜
その時々で、自分なりにフレッシュで「面白いな!/面白そうでしょ!」て思える話を出していくだけかな〜

*1:本編やその周辺イベントは、中の人達を信頼しているので最高のものを作ってくれるはず