6月22日行われた、PHPカンファレンス福岡に参加してきました!
PHPカンファレンス福岡には3回目、特にココ数年で「カンファレンスやイベントを楽しめるようになったな!」という状態では昨年・今年と2回連続での参加になりました。
福岡(博多周辺)、個人的にも旅行に行くくらいお気に入りな都市なので、めちゃくちゃ良い。
去年タイムラインを賑やかしていたラーソーメン、同じく去年食べ逃していた天ぷらに、最近やたら焼き鳥が好きな流れで鶏皮は無事にありつけました。
一方で、うどんの機会を今回も作れず・・・また行きたいですね。
鮨、ラーメン、モツ鍋に水炊きは何度食べても良いのですが行けず。あー、あとイカ食べたかったな。残念。
観光的な要素に触れている参加記も多いので、自分の場合はこのくらいにして、あとは技術的な面とコミュニティ・交流的な面について記していきます。
長くなったので、まずは自分の発表周りを
登壇させてもらった
何となく、自分の登壇の話は最後に回しても良い気がするのだけど、長い文章の後に・・だと埋もれてしまいそうなのでやっぱり冒頭に持ってくる。
昨年に引き続き、大変ありがたくもプロポーザルを採択していただき、登壇をしてきました。
内容とか、用意しながら考えていたこととか
データ構造とかアルゴリズムっていうものに「絶対に向き合った方が良い」「でも本当に苦手だ」という感覚が根強かった中で、
放送大学の科目履修を通じて「アレ?基本的なところだったら付いていけるようになってるかもな」なんて手応えを感じて。
なにか自分なりに説明できるかも、と思って出したプロポーザルでした。
いやはや、いかがだったでしょうか・・・
難しく感じたのは、先述の背景からして「自分にとっては新鮮な領域」だったので、何を言っても新鮮で面白くて凄い!!!ってなりがちなところを、
自分が届けたいのは何?自分が伝える価値のあるメッセージってどこにある??と向き合って、コア以外を削ぎ落としていくところですかねぇ
今回(も)一緒に登壇準備をしていた人に軽く話を聞いてもらって、
「ココが面白かった」「ここが混乱した」とフィードバックを受けたのが助けになっています。救われた。
言葉としてもらわなくても、あーココの反応が良いな〜とか、そういう言外のメッセージも含めて。
あそこで「そうだよね、やっぱこの話題って面白いよねー!」ってなってなかったら、スライドの方向性とかも変わってたかも
スライドとか
資料の構成に関しては、
- 小田原でトライしたのに続いて、「soudaiさんっぽい1文章をスライドにどーんと出して、それを問いにして回答を生成する感じ」を基本レイアウトに
- 高橋メソッド的に「スライドの一言を読んでいくのを繋げる」っていうよりは、スライドと会話するような感じ?かなぁ
- あと、聴き手の頭に残したいものは視覚に残していける効果。と同時に、これをやると、作ってる方も「ここで言いたい事は何?」に集中させられて、枝葉を削ぎ落とすに至る
- 伝えたいメッセージが見えにくくなりやすい・題材的にも期待される方向性やレベルが聴き手の経験や知識に応じてブレッブレになりそう → 最初に「想定」「方向性」を丁寧に示す
- どういう期待で聴けば良いのかな?っていうルール作りをするのと、「あ、私のための話だな」という感覚を投げつけて飽きが来にくいようにする狙い
- 比喩多め。引用や「定義」を少なめ。そのために、文献よりも自分の「イメージしているもの」を押し出すためにオリジナルの絵を盛り込む
- 図やダイアグラムはいつも入れるのだけど、絵!!!!が今回は多い
- ChatGPTで生成できるようになって、使える武器があったのは頼もしい。今後も使いそうだな
みたいなところが、今回の資料制作・発表準備で狙いと方策に据えていたところでしょうか。
あ、あとコレもですね
コード例、GitHubで管理してPRとかの差分で見せるの(普段見てるから)見やすくていいな#phpconfuk #hall_hz
— ℤ𝕆𝔼𝟛𝟘𝟚/ウィルゲートVPoE (@for__3) 2024年6月22日
diffでわかりやすく見比べやすいサンプルですてき #phpconfuk #hall_hz
— ちゃちい (@chatii) 2024年6月22日
「コード例を画面に写してるけど、説明したいのはどこ?」っていうのをショートカットしたくて・・・と考えている内に、「どう差がつくか・どう変わるか」を見せれば良いのか、あれ?それってPRのChanged Filesじゃね??みたいな。
コレ気づいたときにメチャクチャテンション上がりましたww
— 今日も誰かのにちようび(おいしい鮭親子丼) (@o0h_) 2024年6月22日
「形状で認知負荷が変わる」の例です(?)
で、「diffで済ませる」をやりやすくするためにphptを・・・・PHPUnitとかassertだとまどろっこしくなりそうだったので。
それと、「やっぱり今回はコードを見て貰う必要があるな」と思ったので発表開始前の接続テスト・開始時間待ちで「待機画面」を用意して投影していました。
もちろん、この段階でforteeにもリンク済みで。
色々と工夫できて楽しかったかなーって思います。そして、喋っていてもとても楽しくリラックスして発表できました。
総じて良い時間だった・・!改めて機会をくれたスタッフの方たちや聴きに来てくださった方たちに、感謝申し上げます。
いただいた感想とか手応えとか
にしても、今回は発表枠が「オープニングの後のトップバッター」ということで。
phpconfukが初めての人や、(委員長のびきニキさん中心に力を入れてそう?となると、いつもより多くなりそうな)カンファレンス自体やテックイベントが初めてという人にも、
「なんか興奮をさせたい」というか「あ、イベントって面白そうだな。今日1日楽しみだな」って気分にさせられたらメッチャ良いよな〜〜!なんて、
自分の中で(裏)チャレンジがありました。
(まぁ、やることも出来ることもあまり変わらないんですが。。)
そんな背景もありつつ、
後から「聞きましたよ!良かったです!!」って声をかけてもらったり、スタッフの方(でセッションにいなかった方)に「面白かったらしいじゃないですか!」「良かったって聞きましたよ!」と話しかけてもらったりして、心のなかでガッツポーズをしてましたよわたしゃ。
なんだか、スタッフの人に褒められる?喜ばれる?のって妙に嬉しいな。
プロポーザルを採択してくれた人たちにも集客や会場運営を頑張っていた人にコレで少しは恩を返せたか・・?だったら良いなぁ
↓のpostの裏には、そんな気持ちもあったり。
発表褒められんのクソ嬉しいなあ泣いちゃう
— 今日も誰かのにちようび(おいしい鮭親子丼) (@o0h_) 2024年6月22日
声を拾って見るターン
コレでみています。
ちょいちょい、制作に大変な時間がかかったであろうイラストが入るの好き#phpconfuk #hall_hz
— cocoitiban (@cocoitiban) 2024年6月22日
きんじょうさん渾身の作画が見られる #phpconfuku #hall_hz
— Ryo Tomidokoro (@hanhan1978) 2024年6月22日
ふふふ、ありがてぇ。
↓を使いました。
おまけ: コレはボツ画です、何の話をしたかったか想像してみてくださいね!
全然関係ないけど、海外の登壇者ってゆるく書いたイラスト使いますよね。アレは時間かけて書いてないんだろうけども。
やってみたら何故こうも違うのか
課題外在性負荷が高いというやつ #phpconfuk #hall_hz
— おかしょい (@okashoi) 2024年6月22日
コレ見た時に「あ!!それだ〜!」って思ったんですけど、
いや今回は全体的に専門用語?みたいなのを避けてるから、ワードとして盛り込まなくて結果オーライか・・・
一応、個人的には、今回の内容の参考文献として↓とかも含まれてるかなーと思っています。
#phpconfuk #hall_hz Ask the Speakerぶん投げ すき
— AHOXA/ライガー (@ahoxa1rx) 2024年6月22日
本当に登壇が上手い人なら、話すべきことはしっかり時間に収めるんだろうけど・・・力不足・・・
という一方で、Ask The Speakerに誰か来てくれると嬉しいので「さぁ!!Welcomeですよ!!!」っていうアピールだったりもしますw
わか・・わかる・・・データ構造の話ってそこだろうよ、っていうのを端折っているという暴挙ですよね。。。自分でも思いついた時にゾットしましたもん。今、一番大切なところが端折られたような気がする(w#phpconfuku #hall_hz
— cocoitiban (@cocoitiban) 2024年6月22日
しかしココに触れると「PHPでこの抽象データ型の実装について、こうなっています」的に必要な前提知識が2,3個増えそうな説明をして話を繋げないと、断絶感が増すかな〜・・?という。
array でできるんだから、arrayでいいじゃないか! (白目 #phpconfuku #hall_hz
— Ryo Tomidokoro (@hanhan1978) 2024年6月22日
このスライド、端折ったんですよ!!!
くそう、きれいにブーメラン決められたのか、惜しい・・・
debianの話ってしたっけ・・?って思ったらdebanだった。私が始めた物語だった。夢と冒険のdeban #phpconfuk #hall_hz
— 青ごへいもち (@blue_goheimochi) 2024年6月22日
#phpconfuk #hall_hz splこんなに色々あるのか
— た҉͜け҉͜て҉͜ぃ҉͜𓁈𓈷 (@takeokunn) 2024年6月22日
う〜ん、あるっちゃあるような。無いような。
#phpconfuk #hall_hz laravelのcollectionを適当に引き回しがちなの反省してる
— た҉͜け҉͜て҉͜ぃ҉͜𓁈𓈷 (@takeokunn) 2024年6月22日
私はcakeのHashとCollectionクラス大好きなので同じ穴のムジナ・・・
まぁ、困ったら削りますよねーAPMとか見て「おっ!」ってなったりする事はあったり。
あとは勉強させてもらったスライドもついでに貼っておきます。
データ構造は本当に面白いよ。新しい目線が手に入る。 #phpconfuku #hall_hz
— Ryo Tomidokoro (@hanhan1978) 2024年6月22日
これ、知ってる知らないは、まさに引き出しなんだよな、ドメインをモデル化していく仕事の中での武器だとおもう#phpconfuku #hall_hz
— cocoitiban (@cocoitiban) 2024年6月22日
「中身知らなくても使える」は実装で大事な観点。「でも設計力の底上げには中身を知っておくと良い」と感じた。#phpconfuk #hall_hz
— ykawasaki683 (@ykawasaki683) 2024年6月22日
そうですよね、そういう感想を持ってくれた方がいることに救われます!!
プロポーザルを出した時点ではオチまで考えられていなかったんですけど、
たぶん1番伝えるべきところは、こういう所かもなーってスライドの終盤を作っていて思い至りました。
「見方が変わる」って経験、すごく貴重だけどめっちゃ強力なので、きっかけがあるなら飛びついていきたいよなーって気がします。
自分にとってデータ構造とかはそれに近い経験になった直近の気がするし、古くはミックさんのSQL入門書とか。*1
これとてもよかった。話の運びと例え話が秀逸で「SPL のデータ構造と仲良くなると幸せになれそう」と思わせてくれる話だった。#phpconfuk #hall_hz https://t.co/RIVPRBXnYO
— 増永 玲 (@msng) 2024年6月22日
増永さんですよ!!
えっ、すごくないですか、10年前の自分見てる〜〜!??
今回のphpconfukのハイライトの1つ、(このpostや)Ask the Speakerで直接お声がけもらったこと・・
PHP Matsuri 2013 で同じテーブルに居た人の名前を見て「あ!!知ってる人だ!!」ってドキドキした記憶があるので(全然話しかけられなかった)、その時には認知していたはず。(何キッカケだろ、HTTP_OAuthの話とか調べてたりかな?)
そんな人たちと交流出来ているのだから、コミュニティって凄いなーと改めて思ったり。
ここがとても良いと思いましたhttps://t.co/N0jWtdHyWz https://t.co/67JCHkRmeW
— 央 (@sogaoh) 2024年6月22日
(すみません、当初の公開資料=発表用のつくりだと90枚目だったページ、今のバージョン=アップロード用のつくりだとこっちになっています・・!)
sogaohさんも言及していただいて、とてもありがたい。
2月の#phpkansaiでも自分の発表資料を拾ってくれて、すごく嬉しかった。
Ask the Speaker+αにて
今回、Ask the Speakerずっと喋ってた楽しかったw
待ち時間には隣にいた新原さんともお話できたし(これもまた、「10年前の自分、みてる〜!?」案件だよなぁ。)、発表を聴いて質問しに来てくれた方もいたりで。
ありがたいことです。
”廊下”でも感想をもらったりして、発表に対する反応ってやっぱり貰えるとホクホクしますよね。 うっれしい〜
内容に関して直接「どう勉強すればいいですか?」や「実用面でどうですか?」という質問を、興味を持ってしにきてくれたのも非常に有り難かったですし。
※ 学習材料に関しては、参考資料を資料の最後に載せています。国内外の大学が公開している資料とか、Udemyなんかも良い教材あるんじゃないかな〜〜って気はする。
あと、内容というよりは発表について、「具体的な話や抽象の話を織り交ぜるのが上手だった」とか「笑いの取り方*2がちょうどよくて、嫌な感じがしない」なんて言ってもらえたのも、ありがたいなーと思ったり。あと「例えがわかりやすかった」とか。
他にも「プログラマーではないから*3、後半の具体的な話はついて行けなかったけど、前半の話が面白かった!って言ってました」という伝聞ももらったり、
確かに想定していなかったけどそういう反応も生まれ得るのか、なるほど・・!?と驚いたり(喜)。
補足: 詳しい人に聞いてみた
懇親会にsjiさんがいらっしゃってたので、「ウルトラスーパーチャンス!!!!!!!!」と思って、分かんなかったことを聞いてみました。
2つあって、
- arrayとSplDoublyLinkedListって、push操作はarrayの方が遅いんじゃないの??なんで??
- SPLとそれ以外ってどう違うのよ
という。
1つ目は、hanhan1978さんにも同じ内容を聞いたこともあって*4、「それだけPHPはarrayの高速化に工夫を重ねているからねぇ。SPLは・・(遠い目)」という回答もいただいていて、ソレはありそうだよなーと思いつつ。
ちなみに、ChatGPT=sanに聞いたときはこんな感じ。
で、結論としては「メモリの確保時に倍々でとっていくから、再確保のオーバーヘッドがそんなに大きく出ない」といった要素があるそう。
この辺りの話だったりするのかな!?
2つ目、歴史的経緯とか現状について教えてくれたのでありがたかったw
コレまたhanhan1978さんにも同じ質問をぶつけたことがあり「何となくだった気がする」との回答で*5、その時点で「今の運用とか明確なルールみたいなのはないんだろうな〜」とは予感していたのですが・・・
PHP5において「OOPっぽい機能を増やす」という流れでやってきた、他の言語を参考にして輸入してきた感じとかもありつつ、今だとどうにも扱いが宙ぶらりんになっていそうな雰囲気も・・・・ということで。
これは、先の「arrayは手を入れられていっている」のに対して「あまり興味を持たれていない」という事にもなるので、品質面でも差が出ている様子もあるのかな。そんな話も聞きました。
まぁ、こんな発表をした自分がいうのもアレですが、用法用量を守って・・・・・系なのかも知れない。
この記事とかヒントになるのかな。
”allowing your classes to interact with the PHP engine in a much more seamless manner” とかは、その存在意義を端的に語ってくれている感じはするけれど。
終わってから
コレはただのメチャクチャ自慢なんですが、感想記事に自分の発表を挙げてもらっていて、すんごい嬉しいわけです。
(とはいえ、お二方とも前から認識されていた方たちなので、ちょっと有利な評価を頂いてはいるかも。)
Ask the Speakerや懇親会でも「実際に使ってますか?」「使って良いんですかねぇ」という質問は複数受けたので、そこは一定の情報を提供したいなーって気持ちに。
今回の発表準備にあたって、OSSでの実装例は各クラスについて調べているので、話せることはあるはずなんだよな。
油断していたらスッカリ長くなってしまったので、ひとまずココまで!
参加者としての感想を別記事で書きます!