終電23時11分って早くね?

都内のIT企業で働くカラオケ大好きエンジニアの雑記

PHPカンファレンス関西2024に参加しました! #phpkansai

PHPカンファレンス関西2024に参加しました!

2024.kphpug.jp

PHPカンファレンス関西関西初参加でした!

会場: グランフロント大阪

情報がたくさんですごい!

note.com

カンファレンス開催前からnoteやX(旧Twitter)でたくさん情報発信されていてすごかった。

実はちょっと乗り遅れていたので、

note.com

このような記事も間に挟んでいただいてめっちゃ助かりました!!!!!!

PHPerシール

PHPerシールめっちゃよかったですね!

コミュニケーションの起点になってめっちゃありがたかったです。 ぜんぶ交換し切ってしまったのですが、1枚くらい手元に置いておいてもよかったかなと思いましたw

なぜか推しのこみっとさんのシールが手元に1枚しかなかったので、持っているスピーカーの方!どこかで!ください… おねがいします!!!!!!!!!!!!!!!!!!

スポンサーブースめぐり

スポンサークイズ?がめっちゃよかったなーと思いました!

スポンサーブースめぐるの若干勇気がいる?なと思っているんですが、 「〇〇〇〇ってどうすれば教えていただけますかー??」って言いながらスポンサーブースを訪問するっていうのをしていてアイスブレイクにもなってとてもよかったなーと。

トーク

Laravelでミニマム開発からスタートして個人サービスを利益化するまでの経験談

最初の1ヶ月の頑張りが凄そうでした!もうちょっと聞きたかった。

車両広告なども検討・実施などしていてすごい。

RDBアンチパターンと戦う - 削除フラグ 完全攻略ガイド

リアルタイムにスライド編集していてライブ感があってよかった。

soudai.hatenablog.com

agilejourney.uzabase.com

soudai.hatenablog.com

愚直に直していくのが大事だし、その際のテクニックは多少あるなーととても勉強になる。

PHPコミュニティ、その魅力と熱狂をあなたにも!!!

コミュニティに参加することで人生が変わった!ということみんさんのトーク。よかった。

今年のPHPコミュニティはちょっとバグってる(いい意味で)とは思っているんですけど、参加できるタイミングでみなさん参加してみてほしい!

あとPHPコミュニティに限った話ではなくいろんなコミュニティに参加することで新しい発見があったりもするので自分もなるべく積極的に参加したいなと改めて思った。

このサイクルに入ったら勝ちパターン。だけど、なかなかアウトプットまで繋げるのはハードルが高いよねーとも思うしちょっと時間がかかる気がする。

ので「自分の知らなかったことを知れるって楽しい!」をまずは体験するだけでもよい気はする。

参加し続けることが貢献になりますし、参加し続けることで自分らしく楽しむ方法が見つけられると思うのでそういうの見つけられるとよいですよね!!

たしか冒頭で「ラブレターです!」っておっしゃっていて、スライドの最後が便箋を閉じたスライドで、現地でみてなかった人にも届くといいなーという風に思いました!

モデルとは何か

まだモデル全然理解していないけど適切な?モデルを導き出すために必要なこととして、スライドの中でも「現実の細部から、目的と関係ない特徴を削っている」とあって、いい感じに自分たちのアプリケーションに適応していくっていうのができるといいのかな…と思いました。

いい感じに特徴を抽出して、大事な特徴は残し、目的と関係ない特徴を削っていくぞ!!!

PHPで学ぶ、セッションの基本と応用

さすがのhanhan1978さん。

「Session管理がアーキテクチャに与える影響」とか昔にちゃんと考えられてなくてハマったな…という記憶がよみがえった。

初心者だからこそ使って欲しい!Xdebugによるスマートデバッグ

fortee.jp

読み方は本題と離れるのでさておきなのですが、Xdebug、入れてはいるもののあまり活用できてないのでちゃんと使っていくか…という気にあらためてなりました…!

懇親会

はじめましての人とお話し結構した!という感じがありました。

PHPerシール効果も大きいですが、知り合いの方に知り合いの方紹介してもらうみたいな連鎖もあってとてもうれしかった。継続して参加しているが故に起こる変化なのかもなぁ〜と思ってよかったです!!

まとめ

www.youtube.com

「開催テーマ」にもある想いが感じられた素敵なカンファレンスでした。 スタッフのみなさま、スピーカーのみなさま、スポンサーのみなさま、参加者のみなさま、本当にありがとうございました!!

テーマにもあったように持続的に開催されていくということで来年も楽しみにしております&参加できるといいな!!!

おまけ

カンファレンスのはしご

blue-goheimochi.hatenablog.com

カンファレンスのはしごははじめてだった気がする!

たこ焼きおいしかった

できるまで40分くらい待ったけど!

翌日の観光

なんかいろいろめぐった!

YAPC::Hiroshima 2024に参加しました! #yapcjapan

2024/02/10(土)に開催された、YAPC::Hiroshima 2024に参加しました!

yapcjapan.org

ハイライト

スタッフ集合写真を撮影されている際にプロジェクター横に座っていたので物理で殴ってプロジェクターを黙らせている図。

2回目の参加

blue-goheimochi.hatenablog.com

次回は広島での開催が予定されているということで次回も参加するぞ!

ということで前回から2回目の参加でした!!

前夜祭(には参加できず…)

広島には夜の遅い時間に着いたのでそのままホテルにいって、X(旧Twitter)のタイムラインを眺めながらホテルにINしました。

PUBG MOBILEして寝た。Bluetoothヘッドホンやっぱめっちゃ遅延するな〜ってなったので優先が必要。どなたか一緒に遊んでください!!!!

本編

早起きした

早く寝たので早起きしてその辺をふらふらしました! ホテル出てすぐのところにLUUPのポートが設置されておりはじめて乗ってみましたが快適でした。 (アプリは結構前に入れていたんですがまだ使ったことがなかった)

あたりをチラ見して最後に平和記念公園にいって会場確認してホテルに戻りました。

スポンサーブースめぐり

ちょっと会場にはやめについて受付できたのでスポンサーブースをめぐりました。

各社様力をいれられていてめっちゃおもしろかったです!

たくさんノベルティをいただいてしまった。

へら!!

タイミーさん、タンブラーをいただいた!イベントでまだ訪れたことがないので一度現地に行ってみたい。

hacomonoさんのマッサージボールめっちゃ背中に効く。

Fastlyさんにいただいたトラベルバッグ?ボストンバッグ?めっちゃ便利でスーツケースにの持ち手のところにあれできてすごい!

Helpfeelさんのガチャガチャでもらったこはるさんかわよい!

トーク

割と前の方が空いていた?ので前の方で聞いてました!!!

コミュニティと共に生きる - キャリアの螺旋と人生を変えた瞬間

そーだいさんがいい話をしていていい話でした。

予防医療のリンケージ、よろしくお願いします!!!

わたし自身もコミュニティに参加したことがきっかけで成長できたり視野が広がったりした気がするなーと聞いていて感じました。この辺りもうちょっと言語化したい。

SHIROBAKOで聞いたのでチャンスだ!と思ったら積極的に行動していきたいなとあらためて思った。

経営・意思・エンジニアリング

LayerX CTOの松本さんのお話。

tech.layerx.co.jp

牡蠣食べられなかったのマジで心残り。

一歩足を踏み出してみたり、踏み出さないにしても踏み出した先のことを想像したりすることで、分かることだったり自分自身を客観的に見てどうか?を確認する機会にもなると思うのでそういうのは意識したいなと思った。

「ズレ=負債」というのもおもしろいな!と思った。

PerlでつくるフルスクラッチWebAuthn/パスキー認証

ライブコーディングすごいぃ!!!!!

からのなにもわからないフェーズになっている。

コードゴルフもパスキー認証になっていてすごいってなったんですがほんとに全然わかってないので、一度書いてみて理解を深めたいという気持ちになりました!

杜甫々さん

はぁ…すごかった…レジェンド…

懇親会

こんなにたくさんの人がいる懇親会はひさびさだーとなってすごいってなった! いろんな方とお話しできて楽しかった〜〜〜〜!!

めっちゃおいしかった!!

RIZAP Drinkup at YAPC::Hiroshima 2024

connpass.com

懇親会の後はRIZAPさん主催のDrinkupに参加させていただきました!感謝!! (実は補欠だったのでギリギリまで繰り上がるかドキドキしていた)

心のこり

お好み焼き、牡蠣、我馬のラーメン。食べてない。また来る。

まとめ

スタッフのみなさま、スピーカーのみなさま、スポンサーのみなさま、参加者のみなさま、本当にありがとうございました!!

次回も参加できるといいな。

PHPカンファレンス北海道2024に参加&登壇しました! #phpcondo

2024/01/12(金)〜2024/01/13(土)に開催された、PHPカンファレンス北海道 2024に参加・登壇しました!

phpcon.hokkaido.jp

スター・ウォーズ塗装機「C-3PO ANA JET」

出発でいきなりテンションがあがった!!!!!!!!

前夜祭

オープニング

2019年開催時の映像が流れて懐かしい気持ちになった!

トーク

リリースフラグとプログレッシブデリバリーを活用した安全なWEBアプリケーションデプロイ

fortee.jp

  • リリースフラグを利用することで細かくメインブランチにマージできる
  • Killスイッチとして活用

というのはなるほどたしかにーとなりました。

これはとても難しいなと思いつつも考えて実装できることで、運用負荷を下げたり安全なリリースをすることにつながると思うので意識していかなきゃなと思いました。

PHPからはじめるコンピュータアーキテクチャ

fortee.jp

次来る時はスキー・スノボ行きたい⛷️🏂

闇のPHPに対する防衛術

fortee.jp

コミュニティから得た学び、外部に心の支えを持つというのとても素敵だなと思った。

本編

オープニング

前夜祭でもみたけど2019年懐かしい〜〜〜

トーク

緊張でポストと記憶が少ない!!!!

ベテランのバグ調査の秘訣、こっそり教えちゃいます

fortee.jp

ステップでの解説とても分かりやすかった!

「まず第一報(抱え込まない)」は大事ですよね。

最速で解決してしまえば問題ない!と思ってガッと手を動かしてしまいがちなところが自分もありますが、「発生した事象に対してアクションを起こす必要がある」というのが自分以外のところである可能性もあると思うので「何かが発生している」ということだけでも周りに伝えるとよいのかなと感じる。

インシデントコマンダーとか実際に調査する人とか役割を明示的にするためにも初動は大事。

失敗例から学ぶSOLID原則

fortee.jp

失敗例からストーリー立てで解説してくれたのとても分かりやすかったように思う!

あんまり原則とかパターンとか得意じゃないのですが、「悪い」と分かったタイミングからでもやれることはあるよなーと頑張らなきゃなと思った。

🦀

測って見直す開発習慣 可視化を進めて私たちに起きた変化

fortee.jp

「数値の単純比較に価値はない」「重要なのは数値そのものではなく背景を読み取ること。」肝に銘じる。

可視化からチームの習慣の変化のような箇所の体験が語られており参考になった&もっと聞いてみたい。

テスト嫌いな自分の苦手意識がなくなった話

fortee.jp

丸1日で苦手意識がなくなるのとかほんとに大事な特別な1日だったんだなーと。

テスト特化型のペアプロ、社内でそういう変化が起こるのはいいチームですよね!本にも書いてあるんだが実際に体験してみる違ったり、体験した後に本を読んだら違って見えたりなどがあると思う。

自己紹介のアイコンがカニ食べたりラーメン食べたりアイス食べたりしてて笑ったw

登壇: コードを計測することで捉える問題点

「コードを計測することで捉える問題点」というタイトルでお話しさせていただきました。

アプリケーションコードをリファクタリングしたいなーと思った時に闇雲に手をつけたくない!というのが出発点で、そのアクションは本当にプロダクト自体の改善に前向きになっているのか?というのを意識していきたいなと思っております。

あくまでコードは分かりやすい・可視化しやすいポイントの起点であり、さまざまな観点で数値を見てみたり、

「測って見直す開発習慣 可視化を進めて私たちに起きた変化」の発表にもあったように、

その数値の背景はなにか?じゃあその数値を改善するとどうプロダクトに寄与するのか?というのを意識したいです。コード以外の数値などをより盛り込んだり実際の体験・経験をシェアできるとよりよいな…と思っております。

また、リファクタリング周りでは、

というコメントもいただいて確かにとなりました。あまり自分の頭がアップデートできてないところだな…と感じたのでそういうところも反映していければと思います!!

お聞きいただいたみなさま、ポストいただいたみなさま、ありがとうございました!!!!

(みなさん、SHSとそれはhowなんよに気付いてくださり感謝🙏)

いろいろなツールが入ってるやつ

github.com

発表の中で紹介したいろいろなツールをコンテナに詰め込んだやつ、さっそく使っていただいて しめじ(smeghead) さんにフィードバックいただいて感謝です!!!

Renovateでツールのバージョンはなるべく更新しております!!!

懇親会

「発表聞きまして〜」とお声がけいただいたりとてもありがたかったです!!!

印象に残ったのは屋根の話で、最近は昔ながらの三角屋根が少なくなっていて、フラット目の屋根が多いとのことを聞きました。

yane-sapporominami.com

多分このあたり。すげーとなりました。

まとめ

www.youtube.com

スタッフのみなさま、スピーカーのみなさま、スポンサーのみなさま、参加者のみなさま、本当にありがとうございました!!

2019年ぶりのPHPカンファレンス北海道2024、とっても楽しみました!

心のこり

次は空港のおすし食べる。

お役立ち情報

おまけ

むりむりかたつむり

(非公式)PHPカンファレンス北海道2024 全然野菜

connpass.com

非公式ですが全然野菜も開催いただいていたので参加!

こういうイベント開催いただくのありがたいですねぇ

食べた

カニ

カニ、まじで、カニでした…

ビール

hopkotan.com

ハンバーグ

くろさんにおすすめいただいて2019年の時に行けなかったお店にリベンジ!

スープカレー

ラーメン

ジンギスカン

すしざんまい

パフェ

スペシャルサンクス

Kagaさん、三浦さんまじ感謝です 🙏🙏🙏🙏🙏🙏🙏🙏🙏🙏

ありがとうございました!!!!!

ISUCON13に参加してスコアなしでフィニッシュしました

こんにちは。株式会社リンケージに所属しております、青ごへいもちです。

ISUCON13に参加しまして、残念ながらスコアなしでのフィニッシュとなりまして、その共有になります。。

という悲しいミスでした…。

ギリギリまでなんとかしようとして余裕がなかったのと、ちゃんとログをオフにする系の素振りをすべきでした…! そして、最高スコアも7000点くらいなのでなにをそんなにあせることがあったの?と言われてもしょうがないくらいのアレです。

また、この記事は 株式会社リンケージ Advent Calendar 2023 14日目です!

ISUCONとは??

isucon.net

ISUCONとはLINEヤフー株式会社が運営窓口となって開催している、お題となるWebサービスを決められたレギュレーションの中で限界まで高速化を図るチューニングバトルです

Iikanjini Speed Up Contestを略してISUCONです!

ISUCON13

isucon.net

2023/11/25(土)に開催されたISUCON13。 ISUCON13のお題は「ISUPipe」というライブ動画配信サイトでした!

www.youtube.com

出題動画!かわよい!!

ということで本記事ではISUCON13に参加したログを残しておきたく書いております。

事前準備

今回は初動の動きを固めるべく、初動のみの素振りを重点的に多分10〜20回くらいやりました。

  • 各サーバーへの初期設定の投入
  • GitHubへのバックアップ
  • PHPの実装への切り替え

「対象サーバーのIPが分かったら/etc/hostsを書き換える」というようなところまでタスク化。 各サーバーへの初期設定はAnsibleで実施しました。

NaruseJunチームのリポジトリをめっちゃ参考にさせていただきました。

Ansible専用のリポジトリを用意して make isucon を実行すれば各サーバーの設定がされるという感じにしました。

この実行がまぁまぁ時間かかるので並行で、

  • サーバー環境の確認
    • サーバースペック、ホームディレクトリの確認、想定しているところに設定ファイルがあるか?などを確認
  • バックアップの実施
    • アプリケーション、設定ファイルのバックアップ
  • PHP実装への切り替え準備
    • 当日マニュアルをみて、切り替え方法を確認など

をするようにしていた。

PHP実装の切り替え時には、NGINXのログの設定、MySQLのスローログの設定も済ませておく流れ。

で、PHP実装でベンチマークを実行。

というところまでをひたすら素振りとしては繰り返して練習しました。

また、過去問の素振り自体はISUCON11の予選の問題を本選出場相当の点数が出るところまでコツコツやったりなどしていました。

speakerdeck.com

PHPerTeaNightでuzullaさんがお話ししてくれたスライドもめっちゃ見返して、手順に取り入れたりもしました!!

当日やったこと

はじまる前

初動

初動は練習の甲斐あってかなかなかスムーズに進みました。 他のメンバーにマニュアル読みなどを任せて、素振り通りに対応。

Goの初期スコア

Goの初期スコア

PHPの初期スコア

PHPの初期スコア

一応、10時37分32秒にPHP実装での初回ベンチを回せていたようです。

1,000点位差がありますが、この時点でスローログなど出していると思うのでそんなもんかなーと思います。

pt-query-digestの結果をもとに色々貼ってもらって。11時42分時点では30位前半のスコア(7,236)が出ていて「いけるのでは?」という雰囲気だったのがハイライト。

ベンチマーカーの履歴

その後

初動以外はほぼいいところがなかった!!!!!!!!!!!!!!!!くやしい!!!!!!!!!!!!!!!!!!!!

  • 引き続き、pt-query-digestの結果を元に
    • インデックスの追加
    • N+1の解消
      • 1発で解消できないことが多くて手戻りがまぁまぁあった…
  • iconのハッシュ値計算
  • tagをDB参照しないように
  • isupipeのDBを分離
  • isudnsのDBを分離

をなんとなくやっていました。

DNSについては、メンバー1人に大きい時間を割いてもらってみてもらっていたのですが、思うような改善を回すことができず…

最後にログ系を切ってベンチ回して終わりにしましょうと17:50くらいになって対応したのですが、冒頭にも書いた、xhprof用の読み込みをコードから削除するのを忘れてしまいFailでフィニッシュという結果でした。。

感想戦

悔しすぎたので感想戦をコツコツやっていました。 それぞれやったことによるスコアなどはメモってなかったので割愛です…🙏

インデックスを貼るDBの調整

当日、データベースにインデックスを貼っていたのですが、よくよく確認してみるとうまくはれてなさそう?ということに気がつきました。 原因としては、isupipeのDBを分離した際、初期化時にインデックスを貼る処理が実行されないことを見落としていたことによるものでした。。

github.com

こちらに追加してた。

iconのハッシュの処理

これも実はうまくできていませんでした。 ISUCON13 問題の解説と講評の中にもあるように、

If-None-Matchは前後に " がついているので、削除するか文字列が含むかを調べることができる関数、メソッドを利用するとよさそうです。

のところが原因でした…

N+1の解消

今回の問題は過去のISUCONの中でもN+1が多かった問題だったような気がしているのですが、解消できていないN+1の箇所がまだまだ残っていました。

  • JOINによる対応
  • 複雑なクエリの分解
  • 単純なクエリに対するキャッシュの利用

などを実施し、pt-query-digestの結果を見ながら1つ1つ潰して行きました。

このN+1は地道にやっていくことでスコアが伸びていったので、やはりとても大事でした。。

が、何度も間違えながら解消を繰り返しまして、当日、なるべくミスのないように素早く解消するためには過去問の素振りなどをもっとやる必要があるな…と感じます。。

ランキングの算出部分なんかは特に複雑で、正しく仕様を読み取り、正しく直す…というのが必要で難しかった…

iconハッシュのキャッシュ

N+1の解消の中にも含まれるのですが、iconのハッシュをキャッシュしました。

アイコンの取得、アイコンの更新のリクエストを同じサーバーに向けてAPCuを利用してキャッシュする方法をしました。

その他、同じアイコンの取得・アイコンの更新と同じサーバーにAPIリクエストを向けられないものは、1秒でキャッシュが切れるような設定でキャッシュするなどしました。

この辺りiconの参照リクエストが多いので大きく効いていた気がします。

preloadの設定を有効にする

これめっちゃ効きました。

これもuzullaさんの記事を参考に設定。PHP-FPMの起動時に対象としたファイルがpreloadされるのですがなかなか点数が伸びたのでPHPer必須スキルかもです。

PHP-FPMを再起動しないとファイルの更新が反映されないと思うので忘れずにサービスの再起動をしましょう。

処理の分散

サーバ1: NGINX, PHP-FPM サーバ2: PHP-FPM, DB(isupipe) サーバ3: DB(isudns)

のようにサーバの役割を分離。

サーバー2のCPUに空きができていたので、NGINXでアクセスをサーバー1とサーバー2に振り分けるなどしました。

N+1を解消すると負荷状況が変わったりしたので、ちまちま振り分け設定を調整したりしました。

registerHandler、searchLivestreamsHandler(の全件検索)でusleep

ベンチを数回実施&alpでのアクセス数を見るに、

  • [GET] /api/livestream/search: ちょっと少ない
  • [POST] /api/register: ちょっと少ない
  • [GET] /api/livestream/{livestream_id}/livecomment: 多い

の時にスコアが上がる(スコア計算的にも投げ銭が関与するのでというところだと思う)ので、いい感じにsleepをいれたら結構効果がありました。が、xhprof見づらくなるので実施するタイミングが難しい。

みたいなことをやっていました。

ここまでで、7位相当くらいのスコアになりました。(c2.2xlargeのインスタンスベンチマークを実施)

7位相当のスコアに到達

感想戦にはISUNARABEを利用させていただきまして、とても便利で感謝しかありません!!!!!!!!!!!! この場を借りまして、お礼を申し上げます ✨🙏✨🙏✨🙏

ISUCON当日のインスタンスを起動したり停止したりしながら、ISUNARABEでベンチマーカーを実行して…みたいにコツコツやっていたのですがとても便利でした。

だいぶ時間を溶かしたので打ち止めとしたのですが、その時のxhprofの結果はこんな感じでした。 (usleepはなしにした状態)

サーバ1: NGINX, PHP-FPM

サーバ2: PHP-FPM, DB(isupipe)

PDO::__construct が大きいボリュームを占めるのが分かります。

「これはPHPerKaigiでみたやつだ…」となってRoadRunnerの導入を試したのですが、うまくいかず断念。

Cookie周りの処理でエラーになってしまっていたのですが、ちょっと時間がなくて解消し切れなかったのでどこかでチャレンジしたいです。

ただ、まぁここまで本番中にたどり着くのか…????みたいな問題はあるので、基礎をもっとがんばらねば…というところですね。。。

あとは json_encode が遅かったりしてたのですが、解消方法が分からなかったな…

NGINXでのアクセスの振り分けもいつも悩んでしまうので悩まないようにしたい。。

来年にむけて

いろいろと反省点はありますが、、、、、、

  • 初動の練度をもうちょっとあげる
    • もうちょっと速くできそうなので…!!
  • DNS!?」みたいに驚きすぎないで地道な改善に重点を置く
  • コードの改善(N+1)などを速く、的確に対応できるようにする
    • これは手を動かした回数では?となっているので素振りをがんばる

みたいなところは頑張りたい…! そしてめざせ30位以内。

まとめ

ということで、ISUCON13に参加しました!とても楽しかったです!!(&悔しかったです!)

運営のみなさま、ありがとうございました!!!

来年も開催されましたら、来年も個人スポンサーをして、出場枠をゲットして、PHPでなんとか爪痕を残したいなと思っています!!!!

以上です!!!

PHPカンファレンス福岡2023に参加&LT登壇しました! #phpconfuk

2023/06/24(土)に開催された、PHPカンファレンス福岡2023に参加&LT登壇しました!

phpcon.fukuoka.jp

実行委員長の締めのお言葉をいただいているところ

登壇内容

speakerdeck.com

「推測しないで、計測し、判断する! 〜カイゼンのためのステップ考察〜」というタイトルでLTさせていただきました。

  • 「推測」しないで、コードに対して「計測」し「判断」する
  • 「推測」しないで、体に対して「計測」し「判断」する

という2つの例を出しながら、「計測」→「事実」→「判断」→「行動」、そしてそれを繰り返し続けるのが大事ですよね!ということをお話ししました。
コードであれば重複コードがどれくらいあるか?とか循環的複雑度などのなんらか「判断」に利用できる数値というのを計測ツールで知ることができる。
ランニングであれば心拍ゾーンという最大心拍数から割り出される5つの心拍数帯がありどのゾーンにいるとどういう効果のトレーニングができるか?というのを決めることができます。
世の中にはそのように既に存在する数値的な判断軸というのが大体あると思うので、それらを利用しながら「推測するな、計測せよ」を実践していくことができると思います。


  • 「想像」による「判断」は避ける
  • 「事実」によって「判断」する
  • そして「行動」につなげる
  • そうすることで2週目はより効果的な判断をすることができる

のようにいい感じにループを回していけるといいなぁと思っています。

途中のスライドをスキップしつつ話す

重複コード、循環的複雑度の計測結果のところは当日の発表時はテンポよく?スキップするような形で発表させていただきました。
これはPHPカンファレンス 2022のあかせさんのLTで時間の都合でスライドをスキップするというのがあったのですが、

  • スライドを飛ばすテンポが心地よいという点(LT向けの演出としても適していそう)
  • スキップすることで、LTの時間内には収められる
  • かつ、聞いていただいている方には「あとで飛ばしたところを見てみよう」というように思っていただけそう

と現地で聞いて感じていました。
あとからスライドだけ見たとしても分量としても読み応えがある形にまとまってみせられてすごいなぁと。

ということで、「うおぉぉいつか真似してみたいぃぃぃ!!!」という想いが溢れた結果があのような形になっております!

懇親会やその後の飲み会でも何人かの方に「あれはおもしろかったですね〜」「テンポよかったです〜」というようなことを言っていただけてめちゃくちゃうれしかったです!あかせさんありがとうございました!!

youtu.be

【PR1】株式会社リンケージの紹介

現在所属している株式会社リンケージは予防医療を中心にサービス展開をしています。
予防医療カンパニーとして、ご自身の状態を計測、事実を知り、健康意識を高め行動していただけるような、ストレスチェックや女性の健康支援のためのオンライン問診ができるプロダクトなどを提供しているというお話しを混ぜさせていただきました。

自分の体の異変に症状のないタイミングで気付くのはなかなかに困難ではあると思います。体に対しても今回の発表のテーマでもある「推測するな、計測せよ」は当てはまると思い、「事実」をなるべく早いタイミングで知り、問題があれば早めに「行動」していけると、QOL(Quality of life)に対しても良い効果があるんではないか…という想いをお伝えしたかったところでした。

ご興味がございましたらプロダクトの方もぜひよろしくお願いします!

【PR2】WEB+DB PRESS Vol.135に寄稿しました!

note.com

リンケージのエンジニアメンバー5人( @tyamahori, @chatii, @hanhan1978, @77web )でLaravel 10に関する記事を寄稿させていただきました!
ぜひ、お手に取ってみていただけるとうれしいです!!よろしくお願いします!!!

さいごに

4年ぶりのPHPカンファレンス福岡、本当に楽しかったです!

スピーカーのみなさま、スポンサーのみなさま、参加者のみなさま、スタッフのみなさま!!

ありがとうございました!!!

おまけ

どんなもの食べたか?のログ。

2023/06/22(木)

昼: 博多てんぷら たかお(福岡パルコ店)


tempura-takao.jp

夜1: awabar fukuoka

fukuoka.awabar.jp

夜2: 権兵衛館 大名

www.gonbee-group.com

夜3: 博多創作居酒屋 ふとっぱら(天神総本店)

www.futoppara.com

2023/06/23(金)

朝: 弥太郎うどん


tabelog.com

昼: 味の正福


masafuku.com

夜1: Gastro Pub Ales

alescook.blog.fc2.com

夜2: 博多創作居酒屋 ふとっぱら(天神総本店)


www.futoppara.com

2023/06/24(土)

朝: 元祖ラーメン長浜家


www.hakata.or.jp

昼: ウエスト 祗園店


www.shop-west.jp

夜1: Gastro Pub Ales

alescook.blog.fc2.com

夜2: とり乃屋(福岡 大名店)


torinoya-official.com

夜3: 博多創作居酒屋 ふとっぱら(天神総本店)


www.futoppara.com

2023/06/25(日)

朝: 1日分の鉄分のむヨーグルト

昼: 博多らーめん ShinShin(福岡PARCO店)


www.hakata-shinshin.com

夜: 博多もつ鍋 おおやま(福岡空港店)


www.motu-ooyama.com

おまけ2

おすすめしていただけど行けなかったお店

tabelog.com

tabelog.com

www.ikkousha.com

おまけ3

PHPerTeaNightで共有いただいたスライド

PHPerKaigi 2023に登壇&スタッフ参加しました! #phperkaigi

2023/03/23(木)〜2023/03/25(土)に開催された、PHPerKaigi 2023に登壇&スタッフ参加しました!

phperkaigi.jp


登壇内容

speakerdeck.com

「計測できるレガシーさを捉え、コード改善に対処する」というタイトルで発表させていただきました。

レガシーなコードに対して、何らかの数値の計測を行うことで、よくないところ・改善が必要なところを炙り出し、それを手がかりにリファクタリング・手直しを進めていこうということをお話ししました。

当てずっぽでリファクタリングに着手したり、効果的なリファクタリングができなかったりということがあるように思っています。

アプリケーションに手を加えるのであればなんらかそのプロダクト・サービスを前に進めるものでありたいです。

大規模なリプレイスを行う場合でも小規模なリファクタリングを行う場合でも、プロダクトの未来を見据えた決断がされるとよいのは自明かなと思いますが、そのための判断軸として「計測」は1つの指標になるのかなと思っています。

リファクタリングやリプレイスという「How」にとらわれすぎず、なぜリファクタリングするのか?今なのか?プロダクトの未来に対してどんな効果を生むのか?というようなことを意識しながら引き続き私自身も考えながらプロダクト・アプリケーションに向き合っていきたいなと思う次第です。

スライドが自動で切り替わる問題…

発表当日は、なぜか自動でスライドが切り替わる問題が発生していました…

お聞き苦しい発表になり大変申し訳ございませんでした。。

Power Pointを使って発表をしていたのですが、「スライドショー」>「タイミングを使用」のチェックボックスがONになっているのが原因でした。

このチェックボックスがONになっていると、リハーサル・スライドショーの記録などでスライドをめくったタイミングを保存していた場合、そのタイミングで自動で切り替わってしまうようでした。

今回のケースだと、

  • 発表の前に「リハーサル」モードで素振りを行う
    • この時のタイミングが保存される
      • 多少端折ったりしているので、パッと切り替えたページもあれば、ゆっくりなページもある
        • スタッフ業で途中荷物の受け取りとかしてたので、そのページは多分切替タイミングがゆっくりだったりした
  • 発表の際に保存されたタイミングでスライドが切り替わる

ということが起きていました。。
発表中に気付くことは叶わず…

発表の時はスライドごとに切り替わるタイミングがまちまちだし、なんでだ…なんでだ…と思いながら、切り替わったスライドがずっと表示され続けるように、トラックパッドを叩き続けていました(それでもタイミングが来ると変わるんすが…

回避方法1 - 「タイミングを使用」のチェックボックスを外す

「タイミングを使用」のチェックボックスを外すことで、タイミングが使用されなくなるので、自動でスライドが切り替わることはなくなります。

回避方法2 - スライドショーの設定でスライドの切り替えを「クリック時」にする

これは回避方法1の「タイミングを使用」と連動しているようですが、「スライドショーの設定」>「スライドの切り替え」>「クリック時」のラジオボタンを選択することでも自動でスライドが切り替わらなくなります。

回避方法3 - タイミングをクリアする

タイミングをクリアすることで仮に「タイミングを使用」にチェックが入っていたとしても自動でスライドが切り替わらないようにできます。

回避方法はたぶんこのくらいです…
はぁ…大変申し訳ございませんでした…

リハーサルを終了する際にダイアログが出るんですがそこで「いいえ」を選んでいればタイミング自体保存されなかったな…と思います。。
が、「タイミングを使用」のチェックを外しましょう…!みなさん…「タイミングを使用」のチェックを…外しましょう!!

はぁ……大変申し訳ございませんでした……

事前収録の時は問題なかったんですよね…やはり直前リハーサルをした際に保存してしまったのかな…そして「タイミングを使用」はデフォルトで「ON」なのかな…

はぁ………

次はもう間違えない!!!!大丈夫!!!!!!!1

Q&A & Ask the Speaker

Q「メトリクスを取ること自体はよくやっている。測っただけで終わっちゃいがちなところを実際に改善に進めるための作戦はなにかありますか?」

A「自分自身が問題に気づいたら、それをチームに共有して問題意識を共有する。チーム文化自体がレガシーという場合には自分自身がある程度無理しながら推進していく必要がある。」

というようなやりとりをさせていただきました。

Ask the Speakerでも同じようなお話をしていました。

自分だけリファクタリングしたいと思っていてもなかなかうまくいかなくて、チームだったり、プロダクトマネージャー・プロダクトオーナーとの意識共有だったり、プロダクトにとってそれは本当に必要なのか?(プロダクトの成長でもいいし、エンジニアのモチベーションが下がるという点に対する問題の解消でもいいと思うのですが)というのを共通認識として持った上で進めていけるとよいなと思っています。そのためには、日々の仕事の中で信頼貯金を貯めるだとか、よいコミュニケーションが取れるように振る舞うだとかそういうアクションの積み重ねの先にあるものなのかな…とも思います。このへんは本当に確実な方法がないので試行錯誤ですよね…

スタッフ

今年も「HQ(ヘッドクォーター)」(≒本部)を担当しており、基本Informationのところに座っておりました。

現地やSNS上で困っている人を見つけて対応したり、各スタッフさんがエスカレーションしてくれたお困りごとを拾ったりなどなど。少しでも快適にお過ごしいただけたのであればこれ幸いです…🙇

機材運び

Day1のオープニングでも説明がありましたが、
Wi-Fiのためにプロ用機材レンタルショップから機材をハンドキャリーしてました!w
こういうムーブもカンファレンススタッフならでは?で楽しいですね〜〜!!

スタッフも今回で6回目になりますが、引き続き、みなさんにお楽しみいただけるように微力ながら貢献できればと思っている次第であります。

さいごに

オフラインがだいぶ戻ってきた感じがしましたねー!やはりいいものですね…
お久しぶりの人やはじめましての人もいて大変刺激になりました。

喋り足りなかったり、お話しできなかった方々もいるなぁ…というところではあるのですが、またPHPerKaigiコミュニティのどこかで会いましょう!!

そして

phpcon.fukuoka.jp

PHPカンファレンス福岡 2023!たのしみ!!

YAPC::Kyoto 2023に参加しました! #yapcjapan

Perlは昔FFAdventureを改造して挫折して以来触ってないPHPerでしたが、YAPC::Kyoto 2023参加してよかった!とても最高でした!!

スタッフのみなさま、スピーカーのみなさま、スポンサーのみなさま、参加者のみなさま、本当にありがとうございました!!

はじめてのYAPCでした

PHP系のカンファレンスは割とよく参加しているのですが、YAPCは初参加でした。
知り合いがほとんどいないカンファレンスに参加するのも新鮮だな〜となってました。

前日祭のあとにはてなさんのオフィスにお邪魔させていただいたのですが、まぁまぁ人見知りしてあまりしゃべれなかったのが心残りではあります…!Twitterでお見かけする人もたくさんいらっしゃったので次の機会ではもっとコミュニケーションがんばる…

トーク

みなさん大変熱くて濃いトークが多かったなぁーーーという印象がとても強かったです!

moznionさんの廃墟のお話の最中には、

と、いう気持ちになって聞いていました。

キーノートの大西さんのお話もアツくエモく、とても心に残りました。

刺激をたくさんいただきましたので、また明日からがんばっていくぞ!

おわりに

あらためて、スタッフのみなさま、スピーカーのみなさま、スポンサーのみなさま、参加者のみなさま、本当にありがとうございました!!

オフラインやはりとても刺激になりますね。
新しい出会いにも感謝!

次回は広島での開催が予定されているということで次回も参加するぞ!