PHPカンファレンス沖縄2024 に参加してワイワイ!記/参加編 #phpcon_okinawa

9月28日に、沖縄県那覇市で行われたPHPカンファレンス沖縄2024に参加して来ました。
楽しかったし色々な刺激に元気をもらえたし、今回の遠征も素敵な時間を過ごせたな〜〜〜が一言目に飛び出してくる感想 😃

主催のカンボさん初め、スタッフの方々お疲れ様でした。ありがとうございました!
それに素敵な発表を行っていた登壇者の皆さんや自分と交流してくれた皆さん、ありがとうございました〜〜

ということで #iwillblog !の記事です。

phpcon.okinawa.jp

自分の登壇について

CfPにいくつかプロポーザルを出して、ありがたくも採択していただけたので張り切って登壇してきました。

fortee.jp

トークの狙いとしては、こんな風に書かれています。

「昔あったオートローダー」たちを見に行ってみましょう! 今や当たり前の「ComposerとPSR-4」以外の世界に触れることで、 日常を支える「How」についての解像度が上がるかも知れません。

今回の話は、プロポーザルを書いた時には「結構”どんな風に料理するか”の自由度は低めの、淡々とした内容になるのかなー」なんてイメージを持っていました。
が、実際にアウトプットを揉み始めると「中身が決まりきっているようで、意外と色々な切り口があるな・・!?」って事に気づき。

提出内容に沿うためには、材料として「オートロード」「CakePHP2, Yii2, 旧Zend Framework2」というのは確定している訳です。
その上で・・・せっかく自分が話すんだから自分なりの面白さってどうだろうな〜、”What to Say”はどこにあるかな〜
なんて苦しく楽しく考えながらの制作になりました。

PHP基礎としてのオートロードを知る」が良い?歴史的な経緯やコミュニティの努力・適応として「オートロード」を切り口にしたストーリーを伝える?ベタープラクティスを見出すような意味合いで、パフォーマンス面やメンテナビリティに注目した考察を与える?etc..

単純に「実在するコードを横並べにして比較する」という題材でも、そこから見出だせるメッセージは色々あるもんだな〜違いを生みそうだぜ!!なんて話は、自分にとっての気付きもあったし楽しかったポイントですね。

最終的に、10分という尺の中で&プロポーザルの文面も踏まえると*1
「知ってみる」「分かった気になれる」「詳細な中身まで掌握するところまでいかなくても、そういう世界観があるんだなって所までは受け入れられるようになる」
を中心に据えていくのが妥当そう〜! と判断しました。

時間があればもっと膨らませることは容易、尺が短い時にスライドの「画作り」や言う・言わないのデザインをどうしていく・・?は
今回の苦心ポイントではありますが、上半期に比べて準備期間に余裕があったので、
久々に大きく構成を変える = 自分の中で「スライドをフォークする*2」が発生したり。

他に工夫した点としては、福岡での登壇時にも行っていた「このスライドではこの文字サイズを使います」を事前に投影しておくやつ。
あとでmsngさんにも「アレ良いね」とお褒め頂いたので、とてもホクホクしてました。

参加の感想

今回の参加を通じて思ったこと。

最近の自分は、割と「もっと新しいことを知りたいな」に興味が寄っているのかなーと思いました。
「◯◯をうまくやる方法」「明日から実践してみたくなるようなワクワク」よりも、「咀嚼が必要だけど自分が持っていなそうなもの」とか「見方を変えてしまうような考え方」みたいな。
思いも寄らない事や聞いたことがない概念を提供する発表を浴びたいな〜〜〜〜という感じでしょうか。

これは、ココ数ヵ月ずっと日常的に「強くなりてぇ〜〜」「自分のパワーだって言えるものが欲しい〜〜」「一皮むけてぇ〜〜」と心底思わされるようになっている背景があり、そのための方法としても目が向いているのだと思っています。
今の地点から「コレまでの延長線上」では到底だめだな、と感じ始めてしまったので、起爆剤に飢えているのですね。

逆に言えば、「今までも自分なりに考えてきたものを、もっと上手くやるための方法」とか「概念として知っている話の、実務レベルや実践的な話」っていうのは優先度が落ちるのかなぁ。
(こういうのは、流行りとか一過性の気分によるものなので、このフェーズを超えたらまた違うものを欲するんだと思う)

そんな中で、

あたりが、今回の自分にとってのこの部類。聴けて凄く良かったな!と思います。(順不同)

PHPTLS/SSLを実装してみた

TLS/SSLを実装してみた」は、最近何かと「ガラクタでいいから色々と自作するのやってみたいな!」って自分にとってドンピシャでしたし、「RFCに答えがある」がカッコよく感じられた&しびれました。
絶対に面白いですもんね、、、その「難解で退屈だった」ものが「今はめちゃくちゃ味方、そこに爽快感すらある」ってな体験。
アドレナリンどばどば出そうだなーーーって気がしますし、そういうのって”やった人”しか手に入らない快感でもあると思うので。

内容としても「ちゃんと要素要素を説明している」って印象があり、当然っちゃ当然なのですが「コレは本当に自分で理解をしている人が出来る話だな」って感じもワクワクしました。
いわゆる「整理されているがゆえに簡単・単純に見える」「ピンポイントで最小の説明だけで構成されている」的なやつ。

↓「自分にとってドンピシャ」なのはこういうことで

↓「なぜそういうことをやりたいのか?」はこういうのを期待しているから

phpcon japanでも改めて話が聴けそうなのでメッチャ楽しみ!!
その時には、自分も1つ「迂闊に作ってみた」が形になっているはずなので、車輪の再発明愛好家の1人として廊下でお話したいです🤩

ドメインと向き合う - 旅行予約編

これは最も期待していたセッションの内の1つ!

それで序盤の方を聴いた時点での感想が↓

最初は「期待していたよりもスコープが広そう、コードに近い設計の話*3が聴けるのかなーなんて思ってたけど、それよりもずっと上段から始まったな」という印象を受けました。

ただ、その「上の方にある諸要素」こそが「アーキテクチャに影響を与えているんだ」という所には、大きな気付きをもらった感じがしていてます。
序盤において「最初の入り方が”遠く”ないかな・・」と今まさに自分の中に反応として生じていたものが、終盤には「その”距離が遠そう”と感じてしまっている感覚にこそ、注意しなければならない」という教えのインパクトへと反転していました。
もっと強く言えば 「ビジネスの作り方を意識しないでいると、ソフトウェアアーキテクチャが出来ることが限定されている状態に陥る」 、そんなメッセージを受け取りました。

システム思考や最近読んだヒューマンエラーを理解する: 実務者のためのフィールドガイドでも、システムのフラクタル構造・全体性のような性質について言及されているものが自分にとっては大きな影響を与えており、つまり「外の活動やそこからの力が、内部の構造や動きに影響を与える」ような話があります。
決して境界線の内部だけで物事のあり方や形が決まっているのではなくて、それを取り巻く環境から、問題etcが再生産される・・・みたいな世界観。

こうした概念たちと非常に共通するものを感じました。
言われてみればコンウェイの法則だって根は同じだと思います。すなわち、やはり何かの形を決める・うまく付き合うためには、その外にこそ答えを求めるべきなのです。

今までの自分は、「組織」「(狭義の?)プロダクトの分析」がソフトウェアアーキテクチャについて影響をもたらす!という視点くらいは持ち合わせていたつもりですが、(いわゆるマーケティングとか経営みたいな分野での)ビジネスの分析との接続を〜という視点は無かったので、すごく面白かったのです。

とか思っていたら、後でアップロードされていた資料も拝見したら、「余談」で言及されているスライドで正にここに触れていそう。
「そうだよなあああ」と叫びそうになりました。

PHPアクターモデルを理解・体験しよう

先日のFunabashi.devで話を聞かせてもらってから一層興味を強くしていたアクターモデルの話。
これが、最も期待していたセッションの内のもう1つの方で。

改めてワクワクしながら「こんな面白そうなスタイルがあるんだな〜」とか「自前でコレを実装したの改めて凄い。。。」とか思いつつ、

「聴いているだけではなくて手を動かして遊びたい!!(そうしないと、これ以上の理解は享受しにくそう)」という想いを新たにしたので、PHP Conference Japanでのワークショップがより一層楽しみに。
(でも、それまで時間がありそうだから自分でも勉強できそうだよねー)

既存の非同期処理的なもの(例えば、凄い雑だけどcurl_multiの処理とか?)を代替できたりするもんなのかな。

・・・今コレを書いていて思い出しましたが、過去に簡単なサービスをADRで実装したことがあり、それもytakeさんの発表で「なんか面白そうだ〜〜!」って思ったからだったなぁ。

実践 Action Domain Responder - Speaker Deck

清家さんの発表もどうなっていくのか見守りたいですw

PHPでアクターモデル Phluxorを利用した分散システム入門 by 清家史郎 | プロポーザル | PHPカンファレンス名古屋2025 #phpcon_nagoya - fortee.jp

懇親会とか

P山さん

初日、「前夜祭は間に合わないけど誰かと合流できれば嬉しい・・・」って気持ちだけ持参していたのですが、P山さんにキャッチしてもらってめちゃくちゃ救われましたありがとうございました。

前日に現地で誰かと交流しておくと当日のハードルが少し下がる、この「少し」が発表にも影響しそう。。。ってな気もしています。

当日の懇親会、その後の2次会・・・いやあれはカウントに入るのか・・・?でもお話をさせてもらって、中には真面目な話もあったり強い刺激となるような話もあったりと、とても楽しかったですありがとうございました。

あと、前日のテーブルで話してた(w/tomzohさん達)「どうやって2次会のお店を見つけているのか」という話題から「才能に見えるものの裏には努力がある」に発展していったくだりが面白かったです。本人覚えて無さそう。

2次会

本人のnoteでも言及されているけど、びきニキさんと話している中で色々と思ったり考えさせられたな〜って感じており、こちらとしても非常に受け取るものが多かったです。

zoeさんと「1on1風を装って?若者から話を聞いて、お互いにどんなフィードバックや問いかけを返すか」っていう遊び方をしてました。
琉球王朝、中盤からはメガジョッキハイボールを飲みながら。

似てるところや共通するところが多い、やっぱり理解できるところがめっちゃ多いな・・・・!とは感じつつ、アプローチの仕方とかゴール設定の仕方とかで違いが出るんだな〜という。
「いまのは◯◯点でしたか?」「◯◯点でした」で不毛なバトルをしていて楽しかったです。
(やっている2人は良いとして、巻き込まれた方としては厄介そう・・最後までお付き合いいただきありがとうございました・・・)

zoeさんとはまたどっかでバトルしたいです*4

そんな感じの遊びも交えつつではありましたが、一連の会話からは自分としても受け取るものが多かったです。
「自分にとってカッコいいと思えるエンジニア像はどんなの?」って質問をびきニキさんから受けたのは考えさせられたし、色々と聞きながら「あー、自分も最近はちゃんと凄い(≒できる)プログラマーになりたいんだな、なっていかないとな」っていう感覚が明確になったりなどしました。

他、勿論こんな所に詳しい事は書かないですが、やっぱり自分なりにチャレンジする意欲を持っている人の話は聞くと背筋が伸びるものです。
それこそ、自分が「かっこいいエンジニア」と言われて思い浮かぶ人たちには共通してそんな側面があるかも知れない。

さっき書いた「最近の自分はこういうセッションを聴きたがっている」っていうのは、ここでの会話を経て初めて明確になったものだったりします。
なんとなく「聴きたいやつ・今の気分で好きなやつ」と「それ以外」があるなーって感覚はあったのですが、点が線になった感じ。

ただ惜しむらくは、近い所に後藤さんがいらっしゃったのにあまりお話できなかったこと・・・次こそ・・・

3次会🥩

毎回どこかでじっくり話すそーだいさん、今回は「締めのステーキ」で発生したのでフラグ回収ですね。
次は蒲田かな〜

4次会🍹

「かんぼさんと愉快な仲間たち」って感じで楽しかったです
ブログの記述が短いのは、記憶がないからとかではなくて書ける内容が無いからです!

いろいろな人

段々と「関西にも参加していて」「お久しぶりです、香川以来ですね!」「福岡の時にはお話できるタイミングがなかったんですけど〜」といった感じに、ニアミス・再エンカウントも増えてきているのは面白いな〜なんて感じました

misc

あっっっっとまじで思ったんだけど、ネームプレートずっとカバンに入れておこう。
「すみません、本日ネームプレートを切らしておりまして・・・」っていう社会人風挨拶を思いつけたのだけは収穫だったけど、持っていっていた方が全然良い。

懇親会でプロフ帳みたいなのほしいよな〜〜共通点あれば話せるのに共通点を見つけるの大変じゃん〜〜〜みんな小学4年生くらいに戻ろう〜〜〜〜って気持ちになる。

総じて

コミュニティ、色々な同世代からも上の世代からも下の世代からも受ける刺激が多いな〜というのが自分にとってはありがたいですが、
今回のPHPカンファレンス沖縄とそれに付随する遠征では、特にそうした側面を強く感じました。

今の自分のモードみたいなものは、もちろん影響していそうですが。
っていうことは「今の自分に大事な時間だった」とも。

すごく良い機会をもらえた感覚で、エネルギーが充填されました。
自分も誰かにとって「刺激的」である人間になれたら嬉しいかも。

沖縄

小6の時以来だと思うのですよね沖縄。
こんな感じでした

移動圏内も手段も違ったから・・というのはありつつも、それにしたって記憶をかすめるものが少なかったので、
もしかしたら「小さい時によく行ってたあそこ」すらも改竄で、せいぜい1,2度しか行ってなかったりするのかな〜なんて事を考えたりもしました。

「公設市場(たぶん)の2階(たぶん)に家族でよく(たぶん)行ったソーキそば屋(たぶん)があったよな・・・」が、
「別の場所に1回だけたまたま行った、ソーキそばもある何らかの飲食店」だったりするのかもな、みたいな。

いずれにせよ移転前の記憶だから今は辿れなさそう。

記録

これは自己紹介なのですが、「好きな食べ物は何?」と聞かれても、そこまで順位が高くないので恐らくソーキそばとは答えないのですが、多分6食連続とか5日連続でも問題はないです。
そんな自覚はあったのですが、実際に自分で選んだ飯屋は全部ソーキそばだったんですね。

なかざ家、自分が知っているソーキそばと違うな・・・と思ったのですが、なるほど豚骨主体っていうのもあるのか。 okinawasoba.hatenablog.com

初めて食べたのですが(鰹出汁のばっか永遠に食べているので)、おいしかったな〜。
また行きたい。
「ラーメン好きだけどせっかく沖縄きたし・・」みたいな人、満足を得られるかも知れません。

*1:「考察します」ってより「紹介します」ってトーンで作文しているな、と解釈をしています。採択されたのはこの文面のはずなので、そこから外れないように・・っていうのは意識していること

*2:実際、別のファイルとして保存して作業する感じ。バサバサとスライド削ったり入れ替えるなどしている

*3:パッケージとかレイヤーとか

*4:飲み会でいつもこんな事をするのは厄介な振る舞いになりそうなので、快諾してくれる相手がいればの話

プロポーザルを書いてる

↓↓詳細

雑な文。

CfP期間が始まったよ〜ということで、今回もワイワイとプロポーザルを書いたり出したり考えたりしているのだけど、その時に何となく思ったことを書き残しメモ。

昨年までは、「マネージャーになって仕事でコード書かなくなったので、話せるネタが無くなっちゃったんです〜」というのは自分にとってはダサい!!という気持ちがあり*1、ちゃんと出し続ける事を大事にしたいなぁって思っていたり。
社内で他人に「出してみようよ〜楽しいよ〜」って言う状態ではありたかったし、そうするのに遠慮や後ろめたさがあっても嫌だし。

昨年末から今年の上半期は「月刊PHPカンファレンス」の到来に依るCfPマラソン地味たところもあり、この際には「多重応募をしがちな自分だから、出せるものを片っ端から出しました!!ってなると荒らしみたいになりそうだから、同一ネタでの重複応募は避けよう〜」というセルフ縛りを設けて臨んだり*2

で、そのどちらの時期も抜けて今回、また「話たいことを書いて出すぞ〜」をしているのだけど。
そうしてみると気付くのは「何かをきっかけに脳みそがグルグル動いたり、盛り上がった話題がトークネタに昇華しやすいよね」っていう。改めて。
「おぉ、そういうことなんだ」とか「なるほど、つまりは・・・」みたいなリアクションとか思考が、自然と湧いてくるようなやつ。

自分なりの試行錯誤からでもいいし、本や他の人の発表を見たり聴いたりからでもいいけど、何かの「盛り上がり」をきっかけに「話したい・考えたい」に繋がるなぁ。
そういう意味では、「他人と話したり、誰かに教えたり」という機会から得るものは大きい。

そう思うと、「マネージャーになったから登壇できるネタが無くなった」は、あまり信じなくていいな〜ってやっぱり思う。めちゃくちゃ人と喋るし。
逆に言うと、プレイヤーだろうと他の役割だろうと、職場内で色々なコミュニケーションとか議論が生まれている環境では、ネタを発掘していくのにとても有利なんだろうな。
他方で、ごりごり「現場の第一線でコード書いてます」であっても、その働き方(コミュニケーションのあり方とか技術雑談的なものとか含む)や思考負荷によっては、インスタントにネタに「昇華」できるものを見つけにくそう。

っていうのを、77webさんの fortee.jp

最近、チームに新しくjoinしたメンバーと議論したのをきっかけに、私が自分なりに定義し直した

を見かけて思ったりした。
向上心があって「今は分からないけど理解できるようになりたい」的な人が身近にいると無限プロポーザル製造マシンになれそう。


あともう1つ、「仕事でやっていることと外で話せることは違っても良い」っていうのも思う。
コードレビューと同じ。「自分の事は棚に上げて話す」みたいなのも大事じゃないか。

というか「社内勉強会みたいなのがあったとしても、こんなの話す価値はないだろうな」っていうのがありそうだなーとか
「社内の人に言うのは気が引けるけど、社外の人に話を聞いてもらいたい!!」っていうのもありそうだなーとか。

嘘をついて良いとか話を盛っても良い、とかって事ではない。語る内容についての誠実さは備えている必要がある。
誰向けの話なのか〜とか、どういう人が聴けると嬉しそうなのか〜〜とか。届けたい先が誰か?によって、話たいことが変わるはず。

実際、今の自分が「コード品質」とか「生産性、開発速度」とか「仕事術」「コミュニケーションの工夫」とかって話を同僚の前でしようものなら・・・っていうのは恐ろしくて考えたくもない。やるとしたら25分間沈黙土下座のほうがふさわしそう。

でも、「コミュニティに出ていく」っていうのは、自分じゃない誰かに届ける面白さがあって、その「誰か」の範囲も多様性もでっけぇですからね。発表する価値は生まれると思うし、もっと言えば「発表を聞く価値があったか」は受け手の中で生まれるものだし。
「身近な人にすら話す価値がないこと、話せないこと」でも胸を張ってやって良いじゃん!!!!!って思う。

ちょっと別の観点では、「うまく行ったこと」に限らなそうだな〜っていうのもあるか。
自分の中の思考実験とか思想的なもの、「こういう事を思った!如何か!?」って問う、みたいな。
カンファレンスが別に「お手本集」である必要もないはずだしな。参考事例というより「検討考察や議論に値するケースの集合」であっても、面白いはず。
(もちろん、ここでも内容についての誠実さを欠いてはいけないけど。)

この辺りの感覚は、自分の場合、「よい考え方や視点を与える」って意識よりも「何かを考えてみるとか、知ってみようと思うきっかけになってくれれば良いよね〜」的な気持ちで登壇することが多いからかも知れない。


なんでこんな事を考えたか。。。

ちょっと前まで自分が「栄養源」にしていた、他人との会話で挙がった話題とか誰かに教えたテーマ〜〜みたいなものや、実務を通じて「自分が成功していること」みたいなのが無いぞう〜〜どうしようかなーってなり。
なので、あんまり実生活とは関係のない趣味的な所からの発想ばかり目についたのだけども。

でも「議論をふっかけようとまでは思わないけど、自分なりに思索にふけっていることや理想を抱いている部分はあるな」「それを出しちゃえばいいか??」って、昨日くらいに思い始めたから、って気がする。

少し視点を変えてプロポーザルネタを発掘してみようかな、的な。

*1:あくまで「自分にとっては」ですよ。どういうマネージャー像・リーダー像を持っているか、は人それぞれなので

*2:別に同じ話で提出するのは悪いことでもないと思うし、なんなら過去に何処かで話した内容を再演したりマイナーアップデートして話すものアリだと思う。多くの人に届く価値のある話は繰り返し発信された方が幸せになれる。ココで言っているのは、あくまで「自分の楽しみ方」の話に過ぎない

#techramen24conf に参加しました / ワークショップを実施しました

先月末頃に北海道は旭川で開催された、上川地方に技術の知見を惜しみなく注ぐ,技術好きのための円卓会議に参加してきました。

うっかりぼけぼけしていたら半月以上の時間が経ってしまいましたが。
(まだ1ヵ月も経っていないのか!!に驚きもアリつつ)

観光・地方エンジョイ的な視点では、以前あっさり目に記事を書いています。写真はこってり目だけど。

daisuki.nichiyoubi.land

という訳で、この記事では、イベント本体についての「参加してどーだったか」を記録に残していきます。
「自分のやつ、やってみてどーだった!?」を中心に。

続きを読む

書籍「スタッフエンジニアの道」の好きなところ、面白く感じたところ

原書と兄弟で肩を並べて

島田浩二@snoozer05さん訳の、8月26日発売「スタッフエンジニアの道―優れた技術専門職になるためのガイド」の感想のような記事を書きます。

続きを読む

PHPで長さが決まった配列をゴニョゴニョするんじゃな

「出てくるキー(offset)は決まっている」みたいなリスト的なものにデータを突っ込んでいく時、
例えば「1週間のデータ」「キーに曜日番号を使うよ(データは上書きして良いよ)」とか、あると思うんですけど
「歯抜けはいいとしても若い順に並べてくれ」みたいな要件がありませんか?(ある??)

<?php
// 空配列に突っ込んでいく

/** @var array{'dow': int<0,6>, 'val': int} $logs */

$array = [];
foreach ($logs as ['dow' => $dow, 'val' => $val] = $log) {
    $array[$dow] = $val;
}
ksort($array);

雑にやりゃこうだよなって思ったんですけど、自分は割とfill済みの空配列に突っ込んでいくの好きだなーって気もしており

<?php
// 初期化頑張り

/** @var array{'dow': int<0,6>, 'val': int} $logs */

$array = array_fill_keys(range(0, 6), null);
foreach ($logs as ['dow' => $dow, 'val' => $val] = $log) {
    $array[$dow] = $val;
}

そういやfixed array使えるのか、って思ったやつ

<?php
// 知っているクラスを使う

/** @var array{'dow': int<0,6>, 'val': int} $logs */

$array = new \SplFixedArray(7);
foreach ($logs as ['dow' => $dow, 'val' => $val] = $log) {
    $array[$dow] = $val;
}

// $array = $array->toArray();

Objectになってるじゃん!!!Arrayでくれよ!!!!!って諍いが起こりにくくなりますね

3v4l.org

#techramen24conf を”大満喫”できたかを確認するためのデータ集め

この記事は、2024年7月26日〜27日(前夜祭を含む)に行われたTechRAMEN 2024 Conferenceの参加記事です。(本当でしょうか?)

techramenconf.net

参加やセッション全体の感想・遠征の感想・自分のターンの感想とまとめていくと、7万字くらいになりそうなので、観点を分けて記録・感想を残していこうと思います*1

さて、実際に参加してみると、「公式サイトを見ても、リーフレットを見ても、会場にいる際には幕間映像で、常にラーメンをインプレッションされ続ける」という不思議な場が創られており、また私はラーメン応援団でもありチャーハンセットも注文した立場でもあります。

「満喫」「大満喫」という言葉が実行委員長はじめスタッフの方たちの口から所々で発されており、色々な側面で「やりきれたか?」を自身に問い続けていく必要があるのです。

*1:最終的にどこまで書くか?は不明

続きを読む

みんなでワイワイ「テスト駆動開発」の話をやるぞ!!という気持ちがプロポーザルになって旭川に飛び立ちました #techramen24conf

プロポーザルを出して採択していただきました、自分が話すことがメインではなくみんなで喋ろうね!!!というものです
登壇者としてでも講師としてでもなく、ファシリテーターをやるつもりです。

fortee.jp

続きを読む